@constructorfleet/sketchforge-engine 1.27.0 → 1.28.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.
Files changed (188) hide show
  1. package/dist/cadAnalysis.d.ts.map +1 -1
  2. package/dist/cadAnalysis.js +14 -0
  3. package/dist/cadAnalysis.js.map +1 -1
  4. package/dist/cadBakeMetadata.d.ts +11 -2
  5. package/dist/cadBakeMetadata.d.ts.map +1 -1
  6. package/dist/cadBakeMetadata.js +9 -0
  7. package/dist/cadBakeMetadata.js.map +1 -1
  8. package/dist/cadProjection.d.ts.map +1 -1
  9. package/dist/cadProjection.js.map +1 -1
  10. package/dist/cadSection.d.ts.map +1 -1
  11. package/dist/cadShell.d.ts +1 -1
  12. package/dist/cadShell.d.ts.map +1 -1
  13. package/dist/cadShell.js +7 -0
  14. package/dist/cadShell.js.map +1 -1
  15. package/dist/cadSolids.d.ts.map +1 -1
  16. package/dist/cadSolids.js +18 -1
  17. package/dist/cadSolids.js.map +1 -1
  18. package/dist/cutBrepFrameMigration.d.ts +46 -0
  19. package/dist/cutBrepFrameMigration.d.ts.map +1 -0
  20. package/dist/cutBrepFrameMigration.js +105 -0
  21. package/dist/cutBrepFrameMigration.js.map +1 -0
  22. package/dist/cutterPadding.d.ts.map +1 -1
  23. package/dist/domain/cameraProjection.js.map +1 -1
  24. package/dist/domain/sketchforge.d.ts +30 -0
  25. package/dist/domain/sketchforge.d.ts.map +1 -1
  26. package/dist/editorHistory.d.ts.map +1 -1
  27. package/dist/editorHistory.js.map +1 -1
  28. package/dist/engine.d.ts +3 -3
  29. package/dist/engine.d.ts.map +1 -1
  30. package/dist/engine.js +102 -66
  31. package/dist/engine.js.map +1 -1
  32. package/dist/exactBooleanParts.d.ts +4 -2
  33. package/dist/exactBooleanParts.d.ts.map +1 -1
  34. package/dist/exactBooleanParts.js +7 -3
  35. package/dist/exactBooleanParts.js.map +1 -1
  36. package/dist/exactBooleanSolids.d.ts.map +1 -1
  37. package/dist/gearProfile.d.ts.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/loftProfile.d.ts +1 -1
  43. package/dist/loftProfile.d.ts.map +1 -1
  44. package/dist/loftProfile.js.map +1 -1
  45. package/dist/meshEdgeProjection.d.ts +104 -0
  46. package/dist/meshEdgeProjection.d.ts.map +1 -0
  47. package/dist/meshEdgeProjection.js +439 -0
  48. package/dist/meshEdgeProjection.js.map +1 -0
  49. package/dist/meshImport.d.ts.map +1 -1
  50. package/dist/meshImport.js +2 -20
  51. package/dist/meshImport.js.map +1 -1
  52. package/dist/meshMassProperties.d.ts +92 -0
  53. package/dist/meshMassProperties.d.ts.map +1 -0
  54. package/dist/meshMassProperties.js +570 -0
  55. package/dist/meshMassProperties.js.map +1 -0
  56. package/dist/meshSection.d.ts +44 -0
  57. package/dist/meshSection.d.ts.map +1 -0
  58. package/dist/meshSection.js +154 -0
  59. package/dist/meshSection.js.map +1 -0
  60. package/dist/meshShellOverlap.d.ts +75 -0
  61. package/dist/meshShellOverlap.d.ts.map +1 -0
  62. package/dist/meshShellOverlap.js +797 -0
  63. package/dist/meshShellOverlap.js.map +1 -0
  64. package/dist/meshShellSolids.d.ts +44 -0
  65. package/dist/meshShellSolids.d.ts.map +1 -0
  66. package/dist/meshShellSolids.js +116 -0
  67. package/dist/meshShellSolids.js.map +1 -0
  68. package/dist/nodeSvgDomParser.d.ts +3 -0
  69. package/dist/nodeSvgDomParser.d.ts.map +1 -0
  70. package/dist/nodeSvgDomParser.js +53 -0
  71. package/dist/nodeSvgDomParser.js.map +1 -0
  72. package/dist/parametricRecompute.d.ts.map +1 -1
  73. package/dist/parametricRecompute.js +56 -6
  74. package/dist/parametricRecompute.js.map +1 -1
  75. package/dist/placementWorkplane.d.ts.map +1 -1
  76. package/dist/placementWorkplane.js.map +1 -1
  77. package/dist/projectAssets.d.ts +1 -1
  78. package/dist/projectStore.d.ts +1 -1
  79. package/dist/projectStore.d.ts.map +1 -1
  80. package/dist/projectStore.js +23 -2
  81. package/dist/projectStore.js.map +1 -1
  82. package/dist/revolveRequests.d.ts +57 -1
  83. package/dist/revolveRequests.d.ts.map +1 -1
  84. package/dist/revolveRequests.js +103 -4
  85. package/dist/revolveRequests.js.map +1 -1
  86. package/dist/sceneExport.d.ts +6 -0
  87. package/dist/sceneExport.d.ts.map +1 -1
  88. package/dist/sceneExport.js +6 -2
  89. package/dist/sceneExport.js.map +1 -1
  90. package/dist/serverCadInterference.d.ts.map +1 -1
  91. package/dist/serverCadInterference.js +9 -2
  92. package/dist/serverCadInterference.js.map +1 -1
  93. package/dist/serverCadOperations.d.ts +73 -4
  94. package/dist/serverCadOperations.d.ts.map +1 -1
  95. package/dist/serverCadOperations.js +285 -51
  96. package/dist/serverCadOperations.js.map +1 -1
  97. package/dist/serverCadProjection.d.ts +14 -1
  98. package/dist/serverCadProjection.d.ts.map +1 -1
  99. package/dist/serverCadProjection.js +135 -13
  100. package/dist/serverCadProjection.js.map +1 -1
  101. package/dist/serverCadProperties.d.ts +14 -7
  102. package/dist/serverCadProperties.d.ts.map +1 -1
  103. package/dist/serverCadProperties.js +60 -24
  104. package/dist/serverCadProperties.js.map +1 -1
  105. package/dist/serverCadSection.d.ts +21 -1
  106. package/dist/serverCadSection.d.ts.map +1 -1
  107. package/dist/serverCadSection.js +157 -43
  108. package/dist/serverCadSection.js.map +1 -1
  109. package/dist/serverCadShell.d.ts.map +1 -1
  110. package/dist/serverCadShell.js +0 -3
  111. package/dist/serverCadShell.js.map +1 -1
  112. package/dist/serverShapeBooleans.d.ts +75 -0
  113. package/dist/serverShapeBooleans.d.ts.map +1 -1
  114. package/dist/serverShapeBooleans.js +251 -9
  115. package/dist/serverShapeBooleans.js.map +1 -1
  116. package/dist/serverShapeGroups.js.map +1 -1
  117. package/dist/shapeBounds.d.ts.map +1 -1
  118. package/dist/shapeCatalog.d.ts.map +1 -1
  119. package/dist/shapeCatalog.js +1 -0
  120. package/dist/shapeCatalog.js.map +1 -1
  121. package/dist/shapeRequests.d.ts +13 -0
  122. package/dist/shapeRequests.d.ts.map +1 -1
  123. package/dist/shapeRequests.js +14 -0
  124. package/dist/shapeRequests.js.map +1 -1
  125. package/dist/sketchCadProfile.d.ts +13 -0
  126. package/dist/sketchCadProfile.d.ts.map +1 -1
  127. package/dist/sketchCadProfile.js +108 -0
  128. package/dist/sketchCadProfile.js.map +1 -1
  129. package/dist/sketchCadSweep.js.map +1 -1
  130. package/dist/sketchEdgeSegmentLineage.d.ts +32 -0
  131. package/dist/sketchEdgeSegmentLineage.d.ts.map +1 -0
  132. package/dist/sketchEdgeSegmentLineage.js +49 -0
  133. package/dist/sketchEdgeSegmentLineage.js.map +1 -0
  134. package/dist/sketchEdgeSegmentLineageKernel.d.ts +83 -0
  135. package/dist/sketchEdgeSegmentLineageKernel.d.ts.map +1 -0
  136. package/dist/sketchEdgeSegmentLineageKernel.js +125 -0
  137. package/dist/sketchEdgeSegmentLineageKernel.js.map +1 -0
  138. package/dist/sketchFaceDraftKernel.d.ts +11 -4
  139. package/dist/sketchFaceDraftKernel.d.ts.map +1 -1
  140. package/dist/sketchFaceDraftKernel.js +8 -2
  141. package/dist/sketchFaceDraftKernel.js.map +1 -1
  142. package/dist/sketchRevolve.d.ts +13 -0
  143. package/dist/sketchRevolve.d.ts.map +1 -1
  144. package/dist/sketchRevolve.js +4 -1
  145. package/dist/sketchRevolve.js.map +1 -1
  146. package/dist/skfProject.d.ts +1 -1
  147. package/dist/skfProject.d.ts.map +1 -1
  148. package/dist/skfProject.js +63 -4
  149. package/dist/skfProject.js.map +1 -1
  150. package/dist/sphereTessellation.d.ts.map +1 -1
  151. package/dist/stepAssemblyExplode.d.ts.map +1 -1
  152. package/dist/stepAssemblyExplode.js +1 -1
  153. package/dist/stepAssemblyExplode.js.map +1 -1
  154. package/dist/stepAssemblyHierarchy.js.map +1 -1
  155. package/dist/stepComponentMetadata.d.ts +1 -1
  156. package/dist/stepComponentMetadata.d.ts.map +1 -1
  157. package/dist/stepComponentMetadata.js +93 -39
  158. package/dist/stepComponentMetadata.js.map +1 -1
  159. package/dist/stepExport.d.ts +14 -1
  160. package/dist/stepExport.d.ts.map +1 -1
  161. package/dist/stepExport.js +81 -32
  162. package/dist/stepExport.js.map +1 -1
  163. package/dist/stepImportCommon.d.ts +4 -1
  164. package/dist/stepImportCommon.d.ts.map +1 -1
  165. package/dist/stepImportCommon.js +7 -6
  166. package/dist/stepImportCommon.js.map +1 -1
  167. package/dist/stlImport.js.map +1 -1
  168. package/dist/support/cadModifierTypes.d.ts +41 -1
  169. package/dist/support/cadModifierTypes.d.ts.map +1 -1
  170. package/dist/support/i18n/LocalizedError.d.ts.map +1 -1
  171. package/dist/support/i18n/locales/en/messages.json +30 -2
  172. package/dist/support/i18n/locales.d.ts.map +1 -1
  173. package/dist/support/lib/appTheme.d.ts.map +1 -1
  174. package/dist/support/lib/materialPresets.js.map +1 -1
  175. package/dist/support/lib/measurementUnits.d.ts.map +1 -1
  176. package/dist/support/lib/operator-configuration.json +13 -1
  177. package/dist/support/lib/operatorConfiguration.d.ts +5 -5
  178. package/dist/support/lib/workplaneGrid.js.map +1 -1
  179. package/dist/svgImport.d.ts +2 -0
  180. package/dist/svgImport.d.ts.map +1 -1
  181. package/dist/svgImport.js +7 -0
  182. package/dist/svgImport.js.map +1 -1
  183. package/dist/threadCatalog.js.map +1 -1
  184. package/dist/workplaneSettings.js.map +1 -1
  185. package/dist/workplaneShapes.d.ts +2 -2
  186. package/dist/workplaneShapes.d.ts.map +1 -1
  187. package/dist/workplaneShapes.js.map +1 -1
  188. package/package.json +7 -6
