跳到正文
cccskills
免费在 GitHub 公开

cad

Create and edit 3D parts and assemblies with adjustable dimensions using cadgen. Export STEP, STL, 3MF, or GLB files, inspect geometry, and open existing models in CAD Viewer for visual review.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Create/edit parametric CAD models, organize CAD projects, export STEP/STL/3MF/GLB files, resolve prompt references, and measure geometry with cadgen. Open and visually review existing STEP/STP, STL, 3MF and GLB files in CAD Viewer.

查看安装方法

适用场景

  • Create a part from specified dimensions or a drawing
  • Revise part dimensions and assembly placements
  • Export models as STEP, STL, 3MF, or GLB
  • View existing CAD files and check geometry

包含的文件(16)

  • SKILL.md12.0 KB
  • agents/openai.yaml287 B
  • LICENSE1.0 KB
  • references/animation-deformation.md3.5 KB
  • references/build123d-modeling.md10.9 KB
  • references/cad-brief.md2.0 KB
  • references/inspection-and-validation.md11.7 KB
  • references/kinematics.md19.5 KB
  • references/migrations.md4.4 KB
  • references/positioning.md5.7 KB
  • references/project-layout.md8.8 KB
  • references/project-template.md4.5 KB
  • references/repair-loop.md3.7 KB
  • references/snapshot-review.md15.0 KB
  • references/step-generation.md26.1 KB
  • references/supported-exports.md10.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

CAD modeling and inspection

Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files for the current interface.

Start with the task

Read only the references needed for the request.

TaskFirst actionReference
Create or edit a part or assemblyFind the existing Python model, or create a decorated model below; edit source and run python <model>.py.Model contract, shape construction; positioning for assemblies
Organize a CAD projectFollow its existing layout; for a new multi-model project use src/, format output folders, and a model catalog.Project layout, minimal starters
Export STL, 3MF or GLBAdd a mesh decorator for a maintained output, or run the format's build INPUT.step OUT command for a one-off export.Mesh exports
Resolve a reference from a promptIdentify its saved STEP/STP document, open it with read_scene, and call scene.resolve(ref) as shown below.Reference syntax and inspection
Measure or check geometryWrite a Python check using native build123d geometry and, where useful, cadgen.geometry.Inspection and validation
Model from an image or drawingExtract the specified dimensions and record meaningful assumptions.Interpreting the request
Open an existing STEP/STP, STL, 3MF or GLBShow it to the user.Show the model
Review appearance or motionSnapshot the saved document; use declared kinematics or animation for poses and clips.Snapshots, kinematics
Diagnose a failureRead the error and check the relevant model, geometry or command contract.Repair loop, version migration
A message says to migrateDo the migration now; an unmigrated model silently loses kinematics, materials and animation.Version migration

For 2D DXF drawings use $dxf; this skill owns any 3D part the drawing projects. Use the corresponding robot-description skill for URDF, SRDF or SDF.

Setup and paths

Run cadgen through uv, so this skill's commands share one installation, and its warm build daemon, with the CAD app's server:

  • cadgen below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 cadgen
  • python below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 python

The first run downloads that installation and the first snapshot its headless browser; later runs reuse both.

cadgen doctor <skill-dir> reports the installation in use and checks that it is the one this skill pins, and that the CAD kernel loads; use it for installation or kernel load errors. Use the relevant subcommand's --help for additional flags.

Run project commands from the CAD project root. CLI input/output paths and read_scene/read_step paths are working-directory-relative; decorator out= paths are relative to the model script. Anchor file inputs on __file__ when the model must run from any directory.

Create or edit a model

A model is a plain Python script with a parameterless decorated function returning a build123d shape. Use one model per entrypoint, with the script and its declared outputs sharing a filename stem. For example, src/bracket.py:

from cadgen import build123d as bd
from cadgen import step

WIDTH = 40.0


@step(out="../STEP/bracket.step")
def bracket():
    body = bd.Box(WIDTH, 20, 6)
    body.label = "bracket"
    return body


if __name__ == "__main__":
    bracket()
