计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
cad-viewer【效率与协作】启动 CAD 查看器并返回显式 CAD、隐式 CAD 和机器人描述文件的审阅链接。在目视检查“.step”、“.stp”、“.implicit.js”、“.implicit.mjs”、“.glb”、“.stl”、“.3mf”、“.dxf”、“.urdf”、“.srdf”或“.sdf”文件时使用,尤其是从 CAD、implicit-cad、URDF、SRDF 或 SDF 生成技能移交时。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files as the runtime source of truth; the repository link is only for provenance and release review. If the user asks to modify, debug, or iterate on CAD Viewer source itself, clone that repository and work there — this installed skill runtime runs the Viewer, it is not where you edit it.
Use this skill to open existing or newly generated CAD, implicit CAD, robot-description, or DXF files in CAD Viewer and hand back live review links. The expected input is one or more explicit file paths.
Start one local CAD Viewer with npm run start. It serves the prebuilt Viewer
bundle plus the CAD API on a single fixed port (3245). It is NOT started
against a directory — a URL names the directory, so one Viewer serves any folder.
The default port
3245is0xCAD— "CAD" in hexadecimal.
Run from this skill directory:
npm --prefix scripts/viewer run start -- --host 127.0.0.1
A Viewer URL's path is the absolute directory, exactly as in a file:// URL,
and file= selects one artifact inside it:
http://127.0.0.1:3245/absolute/project/models?file=mechanisms/lift_table.step.py
Always build the path from an absolute directory. The Viewer runs from an
arbitrary working directory — usually wherever the skill happens to be installed,
not the model directory — so a relative path resolves against the wrong place.
The file= value is relative to that directory.
On Windows the drive goes in the path, after the URL's leading slash, with
forward slashes: D:\project\models is http://127.0.0.1:3245/D:/project/models.
The launcher prints this form already; build it the same way by hand.
The path is the workspace, not the file's folder. The Viewer scans it
recursively, so the file browser lists every model beneath it and the user can
switch files without a new link. Pick the directory the user thinks of as their
model workspace — typically the project's models/ directory, or the nearest
common parent of the files you were asked to review — and put the rest of the
path in file=. Naming the artifact's own deep folder
(.../models/step/mechanisms?file=lift_table.step.py) opens the same model but hides
the rest of the project, which is almost never what the user wants.
If port 3245 is already in use, the launcher exits with an error rather than
rolling to another port; rerun with an explicit free port, --port <n>, and use
the URL it prints. In sandboxed agent environments, local binding failures such
as EPERM/EACCES can be expected; rerun with the needed permission/escalation.
Add --json to also print a machine-readable result as the last stdout line
beginning with { ({"url": ..., "port": ..., "action": "start"}). The printed
URL points at the launch directory; replace its path to review any other folder.
<directory>/<file> and confirm it
exists. For a generated model pass the generator source (<name>.step.py)
— that is what the catalog itself lists, the backend resolves it directly and
builds the render artifacts on demand, and no .step file needs to exist. It
is also the only form that carries a params sidecar, because a same-stem
<name>.step.py shadows <name>.step anyway. For an imported STEP with no
generator, pass the .step/.stp itself. If the resolved path is missing, do
not return the link; report the problem and point to the correct path.?file=<path relative to it>, so all of them
share one browsable catalog. Only use a second root for an artifact that lives
outside the first.?file=.references/viewer-features.md when you need supported file types, Viewer controls, or file-specific feature details.references/moveit2-server.md only when the user specifically needs optional SRDF MoveIt2 IK or path-planning controls.