What does this skill do, and when should you use it?
This is the DXF skill from the earthtojake/text-to-cad repository, which turns 2D profiles, gaskets, panels, templates, and cut layouts into DXF files. The source of truth for a drawing is a Python file defining one parameterless @dxf model function; the engine writes the .dxf and validates it before anything lands on disk. It supports three workflows: drafting from scratch, flat patterns of generated STEP parts, and flat patterns of imported vendor STEPs. Outputs can be reviewed visually via a snapshot command or a local CAD Viewer.
- Reads a <name>.py defining an @dxf model function and writes the sibling .dxf when the script runs
- Produces exact flat patterns from 3D part topology via cadgen.flatten, with kerf compensation
- Tracks part dependencies: a geometry-changing part edit makes the drawing stale; unchanged parts leave it a no-op
- Validates at generation time: closed cut profiles, rejection of degenerate/duplicate geometry and unitless documents
- Renders a .dxf to PNG via cadgen dxf snapshot, or opens it read-only in the CAD Viewer
- Reads any existing .dxf with ezdxf for entity/layer checks via validate_dxf_file
- A mechanical engineer who needs gasket or panel flat-pattern DXFs for a laser cutting service (pairing with the $sendcutsend preflight skill)
- A team with in-project generated STEP parts wanting flat patterns that auto-rebuild when the part's geometry changes
- A user holding only a vendor .step file who needs it flattened into waterjet or plasma cutting contours
- CAM preparation that needs CUT / ENGRAVE / SCORE layers with bend lines named so downstream tools classify them as bends
- Anyone wanting deterministic pre-handoff validation (closed contours, duplicate geometry) plus a visual review before sending files to a cutting service
- 3D solid modeling — this is a purely 2D drawing skill; 3D parts belong to the companion $cad skill
- Users who only need 3D printing or multi-axis CNC outputs (STL/G-code) — it produces 2D DXF only
- Environments that cannot install uv or where Windows 11 Smart App Control blocks the OCP native module (a documented hard blocker)
How do you install this skill?
- cadgen is downloaded via PyPI/uv and sends telemetry by default (random ID, never file contents); run `uvx cadgen telemetry off` or set CADGEN_TELEMETRY=0 if unwanted.
- The CAD Viewer binds to loopback but serves unauthenticated; any local process can read files under the opened directory. Do not expose a non-loopback --host.
- First run requires network access to PyPI for the runtime and a headless browser; mainland-China reachability is uncertain and no mirror guidance is provided.
- Windows 11 Smart App Control blocks the unsigned OCP native module, breaking every cadgen command; disable it (irreversible) or use WSL.
- This is a static review — nothing was executed; DXF generation, validation and snapshot behavior were not independently reproduced. Verify on a small case before relying on it.
- Shell / CLI
- Network access
- Local filesystem
uvcadgen 0.7.20Python 3.13 (managed via uv)
This skill is one of 13 skills in the MIT-licensed text-to-cad collection and is installed with the whole collection.
Claude Code
claude plugin marketplace add earthtojake/text-to-cad#latest
claude plugin install text-to-cad@earthtojakeCursor / Grok Build (reuse the Claude Code plugin, or install standalone)
git clone --depth 1 --branch latest https://github.com/earthtojake/text-to-cad ~/.cursor/plugins/local/text-to-cadGemini
gemini extensions install https://github.com/earthtojake/text-to-cad --ref latest --consent --auto-updateOther agents (Skills CLI)
npx skills add earthtojake/text-to-cad#latestHow do you use this skill?
Once installed, send your agent any of these to trigger it:
- Draw a 60x40mm gasket with 4.5mm holes as a DXF for laser cutting
- Flatten the STEP part from bracket.py into a cut layout with 0.15mm kerf and export a DXF
- Generate a 2D waterjet contour DXF from imported/vendor_panel.step and render a preview PNG
- Check whether the cut profiles in plate.dxf are closed and count the circles on the CUT layer
The skill triggers on DXF / 2D drawing requests. Flow: distill the request into a brief → pick one of the three workflows (drafted from scratch / flat pattern of a generated model / flat pattern of an imported STEP) → write or edit <name>.py with dimensions as named constants → run the script directly (the only entry point; there is no cadgen dxf build command):
python path/to/source.py
python path/to/source.py --force
cadgen dxf snapshot path/to/drawing.dxf review.png
cadgen store why path/to/source.pyValidation runs during generation; validate_dxf_file post-checks any existing .dxf, and ezdxf verifies user-specified dimensions. Start the viewer with cadgen viewer --host 127.0.0.1 -- --detach. Diagnose installs with cadgen doctor <skill-dir>.
What are this skill's strengths and limitations?
- A drawing is a model: freshness gating makes unchanged rebuilds no-ops, geometry-changing part edits mark it stale, and store why explains the verdict
- Output bytes are a deterministic function of geometry — identical files cold or warm, on any machine
- Validation is built into generation: closed contours, degenerate entities, duplicate geometry, and empty modelspace are checked before writing
- Curves stay curves: fillets export as ARCs and holes as CIRCLEs, never collapsing into hundreds of short LINEs
- Heavy prerequisites: uv plus a pinned cadgen 0.7.20 download and managed Python 3.13; first run needs network
- Windows 11 Smart App Control (on by default on fresh installs) blocks the OCP native module, breaking every cadgen command
- Telemetry and crash reports are on by default (opt out with uvx cadgen telemetry off)
- Reading a STEP this same project generated is forbidden — it would make the freshness gate never-current and force full rebuilds
- Text is exported only as engraved outlines (bd.Text), never DXF TEXT entities
How does this skill compare with similar options?
Side by side with related skills; every score comes from the same FSRS standard.
| Skill | FS score | Stars | Last updated | License |
|---|---|---|---|---|
| DXF Generation & Validation Skill this page | 57 · Use with care | ★ 19k | 1d ago | MIT |
| SendCutSend Upload Preflight | 57 · Use with care | ★ 19k | 1d ago | MIT |
| Engineering Drawing (Text-to-CAD) | 59 · Recommended | ★ 19k | 1d ago | MIT |
| DFM Review Skill | 61 · Recommended | ★ 19k | 1d ago | MIT |
| G-code Slicing Skill (text-to-cad) | 60 · Recommended | ★ 19k | 1d ago | MIT |
Within the text-to-cad collection, 3D parts come from the CAD ($cad) skill and SendCutSend upload preflight from $sendcutsend, while this skill focuses on 2D flat patterns and cut drawings; visualization duties of the retired cad-viewer skill are now split across the CAD, DXF and related skills.
How did FollowSkills review this skill?
Evidence shows local execution, loopback-bound viewer, pinned uvx versions, explicit data-flow and telemetry disclosure (with opt-out), and SECURITY.md stating the viewer is unauthenticated with loopback as the trust boundary. Deductions: cadgen is an unauditable external binary from PyPI, first run downloads it and telemetry is on by default (opt-out only), and the unauthenticated viewer is a known residual risk — not red-line, but trust is incomplete.
Documentation is highly self-consistent: contract, templates, freshness gate, validation checks, and failure feedback (doctor, store why, off-plane refusal, snapshot OUT delete-then-atomic-write) are all specified. Deductions: static review cannot execute; no committed tests for the skill's key paths (@dxf build, snapshot, viewer) appear in the provided files; failure modes are described rather than evidenced.
Trigger conditions are clear (DXF, 2D profiles, gaskets, cut layouts), boundaries and non-fit are explicit (no 3D, parameterless contract, XY-plane restriction), and scope vs $cad/$sendcutsend is well divided. Deductions: depends on uv/PyPI downloads and a headless browser, no Chinese-language support noted, mainland-China reachability is uncertain and no mirror/offline guidance is given.
Layered docs (SKILL.md + references templates + agents metadata), MIT license, pinned cadgen==0.7.20, clear provenance link, and disclosed known limitations (Smart App Control, units, layer semantics). Deductions: maintenance/update path leans on the README with an unverified publisher; the skill itself has no changelog or version; some behavior depends on unshown upstream cadgen implementation.
Claims directly deliverable DXF for cutting services with in-generation validation and clear marginal value over manual modeling. Deductions: static review cannot verify representative output correctness or direct usability; no committed DXF example artifacts or third-party usage evidence; the value claim partially rests on trusting cadgen internals.
Auditable primary material exists (SKILL.md, templates, SECURITY.md, CI badge, some test sources under models/tests), and fact/inference separation is decent. Deductions: provided test sources are not DXF key paths; workflows shown cover API/docs deployment only; no tests or independent reproduction covering the skill's key paths — coverage is thin.
Open a dimension to read why it scored that way
Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.
See the full review method →