python src/bracket.py
  • Edit the model source when it exists, then run it to regenerate its outputs. Document export and snapshot commands take saved files and never run source.
  • Keep meaningful dimensions explicit. Use millimeters and XY/+Z unless the task or project specifies another convention; choose a useful functional datum. Prefer closed, positive-volume solids for physical parts, while honoring requests for surfaces or construction geometry.
  • Put parameterized geometry in ordinary factory functions; a decorated model selects a configuration. Keep module bodies cheap: create geometry and read CAD inputs inside the model or its helpers. Use the lazy bd import above; use postponed annotations when annotations mention bd types.
  • Call child models inside the assembly model. Place their results with .moved() or Location * shape to preserve shared geometry. Use meaningful occurrence labels and source-defined placements. Rerun the parent assembly to incorporate a changed child.
  • Read vendor STEP inputs with cadgen.read_step. Every file a build opens is an input on its own, whatever reads it (json.load, np.load, bd.import_step, a project font): nothing is declared. Never read a model's own output as its input. Geometry must not depend on untracked time, random values, environment variables or the working directory.
  • When named purchasable parts are needed, search $step-parts before making placeholders. Record an unsuccessful search and any placeholder assumptions.

For unfamiliar dimensions or interfaces, record the assumptions needed to model and verify them. Ask for missing information when it materially affects the requested result. Inspection and export requests do not need a modeling brief.

Mesh exports

Stack @stl, @threemf or @glb on the model for outputs that should be maintained on every run. A model may declare only meshes; STEP is optional. For a one-off export from an existing generated or imported STEP:

cadgen stl build STEP/bracket.step STL/bracket.stl
cadgen 3mf build STEP/bracket.step 3MF/bracket.3mf
cadgen glb build STEP/bracket.step GLB/bracket.glb

Omitting OUT writes one sibling file with the requested extension. It does not discover declared model variants. See mesh exports for decorator examples, mesh tolerances and animated GLB.

Prompt references and inspection

A reference such as /work/robot/STEP/assembly.step#o1.2.f7 identifies geometry in a particular saved document. Its file part is the document's absolute path as the CAD viewer copied it, with the file's real name and extension (in quotes when it holds a space or #). A selection of several entities is copied as one line, its refs comma-separated (/work/robot/STEP/assembly.step#o1.2.f7,o1.2.f8). Open that path with read_scene, and pass the whole line to resolve(), which returns a tuple of one selection per ref, in order:

from cadgen import read_scene

scene = read_scene("/work/robot/STEP/assembly.step")
for selection in scene.resolve("/work/robot/STEP/assembly.step#o1.2.f7,o1.2.f8"):
    face = selection.shape()  # owned native geometry, in document world coordinates
    print(selection.ref, face.area)

(selection,) = scene.resolve("/work/robot/STEP/assembly.step#o1.2.f7")  # one ref

A Quick Edit prompt names its document under File:, selected entities under References:, and snapshot context as inline JSON or a .snapshot.json path. To render, save inline JSON to a temporary .snapshot.json and run cadgen snapshot --job <snapshot file> (--job takes a file path). Inspect supplied annotations before editing. Without annotations, the captured view is optional context; render it when useful to the request. After editing, replay relevant views to check the change. See annotations and Quick Edit views for the packet schema and capture behavior.

A reference into a file that is not a STEP names what the viewer picked in it, in that file's own terms (none is a STEP selector read_scene resolves):

FileReferenceMeans
URDF, SRDF, SDF/work/arm/arm.urdf#upper_armthe link upper_arm
GLB/work/out/model.glb#n12the glTF node nodes[12] (0-based, the file's own index)
3MF/work/out/plate.3mf#o2.1the 2nd <build><item>'s 1st <component> (1-based); #o3 is the 3rd build item
STLthe file alone, on File:one mesh: nothing in it is picked

For a bare #o1.2.f7, use the identified target file. Do not guess between ambiguous files or labels. Numeric refs belong to that saved revision; reopen and reselect after rebuilding. The inspection reference covers label aliases, enumeration, measurements and small reusable operations.

There is no inspect CLI. Put exploratory checks in the project's ignored tmp/ (or system /tmp/); retain reusable checks in checks/ or its existing test directory. Keep them outside model-source and raw-output folders.

Verify and hand off

Choose checks from the requested dimensions, clearances and topology. For STEP outputs, check the saved artifact with read_scene or read_step. For mesh-only models, check the model's returned native geometry and review the mesh output; do not add a STEP solely to satisfy the workflow. Report units, thresholds, selected geometry and untested requirements. A failed computation is not a pass.

After creating or visibly changing geometry, generate and review at least one snapshot of the resulting STEP or mesh. Snapshots are your own review: always render and read them yourself, never rely on the viewer for it. Choose additional views to expose the features under review; see snapshot policy and options.