@@ -15,10 +15,12 @@
15
15
  * Node-only. Never import this from anything the browser bundles.
16
16
  */
17
17
  import { withCadKernel } from "./serverCadKernel.js";
18
- import { localSolidForShape, meshedCadResult, solidFromMeshPositions, ServerCadError, cadResultIsValid } from "./serverCadOperations.js";
19
- import { UnbuildableShapeError } from "./cadSolids.js";
18
+ import { exactRevolveAngularDeflection, exactRevolveLocalSolid, hasExactRevolveSolid, localSolidForShape, meshedCadResult, solidFromMeshPositions, ServerCadError, cadResultIsValid } from "./serverCadOperations.js";
19
+ import { mirroredInShapeFrame, UnbuildableShapeError } from "./cadSolids.js";
20
20
  import { createLocalId } from "./localIds.js";
21
- import { boundsForPositions, expandGroupsForBoolean, groupedShapeFromSelection, meshShapeFromWorldPositions, shapeAsGroupChild, shapePlacementMatrix, worldMeshForShape, } from "./serverShapeGroups.js";
21
+ import { solidFromBrepOnKernel } from "./sketchFaceDraftKernel.js";
22
+ import { shapeDepth, shapeHasTaper, shapeWidth } from "./workplaneShapes.js";
23
+ import { boundsForPositions, expandGroupsForBoolean, groupedShapeFromSelection, meshShapeFromWorldPositions, restoreGroupedChildren, shapeAsGroupChild, shapePlacementMatrix, worldMeshForShape, } from "./serverShapeGroups.js";
22
24
  /** OCCT takes an affine transform as three row-major rows of (basis, offset); THREE stores its matrix by column. */
