@metamesh/modeling 0.16.0 → 0.17.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 +40 -0
- package/README.md +26 -5
- package/dist/api/geometry.d.ts +99 -44
- package/dist/api/index.d.ts +167 -20
- package/dist/docs/guides/concepts.md +4 -1
- package/dist/docs/guides/recipes.md +33 -6
- package/dist/docs/manifest.json +191 -56
- package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
- package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
- package/dist/docs/reference/engine/GenerationOptions.md +1 -1
- package/dist/docs/reference/engine/GeometryResource.md +1 -1
- package/dist/docs/reference/engine/ModelDependencies.md +1 -1
- package/dist/docs/reference/engine/ModelEngine.md +1 -1
- package/dist/docs/reference/engine/ModelEngineOptions.md +1 -1
- package/dist/docs/reference/engine/ModelSession.md +1 -1
- package/dist/docs/reference/engine/ModelSnapshot.md +1 -1
- package/dist/docs/reference/engine/SessionOptions.md +1 -1
- package/dist/docs/reference/engine/SnapshotPart.md +1 -1
- package/dist/docs/reference/engine/categories/host-lifecycle.md +1 -1
- package/dist/docs/reference/engine/createModelEngine.md +1 -1
- package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
- package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
- package/dist/docs/reference/engine/validateModel.md +1 -1
- package/dist/docs/reference/engine.md +1 -1
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
- package/dist/docs/reference/geometry/Anchor3-type.md +1 -1
- package/dist/docs/reference/geometry/ArcCurve2.md +1 -1
- package/dist/docs/reference/geometry/ArcCurve3.md +1 -1
- package/dist/docs/reference/geometry/AttachOptions.md +1 -1
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +1 -1
- package/dist/docs/reference/geometry/Bounds2-type.md +1 -1
- package/dist/docs/reference/geometry/Bounds2Data.md +1 -1
- package/dist/docs/reference/geometry/Bounds2Input.md +1 -1
- package/dist/docs/reference/geometry/Bounds2Options.md +72 -0
- package/dist/docs/reference/geometry/Bounds3-type.md +1 -1
- package/dist/docs/reference/geometry/Bounds3Data.md +1 -1
- package/dist/docs/reference/geometry/Bounds3Input.md +1 -1
- package/dist/docs/reference/geometry/Bounds3Options.md +72 -0
- package/dist/docs/reference/geometry/BoundsFit2.md +1 -1
- package/dist/docs/reference/geometry/BoundsFit3.md +1 -1
- package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorFace.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxEdge.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/geometry/BoxOptions.md +1 -1
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularSampling.md +41 -0
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +14 -0
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/Contour.md +1 -1
- package/dist/docs/reference/geometry/ContourCurve.md +1 -1
- package/dist/docs/reference/geometry/ContourPoint.md +1 -1
- package/dist/docs/reference/geometry/ContourSegment.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +1 -1
- package/dist/docs/reference/geometry/Curve2.md +1 -1
- package/dist/docs/reference/geometry/Curve3.md +1 -1
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +1 -1
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +1 -1
- package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +1 -1
- package/dist/docs/reference/geometry/EndTreatments.md +1 -1
- package/dist/docs/reference/geometry/ExtrudeOptions.md +1 -1
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
- package/dist/docs/reference/geometry/Frame3.md +1 -1
- package/dist/docs/reference/geometry/GeometryError.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldOptions.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +1 -1
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeInterval.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeSpec.md +1 -1
- package/dist/docs/reference/geometry/LineCurve2.md +1 -1
- package/dist/docs/reference/geometry/LineCurve3.md +1 -1
- package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
- package/dist/docs/reference/geometry/LoftOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
- package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
- package/dist/docs/reference/geometry/Path2-type.md +1 -1
- package/dist/docs/reference/geometry/Path2Data.md +1 -1
- package/dist/docs/reference/geometry/Path2Input.md +1 -1
- package/dist/docs/reference/geometry/Path3-type.md +1 -1
- package/dist/docs/reference/geometry/Path3Data.md +1 -1
- package/dist/docs/reference/geometry/Path3Input.md +1 -1
- package/dist/docs/reference/geometry/PathFrame.md +1 -1
- package/dist/docs/reference/geometry/PathLocation.md +1 -1
- package/dist/docs/reference/geometry/PathNormalGuide.md +1 -1
- package/dist/docs/reference/geometry/PathOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPlacement.md +1 -1
- package/dist/docs/reference/geometry/PathResamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/Pivot2Options.md +1 -1
- package/dist/docs/reference/geometry/Pivot3Options.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +1 -1
- package/dist/docs/reference/geometry/PolygonData.md +1 -1
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -1
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/Profile.md +1 -1
- package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
- package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
- package/dist/docs/reference/geometry/ProfileSpan2.md +1 -1
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
- package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
- package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/RadialSizing.md +1 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +1 -1
- package/dist/docs/reference/geometry/RegionData.md +1 -1
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +1 -1
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
- package/dist/docs/reference/geometry/SampledCurve2.md +1 -1
- package/dist/docs/reference/geometry/SampledCurve3.md +1 -1
- package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
- package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
- package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
- package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/SphereOptions.md +1 -1
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/StrokeCap.md +1 -1
- package/dist/docs/reference/geometry/StrokeJoin.md +1 -1
- package/dist/docs/reference/geometry/StrokeOptions.md +1 -1
- package/dist/docs/reference/geometry/SvgImportOptions.md +16 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +16 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
- package/dist/docs/reference/geometry/SweepOptions.md +1 -1
- package/dist/docs/reference/geometry/SweepOrientation.md +1 -1
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfile-type.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadRole.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +1 -1
- package/dist/docs/reference/geometry/TorusOptions.md +1 -1
- package/dist/docs/reference/geometry/Transform2-type.md +1 -1
- package/dist/docs/reference/geometry/Transform2Data.md +1 -1
- package/dist/docs/reference/geometry/Transform2Input.md +1 -1
- package/dist/docs/reference/geometry/Transform3-type.md +1 -1
- package/dist/docs/reference/geometry/Transform3Data.md +1 -1
- package/dist/docs/reference/geometry/Transform3Input.md +1 -1
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TubeOptions.md +1 -1
- package/dist/docs/reference/geometry/Vector2-type.md +1 -1
- package/dist/docs/reference/geometry/Vector2Data.md +1 -1
- package/dist/docs/reference/geometry/Vector2Input.md +1 -1
- package/dist/docs/reference/geometry/Vector3-type.md +1 -1
- package/dist/docs/reference/geometry/Vector3Data.md +1 -1
- package/dist/docs/reference/geometry/Vector3Input.md +1 -1
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +3 -3
- package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
- package/dist/docs/reference/geometry/add2.md +1 -1
- package/dist/docs/reference/geometry/add3.md +1 -1
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +1 -1
- package/dist/docs/reference/geometry/anchor3.md +1 -1
- package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformDirection3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformPoint3.md +1 -1
- package/dist/docs/reference/geometry/attachmentTransform3.md +1 -1
- package/dist/docs/reference/geometry/bounds2.md +7 -6
- package/dist/docs/reference/geometry/bounds3.md +7 -6
- package/dist/docs/reference/geometry/boundsCenter.md +1 -1
- package/dist/docs/reference/geometry/boundsSize.md +1 -1
- package/dist/docs/reference/geometry/boxAnchor3.md +1 -1
- package/dist/docs/reference/geometry/categories/bounds-layout.md +7 -8
- package/dist/docs/reference/geometry/categories/curves-paths.md +1 -1
- package/dist/docs/reference/geometry/categories/mechanical.md +1 -1
- package/dist/docs/reference/geometry/categories/meshes.md +1 -1
- package/dist/docs/reference/geometry/categories/pattern-placement.md +1 -1
- package/dist/docs/reference/geometry/categories/primitive-options.md +1 -1
- package/dist/docs/reference/geometry/categories/profiles-regions.md +1 -1
- package/dist/docs/reference/geometry/categories/resolution-errors.md +5 -2
- package/dist/docs/reference/geometry/categories/transforms-math.md +1 -1
- package/dist/docs/reference/geometry/categories/vector-import.md +1 -1
- package/dist/docs/reference/geometry/circleContour.md +1 -1
- package/dist/docs/reference/geometry/closeToAxis.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
- package/dist/docs/reference/geometry/composeTransform3.md +1 -1
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +1 -1
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +1 -1
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +1 -1
- package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +1 -1
- package/dist/docs/reference/geometry/contourContainsPoint.md +1 -1
- package/dist/docs/reference/geometry/cross2.md +1 -1
- package/dist/docs/reference/geometry/cross3.md +1 -1
- package/dist/docs/reference/geometry/cylinderAnchor3.md +1 -1
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/distance2.md +1 -1
- package/dist/docs/reference/geometry/distance3.md +1 -1
- package/dist/docs/reference/geometry/distributeAlongPath.md +1 -1
- package/dist/docs/reference/geometry/dot2.md +1 -1
- package/dist/docs/reference/geometry/dot3.md +1 -1
- package/dist/docs/reference/geometry/ellipseContour.md +1 -1
- package/dist/docs/reference/geometry/eulerTransform3.md +1 -1
- package/dist/docs/reference/geometry/extrudeMesh.md +1 -1
- package/dist/docs/reference/geometry/fitBounds.md +1 -1
- package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
- package/dist/docs/reference/geometry/frameTransform3.md +1 -1
- package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +1 -1
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
- package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +1 -1
- package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/inverseTransform3.md +1 -1
- package/dist/docs/reference/geometry/isGeometryError.md +1 -1
- package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
- package/dist/docs/reference/geometry/layoutRow.md +1 -1
- package/dist/docs/reference/geometry/length2.md +1 -1
- package/dist/docs/reference/geometry/length3.md +1 -1
- package/dist/docs/reference/geometry/lerp2.md +1 -1
- package/dist/docs/reference/geometry/lerp3.md +1 -1
- package/dist/docs/reference/geometry/linearPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/loftMesh.md +1 -1
- package/dist/docs/reference/geometry/matchProfiles.md +1 -1
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +1 -1
- package/dist/docs/reference/geometry/meshBounds.md +1 -1
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
- package/dist/docs/reference/geometry/normalize2.md +1 -1
- package/dist/docs/reference/geometry/normalize3.md +1 -1
- package/dist/docs/reference/geometry/normalizeContour.md +1 -1
- package/dist/docs/reference/geometry/normalizePolygon.md +1 -1
- package/dist/docs/reference/geometry/normalizeRegion.md +1 -1
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +1 -1
- package/dist/docs/reference/geometry/path2.md +1 -1
- package/dist/docs/reference/geometry/path3.md +1 -1
- package/dist/docs/reference/geometry/pathPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +1 -1
- package/dist/docs/reference/geometry/preflightSvgRegion.md +12 -3
- package/dist/docs/reference/geometry/preflightThreadedNut.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedRod.md +1 -1
- package/dist/docs/reference/geometry/projectOntoPlane3.md +1 -1
- package/dist/docs/reference/geometry/radialPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/rectangleContour.md +1 -1
- package/dist/docs/reference/geometry/rectangleProfile.md +1 -1
- package/dist/docs/reference/geometry/regionArea.md +1 -1
- package/dist/docs/reference/geometry/regionBounds.md +1 -1
- package/dist/docs/reference/geometry/regularPolygonContour.md +1 -1
- package/dist/docs/reference/geometry/resamplePolyline2.md +1 -1
- package/dist/docs/reference/geometry/resamplePolyline3.md +1 -1
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCircularSampling.md +40 -0
- package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/resolveKnuckleHinge.md +1 -1
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/revolveMesh.md +1 -1
- package/dist/docs/reference/geometry/rotate2.md +1 -1
- package/dist/docs/reference/geometry/rotationTransform3.md +1 -1
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +1 -1
- package/dist/docs/reference/geometry/sampleContour.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleHelix.md +1 -1
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
- package/dist/docs/reference/geometry/sampleSideProfile.md +1 -1
- package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
- package/dist/docs/reference/geometry/scale2.md +1 -1
- package/dist/docs/reference/geometry/scale3.md +1 -1
- package/dist/docs/reference/geometry/scaleTransform3.md +1 -1
- package/dist/docs/reference/geometry/signedContourArea.md +1 -1
- package/dist/docs/reference/geometry/starContour.md +1 -1
- package/dist/docs/reference/geometry/strokeRegionData.md +1 -1
- package/dist/docs/reference/geometry/subtract2.md +1 -1
- package/dist/docs/reference/geometry/subtract3.md +1 -1
- package/dist/docs/reference/geometry/sweepMesh.md +1 -1
- package/dist/docs/reference/geometry/threadProfile.md +1 -1
- package/dist/docs/reference/geometry/transform2.md +1 -1
- package/dist/docs/reference/geometry/transform3.md +1 -1
- package/dist/docs/reference/geometry/transformDeterminant3.md +1 -1
- package/dist/docs/reference/geometry/transformRegionData.md +1 -1
- package/dist/docs/reference/geometry/transformTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/translationTransform3.md +1 -1
- package/dist/docs/reference/geometry/triangulateContour.md +1 -1
- package/dist/docs/reference/geometry/validateSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/validateTransform3.md +1 -1
- package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/vector2.md +1 -1
- package/dist/docs/reference/geometry/vector3.md +1 -1
- package/dist/docs/reference/geometry.md +1 -1
- package/dist/docs/reference/model/Anchor3.md +1 -1
- package/dist/docs/reference/model/AttachOptions.md +1 -1
- package/dist/docs/reference/model/Bounds2-type.md +1 -1
- package/dist/docs/reference/model/Bounds2Data.md +1 -1
- package/dist/docs/reference/model/Bounds2Input.md +1 -1
- package/dist/docs/reference/model/Bounds2Options.md +70 -0
- package/dist/docs/reference/model/Bounds3-type.md +1 -1
- package/dist/docs/reference/model/Bounds3Data.md +1 -1
- package/dist/docs/reference/model/Bounds3Input.md +1 -1
- package/dist/docs/reference/model/Bounds3Options.md +70 -0
- package/dist/docs/reference/model/BoxEdge.md +1 -1
- package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/model/BoxOptions.md +1 -1
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/CircleContourOptions.md +1 -1
- package/dist/docs/reference/model/CircleOptions.md +1 -1
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/model/Computed.md +1 -1
- package/dist/docs/reference/model/ComputedValue.md +1 -1
- package/dist/docs/reference/model/Contour.md +1 -1
- package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/model/CorrespondingContour.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/model/CylinderOptions.md +1 -1
- package/dist/docs/reference/model/DiagnosticOptions.md +1 -1
- package/dist/docs/reference/model/EdgeTreatment.md +1 -1
- package/dist/docs/reference/model/EllipseContourOptions.md +1 -1
- package/dist/docs/reference/model/EllipseOptions.md +1 -1
- package/dist/docs/reference/model/EndTreatments.md +1 -1
- package/dist/docs/reference/model/ExtrudeOptions.md +1 -1
- package/dist/docs/reference/model/FinalizedModel.md +1 -1
- package/dist/docs/reference/model/FinalizedPart.md +1 -1
- package/dist/docs/reference/model/Frame3.md +1 -1
- package/dist/docs/reference/model/GenerateCallback.md +1 -1
- package/dist/docs/reference/model/GenerateContext.md +1 -1
- package/dist/docs/reference/model/GeneratedPart.md +1 -1
- package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
- package/dist/docs/reference/model/GenerationError.md +1 -1
- package/dist/docs/reference/model/GeometryResolution.md +1 -1
- package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/model/GridPatternOptions.md +1 -1
- package/dist/docs/reference/model/HeightfieldOptions.md +1 -1
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +1 -1
- package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/model/HoleCutterOptions.md +77 -0
- package/dist/docs/reference/model/HoleCutterOverrun.md +35 -0
- package/dist/docs/reference/model/HoleCutterRecess.md +87 -0
- package/dist/docs/reference/model/HullOptions.md +1 -1
- package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
- package/dist/docs/reference/model/ImplicitOptions.md +1 -1
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +1 -1
- package/dist/docs/reference/model/KnuckleHinge-type.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +9 -5
- package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -3
- package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeSpec.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
- package/dist/docs/reference/model/LinearPatternOptions.md +1 -1
- package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/model/LoftOptions.md +1 -1
- package/dist/docs/reference/model/LoftPlacement.md +1 -1
- package/dist/docs/reference/model/LoftStation.md +1 -1
- package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/model/ModelProgram.md +1 -1
- package/dist/docs/reference/model/ModelingLimits.md +1 -1
- package/dist/docs/reference/model/NumericArray.md +1 -1
- package/dist/docs/reference/model/PartGeometry.md +1 -1
- package/dist/docs/reference/model/PartOptions.md +1 -1
- package/dist/docs/reference/model/Path2-type.md +1 -1
- package/dist/docs/reference/model/Path2Data.md +1 -1
- package/dist/docs/reference/model/Path2Input.md +1 -1
- package/dist/docs/reference/model/Path3-type.md +1 -1
- package/dist/docs/reference/model/Path3Data.md +1 -1
- package/dist/docs/reference/model/Path3Input.md +1 -1
- package/dist/docs/reference/model/PathLocation.md +1 -1
- package/dist/docs/reference/model/PathNormalGuide.md +1 -1
- package/dist/docs/reference/model/PathOptions.md +1 -1
- package/dist/docs/reference/model/PathPatternOptions.md +1 -1
- package/dist/docs/reference/model/PathResamplingOptions.md +1 -1
- package/dist/docs/reference/model/PatternSource.md +1 -1
- package/dist/docs/reference/model/Pivot2Options.md +1 -1
- package/dist/docs/reference/model/Pivot3Options.md +1 -1
- package/dist/docs/reference/model/PlaneOptions.md +1 -1
- package/dist/docs/reference/model/PolygonData.md +1 -1
- package/dist/docs/reference/model/PolygonOptions.md +1 -1
- package/dist/docs/reference/model/PrimitiveAttachment.md +1 -1
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/model/Profile.md +1 -1
- package/dist/docs/reference/model/ProfileComponent2.md +1 -1
- package/dist/docs/reference/model/ProfileContour2.md +1 -1
- package/dist/docs/reference/model/ProfileSpan2.md +1 -1
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/RadialPatternOptions.md +1 -1
- package/dist/docs/reference/model/RadialSizing.md +1 -1
- package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/model/RectangleContourOptions.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/model/RectangleOptions.md +1 -1
- package/dist/docs/reference/model/RegionData.md +1 -1
- package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
- package/dist/docs/reference/model/RevolveOptions.md +1 -1
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Section.md +1 -1
- package/dist/docs/reference/model/SectionHullOptions.md +1 -1
- package/dist/docs/reference/model/SectionInspection.md +1 -1
- package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
- package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Solid.md +1 -1
- package/dist/docs/reference/model/SolidInspection.md +1 -1
- package/dist/docs/reference/model/SolidSegmentHit.md +1 -1
- package/dist/docs/reference/model/SphereOptions.md +1 -1
- package/dist/docs/reference/model/StarOptions.md +1 -1
- package/dist/docs/reference/model/StrokeCap.md +1 -1
- package/dist/docs/reference/model/StrokeJoin.md +1 -1
- package/dist/docs/reference/model/StrokeOptions.md +1 -1
- package/dist/docs/reference/model/SvgOrigin.md +1 -1
- package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
- package/dist/docs/reference/model/SvgSectionOptions.md +14 -1
- package/dist/docs/reference/model/SweepOptions.md +1 -1
- package/dist/docs/reference/model/SweepOrientation.md +1 -1
- package/dist/docs/reference/model/TextSectionOptions.md +1 -1
- package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/model/ThreadHandedness.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/model/ThreadProfile.md +1 -1
- package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
- package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/model/ThreadedNutOptions.md +1 -1
- package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/model/ThreadedRodOptions.md +1 -1
- package/dist/docs/reference/model/TorusOptions.md +1 -1
- package/dist/docs/reference/model/Transform2-type.md +1 -1
- package/dist/docs/reference/model/Transform2Data.md +1 -1
- package/dist/docs/reference/model/Transform2Input.md +1 -1
- package/dist/docs/reference/model/Transform3-type.md +1 -1
- package/dist/docs/reference/model/Transform3Data.md +1 -1
- package/dist/docs/reference/model/Transform3Input.md +1 -1
- package/dist/docs/reference/model/TriangleMesh.md +1 -1
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +1 -1
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/model/TubeOptions.md +1 -1
- package/dist/docs/reference/model/Vector2-type.md +1 -1
- package/dist/docs/reference/model/Vector2Data.md +1 -1
- package/dist/docs/reference/model/Vector2Input.md +1 -1
- package/dist/docs/reference/model/Vector3-type.md +1 -1
- package/dist/docs/reference/model/Vector3Data.md +1 -1
- package/dist/docs/reference/model/Vector3Input.md +1 -1
- package/dist/docs/reference/model/VectorTextLayout.md +1 -1
- package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/model/anchor.md +1 -1
- package/dist/docs/reference/model/bounds2.md +7 -6
- package/dist/docs/reference/model/bounds3.md +7 -6
- package/dist/docs/reference/model/box.md +1 -1
- package/dist/docs/reference/model/castSegment.md +1 -1
- package/dist/docs/reference/model/categories/boolean-operations.md +1 -1
- package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -1
- package/dist/docs/reference/model/categories/bounds.md +5 -3
- package/dist/docs/reference/model/categories/contracts.md +1 -1
- package/dist/docs/reference/model/categories/core-values-errors.md +1 -1
- package/dist/docs/reference/model/categories/explicit-profiles.md +1 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +1 -1
- package/dist/docs/reference/model/categories/generation.md +1 -1
- package/dist/docs/reference/model/categories/hinges.md +2 -2
- package/dist/docs/reference/model/categories/inspection.md +1 -1
- package/dist/docs/reference/model/categories/mesh-inspection.md +1 -1
- package/dist/docs/reference/model/categories/paths.md +1 -1
- package/dist/docs/reference/model/categories/primitives.md +5 -1
- package/dist/docs/reference/model/categories/resolution.md +1 -1
- package/dist/docs/reference/model/categories/sections.md +1 -1
- package/dist/docs/reference/model/categories/threads.md +1 -1
- package/dist/docs/reference/model/categories/transforms-placement.md +1 -1
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/components.md +1 -1
- package/dist/docs/reference/model/compose.md +1 -1
- package/dist/docs/reference/model/cylinder.md +1 -1
- package/dist/docs/reference/model/distance.md +1 -1
- package/dist/docs/reference/model/ellipse.md +1 -1
- package/dist/docs/reference/model/extrude.md +1 -1
- package/dist/docs/reference/model/generate.md +1 -1
- package/dist/docs/reference/model/gridPattern.md +1 -1
- package/dist/docs/reference/model/heightfield.md +1 -1
- package/dist/docs/reference/model/holeCutter.md +45 -0
- package/dist/docs/reference/model/hull.md +1 -1
- package/dist/docs/reference/model/immutableBuffer.md +1 -1
- package/dist/docs/reference/model/immutableMesh.md +1 -1
- package/dist/docs/reference/model/implicit.md +1 -1
- package/dist/docs/reference/model/inspectSection.md +1 -1
- package/dist/docs/reference/model/inspectSolid.md +1 -1
- package/dist/docs/reference/model/internalThreadCutter.md +1 -1
- package/dist/docs/reference/model/intersect.md +1 -1
- package/dist/docs/reference/model/isEmpty.md +1 -1
- package/dist/docs/reference/model/knuckleHinge.md +3 -3
- package/dist/docs/reference/model/linearPattern.md +1 -1
- package/dist/docs/reference/model/loft.md +1 -1
- package/dist/docs/reference/model/matchProfiles.md +1 -1
- package/dist/docs/reference/model/minkowskiSum.md +1 -1
- package/dist/docs/reference/model/path2.md +1 -1
- package/dist/docs/reference/model/path3.md +1 -1
- package/dist/docs/reference/model/pathPattern.md +1 -1
- package/dist/docs/reference/model/polygon.md +1 -1
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +1 -1
- package/dist/docs/reference/model/preflightThreadedNut.md +1 -1
- package/dist/docs/reference/model/preflightThreadedRod.md +1 -1
- package/dist/docs/reference/model/radialPattern.md +1 -1
- package/dist/docs/reference/model/rectangle.md +1 -1
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +1 -1
- package/dist/docs/reference/model/solidFromMesh.md +1 -1
- package/dist/docs/reference/model/sphere.md +1 -1
- package/dist/docs/reference/model/split.md +1 -1
- package/dist/docs/reference/model/splitByPlane.md +1 -1
- package/dist/docs/reference/model/star.md +1 -1
- package/dist/docs/reference/model/stroke.md +1 -1
- package/dist/docs/reference/model/svgPathSection.md +1 -1
- package/dist/docs/reference/model/svgSection.md +5 -1
- package/dist/docs/reference/model/sweep.md +1 -1
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +1 -1
- package/dist/docs/reference/model/threadedNut.md +1 -1
- package/dist/docs/reference/model/threadedRod.md +1 -1
- package/dist/docs/reference/model/torus.md +1 -1
- package/dist/docs/reference/model/transform2.md +1 -1
- package/dist/docs/reference/model/transform3.md +1 -1
- package/dist/docs/reference/model/tube.md +1 -1
- package/dist/docs/reference/model/union.md +1 -1
- package/dist/docs/reference/model/vector2.md +1 -1
- package/dist/docs/reference/model/vector3.md +1 -1
- package/dist/docs/reference/model.md +1 -1
- package/dist/docs/reference/text/Bounds2Data.md +1 -1
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
- package/dist/docs/reference/text/Vector2Data.md +1 -1
- package/dist/docs/reference/text/VectorFont.md +7 -7
- package/dist/docs/reference/text/VectorFontOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
- package/dist/docs/reference/text/VectorTextLayout.md +1 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +3 -3
- package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/text/VectorTextOptions.md +1 -1
- package/dist/docs/reference/text/categories/font-preparation.md +1 -1
- package/dist/docs/reference/text/prepareVectorFont.md +1 -1
- package/dist/docs/reference/text.md +1 -1
- package/dist/engine/extrusion-finishing.js +2 -29
- package/dist/engine/hole-cutter-operation.js +148 -0
- package/dist/engine/knuckle-hinge-operation.js +55 -12
- package/dist/engine/modeling-context.js +12 -0
- package/dist/engine/primitive-operations.js +19 -6
- package/dist/engine/section-operations.js +1 -1
- package/dist/geometry/bounds-value.js +37 -9
- package/dist/geometry/bounds.js +0 -17
- package/dist/geometry/circular-sampling.js +45 -0
- package/dist/geometry/convex-offset.js +41 -0
- package/dist/geometry/index.js +2 -1
- package/dist/geometry/math/immutable-value.js +1 -1
- package/dist/geometry/profiles/profiles.js +3 -23
- package/dist/geometry/svg/matrix.js +21 -0
- package/dist/geometry/svg-import.js +134 -52
- package/dist/model/execution-binding.js +1 -1
- package/dist/model/geometry-recipes.js +1 -1
- package/dist/model/hole-cutter.js +1 -0
- package/dist/model/operations.js +23 -2
- package/dist/model/recipe-declaration.js +1 -0
- package/package.json +1 -1
- package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +0 -24
- package/dist/docs/reference/geometry/boundsFromSize.md +0 -84
- package/dist/docs/reference/geometry/containsBounds.md +0 -73
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @metamesh/modeling
|
|
2
2
|
|
|
3
|
+
## 0.17.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Expose `resolveCircularSampling` for the resolved count and actual vertex/face radii of a sampled
|
|
8
|
+
circle without allocating points. It shares sampling rules with `resolveCircularSegments`, aligned
|
|
9
|
+
counts, and `circleContour`, including exact-count precedence and physical error ceilings.
|
|
10
|
+
|
|
11
|
+
Construct fluent bounds directly with `bounds2({ size: [width, height] })` and
|
|
12
|
+
`bounds3({ size: [width, depth, height], center: false })`. Size construction accepts finite
|
|
13
|
+
nonnegative dimensions, centers by default, and is mutually exclusive with min/max construction.
|
|
14
|
+
Remove `boundsFromSize`, `BoundsFromSizeOptions`, and the standalone `containsBounds` export.
|
|
15
|
+
Containment remains available on `Bounds2` and `Bounds3`, including touching boundaries.
|
|
16
|
+
|
|
17
|
+
Migration: replace `boundsFromSize(size, { center })` with the dimension-specific
|
|
18
|
+
`bounds2({ size, center })` or `bounds3({ size, center })`. Use `.toData()` when a plain record is
|
|
19
|
+
required. For sampled bore and wall checks, use `vertexRadius` and `faceRadius` from
|
|
20
|
+
`resolveCircularSampling` instead of repeating faceting trigonometry.
|
|
21
|
+
Replace `containsBounds(outer, inner)` with `bounds2(outer).containsBounds(inner)` or the matching
|
|
22
|
+
XYZ bounds value's method.
|
|
23
|
+
|
|
24
|
+
- d0cc194: Rename per-half `barrelChamfer` to `chamfer` in `knuckleHinge`. The same 45-degree setback now finishes barrel outer rims and exposed web edges. Keep the buried root square and share bevel coordinates with the barrel and mounting body to avoid microscopic steps and collapsed placement triangles. Reject chamfers that consume the web band or collapse its end contours.
|
|
25
|
+
- Add deferred `holeCutter` recipes for circular screw holes and existing Section pocket profiles.
|
|
26
|
+
Circular cutters support counterbores and countersinks; convex single-contour profiles support
|
|
27
|
+
45-degree entry chamfers. Explicit `overrun.bottom` and `overrun.top` preserve blind-pocket floors
|
|
28
|
+
unless the caller deliberately extends the cutter.
|
|
29
|
+
Circular entry chamfers retain nominal circular radii; Section entry chamfers offset the supplied
|
|
30
|
+
sampled contour's edges.
|
|
31
|
+
|
|
32
|
+
Advance the Modeling host runtime to major 9 for hole cutters and fitted SVG recipe options.
|
|
33
|
+
Rebuild Generator packages against the new library set; old host/runtime packages are rejected.
|
|
34
|
+
|
|
35
|
+
Migration tip: reuse `regularPolygon`, `rectangle`, or other Section constructors as the cutter's
|
|
36
|
+
`profile`. Position a blind cutter at its intended floor and set only `overrun.top` for opening
|
|
37
|
+
padding. Keep allowances, minimum floor thickness and feature-specific assertions in your model.
|
|
38
|
+
|
|
39
|
+
- Add an optional positioned XY `fit` target to `preflightSvgRegion` and `svgSection`. Reuse `fitBounds` for uniform scale and translation while resampling original SVG curves at the final millimetre tolerance and edge spacing. Normalize fitted source units before topology checks, and use relative matrix conditioning so tiny well-conditioned SVG coordinates can be enlarged safely. Preserve holes, painted strokes, exact circular-count overrides, bounded work, and host-owned sampling ceilings. Preflight results expose the applied fit for registered layers and measure the final region.
|
|
40
|
+
|
|
41
|
+
Migration tip: replace import → measure → scale → re-import code with `preflightSvgRegion(svg, { fit: bounds2({ size: [30, 18] }), resolution: { maxChordError: 0.05 } })`. `svgSection` preserves positioned fit targets instead of centering them again.
|
|
42
|
+
|
|
3
43
|
## 0.16.0
|
|
4
44
|
|
|
5
45
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -113,12 +113,29 @@ Closed `Path2` values describe traversal, not material; `polygon(path)` fills th
|
|
|
113
113
|
winding. Path transforms preserve traversal under reflection. `toData()` supplies a frozen record with points, closure, and dimension for interchange.
|
|
114
114
|
|
|
115
115
|
Use `bounds2({ min, max })` and `bounds3({ min, max })` for axis-aligned extents with fluent
|
|
116
|
-
`size()`, `center()`, and `containsBounds()` queries.
|
|
116
|
+
`size()`, `center()`, and `containsBounds()` queries. Construct from dimensions with
|
|
117
|
+
`bounds2({ size: [30, 18] })` or `bounds3({ size: [30, 18, 8], center: false })`; centered size
|
|
118
|
+
construction is the default, and size cannot be combined with min/max. Path `bounds()` returns these values, or
|
|
117
119
|
`undefined` for an empty path. Measurements and snapshots retain plain `Bounds2Data` / `Bounds3Data`;
|
|
118
120
|
wrap them once for fluent queries and use `toData()` for a frozen min/max record.
|
|
119
121
|
Containment includes touching boundaries in the same coordinate frame; it does not establish
|
|
120
122
|
manufacturing fit. Pure `fitBounds` and `layoutRow` accept values or data for fitting and row placement.
|
|
121
123
|
|
|
124
|
+
## Hole and pocket cutters
|
|
125
|
+
|
|
126
|
+
`holeCutter({ diameter, height })` declares a circular cutter from Z=0 to `height`.
|
|
127
|
+
Use `profile: regularPolygon(...)` or `profile: rectangle(...)` instead of `diameter` for
|
|
128
|
+
existing Section outlines. Plain profiles may have holes or disconnected regions. A positive
|
|
129
|
+
`entryChamfer` must be smaller than `height`. Circular entries use nominal frustum radii;
|
|
130
|
+
profile entries expand one strictly convex contour without holes by 45-degree parallel-edge
|
|
131
|
+
offsets of its sampled boundary.
|
|
132
|
+
|
|
133
|
+
Circular cutters additionally accept a `recess` with `kind: "counterbore"`, `diameter` and `depth`,
|
|
134
|
+
or `kind: "countersink"`, `diameter` and full `includedAngle` in degrees. Recesses and entry chamfers
|
|
135
|
+
are alternatives; `face` selects the top opening by default or the bottom opening explicitly.
|
|
136
|
+
Both `overrun.bottom` and `overrun.top` default to zero. To preserve a blind pocket floor, position
|
|
137
|
+
the cutter at that floor and extend only its top. Consumers own fit allowances and retained walls.
|
|
138
|
+
|
|
122
139
|
## Mechanical joints
|
|
123
140
|
|
|
124
141
|
`knuckleHinge(options)` declares separate `halfA` and `halfB` solids with a centered +X pin axis
|
|
@@ -126,10 +143,14 @@ and +Z roll guide. Choose `print-in-place`, `inserted-pin`, or `lift-off` constr
|
|
|
126
143
|
joints require an odd knuckle count; lift-off joints require two knuckles and an explicit
|
|
127
144
|
`pinEngagement`. Inserted-pin joints supply no pin or retention hardware.
|
|
128
145
|
|
|
129
|
-
Each half accepts an optional rectangular web with its own Y direction, lower-face Z coordinate
|
|
130
|
-
reach, or can remain barrels only. Optional `
|
|
131
|
-
|
|
132
|
-
|
|
146
|
+
Each half accepts an optional rectangular web with its own Y direction, lower-face Z coordinate
|
|
147
|
+
(`zMin`), thickness, and reach, or can remain barrels only. Optional per-half `chamfer` sets the
|
|
148
|
+
45-degree setback in millimetres at both ends of every barrel and on exposed web edges. The root
|
|
149
|
+
at the pin centreline stays square so its faces merge with the barrel. The setback defaults to
|
|
150
|
+
zero and must leave a positive barrel wall and axial band. Web thickness must exceed twice the
|
|
151
|
+
setback; web reach and knuckle length must exceed `2 * Math.SQRT2 * chamfer` to retain the end contours.
|
|
152
|
+
Consumers connect disconnected intervals to their plates or shells, preserve bores when adding
|
|
153
|
+
material, and own mounting holes, part placement, and motion. Arbitrary attachments
|
|
133
154
|
have no guaranteed opening range. Use `resolveKnuckleHinge(spec, sampling)` from `/geometry` for
|
|
134
155
|
the immutable interval schedule, axis frame, integral pin extent, and conservative faceted wall.
|
|
135
156
|
|
package/dist/api/geometry.d.ts
CHANGED
|
@@ -248,14 +248,15 @@ export declare interface Bounds2 extends Bounds2Data {
|
|
|
248
248
|
}
|
|
249
249
|
|
|
250
250
|
/**
|
|
251
|
-
*
|
|
251
|
+
* Constructs immutable finite XY bounds from ordered extrema or nonnegative size in millimetres.
|
|
252
252
|
*
|
|
253
253
|
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
254
254
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
255
|
+
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
255
256
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
256
|
-
* runtime
|
|
257
|
+
* runtime 9.0.0 or newer in major 9.
|
|
257
258
|
*/
|
|
258
|
-
export declare function bounds2(input:
|
|
259
|
+
export declare function bounds2(input: Bounds2Options): Bounds2;
|
|
259
260
|
|
|
260
261
|
/** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
|
|
261
262
|
export declare interface Bounds2Data {
|
|
@@ -268,6 +269,25 @@ export declare interface Bounds2Data {
|
|
|
268
269
|
/** An immutable XY bounds value or its plain min/max representation. */
|
|
269
270
|
export declare type Bounds2Input = Bounds2 | Bounds2Data;
|
|
270
271
|
|
|
272
|
+
/** XY bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
273
|
+
export declare type Bounds2Options =
|
|
274
|
+
| (Bounds2Input & {
|
|
275
|
+
/** Preserves the size query when snapshotting an existing fluent value. */
|
|
276
|
+
readonly size?: Bounds2["size"];
|
|
277
|
+
/** Preserves the center query when snapshotting an existing fluent value. */
|
|
278
|
+
readonly center?: Bounds2["center"];
|
|
279
|
+
})
|
|
280
|
+
| {
|
|
281
|
+
/** Nonnegative XY dimensions in millimetres. */
|
|
282
|
+
readonly size: Vector2Data;
|
|
283
|
+
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
284
|
+
readonly center?: boolean;
|
|
285
|
+
/** Minimum coordinates are unavailable when size is supplied. */
|
|
286
|
+
readonly min?: never;
|
|
287
|
+
/** Maximum coordinates are unavailable when size is supplied. */
|
|
288
|
+
readonly max?: never;
|
|
289
|
+
};
|
|
290
|
+
|
|
271
291
|
/** Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
272
292
|
export declare interface Bounds3 extends Bounds3Data {
|
|
273
293
|
/** Returns nonnegative X/Y/Z dimensions in millimetres, including zero extents. */
|
|
@@ -281,14 +301,15 @@ export declare interface Bounds3 extends Bounds3Data {
|
|
|
281
301
|
}
|
|
282
302
|
|
|
283
303
|
/**
|
|
284
|
-
*
|
|
304
|
+
* Constructs immutable finite XYZ bounds from ordered extrema or nonnegative size in millimetres.
|
|
285
305
|
*
|
|
286
306
|
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
287
307
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
308
|
+
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
288
309
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
289
|
-
* runtime
|
|
310
|
+
* runtime 9.0.0 or newer in major 9.
|
|
290
311
|
*/
|
|
291
|
-
export declare function bounds3(input:
|
|
312
|
+
export declare function bounds3(input: Bounds3Options): Bounds3;
|
|
292
313
|
|
|
293
314
|
/** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
|
|
294
315
|
export declare interface Bounds3Data {
|
|
@@ -301,6 +322,25 @@ export declare interface Bounds3Data {
|
|
|
301
322
|
/** An immutable XYZ bounds value or its plain min/max representation. */
|
|
302
323
|
export declare type Bounds3Input = Bounds3 | Bounds3Data;
|
|
303
324
|
|
|
325
|
+
/** XYZ bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
326
|
+
export declare type Bounds3Options =
|
|
327
|
+
| (Bounds3Input & {
|
|
328
|
+
/** Preserves the size query when snapshotting an existing fluent value. */
|
|
329
|
+
readonly size?: Bounds3["size"];
|
|
330
|
+
/** Preserves the center query when snapshotting an existing fluent value. */
|
|
331
|
+
readonly center?: Bounds3["center"];
|
|
332
|
+
})
|
|
333
|
+
| {
|
|
334
|
+
/** Nonnegative XYZ dimensions in millimetres. */
|
|
335
|
+
readonly size: Vector3Data;
|
|
336
|
+
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
337
|
+
readonly center?: boolean;
|
|
338
|
+
/** Minimum coordinates are unavailable when size is supplied. */
|
|
339
|
+
readonly min?: never;
|
|
340
|
+
/** Maximum coordinates are unavailable when size is supplied. */
|
|
341
|
+
readonly max?: never;
|
|
342
|
+
};
|
|
343
|
+
|
|
304
344
|
/** Midpoint of finite XY bounds in millimetres. */
|
|
305
345
|
export declare function boundsCenter(bounds: Bounds2Data): Vector2Data;
|
|
306
346
|
|
|
@@ -333,24 +373,6 @@ export declare interface BoundsFitOptions {
|
|
|
333
373
|
readonly maxScale?: number;
|
|
334
374
|
}
|
|
335
375
|
|
|
336
|
-
/** Creates immutable centered XY bounds from nonnegative dimensions in millimetres. */
|
|
337
|
-
export declare function boundsFromSize(
|
|
338
|
-
size: Vector2Data,
|
|
339
|
-
options?: BoundsFromSizeOptions,
|
|
340
|
-
): Bounds2Data;
|
|
341
|
-
|
|
342
|
-
/** Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres. */
|
|
343
|
-
export declare function boundsFromSize(
|
|
344
|
-
size: Vector3Data,
|
|
345
|
-
options?: BoundsFromSizeOptions,
|
|
346
|
-
): Bounds3Data;
|
|
347
|
-
|
|
348
|
-
/** Placement of bounds constructed from nonnegative millimetre dimensions. */
|
|
349
|
-
export declare interface BoundsFromSizeOptions {
|
|
350
|
-
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
351
|
-
readonly center?: boolean;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
376
|
/** Inclusive XY dimensions in millimetres; zero extents are retained. */
|
|
355
377
|
export declare function boundsSize(bounds: Bounds2Data): Vector2Data;
|
|
356
378
|
|
|
@@ -459,20 +481,18 @@ export declare interface ChamferedEdgeTreatment {
|
|
|
459
481
|
*/
|
|
460
482
|
export declare const circleContour: (options: CircleContourOptions) => Contour;
|
|
461
483
|
|
|
462
|
-
/**
|
|
463
|
-
* Circular profile dimensions with exactly one radius or diameter and explicit sampling.
|
|
464
|
-
*/
|
|
484
|
+
/** Circular profile dimensions with exactly one radius or diameter and explicit sampling. */
|
|
465
485
|
export declare type CircleContourOptions = CircularPrimitiveOptions &
|
|
466
486
|
RadialSizingOptions &
|
|
467
487
|
(
|
|
468
488
|
| {
|
|
469
|
-
/** Positive nominal radius in millimetres
|
|
489
|
+
/** Positive nominal radius in millimetres. */
|
|
470
490
|
readonly radius: number;
|
|
471
|
-
/**
|
|
491
|
+
/** Diameter is unavailable when radius is supplied. */
|
|
472
492
|
readonly diameter?: never;
|
|
473
493
|
}
|
|
474
494
|
| {
|
|
475
|
-
/** Positive
|
|
495
|
+
/** Positive nominal diameter in millimetres. */
|
|
476
496
|
readonly diameter: number;
|
|
477
497
|
/** Radius is unavailable when diameter is supplied. */
|
|
478
498
|
readonly radius?: never;
|
|
@@ -502,6 +522,19 @@ export declare interface CircularResolutionOptions extends GeometryResolution {
|
|
|
502
522
|
readonly sizing?: RadialSizing;
|
|
503
523
|
}
|
|
504
524
|
|
|
525
|
+
/** Full-circle count and radial envelopes of its regular sampled polygon, in millimetres. */
|
|
526
|
+
export declare interface CircularSampling {
|
|
527
|
+
/** Exact resolved full-circle segment count. */
|
|
528
|
+
readonly segments: number;
|
|
529
|
+
/** Distance from the origin to every sampled vertex. */
|
|
530
|
+
readonly vertexRadius: number;
|
|
531
|
+
/** Minimum distance from the origin to each straight sampled edge. */
|
|
532
|
+
readonly faceRadius: number;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/** Nominal circle size and explicit physical sampling; supply exactly one radius or diameter. */
|
|
536
|
+
export declare type CircularSamplingOptions = CircleContourOptions;
|
|
537
|
+
|
|
505
538
|
/** Close, normal, and loose metric clearance-hole diameters in millimetres. */
|
|
506
539
|
export declare interface ClearanceHoleDimensions {
|
|
507
540
|
/** Close-fit clearance-hole diameter. */
|
|
@@ -658,18 +691,6 @@ export declare function computeTriangleMeshSignature(
|
|
|
658
691
|
options?: TriangleMeshSignatureOptions,
|
|
659
692
|
): TriangleMeshSignature;
|
|
660
693
|
|
|
661
|
-
/** Tests actual XY containment, including touching boundaries; dimensions must match. */
|
|
662
|
-
export declare function containsBounds(
|
|
663
|
-
outer: Bounds2Data,
|
|
664
|
-
inner: Bounds2Data,
|
|
665
|
-
): boolean;
|
|
666
|
-
|
|
667
|
-
/** Tests actual XYZ containment, including touching boundaries; dimensions must match. */
|
|
668
|
-
export declare function containsBounds(
|
|
669
|
-
outer: Bounds3Data,
|
|
670
|
-
inner: Bounds3Data,
|
|
671
|
-
): boolean;
|
|
672
|
-
|
|
673
694
|
/**
|
|
674
695
|
* A sampled closed two-dimensional boundary whose first point is not repeated at the end.
|
|
675
696
|
*
|
|
@@ -2407,8 +2428,11 @@ export declare function preflightInternalThreadCutter(
|
|
|
2407
2428
|
*
|
|
2408
2429
|
* This pure operation performs curve flattening, fill and stroke construction, and polygon union;
|
|
2409
2430
|
* it needs no browser or engine. Geometry counts measure the returned region at the selected
|
|
2410
|
-
* resolution, rather than predicting later mesh allocation.
|
|
2411
|
-
*
|
|
2431
|
+
* resolution, rather than predicting later mesh allocation. With `fit`, painted bounds are
|
|
2432
|
+
* uniformly centered inside the target and adaptive sampling remains in final millimetres.
|
|
2433
|
+
* Refinement runs at most eight bounded import passes; exact circular counts retain precedence.
|
|
2434
|
+
* Without `fit` the region may be empty. Tiny-island and short-edge indicators do not establish
|
|
2435
|
+
* manufacturability or later solid validity.
|
|
2412
2436
|
*
|
|
2413
2437
|
* @param svg - Complete SVG XML source, limited to 256 KiB of UTF-8.
|
|
2414
2438
|
* @param options - Physical flattening and viewport-origin controls.
|
|
@@ -2865,6 +2889,25 @@ export declare function resolveArcSegments(
|
|
|
2865
2889
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2866
2890
|
): number;
|
|
2867
2891
|
|
|
2892
|
+
/**
|
|
2893
|
+
* Resolves circular sampling and its actual radial envelopes without allocating boundary points.
|
|
2894
|
+
*
|
|
2895
|
+
* Vertex sizing retains the nominal vertex radius; face sizing retains the nominal face radius.
|
|
2896
|
+
* Exact `segments` override resolution, while allocation ceilings still apply. Adaptive sampling
|
|
2897
|
+
* uses the same count calculation as `resolveCircularSegments` and `circleContour` and rejects
|
|
2898
|
+
* exhausted limits rather than coarsening. The returned record is immutable and needs no engine.
|
|
2899
|
+
*
|
|
2900
|
+
* @example Check a nominal 8 mm face-sized bore
|
|
2901
|
+
* ```ts
|
|
2902
|
+
* const bore = resolveCircularSampling({ diameter: 8, segments: 64, sizing: "face" });
|
|
2903
|
+
* bore.faceRadius; // 4 mm
|
|
2904
|
+
* bore.vertexRadius; // slightly larger than 4 mm
|
|
2905
|
+
* ```
|
|
2906
|
+
*/
|
|
2907
|
+
export declare function resolveCircularSampling(
|
|
2908
|
+
options: CircularSamplingOptions,
|
|
2909
|
+
): CircularSampling;
|
|
2910
|
+
|
|
2868
2911
|
/**
|
|
2869
2912
|
* Resolves a deterministic full-circle segment count for one radius.
|
|
2870
2913
|
*
|
|
@@ -3536,6 +3579,12 @@ export declare const subtract3: (a: Vector3Data, b: Vector3Data) => Vector3Data;
|
|
|
3536
3579
|
|
|
3537
3580
|
/** Sampling controls for deterministic SVG-to-region conversion. */
|
|
3538
3581
|
export declare interface SvgImportOptions {
|
|
3582
|
+
/**
|
|
3583
|
+
* Uniformly fit painted bounds inside this positioned XY target in millimetres.
|
|
3584
|
+
* Adaptive resolution describes the fitted size; exact circular counts retain precedence.
|
|
3585
|
+
* Empty painted geometry cannot be fitted. Omitted preserves the document's physical size.
|
|
3586
|
+
*/
|
|
3587
|
+
readonly fit?: Bounds2Input;
|
|
3539
3588
|
/** Explicit profile and circular allocation ceilings; bounded SVG source/work limits remain fixed. */
|
|
3540
3589
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
3541
3590
|
/** Exact segments for a complete ellipse or round stroke feature. */
|
|
@@ -3551,6 +3600,12 @@ export declare interface SvgImportOptions {
|
|
|
3551
3600
|
|
|
3552
3601
|
/** Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. */
|
|
3553
3602
|
export declare interface SvgRegionPreflight {
|
|
3603
|
+
/**
|
|
3604
|
+
* Applied scale and translation from origin-normalized SVG millimetres to final model
|
|
3605
|
+
* millimetres, present only when a fit target was supplied. Reuse it for registered layers
|
|
3606
|
+
* imported with the same origin and document coordinate system.
|
|
3607
|
+
*/
|
|
3608
|
+
readonly fit?: BoundsFit2;
|
|
3554
3609
|
/** Physical and final-topology measurements of `region`. */
|
|
3555
3610
|
readonly geometry: SvgRegionPreflightGeometryMetrics;
|
|
3556
3611
|
/** Appearance-preserving cleanup observed during parsing and normalization. */
|
package/dist/api/index.d.ts
CHANGED
|
@@ -62,14 +62,15 @@ export declare interface Bounds2 extends Bounds2Data {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
|
-
*
|
|
65
|
+
* Constructs immutable finite XY bounds from ordered extrema or nonnegative size in millimetres.
|
|
66
66
|
*
|
|
67
67
|
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
68
68
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
69
|
+
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
69
70
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
70
|
-
* runtime
|
|
71
|
+
* runtime 9.0.0 or newer in major 9.
|
|
71
72
|
*/
|
|
72
|
-
export declare function bounds2(input:
|
|
73
|
+
export declare function bounds2(input: Bounds2Options): Bounds2;
|
|
73
74
|
|
|
74
75
|
/** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
|
|
75
76
|
export declare interface Bounds2Data {
|
|
@@ -82,6 +83,25 @@ export declare interface Bounds2Data {
|
|
|
82
83
|
/** An immutable XY bounds value or its plain min/max representation. */
|
|
83
84
|
export declare type Bounds2Input = Bounds2 | Bounds2Data;
|
|
84
85
|
|
|
86
|
+
/** XY bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
87
|
+
export declare type Bounds2Options =
|
|
88
|
+
| (Bounds2Input & {
|
|
89
|
+
/** Preserves the size query when snapshotting an existing fluent value. */
|
|
90
|
+
readonly size?: Bounds2["size"];
|
|
91
|
+
/** Preserves the center query when snapshotting an existing fluent value. */
|
|
92
|
+
readonly center?: Bounds2["center"];
|
|
93
|
+
})
|
|
94
|
+
| {
|
|
95
|
+
/** Nonnegative XY dimensions in millimetres. */
|
|
96
|
+
readonly size: Vector2Data;
|
|
97
|
+
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
98
|
+
readonly center?: boolean;
|
|
99
|
+
/** Minimum coordinates are unavailable when size is supplied. */
|
|
100
|
+
readonly min?: never;
|
|
101
|
+
/** Maximum coordinates are unavailable when size is supplied. */
|
|
102
|
+
readonly max?: never;
|
|
103
|
+
};
|
|
104
|
+
|
|
85
105
|
/** Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
86
106
|
export declare interface Bounds3 extends Bounds3Data {
|
|
87
107
|
/** Returns nonnegative X/Y/Z dimensions in millimetres, including zero extents. */
|
|
@@ -95,14 +115,15 @@ export declare interface Bounds3 extends Bounds3Data {
|
|
|
95
115
|
}
|
|
96
116
|
|
|
97
117
|
/**
|
|
98
|
-
*
|
|
118
|
+
* Constructs immutable finite XYZ bounds from ordered extrema or nonnegative size in millimetres.
|
|
99
119
|
*
|
|
100
120
|
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
101
121
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
122
|
+
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
102
123
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
103
|
-
* runtime
|
|
124
|
+
* runtime 9.0.0 or newer in major 9.
|
|
104
125
|
*/
|
|
105
|
-
export declare function bounds3(input:
|
|
126
|
+
export declare function bounds3(input: Bounds3Options): Bounds3;
|
|
106
127
|
|
|
107
128
|
/** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
|
|
108
129
|
export declare interface Bounds3Data {
|
|
@@ -115,6 +136,25 @@ export declare interface Bounds3Data {
|
|
|
115
136
|
/** An immutable XYZ bounds value or its plain min/max representation. */
|
|
116
137
|
export declare type Bounds3Input = Bounds3 | Bounds3Data;
|
|
117
138
|
|
|
139
|
+
/** XYZ bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
140
|
+
export declare type Bounds3Options =
|
|
141
|
+
| (Bounds3Input & {
|
|
142
|
+
/** Preserves the size query when snapshotting an existing fluent value. */
|
|
143
|
+
readonly size?: Bounds3["size"];
|
|
144
|
+
/** Preserves the center query when snapshotting an existing fluent value. */
|
|
145
|
+
readonly center?: Bounds3["center"];
|
|
146
|
+
})
|
|
147
|
+
| {
|
|
148
|
+
/** Nonnegative XYZ dimensions in millimetres. */
|
|
149
|
+
readonly size: Vector3Data;
|
|
150
|
+
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
151
|
+
readonly center?: boolean;
|
|
152
|
+
/** Minimum coordinates are unavailable when size is supplied. */
|
|
153
|
+
readonly min?: never;
|
|
154
|
+
/** Maximum coordinates are unavailable when size is supplied. */
|
|
155
|
+
readonly max?: never;
|
|
156
|
+
};
|
|
157
|
+
|
|
118
158
|
/**
|
|
119
159
|
* Axis-aligned box with uniform or disjoint named edge/group treatments.
|
|
120
160
|
*
|
|
@@ -212,20 +252,18 @@ export declare interface ChamferedEdgeTreatment {
|
|
|
212
252
|
*/
|
|
213
253
|
export declare function circle(options: CircleOptions): Section;
|
|
214
254
|
|
|
215
|
-
/**
|
|
216
|
-
* Circular profile dimensions with exactly one radius or diameter and explicit sampling.
|
|
217
|
-
*/
|
|
255
|
+
/** Circular profile dimensions with exactly one radius or diameter and explicit sampling. */
|
|
218
256
|
export declare type CircleContourOptions = CircularPrimitiveOptions &
|
|
219
257
|
RadialSizingOptions &
|
|
220
258
|
(
|
|
221
259
|
| {
|
|
222
|
-
/** Positive nominal radius in millimetres
|
|
260
|
+
/** Positive nominal radius in millimetres. */
|
|
223
261
|
readonly radius: number;
|
|
224
|
-
/**
|
|
262
|
+
/** Diameter is unavailable when radius is supplied. */
|
|
225
263
|
readonly diameter?: never;
|
|
226
264
|
}
|
|
227
265
|
| {
|
|
228
|
-
/** Positive
|
|
266
|
+
/** Positive nominal diameter in millimetres. */
|
|
229
267
|
readonly diameter: number;
|
|
230
268
|
/** Radius is unavailable when diameter is supplied. */
|
|
231
269
|
readonly radius?: never;
|
|
@@ -844,6 +882,107 @@ export declare interface HelicalThreadSolidMeshPreflight {
|
|
|
844
882
|
readonly estimatedTriangles: number;
|
|
845
883
|
}
|
|
846
884
|
|
|
885
|
+
/**
|
|
886
|
+
* Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres.
|
|
887
|
+
* Choose exactly one circular diameter or existing Section. A 45-degree entry chamfer
|
|
888
|
+
* supports one strictly convex contour without holes; plain profiles may have any topology.
|
|
889
|
+
* Circular entries retain nominal frustum radii; profile entries offset the supplied polygon edges.
|
|
890
|
+
* Circular head recesses are mutually exclusive with entryChamfer. Both overrun ends default
|
|
891
|
+
* to zero, so the nominal bottom remains at Z=0 and blind pocket floors are preserved.
|
|
892
|
+
* Existing Section samples are authoritative; limits and unspecified circular sampling belong
|
|
893
|
+
* to the evaluating host. Compiled packages require runtime major 9.
|
|
894
|
+
*
|
|
895
|
+
* @example A blind hex pocket with an open top
|
|
896
|
+
* ```ts
|
|
897
|
+
* holeCutter({
|
|
898
|
+
* profile: regularPolygon({ sides: 6, radius: 3.5, sizing: "face", rotation: 30 }),
|
|
899
|
+
* height: 12, entryChamfer: 0.5, overrun: { top: 0.05 },
|
|
900
|
+
* });
|
|
901
|
+
* ```
|
|
902
|
+
*/
|
|
903
|
+
export declare function holeCutter(options: HoleCutterOptions): Solid;
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* A deferred +Z hole or pocket cutter, with exactly one circular diameter or existing Section.
|
|
907
|
+
* Profile entry chamfers expand one strictly convex contour without holes by parallel-edge offsets;
|
|
908
|
+
* the supplied sampled boundary remains authoritative. Plain profile cutters accept any Section.
|
|
909
|
+
* Circular entry chamfers retain nominal circular/frustum radii under the selected radial sizing.
|
|
910
|
+
*/
|
|
911
|
+
export declare type HoleCutterOptions = {
|
|
912
|
+
/** Positive nominal depth along +Z, starting exactly at Z=0. */
|
|
913
|
+
readonly height: number;
|
|
914
|
+
/** Opening carrying the recess or entry chamfer; defaults to top. */
|
|
915
|
+
readonly face?: "bottom" | "top";
|
|
916
|
+
/** Extra length outside each nominal face; both ends default to zero. */
|
|
917
|
+
readonly overrun?: HoleCutterOverrun;
|
|
918
|
+
/** Operation-level physical sampling; an existing Section retains its sampled boundary. */
|
|
919
|
+
readonly resolution?: GeometryResolution;
|
|
920
|
+
/** Local allocation ceilings may only lower the evaluating host's limits. */
|
|
921
|
+
readonly limits?: Partial<ModelingLimits>;
|
|
922
|
+
} & (
|
|
923
|
+
| (CircularPrimitiveOptions &
|
|
924
|
+
RadialSizingOptions & {
|
|
925
|
+
/** Positive nominal circular bore diameter in millimetres. */
|
|
926
|
+
readonly diameter: number;
|
|
927
|
+
/** Unavailable in this input form. */
|
|
928
|
+
readonly profile?: never;
|
|
929
|
+
} & (
|
|
930
|
+
| {
|
|
931
|
+
/** Nonnegative 45-degree entry setback; must be smaller than height. Defaults to zero. */
|
|
932
|
+
readonly entryChamfer?: number;
|
|
933
|
+
/** Unavailable in this input form. */
|
|
934
|
+
readonly recess?: never;
|
|
935
|
+
}
|
|
936
|
+
| {
|
|
937
|
+
/** Circular head seating; mutually exclusive with entryChamfer. */
|
|
938
|
+
readonly recess: HoleCutterRecess;
|
|
939
|
+
/** Unavailable in this input form. */
|
|
940
|
+
readonly entryChamfer?: never;
|
|
941
|
+
}
|
|
942
|
+
))
|
|
943
|
+
| {
|
|
944
|
+
/** Local XY material to remove, retaining its position, orientation and physical sampling. */
|
|
945
|
+
readonly profile: Section;
|
|
946
|
+
/** Unavailable in this input form. */
|
|
947
|
+
readonly diameter?: never;
|
|
948
|
+
/** Unavailable in this input form. */
|
|
949
|
+
readonly recess?: never;
|
|
950
|
+
/** Unavailable in this input form. */
|
|
951
|
+
readonly segments?: never;
|
|
952
|
+
/** Unavailable in this input form. */
|
|
953
|
+
readonly sizing?: never;
|
|
954
|
+
/** Nonnegative 45-degree entry setback for a strictly convex single contour without holes. */
|
|
955
|
+
readonly entryChamfer?: number;
|
|
956
|
+
}
|
|
957
|
+
);
|
|
958
|
+
|
|
959
|
+
/** Explicit extra cutter length outside the nominal Z=0..height interval, in millimetres. */
|
|
960
|
+
export declare interface HoleCutterOverrun {
|
|
961
|
+
/** Extension below Z=0. Omitted means zero, preserving a blind pocket's floor. */
|
|
962
|
+
readonly bottom?: number;
|
|
963
|
+
/** Extension above Z=height. Omitted means zero. */
|
|
964
|
+
readonly top?: number;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
/** Circular screw seating dimensions in millimetres; allowances belong to the caller. */
|
|
968
|
+
export declare type HoleCutterRecess =
|
|
969
|
+
| {
|
|
970
|
+
/** Cylindrical seat. */
|
|
971
|
+
readonly kind: "counterbore";
|
|
972
|
+
/** Positive seat diameter greater than the bore, in millimetres. */
|
|
973
|
+
readonly diameter: number;
|
|
974
|
+
/** Positive seat depth no greater than height, in millimetres. */
|
|
975
|
+
readonly depth: number;
|
|
976
|
+
}
|
|
977
|
+
| {
|
|
978
|
+
/** Conical seat. */
|
|
979
|
+
readonly kind: "countersink";
|
|
980
|
+
/** Positive mouth diameter greater than the bore, in millimetres. */
|
|
981
|
+
readonly diameter: number;
|
|
982
|
+
/** Full included angle strictly between zero and 180 degrees; derived depth must fit height. */
|
|
983
|
+
readonly includedAngle: number;
|
|
984
|
+
};
|
|
985
|
+
|
|
847
986
|
/**
|
|
848
987
|
* Convex hull of points or solids.
|
|
849
988
|
*
|
|
@@ -1046,10 +1185,10 @@ export declare interface KnuckleHinge {
|
|
|
1046
1185
|
* otherwise disconnected intervals. Returns portable recipes without initializing the engine.
|
|
1047
1186
|
* Unspecified resolution inherits the evaluating session. Axis direction is +X with +Z up.
|
|
1048
1187
|
*
|
|
1049
|
-
*
|
|
1188
|
+
* Each half's `chamfer` bevels its barrel outer rims and all web edges. Consumers own plates, screw holes,
|
|
1050
1189
|
* pin retention, fit policy, and part placement. Added mounting material must preserve the bores.
|
|
1051
1190
|
* No opening range or collision freedom is implied for arbitrary caller attachments.
|
|
1052
|
-
* Compiled Generator packages using this operation require runtime
|
|
1191
|
+
* Compiled Generator packages using this operation require runtime 9.0.0 or newer in major 9.
|
|
1053
1192
|
*
|
|
1054
1193
|
* @example Integral-pin hinge with two mounting webs
|
|
1055
1194
|
* ```ts
|
|
@@ -1081,20 +1220,26 @@ export declare interface KnuckleHingeBaseSpec {
|
|
|
1081
1220
|
readonly axialGap: number;
|
|
1082
1221
|
}
|
|
1083
1222
|
|
|
1084
|
-
/** Optional mounting and
|
|
1223
|
+
/** Optional mounting and edge treatment for one knuckle owner. */
|
|
1085
1224
|
export declare interface KnuckleHingeHalfOptions {
|
|
1086
1225
|
/** Omit for barrels only. Each interval receives one web; disconnected intervals need caller geometry. */
|
|
1087
1226
|
readonly web?: KnuckleHingeWeb;
|
|
1088
|
-
/**
|
|
1089
|
-
|
|
1227
|
+
/**
|
|
1228
|
+
* Nonnegative 45° setback in millimetres on barrel outer rims and exposed web edges; defaults to 0.
|
|
1229
|
+
* The root at the pin centreline stays square so its faces can merge with the barrel.
|
|
1230
|
+
*
|
|
1231
|
+
* Must leave a positive barrel wall and axial band. Web thickness must exceed twice the setback;
|
|
1232
|
+
* web reach and knuckle length must exceed `2 * Math.SQRT2 * chamfer` to retain the end contours.
|
|
1233
|
+
*/
|
|
1234
|
+
readonly chamfer?: number;
|
|
1090
1235
|
}
|
|
1091
1236
|
|
|
1092
1237
|
/** Joint declaration with independent attachments; unspecified sampling inherits the evaluating host. */
|
|
1093
1238
|
export declare type KnuckleHingeOptions = KnuckleHingeSpec &
|
|
1094
1239
|
KnuckleHingeSamplingOptions & {
|
|
1095
|
-
/** Optional attachment and
|
|
1240
|
+
/** Optional attachment and edge treatment for A, which owns an integral pin when present. */
|
|
1096
1241
|
readonly halfA?: KnuckleHingeHalfOptions;
|
|
1097
|
-
/** Optional attachment and
|
|
1242
|
+
/** Optional attachment and edge treatment for B, which always carries a running bore. */
|
|
1098
1243
|
readonly halfB?: KnuckleHingeHalfOptions;
|
|
1099
1244
|
};
|
|
1100
1245
|
|
|
@@ -1141,7 +1286,7 @@ export declare interface KnuckleHingeWeb {
|
|
|
1141
1286
|
readonly reach: number;
|
|
1142
1287
|
/** Lower-face Z coordinate in the pin-centered frame, in millimetres. Must overlap the barrel's interior. */
|
|
1143
1288
|
readonly zMin: number;
|
|
1144
|
-
/** Positive thickness along +Z.
|
|
1289
|
+
/** Positive thickness along +Z. Each web spans its own barrel interval. */
|
|
1145
1290
|
readonly thickness: number;
|
|
1146
1291
|
}
|
|
1147
1292
|
|
|
@@ -2421,6 +2566,8 @@ export declare function svgSection(
|
|
|
2421
2566
|
* Bounded SVG document sampling. Center origin uses the final painted bounds.
|
|
2422
2567
|
*/
|
|
2423
2568
|
export declare interface SvgSectionOptions {
|
|
2569
|
+
/** Fit painted bounds uniformly inside positioned XY millimetre bounds; adaptive resolution applies at the fitted size. */
|
|
2570
|
+
readonly fit?: Bounds2Input;
|
|
2424
2571
|
/** Local allocation ceilings may only lower the configured engine policy. */
|
|
2425
2572
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
2426
2573
|
/** Exact circular tessellation count overriding physical sampling. */
|
|
@@ -407,12 +407,15 @@ export const positions = layoutRow([measured, envelope], { gap: 2 });
|
|
|
407
407
|
|
|
408
408
|
|
|
409
409
|
Factories snapshot finite, ordered coordinates with finite extents; zero extents are valid.
|
|
410
|
+
Alternatively construct from nonnegative dimensions with `bounds2({ size: [30, 18] })` or
|
|
411
|
+
`bounds3({ size: [30, 18, 8], center: false })`. Size construction centers on the origin by default;
|
|
412
|
+
size and min/max construction are mutually exclusive.
|
|
410
413
|
`min` and `max` are frozen tuples, and `toData()` returns the value's stable frozen plain record.
|
|
411
414
|
Path `bounds()` queries return matching fluent bounds, or `undefined` for an empty path.
|
|
412
415
|
Mesh and region measurements, inspection results, and engine snapshots retain plain
|
|
413
416
|
`Bounds2Data` or `Bounds3Data`; wrap a measurement when you need fluent queries.
|
|
414
417
|
Compiled Generator packages passing bounds values to host recipes or computed data require
|
|
415
|
-
runtime `
|
|
418
|
+
runtime `9.0.0` or newer in major 9.
|
|
416
419
|
|
|
417
420
|
Keep [`fitBounds`](../reference/geometry/fitBounds.md) and
|
|
418
421
|
[`layoutRow`](../reference/geometry/layoutRow.md) as standalone algorithms: they compute placement
|