cadgen step snapshot STEP/bracket.step tmp/review.png
cadgen stl snapshot STL/bracket.stl tmp/mesh.png

Repair failures in the source and rerun the affected checks. Use geometry and images for CAD comparisons; path-targeted git status is bookkeeping, not geometric evidence. cadgen store why <model>.py explains unexpected rebuilds; python <model>.py --force forces one model, and cadgen daemon status shows build progress. More diagnostics are in the model contract.

Include output files, checks actually run, and material assumptions or limitations in the final response. The user sees the model in the viewer (Show the model), so don't attach snapshots unless they ask for an image. Explain any snapshot skip or failure using the cases in the snapshot reference.

Show the model

Show the user each file you create or change, and any they ask to see. Snapshots and validation don't replace this.

  • If your tools include cad_show (your host may prefix it), use it with the file's absolute path, and follow its description for when to call it again. cad_view reads what the user selected; cad_screenshot shows you what they see. Neither is a review of your own work.

  • Otherwise run the CAD Viewer, from any folder:

    cadgen viewer --host 127.0.0.1 --json --detach
    

    --detach returns once the viewer answers requests and leaves it running in the background: always pass it, since a foreground viewer never exits (and piping its output through tail can hide the URL for good). It starts this machine's one viewer, or reuses it. Read url from its one JSON line (never guess the port), and for each file return url?file=<its URL-encoded absolute path>. If it fails to launch, say so.

Generate changed artifacts first: the viewer never runs model scripts. Existing STEP files compile on open when needed. Exact topology selection and measurement require STEP; supported mesh viewers also offer approximate measurements on triangles.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Prepare files for printing on Bambu Lab printers by opening sliced files in Bambu Connect or unsliced models in Bambu Studio. The user selects the printer, checks the setup, and starts printing in the app.

中文简介正在准备中。当前显示英语简介。

  • Open a sliced file in Bambu Connect
  • Open an unsliced model in Bambu Studio
  • Prepare printing through Bambu Cloud or LAN
earthtojake/text-to-cad2.3万2026年10月23日 更新

Check mesh files for 3D printing by measuring geometry and comparing it with process-specific design limits. Get findings on wall thickness, overhangs, and supports, plus build orientation options and concrete redesign guidance.

中文简介正在准备中。当前显示英语简介。

  • Check whether a mesh meets printing design limits
  • Find thin walls and unsupported overhangs
  • Compare build orientations to reduce supports
earthtojake/text-to-cad2.3万2026年10月23日 更新

dfm

免费

Review part designs for sheet metal, CNC machining, or injection molding. Compare geometry measurements with applicable supplier or tooling limits, then document manufacturing concerns, suggested changes, and checks that still need evidence.

中文简介正在准备中。当前显示英语简介。

  • Review sheet metal bends and flat patterns
  • Check CNC tool access and internal corners
  • Review molding draft and undercuts
earthtojake/text-to-cad2.3万2026年10月23日 更新

dxf

免费

Create and update 2D DXF drawings from written requirements or CAD geometry using Python and build123d. Prepare cutting profiles and marking layers, check for open contours and duplicate geometry, and review drawings in CAD Viewer.

中文简介正在准备中。当前显示英语简介。

  • Create dimensioned gasket or panel drawings
  • Generate flat profiles from STEP geometry
  • Separate cutting and engraving geometry into layers
earthtojake/text-to-cad2.3万2026年10月23日 更新

Create a manufacturing drawing PDF from a part’s 3D geometry, with projected views, measured dimensions, hole callouts, and a title block. Rerun the drawing script after model changes to update the sheet.

中文简介正在准备中。当前显示英语简介。

  • Prepare a dimensioned drawing for manufacturing
  • Document hole sizes and machining requirements
  • Update drawings after changing a part model
earthtojake/text-to-cad2.3万2026年10月23日 更新

gcode

免费

Turn 3D models into printer instructions called G-code with OrcaSlicer. The skill selects existing printer and material presets, slices the model, and checks dimensions and output settings before handing over the files.

中文简介正在准备中。当前显示英语简介。

  • Prepare an STL model for a specific printer
  • Slice models using existing material presets
  • Check model size and print settings
earthtojake/text-to-cad2.3万2026年10月23日 更新

查看 earthtojake 的全部技能

报告此技能的问题