본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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.2만2026년 10월 21일 업데이트

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.2만2026년 10월 21일 업데이트

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.2만2026년 10월 21일 업데이트

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.2만2026년 10월 21일 업데이트

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.2만2026년 10월 21일 업데이트

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.2만2026년 10월 21일 업데이트

earthtojake의 스킬 모두 보기

이 스킬의 문제 신고