dsh-cad-plugin
DeepSeek Harness tools for read-only DWG/DXF inspection, information extraction, image export, and DWG-to-DXF conversion.
The first implementation targets DWG and DXF files through @node-projects/acad-ts. It never edits the input drawing.
From this package directory, install into a Harness profile with:
dsh plugin --profile dshcadtest add .
dsh --profile dshcadtest --dump-config
Outputs are written below the configured outputDir (default ./cad-output).
Configuration and limits
outputDir is isolated from input files and existing outputs are never overwritten. Resource defaults are: maxFileSizeMB=50, maxEntities=200000, maxExtractItems=10000, maxImageDimension=8192, maxImagePixels=64000000, maxBlockDepth=16, maxBlockInstances=10000, maxConcurrent=2, maxSvgBytes=20000000, and maxCsvBytes=20000000. Set allowedInputRoots to restrict canonical input paths; paths outside it return INPUT_OUTSIDE_ALLOWED_ROOTS.
The plugin registers three native tools:
cad_inspect— drawing metadata, bounds, layers, blocks, and entity counts.cad_extract— texts, layers, blocks, or entities; optional JSON/CSV report.cad_export— simple SVG/PNG preview or DXF conversion.
All tools return JSON with either a successful result or { ok:false, error:{ code, message, details } }. Common recovery codes include FILE_NOT_FOUND, PERMISSION_DENIED, INPUT_OUTSIDE_ALLOWED_ROOTS, UNSUPPORTED_FORMAT, PARSE_FAILED, ENTITY_LIMIT_EXCEEDED, GEOMETRY_LIMIT_EXCEEDED, RENDER_LIMIT_EXCEEDED, OUTPUT_EXISTS, OUTPUT_LIMIT_EXCEEDED, and CONVERSION_VALIDATION_FAILED.
Examples
{"path":"./plan.dwg"}
cad_inspect returns version/unit objects, header and actual bounds, layer flags, model/Paper Space and block statistics, resource counts, and a bounded warning summary.
{"path":"./plan.dwg","section":"texts","limit":200,"saveAs":"csv","bom":true}
cad_extract supports texts, layers, blocks, and entities; filters and limits are applied before returning records. CSV cells beginning with =, +, -, or @ are protected against formula injection.
{"path":"./plan.dwg","format":"svg","layout":"Model","background":"#ffffff"}
cad_export supports SVG, PNG, and validated Unicode binary DXF. SVG/PNG results include output bytes, SHA-256, bounds, source/expanded/rendered/skipped counts, unsupported type counts, and preview completeness. DXF conversion reopens the output and compares text, entity types, and layers; severe mismatches return CONVERSION_VALIDATION_FAILED.
The preview supports lines, circles, arcs, ellipses, splines, hatches, polylines (including closed/bulge paths), text/MText/attributes, inserts with nested transforms and arrays, points, solids, and leaders. Raster images, wipeouts, meshes, and unsupported proxy entities remain explicit in unsupportedEntityTypes. Paper Space is selected with layout; Model is the default.
DWG input is read-only. DXF output uses the library byte writer with a UTF-8 code page and semantic round-trip validation. Parser and writer warnings are deduplicated and capped to a configurable sample count.
The preview renderer focuses on common 2D lines, polylines, circles, and text. It preserves the source drawing and reports parser warnings for unsupported or malformed CAD objects.
还没有评论,来写第一条。