@metamesh/modeling 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/README.md +96 -64
- package/dist/api/engine.d.ts +216 -160
- package/dist/api/export.d.ts +204 -0
- package/dist/api/geometry.d.ts +410 -2106
- package/dist/api/index.d.ts +545 -1821
- package/dist/api/math.d.ts +315 -0
- package/dist/api/mechanical.d.ts +1041 -0
- package/dist/api/mesh.d.ts +395 -94
- package/dist/api/text.d.ts +24 -44
- package/dist/docs/guides/concepts.md +54 -523
- package/dist/docs/guides/exporting.md +88 -0
- package/dist/docs/guides/fonts.md +7 -5
- package/dist/docs/guides/fundamentals.md +12 -24
- package/dist/docs/guides/generation.md +76 -61
- package/dist/docs/guides/geometry-values.md +251 -0
- package/dist/docs/guides/hosting.md +58 -80
- package/dist/docs/guides/profiles-and-extrusion.md +400 -0
- package/dist/docs/guides/recipes.md +52 -706
- package/dist/docs/guides/resolution-and-inspection.md +153 -0
- package/dist/docs/guides/solid-joins.md +136 -0
- package/dist/docs/guides/standalone-model.md +5 -3
- package/dist/docs/guides/svg-and-text.md +252 -0
- package/dist/docs/guides/sweeps-and-lofts.md +223 -0
- package/dist/docs/guides/transforms-and-placement.md +323 -0
- package/dist/docs/guides/workers.md +166 -0
- package/dist/docs/manifest.json +5539 -8603
- package/dist/docs/reference/engine/GenerationOptions.md +9 -4
- package/dist/docs/reference/engine/GeometryResource.md +11 -5
- package/dist/docs/reference/engine/ModelDependencies.md +9 -3
- package/dist/docs/reference/engine/ModelEngine.md +8 -3
- package/dist/docs/reference/engine/ModelEngineOptions.md +6 -5
- package/dist/docs/reference/engine/ModelPart.md +12 -6
- package/dist/docs/reference/engine/ModelResult.md +8 -2
- package/dist/docs/reference/engine/ModelRunArguments.md +7 -1
- package/dist/docs/reference/engine/ModelRunOptions.md +9 -4
- package/dist/docs/reference/engine/ModelSession.md +7 -1
- package/dist/docs/reference/engine/SessionOptions.md +9 -4
- package/dist/docs/reference/engine/categories/host-lifecycle.md +11 -10
- package/dist/docs/reference/engine/checkModel.md +11 -1
- package/dist/docs/reference/engine/createModelEngine.md +13 -4
- package/dist/docs/reference/engine/defaultModelingLimits.md +7 -8
- package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
- package/dist/docs/reference/engine.md +13 -7
- package/dist/docs/reference/export/Export3mfOptions.md +20 -0
- package/dist/docs/reference/export/ExportDiagnostic.md +47 -0
- package/dist/docs/reference/export/ExportFormat.md +13 -0
- package/dist/docs/reference/export/ExportGeometry.md +27 -0
- package/dist/docs/reference/export/ExportGlbOptions.md +114 -0
- package/dist/docs/reference/export/ExportLimits.md +71 -0
- package/dist/docs/reference/export/ExportMaterial.md +35 -0
- package/dist/docs/reference/export/ExportOptions.md +82 -0
- package/dist/docs/reference/export/ExportPart.md +76 -0
- package/dist/docs/reference/export/ExportReport.md +70 -0
- package/dist/docs/reference/export/ExportSink.md +29 -0
- package/dist/docs/reference/export/ExportStlOptions.md +20 -0
- package/dist/docs/reference/export/ExportedFile.md +98 -0
- package/dist/docs/reference/export/categories/mesh-serialization.md +53 -0
- package/dist/docs/reference/export/defaultExportLimits.md +20 -0
- package/dist/docs/reference/export/export3mf.md +62 -0
- package/dist/docs/reference/export/exportGlb.md +66 -0
- package/dist/docs/reference/export/exportStl.md +62 -0
- package/dist/docs/reference/export/write3mf.md +71 -0
- package/dist/docs/reference/export/writeGlb.md +75 -0
- package/dist/docs/reference/export/writeStl.md +71 -0
- package/dist/docs/reference/export.md +27 -0
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +9 -3
- package/dist/docs/reference/geometry/Anchor3-type.md +9 -3
- package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
- package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
- package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
- package/dist/docs/reference/geometry/AttachOptions.md +10 -5
- package/dist/docs/reference/geometry/Bounds2-type.md +17 -24
- package/dist/docs/reference/geometry/Bounds2Data.md +10 -9
- package/dist/docs/reference/geometry/Bounds2Input.md +10 -4
- package/dist/docs/reference/geometry/Bounds2Options.md +10 -4
- package/dist/docs/reference/geometry/Bounds3-type.md +17 -24
- package/dist/docs/reference/geometry/Bounds3Data.md +10 -9
- package/dist/docs/reference/geometry/Bounds3Input.md +10 -4
- package/dist/docs/reference/geometry/Bounds3Options.md +10 -4
- package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
- package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
- package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
- package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +9 -3
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +8 -2
- package/dist/docs/reference/geometry/CircleContourOptions.md +8 -2
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +8 -3
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
- package/dist/docs/reference/geometry/CircularSampling.md +7 -1
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
- package/dist/docs/reference/geometry/Contour.md +9 -4
- package/dist/docs/reference/geometry/ContourCurve.md +8 -2
- package/dist/docs/reference/geometry/ContourPoint.md +8 -2
- package/dist/docs/reference/geometry/ContourSegment.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingComponent.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingContour.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingProfile.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +9 -3
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
- package/dist/docs/reference/geometry/Curve2.md +8 -2
- package/dist/docs/reference/geometry/Curve3.md +8 -2
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +8 -2
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +10 -4
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +7 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +8 -2
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +15 -10
- package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
- package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +9 -2
- package/dist/docs/reference/geometry/Frame3Options.md +69 -0
- package/dist/docs/reference/geometry/GeometryError.md +7 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +7 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +7 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +7 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +8 -2
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +8 -2
- package/dist/docs/reference/geometry/GridPatternOptions.md +13 -5
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +8 -14
- package/dist/docs/reference/geometry/LineCurve2.md +8 -2
- package/dist/docs/reference/geometry/LineCurve3.md +8 -2
- package/dist/docs/reference/geometry/LinearPatternOptions.md +8 -2
- package/dist/docs/reference/geometry/LoftPlacement.md +19 -13
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +8 -2
- package/dist/docs/reference/geometry/ModelingLimits.md +7 -1
- package/dist/docs/reference/geometry/NumericArray.md +8 -2
- package/dist/docs/reference/geometry/Path2-type.md +158 -3
- package/dist/docs/reference/geometry/Path2Data.md +8 -2
- package/dist/docs/reference/geometry/Path2Input.md +8 -2
- package/dist/docs/reference/geometry/Path3-type.md +158 -3
- package/dist/docs/reference/geometry/Path3Data.md +8 -2
- package/dist/docs/reference/geometry/Path3Input.md +8 -2
- package/dist/docs/reference/geometry/PathFrame.md +8 -2
- package/dist/docs/reference/geometry/PathLocation.md +8 -2
- package/dist/docs/reference/geometry/PathNormalGuide.md +9 -3
- package/dist/docs/reference/geometry/PathOptions.md +8 -2
- package/dist/docs/reference/geometry/PathPatternOptions.md +9 -3
- package/dist/docs/reference/geometry/PathPlacement.md +10 -4
- package/dist/docs/reference/geometry/PathResamplingOptions.md +8 -2
- package/dist/docs/reference/geometry/PathStation.md +87 -0
- package/dist/docs/reference/geometry/PathSubdivisionOptions.md +44 -0
- package/dist/docs/reference/geometry/Pivot2Options.md +9 -3
- package/dist/docs/reference/geometry/Pivot3Options.md +9 -3
- package/dist/docs/reference/geometry/PolygonData.md +9 -3
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
- package/dist/docs/reference/geometry/Profile.md +8 -3
- package/dist/docs/reference/geometry/ProfileComponent2.md +8 -2
- package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
- package/dist/docs/reference/geometry/ProfileSpan2.md +8 -2
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +10 -3
- package/dist/docs/reference/geometry/RadialPatternOptions.md +8 -2
- package/dist/docs/reference/geometry/RadialSizing.md +7 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +7 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +9 -2
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +8 -2
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +8 -2
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +8 -2
- package/dist/docs/reference/geometry/RegionData.md +8 -2
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
- package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +7 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
- package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
- package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
- package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
- package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
- package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
- package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
- package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +7 -1
- package/dist/docs/reference/geometry/SplineOptions.md +69 -0
- package/dist/docs/reference/geometry/StarContourOptions.md +12 -2
- package/dist/docs/reference/geometry/StrokeCap.md +8 -2
- package/dist/docs/reference/geometry/StrokeJoin.md +8 -2
- package/dist/docs/reference/geometry/StrokeOptions.md +9 -3
- package/dist/docs/reference/geometry/SvgImportOptions.md +10 -4
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
- package/dist/docs/reference/geometry/Transform2-type.md +9 -3
- package/dist/docs/reference/geometry/Transform2Data.md +9 -3
- package/dist/docs/reference/geometry/Transform2Input.md +9 -3
- package/dist/docs/reference/geometry/Transform3-type.md +10 -4
- package/dist/docs/reference/geometry/Transform3Data.md +9 -3
- package/dist/docs/reference/geometry/Transform3Input.md +12 -5
- package/dist/docs/reference/geometry/Vector2-type.md +9 -3
- package/dist/docs/reference/geometry/Vector2Data.md +9 -3
- package/dist/docs/reference/geometry/Vector2Input.md +9 -3
- package/dist/docs/reference/geometry/Vector3-type.md +33 -3
- package/dist/docs/reference/geometry/Vector3Data.md +9 -3
- package/dist/docs/reference/geometry/Vector3Input.md +9 -3
- package/dist/docs/reference/geometry/VectorTextLayout.md +8 -2
- package/dist/docs/reference/geometry/VectorTextMetrics.md +9 -3
- package/dist/docs/reference/geometry/anchor3.md +23 -26
- package/dist/docs/reference/geometry/anchorFrame3.md +11 -5
- package/dist/docs/reference/geometry/attachmentTransform3.md +14 -8
- package/dist/docs/reference/geometry/bounds2.md +16 -8
- package/dist/docs/reference/geometry/bounds3.md +14 -6
- package/dist/docs/reference/geometry/boundsCenter.md +10 -4
- package/dist/docs/reference/geometry/boundsSize.md +10 -4
- package/dist/docs/reference/geometry/boxAnchor3.md +9 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +12 -6
- package/dist/docs/reference/geometry/categories/curves-paths.md +24 -13
- package/dist/docs/reference/geometry/categories/immutable-data.md +40 -0
- package/dist/docs/reference/geometry/categories/pattern-placement.md +11 -5
- package/dist/docs/reference/geometry/categories/primitive-options.md +8 -13
- package/dist/docs/reference/geometry/categories/profiles-regions.md +11 -5
- package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -1
- package/dist/docs/reference/geometry/categories/transforms-math.md +20 -51
- package/dist/docs/reference/geometry/categories/vector-import.md +8 -5
- package/dist/docs/reference/geometry/circleContour.md +8 -2
- package/dist/docs/reference/geometry/closeToAxis.md +12 -2
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +14 -5
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +18 -5
- package/dist/docs/reference/geometry/contourContainsPoint.md +12 -2
- package/dist/docs/reference/geometry/cylinderAnchor3.md +11 -5
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
- package/dist/docs/reference/geometry/distributeAlongPath.md +21 -10
- package/dist/docs/reference/geometry/ellipseContour.md +8 -2
- package/dist/docs/reference/geometry/fitBounds.md +18 -4
- package/dist/docs/reference/geometry/fitTextLayout.md +11 -5
- package/dist/docs/reference/geometry/frame3.md +66 -0
- package/dist/docs/reference/geometry/gridPatternTransforms.md +12 -6
- package/dist/docs/reference/geometry/immutableBuffer.md +11 -3
- package/dist/docs/reference/geometry/isGeometryError.md +7 -1
- package/dist/docs/reference/geometry/layoutRow.md +12 -4
- package/dist/docs/reference/geometry/linearPatternTransforms.md +12 -6
- package/dist/docs/reference/geometry/matchProfiles.md +10 -2
- package/dist/docs/reference/geometry/normalizeContour.md +13 -3
- package/dist/docs/reference/geometry/normalizePolygon.md +10 -2
- package/dist/docs/reference/geometry/normalizeRegion.md +10 -2
- package/dist/docs/reference/geometry/path2.md +12 -2
- package/dist/docs/reference/geometry/path3.md +12 -2
- package/dist/docs/reference/geometry/pathPatternTransforms.md +18 -8
- package/dist/docs/reference/geometry/preflightSvgRegion.md +11 -5
- package/dist/docs/reference/geometry/radialPatternTransforms.md +11 -5
- package/dist/docs/reference/geometry/rectangleContour.md +8 -2
- package/dist/docs/reference/geometry/rectangleProfile.md +8 -3
- package/dist/docs/reference/geometry/regionArea.md +8 -2
- package/dist/docs/reference/geometry/regionBounds.md +11 -3
- package/dist/docs/reference/geometry/regularPolygonContour.md +8 -2
- package/dist/docs/reference/geometry/resamplePolyline2.md +12 -2
- package/dist/docs/reference/geometry/resamplePolyline3.md +12 -2
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +10 -4
- package/dist/docs/reference/geometry/resolveArcSegments.md +13 -5
- package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
- package/dist/docs/reference/geometry/resolveCircularSegments.md +10 -2
- package/dist/docs/reference/geometry/resolveExtrusionSlices.md +85 -0
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +10 -2
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +8 -2
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +17 -4
- package/dist/docs/reference/geometry/sampleContour.md +10 -4
- package/dist/docs/reference/geometry/sampleCurve2.md +12 -2
- package/dist/docs/reference/geometry/sampleCurve3.md +12 -2
- package/dist/docs/reference/geometry/sampleHelix.md +8 -2
- package/dist/docs/reference/geometry/sampleSideProfile.md +10 -4
- package/dist/docs/reference/geometry/sampleTextContours.md +9 -3
- package/dist/docs/reference/geometry/signedContourArea.md +10 -2
- package/dist/docs/reference/geometry/spline2.md +68 -0
- package/dist/docs/reference/geometry/spline3.md +62 -0
- package/dist/docs/reference/geometry/starContour.md +8 -2
- package/dist/docs/reference/geometry/strokeRegionData.md +14 -5
- package/dist/docs/reference/geometry/transform2.md +11 -3
- package/dist/docs/reference/geometry/transform3.md +29 -6
- package/dist/docs/reference/geometry/transformRegionData.md +12 -2
- package/dist/docs/reference/geometry/triangulateContour.md +11 -3
- package/dist/docs/reference/geometry/vector2.md +12 -4
- package/dist/docs/reference/geometry/vector3.md +14 -4
- package/dist/docs/reference/geometry.md +13 -18
- package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +8 -3
- package/dist/docs/reference/math/IDENTITY_TRANSFORM3.md +20 -0
- package/dist/docs/reference/math/add2.md +38 -0
- package/dist/docs/reference/math/add3.md +46 -0
- package/dist/docs/reference/math/applyTransformDirection3.md +46 -0
- package/dist/docs/reference/math/applyTransformPoint3.md +44 -0
- package/dist/docs/reference/math/categories/tuple-matrix.md +67 -0
- package/dist/docs/reference/math/cross2.md +38 -0
- package/dist/docs/reference/math/cross3.md +44 -0
- package/dist/docs/reference/math/distance2.md +38 -0
- package/dist/docs/reference/math/distance3.md +38 -0
- package/dist/docs/reference/math/dot2.md +38 -0
- package/dist/docs/reference/math/dot3.md +44 -0
- package/dist/docs/reference/math/eulerTransform3.md +43 -0
- package/dist/docs/reference/math/inverseTransform3.md +36 -0
- package/dist/docs/reference/math/length2.md +32 -0
- package/dist/docs/reference/math/length3.md +32 -0
- package/dist/docs/reference/math/lerp2.md +46 -0
- package/dist/docs/reference/math/lerp3.md +46 -0
- package/dist/docs/reference/math/multiplyTransform3.md +46 -0
- package/dist/docs/reference/math/normalize2.md +45 -0
- package/dist/docs/reference/math/normalize3.md +45 -0
- package/dist/docs/reference/math/projectOntoPlane3.md +40 -0
- package/dist/docs/reference/math/rotate2.md +40 -0
- package/dist/docs/reference/math/rotationTransform3.md +56 -0
- package/dist/docs/reference/math/scale2.md +38 -0
- package/dist/docs/reference/math/scale3.md +44 -0
- package/dist/docs/reference/math/scaleTransform3.md +39 -0
- package/dist/docs/reference/math/subtract2.md +38 -0
- package/dist/docs/reference/math/subtract3.md +44 -0
- package/dist/docs/reference/math/transformDeterminant3.md +38 -0
- package/dist/docs/reference/math/translationTransform3.md +36 -0
- package/dist/docs/reference/math/validateRigidTransform3.md +38 -0
- package/dist/docs/reference/math/validateTransform3.md +48 -0
- package/dist/docs/reference/math.md +22 -0
- package/dist/docs/reference/{geometry → mechanical}/AcmeThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/Bevel.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +10 -6
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +11 -8
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +10 -6
- package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +10 -6
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +8 -2
- package/dist/docs/reference/{mesh/ThreadProfile.md → mechanical/ThreadProfile-type.md} +8 -6
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +12 -9
- package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +13 -10
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +12 -9
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +8 -2
- package/dist/docs/reference/mechanical/ThreadedNutShape.md +20 -0
- package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +11 -8
- package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +9 -3
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +9 -3
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +17 -5
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +18 -2
- package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +14 -6
- package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +13 -5
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +14 -6
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +13 -5
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +14 -6
- package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +12 -4
- package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +14 -7
- package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +14 -7
- package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +15 -7
- package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +13 -5
- package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +12 -2
- package/dist/docs/reference/mechanical.md +19 -0
- package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +39 -40
- package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +8 -6
- package/dist/docs/reference/mesh/HeightfieldPreflight.md +8 -2
- package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +8 -6
- package/dist/docs/reference/mesh/LoftMeshStation.md +8 -7
- package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
- package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +9 -3
- package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +11 -6
- package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +13 -7
- package/dist/docs/reference/mesh/PlanarPatchQuality.md +7 -5
- package/dist/docs/reference/mesh/RenderMesh.md +68 -0
- package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +7 -5
- package/dist/docs/reference/mesh/TriangleMesh.md +16 -2
- package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +16 -11
- package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +12 -7
- package/dist/docs/reference/mesh/TriangleMeshInput.md +9 -3
- package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +10 -5
- package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +9 -4
- package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +9 -3
- package/dist/docs/reference/mesh/TriangleMeshSignature.md +9 -4
- package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +8 -2
- package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +8 -2
- package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +17 -12
- package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +9 -4
- package/dist/docs/reference/mesh/analyze.md +28 -14
- package/dist/docs/reference/mesh/analyzeQuality.md +15 -9
- package/dist/docs/reference/mesh/bounds.md +10 -5
- package/dist/docs/reference/mesh/categories/operations.md +24 -81
- package/dist/docs/reference/mesh/centroid.md +10 -5
- package/dist/docs/reference/mesh/extrude.md +25 -18
- package/dist/docs/reference/mesh/heightfield.md +13 -7
- package/dist/docs/reference/mesh/immutable.md +16 -10
- package/dist/docs/reference/mesh/join.md +11 -5
- package/dist/docs/reference/mesh/loft.md +23 -16
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +24 -18
- package/dist/docs/reference/mesh/preflightHeightfield.md +13 -7
- package/dist/docs/reference/mesh/preflightThreadSolid.md +27 -24
- package/dist/docs/reference/mesh/render.md +59 -0
- package/dist/docs/reference/mesh/reverse.md +11 -5
- package/dist/docs/reference/mesh/revolve.md +17 -13
- package/dist/docs/reference/mesh/signature.md +15 -9
- package/dist/docs/reference/mesh/sweep.md +101 -24
- package/dist/docs/reference/mesh/threadRidge.md +24 -17
- package/dist/docs/reference/mesh/threadSolid.md +28 -21
- package/dist/docs/reference/mesh/transform.md +12 -7
- package/dist/docs/reference/mesh/validate.md +15 -9
- package/dist/docs/reference/mesh/validateSolid.md +14 -8
- package/dist/docs/reference/mesh.md +8 -2
- package/dist/docs/reference/model/BoxEdge.md +11 -3
- package/dist/docs/reference/model/BoxEdgeSelection.md +11 -3
- package/dist/docs/reference/model/BoxEdgeTreatments.md +12 -5
- package/dist/docs/reference/model/BoxOptions.md +14 -9
- package/dist/docs/reference/model/CircleOptions.md +11 -6
- package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
- package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
- package/dist/docs/reference/model/CutterOverrun.md +43 -0
- package/dist/docs/reference/model/CylinderOptions.md +12 -6
- package/dist/docs/reference/model/DiagnosticOptions.md +7 -1
- package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
- package/dist/docs/reference/model/EllipseOptions.md +11 -6
- package/dist/docs/reference/model/EndTreatments.md +13 -9
- package/dist/docs/reference/model/ExtrudeOptions.md +48 -44
- package/dist/docs/reference/model/GenerateCallback.md +7 -1
- package/dist/docs/reference/model/GenerateContext.md +23 -24
- package/dist/docs/reference/model/GenerationDiagnostic.md +7 -1
- package/dist/docs/reference/model/GenerationError.md +8 -2
- package/dist/docs/reference/model/HeightfieldOptions.md +8 -8
- package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
- package/dist/docs/reference/model/HoleCutterOptions.md +19 -25
- package/dist/docs/reference/model/HoleCutterRecess.md +13 -5
- package/dist/docs/reference/model/HullOptions.md +12 -6
- package/dist/docs/reference/model/ImmutableValue.md +7 -1
- package/dist/docs/reference/model/ImplicitOptions.md +9 -9
- package/dist/docs/reference/model/JoinOptions.md +73 -0
- package/dist/docs/reference/model/JoinTransition.md +54 -0
- package/dist/docs/reference/model/KnuckleHinge-type.md +8 -3
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
- package/dist/docs/reference/model/KnuckleHingeOptions.md +8 -4
- package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
- package/dist/docs/reference/model/LoftCorrespondence.md +13 -5
- package/dist/docs/reference/model/LoftOptions.md +16 -10
- package/dist/docs/reference/model/LoftStation.md +16 -10
- package/dist/docs/reference/model/Memo.md +54 -0
- package/dist/docs/reference/model/ModelProgram.md +7 -1
- package/dist/docs/reference/model/PartDeclaration.md +12 -8
- package/dist/docs/reference/model/PartGeometry.md +8 -4
- package/dist/docs/reference/model/PartOptions.md +12 -8
- package/dist/docs/reference/model/PatternSource.md +11 -5
- package/dist/docs/reference/model/PlaneOptions.md +11 -8
- package/dist/docs/reference/model/PolygonOptions.md +17 -16
- package/dist/docs/reference/model/PrimitiveAttachment.md +15 -4
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +18 -17
- package/dist/docs/reference/model/RectangleOptions.md +31 -30
- package/dist/docs/reference/model/RegularPolygonOptions.md +11 -38
- package/dist/docs/reference/model/RevolveOptions.md +19 -17
- package/dist/docs/reference/model/Section.md +128 -72
- package/dist/docs/reference/model/SectionHullOptions.md +12 -6
- package/dist/docs/reference/model/SectionInspection.md +8 -6
- package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
- package/dist/docs/reference/model/SectionOffsetOptions.md +11 -6
- package/dist/docs/reference/model/Solid.md +113 -53
- package/dist/docs/reference/model/SolidInspection.md +8 -6
- package/dist/docs/reference/model/SolidSegmentHit.md +9 -7
- package/dist/docs/reference/model/SphereOptions.md +12 -5
- package/dist/docs/reference/model/StarOptions.md +33 -29
- package/dist/docs/reference/model/SvgOrigin.md +10 -4
- package/dist/docs/reference/model/SvgPathSectionOptions.md +13 -9
- package/dist/docs/reference/model/SvgSectionOptions.md +14 -11
- package/dist/docs/reference/model/SweepOptions.md +21 -28
- package/dist/docs/reference/model/SweepOrientation.md +19 -16
- package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
- package/dist/docs/reference/model/TextSectionOptions.md +11 -10
- package/dist/docs/reference/model/TorusOptions.md +13 -7
- package/dist/docs/reference/model/TubeOptions.md +25 -8
- package/dist/docs/reference/model/box.md +14 -6
- package/dist/docs/reference/model/categories/boolean-operations.md +16 -4
- package/dist/docs/reference/model/categories/bounded-surfaces.md +7 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +21 -16
- package/dist/docs/reference/model/categories/generation.md +15 -12
- package/dist/docs/reference/model/categories/hinges.md +7 -4
- package/dist/docs/reference/model/categories/mesh-inspection.md +8 -6
- package/dist/docs/reference/model/categories/primitives.md +32 -20
- package/dist/docs/reference/model/categories/sections.md +11 -16
- package/dist/docs/reference/model/categories/threads.md +9 -43
- package/dist/docs/reference/model/categories/transforms-placement.md +17 -41
- package/dist/docs/reference/model/circle.md +15 -5
- package/dist/docs/reference/model/cornerCutter.md +88 -0
- package/dist/docs/reference/model/cylinder.md +11 -3
- package/dist/docs/reference/model/edgeCutter.md +91 -0
- package/dist/docs/reference/model/ellipse.md +15 -5
- package/dist/docs/reference/model/extrude.md +37 -24
- package/dist/docs/reference/model/generate.md +10 -2
- package/dist/docs/reference/model/gridPattern.md +22 -9
- package/dist/docs/reference/model/heightfield.md +7 -1
- package/dist/docs/reference/model/holeCutter.md +34 -13
- package/dist/docs/reference/model/hull.md +9 -2
- package/dist/docs/reference/model/implicit.md +10 -4
- package/dist/docs/reference/model/internalThreadCutter.md +38 -21
- package/dist/docs/reference/model/intersect.md +14 -3
- package/dist/docs/reference/model/join.md +93 -0
- package/dist/docs/reference/model/knuckleHinge.md +7 -2
- package/dist/docs/reference/model/linearPattern.md +22 -9
- package/dist/docs/reference/model/loft.md +27 -16
- package/dist/docs/reference/model/minkowskiSum.md +10 -3
- package/dist/docs/reference/model/pathPattern.md +36 -21
- package/dist/docs/reference/model/polygon.md +18 -7
- package/dist/docs/reference/model/radialPattern.md +22 -9
- package/dist/docs/reference/model/rectangle.md +22 -12
- package/dist/docs/reference/model/regularPolygon.md +15 -5
- package/dist/docs/reference/model/revolve.md +26 -13
- package/dist/docs/reference/model/solidFromMesh.md +16 -6
- package/dist/docs/reference/model/sphere.md +12 -4
- package/dist/docs/reference/model/star.md +20 -10
- package/dist/docs/reference/model/stroke.md +29 -19
- package/dist/docs/reference/model/svgPathSection.md +20 -8
- package/dist/docs/reference/model/svgSection.md +21 -9
- package/dist/docs/reference/model/sweep.md +108 -24
- package/dist/docs/reference/model/textSection.md +19 -9
- package/dist/docs/reference/model/threadRidge.md +22 -17
- package/dist/docs/reference/model/threadedNut.md +31 -22
- package/dist/docs/reference/model/threadedRod.md +27 -18
- package/dist/docs/reference/model/torus.md +13 -5
- package/dist/docs/reference/model/tube.md +11 -3
- package/dist/docs/reference/model/union.md +14 -3
- package/dist/docs/reference/model.md +11 -11
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -1
- package/dist/docs/reference/text/VectorFont.md +22 -12
- package/dist/docs/reference/text/VectorFontOptions.md +7 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +7 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +8 -2
- package/dist/docs/reference/text/VectorTextOptions.md +7 -1
- package/dist/docs/reference/text/categories/font-preparation.md +7 -10
- package/dist/docs/reference/text/prepareVectorFont.md +9 -1
- package/dist/docs/reference/text.md +7 -1
- package/dist/engine/execution.js +5 -3
- package/dist/engine/finalization.js +6 -78
- package/dist/engine/index.js +11 -6
- package/dist/engine/native/adapter.js +1 -1
- package/dist/engine/native/construction-mesh.js +51 -0
- package/dist/engine/native/context.js +10 -7
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +4 -53
- package/dist/engine/native/mesh-observation.js +55 -0
- package/dist/engine/native/regions.js +44 -23
- package/dist/engine/native/scoped-primitives.js +3 -3
- package/dist/engine/native/scoped-threads.js +1 -13
- package/dist/engine/native/threads.js +2 -2
- package/dist/engine/native/transforms.js +2 -2
- package/dist/engine/operations/construction.js +77 -27
- package/dist/engine/operations/context.js +15 -6
- package/dist/engine/operations/cutters.js +112 -0
- package/dist/engine/operations/environment.js +2 -2
- package/dist/engine/operations/extrusion-finishing.js +56 -29
- package/dist/engine/operations/hole-cutter.js +125 -114
- package/dist/engine/operations/join-collar-profile.js +120 -0
- package/dist/engine/operations/join.js +521 -0
- package/dist/engine/operations/knuckle-hinge.js +25 -20
- package/dist/engine/operations/loft.js +9 -16
- package/dist/engine/operations/mechanical.js +4 -15
- package/dist/engine/operations/primitives/anchors.js +23 -19
- package/dist/engine/operations/primitives/construction.js +38 -12
- package/dist/engine/operations/primitives/correspondence.js +2 -2
- package/dist/engine/operations/primitives/profile-mesh.js +41 -80
- package/dist/engine/operations/primitives/profiles.js +5 -5
- package/dist/engine/operations/sections.js +8 -8
- package/dist/engine/operations/transforms.js +19 -39
- package/dist/engine/placement.js +3 -3
- package/dist/engine/recipe-realization.js +87 -31
- package/dist/engine/session/declarations.js +98 -0
- package/dist/engine/session/dependencies.js +139 -39
- package/dist/engine/session/graph.js +290 -411
- package/dist/engine/session/native-cache.js +1 -1
- package/dist/engine/session/parameters.js +78 -0
- package/dist/engine/session/session.js +7 -7
- package/dist/engine/session/snapshot-cache.js +4 -4
- package/dist/engine/shape-anchors.js +13 -6
- package/dist/export/3mf.js +197 -0
- package/dist/export/capture.js +182 -0
- package/dist/export/glb.js +214 -0
- package/dist/export/index.js +5 -0
- package/dist/export/limits.js +18 -0
- package/dist/export/stl.js +120 -0
- package/dist/export/writer.js +54 -0
- package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
- package/dist/geometry/{bounds-value.js → bounds/value.js} +24 -20
- package/dist/geometry/curves/evaluation.js +5 -6
- package/dist/geometry/curves/sampling.js +30 -6
- package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
- package/dist/geometry/extrusion/mesh.js +92 -0
- package/dist/geometry/extrusion/stations.js +35 -0
- package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
- package/dist/geometry/immutable-buffer.js +11 -7
- package/dist/geometry/index.js +24 -32
- package/dist/geometry/{model-limits.js → limits.js} +1 -1
- package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
- package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
- package/dist/geometry/loft/mesh.js +53 -0
- package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
- package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
- package/dist/geometry/math/interpolation.js +9 -0
- package/dist/geometry/math/vector-value.js +12 -3
- package/dist/geometry/math/vector2.js +18 -5
- package/dist/geometry/math/vector3.js +28 -5
- package/dist/geometry/math-api.js +4 -0
- package/dist/geometry/mechanical/gear-motion.js +7 -5
- package/dist/geometry/mechanical/gears.js +21 -4
- package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
- package/dist/geometry/mechanical/threads/fit.js +8 -2
- package/dist/geometry/mechanical/threads/helices.js +4 -2
- package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
- package/dist/geometry/mechanical/threads/mesh.js +12 -9
- package/dist/geometry/mechanical/threads/profiles.js +18 -4
- package/dist/geometry/mechanical/threads/solids.js +11 -2
- package/dist/geometry/mechanical-api.js +10 -0
- package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
- package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
- package/dist/geometry/mesh/join-layers.js +833 -0
- package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
- package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
- package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
- package/dist/geometry/mesh/render-buffers.js +220 -0
- package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
- package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +45 -17
- package/dist/geometry/mesh/{mesh-solid.js → solid.js} +10 -6
- package/dist/geometry/mesh/triangle-quality.js +42 -0
- package/dist/geometry/mesh/winding.js +11 -0
- package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
- package/dist/geometry/mesh-api.js +12 -10
- package/dist/geometry/paths/distribution.js +43 -0
- package/dist/geometry/paths/editing.js +76 -0
- package/dist/geometry/paths/frames.js +16 -11
- package/dist/geometry/paths/helix.js +1 -1
- package/dist/geometry/paths/resampling.js +46 -61
- package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
- package/dist/geometry/paths/spline.js +116 -0
- package/dist/geometry/paths/traversal.js +107 -0
- package/dist/geometry/paths/{path-value.js → value.js} +97 -18
- package/dist/geometry/patterns/placements.js +20 -29
- package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
- package/dist/geometry/primitives/cutters.js +70 -0
- package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
- package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
- package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
- package/dist/geometry/primitives/sampling.js +41 -0
- package/dist/geometry/profiles/contour.js +19 -7
- package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
- package/dist/geometry/profiles/primitives/circle.js +1 -1
- package/dist/geometry/profiles/primitives/ellipse.js +2 -2
- package/dist/geometry/profiles/primitives/rectangle.js +8 -8
- package/dist/geometry/profiles/primitives/star.js +1 -1
- package/dist/geometry/profiles/side-profile.js +8 -5
- package/dist/geometry/profiles/validation.js +1 -1
- package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
- package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
- package/dist/geometry/regions/offset.js +280 -0
- package/dist/geometry/{regions.js → regions/operations.js} +70 -23
- package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
- package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
- package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
- package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
- package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
- package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
- package/dist/geometry/svg/fill.js +4 -3
- package/dist/geometry/svg/import.js +47 -64
- package/dist/geometry/svg/path.js +3 -3
- package/dist/geometry/sweep/closed.js +55 -0
- package/dist/geometry/sweep/mesh.js +30 -0
- package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
- package/dist/geometry/sweep/options.js +1 -0
- package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
- package/dist/geometry/sweep/seam.js +30 -0
- package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
- package/dist/geometry/sweep/transforms.js +30 -0
- package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
- package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
- package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
- package/dist/geometry/text/layout.js +1 -0
- package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
- package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
- package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
- package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
- package/dist/geometry/transforms/frame.js +64 -0
- package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
- package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
- package/dist/index.js +3 -9
- package/dist/model/cutters.js +1 -0
- package/dist/model/execution-binding.js +3 -3
- package/dist/model/generation.js +4 -2
- package/dist/model/immutable-generation-data.js +15 -13
- package/dist/model/join.js +1 -0
- package/dist/model/operations.js +150 -94
- package/dist/model/recipe-declaration.js +6 -7
- package/dist/model/shape-handles.js +1 -0
- package/dist/text/index.js +3 -0
- package/dist/text/vector-text-layout.js +1 -0
- package/package.json +20 -5
- package/dist/docs/reference/engine/Export3mfOptions.md +0 -46
- package/dist/docs/reference/engine/ExportMeshPart.md +0 -31
- package/dist/docs/reference/engine/ModelingLimits.md +0 -121
- package/dist/docs/reference/engine/export3mf.md +0 -55
- package/dist/docs/reference/geometry/BoxEdge.md +0 -7
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -14
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -15
- package/dist/docs/reference/geometry/BoxOptions.md +0 -87
- package/dist/docs/reference/geometry/CylinderOptions.md +0 -53
- package/dist/docs/reference/geometry/EndTreatments.md +0 -34
- package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -130
- package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -146
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +0 -18
- package/dist/docs/reference/geometry/HeightfieldOptions.md +0 -72
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +0 -58
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -19
- package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +0 -43
- package/dist/docs/reference/geometry/LoftCorrespondence.md +0 -24
- package/dist/docs/reference/geometry/LoftMeshStation.md +0 -31
- package/dist/docs/reference/geometry/LoftOptions.md +0 -88
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +0 -14
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +0 -160
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +0 -124
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +0 -194
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -29
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -104
- package/dist/docs/reference/geometry/RevolveOptions.md +0 -91
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +0 -38
- package/dist/docs/reference/geometry/SphereOptions.md +0 -15
- package/dist/docs/reference/geometry/SweepOptions.md +0 -113
- package/dist/docs/reference/geometry/SweepOrientation.md +0 -113
- package/dist/docs/reference/geometry/ThreadProfile-type.md +0 -86
- package/dist/docs/reference/geometry/ThreadedNutShape.md +0 -14
- package/dist/docs/reference/geometry/TorusOptions.md +0 -105
- package/dist/docs/reference/geometry/TriangleMesh.md +0 -34
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +0 -129
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +0 -79
- package/dist/docs/reference/geometry/TriangleMeshInput.md +0 -19
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +0 -79
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +0 -43
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +0 -194
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +0 -111
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +0 -46
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +0 -34
- package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +0 -131
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +0 -55
- package/dist/docs/reference/geometry/TubeOptions.md +0 -62
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +0 -58
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +0 -115
- package/dist/docs/reference/geometry/VectorTextOptions.md +0 -54
- package/dist/docs/reference/geometry/add2.md +0 -37
- package/dist/docs/reference/geometry/add3.md +0 -43
- package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -46
- package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -44
- package/dist/docs/reference/geometry/categories/meshes.md +0 -68
- package/dist/docs/reference/geometry/composeTransform3.md +0 -45
- package/dist/docs/reference/geometry/cross2.md +0 -37
- package/dist/docs/reference/geometry/cross3.md +0 -43
- package/dist/docs/reference/geometry/distance2.md +0 -37
- package/dist/docs/reference/geometry/distance3.md +0 -37
- package/dist/docs/reference/geometry/dot2.md +0 -37
- package/dist/docs/reference/geometry/dot3.md +0 -43
- package/dist/docs/reference/geometry/eulerTransform3.md +0 -43
- package/dist/docs/reference/geometry/frameTransform3.md +0 -49
- package/dist/docs/reference/geometry/inverseTransform3.md +0 -35
- package/dist/docs/reference/geometry/length2.md +0 -31
- package/dist/docs/reference/geometry/length3.md +0 -31
- package/dist/docs/reference/geometry/lerp2.md +0 -43
- package/dist/docs/reference/geometry/lerp3.md +0 -43
- package/dist/docs/reference/geometry/normalize2.md +0 -40
- package/dist/docs/reference/geometry/normalize3.md +0 -40
- package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -37
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +0 -78
- package/dist/docs/reference/geometry/rotate2.md +0 -37
- package/dist/docs/reference/geometry/rotationTransform3.md +0 -54
- package/dist/docs/reference/geometry/scale2.md +0 -37
- package/dist/docs/reference/geometry/scale3.md +0 -43
- package/dist/docs/reference/geometry/scaleTransform3.md +0 -39
- package/dist/docs/reference/geometry/subtract2.md +0 -37
- package/dist/docs/reference/geometry/subtract3.md +0 -43
- package/dist/docs/reference/geometry/transformDeterminant3.md +0 -37
- package/dist/docs/reference/geometry/translationTransform3.md +0 -36
- package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -35
- package/dist/docs/reference/geometry/validateTransform3.md +0 -48
- package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +0 -79
- package/dist/docs/reference/mesh/Bevel.md +0 -18
- package/dist/docs/reference/mesh/BevelSize.md +0 -14
- package/dist/docs/reference/mesh/Bounds2.md +0 -125
- package/dist/docs/reference/mesh/Bounds2Data.md +0 -43
- package/dist/docs/reference/mesh/Bounds2Input.md +0 -19
- package/dist/docs/reference/mesh/Bounds3.md +0 -125
- package/dist/docs/reference/mesh/Bounds3Data.md +0 -43
- package/dist/docs/reference/mesh/Bounds3Input.md +0 -19
- package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +0 -14
- package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +0 -97
- package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +0 -60
- package/dist/docs/reference/mesh/CurveSamplingOptions.md +0 -69
- package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +0 -77
- package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +0 -81
- package/dist/docs/reference/mesh/Frame3.md +0 -62
- package/dist/docs/reference/mesh/GeometryResolution.md +0 -74
- package/dist/docs/reference/mesh/GeometrySamplingLimits.md +0 -66
- package/dist/docs/reference/mesh/GeometryToleranceOptions.md +0 -46
- package/dist/docs/reference/mesh/HeightfieldOptions.md +0 -72
- package/dist/docs/reference/mesh/ImmutableBuffer.md +0 -108
- package/dist/docs/reference/mesh/LoftCorrespondence.md +0 -24
- package/dist/docs/reference/mesh/LoftOptions.md +0 -88
- package/dist/docs/reference/mesh/LoftPlacement.md +0 -70
- package/dist/docs/reference/mesh/ModelingLimits.md +0 -130
- package/dist/docs/reference/mesh/NumericArray.md +0 -14
- package/dist/docs/reference/mesh/Path2.md +0 -197
- package/dist/docs/reference/mesh/Path2Data.md +0 -50
- package/dist/docs/reference/mesh/Path2Input.md +0 -20
- package/dist/docs/reference/mesh/Path3.md +0 -197
- package/dist/docs/reference/mesh/Path3Data.md +0 -50
- package/dist/docs/reference/mesh/Path3Input.md +0 -20
- package/dist/docs/reference/mesh/PathLocation.md +0 -69
- package/dist/docs/reference/mesh/PathNormalGuide.md +0 -43
- package/dist/docs/reference/mesh/PathResamplingOptions.md +0 -84
- package/dist/docs/reference/mesh/Pivot2Options.md +0 -26
- package/dist/docs/reference/mesh/Pivot3Options.md +0 -26
- package/dist/docs/reference/mesh/RevolveOptions.md +0 -91
- package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +0 -79
- package/dist/docs/reference/mesh/SweepOptions.md +0 -113
- package/dist/docs/reference/mesh/SweepOrientation.md +0 -113
- package/dist/docs/reference/mesh/ThreadEndStyle.md +0 -14
- package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +0 -117
- package/dist/docs/reference/mesh/ThreadHandedness.md +0 -14
- package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +0 -14
- package/dist/docs/reference/mesh/ThreadLeadInShape.md +0 -14
- package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +0 -53
- package/dist/docs/reference/mesh/ThreadProfileSpec.md +0 -23
- package/dist/docs/reference/mesh/ThreadRidgeOptions.md +0 -145
- package/dist/docs/reference/mesh/ThreadSolidOptions.md +0 -222
- package/dist/docs/reference/mesh/ThreadSolidPreflight.md +0 -58
- package/dist/docs/reference/mesh/Transform2.md +0 -256
- package/dist/docs/reference/mesh/Transform2Data.md +0 -14
- package/dist/docs/reference/mesh/Transform2Input.md +0 -19
- package/dist/docs/reference/mesh/Transform3.md +0 -296
- package/dist/docs/reference/mesh/Transform3Data.md +0 -17
- package/dist/docs/reference/mesh/Transform3Input.md +0 -19
- package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +0 -96
- package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +0 -95
- package/dist/docs/reference/mesh/Vector2.md +0 -270
- package/dist/docs/reference/mesh/Vector2Data.md +0 -14
- package/dist/docs/reference/mesh/Vector2Input.md +0 -19
- package/dist/docs/reference/mesh/Vector3.md +0 -282
- package/dist/docs/reference/mesh/Vector3Data.md +0 -14
- package/dist/docs/reference/mesh/Vector3Input.md +0 -19
- package/dist/docs/reference/model/AcmeThreadProfileSpec.md +0 -80
- package/dist/docs/reference/model/Anchor3.md +0 -55
- package/dist/docs/reference/model/AttachOptions.md +0 -69
- package/dist/docs/reference/model/Bevel.md +0 -19
- package/dist/docs/reference/model/BevelSize.md +0 -15
- package/dist/docs/reference/model/Bounds2-type.md +0 -125
- package/dist/docs/reference/model/Bounds2Data.md +0 -44
- package/dist/docs/reference/model/Bounds2Input.md +0 -19
- package/dist/docs/reference/model/Bounds2Options.md +0 -110
- package/dist/docs/reference/model/Bounds3-type.md +0 -125
- package/dist/docs/reference/model/Bounds3Data.md +0 -44
- package/dist/docs/reference/model/Bounds3Input.md +0 -19
- package/dist/docs/reference/model/Bounds3Options.md +0 -110
- package/dist/docs/reference/model/ButtressPressureFlankSide.md +0 -15
- package/dist/docs/reference/model/ButtressThreadProfileSpec.md +0 -98
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
- package/dist/docs/reference/model/CircleContourOptions.md +0 -21
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -62
- package/dist/docs/reference/model/Computed.md +0 -44
- package/dist/docs/reference/model/ComputedValue.md +0 -24
- package/dist/docs/reference/model/Contour.md +0 -24
- package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
- package/dist/docs/reference/model/CorrespondingContour.md +0 -46
- package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
- package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
- package/dist/docs/reference/model/CurveSamplingOptions.md +0 -68
- package/dist/docs/reference/model/CustomThreadProfileSpec.md +0 -78
- package/dist/docs/reference/model/EdgeTreatment.md +0 -22
- package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
- package/dist/docs/reference/model/ExtrudeMeshOptions.md +0 -133
- package/dist/docs/reference/model/ExtrusionSamplingOptions.md +0 -84
- package/dist/docs/reference/model/Frame3.md +0 -63
- package/dist/docs/reference/model/GeometryError.md +0 -102
- package/dist/docs/reference/model/GeometryErrorCode.md +0 -15
- package/dist/docs/reference/model/GeometryErrorContext.md +0 -35
- package/dist/docs/reference/model/GeometryResolution.md +0 -70
- package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
- package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
- package/dist/docs/reference/model/GridPatternOptions.md +0 -50
- package/dist/docs/reference/model/HoleCutterOverrun.md +0 -35
- package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -108
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -43
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -216
- package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
- package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
- package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
- package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
- package/dist/docs/reference/model/LoftPlacement.md +0 -73
- package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
- package/dist/docs/reference/model/ModelingLimits.md +0 -126
- package/dist/docs/reference/model/NumericArray.md +0 -14
- package/dist/docs/reference/model/Path2-type.md +0 -196
- package/dist/docs/reference/model/Path2Data.md +0 -50
- package/dist/docs/reference/model/Path2Input.md +0 -20
- package/dist/docs/reference/model/Path3-type.md +0 -196
- package/dist/docs/reference/model/Path3Data.md +0 -50
- package/dist/docs/reference/model/Path3Input.md +0 -20
- package/dist/docs/reference/model/PathLocation.md +0 -69
- package/dist/docs/reference/model/PathNormalGuide.md +0 -46
- package/dist/docs/reference/model/PathOptions.md +0 -38
- package/dist/docs/reference/model/PathPatternOptions.md +0 -48
- package/dist/docs/reference/model/PathResamplingOptions.md +0 -84
- package/dist/docs/reference/model/Pivot2Options.md +0 -28
- package/dist/docs/reference/model/Pivot3Options.md +0 -28
- package/dist/docs/reference/model/PolygonData.md +0 -44
- package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
- package/dist/docs/reference/model/Profile.md +0 -24
- package/dist/docs/reference/model/ProfileComponent2.md +0 -46
- package/dist/docs/reference/model/ProfileContour2.md +0 -36
- package/dist/docs/reference/model/ProfileSpan2.md +0 -47
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
- package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
- package/dist/docs/reference/model/RadialSizing.md +0 -15
- package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
- package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
- package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
- package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
- package/dist/docs/reference/model/RegionData.md +0 -19
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
- package/dist/docs/reference/model/SquareThreadProfileSpec.md +0 -80
- package/dist/docs/reference/model/StarContourOptions.md +0 -81
- package/dist/docs/reference/model/StrokeCap.md +0 -16
- package/dist/docs/reference/model/StrokeJoin.md +0 -16
- package/dist/docs/reference/model/StrokeOptions.md +0 -91
- package/dist/docs/reference/model/ThreadBevelOptions.md +0 -35
- package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
- package/dist/docs/reference/model/ThreadHandedness.md +0 -15
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
- package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
- package/dist/docs/reference/model/ThreadProfile.md +0 -87
- package/dist/docs/reference/model/ThreadProfileBaseSpec.md +0 -54
- package/dist/docs/reference/model/ThreadProfileSpec.md +0 -24
- package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -141
- package/dist/docs/reference/model/ThreadSolidPreflight.md +0 -59
- package/dist/docs/reference/model/ThreadedNutOptions.md +0 -263
- package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -111
- package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
- package/dist/docs/reference/model/ThreadedRodOptions.md +0 -216
- package/dist/docs/reference/model/Transform2-type.md +0 -257
- package/dist/docs/reference/model/Transform2Data.md +0 -16
- package/dist/docs/reference/model/Transform2Input.md +0 -21
- package/dist/docs/reference/model/Transform3-type.md +0 -297
- package/dist/docs/reference/model/Transform3Data.md +0 -19
- package/dist/docs/reference/model/Transform3Input.md +0 -21
- package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +0 -97
- package/dist/docs/reference/model/TriangleMesh.md +0 -34
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -129
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
- package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +0 -131
- package/dist/docs/reference/model/TriangularThreadProfileSpec.md +0 -96
- package/dist/docs/reference/model/Vector2-type.md +0 -271
- package/dist/docs/reference/model/Vector2Data.md +0 -15
- package/dist/docs/reference/model/Vector2Input.md +0 -21
- package/dist/docs/reference/model/Vector3-type.md +0 -283
- package/dist/docs/reference/model/Vector3Data.md +0 -15
- package/dist/docs/reference/model/Vector3Input.md +0 -21
- package/dist/docs/reference/model/VectorTextLayout.md +0 -40
- package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
- package/dist/docs/reference/model/bounds2.md +0 -37
- package/dist/docs/reference/model/bounds3.md +0 -37
- package/dist/docs/reference/model/categories/bounds.md +0 -38
- package/dist/docs/reference/model/categories/contracts.md +0 -16
- package/dist/docs/reference/model/categories/core-values-errors.md +0 -44
- package/dist/docs/reference/model/categories/explicit-profiles.md +0 -34
- package/dist/docs/reference/model/categories/paths.md +0 -42
- package/dist/docs/reference/model/categories/resolution.md +0 -20
- package/dist/docs/reference/model/immutableBuffer.md +0 -49
- package/dist/docs/reference/model/isGeometryError.md +0 -34
- package/dist/docs/reference/model/matchProfiles.md +0 -42
- package/dist/docs/reference/model/path2.md +0 -54
- package/dist/docs/reference/model/path3.md +0 -49
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -87
- package/dist/docs/reference/model/preflightThreadedNut.md +0 -103
- package/dist/docs/reference/model/preflightThreadedRod.md +0 -87
- package/dist/docs/reference/model/transform2.md +0 -46
- package/dist/docs/reference/model/transform3.md +0 -48
- package/dist/docs/reference/model/vector2.md +0 -40
- package/dist/docs/reference/model/vector3.md +0 -47
- package/dist/docs/reference/text/Bounds2Data.md +0 -34
- package/dist/docs/reference/text/Vector2Data.md +0 -7
- package/dist/docs/reference/text/VectorTextLayout.md +0 -34
- package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
- package/dist/engine/export-3mf.js +0 -23
- package/dist/engine/operations/patterns.js +0 -47
- package/dist/engine/serialize-3mf.js +0 -116
- package/dist/geometry/loft/loft.js +0 -105
- package/dist/geometry/mechanical/index.js +0 -14
- package/dist/geometry/primitive-resolution.js +0 -20
- package/dist/geometry/svg/index.js +0 -1
- package/dist/geometry/sweeps/options.js +0 -29
- package/dist/geometry/sweeps/sweep-closed.js +0 -96
- package/dist/geometry/sweeps/sweep-mesh.js +0 -32
- /package/dist/{geometry/mesh/mesh-types.js → export/types.js} +0 -0
- /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
- /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
- /package/dist/geometry/{primitive-options.js → mesh/types.js} +0 -0
- /package/dist/{engine/mesh-view-cache.js → geometry/mesh/view-cache.js} +0 -0
- /package/dist/geometry/{text-layout.js → primitives/options.js} +0 -0
|
@@ -0,0 +1,1041 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Anchor3,
|
|
3
|
+
Contour,
|
|
4
|
+
GeometryResolution,
|
|
5
|
+
GeometrySamplingLimits,
|
|
6
|
+
GeometryToleranceOptions,
|
|
7
|
+
ModelingLimits,
|
|
8
|
+
Vector2Data,
|
|
9
|
+
Vector3Data,
|
|
10
|
+
} from "@metamesh/modeling/geometry";
|
|
11
|
+
/** Pure mechanical dimensions, fit policies, standards, and preflight calculations. @packageDocumentation */
|
|
12
|
+
|
|
13
|
+
/** ACME 29-degree included-angle profile. */
|
|
14
|
+
export declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
15
|
+
/** Selects the 29-degree ACME profile family. */
|
|
16
|
+
readonly kind: "acme";
|
|
17
|
+
/**
|
|
18
|
+
* Radial depth in millimetres.
|
|
19
|
+
* @defaultValue `pitch / 2`
|
|
20
|
+
*/
|
|
21
|
+
readonly depth?: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** One size for both ends, or independent sizes in bottom/top order. Zero disables an end. */
|
|
25
|
+
export declare type Bevel =
|
|
26
|
+
BevelSize | readonly [bottom: BevelSize, top: BevelSize];
|
|
27
|
+
|
|
28
|
+
/** Nonnegative 45-degree axial/radial bevel size in millimetres, or factory automatic sizing. */
|
|
29
|
+
export declare type BevelSize = number | "auto";
|
|
30
|
+
|
|
31
|
+
/** Axial side carrying the near-normal pressure flank of a buttress thread. */
|
|
32
|
+
export declare type ButtressPressureFlankSide = "negative" | "positive";
|
|
33
|
+
|
|
34
|
+
/** Asymmetric printable buttress profile with 7/45-degree flanks. */
|
|
35
|
+
export declare interface ButtressThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
36
|
+
/** Selects the asymmetric printable buttress profile family. */
|
|
37
|
+
readonly kind: "buttress";
|
|
38
|
+
/**
|
|
39
|
+
* Radial depth in millimetres.
|
|
40
|
+
* @defaultValue `0.66271 * pitch`
|
|
41
|
+
*/
|
|
42
|
+
readonly depth?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Axial side of each tooth carrying the 7-degree pressure flank. The opposite side uses the
|
|
45
|
+
* 45-degree clearance flank.
|
|
46
|
+
* @defaultValue `"positive"`
|
|
47
|
+
*/
|
|
48
|
+
readonly pressureFlankSide?: ButtressPressureFlankSide;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Close, normal, and loose metric clearance-hole diameters in millimetres. */
|
|
52
|
+
export declare interface ClearanceHoleDimensions {
|
|
53
|
+
/** Close-fit clearance-hole diameter. */
|
|
54
|
+
readonly close: number;
|
|
55
|
+
/** Loose-fit clearance-hole diameter. */
|
|
56
|
+
readonly loose: number;
|
|
57
|
+
/** Normal-fit clearance-hole diameter. */
|
|
58
|
+
readonly normal: number;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Common clearance-hole fit categories, ordered from smallest to largest. */
|
|
62
|
+
export declare type ClearanceHoleFit = "close" | "normal" | "loose";
|
|
63
|
+
|
|
64
|
+
/** Compensated major/minor envelopes and the policy values used. */
|
|
65
|
+
export declare interface CompensatedThreadDiameters {
|
|
66
|
+
/** Axial backlash from the selected policy. */
|
|
67
|
+
readonly axialBacklash: number;
|
|
68
|
+
/** Compensated major diameter in millimetres. */
|
|
69
|
+
readonly majorDiameter: number;
|
|
70
|
+
/** Compensated minor diameter in millimetres. */
|
|
71
|
+
readonly minorDiameter: number;
|
|
72
|
+
/** Signed radial shift: negative for male inset, positive for female outset. */
|
|
73
|
+
readonly radialShift: number;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Applies role-specific radial compensation while preserving thread depth.
|
|
78
|
+
*
|
|
79
|
+
* Male envelopes move inward by the policy inset; female envelopes move
|
|
80
|
+
* outward by the policy outset. Combining both parts produces the sum of those
|
|
81
|
+
* allowances as radial mating clearance.
|
|
82
|
+
*/
|
|
83
|
+
export declare function compensateThreadDiameters(
|
|
84
|
+
options: ThreadCompensationOptions,
|
|
85
|
+
): CompensatedThreadDiameters;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Applies axial fit allowance to a validated periodic profile.
|
|
89
|
+
*
|
|
90
|
+
* Each flank moves by one quarter of the mating pair's total backlash: male ridges narrow and
|
|
91
|
+
* female cutter ridges widen. Periodic root endpoints remain fixed, preserving pitch and lead.
|
|
92
|
+
* Changed profiles are deeply immutable; zero backlash returns the input unchanged.
|
|
93
|
+
*
|
|
94
|
+
* @param profile - Validated `[axial, radial]` profile in millimetres.
|
|
95
|
+
* @param axialBacklash - Nonnegative total pair allowance in millimetres, below half the pitch.
|
|
96
|
+
* @param role - Male ridge to narrow or female cutter ridge to widen.
|
|
97
|
+
*/
|
|
98
|
+
export declare function compensateThreadProfileAxially(
|
|
99
|
+
profile: ThreadProfile,
|
|
100
|
+
axialBacklash: number,
|
|
101
|
+
role: "female" | "male",
|
|
102
|
+
): ThreadProfile;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Applies printable axial fit plus the conservative phase allowance required by circular facets.
|
|
106
|
+
*
|
|
107
|
+
* One triangulated facet spans `pitch * starts / circularSegments` axially. A directed zipper
|
|
108
|
+
* triangle can expose either end of that complete span when independently faceted parts rotate.
|
|
109
|
+
* This helper distributes the full conservative flank clearance between the male crest and female
|
|
110
|
+
* root according to their available flat widths, and rejects a resolution that cannot represent
|
|
111
|
+
* it exactly.
|
|
112
|
+
*
|
|
113
|
+
* @param profile - Uncompensated `[axial, radial]` profile in millimetres.
|
|
114
|
+
* @param axialBacklash - Nonnegative total pair allowance in millimetres, below half the pitch.
|
|
115
|
+
* @param role - Male ridge or female cutter receiving its share of the allowances.
|
|
116
|
+
* @param starts - Integer start count from 1 through 32.
|
|
117
|
+
* @param circularSegments - Full-circle facet count, at least 3 and divisible by starts.
|
|
118
|
+
*/
|
|
119
|
+
export declare function compensateThreadProfileForFaceting(
|
|
120
|
+
profile: ThreadProfile,
|
|
121
|
+
axialBacklash: number,
|
|
122
|
+
role: "female" | "male",
|
|
123
|
+
starts: number,
|
|
124
|
+
circularSegments: number,
|
|
125
|
+
): ThreadProfile;
|
|
126
|
+
|
|
127
|
+
/** Caller-defined periodic axial/radial profile in millimetres. */
|
|
128
|
+
export declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
129
|
+
/** Selects a caller-defined periodic profile. */
|
|
130
|
+
readonly kind: "custom";
|
|
131
|
+
/**
|
|
132
|
+
* Open path spanning exactly `[-pitch/2, pitch/2]`, with both endpoints on the minor envelope,
|
|
133
|
+
* one connected ridge, one contiguous crest, and radial zero at the major envelope.
|
|
134
|
+
*/
|
|
135
|
+
readonly points: readonly Vector2Data[];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** Resolved transverse pitch-plane dimensions for one cylindrical gear. */
|
|
139
|
+
export declare interface CylindricalGearDimensions {
|
|
140
|
+
/** Addendum above the pitch circle, in millimetres. */
|
|
141
|
+
readonly addendum: number;
|
|
142
|
+
/** Angular pitch between adjacent teeth, in radians. */
|
|
143
|
+
readonly angularPitchRadians: number;
|
|
144
|
+
/** Tangential backlash applied to this gear, in millimetres. */
|
|
145
|
+
readonly backlash: number;
|
|
146
|
+
/** Base-circle radius used by the involute, in millimetres. */
|
|
147
|
+
readonly baseRadius: number;
|
|
148
|
+
/** Dedendum below the pitch circle, in millimetres. */
|
|
149
|
+
readonly dedendum: number;
|
|
150
|
+
/** Signed helix angle, in radians. */
|
|
151
|
+
readonly helixAngleRadians: number;
|
|
152
|
+
/** Caller-supplied normal module, in millimetres. */
|
|
153
|
+
readonly module: number;
|
|
154
|
+
/** Minimum physical tooth count for this unshifted full-depth external profile. */
|
|
155
|
+
readonly minimumToothCountWithoutUndercut: number;
|
|
156
|
+
/** Outside radius at the tooth tips, in millimetres. */
|
|
157
|
+
readonly outsideRadius: number;
|
|
158
|
+
/** Pitch-circle radius, in millimetres. */
|
|
159
|
+
readonly pitchRadius: number;
|
|
160
|
+
/** Normal pressure angle, in radians. */
|
|
161
|
+
readonly pressureAngleRadians: number;
|
|
162
|
+
/** Root radius at the bottom lands, in millimetres. */
|
|
163
|
+
readonly rootRadius: number;
|
|
164
|
+
/** Integer number of teeth. */
|
|
165
|
+
readonly toothCount: number;
|
|
166
|
+
/** Tangential tooth thickness at the pitch circle, in millimetres. */
|
|
167
|
+
readonly toothThicknessAtPitch: number;
|
|
168
|
+
/** Module measured in the transverse pitch plane, in millimetres. */
|
|
169
|
+
readonly transverseModule: number;
|
|
170
|
+
/** Pressure angle measured in the transverse pitch plane, in radians. */
|
|
171
|
+
readonly transversePressureAngleRadians: number;
|
|
172
|
+
/** Helical equivalent spur tooth count, `toothCount / cos³(helixAngle)`. */
|
|
173
|
+
readonly virtualToothCount: number;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** Whether two cylindrical gears mesh on their outside teeth or as a pinion inside a ring. */
|
|
177
|
+
export declare type CylindricalGearMeshKind = "external" | "internal";
|
|
178
|
+
|
|
179
|
+
/** Sampling controls for a complete non-duplicated gear outline. */
|
|
180
|
+
export declare interface CylindricalGearOutlineOptions {
|
|
181
|
+
/** Exact samples per involute flank, at least two, within the aggregate profile ceiling. */
|
|
182
|
+
readonly flankSamples?: number;
|
|
183
|
+
/** Exact samples along each bottom land, at least one, within selected circular/profile ceilings. */
|
|
184
|
+
readonly rootArcSamples?: number;
|
|
185
|
+
/** Explicit profile and circular allocation ceilings. */
|
|
186
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
187
|
+
/** Explicit physical sampling policy for adaptive defaults. */
|
|
188
|
+
readonly resolution?: GeometryResolution;
|
|
189
|
+
/** Exact samples along each tooth tip, at least one, within selected circular/profile ceilings. */
|
|
190
|
+
readonly tipArcSamples?: number;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/** Pitch solution for a coordinated cylindrical gear pair. */
|
|
194
|
+
export declare interface CylindricalGearPairDimensions {
|
|
195
|
+
/** Nominal distance between the two +Z gear axes, in millimetres. */
|
|
196
|
+
readonly centerDistance: number;
|
|
197
|
+
/** Resolved driver dimensions. */
|
|
198
|
+
readonly driver: CylindricalGearDimensions;
|
|
199
|
+
/** `-1` for opposite external rotation and `1` for same-direction internal rotation. */
|
|
200
|
+
readonly drivenDirection: -1 | 1;
|
|
201
|
+
/** Resolved driven dimensions. */
|
|
202
|
+
readonly driven: CylindricalGearDimensions;
|
|
203
|
+
/** Absolute driven-to-driver tooth-count ratio. */
|
|
204
|
+
readonly ratio: number;
|
|
205
|
+
/** Helix angle required on the driven member for conjugate teeth, in degrees. */
|
|
206
|
+
readonly requiredDrivenHelixAngle: number;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/** Sampling controls for one coupled internal-gear tooth cycle. */
|
|
210
|
+
export declare interface CylindricalGearPairMotionOptions {
|
|
211
|
+
/** Optional deterministic outline sampling overrides. */
|
|
212
|
+
readonly outline?: CylindricalGearOutlineOptions;
|
|
213
|
+
/** Coupled poses sampled over one driver tooth pitch. Defaults to 24. */
|
|
214
|
+
readonly samples?: number;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/** Maximum sampled planar overlap for an external pinion inside an internal ring. */
|
|
218
|
+
export declare interface CylindricalGearPairMotionReport {
|
|
219
|
+
/** Driver phase at the maximum overlap, in radians. */
|
|
220
|
+
readonly driverPhaseRadians: number;
|
|
221
|
+
/** Maximum pinion area lying inside ring material, in square millimetres. */
|
|
222
|
+
readonly maximumOverlapArea: number;
|
|
223
|
+
/** Number of evenly spaced coupled poses inspected. */
|
|
224
|
+
readonly samples: number;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/** Inputs for resolving a coordinated cylindrical gear pair. */
|
|
228
|
+
export declare interface CylindricalGearPairSpec {
|
|
229
|
+
/** Driving gear or pinion. */
|
|
230
|
+
readonly driver: CylindricalGearSpec;
|
|
231
|
+
/** Driven external gear or internal ring gear. */
|
|
232
|
+
readonly driven: CylindricalGearSpec;
|
|
233
|
+
/** External/external or external/internal mesh. */
|
|
234
|
+
readonly mesh: CylindricalGearMeshKind;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Nominal dimensions for a standard full-depth cylindrical involute gear.
|
|
239
|
+
*
|
|
240
|
+
* Lengths use millimetres. `module` and `pressureAngle` are measured in
|
|
241
|
+
* the normal plane; a non-zero signed helix angle is converted to transverse
|
|
242
|
+
* pitch-plane dimensions. Positive and negative helix angles identify
|
|
243
|
+
* opposite hands but produce the same 2D pitch geometry.
|
|
244
|
+
*/
|
|
245
|
+
export declare interface CylindricalGearSpec {
|
|
246
|
+
/** Tangential tooth-thickness reduction at the pitch circle, in millimetres. */
|
|
247
|
+
readonly backlash?: number;
|
|
248
|
+
/** Dedendum clearance as a multiple of normal module; defaults to `0.25`. */
|
|
249
|
+
readonly clearanceFactor?: number;
|
|
250
|
+
/** Signed helix angle in degrees; zero creates a spur pitch system. */
|
|
251
|
+
readonly helixAngle?: number;
|
|
252
|
+
/** Normal module in millimetres per tooth. */
|
|
253
|
+
readonly module: number;
|
|
254
|
+
/** Normal pressure angle in degrees; defaults to 20 degrees. */
|
|
255
|
+
readonly pressureAngle?: number;
|
|
256
|
+
/** Integer tooth count from 6 through 1,000; external profiles also enforce the no-undercut limit. */
|
|
257
|
+
readonly toothCount: number;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/** Returns one recommended metric clearance-hole diameter in millimetres. */
|
|
261
|
+
export declare function getMetricClearanceHoleDiameter(
|
|
262
|
+
size: MetricFastenerSize,
|
|
263
|
+
fit?: ClearanceHoleFit,
|
|
264
|
+
): number;
|
|
265
|
+
|
|
266
|
+
/** Returns the immutable standards record for one supported metric size. */
|
|
267
|
+
export declare function getMetricFastenerStandard(
|
|
268
|
+
size: MetricFastenerSize,
|
|
269
|
+
): MetricFastenerStandard;
|
|
270
|
+
|
|
271
|
+
/** Options for a compensated internal-thread subtraction tool along +Z. */
|
|
272
|
+
export declare interface InternalThreadCutterOptions
|
|
273
|
+
extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
|
|
274
|
+
/** Printable fit or caller-calibrated allowances. Default: `normal`. */
|
|
275
|
+
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
276
|
+
/** Nominal major diameter before female compensation and faceting correction. */
|
|
277
|
+
readonly nominalMajorDiameter: number;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/** Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. */
|
|
281
|
+
export declare interface KnuckleHingeBaseSpec {
|
|
282
|
+
/** Total extent along the +X pin axis, centered at the origin. */
|
|
283
|
+
readonly length: number;
|
|
284
|
+
/** Number of equal alternating intervals, starting with half A. */
|
|
285
|
+
readonly knuckleCount: number;
|
|
286
|
+
/** Outside vertex-sized barrel diameter. */
|
|
287
|
+
readonly barrelDiameter: number;
|
|
288
|
+
/** Vertex-sized shaft diameter, including an externally supplied shaft. */
|
|
289
|
+
readonly pinDiameter: number;
|
|
290
|
+
/** Nonnegative per-side radial allowance; bores circumscribe this running envelope. */
|
|
291
|
+
readonly radialClearance: number;
|
|
292
|
+
/** Nonnegative total air gap between each neighboring pair of knuckle ends. */
|
|
293
|
+
readonly axialGap: number;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/** Immutable joint layout and conservative faceted envelopes; no engine initialization. */
|
|
297
|
+
export declare interface KnuckleHingeDimensions {
|
|
298
|
+
/** Validated, copied nominal inputs. */
|
|
299
|
+
readonly spec: KnuckleHingeSpec;
|
|
300
|
+
/** Nominal outside barrel radius. */
|
|
301
|
+
readonly barrelRadius: number;
|
|
302
|
+
/** Maximum shaft radius under any rotation. */
|
|
303
|
+
readonly pinRadius: number;
|
|
304
|
+
/** Minimum face-sized bore radius, including radial clearance. */
|
|
305
|
+
readonly boreRadius: number;
|
|
306
|
+
/** Maximum radius at the faceted bore vertices. */
|
|
307
|
+
readonly boreOuterRadius: number;
|
|
308
|
+
/** Conservative radial wall before outer end chamfers, accounting for both polygons. */
|
|
309
|
+
readonly minimumBarrelWall: number;
|
|
310
|
+
/** Equal length of every interval. */
|
|
311
|
+
readonly knuckleLength: number;
|
|
312
|
+
/** Common exact full-circle segment count. */
|
|
313
|
+
readonly segments: number;
|
|
314
|
+
/** Alternating schedule ordered from negative to positive X. */
|
|
315
|
+
readonly knuckles: readonly KnuckleHingeInterval[];
|
|
316
|
+
/** Integral pin interval; null when the consumer supplies an inserted pin. */
|
|
317
|
+
readonly pin: Readonly<{
|
|
318
|
+
/** Start coordinate along X, in millimetres. */
|
|
319
|
+
start: number;
|
|
320
|
+
/** Total integral shaft length, including material inside A. */
|
|
321
|
+
length: number;
|
|
322
|
+
}> | null;
|
|
323
|
+
/** Origin at the joint center, direction +X, roll guide +Z. */
|
|
324
|
+
readonly axis: Anchor3;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/** One equal-length barrel interval in the shared pin-centered frame. */
|
|
328
|
+
export declare interface KnuckleHingeInterval {
|
|
329
|
+
/** Alternating owner, beginning with A at the negative end of X. */
|
|
330
|
+
readonly side: "a" | "b";
|
|
331
|
+
/** Start along X, in millimetres. */
|
|
332
|
+
readonly start: number;
|
|
333
|
+
/** Axial length, excluding the neighboring gaps. */
|
|
334
|
+
readonly length: number;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/** Shared circular sampling for barrels, shafts, and bores. */
|
|
338
|
+
export declare interface KnuckleHingeSamplingOptions {
|
|
339
|
+
/** Exact full-circle count, divisible by four and at least four; overrides adaptive sampling. */
|
|
340
|
+
readonly segments?: number;
|
|
341
|
+
/** Physical tessellation policy. Exact circular counts must also be divisible by four. */
|
|
342
|
+
readonly resolution?: GeometryResolution;
|
|
343
|
+
/** Explicit allocation ceilings; defaults to the pure geometry sampling limits. */
|
|
344
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Knuckle-joint construction modes and interval ownership.
|
|
349
|
+
*
|
|
350
|
+
* Print-in-place requires an odd count of at least three: A owns both
|
|
351
|
+
* end anchors and the entire shaft. Inserted-pin bores both halves and supplies no shaft.
|
|
352
|
+
* Lift-off requires exactly two intervals; A's integral pin enters B without a far anchor.
|
|
353
|
+
*/
|
|
354
|
+
export declare type KnuckleHingeSpec = KnuckleHingeBaseSpec &
|
|
355
|
+
(
|
|
356
|
+
| {
|
|
357
|
+
/** Captive integral shaft or bores for an externally supplied pin. */
|
|
358
|
+
readonly mode: "print-in-place" | "inserted-pin";
|
|
359
|
+
/** Engagement applies only to lift-off construction. */
|
|
360
|
+
readonly pinEngagement?: never;
|
|
361
|
+
}
|
|
362
|
+
| {
|
|
363
|
+
/** Detachable socket on a finite integral pin. */
|
|
364
|
+
readonly mode: "lift-off";
|
|
365
|
+
/** Lift-off has one fixed interval and one removable interval. */
|
|
366
|
+
readonly knuckleCount: 2;
|
|
367
|
+
/** Positive axial engagement into B, no greater than its knuckle length. */
|
|
368
|
+
readonly pinEngagement: number;
|
|
369
|
+
}
|
|
370
|
+
);
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Measures sampled kinematic interference over one tooth cycle of an internal gear pair.
|
|
374
|
+
*
|
|
375
|
+
* The driver and ring start with half-tooth offsets for odd tooth counts, then rotate in the
|
|
376
|
+
* same direction at their resolved tooth-count ratio. Subtracting the ring's center-and-space
|
|
377
|
+
* opening from each sampled pinion outline leaves the area overlapping ring material. This detects
|
|
378
|
+
* involute, tip, and trimming interference that a single assembled pose misses.
|
|
379
|
+
* It is a deterministic model check, not a certified gear-rating calculation.
|
|
380
|
+
*
|
|
381
|
+
* @param spec - Internal pair: external driver pinion and internal driven ring.
|
|
382
|
+
*/
|
|
383
|
+
export declare function measureInternalCylindricalGearPairMotion(
|
|
384
|
+
spec: CylindricalGearPairSpec,
|
|
385
|
+
options?: CylindricalGearPairMotionOptions,
|
|
386
|
+
): CylindricalGearPairMotionReport;
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Curated metric modeling dimensions for clearance holes, regular hex nuts,
|
|
390
|
+
* and socket-head cap screws.
|
|
391
|
+
*
|
|
392
|
+
* Values are nominal reference dimensions intended for parametric envelopes.
|
|
393
|
+
* Manufacturing tolerances, coatings, and printer compensation remain caller
|
|
394
|
+
* responsibilities.
|
|
395
|
+
*/
|
|
396
|
+
export declare const METRIC_FASTENER_STANDARDS: Readonly<{
|
|
397
|
+
/** Nominal M2 coarse-thread modeling dimensions. */
|
|
398
|
+
M2: MetricFastenerStandard;
|
|
399
|
+
/** Nominal M2.5 coarse-thread modeling dimensions. */
|
|
400
|
+
"M2.5": MetricFastenerStandard;
|
|
401
|
+
/** Nominal M3 coarse-thread modeling dimensions. */
|
|
402
|
+
M3: MetricFastenerStandard;
|
|
403
|
+
/** Nominal M4 coarse-thread modeling dimensions. */
|
|
404
|
+
M4: MetricFastenerStandard;
|
|
405
|
+
/** Nominal M5 coarse-thread modeling dimensions. */
|
|
406
|
+
M5: MetricFastenerStandard;
|
|
407
|
+
/** Nominal M6 coarse-thread modeling dimensions. */
|
|
408
|
+
M6: MetricFastenerStandard;
|
|
409
|
+
/** Nominal M8 coarse-thread modeling dimensions. */
|
|
410
|
+
M8: MetricFastenerStandard;
|
|
411
|
+
/** Nominal M10 coarse-thread modeling dimensions. */
|
|
412
|
+
M10: MetricFastenerStandard;
|
|
413
|
+
/** Nominal M12 coarse-thread modeling dimensions. */
|
|
414
|
+
M12: MetricFastenerStandard;
|
|
415
|
+
}>;
|
|
416
|
+
|
|
417
|
+
/** Supported metric fastener sizes. */
|
|
418
|
+
export declare type MetricFastenerSize =
|
|
419
|
+
"M2" | "M2.5" | "M3" | "M4" | "M5" | "M6" | "M8" | "M10" | "M12";
|
|
420
|
+
|
|
421
|
+
/** Small immutable metric fastener record for modeling common mating features. */
|
|
422
|
+
export declare interface MetricFastenerStandard {
|
|
423
|
+
/** Coarse thread pitch in millimetres. */
|
|
424
|
+
readonly coarsePitch: number;
|
|
425
|
+
/** Recommended clearance-hole diameters. */
|
|
426
|
+
readonly clearanceHoles: ClearanceHoleDimensions;
|
|
427
|
+
/** Regular hex-nut envelope. */
|
|
428
|
+
readonly hexNut: MetricHexNutDimensions;
|
|
429
|
+
/** Nominal fastener diameter in millimetres. */
|
|
430
|
+
readonly nominalDiameter: number;
|
|
431
|
+
/** Socket-head cap screw envelope and drive size. */
|
|
432
|
+
readonly socketCapHead: MetricSocketCapHeadDimensions;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/** Regular hex-nut envelope dimensions in millimetres. */
|
|
436
|
+
export declare interface MetricHexNutDimensions {
|
|
437
|
+
/** Nominal wrench size across flats. */
|
|
438
|
+
readonly acrossFlats: number;
|
|
439
|
+
/** Nominal full-nut thickness. */
|
|
440
|
+
readonly thickness: number;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/** Socket-head cap screw head and drive dimensions in millimetres. */
|
|
444
|
+
export declare interface MetricSocketCapHeadDimensions {
|
|
445
|
+
/** Nominal cylindrical head diameter. */
|
|
446
|
+
readonly diameter: number;
|
|
447
|
+
/** Nominal head height. */
|
|
448
|
+
readonly height: number;
|
|
449
|
+
/** Nominal internal hex key size across flats. */
|
|
450
|
+
readonly hexKey: number;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Returns the smallest unshifted full-depth external tooth count that avoids rack-cutter undercut.
|
|
455
|
+
*
|
|
456
|
+
* The normal-plane limit is `2 / sin²(alpha_n)`. Helical gears use the standard virtual tooth
|
|
457
|
+
* count `z_v = z / cos³(beta)`, so increasing helix angle can reduce the physical tooth count.
|
|
458
|
+
*
|
|
459
|
+
* @param spec - Pressure and signed helix angles in degrees; defaults are 20 and zero.
|
|
460
|
+
*/
|
|
461
|
+
export declare function minimumCylindricalGearToothCountWithoutUndercut(
|
|
462
|
+
spec?: Readonly<Pick<CylindricalGearSpec, "helixAngle" | "pressureAngle">>,
|
|
463
|
+
): number;
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Resolves compensated cutter dimensions and checks extended mesh estimates against output limits.
|
|
467
|
+
*
|
|
468
|
+
* This pure operation uses explicit resolution and limits or package defaults, without an active
|
|
469
|
+
* host execution. It includes the cutter's one-pitch extension beyond each requested face and
|
|
470
|
+
* creates planning data without mesh buffers or native objects. Row and triangle counts are
|
|
471
|
+
* estimates; mesh validity and native construction are checked later.
|
|
472
|
+
*
|
|
473
|
+
* See `mesh.preflightThreadSolid` for standalone mesh estimates.
|
|
474
|
+
* See `mesh.threadSolid` for standalone mesh construction.
|
|
475
|
+
*
|
|
476
|
+
* @param options - Nominal cavity dimensions in millimetres, before fit and face extension.
|
|
477
|
+
*/
|
|
478
|
+
export declare function preflightInternalThreadCutter(
|
|
479
|
+
options: InternalThreadCutterOptions,
|
|
480
|
+
): ThreadSolidPreflight;
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* Checks nut dimensions, chamfers, end-face wall, and the extended compensated cutter's allocation plan.
|
|
484
|
+
*
|
|
485
|
+
* This pure operation uses explicit resolution and limits or package defaults, without an active
|
|
486
|
+
* host execution. It resolves body/cutter dimensions without mesh buffers or native objects.
|
|
487
|
+
* `thread` contains conservative cutter estimates, excluding the body and Boolean result.
|
|
488
|
+
* Successful preflight leaves mesh validity, native construction, and manufacturing fit to later checks.
|
|
489
|
+
*
|
|
490
|
+
* See `mesh.preflightThreadSolid` for standalone mesh estimates.
|
|
491
|
+
*
|
|
492
|
+
* @param options - Nominal nut dimensions in millimetres, fit, and sampling controls.
|
|
493
|
+
*/
|
|
494
|
+
export declare function preflightThreadedNut(
|
|
495
|
+
options: ThreadedNutOptions,
|
|
496
|
+
): ThreadedNutPreflight;
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Resolves compensated rod dimensions and checks conservative mesh estimates against output limits.
|
|
500
|
+
*
|
|
501
|
+
* This pure operation uses explicit resolution and limits or package defaults, without an active
|
|
502
|
+
* host execution. It creates planning data without mesh buffers or native objects; returned row
|
|
503
|
+
* and triangle counts are estimates. Mesh validity and native construction are checked later.
|
|
504
|
+
*
|
|
505
|
+
* See `mesh.preflightThreadSolid` for standalone mesh estimates.
|
|
506
|
+
* See `mesh.threadSolid` for standalone mesh construction.
|
|
507
|
+
*
|
|
508
|
+
* @param options - Nominal rod dimensions in millimetres, fit, and sampling controls.
|
|
509
|
+
*/
|
|
510
|
+
export declare function preflightThreadedRod(
|
|
511
|
+
options: ThreadedRodOptions,
|
|
512
|
+
): ThreadSolidPreflight;
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Conservative baseline print-fit policies in millimetres.
|
|
516
|
+
*
|
|
517
|
+
* These are modeling defaults, not manufacturing guarantees. A caller should
|
|
518
|
+
* calibrate them for its printer, material, layer height, and thread scale.
|
|
519
|
+
*/
|
|
520
|
+
export declare const PRINTABLE_THREAD_FIT_POLICIES: Readonly<{
|
|
521
|
+
/** Small baseline clearance for calibrated, accurate printers. */
|
|
522
|
+
tight: PrintableThreadFitPolicy;
|
|
523
|
+
/** General-purpose baseline clearance. */
|
|
524
|
+
normal: PrintableThreadFitPolicy;
|
|
525
|
+
/** Generous baseline clearance for rougher prints or easy assembly. */
|
|
526
|
+
loose: PrintableThreadFitPolicy;
|
|
527
|
+
}>;
|
|
528
|
+
|
|
529
|
+
/** Named baseline fit policies for calibrated FDM-style printed threads. */
|
|
530
|
+
export declare type PrintableThreadFit = "tight" | "normal" | "loose";
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Explicit radial and axial allowances for a mating printed thread pair.
|
|
534
|
+
*
|
|
535
|
+
* Male and female radial values are applied independently, so their sum is the
|
|
536
|
+
* assembled radial clearance. Values are millimetres and intentionally do not
|
|
537
|
+
* encode printer, material, or process calibration.
|
|
538
|
+
*/
|
|
539
|
+
export declare interface PrintableThreadFitPolicy {
|
|
540
|
+
/** Nominal axial backlash available between opposing flanks. */
|
|
541
|
+
readonly axialBacklash: number;
|
|
542
|
+
/** Radial increase applied to an internal thread envelope. */
|
|
543
|
+
readonly femaleRadialOutset: number;
|
|
544
|
+
/** Radial reduction applied to an external thread envelope. */
|
|
545
|
+
readonly maleRadialInset: number;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/** Resolved pitch-line dimensions for a finite rack segment. */
|
|
549
|
+
export declare interface RackPitchDimensions {
|
|
550
|
+
/** Tooth height above the pitch line, in millimetres. */
|
|
551
|
+
readonly addendum: number;
|
|
552
|
+
/** Tooth root depth below the pitch line, in millimetres. */
|
|
553
|
+
readonly dedendum: number;
|
|
554
|
+
/** Signed helix angle, in radians. */
|
|
555
|
+
readonly helixAngleRadians: number;
|
|
556
|
+
/** Total pitch-line length for the requested tooth count, in millimetres. */
|
|
557
|
+
readonly length: number;
|
|
558
|
+
/** Transverse linear pitch between teeth, in millimetres. */
|
|
559
|
+
readonly pitch: number;
|
|
560
|
+
/** Transverse pressure angle, in radians. */
|
|
561
|
+
readonly pressureAngleRadians: number;
|
|
562
|
+
/** Tangential tooth thickness at the pitch line, in millimetres. */
|
|
563
|
+
readonly toothThicknessAtPitch: number;
|
|
564
|
+
/** Number of complete teeth represented by the segment. */
|
|
565
|
+
readonly toothCount: number;
|
|
566
|
+
/** Normal module supplied by the caller, in millimetres. */
|
|
567
|
+
readonly module: number;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/** Normal-plane inputs for a finite rack pitch segment. */
|
|
571
|
+
export declare interface RackPitchSpec {
|
|
572
|
+
/** Tangential tooth-thickness reduction at the pitch line, in millimetres. */
|
|
573
|
+
readonly backlash?: number;
|
|
574
|
+
/** Dedendum clearance as a multiple of normal module; defaults to `0.25`. */
|
|
575
|
+
readonly clearanceFactor?: number;
|
|
576
|
+
/** Signed helix angle in degrees; zero creates a straight rack. */
|
|
577
|
+
readonly helixAngle?: number;
|
|
578
|
+
/** Normal module in millimetres per tooth. */
|
|
579
|
+
readonly module: number;
|
|
580
|
+
/** Normal pressure angle in degrees; defaults to 20 degrees. */
|
|
581
|
+
readonly pressureAngle?: number;
|
|
582
|
+
/** Number of complete rack teeth represented by the segment. */
|
|
583
|
+
readonly toothCount: number;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* Resolves a validated unshifted full-depth external cylindrical gear.
|
|
588
|
+
*
|
|
589
|
+
* The gear axis is +Z and the returned radii describe its XY pitch plane. Inputs below the
|
|
590
|
+
* pressure- and helix-dependent no-undercut tooth count are rejected because profile shift is not
|
|
591
|
+
* currently supported.
|
|
592
|
+
*
|
|
593
|
+
* @param spec - Nominal gear dimensions in millimetres and degrees.
|
|
594
|
+
*/
|
|
595
|
+
export declare function resolveCylindricalGear(
|
|
596
|
+
spec: CylindricalGearSpec,
|
|
597
|
+
): CylindricalGearDimensions;
|
|
598
|
+
|
|
599
|
+
/**
|
|
600
|
+
* Resolves ratio, center distance, and helix relationship for a gear pair.
|
|
601
|
+
*
|
|
602
|
+
* Both gears must use the same normal module, pressure angle, and helix-angle
|
|
603
|
+
* magnitude. An external pair uses opposite helix hands; an internal pair uses
|
|
604
|
+
* the same hand. The function validates those conjugate pitch invariants.
|
|
605
|
+
*
|
|
606
|
+
* @param spec - Driver and driven gears using the same normal pitch system.
|
|
607
|
+
*/
|
|
608
|
+
export declare function resolveCylindricalGearPair(
|
|
609
|
+
spec: CylindricalGearPairSpec,
|
|
610
|
+
): CylindricalGearPairDimensions;
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* Resolves equal alternating knuckles along +X, centered at the origin, in millimetres.
|
|
614
|
+
*
|
|
615
|
+
* Both faces of each running pair use a common polygon count; face-sized bores contain the
|
|
616
|
+
* shaft's complete rotational envelope. Adaptive sampling satisfies both face and vertex error
|
|
617
|
+
* bounds; an insufficient ceiling rejects instead of reducing quality. Exact counts are intentional
|
|
618
|
+
* facets. Zero allowances describe ideal contact, not a printable running fit.
|
|
619
|
+
*
|
|
620
|
+
* Rejects non-finite or non-positive dimensions, invalid mode/count combinations, exhausted axial
|
|
621
|
+
* length, missing/excessive lift-off engagement, and non-positive conservative faceted barrel walls.
|
|
622
|
+
* Manufacturing minima, strength, mounting, retention, handedness, and motion remain caller policy.
|
|
623
|
+
*
|
|
624
|
+
* @param spec - Joint dimensions in millimetres, mode, and knuckle count.
|
|
625
|
+
*/
|
|
626
|
+
export declare function resolveKnuckleHinge(
|
|
627
|
+
spec: KnuckleHingeSpec,
|
|
628
|
+
options?: KnuckleHingeSamplingOptions,
|
|
629
|
+
): KnuckleHingeDimensions;
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Resolves and validates a named or caller-defined print-fit policy.
|
|
633
|
+
*
|
|
634
|
+
* @param fit - Named fit or non-negative per-side radial and total axial allowances, in millimetres.
|
|
635
|
+
*/
|
|
636
|
+
export declare function resolvePrintableThreadFitPolicy(
|
|
637
|
+
fit?: PrintableThreadFit | PrintableThreadFitPolicy,
|
|
638
|
+
): PrintableThreadFitPolicy;
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* Resolves a rack segment that is conjugate with the same normal cylindrical pitch system.
|
|
642
|
+
*
|
|
643
|
+
* @param spec - Rack dimensions in millimetres and degrees.
|
|
644
|
+
*/
|
|
645
|
+
export declare function resolveRackPitch(
|
|
646
|
+
spec: RackPitchSpec,
|
|
647
|
+
): RackPitchDimensions;
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* Resolves a role-independent, start-aligned facet count from the larger female mating envelope.
|
|
651
|
+
*
|
|
652
|
+
* An exact `circularSegments` value must already be divisible by `starts`; it is never silently
|
|
653
|
+
* raised. Adaptive policies align upward and fail if that would exceed `maxSegments`.
|
|
654
|
+
*
|
|
655
|
+
* @param options - Nominal diameter, uncompensated profile, and shared mating resolution.
|
|
656
|
+
*/
|
|
657
|
+
export declare function resolveThreadCircularSegments(
|
|
658
|
+
options: ThreadCircularSegmentsOptions,
|
|
659
|
+
): number;
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Samples a complete external involute gear boundary in the XY plane.
|
|
663
|
+
*
|
|
664
|
+
* The returned loop is counter-clockwise, closed implicitly without a repeated
|
|
665
|
+
* seam point, and contains no holes. Its center is the origin and its axis is
|
|
666
|
+
* +Z. Bore, hub, keyway, twist, and face-width choices remain generator-owned.
|
|
667
|
+
*
|
|
668
|
+
* @param spec - External gear dimensions in millimetres and degrees; undercut profiles reject.
|
|
669
|
+
*/
|
|
670
|
+
export declare function sampleCylindricalGearOutline(
|
|
671
|
+
spec: CylindricalGearSpec,
|
|
672
|
+
options?: CylindricalGearOutlineOptions,
|
|
673
|
+
): Contour;
|
|
674
|
+
|
|
675
|
+
/** Sampled paths plus conventional pitch and lead measurements. */
|
|
676
|
+
export declare interface SampledThreadHelices {
|
|
677
|
+
/** Axial advance over one revolution, equal to `pitch * starts`. */
|
|
678
|
+
readonly lead: number;
|
|
679
|
+
/** One immutable sampled path for each thread start. */
|
|
680
|
+
readonly paths: readonly (readonly Vector3Data[])[];
|
|
681
|
+
/** Adjacent axial thread spacing in millimetres. */
|
|
682
|
+
readonly pitch: number;
|
|
683
|
+
/** Number of revolutions represented by each path. */
|
|
684
|
+
readonly turns: number;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
* Samples the center opening and tooth spaces used to subtract an internal ring gear.
|
|
689
|
+
*
|
|
690
|
+
* Internal tooth tips lie one addendum below the pitch radius and their roots lie one
|
|
691
|
+
* dedendum above it. At the pitch circle, positive backlash widens each sampled space
|
|
692
|
+
* tangentially. The returned CCW loop encloses the center and is intended to be reversed
|
|
693
|
+
* when used as a region hole.
|
|
694
|
+
*
|
|
695
|
+
* @param spec - Internal ring dimensions in millimetres and degrees; backlash widens tooth spaces.
|
|
696
|
+
*/
|
|
697
|
+
export declare function sampleInternalCylindricalGearSpaceOutline(
|
|
698
|
+
spec: CylindricalGearSpec,
|
|
699
|
+
options?: CylindricalGearOutlineOptions,
|
|
700
|
+
): Contour;
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* Samples the open top boundary of a finite rack in its XY pitch plane.
|
|
704
|
+
*
|
|
705
|
+
* X follows rack travel, Y is tooth height, and the pitch line is `Y = 0`.
|
|
706
|
+
* The path begins and ends on the root line, omits duplicate adjacent points,
|
|
707
|
+
* and leaves base thickness, mounting features, extrusion, and helical sweep to
|
|
708
|
+
* the owning generator.
|
|
709
|
+
*
|
|
710
|
+
* @param spec - Rack dimensions in millimetres and degrees, along +X.
|
|
711
|
+
* @param limits - Sampling limits; exceeding them throws without coarsening.
|
|
712
|
+
*/
|
|
713
|
+
export declare function sampleRackToothPath(
|
|
714
|
+
spec: RackPitchSpec,
|
|
715
|
+
limits?: Partial<GeometrySamplingLimits>,
|
|
716
|
+
): readonly Vector2Data[];
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* Samples evenly phased thread helices with finite `lead = pitch * starts`.
|
|
720
|
+
* All starts together respect `maxPathPoints`; excessive counts fail before allocation.
|
|
721
|
+
*
|
|
722
|
+
* @param options - Dimensions in millimetres; lead is pitch multiplied by starts.
|
|
723
|
+
*/
|
|
724
|
+
export declare function sampleThreadHelices(
|
|
725
|
+
options: ThreadHelixOptions,
|
|
726
|
+
): SampledThreadHelices;
|
|
727
|
+
|
|
728
|
+
/** Square profile with equal crest and root widths. */
|
|
729
|
+
export declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
730
|
+
/** Selects the square profile family. */
|
|
731
|
+
readonly kind: "square";
|
|
732
|
+
/**
|
|
733
|
+
* Radial depth in millimetres.
|
|
734
|
+
* @defaultValue `pitch / 2`
|
|
735
|
+
*/
|
|
736
|
+
readonly depth?: number;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
/** 45-degree end bevels for compensated rods and cutters. */
|
|
740
|
+
export declare interface ThreadBevelOptions {
|
|
741
|
+
/** Bottom/top sizes in millimetres. Omitted disables both. Auto uses profile depth for standard/tapered ends,
|
|
742
|
+
* or one sixth of the compensated male minor/female major radius for blunt ends. */
|
|
743
|
+
readonly bevel?: Bevel;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
/** Inputs for resolving one shared circular facet count for a mating thread pair. */
|
|
747
|
+
export declare interface ThreadCircularSegmentsOptions {
|
|
748
|
+
/** Explicit circular allocation ceiling for the shared mating grid. */
|
|
749
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
750
|
+
/** Printable fit whose larger compensated female envelope governs tessellation. */
|
|
751
|
+
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
752
|
+
/** Nominal major diameter before role-specific compensation. */
|
|
753
|
+
readonly nominalMajorDiameter: number;
|
|
754
|
+
/**
|
|
755
|
+
* Maximum active female face outset beyond the compensated major envelope, in millimetres.
|
|
756
|
+
* This keeps a compensated male/female pair on one role-independent grid when an internal
|
|
757
|
+
* cutter has an enlarged entrance bevel. Default: `0`.
|
|
758
|
+
*/
|
|
759
|
+
readonly maxRadialOutset?: number;
|
|
760
|
+
/** Validated mating profile whose pitch and flank capacities govern tessellation. */
|
|
761
|
+
readonly profile: ThreadProfile;
|
|
762
|
+
/** Physical or exact circular resolution policy. */
|
|
763
|
+
readonly resolution?: GeometryResolution;
|
|
764
|
+
/** Number of phased starts. Default: `1`. */
|
|
765
|
+
readonly starts?: number;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
/** Options for compensating nominal male or female thread diameters. */
|
|
769
|
+
export declare interface ThreadCompensationOptions {
|
|
770
|
+
/** Named policy or explicit caller-calibrated allowances. */
|
|
771
|
+
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
772
|
+
/** Nominal sharp or truncated major diameter in millimetres. */
|
|
773
|
+
readonly nominalMajorDiameter: number;
|
|
774
|
+
/** Male or female geometry being compensated. */
|
|
775
|
+
readonly role: ThreadRole;
|
|
776
|
+
/** Radial depth from major to minor envelope in millimetres. */
|
|
777
|
+
readonly threadDepth: number;
|
|
778
|
+
/** Optional numerical tolerance overrides. */
|
|
779
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
/** Options for a compensated nut with an internal thread. */
|
|
783
|
+
export declare interface ThreadedNutOptions extends Omit<
|
|
784
|
+
InternalThreadCutterOptions,
|
|
785
|
+
"bevel" | "length"
|
|
786
|
+
> {
|
|
787
|
+
/** Opening bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4); zero disables. */
|
|
788
|
+
readonly innerBevel?: Bevel;
|
|
789
|
+
/** Body bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4).
|
|
790
|
+
* Use [0, "auto"] to keep the outside bottom flat without disabling its inner opening bevel. */
|
|
791
|
+
readonly outerBevel?: Bevel;
|
|
792
|
+
/** Optional physical policy for a round body, independent of the thread's matched facet grid. */
|
|
793
|
+
readonly bodyResolution?: GeometryResolution;
|
|
794
|
+
/** Nut body shape. */
|
|
795
|
+
readonly shape: ThreadedNutShape;
|
|
796
|
+
/** Nut thickness along +Z in millimetres. */
|
|
797
|
+
readonly thickness: number;
|
|
798
|
+
/** Across-flats width for hex/square or diameter for round, in millimetres. */
|
|
799
|
+
readonly width: number;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
/** Resolved body and end-face dimensions plus conservative allocation estimates for the thread cutter. */
|
|
803
|
+
export declare interface ThreadedNutPreflight {
|
|
804
|
+
/** Polygon segment count used by the nut body. */
|
|
805
|
+
readonly bodySegments: number;
|
|
806
|
+
/** Resolved opening bevel sizes in millimetres, [bottom, top]. */
|
|
807
|
+
readonly innerBevel: readonly [bottom: number, top: number];
|
|
808
|
+
/** Resolved body bevel sizes in millimetres, [bottom, top]. */
|
|
809
|
+
readonly outerBevel: readonly [bottom: number, top: number];
|
|
810
|
+
/** Maximum compensated cutter radius at either requested face. */
|
|
811
|
+
readonly cutterFaceRadius: number;
|
|
812
|
+
/** Minimum nut-body inradius across the requested top and bottom faces. */
|
|
813
|
+
readonly minimumBodyFaceInradius: number;
|
|
814
|
+
/** Smallest radial wall left between the body and cutter at either requested face. */
|
|
815
|
+
readonly minimumFaceWall: number;
|
|
816
|
+
/** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
|
|
817
|
+
readonly thread: ThreadSolidPreflight;
|
|
818
|
+
/** Start-aligned circular facet count used by the compensated thread cutter. */
|
|
819
|
+
readonly threadCircularSegments: number;
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
/** Supported printable nut body shapes. */
|
|
823
|
+
export declare type ThreadedNutShape = "hex" | "round" | "square";
|
|
824
|
+
|
|
825
|
+
/** Options for a compensated external threaded rod along +Z. */
|
|
826
|
+
export declare interface ThreadedRodOptions
|
|
827
|
+
extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
|
|
828
|
+
/** Printable fit or caller-calibrated allowances. Default: `normal`. */
|
|
829
|
+
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
830
|
+
/** Nominal major diameter before male compensation. */
|
|
831
|
+
readonly nominalMajorDiameter: number;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
/** End shape of a generated helical ridge. */
|
|
835
|
+
export declare type ThreadEndStyle = "blunt" | "standard" | "tapered";
|
|
836
|
+
|
|
837
|
+
/** Axial end controls for a generated ridge. */
|
|
838
|
+
export declare interface ThreadEndTreatmentOptions {
|
|
839
|
+
/**
|
|
840
|
+
* Ridge shape at the lower working boundary. `blunt` ends at full profile height, `standard`
|
|
841
|
+
* clips the periodic profile at the face, and `tapered` ramps out from the minor envelope.
|
|
842
|
+
* @defaultValue `"blunt"`
|
|
843
|
+
*/
|
|
844
|
+
readonly bottom?: ThreadEndStyle;
|
|
845
|
+
/**
|
|
846
|
+
* Non-negative unthreaded envelope length reserved at each non-standard end, in millimetres.
|
|
847
|
+
* Active blunt bevels may raise this reservation to the effective bevel size.
|
|
848
|
+
* @defaultValue `0`
|
|
849
|
+
*/
|
|
850
|
+
readonly endLength?: number;
|
|
851
|
+
/**
|
|
852
|
+
* Radial envelope toward which a blunt lead-in collapses.
|
|
853
|
+
* @defaultValue `"minor"`
|
|
854
|
+
*/
|
|
855
|
+
readonly leadInEnvelope?: ThreadLeadInEnvelope;
|
|
856
|
+
/**
|
|
857
|
+
* Physical circumferential lead-in length in millimetres.
|
|
858
|
+
* @defaultValue The profile depth.
|
|
859
|
+
*/
|
|
860
|
+
readonly leadInLength?: number;
|
|
861
|
+
/**
|
|
862
|
+
* Cross-section scaling curve used by blunt ends. `cut` switches abruptly to the full profile.
|
|
863
|
+
* @defaultValue `"cut"`
|
|
864
|
+
*/
|
|
865
|
+
readonly leadInShape?: ThreadLeadInShape;
|
|
866
|
+
/**
|
|
867
|
+
* Ridge shape at the upper working boundary. `blunt` ends at full profile height, `standard`
|
|
868
|
+
* clips the periodic profile at the face, and `tapered` ramps into the minor envelope.
|
|
869
|
+
* @defaultValue `"blunt"`
|
|
870
|
+
*/
|
|
871
|
+
readonly top?: ThreadEndStyle;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
/** Direction in which a conventional helical thread advances around +Z. */
|
|
875
|
+
export declare type ThreadHandedness = "left" | "right";
|
|
876
|
+
|
|
877
|
+
/** Conventional helix options: `pitch` is adjacent spacing and lead is `pitch * starts`. */
|
|
878
|
+
export declare interface ThreadHelixOptions {
|
|
879
|
+
/** Helix direction. Default: `right`. */
|
|
880
|
+
readonly handedness?: ThreadHandedness;
|
|
881
|
+
/** Explicit aggregate path allocation ceilings across all starts. */
|
|
882
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
883
|
+
/** Total sampled axial length in millimetres. */
|
|
884
|
+
readonly length: number;
|
|
885
|
+
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
886
|
+
readonly phase?: number;
|
|
887
|
+
/** Adjacent axial thread spacing in millimetres. */
|
|
888
|
+
readonly pitch: number;
|
|
889
|
+
/** Radial distance from the +Z axis in millimetres. */
|
|
890
|
+
readonly radius: number;
|
|
891
|
+
/** Angular sampling density for each revolution. Default: `32`. */
|
|
892
|
+
readonly segmentsPerTurn?: number;
|
|
893
|
+
/** Number of evenly phased helices. Default: `1`. */
|
|
894
|
+
readonly starts?: number;
|
|
895
|
+
/** Optional numerical tolerance overrides. */
|
|
896
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
/** Radial envelope toward which a blunt lead-in collapses. */
|
|
900
|
+
export declare type ThreadLeadInEnvelope = "major" | "minor";
|
|
901
|
+
|
|
902
|
+
/** BOSL2-compatible cross-section scaling curve for a blunt thread lead-in. */
|
|
903
|
+
export declare type ThreadLeadInShape = "cut" | "linear" | "smooth" | "sqrt";
|
|
904
|
+
|
|
905
|
+
/** A validated immutable periodic thread profile in `[axial, radial]` millimetres. */
|
|
906
|
+
export declare interface ThreadProfile {
|
|
907
|
+
/** Axial width of the flat at the major envelope. */
|
|
908
|
+
readonly crestFlatWidth: number;
|
|
909
|
+
/** Radial distance from the major envelope to the root. */
|
|
910
|
+
readonly depth: number;
|
|
911
|
+
/** Profile family that produced this validated profile. */
|
|
912
|
+
readonly kind: ThreadProfileSpec["kind"];
|
|
913
|
+
/** Adjacent axial thread spacing in millimetres. */
|
|
914
|
+
readonly pitch: number;
|
|
915
|
+
/** Immutable open `[axial, radial]` path spanning one pitch. */
|
|
916
|
+
readonly points: readonly Vector2Data[];
|
|
917
|
+
/** Axial width of the flat at the minor envelope. */
|
|
918
|
+
readonly rootFlatWidth: number;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
/**
|
|
922
|
+
* Creates a periodic thread profile for the shaft-locked helical mesher.
|
|
923
|
+
*
|
|
924
|
+
* The open path spans one pitch. Radial zero is the major envelope; negative
|
|
925
|
+
* values point toward the shaft. Custom paths must be finite, axially
|
|
926
|
+
* non-decreasing, periodic at their endpoints, and reach radial zero.
|
|
927
|
+
*
|
|
928
|
+
* @param spec - Profile family or custom one-pitch `[axial, radial]` path, in millimetres.
|
|
929
|
+
*
|
|
930
|
+
* @example Printable triangular thread profile
|
|
931
|
+
* ```ts
|
|
932
|
+
* import { threadProfile } from "@metamesh/modeling/geometry/mechanical";
|
|
933
|
+
*
|
|
934
|
+
* threadProfile({ kind: "triangular", pitch: 1.75 });
|
|
935
|
+
* ```
|
|
936
|
+
*/
|
|
937
|
+
export declare function threadProfile(spec: ThreadProfileSpec): ThreadProfile;
|
|
938
|
+
|
|
939
|
+
/** Fields shared by all thread profile specifications. */
|
|
940
|
+
export declare interface ThreadProfileBaseSpec {
|
|
941
|
+
/** Adjacent axial thread spacing in millimetres. */
|
|
942
|
+
readonly pitch: number;
|
|
943
|
+
/** Optional numerical tolerance overrides. */
|
|
944
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
/** Supported built-in and caller-defined thread profiles. */
|
|
948
|
+
export declare type ThreadProfileSpec =
|
|
949
|
+
| AcmeThreadProfileSpec
|
|
950
|
+
| ButtressThreadProfileSpec
|
|
951
|
+
| CustomThreadProfileSpec
|
|
952
|
+
| SquareThreadProfileSpec
|
|
953
|
+
| TrapezoidalThreadProfileSpec
|
|
954
|
+
| TriangularThreadProfileSpec;
|
|
955
|
+
|
|
956
|
+
/** Runtime-neutral options for the dedicated helical ridge mesher. */
|
|
957
|
+
export declare interface ThreadRidgeOptions {
|
|
958
|
+
/**
|
|
959
|
+
* Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
|
|
960
|
+
* BOSL2-style non-cut lead-in scaling is available on complete thread solids.
|
|
961
|
+
*/
|
|
962
|
+
readonly ends?: ThreadEndTreatmentOptions;
|
|
963
|
+
/** Helix direction. Default: `right`. */
|
|
964
|
+
readonly handedness?: ThreadHandedness;
|
|
965
|
+
/** Total threaded axial length in millimetres. */
|
|
966
|
+
readonly length: number;
|
|
967
|
+
/** Explicit output and circular allocation ceilings. */
|
|
968
|
+
readonly limits?: Partial<ModelingLimits>;
|
|
969
|
+
/** Major diameter in millimetres; apply any caller-owned fit compensation before construction. */
|
|
970
|
+
readonly majorDiameter: number;
|
|
971
|
+
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
972
|
+
readonly phase?: number;
|
|
973
|
+
/** Validated periodic profile repeated around the shaft. */
|
|
974
|
+
readonly profile: ThreadProfile;
|
|
975
|
+
/** Optional circular-resolution policy. */
|
|
976
|
+
readonly resolution?: GeometryResolution;
|
|
977
|
+
/** Number of evenly phased starts. Default: `1`. */
|
|
978
|
+
readonly starts?: number;
|
|
979
|
+
/** Optional numerical tolerance overrides. */
|
|
980
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
/** Whether compensation is being applied to an external or internal thread. */
|
|
984
|
+
export declare type ThreadRole = "male" | "female";
|
|
985
|
+
|
|
986
|
+
/** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
|
|
987
|
+
export declare interface ThreadSolidOptions extends ThreadRidgeOptions {
|
|
988
|
+
/** Independent 45-degree bottom/top bevels; omitted disables both. Auto uses profile depth. */
|
|
989
|
+
readonly bevel?: Bevel;
|
|
990
|
+
/** Distance in millimetres of each bevel target face inward from the corresponding mesh end. */
|
|
991
|
+
readonly bevelOffset?: number;
|
|
992
|
+
/** `inset` trims an external rod; `outset` expands an internal cutter. */
|
|
993
|
+
readonly bevelMode?: "inset" | "outset";
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
/** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
|
|
997
|
+
export declare interface ThreadSolidPreflight {
|
|
998
|
+
/** Uniform axial intervals required only by a requested physical segment-length limit. */
|
|
999
|
+
readonly axialIntervals: number;
|
|
1000
|
+
/** Start-aligned full-circle segment count used by the surface mesh. */
|
|
1001
|
+
readonly circularSegments: number;
|
|
1002
|
+
/** Conservative surface-row count across profile breaks, ends, and bevel stations. */
|
|
1003
|
+
readonly estimatedRows: number;
|
|
1004
|
+
/** Conservative triangle count used by the selected output allocation policy. */
|
|
1005
|
+
readonly estimatedTriangles: number;
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
/** Trapezoidal thread profile with a configurable included angle. */
|
|
1009
|
+
export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
1010
|
+
/** Selects the trapezoidal profile family. */
|
|
1011
|
+
readonly kind: "trapezoidal";
|
|
1012
|
+
/**
|
|
1013
|
+
* Radial depth in millimetres.
|
|
1014
|
+
* @defaultValue `pitch / 2`
|
|
1015
|
+
*/
|
|
1016
|
+
readonly depth?: number;
|
|
1017
|
+
/**
|
|
1018
|
+
* Full angle between the flanks in degrees, from `0` inclusive to `180` exclusive.
|
|
1019
|
+
* Each flank uses half this angle from the radial direction; `90` gives 45-degree slopes.
|
|
1020
|
+
* @defaultValue `30`
|
|
1021
|
+
*/
|
|
1022
|
+
readonly includedAngle?: number;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/** ISO/UTS-like 60-degree truncated triangular profile. */
|
|
1026
|
+
export declare interface TriangularThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
1027
|
+
/** Selects the 60-degree triangular profile family. */
|
|
1028
|
+
readonly kind: "triangular";
|
|
1029
|
+
/**
|
|
1030
|
+
* Crest width divided by pitch.
|
|
1031
|
+
* @defaultValue `1 / 8`
|
|
1032
|
+
*/
|
|
1033
|
+
readonly crestFlatRatio?: number;
|
|
1034
|
+
/**
|
|
1035
|
+
* Root width divided by pitch.
|
|
1036
|
+
* @defaultValue `1 / 4`
|
|
1037
|
+
*/
|
|
1038
|
+
readonly rootFlatRatio?: number;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
export {};
|