forgecad 0.10.5 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AdminPage-raksfnNA.js → AdminPage-B1nIvqLS.js} +1 -1
- package/dist/assets/{BenchmarkPage-DP3RxhPs.js → BenchmarkPage-YZJbw5nd.js} +1 -1
- package/dist/assets/{BlogPage-D7Dos-vl.js → BlogPage-DIWRApKS.js} +1 -1
- package/dist/assets/{DocsPage-DO1kvBns.js → DocsPage-ClL6X1hR.js} +2 -22
- package/dist/assets/{EditorApp-DQJmcmRT.js → EditorApp-CYBDvSyT.js} +575 -119
- package/dist/assets/{EmbedViewer-DFDUhOma.js → EmbedViewer-Dmfu_LIw.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-DbE_tp8-.js → LandingPageProofDriven-XYTiYxfM.js} +1 -1
- package/dist/assets/{LegalPage-CominSso.js → LegalPage-D5Z3CscF.js} +1 -1
- package/dist/assets/{PricingPage-CcVIN9yj.js → PricingPage-BP4lIGio.js} +1 -1
- package/dist/assets/{SettingsPage-DLWcP289.js → SettingsPage-D3bcPBsC.js} +1 -1
- package/dist/assets/{app-xW3hOdq9.js → app-BKjogwIZ.js} +2192 -231
- package/dist/assets/{backendInit-mDHk97u7.js → backendInit-6a9-ilom.js} +76448 -75066
- package/dist/assets/cli/{render--SIU27W_.js → render-CMNudGb0.js} +3 -3
- package/dist/assets/{constructionHistoryWorker-uEe_Q7Kg.js → constructionHistoryWorker-BuZgc606.js} +6985 -6706
- package/dist/assets/{evalWorker-BqyDHDcI.js → evalWorker-DQ82ueGu.js} +40862 -39497
- package/dist/assets/{inspectWorker-UXMxlcR8.js → inspectWorker-Cuby2qfT.js} +2078 -478
- package/dist/assets/{jointPose-bYMlwU3v.js → jointPose-CFql5I-u.js} +1 -1
- package/dist/assets/{manifold-CyOV5B9S.js → manifold-02pmr7O7.js} +2 -2
- package/dist/assets/{manifold-BR7UYI4P.js → manifold-C6KU0oII.js} +1 -1
- package/dist/assets/{manifold-D4d5NQst.js → manifold-P1yF3GKn.js} +1 -1
- package/dist/assets/{reportWorker-DsaICZsn.js → reportWorker-kg065BVL.js} +85183 -78309
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +2 -2
- package/dist/docs-raw/AI/usage.md +6 -8
- package/dist/docs-raw/CLI.md +10 -10
- package/dist/docs-raw/component-model.md +28 -9
- package/dist/docs-raw/generated/concepts.md +13 -4
- package/dist/docs-raw/generated/core.md +244 -56
- package/dist/docs-raw/generated/curves.md +13 -0
- package/dist/docs-raw/generated/runtime-names.md +2 -2
- package/dist/docs-raw/guides/inspection-bundles.md +1 -1
- package/dist/docs-raw/guides/structural-fea.md +11 -0
- package/dist/docs-raw/skills/forgecad-build-model.md +70 -147
- package/dist/docs-raw/skills/forgecad-image-prompt.md +1 -1
- package/dist/docs-raw/skills/forgecad-project-sync.md +3 -3
- package/dist/docs-raw/skills/forgecad-reconstruct-cad-file.md +2 -2
- package/dist/docs-raw/skills/forgecad-reconstruct-from-images.md +4 -5
- package/dist/docs-raw/skills/forgecad.md +3 -1
- package/dist/docs-raw/skills/index.md +1 -5
- package/dist/docs-raw/welcome.md +3 -4
- package/dist/index.html +1 -1
- package/dist/llms.txt +1 -2
- package/dist/sitemap.xml +15 -15
- package/dist-cli/{check-compiler-7YAHVXYM.js → check-compiler-UJWUEIDC.js} +1 -1
- package/dist-cli/{check-query-propagation-ZRR6IOJW.js → check-query-propagation-O2EPDJSY.js} +1 -1
- package/dist-cli/{chunk-VNM67DIV.js → chunk-MNDROM7T.js} +77145 -75767
- package/dist-cli/forgecad.js +1145 -441
- package/dist-skill/CONTEXT.md +429 -64
- package/dist-skill/SKILL.md +3 -1
- package/dist-skill/docs/API/core/concepts.md +31 -4
- package/dist-skill/docs/CLI.md +10 -10
- package/dist-skill/docs/generated/core.md +240 -57
- package/dist-skill/docs/generated/curves.md +13 -0
- package/dist-skill/docs/generated/runtime-names.md +2 -2
- package/dist-skill/docs/guides/inspection-bundles.md +1 -1
- package/dist-skill/docs/guides/manual-parameters.md +130 -0
- package/dist-skill/docs/guides/structural-fea.md +11 -0
- package/dist-skill/library/README.md +0 -4
- package/dist-skill/library/forgecad-build-model/SKILL.md +57 -150
- package/dist-skill/library/forgecad-build-model/references/inspection-feedback.md +58 -0
- package/dist-skill/library/forgecad-build-model/references/module-contracts.md +53 -0
- package/dist-skill/library/forgecad-build-model/references/parameter-controls.md +22 -0
- package/dist-skill/library/forgecad-build-model/references/readiness-review.md +43 -0
- package/dist-skill/library/forgecad-build-model/references/simulation-feedback.md +49 -0
- package/dist-skill/library/forgecad-build-model/references/stage-1-design-intent.md +21 -0
- package/dist-skill/library/forgecad-build-model/references/stage-2-architecture-plan.md +23 -0
- package/dist-skill/library/forgecad-build-model/references/stage-3-build-slices.md +39 -0
- package/dist-skill/library/forgecad-build-model/references/stage-4-feedback-iteration.md +24 -0
- package/dist-skill/library/forgecad-build-model/references/stage-5-readiness-package.md +34 -0
- package/dist-skill/library/forgecad-image-prompt/SKILL.md +1 -1
- package/dist-skill/library/forgecad-project-sync/SKILL.md +3 -3
- package/dist-skill/library/forgecad-reconstruct-cad-file/SKILL.md +2 -2
- package/dist-skill/library/forgecad-reconstruct-from-images/SKILL.md +4 -5
- package/dist-skill/website/skills/forgecad-build-model.md +70 -147
- package/dist-skill/website/skills/forgecad-image-prompt.md +1 -1
- package/dist-skill/website/skills/forgecad-project-sync.md +3 -3
- package/dist-skill/website/skills/forgecad-reconstruct-cad-file.md +2 -2
- package/dist-skill/website/skills/forgecad-reconstruct-from-images.md +4 -5
- package/dist-skill/website/skills/forgecad.md +3 -1
- package/dist-skill/website/skills/index.md +1 -5
- package/examples/api/param-path2d.forge.js +65 -0
- package/examples/api/param-placement2d.forge.js +80 -0
- package/examples/api/param-spline2d-g-continuity.forge.js +57 -0
- package/examples/api/spoon-full-tang-handle.forge.js +57 -17
- package/examples/api/surface-variable-thickness-panel.forge.js +62 -0
- package/examples/mechanical/airplane-propeller.forge.js +81 -28
- package/package.json +2 -2
- package/dist/docs-raw/skills/forgecad-design-spec.md +0 -145
- package/dist/docs-raw/skills/forgecad-grade-model.md +0 -84
- package/dist/docs-raw/skills/forgecad-inspect-model.md +0 -80
- package/dist/docs-raw/skills/forgecad-verify-mujoco.md +0 -78
- package/dist-skill/library/forgecad-design-spec/SKILL.md +0 -132
- package/dist-skill/library/forgecad-design-spec/references/default-profiles.md +0 -99
- package/dist-skill/library/forgecad-design-spec/references/master-prompt.md +0 -73
- package/dist-skill/library/forgecad-grade-model/SKILL.md +0 -72
- package/dist-skill/library/forgecad-grade-model/agents/openai.yaml +0 -4
- package/dist-skill/library/forgecad-inspect-model/SKILL.md +0 -68
- package/dist-skill/library/forgecad-verify-mujoco/SKILL.md +0 -66
- package/dist-skill/website/skills/forgecad-design-spec.md +0 -145
- package/dist-skill/website/skills/forgecad-grade-model.md +0 -84
- package/dist-skill/website/skills/forgecad-inspect-model.md +0 -80
- package/dist-skill/website/skills/forgecad-verify-mujoco.md +0 -78
- /package/dist-skill/library/{forgecad-verify-mujoco → forgecad-build-model}/scripts/mujoco_verify.py +0 -0
- /package/dist-skill/library/{forgecad-inspect-model → forgecad-build-model/scripts}/summarize_manifest.py +0 -0
|
@@ -50,7 +50,6 @@ forgecad studio .
|
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
npm install -g forgecad
|
|
53
|
-
forgecad login
|
|
54
53
|
mkdir enclosure-bracket
|
|
55
54
|
cd enclosure-bracket
|
|
56
55
|
forgecad project init "Enclosure Bracket" --visibility private
|
|
@@ -58,7 +57,7 @@ forgecad new bracket --template part
|
|
|
58
57
|
forgecad studio .
|
|
59
58
|
```
|
|
60
59
|
|
|
61
|
-
`forgecad project init`
|
|
60
|
+
`forgecad project init` writes local project metadata to `forgecad.json`; it does not create anything on the server. After local validation, run `forgecad login` and `forgecad project push`. The first push creates the hosted project if needed, uploads local model files, helper code, Markdown notes, SVG/DXF assets, and other supported text project files, then records server file IDs. Later pushes sync local changes to the hosted project.
|
|
62
61
|
|
|
63
62
|
`forgecad project push` does not initialize a random folder. If the folder has no `forgecad.json`, the command fails and tells you to run `forgecad project init` or `forgecad project clone <slug>` first.
|
|
64
63
|
|
|
@@ -97,7 +96,7 @@ To verify installation, ask the agent:
|
|
|
97
96
|
What ForgeCAD skills are available?
|
|
98
97
|
```
|
|
99
98
|
|
|
100
|
-
You should see `forgecad` plus companion skills such as `forgecad-build-model`, `forgecad-
|
|
99
|
+
You should see `forgecad` plus companion skills such as `forgecad-build-model`, `forgecad-project-sync`, and `forgecad-reconstruct-cad-file`.
|
|
101
100
|
|
|
102
101
|
If you only want the core modeling skill without companion workflows:
|
|
103
102
|
|
|
@@ -206,13 +205,12 @@ For the full command reference, see [ForgeCAD CLI](../CLI.md).
|
|
|
206
205
|
| Skill | Use it for |
|
|
207
206
|
|---|---|
|
|
208
207
|
| `forgecad` | Core model authoring, editing, debugging, imports, assembly, render/export commands, and CLI validation. |
|
|
209
|
-
| `forgecad-
|
|
210
|
-
| `forgecad-build-model` | Creating a new `.forge.js` model in the active ForgeCAD project, including multi-part assembly discipline and validation. |
|
|
208
|
+
| `forgecad-build-model` | Creating a new `.forge.js` model in the active ForgeCAD project with design-first planning, staged files, multi-part assembly discipline, and validation. |
|
|
211
209
|
| `forgecad-reconstruct-cad-file` | Reconstructing a readable parametric ForgeCAD model from an existing STL, OBJ, 3MF, STEP, or STP file. |
|
|
212
210
|
| `forgecad-reconstruct-from-images` | Recreating an object from reference images as real ForgeCAD geometry through camera-calibrated render/compare/iterate loops. |
|
|
213
|
-
| `forgecad-
|
|
214
|
-
| `forgecad-
|
|
215
|
-
| `forgecad-
|
|
211
|
+
| `forgecad-build-model` inspection feedback reference | Generating and interpreting `forgecad inspect <family> <mode>` bundles for fit interference, wall thickness, connectivity, masks, depth, normals, and sections. |
|
|
212
|
+
| `forgecad-build-model` readiness review reference | Reviewing a model against a requirement, brief, prompt, reference, or acceptance criteria with evidence. |
|
|
213
|
+
| `forgecad-build-model` simulation feedback reference | Verifying MJCF exports in MuJoCo with dynamics, contacts, controls, joint travel, FEA, and rendered evidence. |
|
|
216
214
|
| `forgecad-image-prompt` | Producing builder-honest image prompts from a concrete model, HLD, LLD, or build brief. |
|
|
217
215
|
| `forgecad-project-sync` | Managing forgecad.io projects from the CLI: init, clone, pull, push, file commands, members, publish, and shares. |
|
|
218
216
|
|
package/dist/docs-raw/CLI.md
CHANGED
|
@@ -13,8 +13,7 @@ Create projects, open local studios, run, inspect, export, publish, and sync `.f
|
|
|
13
13
|
# 1. Install
|
|
14
14
|
npm install -g forgecad
|
|
15
15
|
|
|
16
|
-
# 2.
|
|
17
|
-
forgecad login
|
|
16
|
+
# 2. Create a dedicated local project folder
|
|
18
17
|
mkdir spool-adapter
|
|
19
18
|
cd spool-adapter
|
|
20
19
|
forgecad project init "Spool Adapter" --visibility private
|
|
@@ -25,14 +24,15 @@ forgecad new adapter --template part
|
|
|
25
24
|
# 4. Open the local editor
|
|
26
25
|
forgecad studio .
|
|
27
26
|
|
|
28
|
-
# 5. Validate, export, and push to the browser
|
|
27
|
+
# 5. Validate, export, sign in, and push to the browser
|
|
29
28
|
forgecad run adapter.forge.js
|
|
30
29
|
forgecad export stl adapter.forge.js
|
|
30
|
+
forgecad login
|
|
31
31
|
forgecad project push
|
|
32
32
|
forgecad project open
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Local modeling, inspection, export, and skill-install commands do not require a ForgeCAD account. Hosted project sync, publishing, token management, and license activation require sign-in: run `forgecad login` and choose email/password or API token (for GitHub/Google accounts, create a token in Settings > API Tokens first). Use `FORGECAD_TOKEN=fc_pat_... forgecad <hosted-command>` only for CI/CD and one-off automation. `forgecad studio` always requires an explicit project path; use `.` for the current project.
|
|
35
|
+
Local modeling, project initialization, inspection, export, and skill-install commands do not require a ForgeCAD account. Hosted project sync, publishing, token management, and license activation require sign-in: run `forgecad login` and choose email/password or API token (for GitHub/Google accounts, create a token in Settings > API Tokens first). Use `FORGECAD_TOKEN=fc_pat_... forgecad <hosted-command>` only for CI/CD and one-off automation. `forgecad studio` always requires an explicit project path; use `.` for the current project.
|
|
36
36
|
|
|
37
37
|
You can also start from the hosted starter project with `forgecad project clone start-here`, then `cd start-here` and `forgecad studio .`.
|
|
38
38
|
|
|
@@ -74,7 +74,7 @@ The fast validation command: runs the script with the real geometry kernel (no b
|
|
|
74
74
|
|
|
75
75
|
A bare `forgecad run` skips expensive diagnostics. Opt in with `--details` (volumes/bounds), `--history` (construction tree), `--features` (feature tallies), `--solver-profile` (constraint solver timing), or `--connectivity` (physical connected components — bbox contact is evidence, exact geometry is checked by default). `--quality live|default|high` selects the same geometry quality profile as the editor and export tools; `live` is fastest for large models.
|
|
76
76
|
|
|
77
|
-
Direct `.stl`/`.obj`/`.3mf`/`.step`/`.stp` inputs are imported automatically; STEP/STP auto-selects OCCT unless you pass `--backend`. For deeper confidence gates, prefer `inspect mechanical-integrity`, `check print`, or `inspect fit interference` instead of turning `run` into a catch-all audit command.
|
|
77
|
+
Direct `.stl`/`.obj`/`.3mf`/`.step`/`.stp` inputs are imported automatically; STEP/STP auto-selects OCCT unless you pass `--backend`. Use `--project-root <dir>` when running a file inside a larger uninitialized folder and you intentionally want relative imports to resolve against that root. For deeper confidence gates, prefer `inspect mechanical-integrity`, `check print`, or `inspect fit interference` instead of turning `run` into a catch-all audit command.
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
80
|
forgecad run model.forge.js
|
|
@@ -358,16 +358,16 @@ Script-backed exports accept repeatable `--param Key=Value` overrides before the
|
|
|
358
358
|
|
|
359
359
|
ForgeCAD has a hosted platform at [forgecad.io](https://forgecad.io). The CLI connects a dedicated local project folder to it.
|
|
360
360
|
|
|
361
|
-
A project is a local folder
|
|
361
|
+
A project is a local folder marked by `forgecad.json`; after the first push, that same file also links it to the hosted app. Use `forgecad project clone <slug>` to download an existing hosted project into a local folder, or run `forgecad project init` inside a folder that should become a new ForgeCAD project. Open local projects with `forgecad studio <project-path>`.
|
|
362
362
|
|
|
363
363
|
Keep the project root small and intentional. Do not run the editor from `~`, downloads, desktop, or a huge source tree. ForgeCAD scans project files such as `.forge.js`, `.js`, `.svg`, and `.dxf`; broad roots make local workflows and AI-agent context slow and confusing.
|
|
364
364
|
|
|
365
|
-
First-time setup (
|
|
365
|
+
First-time setup (init, studio, login, push) is the [Quick Start](#quick-start) sequence above. `forgecad project init` writes a local `forgecad.json` with the project name, slug, server, and visibility. It does not contact the server. The first `forgecad project push` creates the hosted project if `forgecad.json` has no project ID yet, uploads local source files, and records server file IDs. Later pushes sync the already linked hosted project. `forgecad project push` still requires `forgecad.json`; it does not initialize a random folder.
|
|
366
366
|
|
|
367
367
|
### Sync
|
|
368
368
|
|
|
369
369
|
```bash
|
|
370
|
-
forgecad project push #
|
|
370
|
+
forgecad project push # Create hosted project if needed; upload changes
|
|
371
371
|
forgecad project pull # Download remote changes
|
|
372
372
|
forgecad project status # See what's different
|
|
373
373
|
```
|
|
@@ -395,10 +395,10 @@ Shares are live references — always the current version, not a snapshot.
|
|
|
395
395
|
|
|
396
396
|
| Command | Description |
|
|
397
397
|
|---------|-------------|
|
|
398
|
-
| `project init` | Initialize the current directory as a ForgeCAD project
|
|
398
|
+
| `project init` | Initialize the current directory as a local ForgeCAD project. |
|
|
399
399
|
| `project clone` | Download a remote project into a new local directory. |
|
|
400
400
|
| `project pull` | Download remote changes into the current project. |
|
|
401
|
-
| `project push` |
|
|
401
|
+
| `project push` | Create the hosted project if needed, then upload local changes. |
|
|
402
402
|
| `project status` | Show differences between local and remote project files. |
|
|
403
403
|
| `project list` | List your remote projects. |
|
|
404
404
|
| `project open` | Open the current project in the browser. |
|
|
@@ -5,7 +5,7 @@ skill-order: 4
|
|
|
5
5
|
|
|
6
6
|
# The Component Model
|
|
7
7
|
|
|
8
|
-
Long-form rationale for ForgeCAD's multi-part architecture. The public rule sheet is embedded where agents need it: `forgecad-build-model` for authoring and
|
|
8
|
+
Long-form rationale for ForgeCAD's multi-part architecture. The public rule sheet is embedded where agents need it: `forgecad-build-model` for authoring and readiness review. Connector and joint mechanics (frame semantics, mating, mirrored-revolute handedness) live in the assembly JSDoc, surfaced in `docs/skill/generated/assembly.md`.
|
|
9
9
|
|
|
10
10
|
## The Principle
|
|
11
11
|
|
|
@@ -19,20 +19,39 @@ ForgeCAD applies the same principle to mechanical design. Before: parts compute
|
|
|
19
19
|
|
|
20
20
|
Data flows in one direction, from parent (assembly) to children (parts):
|
|
21
21
|
|
|
22
|
-
- **Props flow down.** The assembly owns
|
|
23
|
-
- **
|
|
22
|
+
- **Props flow down.** The assembly owns `param()` calls and cross-cutting decisions (base height, wall thickness, servo model), then passes ordinary values into child builder functions.
|
|
23
|
+
- **Builders are the child contract.** Reusable part files return builder functions such as `return { buildMount }`. When opened directly, they may define preview-only params inside `if (require.main === module)`.
|
|
24
|
+
- **Metadata flows up.** Builders return shape + connectors + any computed data siblings need (`return { shape, boltPattern, pinionZ }`).
|
|
24
25
|
- **Siblings never import each other.** The cover plate doesn't import the motor mount to read bolt positions; the assembly reads the mount's bolt pattern and passes it to the cover plate. The parent mediates all sibling communication.
|
|
25
26
|
|
|
26
27
|
```js
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
28
|
+
const mountModule = require('./motor-mount.forge.js');
|
|
29
|
+
const coverModule = require('./cover-plate.forge.js');
|
|
30
|
+
|
|
31
|
+
const mount = mountModule.buildMount({ wall });
|
|
32
|
+
const cover = coverModule.buildCover({
|
|
33
|
+
wall,
|
|
34
|
+
boltPattern: mount.boltPattern, // parent routes mount's data to a sibling
|
|
30
35
|
});
|
|
31
36
|
```
|
|
32
37
|
|
|
38
|
+
```js
|
|
39
|
+
// motor-mount.forge.js
|
|
40
|
+
function buildMount({ wall }) {
|
|
41
|
+
const shape = box(80, 40, wall);
|
|
42
|
+
return { shape, boltPattern: { dia: 5.3, positions: [[-25, 0], [25, 0]] } };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (require.main === module) {
|
|
46
|
+
return buildMount({ wall: param('Wall', 3) }).shape;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return { buildMount };
|
|
50
|
+
```
|
|
51
|
+
|
|
33
52
|
## Why This Matters
|
|
34
53
|
|
|
35
|
-
**For humans.** Each part file tells a complete story: geometry, connectors,
|
|
54
|
+
**For humans.** Each part file tells a complete story: geometry, connectors, preview controls, verifications — no chasing imports across eight files, no 266-line shared-dims.js to internalize. Modifying one part doesn't break siblings, because connectors are the contract: change the mount's internal cavity and nothing else moves, as long as the flange connector stays put.
|
|
36
55
|
|
|
37
56
|
**For AIs.** Each part file is self-contained context. An agent generates `base-body.forge.js` without reading `jaw-unit.forge.js`. The assembly file is a high-level plan generatable from a natural-language description, and props are an explicit interface contract — the agent knows exactly what each part needs and provides.
|
|
38
57
|
|
|
@@ -40,8 +59,8 @@ const cover = require('./cover-plate.forge.js', {
|
|
|
40
59
|
|
|
41
60
|
## File Granularity
|
|
42
61
|
|
|
43
|
-
|
|
62
|
+
Complex models should be expressible as a tree of small, independently previewable modules. A reusable `.forge.js` module returns builder functions or a module interface; direct-run preview controls live under `if (require.main === module)`. The system entry point, usually `main.forge.js`, composes high-level modules instead of importing every leaf file.
|
|
44
63
|
|
|
45
64
|
## Enforcement
|
|
46
65
|
|
|
47
|
-
The anti-pattern list and design gate are enforced by the public build
|
|
66
|
+
The anti-pattern list and design gate are enforced by the public build-model workflow; every multi-part example and agent-built assembly must pass that gate.
|
|
@@ -7,14 +7,14 @@ Every public API function belongs to one of 16 fundamental concepts. This is an
|
|
|
7
7
|
- **[C1: Primitive Construction](#c1-primitive-construction)** — Create geometry from parameters — no input geometry required. *(66 functions)*
|
|
8
8
|
- **[C2: Boolean Combination](#c2-boolean-combination)** — Combine same-dimension geometry using CSG set operations. *(6 functions)*
|
|
9
9
|
- **[C3: Rigid Transform](#c3-rigid-transform)** — Reposition or reorient geometry without changing its shape. *(0 functions)*
|
|
10
|
-
- **[C4: Dimensional Promotion](#c4-dimensional-promotion)** — Convert a 2D profile into a 3D solid (extrude, revolve, loft, sweep). *(
|
|
10
|
+
- **[C4: Dimensional Promotion](#c4-dimensional-promotion)** — Convert a 2D profile into a 3D solid (extrude, revolve, loft, sweep). *(69 functions)*
|
|
11
11
|
- **[C5: Topology Query](#c5-topology-query)** — Select or inspect named faces and edges on a shape. *(3 functions)*
|
|
12
12
|
- **[C6: Edge Feature](#c6-edge-feature)** — Modify edges of a solid — fillets, chamfers, draft, offset. *(4 functions)*
|
|
13
13
|
- **[C7: Pattern Replication](#c7-pattern-replication)** — Duplicate geometry in regular arrangements (linear, circular, mirror). *(6 functions)*
|
|
14
14
|
- **[C8: Constraint Solving](#c8-constraint-solving)** — Define geometry by relationships and let a solver find positions. *(1 functions)*
|
|
15
15
|
- **[C9: Spatial Placement](#c9-spatial-placement)** — Position geometry relative to other geometry using semantic anchors. *(6 functions)*
|
|
16
16
|
- **[C10: Assembly & Kinematics](#c10-assembly-kinematics)** — Compose parts with joints for kinematic simulation. *(28 functions)*
|
|
17
|
-
- **[C11: Parameterization & UI](#c11-parameterization-ui)** — Declare user-facing controls that drive model geometry. *(
|
|
17
|
+
- **[C11: Parameterization & UI](#c11-parameterization-ui)** — Declare user-facing controls that drive model geometry. *(10 functions)*
|
|
18
18
|
- **[C12: Dimensional Demotion](#c12-dimensional-demotion)** — Extract 2D geometry from a 3D solid (section, projection). *(3 functions)*
|
|
19
19
|
- **[C13: Export & Output](#c13-export-output)** — Convert geometry to external formats (STL, 3MF, SVG, DXF, G-code, PDF). *(14 functions)*
|
|
20
20
|
- **[C14: Visual & Debugging](#c14-visual-debugging)** — Control viewport appearance and debugging aids. *(39 functions)*
|
|
@@ -182,6 +182,11 @@ Convert a 2D profile into a 3D solid (extrude, revolve, loft, sweep).
|
|
|
182
182
|
- `Surface.Match(shape, options)` → [curves](/docs/curves#surface)
|
|
183
183
|
- `Surface.Net()` — Begin a curve-network (Gordon) surface — the class-A keystone. → [curves](/docs/curves#surface)
|
|
184
184
|
- `Surface.BoundaryNet()` — Begin a **Boundary Surface** — the canonical class-A surfacing primitive (SolidWorks "Boundary Boss/Base", Onshape "Boundary surface", Rhino NetworkSrf). → [curves](/docs/curves#surface)
|
|
185
|
+
- `Thickness.constant(thickness)` — Use the same wall thickness everywhere on the sheet. → [curves](/docs/curves#thickness)
|
|
186
|
+
- `Thickness.alongU(profile)` — Vary wall thickness across the sheet U direction. → [curves](/docs/curves#thickness)
|
|
187
|
+
- `Thickness.alongV(profile)` — Vary wall thickness across the sheet V direction. → [curves](/docs/curves#thickness)
|
|
188
|
+
- `Thickness.grid(values, options?)` — Bilinearly interpolate wall thickness from a rectangular UV grid. → [curves](/docs/curves#thickness)
|
|
189
|
+
- `Thickness.nurbs(values, options?)` — Interpolate wall thickness from a scalar tensor-product B-spline over sheet UV. → [curves](/docs/curves#thickness)
|
|
185
190
|
- `loft(profiles, heights, options?)` — Loft between multiple sketches along Z stations. → [curves](/docs/curves#loft)
|
|
186
191
|
- `sweep(profile, path, options?)` → [curves](/docs/curves#sweep)
|
|
187
192
|
- `variableSweep(spine, sections, options?)` — Sweep a variable cross-section along a 3D spine curve. → [curves](/docs/curves#variablesweep)
|
|
@@ -282,11 +287,15 @@ Compose parts with joints for kinematic simulation.
|
|
|
282
287
|
|
|
283
288
|
Declare user-facing controls that drive model geometry.
|
|
284
289
|
|
|
290
|
+
- `Param.anchor` — Viewport anchor builders for spatial parameter editing. → [core](/docs/core#parameters)
|
|
285
291
|
- `Param.number(name, defaultValue, opts?)` — Declare a numeric parameter that renders as a slider in the UI. → [core](/docs/core#parameters)
|
|
286
292
|
- `Param.string(name, defaultValue, opts?)` — Declare a string parameter that renders as a text input in the UI. → [core](/docs/core#parameters)
|
|
287
|
-
- `Param.bool(name, defaultValue)` — Declare a boolean parameter that renders as a checkbox in the UI. → [core](/docs/core#parameters)
|
|
288
|
-
- `Param.choice(name, defaultValue, choices)` — Declare a choice parameter that renders as a dropdown in the UI. → [core](/docs/core#parameters)
|
|
293
|
+
- `Param.bool(name, defaultValue, opts?)` — Declare a boolean parameter that renders as a checkbox in the UI. → [core](/docs/core#parameters)
|
|
294
|
+
- `Param.choice(name, defaultValue, choices, opts?)` — Declare a choice parameter that renders as a dropdown in the UI. → [core](/docs/core#parameters)
|
|
289
295
|
- `Param.list(name, defaultItems, opts)` — Declare a list parameter — an array of struct items with per-field UI controls. → [core](/docs/core#parameters)
|
|
296
|
+
- `Param.path2d(name, defaultPoints, opts?)` — Declare an editable 2D path parameter. → [core](/docs/core#parameters)
|
|
297
|
+
- `Param.spline2d(name, defaultPoints, opts?)` — Declare an editable 2D spline parameter. → [core](/docs/core#parameters)
|
|
298
|
+
- `Param.placement2d(name, spec)` — Declare an editable 2D placement sheet parameter. → [core](/docs/core#parameters)
|
|
290
299
|
- `dim(line, opts?)` — Add a dimension annotation between two points, or along an entity. → [output](/docs/output#dim)
|
|
291
300
|
|
|
292
301
|
---
|