23
25
  function rowMajorTransform(matrix) {
24
26
  const e = matrix.elements;
@@ -58,9 +60,55 @@ function meshTrianglePositions(mesh) {
58
60
  * `generalTransform` because a reflection is not a rigid placement.
59
61
  */
60
62
  export function placedSolidForShape(cad, shape) {
63
+ return placedSolid(cad, shape).solid;
64
+ }
65
+ const PARAMETRIC = { source: "parametric", precision: "exact" };
66
+ const BREP = { source: "brep", precision: "exact" };
67
+ const MESH = { source: "mesh", precision: "tessellated" };
68
+ /**
69
+ * Several solids' provenance as one: only as exact as the least exact of them.
70
+ * A group record is reported this way from the members it actually fused, so
71
+ * a member that fell back to its triangles -- a cut resized with its group,
72
+ * or one whose B-rep failed its check -- makes the record tessellated.
73
+ */
74
+ function combinedProvenance(sources) {
75
+ return sources.find((source) => source.source === "mesh")
76
+ ?? sources.find((source) => source.source === "brep")
77
+ ?? PARAMETRIC;
78
+ }
79
+ /**
80
+ * The shape as a placed solid, together with the representation it was
81
+ * actually built from. Reported by the builder rather than guessed from the
82
+ * shape's fields beforehand, because only building it can tell whether a
83
+ * stored B-rep passed its check or a group member fell back to its mesh.
84
+ */
85
+ export function placedSolid(cad, shape) {
86
+ // A plain revolve is stored as its sweep's mesh, but its profile describes
87
+ // it exactly (#523). It is built in the mesh's own frame and placed the way
88
+ // the mesh is, with the mirror applied exactly about the same centre rather
89
+ // than through `generalTransform`, so its faces stay analytic.
90
+ const revolve = exactRevolveLocalSolid(cad, shape);
91
+ if (revolve) {
92
+ const mirrored = mirroredInShapeFrame(cad, revolve, shape, { x: 0, y: shape.height / 2, z: 0 });
93
+ const rigid = { ...shape, mirrorX: false, mirrorY: false, mirrorZ: false };
94
+ return { solid: cad.transform(mirrored, rowMajorTransform(shapePlacementMatrix(rigid))), provenance: PARAMETRIC };
95
+ }
96
+ // A boolean result keeps its exact solid beside the mesh it is drawn with
97
+ // (#541), and the triangles are only ever an approximation of it.
98
+ const stored = placedResultBrepSolid(cad, shape);
99
+ if (stored)
100
+ return { solid: stored, provenance: BREP };
61
101
  const mesh = worldMeshForShape(shape);
62
102
  if (mesh)
63
- return solidFromMeshPositions(cad, meshTrianglePositions(mesh));
103
+ return { solid: solidFromMeshPositions(cad, meshTrianglePositions(mesh)), provenance: MESH };
104
+ if (isGroupRecord(shape)) {
105
+ const sources = [];
106
+ const solid = groupRecordSolid(cad, shape, sources);
107
+ return { solid, provenance: combinedProvenance(sources) };
108
+ }
109
+ return { solid: placedLocalSolid(cad, shape), provenance: shape.cadBrep ? BREP : PARAMETRIC };
110
+ }
111
+ function placedLocalSolid(cad, shape) {
64
112
  let solid;
65
113
  try {
66
114
  solid = localSolidForShape(cad, shape);
@@ -77,15 +125,205 @@ export function placedSolidForShape(cad, shape) {
77
125
  ? cad.generalTransform(solid, matrix)
78
126
  : cad.transform(solid, matrix);
79
127
  }
128
+ /**
129
+ * Whether the shape is a boolean result whose stored B-rep is still the exact
130
+ * form of the mesh it is drawn with (#541).
131
+ *
132
+ * A cut stores two descriptions of one solid: the triangles the viewport
133
+ * draws, and the B-rep they were tessellated from, both in the result's own
134
+ * frame -- centred in X and Z, base at Y = 0. While the two agree, the B-rep is
135
+ * the better answer to "what is this solid", so measurement, interference and
136
+ * a further boolean read it instead of sewing the triangles back up.
137
+ *
138
+ * They stop agreeing when an edit reaches the mesh and not the B-rep. Moving,
139
+ * turning and mirroring do not: they are placement, applied to both alike. A
140
+ * resize does, because it stretches the stored triangles and the B-rep keeps
141
+ * its original size; so does a taper, and so does a frame recorded with a
142
+ * baked `sourceTransform`, which puts the B-rep somewhere other than the
143
+ * mesh's frame. A result made from a mesh operand is left out too: its B-rep
144
+ * was sewn from triangles, so calling it exact would be a claim about
145
+ * geometry nobody ever had.
146
+ *
147
+ * Edge treatments, drafts and shells rewrite the B-rep under their own rules
148
+ * and stay on the paths they had.
149
+ */
150
+ export function hasCurrentResultBrep(shape) {
151
+ const mesh = shape.importedMesh;
152
+ if (!shape.cadBrep || !shape.cadBrepFrame || shape.cadBrepFrame.sourceTransform)
153
+ return false;
154
+ if (!shape.groupedShapes?.length || !mesh || mesh.positions.length < 9)
155
+ return false;
156
+ if (shape.edgeTreatments?.length || shape.faceDraft || shape.shell || shapeHasTaper(shape))
157
+ return false;
158
+ const unresized = (current, base) => Math.abs(current - base) <= RESULT_SIZE_TOLERANCE_MM;
159
+ if (!unresized(shapeWidth(shape), mesh.baseWidth)
160
+ || !unresized(shapeDepth(shape), mesh.baseDepth)
161
+ || !unresized(shape.height, mesh.baseHeight))
162
+ return false;
163
+ return shape.groupedShapes.every(operandIsExact);
164
+ }
165
+ /**
166
+ * Stored sizes are rounded to a thousandth of a millimetre while the mesh's
167
+ * base size is not, so an untouched result differs from its mesh by up to
168
+ * half of that. Absolute, not relative to the size: a 200 mm cut stretched by
169
+ * 0.15 mm is a resize, and a relative tolerance would call it untouched and
170
+ * measure the stale B-rep.
171
+ */
172
+ const RESULT_SIZE_TOLERANCE_MM = 1e-3;
173
+ /** Whether an operand went into a cut as exact geometry rather than as triangles. */
174
+ function operandIsExact(child) {
175
+ if (hasExactRevolveSolid(child) || hasCurrentResultBrep(child))
176
+ return true;
177
+ if ((child.importedMesh?.positions.length ?? 0) >= 9)
178
+ return false;
179
+ return child.groupedShapes?.length ? child.groupedShapes.every(operandIsExact) : true;
180
+ }
181
+ /**
182
+ * How far a result's B-rep may sit from its mesh's box: the cut is meshed to
183
+ * a tenth of a millimetre of chord height, so its corners can fall that far
184
+ * inside the true surfaces, with a margin on top for a large part.
185
+ */
186
+ const RESULT_BREP_MATCH_MM = 0.25;
187
+ const RESULT_BREP_MATCH_FRACTION = 0.01;
188
+ /**
189
+ * How far a result's B-rep volume may differ from its mesh's, per mm² of the
190
+ * B-rep's surface. Every triangle lies within the 0.1 mm chord height of the
191
+ * true surface it was tessellated from, so the faceting can move at most
192
+ * that much depth across the whole area; twice it leaves room for OCCT
193
+ * treating the deflection as a target rather than a hard bound. A flat face
194
+ * contributes nothing, so a box-like part sits far inside this.
195
+ */
196
+ const RESULT_BREP_VOLUME_MM_PER_AREA = 0.2;
197
+ /** The volume a closed triangle list encloses, by the divergence theorem. */
198
+ function enclosedVolume(positions) {
199
+ let sixTimes = 0;
200
+ for (let index = 0; index + 8 < positions.length; index += 9) {
201
+ const [ax, ay, az, bx, by, bz, cx, cy, cz] = positions.slice(index, index + 9);
202
+ sixTimes += ax * (by * cz - bz * cy) - ay * (bx * cz - bz * cx) + az * (bx * cy - by * cx);
203
+ }
204
+ return Math.abs(sixTimes) / 6;
205
+ }
206
+ /**
207
+ * A boolean result's stored B-rep, placed where the shape stands, or null to
208
+ * use its mesh instead.
209
+ *
210
+ * Placed the way the mesh is placed, since the two share a frame: mirrored
211
+ * exactly about the shape's centre, then moved rigidly, so the cut's
212
+ * cylinders stay cylinders. A cut's B-rep is in the result's own frame, at the
213
+ * origin -- what `cadBrepFrame` records for a cut since #548, and what loading
214
+ * a project corrects an older cut's frame to (`migratePre548CutBrepFrames`) --
215
+ * so the frame's position is not needed here; `cadBrepTransformForShape` would
216
+ * give the same placement, only with the mirror folded into an affine scale.
217
+ * A B-rep stored anywhere else fails the bounds check below and falls back to
218
+ * the mesh.
219
+ *
220
+ * The B-rep is checked against the mesh before it is trusted, because the
221
+ * structural test cannot see an edit that replaced the triangles and left the
222
+ * B-rep behind. The triangles' corners lie on the true surfaces, so the two
223
+ * boxes agree to within the meshing tolerance; a B-rep that misses by more is
224
+ * describing something else, and the mesh is what is on screen.
225
+ */
226
+ export function placedResultBrepSolid(cad, shape) {
227
+ if (!hasCurrentResultBrep(shape))
228
+ return null;
229
+ const meshBounds = boundsForPositions(shape.importedMesh.positions);
230
+ if (!meshBounds)
231
+ return null;
232
+ let solid;
233
+ try {
234
+ solid = solidFromBrepOnKernel(cad, shape.cadBrep);
235
+ }
236
+ catch {
237
+ return null;
238
+ }
239
+ const box = cad.getBoundingBox(solid);
240
+ const size = Math.max(meshBounds.maxX - meshBounds.minX, meshBounds.maxY - meshBounds.minY, meshBounds.maxZ - meshBounds.minZ);
241
+ const tolerance = RESULT_BREP_MATCH_MM + RESULT_BREP_MATCH_FRACTION * size;
242
+ const agrees = [
243
+ [box.xmin, meshBounds.minX], [box.xmax, meshBounds.maxX],
244
+ [box.ymin, meshBounds.minY], [box.ymax, meshBounds.maxY],
245
+ [box.zmin, meshBounds.minZ], [box.zmax, meshBounds.maxZ],
246
+ ].every(([exact, meshed]) => Number.isFinite(exact) && Math.abs(exact - meshed) <= tolerance);
247
+ if (!agrees)
248
+ return null;
249
+ // A box cannot see inside: the uncut plate has the same one as the plate
250
+ // with a bore through it. The volume can.
251
+ const query = cad.queryBatch([solid])[0];
252
+ if (!query || !Number.isFinite(query.volume)
253
+ || Math.abs(query.volume - enclosedVolume(shape.importedMesh.positions)) > RESULT_BREP_VOLUME_MM_PER_AREA * query.area) {
254
+ return null;
255
+ }
256
+ const mirrored = mirroredInShapeFrame(cad, solid, shape, { x: 0, y: shape.height / 2, z: 0 });
257
+ const rigid = { ...shape, mirrorX: false, mirrorY: false, mirrorZ: false };
258
+ return cad.transform(mirrored, rowMajorTransform(shapePlacementMatrix(rigid)));
259
+ }
260
+ /**
261
+ * A plain revolve's exact solid where it stands, as BREP text, or null for any
262
+ * other shape: what the STEP exporter writes for a revolve instead of skipping
263
+ * it as a mesh with no B-rep source (#523).
264
+ */
265
+ export function placedExactRevolveBrep(shape) {
266
+ if (!hasExactRevolveSolid(shape))
267
+ return Promise.resolve(null);
268
+ return withCadKernel((cad) => cad.toBREP(placedSolidForShape(cad, shape)));
269
+ }
80
270
  function singleSolid(cad, shape) {
81
271
  if (cad.isSolid(shape))
82
272
  return shape;
83
273
  const solids = cad.getSubShapes(shape, "solid");
84
274
  return solids.length === 1 ? solids[0] : shape;
85
275
  }
86
- function cutSolids(cad, solids, holes) {
87
- const solidHandles = solids.map((shape) => placedSolidForShape(cad, shape));
88
- const holeHandles = holes.map((shape) => placedSolidForShape(cad, shape));
276
+ /**
277
+ * Whether the shape is a group held only as a record of its children.
278
+ *
279
+ * Grouping solids with no hole among them stores the children and nothing
280
+ * else, in the editor and here alike, so there is no mesh or BREP to read.
281
+ */
282
+ export function isGroupRecord(shape) {
283
+ return Boolean(shape.groupedShapes?.length) && !shape.cadBrep && !worldMeshForShape(shape);
284
+ }
285
+ /**
286
+ * A group record as the one solid it stands for: its children, put back where
287
+ * they appear, fused (#500).
288
+ *
289
+ * Built when asked for rather than baked when grouping, because the record is
290
+ * what the editor stores and reads, and what ungrouping takes apart. Each child
291
+ * goes back through `placedSolidForShape`, so an exact child stays exact, a
292
+ * mesh child is sewn from its triangles, and a group nested inside is fused
293
+ * the same way. A group of holes is the region it removes, so it fuses too.
294
+ *
295
+ * A member hidden inside the group is left out, because the editor does not
296
+ * draw it either: what is measured and exported is what is on screen. The
297
+ * group's own `hidden` flag is not a member's, so it is read from the stored
298
+ * children rather than from the restored ones, which inherit it.
299
+ */
300
+ function groupRecordSolid(cad, group, sources) {
301
+ const stored = group.groupedShapes ?? [];
302
+ const children = restoreGroupedChildren(group).filter((_, index) => !stored[index]?.hidden);
303
+ if (children.length === 0) {
304
+ throw new ServerCadError(`"${group.name}" is a group whose members are all hidden, so it has no geometry; show a member first.`);
305
+ }
306
+ const solids = children.filter((child) => !child.hole);
307
+ if (solids.length === 0)
308
+ return fuseSolids(cad, children, sources);
309
+ const holes = children.filter((child) => child.hole);
310
+ return holes.length ? cutSolids(cad, solids, holes, sources).cut : fuseSolids(cad, solids, sources);
311
+ }
312
+ /** Each shape placed, with the representation it came from added to `sources`. */
313
+ function placedHandles(cad, shapes, sources) {
314
+ return shapes.map((shape) => {
315
+ const placed = placedSolid(cad, shape);
316
+ sources?.push(placed.provenance);
317
+ return placed.solid;
318
+ });
319
+ }
320
+ function fuseSolids(cad, shapes, sources) {
321
+ const handles = placedHandles(cad, shapes, sources);
322
+ return singleSolid(cad, handles.length === 1 ? handles[0] : cad.fuseAll(handles));
323
+ }
324
+ function cutSolids(cad, solids, holes, sources) {
325
+ const solidHandles = placedHandles(cad, solids, sources);
326
+ const holeHandles = placedHandles(cad, holes, sources);
89
327
  const fused = singleSolid(cad, solidHandles.length === 1 ? solidHandles[0] : cad.fuseAll(solidHandles));
90
328
  // Measured, because `cutAll` returns the solid untouched when nothing met it
91
329
  // and says nothing about having done so. The worker path has reported these
@@ -128,7 +366,9 @@ export async function buildGroupFromSelection(selection) {
128
366
  // Measured with the same threshold the editor uses, so the two agree
129
367
  // about what counts as a cut.
130
368
  const removedNothing = cutVolume >= fusedVolume - 1e-6;
131
- const meshed = meshedCadResult(cad, cut);
369
+ // No coarser than the finest exact revolve that went in (#523).
370
+ const angularDeflection = exactRevolveAngularDeflection(operands);
371
+ const meshed = meshedCadResult(cad, cut, undefined, undefined, undefined, angularDeflection);
132
372
  const bounds = boundsForPositions(meshed.positions);
133
373
  if (!bounds)
134
374
  return { meshed, brep: null, removedNothing };
@@ -164,7 +404,9 @@ export async function buildGroupFromSelection(selection) {
164
404
  normals: result.meshed.normals?.length === group.importedMesh.positions.length ? result.meshed.normals : undefined,
165
405
  },
166
406
  cadBrep: result.brep,
167
- cadBrepFrame: { x: group.x, z: group.z, elevation: group.elevation ?? 0, width, depth, height: group.height },
407
+ // Where the B-rep is, not where the shape is: it was recentred above
408
+ // into the result's own frame, at the origin (#548).
409
+ cadBrepFrame: { x: 0, z: 0, elevation: 0, width, depth, height: group.height },
168
410
  groupedBaseWidth: width,
169
411
  groupedBaseDepth: depth,
170
412
  groupedBaseHeight: group.height,
@@ -1 +1 @@
1
- {"version":3,"file":"serverShapeBooleans.js","sourceRoot":"","sources":["../src/serverShapeBooleans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverShapeBooleans.js","sourceRoot":"","sources":["../src/serverShapeBooleans.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serverShapeGroups.js","sourceRoot":"","sources":["../src/serverShapeGroups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverShapeGroups.js","sourceRoot":"","sources":["../src/serverShapeGroups.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shapeBounds.d.ts","sourceRoot":"","sources":["../src/shapeBounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAY9D;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,WAAW,GAAG,IAAI,CAWrF;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW;;;EAElD"}
1
+ {"version":3,"file":"shapeBounds.d.ts","sourceRoot":"","sources":["../src/shapeBounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAY9D;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,WAAW,GAAG,IAAI,CAWrF;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW;IACxC,CAAC;IAAmC,CAAC;EAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"shapeCatalog.d.ts","sourceRoot":"","sources":["../src/shapeCatalog.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzG,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,EAcjD,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS;;;;EAS1D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU;;;;CAAoC,GAAG,kBAAkB,CAoC7H;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,cAAc,CA+D3H;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,KAAK,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,aAAa,GAAE,kBAAuB,GACrC,cAAc,CAwDhB"}
1
+ {"version":3,"file":"shapeCatalog.d.ts","sourceRoot":"","sources":["../src/shapeCatalog.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzG,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,EAcjD,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS;;;;EAS1D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU;;;;CAAoC,GAAG,kBAAkB,CAoC7H;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,cAAc,CAgE3H;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,KAAK,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,aAAa,GAAE,kBAAuB,GACrC,cAAc,CAwDhB"}
@@ -127,6 +127,7 @@ export function sceneShape(shape) {
127
127
  sketchProfile: shape.sketchProfile,
128
128
  sketchOperation: shape.sketchOperation,
129
129
  sketchRevolve: shape.sketchRevolve,
130
+ revolveAxisOffset: shape.revolveAxisOffset,
130
131
  groupedShapes: shape.groupedShapes,
131
132
  groupedBaseWidth: shape.groupedBaseWidth,
132
133
  groupedBaseDepth: shape.groupedBaseDepth,
@@ -1 +1 @@
1
- {"version":3,"file":"shapeCatalog.js","sourceRoot":"","sources":["../src/shapeCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapeCatalog.js","sourceRoot":"","sources":["../src/shapeCatalog.ts"],"names":[],"mappings":"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"}
@@ -121,5 +121,18 @@ export type ShapeChangeResult = {
121
121
  * whether the write or its own arithmetic was wrong.
122
122
  */
123
123
  export declare function shapeWithRequestedChanges(shape: WorkplaneShape, request: ShapeRequest): ShapeChangeResult;
124
+ /** The name and colour a caller may give the shape a group or cut leaves behind. */
125
+ export type ResultAttributes = {
126
+ name?: unknown;
127
+ color?: unknown;
128
+ };
129
+ /**
130
+ * A group or cut result carrying the name and colour its caller asked for.
131
+ *
132
+ * Without this every combine came back as "Group" in the first solid's
133
+ * colour, and a script had to rename it with a second write (#505). Read by
134
+ * the same rule as a change: a blank or non-string value keeps what is there.
135
+ */
136
+ export declare function withResultAttributes(shape: WorkplaneShape, request: ResultAttributes): WorkplaneShape;
124
137
  export {};
125
138
  //# sourceMappingURL=shapeRequests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shapeRequests.d.ts","sourceRoot":"","sources":["../src/shapeRequests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapeRequests.d.ts","sourceRoot":"","sources":["../src/shapeRequests.ts"],"names":[],"mappings":"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"}
@@ -416,4 +416,18 @@ export function shapeWithRequestedChanges(shape, request) {
416
416
  }
417
417
  return { ok: true, shape: canonicalizeShape(next) };
418
418
  }
419
+ /**
420
+ * A group or cut result carrying the name and colour its caller asked for.
421
+ *
422
+ * Without this every combine came back as "Group" in the first solid's
423
+ * colour, and a script had to rename it with a second write (#505). Read by
424
+ * the same rule as a change: a blank or non-string value keeps what is there.
425
+ */
426
+ export function withResultAttributes(shape, request) {
427
+ return {
428
+ ...shape,
429
+ name: nonEmptyString(request.name, shape.name),
430
+ color: nonEmptyString(request.color, shape.color),
431
+ };
432
+ }
419
433
  //# sourceMappingURL=shapeRequests.js.map