@faicad/faijs 0.13.2 → 0.14.1
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/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +30 -4
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/boolean.d.ts +19 -0
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +51 -10
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +8 -7
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/compound-geom.d.ts +45 -0
- package/dist/api/compound-geom.d.ts.map +1 -0
- package/dist/api/compound-geom.js +85 -0
- package/dist/api/compound-geom.js.map +1 -0
- package/dist/api/compound.d.ts +2 -0
- package/dist/api/compound.d.ts.map +1 -1
- package/dist/api/compound.js +2 -0
- package/dist/api/compound.js.map +1 -1
- package/dist/api/copy.d.ts +1 -0
- package/dist/api/copy.d.ts.map +1 -1
- package/dist/api/copy.js +4 -2
- package/dist/api/copy.js.map +1 -1
- package/dist/api/edge-ref.d.ts.map +1 -1
- package/dist/api/edge-ref.js +7 -4
- package/dist/api/edge-ref.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +1 -0
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +131 -3
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/face-ref.d.ts.map +1 -1
- package/dist/api/face-ref.js +7 -4
- package/dist/api/face-ref.js.map +1 -1
- package/dist/api/fai_drill.d.ts +1 -1
- package/dist/api/fai_drill.d.ts.map +1 -1
- package/dist/api/fai_drill.js +31 -18
- package/dist/api/fai_drill.js.map +1 -1
- package/dist/api/fai_extrude.d.ts +1 -1
- package/dist/api/fai_extrude.d.ts.map +1 -1
- package/dist/api/fai_extrude.js +2 -1
- package/dist/api/fai_extrude.js.map +1 -1
- package/dist/api/fai_split.d.ts +1 -1
- package/dist/api/fai_split.d.ts.map +1 -1
- package/dist/api/fai_split.js +2 -1
- package/dist/api/fai_split.js.map +1 -1
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +6 -5
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/operations.js +16 -16
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
- package/dist/api/generated/script-face-manifest.js +0 -1
- package/dist/api/generated/script-face-manifest.js.map +1 -1
- package/dist/api/generated/script-face.d.ts +1 -4
- package/dist/api/generated/script-face.d.ts.map +1 -1
- package/dist/api/generated/script-face.js +2 -3
- package/dist/api/generated/script-face.js.map +1 -1
- package/dist/api/generated/sketching.js +1 -1
- package/dist/api/generated/sketching.js.map +1 -1
- package/dist/api/generated/topology.d.ts +0 -48
- package/dist/api/generated/topology.d.ts.map +1 -1
- package/dist/api/generated/topology.js +20 -62
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/import-brep.d.ts +36 -0
- package/dist/api/import-brep.d.ts.map +1 -0
- package/dist/api/import-brep.js +72 -0
- package/dist/api/import-brep.js.map +1 -0
- package/dist/api/import-step.d.ts +28 -0
- package/dist/api/import-step.d.ts.map +1 -0
- package/dist/api/import-step.js +57 -0
- package/dist/api/import-step.js.map +1 -0
- package/dist/api/index.d.ts +7 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +19 -5
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +2 -1
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/knurl.d.ts.map +1 -1
- package/dist/api/knurl.js +1 -0
- package/dist/api/knurl.js.map +1 -1
- package/dist/api/load.d.ts +3 -1
- package/dist/api/load.d.ts.map +1 -1
- package/dist/api/load.js +3 -1
- package/dist/api/load.js.map +1 -1
- package/dist/api/pattern.d.ts +32 -0
- package/dist/api/pattern.d.ts.map +1 -0
- package/dist/api/pattern.js +121 -0
- package/dist/api/pattern.js.map +1 -0
- package/dist/api/place.d.ts +35 -0
- package/dist/api/place.d.ts.map +1 -0
- package/dist/api/place.js +113 -0
- package/dist/api/place.js.map +1 -0
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +10 -3
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/screw.d.ts.map +1 -1
- package/dist/api/screw.js +1 -0
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts.map +1 -1
- package/dist/api/sdf.js +1 -0
- package/dist/api/sdf.js.map +1 -1
- package/dist/api/sketch.d.ts.map +1 -1
- package/dist/api/sketch.js +1 -0
- package/dist/api/sketch.js.map +1 -1
- package/dist/api/split.d.ts +31 -0
- package/dist/api/split.d.ts.map +1 -0
- package/dist/api/split.js +96 -0
- package/dist/api/split.js.map +1 -0
- package/dist/api/surface/arg-spec.d.ts +9 -0
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +49 -30
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/svgExtrude.d.ts.map +1 -1
- package/dist/api/svgExtrude.js +1 -0
- package/dist/api/svgExtrude.js.map +1 -1
- package/dist/api/text.d.ts.map +1 -1
- package/dist/api/text.js +1 -0
- package/dist/api/text.js.map +1 -1
- package/dist/api/topo-resolve.d.ts.map +1 -1
- package/dist/api/topo-resolve.js +65 -3
- package/dist/api/topo-resolve.js.map +1 -1
- package/dist/api/transform.d.ts +4 -0
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +44 -12
- package/dist/api/transform.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +34 -1
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +62 -22
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +8 -0
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brepkit.js +6 -1
- package/dist/brep/engine/adapters/brepkit.js.map +1 -1
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +24 -1
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +17 -0
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/types.d.ts +49 -6
- package/dist/brep/engine/types.d.ts.map +1 -1
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +6 -1
- package/dist/brep/export/step.js.map +1 -1
- package/dist/brep/face-evolution.d.ts +78 -8
- package/dist/brep/face-evolution.d.ts.map +1 -1
- package/dist/brep/face-evolution.js +130 -17
- package/dist/brep/face-evolution.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +27 -1
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts +19 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.js +21 -1
- package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +44 -3
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +46 -3
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.d.ts +2 -0
- package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.js +9 -1
- package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
- package/dist/cad-runtime/direct-executor.js +14 -4
- package/dist/cad-runtime/direct-executor.js.map +1 -1
- package/dist/cad-runtime/module-registry.d.ts +3 -1
- package/dist/cad-runtime/module-registry.d.ts.map +1 -1
- package/dist/cad-runtime/module-registry.js +13 -1
- package/dist/cad-runtime/module-registry.js.map +1 -1
- package/dist/cad-runtime/ports.d.ts +7 -0
- package/dist/cad-runtime/ports.d.ts.map +1 -1
- package/dist/cad-runtime/ports.js.map +1 -1
- package/dist/cad-runtime/runtime-concurrent-error.d.ts +38 -0
- package/dist/cad-runtime/runtime-concurrent-error.d.ts.map +1 -0
- package/dist/cad-runtime/runtime-concurrent-error.js +43 -0
- package/dist/cad-runtime/runtime-concurrent-error.js.map +1 -0
- package/dist/cad-runtime/runtime.d.ts +54 -2
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +186 -10
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +22 -0
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +82 -12
- package/dist/define-op.js.map +1 -1
- package/dist/fcstd/attachment.d.ts +8 -1
- package/dist/fcstd/attachment.d.ts.map +1 -1
- package/dist/fcstd/attachment.js +7 -1
- package/dist/fcstd/attachment.js.map +1 -1
- package/dist/fcstd/build-fai-zip.d.ts.map +1 -1
- package/dist/fcstd/build-fai-zip.js +12 -7
- package/dist/fcstd/build-fai-zip.js.map +1 -1
- package/dist/fcstd/codegen.d.ts +10 -1
- package/dist/fcstd/codegen.d.ts.map +1 -1
- package/dist/fcstd/codegen.js +150 -48
- package/dist/fcstd/codegen.js.map +1 -1
- package/dist/fcstd/contour.d.ts.map +1 -1
- package/dist/fcstd/contour.js +23 -24
- package/dist/fcstd/contour.js.map +1 -1
- package/dist/fcstd/convert.d.ts +2 -18
- package/dist/fcstd/convert.d.ts.map +1 -1
- package/dist/fcstd/convert.js +35 -53
- package/dist/fcstd/convert.js.map +1 -1
- package/dist/fcstd/external-geo.d.ts +12 -1
- package/dist/fcstd/external-geo.d.ts.map +1 -1
- package/dist/fcstd/external-geo.js +15 -1
- package/dist/fcstd/external-geo.js.map +1 -1
- package/dist/fcstd/feature-translate.d.ts +21 -1
- package/dist/fcstd/feature-translate.d.ts.map +1 -1
- package/dist/fcstd/feature-translate.js +108 -6
- package/dist/fcstd/feature-translate.js.map +1 -1
- package/dist/fcstd/structural-types.d.ts +83 -0
- package/dist/fcstd/structural-types.d.ts.map +1 -0
- package/dist/fcstd/structural-types.js +116 -0
- package/dist/fcstd/structural-types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lang/determinism-scanner.d.ts +62 -0
- package/dist/lang/determinism-scanner.d.ts.map +1 -0
- package/dist/lang/determinism-scanner.js +619 -0
- package/dist/lang/determinism-scanner.js.map +1 -0
- package/dist/lang/symbol-table.generated.d.ts +7 -3
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +7 -3
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +3 -2
- package/dist/mesh/index.js.map +1 -1
- package/dist/node-host/cli.d.ts.map +1 -1
- package/dist/node-host/cli.js +56 -2
- package/dist/node-host/cli.js.map +1 -1
- package/dist/runtime-state.d.ts +18 -6
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +9 -1
- package/dist/runtime-state.js.map +1 -1
- package/dist/shape.d.ts +15 -0
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +26 -3
- package/dist/shape.js.map +1 -1
- package/dist/topology/naming/build-naming.d.ts +14 -30
- package/dist/topology/naming/build-naming.d.ts.map +1 -1
- package/dist/topology/naming/build-naming.js +21 -54
- package/dist/topology/naming/build-naming.js.map +1 -1
- package/dist/topology/naming/capture-topo-ref.d.ts.map +1 -1
- package/dist/topology/naming/capture-topo-ref.js +5 -0
- package/dist/topology/naming/capture-topo-ref.js.map +1 -1
- package/dist/topology/naming/index.d.ts +3 -0
- package/dist/topology/naming/index.d.ts.map +1 -1
- package/dist/topology/naming/index.js +3 -0
- package/dist/topology/naming/index.js.map +1 -1
- package/dist/topology/naming/lineage-resolve.d.ts +80 -0
- package/dist/topology/naming/lineage-resolve.d.ts.map +1 -0
- package/dist/topology/naming/lineage-resolve.js +120 -0
- package/dist/topology/naming/lineage-resolve.js.map +1 -0
- package/dist/topology/naming/lineage.d.ts +349 -0
- package/dist/topology/naming/lineage.d.ts.map +1 -0
- package/dist/topology/naming/lineage.js +398 -0
- package/dist/topology/naming/lineage.js.map +1 -0
- package/dist/topology/naming/migrate.d.ts +41 -0
- package/dist/topology/naming/migrate.d.ts.map +1 -0
- package/dist/topology/naming/migrate.js +88 -0
- package/dist/topology/naming/migrate.js.map +1 -0
- package/dist/topology/naming/role-name.d.ts +176 -0
- package/dist/topology/naming/role-name.d.ts.map +1 -0
- package/dist/topology/naming/role-name.js +344 -0
- package/dist/topology/naming/role-name.js.map +1 -0
- package/dist/topology/naming/roles.d.ts +20 -22
- package/dist/topology/naming/roles.d.ts.map +1 -1
- package/dist/topology/naming/roles.js +51 -49
- package/dist/topology/naming/roles.js.map +1 -1
- package/dist/topology/naming/types.d.ts +65 -18
- package/dist/topology/naming/types.d.ts.map +1 -1
- package/dist/topology/naming/types.js.map +1 -1
- package/dist/weapp.d.ts +1 -1
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +1 -1
- package/dist/weapp.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fai_split.js","sourceRoot":"","sources":["../../src/api/fai_split.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * stdlib split — 分割库函数(返回具名对象 { front, back })\n *\n *\n * dispatchPath 静态判定 brep/mesh,双输出以具名对象返回(替代 outputCache 多输出写入)。\n */\n\nimport type { Shape, Vec3 } from '../mesh/types'\nimport { cad } from '../mesh'\nimport {\n splitBrep,\n solidToShape,\n translateBrep,\n} from '../brep/brep-ops'\nimport {\n dovetailBooleanSplitBrep,\n dowelOrTenonBooleanSplitBrep,\n type JoineryBasis,\n type GrooveParams,\n type DowelOrTenonParams,\n} from './brep-mirror/joinery-brep'\nimport { computeBasisFromNormal } from '../mesh/fai_split'\nimport { getBackends } from '../runtime-state'\nimport { solid, fromBrep, brepOf } from '../shape'\nimport { defineOp } from '../sdk'\nimport { assertNonZeroVec3 } from './assert'\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\n\n/** 世界坐标 → 局部坐标(含单位缩放)。 */\nfunction worldToLocalVec3(\n worldPos: Vec3,\n partTransform: { position: [number, number, number]; scale?: [number, number, number] } | undefined,\n): Vec3 {\n const offset = partTransform?.position\n if (!offset) return worldPos\n const scale = partTransform?.scale\n if (scale && (scale[0] !== 1 || scale[1] !== 1 || scale[2] !== 1)) {\n return [\n (worldPos[0] - offset[0]) / scale[0],\n (worldPos[1] - offset[1]) / scale[1],\n (worldPos[2] - offset[2]) / scale[2],\n ]\n }\n return [\n worldPos[0] - offset[0],\n worldPos[1] - offset[1],\n worldPos[2] - offset[2],\n ]\n}\n\n/** BREP 路径:OCCT 平面/榫卯分割 + 分离位移。 */\nfunction splitBrepPath(input: Shape, params: Record<string, unknown>): { front: Shape; back: Shape } {\n const kernel = getBackends().kernel.brep as BrepEngineApi | null\n if (!kernel) throw new Error('[stdlib/split] no OCCT kernel')\n const inputSolid = brepOf(input) as BrepHandle | undefined\n if (!inputSolid) throw new Error('[stdlib/split] input is not BREP')\n\n const cutMode = (params.cutMode as string) ?? 'plane'\n const normal = (params.normal as Vec3) ?? [0, 0, 1]\n const offset = typeof params.offset === 'number' ? params.offset : 0\n const inPlaneAngleDeg = typeof params.inPlaneAngleDeg === 'number' ? params.inPlaneAngleDeg : 0\n const bbCenter = (params.bbCenter as Vec3) ?? cad.bboxCenter(input)\n const bboxSize = (params.bboxSize as Vec3) ?? cad.boundingBox(input).max.map(\n (v, i) => v - cad.boundingBox(input).min[i],\n ) as Vec3\n\n const partTransform = getBackends().config.partTransform\n const localBbCenter = worldToLocalVec3(bbCenter, partTransform)\n const scale = partTransform?.scale\n const hasScale = scale && (scale[0] !== 1 || scale[1] !== 1 || scale[2] !== 1)\n const localBboxSize: Vec3 = hasScale\n ? [bboxSize[0] / scale![0], bboxSize[1] / scale![1], bboxSize[2] / scale![2]]\n : bboxSize\n\n const planeCenter: Vec3 = [\n localBbCenter[0] + offset * normal[0],\n localBbCenter[1] + offset * normal[1],\n localBbCenter[2] + offset * normal[2],\n ]\n const originOffset = normal[0] * planeCenter[0] + normal[1] * planeCenter[1] + normal[2] * planeCenter[2]\n\n const { widthDir, depthDir } = computeBasisFromNormal(normal, inPlaneAngleDeg)\n const basis: JoineryBasis = {\n normal: normal as Vec3,\n widthDir: widthDir as Vec3,\n depthDir: depthDir as Vec3,\n planeCenter: planeCenter as Vec3,\n originOffset,\n }\n\n let frontSolid: BrepHandle\n let backSolid: BrepHandle\n\n if (cutMode === 'dovetail') {\n const groove: GrooveParams = {\n depth: (params.grooveDepth as number) ?? 0,\n depthTolerance: (params.grooveDepthTolerance as number) ?? 0,\n width: (params.grooveWidth as number) ?? 0,\n widthTolerance: (params.grooveWidthTolerance as number) ?? 0,\n flapsAngle: (params.grooveFlapsAngle as number) ?? 0,\n }\n const result = dovetailBooleanSplitBrep(kernel, inputSolid, basis, groove)\n frontSolid = result.front\n backSolid = result.back\n } else if (cutMode === 'dowel' || cutMode === 'straight-tenon' || cutMode === 'tenon') {\n const shape: 'dowel' | 'tenon' = cutMode === 'dowel' ? 'dowel' : 'tenon'\n let joineryParams: DowelOrTenonParams\n if (cutMode === 'dowel') {\n joineryParams = {\n size: (params.dowelDiameter as number) ?? 0,\n sizeTolerance: (params.dowelDiameterTolerance as number) ?? 0,\n height: (params.dowelHeight as number) ?? 0,\n heightTolerance: (params.dowelHeightTolerance as number) ?? 0,\n }\n } else {\n joineryParams = {\n size: (params.tenonSideLength as number) ?? 0,\n sizeTolerance: (params.tenonSideLengthTolerance as number) ?? 0,\n height: (params.tenonHeight as number) ?? 0,\n heightTolerance: (params.tenonHeightTolerance as number) ?? 0,\n }\n }\n const selectedSections = params.selectedSections as number[] | null | undefined\n const result = dowelOrTenonBooleanSplitBrep(\n kernel, inputSolid, basis, shape, joineryParams, selectedSections ?? null,\n )\n frontSolid = result.front\n backSolid = result.back\n } else {\n const splitResult = splitBrep(kernel, inputSolid, {\n normal: normal as Vec3,\n originOffset,\n planeCenter: planeCenter as Vec3,\n })\n frontSolid = splitResult.front\n backSolid = splitResult.back\n }\n\n // 分离位移:与 mesh 路径 finalizeExplode 同公式(bbox 对角线 2% + joinery 深度一半)\n const applyExplode = (params.applyExplode as boolean | undefined) ?? true\n if (applyExplode) {\n const bboxDiagonal = Math.sqrt(\n localBboxSize[0] * localBboxSize[0] + localBboxSize[1] * localBboxSize[1] + localBboxSize[2] * localBboxSize[2],\n )\n const baseOffset = bboxDiagonal * 0.02\n let joineryOffset = 0\n if (cutMode === 'dovetail') {\n joineryOffset = ((params.grooveDepth as number) ?? 0) / 2\n } else if (cutMode === 'dowel') {\n joineryOffset = ((params.dowelHeight as number) ?? 0) / 2\n } else if (cutMode === 'straight-tenon' || cutMode === 'tenon') {\n joineryOffset = ((params.tenonHeight as number) ?? 0) / 2\n }\n const frontOffset = baseOffset + joineryOffset\n const backOffset = -(baseOffset + joineryOffset)\n const frontTranslated = translateBrep(kernel, frontSolid, [\n normal[0] * frontOffset,\n normal[1] * frontOffset,\n normal[2] * frontOffset,\n ])\n const backTranslated = translateBrep(kernel, backSolid, [\n normal[0] * backOffset,\n normal[1] * backOffset,\n normal[2] * backOffset,\n ])\n kernel.release(frontSolid)\n kernel.release(backSolid)\n frontSolid = frontTranslated\n backSolid = backTranslated\n }\n\n const frontShape = fromBrep(solidToShape(kernel, frontSolid), { solid: frontSolid })\n const backShape = fromBrep(solidToShape(kernel, backSolid), { solid: backSolid })\n return { front: frontShape, back: backShape }\n}\n\n/** mesh 路径:manifold-3d mesh-CSG。 */\nasync function splitMeshPath(input: Shape, params: Record<string, unknown>): Promise<{ front: Shape; back: Shape }> {\n const cutMode = (params.cutMode as string) ?? 'plane'\n const normal = (params.normal as Vec3) ?? [0, 0, 1]\n const offset = typeof params.offset === 'number' ? params.offset : 0\n const inPlaneAngleDeg = typeof params.inPlaneAngleDeg === 'number' ? params.inPlaneAngleDeg : 0\n const bbCenter = (params.bbCenter as Vec3) ?? cad.bboxCenter(input)\n const bboxSize = (params.bboxSize as Vec3) ?? cad.boundingBox(input).max.map(\n (v, i) => v - cad.boundingBox(input).min[i],\n ) as Vec3\n\n const partTransform = getBackends().config.partTransform\n const localBbCenter = worldToLocalVec3(bbCenter, partTransform)\n const scale = partTransform?.scale\n const hasScale = scale && (scale[0] !== 1 || scale[1] !== 1 || scale[2] !== 1)\n const localBboxSize: Vec3 = hasScale\n ? [bboxSize[0] / scale![0], bboxSize[1] / scale![1], bboxSize[2] / scale![2]]\n : bboxSize\n\n const result = await cad.fai_splitWithParams({\n shape: input,\n cutMode: cutMode as 'plane' | 'dovetail' | 'dowel' | 'straight-tenon' | 'tenon' | 'straight',\n normal,\n offset,\n inPlaneAngleDeg,\n bbCenter: localBbCenter,\n bboxSize: localBboxSize,\n groove: params.grooveDepth !== undefined ? {\n depth: params.grooveDepth as number,\n depthTolerance: (params.grooveDepthTolerance as number) ?? 0,\n width: (params.grooveWidth as number) ?? 0,\n widthTolerance: (params.grooveWidthTolerance as number) ?? 0,\n flapsAngle: (params.grooveFlapsAngle as number) ?? 0,\n } : undefined,\n dowel: params.dowelDiameter !== undefined ? {\n diameter: params.dowelDiameter as number,\n diameterTolerance: (params.dowelDiameterTolerance as number) ?? 0,\n height: (params.dowelHeight as number) ?? 0,\n heightTolerance: (params.dowelHeightTolerance as number) ?? 0,\n } : undefined,\n tenon: params.tenonSideLength !== undefined ? {\n sideLength: params.tenonSideLength as number,\n sideLengthTolerance: (params.tenonSideLengthTolerance as number) ?? 0,\n height: (params.tenonHeight as number) ?? 0,\n heightTolerance: (params.tenonHeightTolerance as number) ?? 0,\n } : undefined,\n selectedSections: params.selectedSections as number[] | null | undefined,\n applyExplode: (params.applyExplode as boolean | undefined) ?? true,\n })\n\n return { front: solid(result.front), back: solid(result.back) }\n}\n\n/**\n * 分割几何,返回具名对象 { front, back } 两个独立零件。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual warn\n * @name fai_split\n * @deprecated `fai_` 前缀 op 是 ../3d_editor 项目特有的操作,不属于 faijs 平台面;将来会迁往该项目并从 faijs 删除。新代码请勿使用。\n * @returns { front: Shape; back: Shape } 必须用解构 `const { front: partA, back: partB } = await cad.fai_split(...)` 取出两个零件。\n * @param input - 目标几何。type:Shape required:true\n * @param params.cutMode - 切割模式。type:'plane' | 'dovetail' | 'dowel' | 'tenon' | 'straight-tenon' | 'straight' 默认 'plane'\n * @param params.normal - 切割面法向。type:[x,y,z] 默认 [0,0,1]\n * @param params.offset - 切割面沿法向偏移(过 bbCenter)。type:number 默认 0\n * @param params.inPlaneAngleDeg - 切割面面内旋转角(度)。type:number 默认 0\n * @param params.bbCenter - 包围盒中心(缺省自动推导)。type:[x,y,z] 默认 自动\n * @param params.bboxSize - 包围盒尺寸(缺省自动推导)。type:[x,y,z] 默认 自动\n * @param params.applyExplode - 是否将两侧沿法向分离位移(bbox 对角线 2% + 榫卯深度一半)。type:boolean 默认 true\n * @param params.grooveDepth - 燕尾槽深(cutMode='dovetail')。type:number\n * @param params.grooveWidth - 燕尾槽宽(cutMode='dovetail')。type:number\n * @param params.grooveDepthTolerance - 燕尾槽深公差。type:number\n * @param params.grooveWidthTolerance - 燕尾槽宽公差。type:number\n * @param params.grooveFlapsAngle - 燕尾槽翼角(度)。type:number\n * @param params.dowelDiameter - 定位销直径(cutMode='dowel')。type:number\n * @param params.dowelDiameterTolerance - 定位销直径公差。type:number\n * @param params.dowelHeight - 定位销高度。type:number\n * @param params.dowelHeightTolerance - 定位销高度公差。type:number\n * @param params.tenonSideLength - 直榫边长(cutMode='tenon'/'straight-tenon')。type:number\n * @param params.tenonSideLengthTolerance - 直榫边长公差。type:number\n * @param params.tenonHeight - 直榫高度。type:number\n * @param params.tenonHeightTolerance - 直榫高度公差。type:number\n * @param params.selectedSections - 参与榫卯的截面下标。type:number[]\n * @note 切割面统一用 `normal`/`offset`/`inPlaneAngleDeg` 描述;早期文本层曾与执行层键名断裂(planeRotation/planePosition),已修并统一为上述键名。\n * @example\n * const { front: part1, back: part2 } = await cad.fai_split(part0, { normal: [0, 0, 1], offset: 5, cutMode: 'dovetail', grooveDepth: 3, grooveWidth: 5 })\n */\nexport const fai_split = defineOp({\n mesh: (input: Shape, params: Record<string, unknown> = {}) => {\n if (!input) throw new Error('[stdlib/split] no input geometry')\n if (params.normal !== undefined && params.normal !== null) {\n assertNonZeroVec3(params.normal, 'split.normal')\n }\n return splitMeshPath(input, params)\n },\n brep: (input: Shape, params: Record<string, unknown> = {}) => {\n if (!input) throw new Error('[stdlib/split] no input geometry')\n if (params.normal !== undefined && params.normal !== null) {\n assertNonZeroVec3(params.normal, 'split.normal')\n }\n return splitBrepPath(input, params)\n },\n outputs: ['front', 'back'],\n})\n"]}
|
|
1
|
+
{"version":3,"file":"fai_split.js","sourceRoot":"","sources":["../../src/api/fai_split.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * stdlib split — 分割库函数(返回具名对象 { front, back })\n *\n *\n * dispatchPath 静态判定 brep/mesh,双输出以具名对象返回(替代 outputCache 多输出写入)。\n */\n\nimport type { Shape, Vec3 } from '../mesh/types'\nimport { cad } from '../mesh'\nimport {\n splitBrep,\n solidToShape,\n translateBrep,\n} from '../brep/brep-ops'\nimport {\n dovetailBooleanSplitBrep,\n dowelOrTenonBooleanSplitBrep,\n type JoineryBasis,\n type GrooveParams,\n type DowelOrTenonParams,\n} from './brep-mirror/joinery-brep'\nimport { computeBasisFromNormal } from '../mesh/fai_split'\nimport { getBackends } from '../runtime-state'\nimport { solid, fromBrep, brepOf } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\nimport { assertNonZeroVec3 } from './assert'\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\n\n/** 世界坐标 → 局部坐标(含单位缩放)。 */\nfunction worldToLocalVec3(\n worldPos: Vec3,\n partTransform: { position: [number, number, number]; scale?: [number, number, number] } | undefined,\n): Vec3 {\n const offset = partTransform?.position\n if (!offset) return worldPos\n const scale = partTransform?.scale\n if (scale && (scale[0] !== 1 || scale[1] !== 1 || scale[2] !== 1)) {\n return [\n (worldPos[0] - offset[0]) / scale[0],\n (worldPos[1] - offset[1]) / scale[1],\n (worldPos[2] - offset[2]) / scale[2],\n ]\n }\n return [\n worldPos[0] - offset[0],\n worldPos[1] - offset[1],\n worldPos[2] - offset[2],\n ]\n}\n\n/** BREP 路径:OCCT 平面/榫卯分割 + 分离位移。 */\nfunction splitBrepPath(input: Shape, params: Record<string, unknown>): { front: Shape; back: Shape } {\n const kernel = getBackends().kernel.brep as BrepEngineApi | null\n if (!kernel) throw new Error('[stdlib/split] no OCCT kernel')\n const inputSolid = brepOf(input) as BrepHandle | undefined\n if (!inputSolid) throw new Error('[stdlib/split] input is not BREP')\n\n const cutMode = (params.cutMode as string) ?? 'plane'\n const normal = (params.normal as Vec3) ?? [0, 0, 1]\n const offset = typeof params.offset === 'number' ? params.offset : 0\n const inPlaneAngleDeg = typeof params.inPlaneAngleDeg === 'number' ? params.inPlaneAngleDeg : 0\n const bbCenter = (params.bbCenter as Vec3) ?? cad.bboxCenter(input)\n const bboxSize = (params.bboxSize as Vec3) ?? cad.boundingBox(input).max.map(\n (v, i) => v - cad.boundingBox(input).min[i],\n ) as Vec3\n\n const partTransform = getBackends().config.partTransform\n const localBbCenter = worldToLocalVec3(bbCenter, partTransform)\n const scale = partTransform?.scale\n const hasScale = scale && (scale[0] !== 1 || scale[1] !== 1 || scale[2] !== 1)\n const localBboxSize: Vec3 = hasScale\n ? [bboxSize[0] / scale![0], bboxSize[1] / scale![1], bboxSize[2] / scale![2]]\n : bboxSize\n\n const planeCenter: Vec3 = [\n localBbCenter[0] + offset * normal[0],\n localBbCenter[1] + offset * normal[1],\n localBbCenter[2] + offset * normal[2],\n ]\n const originOffset = normal[0] * planeCenter[0] + normal[1] * planeCenter[1] + normal[2] * planeCenter[2]\n\n const { widthDir, depthDir } = computeBasisFromNormal(normal, inPlaneAngleDeg)\n const basis: JoineryBasis = {\n normal: normal as Vec3,\n widthDir: widthDir as Vec3,\n depthDir: depthDir as Vec3,\n planeCenter: planeCenter as Vec3,\n originOffset,\n }\n\n let frontSolid: BrepHandle\n let backSolid: BrepHandle\n\n if (cutMode === 'dovetail') {\n const groove: GrooveParams = {\n depth: (params.grooveDepth as number) ?? 0,\n depthTolerance: (params.grooveDepthTolerance as number) ?? 0,\n width: (params.grooveWidth as number) ?? 0,\n widthTolerance: (params.grooveWidthTolerance as number) ?? 0,\n flapsAngle: (params.grooveFlapsAngle as number) ?? 0,\n }\n const result = dovetailBooleanSplitBrep(kernel, inputSolid, basis, groove)\n frontSolid = result.front\n backSolid = result.back\n } else if (cutMode === 'dowel' || cutMode === 'straight-tenon' || cutMode === 'tenon') {\n const shape: 'dowel' | 'tenon' = cutMode === 'dowel' ? 'dowel' : 'tenon'\n let joineryParams: DowelOrTenonParams\n if (cutMode === 'dowel') {\n joineryParams = {\n size: (params.dowelDiameter as number) ?? 0,\n sizeTolerance: (params.dowelDiameterTolerance as number) ?? 0,\n height: (params.dowelHeight as number) ?? 0,\n heightTolerance: (params.dowelHeightTolerance as number) ?? 0,\n }\n } else {\n joineryParams = {\n size: (params.tenonSideLength as number) ?? 0,\n sizeTolerance: (params.tenonSideLengthTolerance as number) ?? 0,\n height: (params.tenonHeight as number) ?? 0,\n heightTolerance: (params.tenonHeightTolerance as number) ?? 0,\n }\n }\n const selectedSections = params.selectedSections as number[] | null | undefined\n const result = dowelOrTenonBooleanSplitBrep(\n kernel, inputSolid, basis, shape, joineryParams, selectedSections ?? null,\n )\n frontSolid = result.front\n backSolid = result.back\n } else {\n const splitResult = splitBrep(kernel, inputSolid, {\n normal: normal as Vec3,\n originOffset,\n planeCenter: planeCenter as Vec3,\n })\n frontSolid = splitResult.front\n backSolid = splitResult.back\n }\n\n // 分离位移:与 mesh 路径 finalizeExplode 同公式(bbox 对角线 2% + joinery 深度一半)\n const applyExplode = (params.applyExplode as boolean | undefined) ?? true\n if (applyExplode) {\n const bboxDiagonal = Math.sqrt(\n localBboxSize[0] * localBboxSize[0] + localBboxSize[1] * localBboxSize[1] + localBboxSize[2] * localBboxSize[2],\n )\n const baseOffset = bboxDiagonal * 0.02\n let joineryOffset = 0\n if (cutMode === 'dovetail') {\n joineryOffset = ((params.grooveDepth as number) ?? 0) / 2\n } else if (cutMode === 'dowel') {\n joineryOffset = ((params.dowelHeight as number) ?? 0) / 2\n } else if (cutMode === 'straight-tenon' || cutMode === 'tenon') {\n joineryOffset = ((params.tenonHeight as number) ?? 0) / 2\n }\n const frontOffset = baseOffset + joineryOffset\n const backOffset = -(baseOffset + joineryOffset)\n const frontTranslated = translateBrep(kernel, frontSolid, [\n normal[0] * frontOffset,\n normal[1] * frontOffset,\n normal[2] * frontOffset,\n ])\n const backTranslated = translateBrep(kernel, backSolid, [\n normal[0] * backOffset,\n normal[1] * backOffset,\n normal[2] * backOffset,\n ])\n kernel.release(frontSolid)\n kernel.release(backSolid)\n frontSolid = frontTranslated\n backSolid = backTranslated\n }\n\n const frontShape = fromBrep(solidToShape(kernel, frontSolid), { solid: frontSolid })\n const backShape = fromBrep(solidToShape(kernel, backSolid), { solid: backSolid })\n return { front: frontShape, back: backShape }\n}\n\n/** mesh 路径:manifold-3d mesh-CSG。 */\nasync function splitMeshPath(input: Shape, params: Record<string, unknown>): Promise<{ front: Shape; back: Shape }> {\n const cutMode = (params.cutMode as string) ?? 'plane'\n const normal = (params.normal as Vec3) ?? [0, 0, 1]\n const offset = typeof params.offset === 'number' ? params.offset : 0\n const inPlaneAngleDeg = typeof params.inPlaneAngleDeg === 'number' ? params.inPlaneAngleDeg : 0\n const bbCenter = (params.bbCenter as Vec3) ?? cad.bboxCenter(input)\n const bboxSize = (params.bboxSize as Vec3) ?? cad.boundingBox(input).max.map(\n (v, i) => v - cad.boundingBox(input).min[i],\n ) as Vec3\n\n const partTransform = getBackends().config.partTransform\n const localBbCenter = worldToLocalVec3(bbCenter, partTransform)\n const scale = partTransform?.scale\n const hasScale = scale && (scale[0] !== 1 || scale[1] !== 1 || scale[2] !== 1)\n const localBboxSize: Vec3 = hasScale\n ? [bboxSize[0] / scale![0], bboxSize[1] / scale![1], bboxSize[2] / scale![2]]\n : bboxSize\n\n const result = await cad.fai_splitWithParams({\n shape: input,\n cutMode: cutMode as 'plane' | 'dovetail' | 'dowel' | 'straight-tenon' | 'tenon' | 'straight',\n normal,\n offset,\n inPlaneAngleDeg,\n bbCenter: localBbCenter,\n bboxSize: localBboxSize,\n groove: params.grooveDepth !== undefined ? {\n depth: params.grooveDepth as number,\n depthTolerance: (params.grooveDepthTolerance as number) ?? 0,\n width: (params.grooveWidth as number) ?? 0,\n widthTolerance: (params.grooveWidthTolerance as number) ?? 0,\n flapsAngle: (params.grooveFlapsAngle as number) ?? 0,\n } : undefined,\n dowel: params.dowelDiameter !== undefined ? {\n diameter: params.dowelDiameter as number,\n diameterTolerance: (params.dowelDiameterTolerance as number) ?? 0,\n height: (params.dowelHeight as number) ?? 0,\n heightTolerance: (params.dowelHeightTolerance as number) ?? 0,\n } : undefined,\n tenon: params.tenonSideLength !== undefined ? {\n sideLength: params.tenonSideLength as number,\n sideLengthTolerance: (params.tenonSideLengthTolerance as number) ?? 0,\n height: (params.tenonHeight as number) ?? 0,\n heightTolerance: (params.tenonHeightTolerance as number) ?? 0,\n } : undefined,\n selectedSections: params.selectedSections as number[] | null | undefined,\n applyExplode: (params.applyExplode as boolean | undefined) ?? true,\n })\n\n return { front: solid(result.front), back: solid(result.back) }\n}\n\n/**\n * 分割几何,返回具名对象 { front, back } 两个独立零件。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual warn\n * @name fai_split\n * @deprecated **`../3d_editor` 消费面**(原 `@deprecated` 措辞已于 2026-09-22 校正):`fai_` 前缀 op 为编辑器应用提供,不属 faijs 平台面,但**不是废弃项**——它服务真实负载。**变更其 API 形态必须同步更新 `../3d_editor`**(见 `docs/plans/2026-09-22-topology-identity-development-plan.md` §2)。faijs 平台面不提供等价 op(需要时须按平台需求另行设计,不得直接搬用本 op)。\n * @returns { front: Shape; back: Shape } 必须用解构 `const { front: partA, back: partB } = await cad.fai_split(...)` 取出两个零件。\n * @param input - 目标几何。type:Shape required:true\n * @param params.cutMode - 切割模式。type:'plane' | 'dovetail' | 'dowel' | 'tenon' | 'straight-tenon' | 'straight' 默认 'plane'\n * @param params.normal - 切割面法向。type:[x,y,z] 默认 [0,0,1]\n * @param params.offset - 切割面沿法向偏移(过 bbCenter)。type:number 默认 0\n * @param params.inPlaneAngleDeg - 切割面面内旋转角(度)。type:number 默认 0\n * @param params.bbCenter - 包围盒中心(缺省自动推导)。type:[x,y,z] 默认 自动\n * @param params.bboxSize - 包围盒尺寸(缺省自动推导)。type:[x,y,z] 默认 自动\n * @param params.applyExplode - 是否将两侧沿法向分离位移(bbox 对角线 2% + 榫卯深度一半)。type:boolean 默认 true\n * @param params.grooveDepth - 燕尾槽深(cutMode='dovetail')。type:number\n * @param params.grooveWidth - 燕尾槽宽(cutMode='dovetail')。type:number\n * @param params.grooveDepthTolerance - 燕尾槽深公差。type:number\n * @param params.grooveWidthTolerance - 燕尾槽宽公差。type:number\n * @param params.grooveFlapsAngle - 燕尾槽翼角(度)。type:number\n * @param params.dowelDiameter - 定位销直径(cutMode='dowel')。type:number\n * @param params.dowelDiameterTolerance - 定位销直径公差。type:number\n * @param params.dowelHeight - 定位销高度。type:number\n * @param params.dowelHeightTolerance - 定位销高度公差。type:number\n * @param params.tenonSideLength - 直榫边长(cutMode='tenon'/'straight-tenon')。type:number\n * @param params.tenonSideLengthTolerance - 直榫边长公差。type:number\n * @param params.tenonHeight - 直榫高度。type:number\n * @param params.tenonHeightTolerance - 直榫高度公差。type:number\n * @param params.selectedSections - 参与榫卯的截面下标。type:number[]\n * @note 切割面统一用 `normal`/`offset`/`inPlaneAngleDeg` 描述;早期文本层曾与执行层键名断裂(planeRotation/planePosition),已修并统一为上述键名。\n * @example\n * const { front: part1, back: part2 } = await cad.fai_split(part0, { normal: [0, 0, 1], offset: 5, cutMode: 'dovetail', grooveDepth: 3, grooveWidth: 5 })\n */\nexport const fai_split = defineOp({\n mesh: (input: Shape, params: Record<string, unknown> = {}) => {\n if (!input) throw new Error('[stdlib/split] no input geometry')\n if (params.normal !== undefined && params.normal !== null) {\n assertNonZeroVec3(params.normal, 'split.normal')\n }\n return splitMeshPath(input, params)\n },\n brep: (input: Shape, params: Record<string, unknown> = {}) => {\n if (!input) throw new Error('[stdlib/split] no input geometry')\n if (params.normal !== undefined && params.normal !== null) {\n assertNonZeroVec3(params.normal, 'split.normal')\n }\n return splitBrepPath(input, params)\n },\n outputs: ['front', 'back'],\n naming: { kind: 'subdivide' } as Provenance,\n})\n"]}
|
package/dist/api/fillet.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillet.d.ts","sourceRoot":"","sources":["../../src/api/fillet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"fillet.d.ts","sourceRoot":"","sources":["../../src/api/fillet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAe1C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAkBxE;AAoED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM;;CAOjB,CAAA"}
|
package/dist/api/fillet.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import { solidToShape } from '../brep/brep-ops.js';
|
|
20
20
|
import { filletWithRoleTable } from '../brep/face-evolution.js';
|
|
21
21
|
import { getBackends, getCurrentStmt } from '../runtime-state.js';
|
|
22
|
-
import { fromBrep, brepOf,
|
|
22
|
+
import { fromBrep, brepOf, inputRoleTable } from '../shape.js';
|
|
23
23
|
import { defineOp } from '../sdk.js';
|
|
24
24
|
import { resolveTopoRef, TopoRefError } from '../topology/naming/index.js';
|
|
25
25
|
import { buildEdgeResolutionContext } from './topo-resolve.js';
|
|
@@ -84,14 +84,14 @@ function filletBrep(input, params) {
|
|
|
84
84
|
throw new TopoRefError('E_TOPO_NOT_FOUND', 'edge', 'fillet: input has no edge naming context');
|
|
85
85
|
// 解析所有 EdgeTopoRef → Edge 句柄
|
|
86
86
|
const edgeHandles = edges.map((e) => resolveEdge(ctx, e));
|
|
87
|
-
// 输入 roleTable +
|
|
88
|
-
const
|
|
89
|
-
const
|
|
87
|
+
// 输入 roleTable + outStmt(与 boolean.ts 同构)。Phase 1.6:origin=本次语句 StmtId。
|
|
88
|
+
const inputTable = inputRoleTable(input);
|
|
89
|
+
const outStmt = String(getCurrentStmt()?.id ?? '');
|
|
90
90
|
let resultSolid;
|
|
91
91
|
let faceEvolution;
|
|
92
92
|
let roleTable;
|
|
93
93
|
try {
|
|
94
|
-
const r = filletWithRoleTable(kernel, solid, edgeHandles, radius,
|
|
94
|
+
const r = filletWithRoleTable(kernel, solid, edgeHandles, radius, inputTable ?? new Map(), outStmt);
|
|
95
95
|
resultSolid = r.result;
|
|
96
96
|
faceEvolution = r.faceEvolution;
|
|
97
97
|
roleTable = r.roleTable;
|
|
@@ -123,5 +123,6 @@ export const fillet = defineOp({
|
|
|
123
123
|
assertFilletParams(params);
|
|
124
124
|
return filletBrep(input, params);
|
|
125
125
|
},
|
|
126
|
+
naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
|
|
126
127
|
});
|
|
127
128
|
//# sourceMappingURL=fillet.js.map
|
package/dist/api/fillet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillet.js","sourceRoot":"","sources":["../../src/api/fillet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"fillet.js","sourceRoot":"","sources":["../../src/api/fillet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAIjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAE3D,sCAAsC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA+B;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAwB,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;QACpG,CAAC;QACD,MAAM,KAAK,GAAI,CAAyB,CAAC,KAAK,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;QACpG,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,SAAS,WAAW,CAAC,GAAsB,EAAE,GAAgB;IAC3D,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,yCAAyC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;IACxI,CAAC;IACD,OAAO,CAAC,CAAC,MAAoB,CAAA;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAAY;IACtC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5D,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAY,CAAA;IAC3E,OAAO,IAAI,KAAK,CAAC,mDAAmD,GAAG,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED,kCAAkC;AAClC,SAAS,UAAU,CAAC,KAAY,EAAE,MAA+B;IAC/D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,IAA4B,CAAA;IAChE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA2B,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAEzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAsB,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAA;IACtC,MAAM,GAAG,GAAG,0BAA0B,CAAC,MAAM,EAAE,KAAe,CAAC,CAAA;IAC/D,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,0CAA0C,CAAC,CAAA;IAExG,6BAA6B;IAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAEzD,wEAAwE;IACxE,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAA8C,CAAA;IACrF,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAElD,IAAI,WAAuB,CAAA;IAC3B,IAAI,aAAgD,CAAA;IACpD,IAAI,SAAoD,CAAA;IAExD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,mBAAmB,CAC3B,MAAM,EACN,KAAK,EACL,WAAW,EACX,MAAM,EACN,UAAU,IAAI,IAAI,GAAG,EAAE,EACvB,OAAO,CACR,CAAA;QACD,WAAW,GAAG,CAAC,CAAC,MAAM,CAAA;QACtB,aAAa,GAAG,CAAC,CAAC,aAAa,CAAA;QAC/B,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,QAAQ,CACb,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,EACjC,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,CACjD,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,IAAI,CAAC,KAAY,EAAE,MAA+B;QAChD,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAgB;CAC3E,CAAC,CAAA","sourcesContent":["/**\n * stdlib fillet — fillet 圆角库函数(BREP-only,directEdit 能力)\n *\n *\n * 与 chamfer 的差异:fillet 用 filletWithHistory 走面演化 + roleTable 传播\n * (chamfer 在 P5 同步改造)。M1 只支持等半径;M2 计划支持变半径与几何限定符。\n *\n * 设计见 docs/plans/2026-09-10-fillet-op-and-editor-ui.md §2–§3。\n *\n * M1:\n * - 等半径(number):kernel.filletWithHistory(solid, edges, radius, hashes, bound)\n * - 走 filletWithRoleTable 传播 roleTable(§3.2)\n * - BREP-only:mesh 输入 → E_MESH_UNSUPPORTED(backend-dispatch 静态判定)\n *\n * M2(未实施):\n * - 变半径 [r1, r2]:filletVariable + 单边 + 不产 roleTable(§3.3 降级)\n * - 几何限定符字符串选边(§4)\n */\n\nimport type { Shape } from '../mesh/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { filletWithRoleTable } from '../brep/face-evolution'\nimport { getBackends, getCurrentStmt } from '../runtime-state'\nimport { fromBrep, brepOf, inputRoleTable } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport type { EdgeTopoRef, ResolutionContext } from '../topology/naming'\nimport { resolveTopoRef, TopoRefError } from '../topology/naming'\nimport type { Provenance } from '../topology/naming/lineage'\nimport { buildEdgeResolutionContext } from './topo-resolve'\n\n// ── 参数自校验(stdlib 被直接 import 时的防御层)──\n\n/**\n * Validate fillet parameters: `edges` must be a non-empty array of EdgeTopoRef,\n * each with kind key \"edge\" and a two-entry faces pair; `radius` must be a\n * positive number (M1: uniform radius only).\n * @param params the raw fillet operation parameters.\n */\nexport function assertFilletParams(params: Record<string, unknown>): void {\n const edges = params.edges\n if (!Array.isArray(edges) || edges.length === 0) {\n throw new Error('E_FILLET_NO_EDGES: fillet requires at least one edge')\n }\n for (const e of edges) {\n if (!e || typeof e !== 'object' || (e as { kind?: unknown }).kind !== 'edge') {\n throw new Error('E_FILLET_BAD_EDGE_REF: every edge entry must be an EdgeTopoRef with kind:\"edge\"')\n }\n const faces = (e as { faces?: unknown }).faces\n if (!Array.isArray(faces) || faces.length !== 2) {\n throw new Error('E_FILLET_BAD_EDGE_REF: EdgeTopoRef.faces must be a two-entry RoleQualifier pair')\n }\n }\n const radius = params.radius\n if (typeof radius !== 'number' || !Number.isFinite(radius) || radius <= 0) {\n throw new Error('E_FILLET_BAD_RADIUS: fillet.radius must be a positive number')\n }\n}\n\n/** 解析一条 EdgeTopoRef → handle;失败抛命名层 TopoRefError。 */\nfunction resolveEdge(ctx: ResolutionContext, ref: EdgeTopoRef): BrepHandle {\n const r = resolveTopoRef(ref, ctx)\n if (r.handle === undefined) {\n throw new TopoRefError('E_TOPO_NOT_FOUND', 'edge', `fillet: edge resolved without handle (${ref.faces[0].role}/${ref.faces[1].role})`)\n }\n return r.handle as BrepHandle\n}\n\n/**\n * 把内核 OcctError 回译成 E_FILLET_RADIUS_TOO_LARGE。\n *\n * OCCT 在半径超过邻面尺寸、三面交汇处、凹边处都可能失败。\n * 绝不可静默返回未圆角的原形状(§9 风险)。\n */\nfunction translateOcctError(err: unknown): Error {\n const msg = err instanceof Error ? err.message : String(err)\n if (msg.includes('E_FILLET') || msg.includes('E_TOPO')) return err as Error\n return new Error(`E_FILLET_RADIUS_TOO_LARGE: OCCT fillet failed — ${msg}`)\n}\n\n/** BREP-only 主入口(M1 等半径 flow)。 */\nfunction filletBrep(input: Shape, params: Record<string, unknown>): Shape {\n const kernel = getBackends().kernel.brep as BrepEngineApi | null\n if (!kernel) throw new Error('[stdlib/fillet] no BREP kernel')\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error('E_FILLET_NO_BREP: fillet input is not BREP')\n\n const edges = params.edges as EdgeTopoRef[]\n const radius = params.radius as number\n const ctx = buildEdgeResolutionContext(kernel, input as object)\n if (!ctx) throw new TopoRefError('E_TOPO_NOT_FOUND', 'edge', 'fillet: input has no edge naming context')\n\n // 解析所有 EdgeTopoRef → Edge 句柄\n const edgeHandles = edges.map((e) => resolveEdge(ctx, e))\n\n // 输入 roleTable + outStmt(与 boolean.ts 同构)。Phase 1.6:origin=本次语句 StmtId。\n const inputTable = inputRoleTable(input) as ReadonlyMap<unknown, unknown> | undefined\n const outStmt = String(getCurrentStmt()?.id ?? '')\n\n let resultSolid: BrepHandle\n let faceEvolution: Map<number, number[]> | undefined\n let roleTable: ReadonlyMap<unknown, unknown> | undefined\n\n try {\n const r = filletWithRoleTable(\n kernel,\n solid,\n edgeHandles,\n radius,\n inputTable ?? new Map(),\n outStmt,\n )\n resultSolid = r.result\n faceEvolution = r.faceEvolution\n roleTable = r.roleTable\n } catch (err) {\n throw translateOcctError(err)\n }\n\n return fromBrep(\n solidToShape(kernel, resultSolid),\n { solid: resultSolid, faceEvolution, roleTable },\n )\n}\n\n/**\n * 在几何体上做圆角(等半径)。仅 BREP 可用。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name fillet\n * @note 圆角是 BREP-only:非 BREP 输入抛 E_MESH_UNSUPPORTED。`radius` 为正数(mm)。\n * 圆角后 roleTable 经 filletWithHistory 传播,保证后续特征仍可按 role 选面/选边。\n * @returns Shape 圆角后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param params.edges - 参与圆角的边(EdgeTopoRef[],条目为相邻两面的 role 线路)。type:EdgeTopoRef[] required:true\n * @param params.radius - 圆角半径(mm,>0)。type:number required:true\n * @example\n * const p = await cad.fillet(part0, { edges: [{ kind:'edge', faces:[{ origin:'box', role:'box:top' }, { origin:'box', role:'box:front' }], hint:{ kind:'edge' } }], radius:2 })\n */\nexport const fillet = defineOp({\n capabilities: ['directEdit'],\n brep(input: Shape, params: Record<string, unknown>) {\n assertFilletParams(params)\n return filletBrep(input, params)\n },\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n})\n"]}
|
|
@@ -37,95 +37,95 @@ export { isInstanced } from '../../vendored/brepjs/operations/instanceFns.js';
|
|
|
37
37
|
* extrude(face: Shape, height: number|Vec3) → Shape|extrude(face: Shape, params: { length? | upTo, normal?, mode?, baseFeature?, offset? }) → Shape
|
|
38
38
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
39
39
|
*/
|
|
40
|
-
export const extrude = compatOp(projectBrepOp('extrude', ["face", "height"], 'A', __vendored_extrude), { name: 'extrude' });
|
|
40
|
+
export const extrude = compatOp(projectBrepOp('extrude', ["face", "height"], 'A', __vendored_extrude), { name: 'extrude', naming: { "kind": "construct", "newFaces": { "via": "explicit", "vocab": [{ "kind": "semantic", "name": "top" }, { "kind": "semantic", "name": "bottom" }] } } });
|
|
41
41
|
/**
|
|
42
42
|
* revolve — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
43
43
|
* revolve(face: Shape, options?: RevolveOptions): Shape
|
|
44
44
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
45
45
|
*/
|
|
46
|
-
export const revolve = compatOp(projectBrepOp('revolve', ["face", "options"], 'A', __vendored_revolve), { name: 'revolve' });
|
|
46
|
+
export const revolve = compatOp(projectBrepOp('revolve', ["face", "options"], 'A', __vendored_revolve), { name: 'revolve', naming: { "kind": "construct", "newFaces": { "via": "explicit", "vocab": [{ "kind": "semantic", "name": "top" }, { "kind": "semantic", "name": "bottom" }, { "kind": "wall", "index": 0 }] } } });
|
|
47
47
|
/**
|
|
48
48
|
* sweep — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
49
49
|
* sweep(wire: Shape, spine: Shape, config?: SweepOptions, shellMode?: boolean): Shape
|
|
50
50
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
51
51
|
*/
|
|
52
|
-
export const sweep = compatOp(projectBrepOp('sweep', ["wire", "spine", "config", "shellMode"], 'A', __vendored_sweep), { name: 'sweep' });
|
|
52
|
+
export const sweep = compatOp(projectBrepOp('sweep', ["wire", "spine", "config", "shellMode"], 'A', __vendored_sweep), { name: 'sweep', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
53
53
|
/**
|
|
54
54
|
* complexExtrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
55
55
|
* complexExtrude(wire: Shape, center: Vec3, normal: Vec3, profile?: ExtrusionProfile): Shape
|
|
56
56
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
57
57
|
*/
|
|
58
|
-
export const complexExtrude = compatOp(projectBrepOp('complexExtrude', ["wire", "center", "normal", "profile"], 'A', __vendored_complexExtrude), { name: 'complexExtrude' });
|
|
58
|
+
export const complexExtrude = compatOp(projectBrepOp('complexExtrude', ["wire", "center", "normal", "profile"], 'A', __vendored_complexExtrude), { name: 'complexExtrude', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
59
59
|
/**
|
|
60
60
|
* twistExtrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
61
61
|
* twistExtrude(wire: Shape, angleDegrees: number, center: Vec3, normal: Vec3): Shape
|
|
62
62
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
63
63
|
*/
|
|
64
|
-
export const twistExtrude = compatOp(projectBrepOp('twistExtrude', ["wire", "angleDegrees", "center", "normal"], 'A', __vendored_twistExtrude), { name: 'twistExtrude' });
|
|
64
|
+
export const twistExtrude = compatOp(projectBrepOp('twistExtrude', ["wire", "angleDegrees", "center", "normal"], 'A', __vendored_twistExtrude), { name: 'twistExtrude', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
65
65
|
/**
|
|
66
66
|
* linearPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
67
67
|
* linearPattern(shape: Shape, direction: Vec3, count: number, spacing: number): Shape
|
|
68
68
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
69
69
|
*/
|
|
70
|
-
export const linearPattern = compatOp(projectBrepOp('linearPattern', ["shape", "direction", "count", "spacing"], 'A', __vendored_linearPattern), { name: 'linearPattern' });
|
|
70
|
+
export const linearPattern = compatOp(projectBrepOp('linearPattern', ["shape", "direction", "count", "spacing"], 'A', __vendored_linearPattern), { name: 'linearPattern', naming: { "kind": "replicate", "k": 0 } });
|
|
71
71
|
/**
|
|
72
72
|
* circularPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
73
73
|
* circularPattern(shape: Shape, axis: Vec3, count: number, fullAngle?: number, center?: Vec3): Shape
|
|
74
74
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
75
75
|
*/
|
|
76
|
-
export const circularPattern = compatOp(projectBrepOp('circularPattern', ["shape", "axis", "count", "fullAngle", "center"], 'A', __vendored_circularPattern), { name: 'circularPattern' });
|
|
76
|
+
export const circularPattern = compatOp(projectBrepOp('circularPattern', ["shape", "axis", "count", "fullAngle", "center"], 'A', __vendored_circularPattern), { name: 'circularPattern', naming: { "kind": "replicate", "k": 0 } });
|
|
77
77
|
/**
|
|
78
78
|
* gridPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
79
79
|
* gridPattern(shape: Shape, directionX: Vec3, directionY: Vec3, countX: number, countY: number, spacingX: number, spacingY: number): Shape
|
|
80
80
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
81
81
|
*/
|
|
82
|
-
export const gridPattern = compatOp(projectBrepOp('gridPattern', ["shape", "directionX", "directionY", "countX", "countY", "spacingX", "spacingY"], 'A', __vendored_gridPattern), { name: 'gridPattern' });
|
|
82
|
+
export const gridPattern = compatOp(projectBrepOp('gridPattern', ["shape", "directionX", "directionY", "countX", "countY", "spacingX", "spacingY"], 'A', __vendored_gridPattern), { name: 'gridPattern', naming: { "kind": "replicate", "k": 0 } });
|
|
83
83
|
/**
|
|
84
84
|
* roof — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
85
85
|
* roof(wire: Shape, options?: RoofOptions): Shape
|
|
86
86
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
87
87
|
*/
|
|
88
|
-
export const roof = compatOp(projectBrepOp('roof', ["wire", "options"], 'A', __vendored_roof), { name: 'roof' });
|
|
88
|
+
export const roof = compatOp(projectBrepOp('roof', ["wire", "options"], 'A', __vendored_roof), { name: 'roof', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
89
89
|
/**
|
|
90
90
|
* drill — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
91
91
|
* drill(shape: Shape, options: DrillOptions): Shape
|
|
92
92
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
93
93
|
*/
|
|
94
|
-
export const drill = compatOp(projectBrepOp('drill', ["shape", "options"], 'A', __vendored_drill), { name: 'drill' });
|
|
94
|
+
export const drill = compatOp(projectBrepOp('drill', ["shape", "options"], 'A', __vendored_drill), { name: 'drill', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
95
95
|
/**
|
|
96
96
|
* pocket — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
97
97
|
* pocket(shape: Shape, options: PocketOptions): Shape
|
|
98
98
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
99
99
|
*/
|
|
100
|
-
export const pocket = compatOp(projectBrepOp('pocket', ["shape", "options"], 'A', __vendored_pocket), { name: 'pocket' });
|
|
100
|
+
export const pocket = compatOp(projectBrepOp('pocket', ["shape", "options"], 'A', __vendored_pocket), { name: 'pocket', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
101
101
|
/**
|
|
102
102
|
* boss — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
103
103
|
* boss(shape: Shape, options: BossOptions): Shape
|
|
104
104
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
105
105
|
*/
|
|
106
|
-
export const boss = compatOp(projectBrepOp('boss', ["shape", "options"], 'A', __vendored_boss), { name: 'boss' });
|
|
106
|
+
export const boss = compatOp(projectBrepOp('boss', ["shape", "options"], 'A', __vendored_boss), { name: 'boss', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
107
107
|
/**
|
|
108
108
|
* mirrorJoin — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
109
109
|
* mirrorJoin(shape: Shape, options?: MirrorJoinOptions): Shape
|
|
110
110
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
111
111
|
*/
|
|
112
|
-
export const mirrorJoin = compatOp(projectBrepOp('mirrorJoin', ["shape", "options"], 'A', __vendored_mirrorJoin), { name: 'mirrorJoin' });
|
|
112
|
+
export const mirrorJoin = compatOp(projectBrepOp('mirrorJoin', ["shape", "options"], 'A', __vendored_mirrorJoin), { name: 'mirrorJoin', naming: { "kind": "replicate", "k": 2 } });
|
|
113
113
|
/**
|
|
114
114
|
* rectangularPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
115
115
|
* rectangularPattern(shape: Shape, options: RectangularPatternOptions): Shape
|
|
116
116
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
117
117
|
*/
|
|
118
|
-
export const rectangularPattern = compatOp(projectBrepOp('rectangularPattern', ["shape", "options"], 'A', __vendored_rectangularPattern), { name: 'rectangularPattern' });
|
|
118
|
+
export const rectangularPattern = compatOp(projectBrepOp('rectangularPattern', ["shape", "options"], 'A', __vendored_rectangularPattern), { name: 'rectangularPattern', naming: { "kind": "replicate", "k": 0 } });
|
|
119
119
|
/**
|
|
120
120
|
* thread — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
121
121
|
* thread(options: ThreadOptions): Shape
|
|
122
122
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
123
123
|
*/
|
|
124
|
-
export const thread = compatOp(projectBrepOp('thread', ["options"], 'B1', __vendored_thread), { name: 'thread' });
|
|
124
|
+
export const thread = compatOp(projectBrepOp('thread', ["options"], 'B1', __vendored_thread), { name: 'thread', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
|
|
125
125
|
/**
|
|
126
126
|
* convexHull — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
|
|
127
127
|
* convexHull(points: Vec3[]): Shape
|
|
128
128
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
129
129
|
*/
|
|
130
|
-
export const convexHull = compatOp(projectBrepOp('convexHull', ["points"], 'A', __vendored_convexHull), { name: 'convexHull' });
|
|
130
|
+
export const convexHull = compatOp(projectBrepOp('convexHull', ["points"], 'A', __vendored_convexHull), { name: 'convexHull', naming: { "kind": "unmodeled", "reason": "construct vocabulary pending Phase 3" } });
|
|
131
131
|
//# sourceMappingURL=operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/api/generated/operations.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * generated/operations.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * operations 模块:77 个投影符号;另有 45 个 skip 登记。\n */\nimport { compatOp } from '../internal/compat-op'\nimport { projectBrepOp } from '../internal/compat-projection'\nimport { extrude as __vendored_extrude } from '../../vendored/brepjs/operations/api.js'\nimport { revolve as __vendored_revolve } from '../../vendored/brepjs/operations/api.js'\nimport { sweep as __vendored_sweep } from '../../vendored/brepjs/operations/extrudeFns.js'\nimport { complexExtrude as __vendored_complexExtrude } from '../../vendored/brepjs/operations/extrudeFns.js'\nimport { twistExtrude as __vendored_twistExtrude } from '../../vendored/brepjs/operations/extrudeFns.js'\nimport { linearPattern as __vendored_linearPattern } from '../../vendored/brepjs/operations/patternFns.js'\nimport { circularPattern as __vendored_circularPattern } from '../../vendored/brepjs/operations/patternFns.js'\nimport { gridPattern as __vendored_gridPattern } from '../../vendored/brepjs/operations/patternFns.js'\nimport { roof as __vendored_roof } from '../../vendored/brepjs/operations/roofFns.js'\nimport { drill as __vendored_drill } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { pocket as __vendored_pocket } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { boss as __vendored_boss } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { mirrorJoin as __vendored_mirrorJoin } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { rectangularPattern as __vendored_rectangularPattern } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { thread as __vendored_thread } from '../../vendored/brepjs/operations/threadFns.js'\nimport { convexHull as __vendored_convexHull } from '../../vendored/brepjs/operations/convexHullFns.js'\n\nexport type { AssemblyExporter } from '../../vendored/brepjs/operations/exporters.js'\n\nexport type { AssemblyNode } from '../../vendored/brepjs/operations/assemblyFns.js'\n\nexport type { AssemblyNodeOptions } from '../../vendored/brepjs/operations/assemblyFns.js'\n\nexport type { AssemblySolveResult } from '../../vendored/brepjs/operations/mateFns.js'\n\nexport type { CleanLoftOptions } from '../../vendored/brepjs/index.js'\n\nexport type { CleanSweepOptions } from '../../vendored/brepjs/index.js'\n\nexport type { CylindricalOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { DHOptions } from '../../vendored/brepjs/operations/dhFns.js'\n\nexport type { DHRow } from '../../vendored/brepjs/operations/dhFns.js'\n\nexport type { ExtrudeAllEntry } from '../../vendored/brepjs/operations/extrudeFns.js'\n\nexport type { ExtrusionProfile } from '../../vendored/brepjs/operations/extrudeFns.js'\n\nexport type { GuidedSweepOptions } from '../../vendored/brepjs/operations/guidedSweepFns.js'\n\nexport type { HistoryOperationRegistry } from '../../vendored/brepjs/index.js'\n\nexport type { IKOptions } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { IKResult } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { IKTarget } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { InstancedMesh } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { InstancedShape } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { InstanceGridOptions } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { Joint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointAxis } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointDOF } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointPose } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointType } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { LoftAllEntry } from '../../vendored/brepjs/operations/loftFns.js'\n\nexport type { MateConstraint } from '../../vendored/brepjs/operations/mateFns.js'\n\nexport type { MateEntity } from '../../vendored/brepjs/operations/mateFns.js'\n\nexport type { MaterializeOptions } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { ModelHistory } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { MultiSweepOptions } from '../../vendored/brepjs/operations/multiSweepFns.js'\n\nexport type { OperationFn } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { OperationStep } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { PlanarOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { RevolveOptions } from '../../vendored/brepjs/operations/api.js'\n\nexport type { RoofOptions } from '../../vendored/brepjs/operations/roofFns.js'\n\nexport type { SerializedHistory } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { ShapeOptions } from '../../vendored/brepjs/operations/exporterFns.js'\n\nexport type { SkeletonFace } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SkeletonNode } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SkPoint2D } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SphericalOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { StraightSkeleton } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SupportedUnit } from '../../vendored/brepjs/operations/exporterFns.js'\n\nexport type { SweepOptions } from '../../vendored/brepjs/operations/extrudeFns.js'\n\nexport type { SweepSectionConfig } from '../../vendored/brepjs/operations/multiSweepFns.js'\n\nexport type { ThreadOptions } from '../../vendored/brepjs/operations/threadFns.js'\n\nexport type { TrajectorySample } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { UrdfDocument } from '../../vendored/brepjs/operations/urdfFns.js'\n\nexport type { UrdfExportOptions } from '../../vendored/brepjs/operations/urdfFns.js'\n\nexport { revoluteJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { prismaticJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { cylindricalJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { planarJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { sphericalJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { setJointValue } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { setJointValues } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { jointTransform } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { jointsFromDH } from '../../vendored/brepjs/operations/dhFns.js'\n\nexport { computeStraightSkeleton } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport { isInstanced } from '../../vendored/brepjs/operations/instanceFns.js'\n\n/**\n * extrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * extrude(face: Shape, height: number|Vec3) → Shape|extrude(face: Shape, params: { length? | upTo, normal?, mode?, baseFeature?, offset? }) → Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const extrude = compatOp(\n projectBrepOp('extrude', [\"face\",\"height\"], 'A', __vendored_extrude),\n { name: 'extrude' },\n)\n\n/**\n * revolve — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * revolve(face: Shape, options?: RevolveOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const revolve = compatOp(\n projectBrepOp('revolve', [\"face\",\"options\"], 'A', __vendored_revolve),\n { name: 'revolve' },\n)\n\n/**\n * sweep — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * sweep(wire: Shape, spine: Shape, config?: SweepOptions, shellMode?: boolean): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const sweep = compatOp(\n projectBrepOp('sweep', [\"wire\",\"spine\",\"config\",\"shellMode\"], 'A', __vendored_sweep),\n { name: 'sweep' },\n)\n\n/**\n * complexExtrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * complexExtrude(wire: Shape, center: Vec3, normal: Vec3, profile?: ExtrusionProfile): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const complexExtrude = compatOp(\n projectBrepOp('complexExtrude', [\"wire\",\"center\",\"normal\",\"profile\"], 'A', __vendored_complexExtrude),\n { name: 'complexExtrude' },\n)\n\n/**\n * twistExtrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * twistExtrude(wire: Shape, angleDegrees: number, center: Vec3, normal: Vec3): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const twistExtrude = compatOp(\n projectBrepOp('twistExtrude', [\"wire\",\"angleDegrees\",\"center\",\"normal\"], 'A', __vendored_twistExtrude),\n { name: 'twistExtrude' },\n)\n\n/**\n * linearPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * linearPattern(shape: Shape, direction: Vec3, count: number, spacing: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const linearPattern = compatOp(\n projectBrepOp('linearPattern', [\"shape\",\"direction\",\"count\",\"spacing\"], 'A', __vendored_linearPattern),\n { name: 'linearPattern' },\n)\n\n/**\n * circularPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * circularPattern(shape: Shape, axis: Vec3, count: number, fullAngle?: number, center?: Vec3): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const circularPattern = compatOp(\n projectBrepOp('circularPattern', [\"shape\",\"axis\",\"count\",\"fullAngle\",\"center\"], 'A', __vendored_circularPattern),\n { name: 'circularPattern' },\n)\n\n/**\n * gridPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * gridPattern(shape: Shape, directionX: Vec3, directionY: Vec3, countX: number, countY: number, spacingX: number, spacingY: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const gridPattern = compatOp(\n projectBrepOp('gridPattern', [\"shape\",\"directionX\",\"directionY\",\"countX\",\"countY\",\"spacingX\",\"spacingY\"], 'A', __vendored_gridPattern),\n { name: 'gridPattern' },\n)\n\n/**\n * roof — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * roof(wire: Shape, options?: RoofOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const roof = compatOp(\n projectBrepOp('roof', [\"wire\",\"options\"], 'A', __vendored_roof),\n { name: 'roof' },\n)\n\n/**\n * drill — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * drill(shape: Shape, options: DrillOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const drill = compatOp(\n projectBrepOp('drill', [\"shape\",\"options\"], 'A', __vendored_drill),\n { name: 'drill' },\n)\n\n/**\n * pocket — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * pocket(shape: Shape, options: PocketOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const pocket = compatOp(\n projectBrepOp('pocket', [\"shape\",\"options\"], 'A', __vendored_pocket),\n { name: 'pocket' },\n)\n\n/**\n * boss — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * boss(shape: Shape, options: BossOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const boss = compatOp(\n projectBrepOp('boss', [\"shape\",\"options\"], 'A', __vendored_boss),\n { name: 'boss' },\n)\n\n/**\n * mirrorJoin — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * mirrorJoin(shape: Shape, options?: MirrorJoinOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const mirrorJoin = compatOp(\n projectBrepOp('mirrorJoin', [\"shape\",\"options\"], 'A', __vendored_mirrorJoin),\n { name: 'mirrorJoin' },\n)\n\n/**\n * rectangularPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * rectangularPattern(shape: Shape, options: RectangularPatternOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const rectangularPattern = compatOp(\n projectBrepOp('rectangularPattern', [\"shape\",\"options\"], 'A', __vendored_rectangularPattern),\n { name: 'rectangularPattern' },\n)\n\n/**\n * thread — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * thread(options: ThreadOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const thread = compatOp(\n projectBrepOp('thread', [\"options\"], 'B1', __vendored_thread),\n { name: 'thread' },\n)\n\n/**\n * convexHull — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * convexHull(points: Vec3[]): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const convexHull = compatOp(\n projectBrepOp('convexHull', [\"points\"], 'A', __vendored_convexHull),\n { name: 'convexHull' },\n)\n"]}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/api/generated/operations.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * generated/operations.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * operations 模块:77 个投影符号;另有 45 个 skip 登记。\n */\nimport { compatOp } from '../internal/compat-op'\nimport { projectBrepOp } from '../internal/compat-projection'\nimport { extrude as __vendored_extrude } from '../../vendored/brepjs/operations/api.js'\nimport { revolve as __vendored_revolve } from '../../vendored/brepjs/operations/api.js'\nimport { sweep as __vendored_sweep } from '../../vendored/brepjs/operations/extrudeFns.js'\nimport { complexExtrude as __vendored_complexExtrude } from '../../vendored/brepjs/operations/extrudeFns.js'\nimport { twistExtrude as __vendored_twistExtrude } from '../../vendored/brepjs/operations/extrudeFns.js'\nimport { linearPattern as __vendored_linearPattern } from '../../vendored/brepjs/operations/patternFns.js'\nimport { circularPattern as __vendored_circularPattern } from '../../vendored/brepjs/operations/patternFns.js'\nimport { gridPattern as __vendored_gridPattern } from '../../vendored/brepjs/operations/patternFns.js'\nimport { roof as __vendored_roof } from '../../vendored/brepjs/operations/roofFns.js'\nimport { drill as __vendored_drill } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { pocket as __vendored_pocket } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { boss as __vendored_boss } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { mirrorJoin as __vendored_mirrorJoin } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { rectangularPattern as __vendored_rectangularPattern } from '../../vendored/brepjs/operations/compoundOpsFns.js'\nimport { thread as __vendored_thread } from '../../vendored/brepjs/operations/threadFns.js'\nimport { convexHull as __vendored_convexHull } from '../../vendored/brepjs/operations/convexHullFns.js'\n\nexport type { AssemblyExporter } from '../../vendored/brepjs/operations/exporters.js'\n\nexport type { AssemblyNode } from '../../vendored/brepjs/operations/assemblyFns.js'\n\nexport type { AssemblyNodeOptions } from '../../vendored/brepjs/operations/assemblyFns.js'\n\nexport type { AssemblySolveResult } from '../../vendored/brepjs/operations/mateFns.js'\n\nexport type { CleanLoftOptions } from '../../vendored/brepjs/index.js'\n\nexport type { CleanSweepOptions } from '../../vendored/brepjs/index.js'\n\nexport type { CylindricalOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { DHOptions } from '../../vendored/brepjs/operations/dhFns.js'\n\nexport type { DHRow } from '../../vendored/brepjs/operations/dhFns.js'\n\nexport type { ExtrudeAllEntry } from '../../vendored/brepjs/operations/extrudeFns.js'\n\nexport type { ExtrusionProfile } from '../../vendored/brepjs/operations/extrudeFns.js'\n\nexport type { GuidedSweepOptions } from '../../vendored/brepjs/operations/guidedSweepFns.js'\n\nexport type { HistoryOperationRegistry } from '../../vendored/brepjs/index.js'\n\nexport type { IKOptions } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { IKResult } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { IKTarget } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { InstancedMesh } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { InstancedShape } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { InstanceGridOptions } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { Joint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointAxis } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointDOF } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointPose } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { JointType } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { LoftAllEntry } from '../../vendored/brepjs/operations/loftFns.js'\n\nexport type { MateConstraint } from '../../vendored/brepjs/operations/mateFns.js'\n\nexport type { MateEntity } from '../../vendored/brepjs/operations/mateFns.js'\n\nexport type { MaterializeOptions } from '../../vendored/brepjs/operations/instanceFns.js'\n\nexport type { ModelHistory } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { MultiSweepOptions } from '../../vendored/brepjs/operations/multiSweepFns.js'\n\nexport type { OperationFn } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { OperationStep } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { PlanarOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { RevolveOptions } from '../../vendored/brepjs/operations/api.js'\n\nexport type { RoofOptions } from '../../vendored/brepjs/operations/roofFns.js'\n\nexport type { SerializedHistory } from '../../vendored/brepjs/operations/historyFns.js'\n\nexport type { ShapeOptions } from '../../vendored/brepjs/operations/exporterFns.js'\n\nexport type { SkeletonFace } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SkeletonNode } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SkPoint2D } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SphericalOptions } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport type { StraightSkeleton } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport type { SupportedUnit } from '../../vendored/brepjs/operations/exporterFns.js'\n\nexport type { SweepOptions } from '../../vendored/brepjs/operations/extrudeFns.js'\n\nexport type { SweepSectionConfig } from '../../vendored/brepjs/operations/multiSweepFns.js'\n\nexport type { ThreadOptions } from '../../vendored/brepjs/operations/threadFns.js'\n\nexport type { TrajectorySample } from '../../vendored/brepjs/operations/ikFns.js'\n\nexport type { UrdfDocument } from '../../vendored/brepjs/operations/urdfFns.js'\n\nexport type { UrdfExportOptions } from '../../vendored/brepjs/operations/urdfFns.js'\n\nexport { revoluteJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { prismaticJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { cylindricalJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { planarJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { sphericalJoint } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { setJointValue } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { setJointValues } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { jointTransform } from '../../vendored/brepjs/operations/jointFns.js'\n\nexport { jointsFromDH } from '../../vendored/brepjs/operations/dhFns.js'\n\nexport { computeStraightSkeleton } from '../../vendored/brepjs/operations/straightSkeleton.js'\n\nexport { isInstanced } from '../../vendored/brepjs/operations/instanceFns.js'\n\n/**\n * extrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * extrude(face: Shape, height: number|Vec3) → Shape|extrude(face: Shape, params: { length? | upTo, normal?, mode?, baseFeature?, offset? }) → Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const extrude = compatOp(\n projectBrepOp('extrude', [\"face\",\"height\"], 'A', __vendored_extrude),\n { name: 'extrude', naming: {\"kind\":\"construct\",\"newFaces\":{\"via\":\"explicit\",\"vocab\":[{\"kind\":\"semantic\",\"name\":\"top\"},{\"kind\":\"semantic\",\"name\":\"bottom\"}]}} },\n)\n\n/**\n * revolve — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * revolve(face: Shape, options?: RevolveOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const revolve = compatOp(\n projectBrepOp('revolve', [\"face\",\"options\"], 'A', __vendored_revolve),\n { name: 'revolve', naming: {\"kind\":\"construct\",\"newFaces\":{\"via\":\"explicit\",\"vocab\":[{\"kind\":\"semantic\",\"name\":\"top\"},{\"kind\":\"semantic\",\"name\":\"bottom\"},{\"kind\":\"wall\",\"index\":0}]}} },\n)\n\n/**\n * sweep — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * sweep(wire: Shape, spine: Shape, config?: SweepOptions, shellMode?: boolean): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const sweep = compatOp(\n projectBrepOp('sweep', [\"wire\",\"spine\",\"config\",\"shellMode\"], 'A', __vendored_sweep),\n { name: 'sweep', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * complexExtrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * complexExtrude(wire: Shape, center: Vec3, normal: Vec3, profile?: ExtrusionProfile): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const complexExtrude = compatOp(\n projectBrepOp('complexExtrude', [\"wire\",\"center\",\"normal\",\"profile\"], 'A', __vendored_complexExtrude),\n { name: 'complexExtrude', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * twistExtrude — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * twistExtrude(wire: Shape, angleDegrees: number, center: Vec3, normal: Vec3): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const twistExtrude = compatOp(\n projectBrepOp('twistExtrude', [\"wire\",\"angleDegrees\",\"center\",\"normal\"], 'A', __vendored_twistExtrude),\n { name: 'twistExtrude', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * linearPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * linearPattern(shape: Shape, direction: Vec3, count: number, spacing: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const linearPattern = compatOp(\n projectBrepOp('linearPattern', [\"shape\",\"direction\",\"count\",\"spacing\"], 'A', __vendored_linearPattern),\n { name: 'linearPattern', naming: {\"kind\":\"replicate\",\"k\":0} },\n)\n\n/**\n * circularPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * circularPattern(shape: Shape, axis: Vec3, count: number, fullAngle?: number, center?: Vec3): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const circularPattern = compatOp(\n projectBrepOp('circularPattern', [\"shape\",\"axis\",\"count\",\"fullAngle\",\"center\"], 'A', __vendored_circularPattern),\n { name: 'circularPattern', naming: {\"kind\":\"replicate\",\"k\":0} },\n)\n\n/**\n * gridPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * gridPattern(shape: Shape, directionX: Vec3, directionY: Vec3, countX: number, countY: number, spacingX: number, spacingY: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const gridPattern = compatOp(\n projectBrepOp('gridPattern', [\"shape\",\"directionX\",\"directionY\",\"countX\",\"countY\",\"spacingX\",\"spacingY\"], 'A', __vendored_gridPattern),\n { name: 'gridPattern', naming: {\"kind\":\"replicate\",\"k\":0} },\n)\n\n/**\n * roof — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * roof(wire: Shape, options?: RoofOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const roof = compatOp(\n projectBrepOp('roof', [\"wire\",\"options\"], 'A', __vendored_roof),\n { name: 'roof', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * drill — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * drill(shape: Shape, options: DrillOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const drill = compatOp(\n projectBrepOp('drill', [\"shape\",\"options\"], 'A', __vendored_drill),\n { name: 'drill', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * pocket — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * pocket(shape: Shape, options: PocketOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const pocket = compatOp(\n projectBrepOp('pocket', [\"shape\",\"options\"], 'A', __vendored_pocket),\n { name: 'pocket', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * boss — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * boss(shape: Shape, options: BossOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const boss = compatOp(\n projectBrepOp('boss', [\"shape\",\"options\"], 'A', __vendored_boss),\n { name: 'boss', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * mirrorJoin — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * mirrorJoin(shape: Shape, options?: MirrorJoinOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const mirrorJoin = compatOp(\n projectBrepOp('mirrorJoin', [\"shape\",\"options\"], 'A', __vendored_mirrorJoin),\n { name: 'mirrorJoin', naming: {\"kind\":\"replicate\",\"k\":2} },\n)\n\n/**\n * rectangularPattern — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * rectangularPattern(shape: Shape, options: RectangularPatternOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const rectangularPattern = compatOp(\n projectBrepOp('rectangularPattern', [\"shape\",\"options\"], 'A', __vendored_rectangularPattern),\n { name: 'rectangularPattern', naming: {\"kind\":\"replicate\",\"k\":0} },\n)\n\n/**\n * thread — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * thread(options: ThreadOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const thread = compatOp(\n projectBrepOp('thread', [\"options\"], 'B1', __vendored_thread),\n { name: 'thread', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * convexHull — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * convexHull(points: Vec3[]): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const convexHull = compatOp(\n projectBrepOp('convexHull', [\"points\"], 'A', __vendored_convexHull),\n { name: 'convexHull', naming: {\"kind\":\"unmodeled\",\"reason\":\"construct vocabulary pending Phase 3\"} },\n)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-face-manifest.d.ts","sourceRoot":"","sources":["../../../src/api/generated/script-face-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,+FAA+F;AAC/F,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,
|
|
1
|
+
{"version":3,"file":"script-face-manifest.d.ts","sourceRoot":"","sources":["../../../src/api/generated/script-face-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,+FAA+F;AAC/F,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EA8BlD,CAAA"}
|
|
@@ -27,7 +27,6 @@ export const SCRIPT_FACE_OPS = [
|
|
|
27
27
|
{ name: 'applyMatrix', module: 'topology' },
|
|
28
28
|
{ name: 'transformCopy', module: 'topology' },
|
|
29
29
|
{ name: 'locate', module: 'topology' },
|
|
30
|
-
{ name: 'cut', module: 'topology' },
|
|
31
30
|
{ name: 'split', module: 'topology' },
|
|
32
31
|
{ name: 'offset', module: 'topology' },
|
|
33
32
|
{ name: 'heal', module: 'topology' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-face-manifest.js","sourceRoot":"","sources":["../../../src/api/generated/script-face-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;IACrC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;IACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;IACtC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;IACvC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE;IACxC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE;IAC/C,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE;IACjD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE;IAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE;IACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;IACxC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;IACtC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE;IACpD,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5C,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;IAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;IACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;IACrC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;IAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE;IAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"script-face-manifest.js","sourceRoot":"","sources":["../../../src/api/generated/script-face-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;IACrC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;IACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;IACtC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;IACvC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE;IACxC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE;IAC/C,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE;IACjD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE;IAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE;IACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;IACxC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;IACtC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE;IACpD,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5C,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;IAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;IACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;IACrC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;IAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE;IAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;IACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;IACpC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IACxC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IACxC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IACxC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;CAC1C,CAAA","sourcesContent":["/**\n * generated/script-face-manifest.ts — 生成文件,禁手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成。\n * cad 脚本面新增 op 清单(P23 B1 三源一致:导出面 ≡ cad 面 ≡ check() 符号表)。\n */\n\n/** 一条 cad 脚本面新增 op。 */\nexport interface ScriptFaceOp {\n /** faijs 面导出名(= brepjs 符号名)。 */\n name: string\n /** 所属分片模块(生成文件名)。 */\n module: string\n}\n\n/** Cad script-face op manifest (B1: single source for cad namespace, check() symbol table). */\nexport const SCRIPT_FACE_OPS: readonly ScriptFaceOp[] = [\n { name: 'torus', module: 'topology' },\n { name: 'fuse', module: 'topology' },\n { name: 'viewCamera', module: 'view' },\n { name: 'projectView', module: 'view' },\n { name: 'projectSheet', module: 'view' },\n { name: 'linearPattern', module: 'operations' },\n { name: 'circularPattern', module: 'operations' },\n { name: 'gridPattern', module: 'operations' },\n { name: 'drill', module: 'operations' },\n { name: 'pocket', module: 'operations' },\n { name: 'boss', module: 'operations' },\n { name: 'mirrorJoin', module: 'operations' },\n { name: 'rectangularPattern', module: 'operations' },\n { name: 'convexHull', module: 'operations' },\n { name: 'makeBaseBox', module: 'sketching' },\n { name: 'ellipsoid', module: 'topology' },\n { name: 'rotate', module: 'topology' },\n { name: 'mirror', module: 'topology' },\n { name: 'clone', module: 'topology' },\n { name: 'applyMatrix', module: 'topology' },\n { name: 'transformCopy', module: 'topology' },\n { name: 'locate', module: 'topology' },\n { name: 'split', module: 'topology' },\n { name: 'offset', module: 'topology' },\n { name: 'heal', module: 'topology' },\n { name: 'simplify', module: 'topology' },\n { name: 'autoHeal', module: 'topology' },\n { name: 'fixShape', module: 'topology' },\n { name: 'healSolid', module: 'topology' },\n]\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 单一来源(B1):api-namespace / api/index / gen-symbol-table 都从这里取,
|
|
6
6
|
* 不允许手写第二份清单。
|
|
7
7
|
*/
|
|
8
|
-
export { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate,
|
|
8
|
+
export { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate, split, offset, heal, simplify, autoHeal, fixShape, healSolid } from './topology.js';
|
|
9
9
|
import { viewCamera, projectView, projectSheet } from './view.js';
|
|
10
10
|
export { viewCamera, projectView, projectSheet } from './view.js';
|
|
11
11
|
export { linearPattern, circularPattern, gridPattern, drill, pocket, boss, mirrorJoin, rectangularPattern, convexHull } from './operations.js';
|
|
@@ -72,9 +72,6 @@ export declare const scriptFaceOps: {
|
|
|
72
72
|
readonly locate: ((...args: unknown[]) => Promise<import("../../index.js").Shape>) & {
|
|
73
73
|
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
74
74
|
};
|
|
75
|
-
readonly cut: ((...args: unknown[]) => Promise<import("../../index.js").Shape>) & {
|
|
76
|
-
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
77
|
-
};
|
|
78
75
|
readonly split: ((...args: unknown[]) => Promise<import("../../index.js").Shape>) & {
|
|
79
76
|
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
80
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-face.d.ts","sourceRoot":"","sources":["../../../src/api/generated/script-face.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"script-face.d.ts","sourceRoot":"","sources":["../../../src/api/generated/script-face.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC5K,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE3I,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,mDAAmD;AACnD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BhB,CAAA"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* 单一来源(B1):api-namespace / api/index / gen-symbol-table 都从这里取,
|
|
6
6
|
* 不允许手写第二份清单。
|
|
7
7
|
*/
|
|
8
|
-
import { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate,
|
|
9
|
-
export { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate,
|
|
8
|
+
import { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate, split, offset, heal, simplify, autoHeal, fixShape, healSolid } from './topology.js';
|
|
9
|
+
export { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate, split, offset, heal, simplify, autoHeal, fixShape, healSolid } from './topology.js';
|
|
10
10
|
import { viewCamera, projectView, projectSheet } from './view.js';
|
|
11
11
|
export { viewCamera, projectView, projectSheet } from './view.js';
|
|
12
12
|
import { linearPattern, circularPattern, gridPattern, drill, pocket, boss, mirrorJoin, rectangularPattern, convexHull } from './operations.js';
|
|
@@ -37,7 +37,6 @@ export const scriptFaceOps = {
|
|
|
37
37
|
applyMatrix,
|
|
38
38
|
transformCopy,
|
|
39
39
|
locate,
|
|
40
|
-
cut,
|
|
41
40
|
split,
|
|
42
41
|
offset,
|
|
43
42
|
heal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-face.js","sourceRoot":"","sources":["../../../src/api/generated/script-face.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"script-face.js","sourceRoot":"","sources":["../../../src/api/generated/script-face.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC5K,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC5K,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3I,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3I,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK;IACL,IAAI;IACJ,UAAU;IACV,WAAW;IACX,YAAY;IACZ,aAAa;IACb,eAAe;IACf,WAAW;IACX,KAAK;IACL,MAAM;IACN,IAAI;IACJ,UAAU;IACV,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;IACL,WAAW;IACX,aAAa;IACb,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;CACD,CAAA","sourcesContent":["/**\n * generated/script-face.ts — 生成文件,禁手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 的\n * `scriptFace: true` 条目生成(P23 §4.2 ②:cad 脚本面 = faijs 特有 dual op + 本清单)。\n * 单一来源(B1):api-namespace / api/index / gen-symbol-table 都从这里取,\n * 不允许手写第二份清单。\n */\n\nimport { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate, split, offset, heal, simplify, autoHeal, fixShape, healSolid } from './topology'\nexport { torus, fuse, ellipsoid, rotate, mirror, clone, applyMatrix, transformCopy, locate, split, offset, heal, simplify, autoHeal, fixShape, healSolid } from './topology'\nimport { viewCamera, projectView, projectSheet } from './view'\nexport { viewCamera, projectView, projectSheet } from './view'\nimport { linearPattern, circularPattern, gridPattern, drill, pocket, boss, mirrorJoin, rectangularPattern, convexHull } from './operations'\nexport { linearPattern, circularPattern, gridPattern, drill, pocket, boss, mirrorJoin, rectangularPattern, convexHull } from './operations'\nimport { makeBaseBox } from './sketching'\nexport { makeBaseBox } from './sketching'\n\n/** cad 脚本面新增 op 的命名空间对象(api-namespace 展开进 cad)。 */\nexport const scriptFaceOps = {\n torus,\n fuse,\n viewCamera,\n projectView,\n projectSheet,\n linearPattern,\n circularPattern,\n gridPattern,\n drill,\n pocket,\n boss,\n mirrorJoin,\n rectangularPattern,\n convexHull,\n makeBaseBox,\n ellipsoid,\n rotate,\n mirror,\n clone,\n applyMatrix,\n transformCopy,\n locate,\n split,\n offset,\n heal,\n simplify,\n autoHeal,\n fixShape,\n healSolid,\n} as const\n"]}
|
|
@@ -12,5 +12,5 @@ export { polysideInnerRadius } from '../../vendored/brepjs/sketching/cannedSketc
|
|
|
12
12
|
* (xLength: number, yLength: number, zLength: number) -> Shape3D
|
|
13
13
|
* 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
|
|
14
14
|
*/
|
|
15
|
-
export const makeBaseBox = compatOp(projectBrepOp('makeBaseBox', ["xLength", "yLength", "zLength"], 'A', __vendored_makeBaseBox), { name: 'makeBaseBox' });
|
|
15
|
+
export const makeBaseBox = compatOp(projectBrepOp('makeBaseBox', ["xLength", "yLength", "zLength"], 'A', __vendored_makeBaseBox), { name: 'makeBaseBox', naming: { "kind": "unmodeled", "reason": "construct vocabulary pending Phase 3" } });
|
|
16
16
|
//# sourceMappingURL=sketching.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sketching.js","sourceRoot":"","sources":["../../../src/api/generated/sketching.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,8CAA8C,CAAA;AAQpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAEvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CACjC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC,EAAE,GAAG,EAAE,sBAAsB,CAAC,EAC1F,EAAE,IAAI,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"sketching.js","sourceRoot":"","sources":["../../../src/api/generated/sketching.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,8CAA8C,CAAA;AAQpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAEvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CACjC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC,EAAE,GAAG,EAAE,sBAAsB,CAAC,EAC1F,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,EAAC,sCAAsC,EAAC,EAAE,CACtG,CAAA","sourcesContent":["/**\n * generated/sketching.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * sketching 模块:5 个投影符号;另有 47 个 skip 登记。\n */\nimport { compatOp } from '../internal/compat-op'\nimport { projectBrepOp } from '../internal/compat-projection'\nimport { makeBaseBox as __vendored_makeBaseBox } from '../../vendored/brepjs/sketching/shortcuts.js'\n\nexport type { Drawing } from '../../vendored/brepjs/sketching/drawing.js'\n\nexport type { DrawingPen } from '../../vendored/brepjs/sketching/drawingPen.js'\n\nexport type { SketchInterface } from '../../vendored/brepjs/sketching/sketch.js'\n\nexport { polysideInnerRadius } from '../../vendored/brepjs/sketching/cannedSketches.js'\n\n/**\n * makeBaseBox — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * (xLength: number, yLength: number, zLength: number) -> Shape3D\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const makeBaseBox = compatOp(\n projectBrepOp('makeBaseBox', [\"xLength\",\"yLength\",\"zLength\"], 'A', __vendored_makeBaseBox),\n { name: 'makeBaseBox', naming: {\"kind\":\"unmodeled\",\"reason\":\"construct vocabulary pending Phase 3\"} },\n)\n"]}
|