cad
Creates and edits parametric CAD parts, assemblies and 2D profiles as Python build123d models that text-to-cad's server builds…
Checks whether a part or an assembly of bonded parts holds under its loads, as a linear static stress study of a STEP, an xbf or a text-to-cad model, meshed by netgen and solved by CalculiX, giving peak von Mises stress, safety factor against yield and deflection drawn on the
Claude Code
$ npx -y skills add earthtojake/text-to-cad --skill fea --agent claude-code
Codex
$ npx skills add earthtojake/text-to-cad --skill fea -a codex -y
Cursor
$ npx skills add earthtojake/text-to-cad --skill fea -a cursor -y
Gemini CLI
$ npx skills add earthtojake/text-to-cad --skill fea -a gemini-cli -y
GitHub Copilot
$ npx skills add earthtojake/text-to-cad --skill fea -a github-copilot -y
OpenCode
$ npx skills add earthtojake/text-to-cad --skill fea -a opencode -y
Windsurf
$ npx skills add earthtojake/text-to-cad --skill fea -a windsurf -y
name: fea description: Checks whether a part or an assembly of bonded parts holds under its loads, as a linear static stress study of a STEP, an xbf or a text-to-cad model, meshed by netgen and solved by CalculiX, giving peak von Mises stress, safety factor against yield and deflection drawn on the part. Use when the person asks whether a part will hold, break or is strong enough, how much it bends or sags, where it is most stressed, how much load it takes, how to make it stronger or lighter without failing, or for FEA, a stress analysis or a strength simulation. Static loads and steady g-loads only. license: MIT metadata: repository: earthtojake/text-to-cad
A study holds some faces of a part, loads others, and has CalculiX solve the linear elastic response on a netgen mesh of quadratic tetrahedra: stress and displacement under forces, pressures, the part's own weight and a steady acceleration, with an isotropic material below yield, perfectly rigid fixtures and loads that do not move. An assembly's parts are bonded where they touch. It is a first-pass engineering check, not a certification; say so when you report. Vibration, buckling, heat, flow, fatigue, impact and parts that slide on each other are not in this version: say so plainly, and do not pass a static safety factor off as an answer to them. A drop or a braking load can be estimated as a steady g-load ([Body loads](references/linear-static.md#body-loads-gravity-and-acceleration)).
| Task | Start with | Reference | | --- | --- | --- | | **Check a part under a load** | `cad step solve part.step` lists its faces; write the study; solve into a folder. | [Workflow](#workflow), [Linear static](references/linear-static.md) | | **Check an assembly** | `cad step solve assembly.step` lists the parts and the pairs that touch. | [Assemblies](#assemblies) | | **Write or edit a study** | One JSON object: fixtures and loads, then material, mesh, margin and checks; parts and connections for an assembly. | [Study file](references/study-file.md) | | **Choose a material** | The model's own (solve the model or its `.xbf`), or the E, ν and yield the user gives. | [Materials](references/materials.md) | | **Judge the answer** | `result.json` and its findings, against a hand estimate. | [Findings](#findings), [Judging the answer](references/linear-static.md#judging-the-answer) | | **Answer a question the summary does not** | `result.vtu`, read with meshio. | [Your own questions](#your-own-questions) | | **Compare variants of a design** | The same study on each, faces mapped, mesh size held. | [Compare variants](#compare-variants) |
This skill studies a part; it does not model one. It reads a saved `.step` or `.xbf`, or a model the engine holds by its document id (`cad model solve <id>`), and solves the whole document: to study one part of an assembly alone, export it as a document of its own.
Run the `cad` command (`~/.local/bin/cad` where it is not on your PATH; `cad.exe` on Windows). If it is missing, install text-to-cad, outside a sandbox or with its permission:
curl -fsSL https://texttocad.dev/install.sh | sh
On Windows, in PowerShell: `irm https://www.texttocad.dev/install.ps1 | iex`. If the CAD app was only just added, its server may still be starting: try again for up to a minute first. `cad doctor --check` explains any other failure, changing nothing; `cad doctor` repairs what it reports. Tell the person any next step `cad setup` prints.
The study is the `solve` operation of the document's type: `cad step solve`, `cad xbf solve`, `cad model solve`. With no `--study` it lists the study's setup and writes nothing; with `--study` and `--out DIR` it solves and writes its results into `DIR`. Its two tools are integrations the `cad` command installs the first time a study needs them, nothing for you to install; `cad run` gives a script that calls `cad.step.solve` both, with the kernel that reads the part.
it for macOS, Linux x86_64 and Windows x86_64 alone; elsewhere (Linux on ARM among them) a solve refuses, naming the platform.
package, CalculiX 2.23 for each platform, about 13 MB). A person's own CalculiX is never run unless `CAD_CCX` names the file (2.20 or newer). It runs headless, on one thread, in a private folder, so the same study gives the same numbers every run, and every result names the version that solved it. `cad run ccx ARGS` runs that same `ccx` on a deck of your own.
Units are fixed: mm, N, MPa (pressure, modulus and stress), t/mm³ for density (steel 7.85e-9) and g (9.81 m/s²) for gravity and acceleration. Restate every load in them before you write it down.
1. **List the faces.** A study names faces by the engine's refs, the ones the CAD Viewer copies; a face the user picked there arrives as `/work/bracket.step#bracket/face 17` and needs no lookup.
cad step solve part.step
With no study this is the setup, and writes nothing: the parts, the pairs that touch, then each face of the part, one a line: ref, area, centre, surface type and a hint such as `plane, normal -Z, largest`. Match the user's words ("the mounting face") to a ref by the hint and the centre; a hole is a `cylinder`. A document of several parts lists no faces until one is named: `cad step solve assembly.step --occurrence post`. A face number is a position in the saved document, so a part edited and written again is listed again before its study is re-run.
2. **Write the study** ([study-file.md](references/study-file.md)):
{
"fixtures": [{"faces": ["bracket/face 17"], "type": "fixed"}],
"loads": [{"faces": ["bracket/face 22"], "type": "force", "vector_N": [0, -500, 0]}]
}Creates and edits parametric CAD parts, assemblies and 2D profiles as Python build123d models that text-to-cad's server builds…
Make an engineering drawing of a part as a PDF - orthographic views with hidden lines and centre marks, real dimensions, hole…
Create, edit, lay out and review native KiCad circuit boards (.kicad_pcb) and their schematics (.kicad_sch) - parts and nets,…
Prints a part - slices an `.stl`, `.3mf` or `.obj` into printer-ready G-code with OrcaSlicer, headless or in the app, with…
Renders photoreal images and videos of a text-to-cad model, a STEP or an xbf with Blender, for people to look at, such as a hero…
Robot and world descriptions (URDF, SRDF, MJCF) for ROS, MoveIt and MuJoCo. Use to generate a robot description or a MuJoCo scene…
Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with optional…
Use to design, redesign, critique, audit, polish or animate a frontend: websites, landing pages, dashboards, app UI, components,…
Hyperframes-based video template for retro pixel deck motion design. Use when users want a high-fidelity, multi-scene…
Create branded architecture, architecture delta, IT current-state, flowchart, sequence, state machine, ER/data model, timeline,…