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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c3 as parseViewportCameraState } from "./scalar-sampling-budget-o90NSNmF.js";
|
|
2
2
|
const roundNumber = (value, digits) => {
|
|
3
3
|
const scale = 10 ** digits;
|
|
4
4
|
return Math.round(value * scale) / scale;
|
|
@@ -148,10 +148,78 @@ function getSceneObjectKind(object) {
|
|
|
148
148
|
if (object.shape) return "shape";
|
|
149
149
|
return "object";
|
|
150
150
|
}
|
|
151
|
+
function hasJointOverrides(overrides) {
|
|
152
|
+
return Boolean(overrides && Object.keys(overrides).length > 0);
|
|
153
|
+
}
|
|
154
|
+
function resolveJointSliderRange(joint) {
|
|
155
|
+
return {
|
|
156
|
+
min: joint.min ?? (joint.type === "prismatic" ? -100 : 0),
|
|
157
|
+
max: joint.max ?? (joint.type === "prismatic" ? 100 : 360)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
function editableJointNames(view) {
|
|
161
|
+
const coupledTargets = new Set(view.couplings.map((coupling) => coupling.joint));
|
|
162
|
+
return view.joints.filter((joint) => !joint.hidden && !coupledTargets.has(joint.name)).map((joint) => joint.name);
|
|
163
|
+
}
|
|
164
|
+
function availableText(names) {
|
|
165
|
+
return names.length > 0 ? names.join(", ") : "(none)";
|
|
166
|
+
}
|
|
167
|
+
function validateJointOverrides(view, overrides, flag = "--joint") {
|
|
168
|
+
var _a;
|
|
169
|
+
if (!hasJointOverrides(overrides)) return;
|
|
170
|
+
if (!view || view.enabled === false || view.joints.length === 0) {
|
|
171
|
+
throw new Error(`${flag} requires a Forge script that exposes Motion tab joints. Available joints: (none).`);
|
|
172
|
+
}
|
|
173
|
+
const jointsByName = new Map(view.joints.map((joint) => [joint.name, joint]));
|
|
174
|
+
const coupledTargets = new Set(view.couplings.map((coupling) => coupling.joint));
|
|
175
|
+
const available = editableJointNames(view);
|
|
176
|
+
for (const [name, value] of Object.entries(overrides)) {
|
|
177
|
+
const joint = jointsByName.get(name);
|
|
178
|
+
if (!joint) {
|
|
179
|
+
throw new Error(`Unknown joint "${name}" for ${flag}. Available editable joints: ${availableText(available)}.`);
|
|
180
|
+
}
|
|
181
|
+
if (joint.hidden) {
|
|
182
|
+
throw new Error(`Joint "${name}" is hidden and cannot be set with ${flag}. Available editable joints: ${availableText(available)}.`);
|
|
183
|
+
}
|
|
184
|
+
if (coupledTargets.has(name)) {
|
|
185
|
+
const drivers = (_a = view.couplings.find((coupling) => coupling.joint === name)) == null ? void 0 : _a.terms.map((term) => term.joint).join(", ");
|
|
186
|
+
throw new Error(
|
|
187
|
+
`Joint "${name}" is driven by a coupling and cannot be set with ${flag}.` + (drivers ? ` Set driver joint(s): ${drivers}.` : ` Available editable joints: ${availableText(available)}.`)
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
const { min, max } = resolveJointSliderRange(joint);
|
|
191
|
+
if (value < min || value > max) {
|
|
192
|
+
throw new Error(`Joint "${name}" value ${value} is outside Motion tab range [${min}, ${max}].`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
function buildBaseJointValues(joints, overrides = {}) {
|
|
197
|
+
const values = {};
|
|
198
|
+
joints.forEach((joint) => {
|
|
199
|
+
values[joint.name] = overrides[joint.name] ?? joint.defaultValue;
|
|
200
|
+
});
|
|
201
|
+
return values;
|
|
202
|
+
}
|
|
203
|
+
function formatJointNumber(value) {
|
|
204
|
+
const rounded = Number(value.toFixed(6));
|
|
205
|
+
return Object.is(rounded, -0) ? "0" : String(rounded);
|
|
206
|
+
}
|
|
207
|
+
function quoteForCli(value) {
|
|
208
|
+
return `"${value.replace(/(["\\$`])/g, "\\$1")}"`;
|
|
209
|
+
}
|
|
210
|
+
function formatCliJointPoseFlags(joints, displayedValues, coupledJointNames) {
|
|
211
|
+
return joints.filter((joint) => !joint.hidden && !coupledJointNames.has(joint.name)).map((joint) => {
|
|
212
|
+
const value = displayedValues[joint.name] ?? joint.defaultValue;
|
|
213
|
+
return `--joint ${quoteForCli(`${joint.name}=${formatJointNumber(value)}`)}`;
|
|
214
|
+
}).join(" ");
|
|
215
|
+
}
|
|
151
216
|
export {
|
|
152
217
|
getSceneObjectKind as a,
|
|
153
|
-
|
|
218
|
+
buildBaseJointValues as b,
|
|
219
|
+
formatRenderSceneCliSpec as c,
|
|
220
|
+
formatCliJointPoseFlags as f,
|
|
154
221
|
getSceneObjectTreePath as g,
|
|
155
222
|
mergeViewportRenderSceneStates as m,
|
|
156
|
-
parseRenderSceneCliSpec as p
|
|
223
|
+
parseRenderSceneCliSpec as p,
|
|
224
|
+
validateJointOverrides as v
|
|
157
225
|
};
|
|
@@ -12,7 +12,7 @@ var Module = (() => {
|
|
|
12
12
|
var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
|
|
13
13
|
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
|
|
14
14
|
if (ENVIRONMENT_IS_NODE) {
|
|
15
|
-
const { createRequire } = await import("./evalWorker-
|
|
15
|
+
const { createRequire } = await import("./evalWorker-DbNs7Dkp.js").then(function(n) {
|
|
16
16
|
return n._;
|
|
17
17
|
});
|
|
18
18
|
var require2 = createRequire(import.meta.url);
|
|
@@ -12,7 +12,7 @@ var Module = (() => {
|
|
|
12
12
|
var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
|
|
13
13
|
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
|
|
14
14
|
if (ENVIRONMENT_IS_NODE) {
|
|
15
|
-
const { createRequire } = await import("./reportWorker-
|
|
15
|
+
const { createRequire } = await import("./reportWorker-DO6hcQbh.js").then(function(n) {
|
|
16
16
|
return n._;
|
|
17
17
|
});
|
|
18
18
|
var require2 = createRequire(import.meta.url);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __vitePreload } from "./scalar-sampling-budget-
|
|
1
|
+
import { _ as __vitePreload } from "./scalar-sampling-budget-o90NSNmF.js";
|
|
2
2
|
var Module = (() => {
|
|
3
3
|
var _scriptName = import.meta.url;
|
|
4
4
|
return (async function(moduleArg = {}) {
|
|
@@ -14,7 +14,7 @@ var Module = (() => {
|
|
|
14
14
|
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
|
|
15
15
|
if (ENVIRONMENT_IS_NODE) {
|
|
16
16
|
const { createRequire } = await __vitePreload(async () => {
|
|
17
|
-
const { createRequire: createRequire2 } = await import("./scalar-sampling-budget-
|
|
17
|
+
const { createRequire: createRequire2 } = await import("./scalar-sampling-budget-o90NSNmF.js").then((n) => n.di);
|
|
18
18
|
return { createRequire: createRequire2 };
|
|
19
19
|
}, true ? [] : void 0);
|
|
20
20
|
var require2 = createRequire(import.meta.url);
|