forgecad 0.9.15 → 0.10.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-CDyGUinA.js → AdminPage-DwYHz72L.js} +1 -1
- package/dist/assets/{BenchmarkPage-DfPMY_-d.js → BenchmarkPage-a9_f-1US.js} +1 -1
- package/dist/assets/{BlogPage-kF0fkdJT.js → BlogPage-DodHpvmf.js} +1 -1
- package/dist/assets/{DocsPage-B954L3YN.js → DocsPage-B5LePEuj.js} +8 -858
- package/dist/assets/{EditorApp-CuDLxKqL.css → EditorApp-BpjZgzk0.css} +148 -0
- package/dist/assets/EditorApp-QXsAISLR.js +16307 -0
- package/dist/assets/{EmbedViewer-C77B-TrF.js → EmbedViewer-DdEHGUMU.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-Cr6fXMDj.js → LandingPageProofDriven-yhhOodbf.js} +2 -2
- package/dist/assets/{LegalPage-Dzklqmmg.js → LegalPage-5RbKRGYK.js} +1 -1
- package/dist/assets/{PricingPage-zWXkvlwl.js → PricingPage-E3Rma7aV.js} +1 -1
- package/dist/assets/{SettingsPage-Bz0of4KQ.js → SettingsPage-BJZcM97j.js} +1 -1
- package/dist/assets/{app-D3kDkggg.js → app-DSYrDg0V.js} +1846 -352
- package/dist/assets/cli/{render-DSY3mMQa.js → render-ZMHR9HkV.js} +161 -70
- package/dist/assets/{constructionHistoryWorker-gpDo-uH2.js → constructionHistoryWorker-AwMMWSxg.js} +1104 -349
- package/dist/assets/{evalWorker-CU0Ke6DP.js → evalWorker-DbNs7Dkp.js} +5155 -3772
- package/dist/assets/{inspectWorker-COyp8XXA.js → inspectWorker-CZsCFtQT.js} +1415 -439
- package/dist/assets/{targets-B9sGB5nB.js → jointPose-DO6mnXn_.js} +71 -3
- package/dist/assets/{manifold-DNkrUWpA.js → manifold-BGlQBBH9.js} +1 -1
- package/dist/assets/{manifold-BRI5prcH.js → manifold-BU-tJwQh.js} +1 -1
- package/dist/assets/{manifold-C-3h2M7p.js → manifold-fy2MV7K1.js} +2 -2
- package/dist/assets/{reportWorker-CdBz5bNg.js → reportWorker-DO6hcQbh.js} +8474 -4549
- package/dist/assets/{scalar-sampling-budget-wJF98aY9.js → scalar-sampling-budget-o90NSNmF.js} +5347 -3906
- package/dist/assets/{scanProxyWorker-B-9VbLIs.js → scanProxyWorker-2GtDLk-R.js} +19 -6
- package/dist/assets/{javascript-1kQXfVaz.js → typescript-DBQ6RN5l.js} +874 -22
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +3 -3
- package/dist/docs-raw/AI/usage.md +3 -1
- package/dist/docs-raw/CLI.md +65 -239
- package/dist/docs-raw/README.md +6 -0
- package/dist/docs-raw/component-model.md +17 -150
- package/dist/docs-raw/generated/assembly.md +159 -520
- package/dist/docs-raw/generated/concepts.md +245 -3491
- package/dist/docs-raw/generated/core.md +277 -1251
- package/dist/docs-raw/generated/curves.md +387 -1608
- package/dist/docs-raw/generated/legacy.md +162 -0
- package/dist/docs-raw/generated/lib.md +238 -112
- package/dist/docs-raw/generated/output.md +51 -76
- package/dist/docs-raw/generated/runtime-names.md +30 -22
- package/dist/docs-raw/generated/sdf.md +68 -284
- package/dist/docs-raw/generated/sheet-metal.md +68 -335
- package/dist/docs-raw/generated/sketch.md +240 -1161
- package/dist/docs-raw/generated/viewport.md +75 -316
- package/dist/docs-raw/generated/wood.md +21 -49
- package/dist/docs-raw/guides/coordinate-system.md +4 -42
- package/dist/docs-raw/guides/inspection-bundles.md +44 -442
- package/dist/docs-raw/guides/joint-design.md +18 -79
- package/dist/docs-raw/guides/positioning.md +21 -143
- package/dist/docs-raw/guides/scene-presentation.md +89 -0
- package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +25 -111
- package/dist/docs-raw/skills/forgecad-blockout-model.md +20 -117
- package/dist/docs-raw/skills/forgecad-component-model.md +23 -107
- package/dist/docs-raw/skills/forgecad-high-level-spec.md +47 -155
- package/dist/docs-raw/skills/forgecad-image-replicator.md +26 -143
- package/dist/docs-raw/skills/forgecad-lld.md +19 -113
- package/dist/docs-raw/skills/forgecad-make-a-model.md +113 -532
- package/dist/docs-raw/skills/forgecad-model-grader.md +38 -108
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +24 -211
- package/dist/docs-raw/skills/forgecad-project.md +13 -129
- package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +42 -134
- package/dist/docs-raw/skills/forgecad-render-inspect.md +27 -174
- package/dist/docs-raw/skills/forgecad-visual-spec.md +32 -112
- package/dist/docs-raw/skills/forgecad.md +19 -18
- package/dist/docs-raw/skills/index.md +2 -0
- package/dist/docs-raw/welcome.md +4 -2
- package/dist/index.html +1 -1
- package/dist/llms.txt +1 -2
- package/dist/sitemap.xml +13 -13
- package/dist-cli/{check-compiler-SDX5QIXI.js → check-compiler-JTVBITCR.js} +1 -1
- package/dist-cli/{check-query-propagation-EAYEFT77.js → check-query-propagation-3FFLSMVN.js} +1 -1
- package/dist-cli/{chunk-N4O47JLF.js → chunk-OAN5T4XD.js} +5722 -4287
- package/dist-cli/forgecad.js +2195 -656
- package/dist-skill/CONTEXT.md +1778 -7912
- package/dist-skill/SKILL.md +15 -15
- package/dist-skill/docs/API/core/concepts.md +27 -157
- package/dist-skill/docs/CLI.md +65 -239
- package/dist-skill/docs/generated/assembly.md +160 -493
- package/dist-skill/docs/generated/core.md +277 -1251
- package/dist-skill/docs/generated/curves.md +387 -1609
- package/dist-skill/docs/generated/lib.md +238 -112
- package/dist-skill/docs/generated/output.md +51 -76
- package/dist-skill/docs/generated/runtime-names.md +16 -22
- package/dist-skill/docs/generated/sdf.md +68 -284
- package/dist-skill/docs/generated/sheet-metal.md +68 -335
- package/dist-skill/docs/generated/sketch.md +240 -1160
- package/dist-skill/docs/generated/viewport.md +75 -223
- package/dist-skill/docs/generated/wood.md +21 -49
- package/dist-skill/docs/guides/coordinate-system.md +4 -42
- package/dist-skill/docs/guides/inspection-bundles.md +44 -442
- package/dist-skill/docs/guides/joint-design.md +18 -79
- package/dist-skill/docs/guides/positioning.md +21 -143
- package/dist-skill/docs/guides/scene-presentation.md +89 -0
- package/dist-skill/docs/guides/surface-members.md +26 -0
- package/dist-skill/library/forgecad-3d-reconstruction/SKILL.md +23 -111
- package/dist-skill/library/forgecad-blockout-model/SKILL.md +18 -117
- package/dist-skill/library/forgecad-component-model/SKILL.md +21 -107
- package/dist-skill/library/forgecad-high-level-spec/SKILL.md +45 -155
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +24 -143
- package/dist-skill/library/forgecad-lld/SKILL.md +17 -113
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +111 -532
- package/dist-skill/library/forgecad-model-grader/SKILL.md +36 -108
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +35 -224
- package/dist-skill/library/forgecad-prepare-prompt/references/default-profiles.md +43 -271
- package/dist-skill/library/forgecad-prepare-prompt/references/master-prompt.md +30 -99
- package/dist-skill/library/forgecad-project/SKILL.md +13 -131
- package/dist-skill/library/forgecad-reconstruction-benchmark/SKILL.md +29 -123
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +25 -174
- package/dist-skill/library/forgecad-visual-spec/SKILL.md +30 -111
- package/dist-skill/website/skills/forgecad-3d-reconstruction.md +58 -0
- package/dist-skill/website/skills/forgecad-blockout-model.md +49 -0
- package/dist-skill/website/skills/forgecad-component-model.md +53 -0
- package/dist-skill/website/skills/forgecad-high-level-spec.md +101 -0
- package/dist-skill/website/skills/forgecad-image-replicator.md +63 -0
- package/dist-skill/website/skills/forgecad-lld.md +41 -0
- package/dist-skill/website/skills/forgecad-make-a-model.md +186 -0
- package/dist-skill/website/skills/forgecad-model-grader.md +82 -0
- package/dist-skill/website/skills/forgecad-prepare-prompt.md +63 -0
- package/dist-skill/website/skills/forgecad-project.md +26 -0
- package/dist-skill/website/skills/forgecad-reconstruction-benchmark.md +60 -0
- package/dist-skill/website/skills/forgecad-render-inspect.md +80 -0
- package/dist-skill/website/skills/forgecad-visual-spec.md +71 -0
- package/dist-skill/website/skills/forgecad.md +122 -0
- package/dist-skill/website/skills/index.md +26 -0
- package/examples/api/comparison-imported-sphere-candidate.forge.js +1 -1
- package/examples/api/conformal-product-ribbon.forge.js +1 -1
- package/examples/api/exact-sheet-shell-assembly.forge.js +1 -1
- package/examples/api/extrude-options.forge.js +4 -2
- package/examples/api/field-loft-drive-tip.forge.js +40 -0
- package/examples/api/guided-loft-olive-oil-bottle.forge.js +1 -1
- package/examples/api/helix-basics.forge.js +2 -2
- package/examples/api/highlight-debug.forge.js +10 -10
- package/examples/api/mesh-import-slats.forge.js +1 -1
- package/examples/api/real-product-curves.forge.js +1 -1
- package/examples/api/route3d-elbow.forge.js +3 -0
- package/examples/api/sculpt-box-circle-booleans.forge.js +1 -1
- package/examples/api/sdf-shapes.forge.js +2 -5
- package/examples/api/sketch-rounding-strategies.forge.js +6 -6
- package/examples/api/surface-member-bottle-cage.forge.js +3 -3
- package/examples/api/surface-member-conformal-product-ribbon.forge.js +3 -3
- package/examples/api/surface-member-razor-inlay.forge.js +1 -1
- package/examples/api/variable-sweep-test.forge.js +4 -2
- package/examples/mechanical/airplane-propeller.forge.js +74 -39
- package/examples/nurbs-surface.forge.js +1 -1
- package/examples/products/iphone.forge.js +1 -1
- package/package.json +4 -1
- package/dist/assets/EditorApp-Beb-IZ0y.js +0 -14014
- package/dist/docs-raw/guides/geometry-conventions.md +0 -52
- package/dist/docs-raw/guides/modeling-recipes.md +0 -78
- package/dist-skill/docs/guides/geometry-conventions.md +0 -52
- package/dist-skill/docs/guides/modeling-recipes.md +0 -78
- package/dist-skill/library/forgecad-visual-spec/references/prompt-template.md +0 -79
- package/examples/api/bolted-service-cover.forge.js +0 -17
- package/examples/api/cable-gland-anchor.forge.js +0 -14
- package/examples/api/captured-cartridge-guide.forge.js +0 -14
- package/examples/api/captured-linear-slide.forge.js +0 -13
- package/examples/api/clevis-pin-joint.forge.js +0 -13
- package/examples/api/datum-enclosure.forge.js +0 -16
- package/examples/api/hose-barb-port.forge.js +0 -14
- package/examples/api/knuckled-hinge-assembly.forge.js +0 -15
- package/examples/api/living-hinge-cover.forge.js +0 -14
- package/examples/api/pcb-terminal-block.forge.js +0 -22
- package/examples/api/pinned-lever-pivot-stack.forge.js +0 -14
- package/examples/api/retained-shaft-knob-stack.forge.js +0 -15
- package/examples/api/routed-tube-clip.forge.js +0 -15
- package/examples/api/seated-bearing-stack.forge.js +0 -30
- package/examples/api/snap-latch-cover.forge.js +0 -14
- package/examples/api/thumb-screw-clamp.forge.js +0 -15
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<!-- AUTO-GENERATED by scripts/gen-api-docs.mjs. Do not edit by hand. -->
|
|
2
|
+
<!-- BUILD GUARD: no skill-group frontmatter, ever — this file is a lookup table for
|
|
3
|
+
agents editing old models, not taught context. Banned from the skill bundle via
|
|
4
|
+
BUNDLE_BANNED_DOCS in scripts/build-forgecad-skill.mjs. -->
|
|
5
|
+
|
|
6
|
+
# Legacy API Names
|
|
7
|
+
|
|
8
|
+
These names still run but are no longer taught; new code must use the replacement.
|
|
9
|
+
Each emits a one-time deprecation warning per script run.
|
|
10
|
+
They may be removed in a future release.
|
|
11
|
+
|
|
12
|
+
## core
|
|
13
|
+
|
|
14
|
+
| Old name | Use instead |
|
|
15
|
+
|----------|-------------|
|
|
16
|
+
| `composeChain()` | `Transform.compose(a, b, ...)` |
|
|
17
|
+
| `importSvgSketch()` | `Import.svgSketch(file, options)` |
|
|
18
|
+
| `importMesh()` | `Import.mesh(file, options)` |
|
|
19
|
+
| `importStep()` | `Import.step(file)` |
|
|
20
|
+
| `Constraint.makeParallel()` | `sk.parallel(a, b)` |
|
|
21
|
+
| `Constraint.horizontal()` | `sk.horizontal(line)` |
|
|
22
|
+
| `Constraint.vertical()` | `sk.vertical(line)` |
|
|
23
|
+
| `Constraint.equalLength()` | `sk.equal(a, b)` |
|
|
24
|
+
| `Constraint.distance()` | `sk.distance(a, b, value)` |
|
|
25
|
+
| `Constraint.fix()` | `sk.fix(point, x, y)` |
|
|
26
|
+
| `Constraint.coincident()` | `sk.coincident(a, b)` |
|
|
27
|
+
| `Constraint.perpendicular()` | `sk.perpendicular(a, b)` |
|
|
28
|
+
| `Constraint.length()` | `sk.length(line, value)` |
|
|
29
|
+
| `Slot.rounded()` | `SurfaceMembers.roundedSlot({ length, width }) — same builder, same fluent chain` |
|
|
30
|
+
| `Counterbore.cylindrical()` | `SurfaceMembers.counterbore({ diameter, clearanceDiameter, depth }) — same builder, same fluent chain` |
|
|
31
|
+
| `Ribs.repeated()` | `SurfaceMembers.ribs({ count, height }) — same feature object` |
|
|
32
|
+
|
|
33
|
+
## sketch
|
|
34
|
+
|
|
35
|
+
| Old name | Use instead |
|
|
36
|
+
|----------|-------------|
|
|
37
|
+
| `point()` | `new Point2D(x, y) — or cs.point(x, y) inside constrainedSketch()` |
|
|
38
|
+
| `line()` | `Line2D.fromCoordinates(x1, y1, x2, y2) — or cs.line(a, b) inside constrainedSketch()` |
|
|
39
|
+
| `circle()` | `Circle2D.fromCenterAndRadius(new Point2D(cx, cy), r) — or circle2d(r) for a sketch profile` |
|
|
40
|
+
| `addRect()` | `sk.rect({ x: 0, y: 0, width: 100, height: 50 }) — same options, called on the constrainedSketch() builder` |
|
|
41
|
+
| `addPolygon()` | `sk.addPolygon({ points: [[0,0],[100,0],[50,80]] }) — same options, called on the constrainedSketch() builder` |
|
|
42
|
+
| `addRegularPolygon()` | `sk.regularPolygon({ sides: 6, radius: 25 }) — same options, called on the constrainedSketch() builder` |
|
|
43
|
+
| `filletTrackedEdge()` | `fillet(shape, radius, shape.edge('vert-br')) — same exact compiler-owned path, no quadrant tuple needed` |
|
|
44
|
+
| `chamferTrackedEdge()` | `chamfer(shape, size, shape.edge('vert-br')) — same exact compiler-owned path, no quadrant tuple needed` |
|
|
45
|
+
| `filletCorners()` | `polygon(points).filletCorner([x, y], radius) — seed-point corner selection; or .filletCorners(radius) for all corners` |
|
|
46
|
+
| `star()` | `polygon(tips.flatMap((tip, i) => [tip, valleys[i]])) with tips = polygonVertices(n, outerR, { startDeg: -90 }) and valleys = polygonVertices(n, innerR, { startDeg: -90 + 180 / n })` |
|
|
47
|
+
| `ConstrainedSketchBuilder.importPoint()` | `sk.point(pt.x, pt.y, fixed) — constraint methods auto-import Point2D values directly` |
|
|
48
|
+
| `ConstrainedSketchBuilder.importLine()` | `sk.line(sk.point(l.start.x, l.start.y, fixed), sk.point(l.end.x, l.end.y, fixed)) — constraint methods auto-import Line2D values directly` |
|
|
49
|
+
| `ConstrainedSketchBuilder.importRectangle()` | `sk.rect({ x, y, width, height }) — returns richer named sides (bottom/right/top/left) and vertices` |
|
|
50
|
+
|
|
51
|
+
## assembly
|
|
52
|
+
|
|
53
|
+
| Old name | Use instead |
|
|
54
|
+
|----------|-------------|
|
|
55
|
+
| `bomToCsv()` | `solvedAssembly.bomCsv() — the method form covers BOM CSV export` |
|
|
56
|
+
| `SolvedAssembly.mateExplodeHints()` | `explode hints derive automatically from connect()/match() joints — use explodeView()` |
|
|
57
|
+
| `SolvedAssembly.mateDof()` | `diagnostics for the legacy mate() solver — position parts with connect()/match() and inspect kinematics instead` |
|
|
58
|
+
| `SolvedAssembly.mateConverged()` | `diagnostics for the legacy mate() solver — position parts with connect()/match() and inspect kinematics instead` |
|
|
59
|
+
| `SolvedAssembly.toScene()` | `toSceneObjects() — same return shape; or return the SolvedAssembly directly` |
|
|
60
|
+
| `Assembly.usedPortRefs()` | `usedConnectorRefs — same ReadonlySet` |
|
|
61
|
+
| `Assembly.mate()` | `connect("Parent.connectorA", "Child.connectorB") / match("Child.connectorB", "Parent.connectorA") — connector-frame joints replace string-ref mates` |
|
|
62
|
+
| `Assembly.getPort()` | `getConnector(ref) — same "PartName.connectorName" ref; fields are partName/connectorName/connector` |
|
|
63
|
+
| `Assembly.linkToward()` | `linkAlong(name, fromLink, towardLink, distance) — same arguments; positive distance moves toward towardLink, negative moves away` |
|
|
64
|
+
| `Assembly.linkAwayFrom()` | `linkAlong(name, fromLink, awayFromLink, -distance) — negate the distance: negative values extend away from the reference link` |
|
|
65
|
+
| `Assembly.toJointsView()` | `return the Assembly directly (return mech) — solver-backed controls appear automatically; use addAnimation(name, { keyframes }) for animation clips` |
|
|
66
|
+
| `ImportedAssembly.part()` | `getPart(name, state?) — same offset-aware accessor; note that solve(state).getPart(name) does NOT apply the placeReference() offset stored on the imported assembly` |
|
|
67
|
+
| `ImportedAssembly.translate()` | `toGroup().translate(x, y, z) — the explicit toGroup(state?) call shows where kinematics become a static group; or placeReference() to position by a named point` |
|
|
68
|
+
| `ImportedAssembly.rotate()` | `toGroup().rotate(axis, angleDeg, options) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
69
|
+
| `ImportedAssembly.rotateX()` | `toGroup().rotateX(angleDeg, options) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
70
|
+
| `ImportedAssembly.rotateY()` | `toGroup().rotateY(angleDeg, options) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
71
|
+
| `ImportedAssembly.rotateZ()` | `toGroup().rotateZ(angleDeg, options) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
72
|
+
| `ImportedAssembly.scale()` | `toGroup().scale(v) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
73
|
+
| `ImportedAssembly.mirror()` | `toGroup().mirror(normal) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
74
|
+
| `ImportedAssembly.color()` | `toGroup().color(hex) — the explicit toGroup(state?) call shows where kinematics become a static group` |
|
|
75
|
+
|
|
76
|
+
## curves
|
|
77
|
+
|
|
78
|
+
| Old name | Use instead |
|
|
79
|
+
|----------|-------------|
|
|
80
|
+
| `nurbsSurface()` | `Surface.Nurbs(controlGrid, options) — same arguments and options, including thickness` |
|
|
81
|
+
| `surfacePatch()` | `Surface.Patch(curves, { approximate: true }) — Surface.Patch defaults approximate: false (pass { approximate: true } for sampled Curve3D/Vec3[] boundaries) and returns an open sheet; use .thicken(t) instead of the thickness option` |
|
|
82
|
+
| `Surface.MatchEdge()` | `Surface.Match()` |
|
|
83
|
+
| `Product.ovalProfile()` | `Product.profiles.oval(width, depth, options) — identical arguments` |
|
|
84
|
+
| `Product.roundedRectProfile()` | `Product.profiles.roundedRect(width, depth, radius) — identical arguments` |
|
|
85
|
+
| `Product.circleProfile()` | `Product.profiles.circle(diameter, options) — identical arguments` |
|
|
86
|
+
| `Product.superEllipseProfile()` | `Product.profiles.superEllipse(width, depth, options) — identical arguments` |
|
|
87
|
+
| `Product.spout()` | `Product.place(loft(sectionSketches, heights).as('spout'), ref) — loft the local spout sections at origin, then place the result on the ProductSurfaceRef frame (or ref.attach(...) with offset/inset options)` |
|
|
88
|
+
| `Product.handle()` | `sweep(gripProfile, spinePoints) with spine points derived from ref.frame().point, plus Product.place(padShape, ref) for landing pads — composes loft/sweep with connector frames instead of a fixed handle archetype` |
|
|
89
|
+
| `Curve.Polyline()` | `pass the Vec3[] points array directly — sweep(profile, points) and Curve.Trim/Reverse accept raw point arrays; use Curve.Route.fromPolyline(points) when the centerline needs bend/port metadata` |
|
|
90
|
+
| `Curve.Spline()` | `Curve.Fit(points) — exact NURBS interpolation through the same points (add { closed: true } for loops); unlike the sampled Catmull-Rom spline it works with Curve.Trim/Reverse, sweeps, and exact surface boundaries` |
|
|
91
|
+
|
|
92
|
+
## sheet-metal
|
|
93
|
+
|
|
94
|
+
| Old name | Use instead |
|
|
95
|
+
|----------|-------------|
|
|
96
|
+
| `kerfCompensateOutline()` | `sketch.offset(-kerf / 2) — or let FlatPart.profile(kerf) / Laser.kit({ kerf }) apply kerf compensation automatically` |
|
|
97
|
+
| `kerfCompensateTabs()` | `sketch.offset(kerf / 2) — or let FlatPart.profile(kerf) / Laser.kit({ kerf }) apply kerf compensation automatically` |
|
|
98
|
+
| `kerfCompensateSlots()` | `sketch.offset(kerf / 2) — or let FlatPart.profile(kerf) / Laser.kit({ kerf }) apply kerf compensation automatically` |
|
|
99
|
+
| `kerfCompensatePart()` | `FlatPart.profile(kerf) / FlatPart.solid(kerf) — or Laser.kit({ kerf }), which compensates every part automatically` |
|
|
100
|
+
| `lookupKerf()` | `Laser.lookupKerf(material, thickness, laserType)` |
|
|
101
|
+
| `flatPanel()` | `Laser.panel(name, width, height, thickness, options) — identical arguments` |
|
|
102
|
+
| `flatPart()` | `Laser.part(name, profile, thickness, edges, options) — identical arguments` |
|
|
103
|
+
| `fingerJoint()` | `Laser.fingerJoint(partA, edgeA, partB, edgeB, options) — identical arguments` |
|
|
104
|
+
| `tabSlot()` | `Laser.tabSlot(partA, edgeA, partB, edgeB, options) — identical arguments` |
|
|
105
|
+
| `assemblyPreview()` | `Laser.kit(...).assemblyPreview(options) — the kit collects joints and applies its kerf (default 0.2 mm; this standalone form defaulted kerf to 0, so use Laser.kit({ kerf: 0 }) for byte-identical preview geometry); Laser.assemblyPreview(parts, joints, options) keeps the standalone form` |
|
|
106
|
+
| `assemblyInstructions()` | `Laser.kit(...).assemblyInstructions(options) — the kit collects joints for you; Laser.instructions(parts, joints, options) keeps the standalone form` |
|
|
107
|
+
| `formatInstructions()` | `Laser.kit(...).formatInstructions(options) — or Laser.formatInstructions(result) for the standalone form` |
|
|
108
|
+
| `laserKit()` | `Laser.kit(options) — identical arguments` |
|
|
109
|
+
| `COMMON_KERFS` | `Laser.COMMON_KERFS` |
|
|
110
|
+
|
|
111
|
+
## viewport
|
|
112
|
+
|
|
113
|
+
| Old name | Use instead |
|
|
114
|
+
|----------|-------------|
|
|
115
|
+
| `viewConfig()` | `scene({ jointOverlay: { ... } }) — same keys, on the one renderer-config global` |
|
|
116
|
+
| `jointsView()` | `return the Assembly directly (return mech) — solver-backed controls appear automatically; use mech.addAnimation(name, { keyframes }) for animation clips` |
|
|
117
|
+
| `showLabels()` | `Viewport.highlight(shape, { labels: true }) — then return the shape; highlight returns void` |
|
|
118
|
+
| `highlight()` | `Viewport.highlight(target, options) — same arguments, namespaced with the other render-only overlays` |
|
|
119
|
+
|
|
120
|
+
## output
|
|
121
|
+
|
|
122
|
+
| Old name | Use instead |
|
|
123
|
+
|----------|-------------|
|
|
124
|
+
| `dimLine()` | `dim(line, opts) — dim() accepts a Line2D (or EdgeRef) directly` |
|
|
125
|
+
|
|
126
|
+
## lib
|
|
127
|
+
|
|
128
|
+
| Old name | Use instead |
|
|
129
|
+
|----------|-------------|
|
|
130
|
+
| `lib.boltHole()` | `shape.hole(face, { diameter, depth }) — face-relative blind/through holes with counterbore/countersink/thread support` |
|
|
131
|
+
| `lib.counterbore()` | `shape.hole(face, { diameter: holeDia, counterbore: { diameter: boreDia, depth: boreDepth } }) — through by default; pass depth for blind holes` |
|
|
132
|
+
| `lib.hexNut()` | `lib.nut(holeDia, { acrossFlats, height, boreDiameter: holeDia }) — exact same geometry` |
|
|
133
|
+
| `lib.sideGear()` | `lib.faceGear(options) — identical arguments` |
|
|
134
|
+
| `lib.sideGearPair()` | `lib.faceGearPair({ face, vertical, ... }) — same options with the side member renamed to face; diagnostics use facegear.* codes` |
|
|
135
|
+
| `lib.gearBodyDisk()` | `lib.gearBodies.disk(options) — identical arguments` |
|
|
136
|
+
| `lib.gearBodyDiskWithHub()` | `lib.gearBodies.diskWithHub(options) — identical arguments` |
|
|
137
|
+
| `lib.gearBodySpoked()` | `lib.gearBodies.spoked(options) — identical arguments` |
|
|
138
|
+
| `lib.gearBodyFromProfile()` | `lib.gearBodies.fromProfile(profile, options) — identical arguments` |
|
|
139
|
+
|
|
140
|
+
## sdf
|
|
141
|
+
|
|
142
|
+
| Old name | Use instead |
|
|
143
|
+
|----------|-------------|
|
|
144
|
+
| `combine()` | `sdf.combine(value, { op })` |
|
|
145
|
+
| `Sculpt.circle()` | `Sculpt.disk(radius, thickness)` |
|
|
146
|
+
| `Sculpt.path()` | `Sculpt.tube(points, options)` |
|
|
147
|
+
| `sdf.morph()` | `a.morph(b, t)` |
|
|
148
|
+
| `sdf.tpmsBlock()` | `sdf.gyroid({ cellSize, wallThickness }).intersect(sdf.box(x, y, z))` |
|
|
149
|
+
| `sdf.withinBox()` | `shape.intersect(sdf.box(x, y, z))` |
|
|
150
|
+
| `sdf.twist()` | `shape.twist(degreesPerUnit)` |
|
|
151
|
+
| `sdf.bend()` | `shape.bend(radius)` |
|
|
152
|
+
| `sdf.repeat()` | `shape.repeat(spacing, count)` |
|
|
153
|
+
| `sdf.circularArray()` | `shape.circularArray(count, offset)` |
|
|
154
|
+
| `SdfShape.move()` | `.at(x, y, z)` |
|
|
155
|
+
| `SdfShape.goop()` | `.blend(other, { radius })` |
|
|
156
|
+
| `SdfShape.keep()` | `.smoothIntersect(other, radius)` |
|
|
157
|
+
| `SdfShape.clipBox()` | `.intersect(sdf.box(x, y, z))` |
|
|
158
|
+
| `SdfShape.fillWith()` | `.intersect(pattern)` |
|
|
159
|
+
| `SdfShape.fillWithGyroid()` | `.intersect(sdf.gyroid({ cellSize, wallThickness }))` |
|
|
160
|
+
| `SdfShape.fillWithSchwarzP()` | `.intersect(sdf.schwarzP({ cellSize, wallThickness }))` |
|
|
161
|
+
| `SdfShape.fillWithDiamond()` | `.intersect(sdf.diamond({ cellSize, wallThickness }))` |
|
|
162
|
+
| `SdfShape.fillWithLidinoid()` | `.intersect(sdf.lidinoid({ cellSize, wallThickness }))` |
|