brep-io-kernel 1.0.0-ci.10

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 (271) hide show
  1. package/LICENSE.md +32 -0
  2. package/README.md +157 -0
  3. package/dist-kernel/brep-kernel.js +74699 -0
  4. package/package.json +58 -0
  5. package/src/BREP/AssemblyComponent.js +42 -0
  6. package/src/BREP/BREP.js +43 -0
  7. package/src/BREP/BetterSolid.js +805 -0
  8. package/src/BREP/Edge.js +103 -0
  9. package/src/BREP/Extrude.js +403 -0
  10. package/src/BREP/Face.js +187 -0
  11. package/src/BREP/MeshRepairer.js +634 -0
  12. package/src/BREP/OffsetShellSolid.js +614 -0
  13. package/src/BREP/PointCloudWrap.js +302 -0
  14. package/src/BREP/Revolve.js +345 -0
  15. package/src/BREP/SolidMethods/authoring.js +112 -0
  16. package/src/BREP/SolidMethods/booleanOps.js +230 -0
  17. package/src/BREP/SolidMethods/chamfer.js +122 -0
  18. package/src/BREP/SolidMethods/edgeResolution.js +25 -0
  19. package/src/BREP/SolidMethods/fillet.js +792 -0
  20. package/src/BREP/SolidMethods/index.js +72 -0
  21. package/src/BREP/SolidMethods/io.js +105 -0
  22. package/src/BREP/SolidMethods/lifecycle.js +103 -0
  23. package/src/BREP/SolidMethods/manifoldOps.js +375 -0
  24. package/src/BREP/SolidMethods/meshCleanup.js +2512 -0
  25. package/src/BREP/SolidMethods/meshQueries.js +264 -0
  26. package/src/BREP/SolidMethods/metadata.js +106 -0
  27. package/src/BREP/SolidMethods/metrics.js +51 -0
  28. package/src/BREP/SolidMethods/transforms.js +361 -0
  29. package/src/BREP/SolidMethods/visualize.js +508 -0
  30. package/src/BREP/SolidShared.js +26 -0
  31. package/src/BREP/Sweep.js +1596 -0
  32. package/src/BREP/Tube.js +857 -0
  33. package/src/BREP/Vertex.js +43 -0
  34. package/src/BREP/applyBooleanOperation.js +704 -0
  35. package/src/BREP/boundsUtils.js +48 -0
  36. package/src/BREP/chamfer.js +551 -0
  37. package/src/BREP/edgePolylineUtils.js +85 -0
  38. package/src/BREP/fillets/common.js +388 -0
  39. package/src/BREP/fillets/fillet.js +1422 -0
  40. package/src/BREP/fillets/filletGeometry.js +15 -0
  41. package/src/BREP/fillets/inset.js +389 -0
  42. package/src/BREP/fillets/offsetHelper.js +143 -0
  43. package/src/BREP/fillets/outset.js +88 -0
  44. package/src/BREP/helix.js +193 -0
  45. package/src/BREP/meshToBrep.js +234 -0
  46. package/src/BREP/primitives.js +279 -0
  47. package/src/BREP/setupManifold.js +71 -0
  48. package/src/BREP/threadGeometry.js +1120 -0
  49. package/src/BREP/triangleUtils.js +8 -0
  50. package/src/BREP/triangulate.js +608 -0
  51. package/src/FeatureRegistry.js +183 -0
  52. package/src/PartHistory.js +1132 -0
  53. package/src/UI/AccordionWidget.js +292 -0
  54. package/src/UI/CADmaterials.js +850 -0
  55. package/src/UI/EnvMonacoEditor.js +522 -0
  56. package/src/UI/FloatingWindow.js +396 -0
  57. package/src/UI/HistoryWidget.js +457 -0
  58. package/src/UI/MainToolbar.js +131 -0
  59. package/src/UI/ModelLibraryView.js +194 -0
  60. package/src/UI/OrthoCameraIdle.js +206 -0
  61. package/src/UI/PluginsWidget.js +280 -0
  62. package/src/UI/SceneListing.js +606 -0
  63. package/src/UI/SelectionFilter.js +629 -0
  64. package/src/UI/ViewCube.js +389 -0
  65. package/src/UI/assembly/AssemblyConstraintCollectionWidget.js +329 -0
  66. package/src/UI/assembly/AssemblyConstraintControlsWidget.js +282 -0
  67. package/src/UI/assembly/AssemblyConstraintsWidget.css +292 -0
  68. package/src/UI/assembly/AssemblyConstraintsWidget.js +1373 -0
  69. package/src/UI/assembly/constraintFaceUtils.js +115 -0
  70. package/src/UI/assembly/constraintHighlightUtils.js +70 -0
  71. package/src/UI/assembly/constraintLabelUtils.js +31 -0
  72. package/src/UI/assembly/constraintPointUtils.js +64 -0
  73. package/src/UI/assembly/constraintSelectionUtils.js +185 -0
  74. package/src/UI/assembly/constraintStatusUtils.js +142 -0
  75. package/src/UI/componentSelectorModal.js +240 -0
  76. package/src/UI/controls/CombinedTransformControls.js +386 -0
  77. package/src/UI/dialogs.js +351 -0
  78. package/src/UI/expressionsManager.js +100 -0
  79. package/src/UI/featureDialogWidgets/booleanField.js +25 -0
  80. package/src/UI/featureDialogWidgets/booleanOperationField.js +97 -0
  81. package/src/UI/featureDialogWidgets/buttonField.js +45 -0
  82. package/src/UI/featureDialogWidgets/componentSelectorField.js +102 -0
  83. package/src/UI/featureDialogWidgets/defaultField.js +23 -0
  84. package/src/UI/featureDialogWidgets/fileField.js +66 -0
  85. package/src/UI/featureDialogWidgets/index.js +34 -0
  86. package/src/UI/featureDialogWidgets/numberField.js +165 -0
  87. package/src/UI/featureDialogWidgets/optionsField.js +33 -0
  88. package/src/UI/featureDialogWidgets/referenceSelectionField.js +208 -0
  89. package/src/UI/featureDialogWidgets/stringField.js +24 -0
  90. package/src/UI/featureDialogWidgets/textareaField.js +28 -0
  91. package/src/UI/featureDialogWidgets/threadDesignationField.js +160 -0
  92. package/src/UI/featureDialogWidgets/transformField.js +252 -0
  93. package/src/UI/featureDialogWidgets/utils.js +43 -0
  94. package/src/UI/featureDialogWidgets/vec3Field.js +133 -0
  95. package/src/UI/featureDialogs.js +1414 -0
  96. package/src/UI/fileManagerWidget.js +615 -0
  97. package/src/UI/history/HistoryCollectionWidget.js +1294 -0
  98. package/src/UI/history/historyCollectionWidget.css.js +257 -0
  99. package/src/UI/history/historyDisplayInfo.js +133 -0
  100. package/src/UI/mobile.js +28 -0
  101. package/src/UI/objectDump.js +442 -0
  102. package/src/UI/pmi/AnnotationCollectionWidget.js +120 -0
  103. package/src/UI/pmi/AnnotationHistory.js +353 -0
  104. package/src/UI/pmi/AnnotationRegistry.js +90 -0
  105. package/src/UI/pmi/BaseAnnotation.js +269 -0
  106. package/src/UI/pmi/LabelOverlay.css +102 -0
  107. package/src/UI/pmi/LabelOverlay.js +191 -0
  108. package/src/UI/pmi/PMIMode.js +1550 -0
  109. package/src/UI/pmi/PMIViewsWidget.js +1098 -0
  110. package/src/UI/pmi/annUtils.js +729 -0
  111. package/src/UI/pmi/dimensions/AngleDimensionAnnotation.js +647 -0
  112. package/src/UI/pmi/dimensions/ExplodeBodyAnnotation.js +507 -0
  113. package/src/UI/pmi/dimensions/HoleCalloutAnnotation.js +462 -0
  114. package/src/UI/pmi/dimensions/LeaderAnnotation.js +403 -0
  115. package/src/UI/pmi/dimensions/LinearDimensionAnnotation.js +532 -0
  116. package/src/UI/pmi/dimensions/NoteAnnotation.js +110 -0
  117. package/src/UI/pmi/dimensions/RadialDimensionAnnotation.js +659 -0
  118. package/src/UI/pmi/pmiStyle.js +44 -0
  119. package/src/UI/sketcher/SketchMode3D.js +4095 -0
  120. package/src/UI/sketcher/dimensions.js +674 -0
  121. package/src/UI/sketcher/glyphs.js +236 -0
  122. package/src/UI/sketcher/highlights.js +60 -0
  123. package/src/UI/toolbarButtons/aboutButton.js +5 -0
  124. package/src/UI/toolbarButtons/exportButton.js +609 -0
  125. package/src/UI/toolbarButtons/flatPatternButton.js +307 -0
  126. package/src/UI/toolbarButtons/importButton.js +160 -0
  127. package/src/UI/toolbarButtons/inspectorToggleButton.js +12 -0
  128. package/src/UI/toolbarButtons/metadataButton.js +1063 -0
  129. package/src/UI/toolbarButtons/orientToFaceButton.js +114 -0
  130. package/src/UI/toolbarButtons/registerDefaultButtons.js +46 -0
  131. package/src/UI/toolbarButtons/saveButton.js +99 -0
  132. package/src/UI/toolbarButtons/scriptRunnerButton.js +302 -0
  133. package/src/UI/toolbarButtons/testsButton.js +26 -0
  134. package/src/UI/toolbarButtons/undoRedoButtons.js +25 -0
  135. package/src/UI/toolbarButtons/wireframeToggleButton.js +5 -0
  136. package/src/UI/toolbarButtons/zoomToFitButton.js +5 -0
  137. package/src/UI/triangleDebuggerWindow.js +945 -0
  138. package/src/UI/viewer.js +4228 -0
  139. package/src/assemblyConstraints/AssemblyConstraintHistory.js +1576 -0
  140. package/src/assemblyConstraints/AssemblyConstraintRegistry.js +120 -0
  141. package/src/assemblyConstraints/BaseAssemblyConstraint.js +66 -0
  142. package/src/assemblyConstraints/constraintExpressionUtils.js +35 -0
  143. package/src/assemblyConstraints/constraintUtils/parallelAlignment.js +676 -0
  144. package/src/assemblyConstraints/constraints/AngleConstraint.js +485 -0
  145. package/src/assemblyConstraints/constraints/CoincidentConstraint.js +194 -0
  146. package/src/assemblyConstraints/constraints/DistanceConstraint.js +616 -0
  147. package/src/assemblyConstraints/constraints/FixedConstraint.js +78 -0
  148. package/src/assemblyConstraints/constraints/ParallelConstraint.js +252 -0
  149. package/src/assemblyConstraints/constraints/TouchAlignConstraint.js +961 -0
  150. package/src/core/entities/HistoryCollectionBase.js +72 -0
  151. package/src/core/entities/ListEntityBase.js +109 -0
  152. package/src/core/entities/schemaProcesser.js +121 -0
  153. package/src/exporters/sheetMetalFlatPattern.js +659 -0
  154. package/src/exporters/sheetMetalUnfold.js +862 -0
  155. package/src/exporters/step.js +1135 -0
  156. package/src/exporters/threeMF.js +575 -0
  157. package/src/features/assemblyComponent/AssemblyComponentFeature.js +780 -0
  158. package/src/features/boolean/BooleanFeature.js +94 -0
  159. package/src/features/chamfer/ChamferFeature.js +116 -0
  160. package/src/features/datium/DatiumFeature.js +80 -0
  161. package/src/features/edgeFeatureUtils.js +41 -0
  162. package/src/features/extrude/ExtrudeFeature.js +143 -0
  163. package/src/features/fillet/FilletFeature.js +197 -0
  164. package/src/features/helix/HelixFeature.js +405 -0
  165. package/src/features/hole/HoleFeature.js +1050 -0
  166. package/src/features/hole/screwClearance.js +86 -0
  167. package/src/features/hole/threadDesignationCatalog.js +149 -0
  168. package/src/features/imageHeightSolid/ImageHeightmapSolidFeature.js +463 -0
  169. package/src/features/imageToFace/ImageToFaceFeature.js +727 -0
  170. package/src/features/imageToFace/imageEditor.js +1270 -0
  171. package/src/features/imageToFace/traceUtils.js +971 -0
  172. package/src/features/import3dModel/Import3dModelFeature.js +151 -0
  173. package/src/features/loft/LoftFeature.js +605 -0
  174. package/src/features/mirror/MirrorFeature.js +151 -0
  175. package/src/features/offsetFace/OffsetFaceFeature.js +370 -0
  176. package/src/features/offsetShell/OffsetShellFeature.js +89 -0
  177. package/src/features/overlapCleanup/OverlapCleanupFeature.js +85 -0
  178. package/src/features/pattern/PatternFeature.js +275 -0
  179. package/src/features/patternLinear/PatternLinearFeature.js +120 -0
  180. package/src/features/patternRadial/PatternRadialFeature.js +186 -0
  181. package/src/features/plane/PlaneFeature.js +154 -0
  182. package/src/features/primitiveCone/primitiveConeFeature.js +99 -0
  183. package/src/features/primitiveCube/primitiveCubeFeature.js +70 -0
  184. package/src/features/primitiveCylinder/primitiveCylinderFeature.js +91 -0
  185. package/src/features/primitivePyramid/primitivePyramidFeature.js +72 -0
  186. package/src/features/primitiveSphere/primitiveSphereFeature.js +62 -0
  187. package/src/features/primitiveTorus/primitiveTorusFeature.js +109 -0
  188. package/src/features/remesh/RemeshFeature.js +97 -0
  189. package/src/features/revolve/RevolveFeature.js +111 -0
  190. package/src/features/selectionUtils.js +118 -0
  191. package/src/features/sheetMetal/SheetMetalContourFlangeFeature.js +1656 -0
  192. package/src/features/sheetMetal/SheetMetalCutoutFeature.js +1056 -0
  193. package/src/features/sheetMetal/SheetMetalFlangeFeature.js +1568 -0
  194. package/src/features/sheetMetal/SheetMetalHemFeature.js +43 -0
  195. package/src/features/sheetMetal/SheetMetalObject.js +141 -0
  196. package/src/features/sheetMetal/SheetMetalTabFeature.js +176 -0
  197. package/src/features/sheetMetal/UNFOLD_NEUTRAL_REQUIREMENTS.md +153 -0
  198. package/src/features/sheetMetal/contour-flange-rebuild-spec.md +261 -0
  199. package/src/features/sheetMetal/profileUtils.js +25 -0
  200. package/src/features/sheetMetal/sheetMetalCleanup.js +9 -0
  201. package/src/features/sheetMetal/sheetMetalFaceTypes.js +146 -0
  202. package/src/features/sheetMetal/sheetMetalMetadata.js +165 -0
  203. package/src/features/sheetMetal/sheetMetalPipeline.js +169 -0
  204. package/src/features/sheetMetal/sheetMetalProfileUtils.js +216 -0
  205. package/src/features/sheetMetal/sheetMetalTabUtils.js +29 -0
  206. package/src/features/sheetMetal/sheetMetalTree.js +210 -0
  207. package/src/features/sketch/SketchFeature.js +955 -0
  208. package/src/features/sketch/sketchSolver2D/ConstraintEngine.js +800 -0
  209. package/src/features/sketch/sketchSolver2D/constraintDefinitions.js +704 -0
  210. package/src/features/sketch/sketchSolver2D/mathHelpersMod.js +307 -0
  211. package/src/features/spline/SplineEditorSession.js +988 -0
  212. package/src/features/spline/SplineFeature.js +1388 -0
  213. package/src/features/spline/splineUtils.js +218 -0
  214. package/src/features/sweep/SweepFeature.js +110 -0
  215. package/src/features/transform/TransformFeature.js +152 -0
  216. package/src/features/tube/TubeFeature.js +635 -0
  217. package/src/fs.proxy.js +625 -0
  218. package/src/idbStorage.js +254 -0
  219. package/src/index.js +12 -0
  220. package/src/main.js +15 -0
  221. package/src/metadataManager.js +64 -0
  222. package/src/path.proxy.js +277 -0
  223. package/src/plugins/ghLoader.worker.js +151 -0
  224. package/src/plugins/pluginManager.js +286 -0
  225. package/src/pmi/PMIViewsManager.js +134 -0
  226. package/src/services/componentLibrary.js +198 -0
  227. package/src/tests/ConsoleCapture.js +189 -0
  228. package/src/tests/S7-diagnostics-2025-12-23T18-37-23-570Z.json +630 -0
  229. package/src/tests/browserTests.js +597 -0
  230. package/src/tests/debugBoolean.js +225 -0
  231. package/src/tests/partFiles/badBoolean.json +957 -0
  232. package/src/tests/partFiles/extrudeTest.json +88 -0
  233. package/src/tests/partFiles/filletFail.json +58 -0
  234. package/src/tests/partFiles/import_TEst.part.part.json +646 -0
  235. package/src/tests/partFiles/sheetMetalHem.BREP.json +734 -0
  236. package/src/tests/test_boolean_subtract.js +27 -0
  237. package/src/tests/test_chamfer.js +17 -0
  238. package/src/tests/test_extrudeFace.js +24 -0
  239. package/src/tests/test_fillet.js +17 -0
  240. package/src/tests/test_fillet_nonClosed.js +45 -0
  241. package/src/tests/test_filletsMoreDifficult.js +46 -0
  242. package/src/tests/test_history_features_basic.js +149 -0
  243. package/src/tests/test_hole.js +282 -0
  244. package/src/tests/test_mirror.js +16 -0
  245. package/src/tests/test_offsetShellGrouping.js +85 -0
  246. package/src/tests/test_plane.js +4 -0
  247. package/src/tests/test_primitiveCone.js +11 -0
  248. package/src/tests/test_primitiveCube.js +7 -0
  249. package/src/tests/test_primitiveCylinder.js +8 -0
  250. package/src/tests/test_primitivePyramid.js +9 -0
  251. package/src/tests/test_primitiveSphere.js +17 -0
  252. package/src/tests/test_primitiveTorus.js +21 -0
  253. package/src/tests/test_pushFace.js +126 -0
  254. package/src/tests/test_sheetMetalContourFlange.js +125 -0
  255. package/src/tests/test_sheetMetal_features.js +80 -0
  256. package/src/tests/test_sketch_openLoop.js +45 -0
  257. package/src/tests/test_solidMetrics.js +58 -0
  258. package/src/tests/test_stlLoader.js +1889 -0
  259. package/src/tests/test_sweepFace.js +55 -0
  260. package/src/tests/test_tube.js +45 -0
  261. package/src/tests/test_tube_closedLoop.js +67 -0
  262. package/src/tests/tests.js +493 -0
  263. package/src/tools/assemblyConstraintDialogCapturePage.js +56 -0
  264. package/src/tools/dialogCapturePageFactory.js +227 -0
  265. package/src/tools/featureDialogCapturePage.js +47 -0
  266. package/src/tools/pmiAnnotationDialogCapturePage.js +60 -0
  267. package/src/utils/axisHelpers.js +99 -0
  268. package/src/utils/deepClone.js +69 -0
  269. package/src/utils/geometryTolerance.js +37 -0
  270. package/src/utils/normalizeTypeString.js +8 -0
  271. package/src/utils/xformMath.js +51 -0
@@ -0,0 +1,734 @@
1
+ {
2
+ "features": [
3
+ {
4
+ "type": "P",
5
+ "inputParams": {
6
+ "id": "P1",
7
+ "datum": null,
8
+ "orientation": "XY",
9
+ "offset_distance": 0,
10
+ "__open": false
11
+ },
12
+ "persistentData": {},
13
+ "timestamp": 1767840486366
14
+ },
15
+ {
16
+ "type": "S",
17
+ "inputParams": {
18
+ "id": "S2",
19
+ "sketchPlane": "P1",
20
+ "editSketch": null,
21
+ "dumpSketchDiagnostics": null,
22
+ "curveResolution": 32,
23
+ "__open": false
24
+ },
25
+ "persistentData": {
26
+ "sketch": {
27
+ "points": [
28
+ {
29
+ "id": 0,
30
+ "x": 0,
31
+ "y": 0,
32
+ "fixed": true
33
+ },
34
+ {
35
+ "id": 1,
36
+ "x": 20,
37
+ "y": 0,
38
+ "fixed": false
39
+ },
40
+ {
41
+ "id": 2,
42
+ "x": 20,
43
+ "y": 20,
44
+ "fixed": false
45
+ },
46
+ {
47
+ "id": 3,
48
+ "x": 0,
49
+ "y": 20,
50
+ "fixed": false
51
+ }
52
+ ],
53
+ "geometries": [
54
+ {
55
+ "id": 100,
56
+ "type": "line",
57
+ "points": [
58
+ 0,
59
+ 1
60
+ ],
61
+ "construction": false
62
+ },
63
+ {
64
+ "id": 101,
65
+ "type": "line",
66
+ "points": [
67
+ 1,
68
+ 2
69
+ ],
70
+ "construction": false
71
+ },
72
+ {
73
+ "id": 102,
74
+ "type": "line",
75
+ "points": [
76
+ 2,
77
+ 3
78
+ ],
79
+ "construction": false
80
+ },
81
+ {
82
+ "id": 103,
83
+ "type": "line",
84
+ "points": [
85
+ 3,
86
+ 0
87
+ ],
88
+ "construction": false
89
+ }
90
+ ],
91
+ "constraints": [
92
+ {
93
+ "id": 0,
94
+ "type": "⏚",
95
+ "points": [
96
+ 0
97
+ ],
98
+ "status": "solved",
99
+ "previousPointValues": "[{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true}]"
100
+ },
101
+ {
102
+ "id": 1,
103
+ "type": "⟺",
104
+ "points": [
105
+ 3,
106
+ 0
107
+ ],
108
+ "labelX": 0,
109
+ "labelY": 0,
110
+ "displayStyle": "",
111
+ "value": 20,
112
+ "valueNeedsSetup": true,
113
+ "status": "solved",
114
+ "error": null,
115
+ "previousPointValues": "[{\"id\":3,\"x\":0,\"y\":20,\"fixed\":false},{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true}]"
116
+ },
117
+ {
118
+ "id": 2,
119
+ "type": "⟺",
120
+ "points": [
121
+ 0,
122
+ 1
123
+ ],
124
+ "labelX": 0,
125
+ "labelY": 0,
126
+ "displayStyle": "",
127
+ "value": 20,
128
+ "valueNeedsSetup": true,
129
+ "status": "solved",
130
+ "error": null,
131
+ "previousPointValues": "[{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true},{\"id\":1,\"x\":20,\"y\":0,\"fixed\":false}]"
132
+ },
133
+ {
134
+ "id": 3,
135
+ "type": "⟂",
136
+ "points": [
137
+ 0,
138
+ 1,
139
+ 3,
140
+ 0
141
+ ],
142
+ "labelX": 0,
143
+ "labelY": 0,
144
+ "displayStyle": "",
145
+ "value": 90,
146
+ "valueNeedsSetup": true,
147
+ "status": "solved",
148
+ "error": null,
149
+ "previousPointValues": "[{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true},{\"id\":1,\"x\":20,\"y\":0,\"fixed\":false},{\"id\":3,\"x\":0,\"y\":20,\"fixed\":false},{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true}]"
150
+ },
151
+ {
152
+ "id": 4,
153
+ "type": "━",
154
+ "points": [
155
+ 0,
156
+ 1
157
+ ],
158
+ "labelX": 0,
159
+ "labelY": 0,
160
+ "displayStyle": "",
161
+ "value": null,
162
+ "valueNeedsSetup": true,
163
+ "status": "solved",
164
+ "error": null,
165
+ "previousPointValues": "[{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true},{\"id\":1,\"x\":20,\"y\":0,\"fixed\":false}]"
166
+ },
167
+ {
168
+ "id": 5,
169
+ "type": "⟂",
170
+ "points": [
171
+ 3,
172
+ 2,
173
+ 3,
174
+ 0
175
+ ],
176
+ "labelX": 0,
177
+ "labelY": 0,
178
+ "displayStyle": "",
179
+ "value": 90,
180
+ "valueNeedsSetup": true,
181
+ "status": "solved",
182
+ "error": null,
183
+ "previousPointValues": "[{\"id\":3,\"x\":0,\"y\":20,\"fixed\":false},{\"id\":2,\"x\":20,\"y\":20,\"fixed\":false},{\"id\":3,\"x\":0,\"y\":20,\"fixed\":false},{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true}]"
184
+ },
185
+ {
186
+ "id": 6,
187
+ "type": "⟂",
188
+ "points": [
189
+ 2,
190
+ 1,
191
+ 2,
192
+ 3
193
+ ],
194
+ "labelX": 0,
195
+ "labelY": 0,
196
+ "displayStyle": "",
197
+ "value": 90,
198
+ "valueNeedsSetup": true,
199
+ "status": "solved",
200
+ "error": null,
201
+ "previousPointValues": "[{\"id\":2,\"x\":20,\"y\":20,\"fixed\":false},{\"id\":1,\"x\":20,\"y\":0,\"fixed\":false},{\"id\":2,\"x\":20,\"y\":20,\"fixed\":false},{\"id\":3,\"x\":0,\"y\":20,\"fixed\":false}]"
202
+ }
203
+ ]
204
+ },
205
+ "basis": {
206
+ "origin": [
207
+ 0,
208
+ 0,
209
+ 0
210
+ ],
211
+ "x": [
212
+ 1,
213
+ 0,
214
+ 0
215
+ ],
216
+ "y": [
217
+ 0,
218
+ 1,
219
+ 0
220
+ ],
221
+ "z": [
222
+ 0,
223
+ 0,
224
+ 1
225
+ ],
226
+ "refName": "P1"
227
+ },
228
+ "lastSketchSignature": "{\"points\":[{\"id\":0,\"x\":0,\"y\":0,\"fixed\":true},{\"id\":1,\"x\":20,\"y\":0,\"fixed\":false},{\"id\":2,\"x\":20,\"y\":20,\"fixed\":false},{\"id\":3,\"x\":0,\"y\":20,\"fixed\":false}],\"geometries\":[{\"id\":100,\"type\":\"line\",\"points\":[0,1],\"construction\":false},{\"id\":101,\"type\":\"line\",\"points\":[1,2],\"construction\":false},{\"id\":102,\"type\":\"line\",\"points\":[2,3],\"construction\":false},{\"id\":103,\"type\":\"line\",\"points\":[3,0],\"construction\":false}],\"constraints\":[{\"id\":0,\"type\":\"⏚\",\"points\":[0],\"status\":\"solved\",\"previousPointValues\":\"[{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true}]\"},{\"id\":1,\"type\":\"⟺\",\"points\":[3,0],\"labelX\":0,\"labelY\":0,\"displayStyle\":\"\",\"value\":20,\"valueNeedsSetup\":true,\"status\":\"solved\",\"error\":null,\"previousPointValues\":\"[{\\\"id\\\":3,\\\"x\\\":0,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true}]\"},{\"id\":2,\"type\":\"⟺\",\"points\":[0,1],\"labelX\":0,\"labelY\":0,\"displayStyle\":\"\",\"value\":20,\"valueNeedsSetup\":true,\"status\":\"solved\",\"error\":null,\"previousPointValues\":\"[{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true},{\\\"id\\\":1,\\\"x\\\":20,\\\"y\\\":0,\\\"fixed\\\":false}]\"},{\"id\":3,\"type\":\"⟂\",\"points\":[0,1,3,0],\"labelX\":0,\"labelY\":0,\"displayStyle\":\"\",\"value\":90,\"valueNeedsSetup\":true,\"status\":\"solved\",\"error\":null,\"previousPointValues\":\"[{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true},{\\\"id\\\":1,\\\"x\\\":20,\\\"y\\\":0,\\\"fixed\\\":false},{\\\"id\\\":3,\\\"x\\\":0,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true}]\"},{\"id\":4,\"type\":\"━\",\"points\":[0,1],\"labelX\":0,\"labelY\":0,\"displayStyle\":\"\",\"value\":null,\"valueNeedsSetup\":true,\"status\":\"solved\",\"error\":null,\"previousPointValues\":\"[{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true},{\\\"id\\\":1,\\\"x\\\":20,\\\"y\\\":0,\\\"fixed\\\":false}]\"},{\"id\":5,\"type\":\"⟂\",\"points\":[3,2,3,0],\"labelX\":0,\"labelY\":0,\"displayStyle\":\"\",\"value\":90,\"valueNeedsSetup\":true,\"status\":\"solved\",\"error\":null,\"previousPointValues\":\"[{\\\"id\\\":3,\\\"x\\\":0,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":2,\\\"x\\\":20,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":3,\\\"x\\\":0,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":0,\\\"x\\\":0,\\\"y\\\":0,\\\"fixed\\\":true}]\"},{\"id\":6,\"type\":\"⟂\",\"points\":[2,1,2,3],\"labelX\":0,\"labelY\":0,\"displayStyle\":\"\",\"value\":90,\"valueNeedsSetup\":true,\"status\":\"solved\",\"error\":null,\"previousPointValues\":\"[{\\\"id\\\":2,\\\"x\\\":20,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":1,\\\"x\\\":20,\\\"y\\\":0,\\\"fixed\\\":false},{\\\"id\\\":2,\\\"x\\\":20,\\\"y\\\":20,\\\"fixed\\\":false},{\\\"id\\\":3,\\\"x\\\":0,\\\"y\\\":20,\\\"fixed\\\":false}]\"}]}",
229
+ "lastSketchChanged": false,
230
+ "sketchDimOffsets": {
231
+ "1": {
232
+ "d": -5.086584559957327
233
+ },
234
+ "2": {
235
+ "d": -7.655568628843383
236
+ }
237
+ }
238
+ },
239
+ "timestamp": 1767840486371
240
+ },
241
+ {
242
+ "type": "SM.TAB",
243
+ "inputParams": {
244
+ "id": "SM.TAB3",
245
+ "profile": "S2",
246
+ "thickness": 1,
247
+ "placementMode": "forward",
248
+ "bendRadius": "2",
249
+ "consumeProfileSketch": true,
250
+ "boolean": {
251
+ "targets": [],
252
+ "operation": "NONE"
253
+ },
254
+ "__open": false,
255
+ "neutralFactor": 0.5
256
+ },
257
+ "persistentData": {
258
+ "sheetMetal": {
259
+ "baseType": "TAB",
260
+ "thickness": 1,
261
+ "bendRadius": 2,
262
+ "neutralFactor": 0.5,
263
+ "placementMode": "forward",
264
+ "signedThickness": 1,
265
+ "consumeProfileSketch": true,
266
+ "profileName": "S2:PROFILE"
267
+ }
268
+ },
269
+ "timestamp": 1767840486377
270
+ },
271
+ {
272
+ "type": "SM.F",
273
+ "inputParams": {
274
+ "id": "SM.F10",
275
+ "faces": [
276
+ "SM.TAB3:S2:G101_SW"
277
+ ],
278
+ "useOppositeCenterline": false,
279
+ "flangeLength": 10,
280
+ "flangeLengthReference": "outside",
281
+ "angle": 90,
282
+ "inset": "material_inside",
283
+ "reliefWidth": 0,
284
+ "bendRadius": 0,
285
+ "offset": 0,
286
+ "debugSkipUnion": false,
287
+ "__open": false
288
+ },
289
+ "persistentData": {
290
+ "sheetMetal": {
291
+ "baseType": "FLANGE",
292
+ "thickness": 1,
293
+ "bendRadius": 2,
294
+ "defaultBendRadius": 2,
295
+ "bendRadiusOverride": null,
296
+ "angleDegrees": 90,
297
+ "insetMode": "material_inside",
298
+ "useOppositeCenterline": false,
299
+ "offsetValue": -3
300
+ }
301
+ },
302
+ "timestamp": 1767840486453
303
+ },
304
+ {
305
+ "type": "SM.F",
306
+ "inputParams": {
307
+ "id": "SM.F11",
308
+ "faces": [
309
+ "SM.TAB3:S2:G102_SW"
310
+ ],
311
+ "useOppositeCenterline": true,
312
+ "flangeLength": 10,
313
+ "flangeLengthReference": "outside",
314
+ "angle": 90,
315
+ "inset": "bend_outside",
316
+ "reliefWidth": 0,
317
+ "bendRadius": 0,
318
+ "offset": 0,
319
+ "debugSkipUnion": false,
320
+ "__open": false
321
+ },
322
+ "persistentData": {
323
+ "sheetMetal": {
324
+ "baseType": "FLANGE",
325
+ "thickness": 1,
326
+ "bendRadius": 2,
327
+ "defaultBendRadius": 2,
328
+ "bendRadiusOverride": null,
329
+ "angleDegrees": 90,
330
+ "insetMode": "bend_outside",
331
+ "useOppositeCenterline": true,
332
+ "offsetValue": 0
333
+ }
334
+ },
335
+ "timestamp": 1767840486517
336
+ },
337
+ {
338
+ "type": "SM.F",
339
+ "inputParams": {
340
+ "id": "SM.F14",
341
+ "faces": [
342
+ "SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW"
343
+ ],
344
+ "useOppositeCenterline": false,
345
+ "flangeLength": 10,
346
+ "flangeLengthReference": "outside",
347
+ "angle": 90,
348
+ "inset": "material_inside",
349
+ "reliefWidth": 0,
350
+ "bendRadius": 0,
351
+ "offset": 0,
352
+ "debugSkipUnion": false,
353
+ "__open": true
354
+ },
355
+ "persistentData": {
356
+ "sheetMetal": {
357
+ "baseType": "FLANGE",
358
+ "thickness": 1,
359
+ "bendRadius": 2,
360
+ "defaultBendRadius": 2,
361
+ "bendRadiusOverride": null,
362
+ "angleDegrees": 90,
363
+ "insetMode": "material_inside",
364
+ "useOppositeCenterline": false,
365
+ "offsetValue": -3
366
+ }
367
+ },
368
+ "timestamp": 1767840486577
369
+ },
370
+ {
371
+ "type": "SM.HEM",
372
+ "inputParams": {
373
+ "id": "SM.HEM15",
374
+ "faces": [
375
+ "SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END"
376
+ ],
377
+ "useOppositeCenterline": false,
378
+ "flangeLength": "5",
379
+ "flangeLengthReference": "outside",
380
+ "angle": "180",
381
+ "inset": "material_inside",
382
+ "reliefWidth": 0,
383
+ "bendRadius": "0.001",
384
+ "offset": 0,
385
+ "debugSkipUnion": false,
386
+ "__open": true
387
+ },
388
+ "persistentData": {
389
+ "sheetMetal": {
390
+ "baseType": "HEM",
391
+ "thickness": 1,
392
+ "bendRadius": 0.001,
393
+ "defaultBendRadius": 2,
394
+ "bendRadiusOverride": 0.001,
395
+ "angleDegrees": 180,
396
+ "insetMode": "material_inside",
397
+ "useOppositeCenterline": false,
398
+ "offsetValue": -1.001
399
+ }
400
+ },
401
+ "timestamp": 1767840486684
402
+ }
403
+ ],
404
+ "idCounter": 15,
405
+ "expressions": "//Examples:\nx = 10 + 6; \ny = x * 2;",
406
+ "pmiViews": [
407
+ {
408
+ "viewName": "View 1",
409
+ "name": "View 1",
410
+ "camera": {
411
+ "version": 2,
412
+ "type": "OrthographicCamera",
413
+ "worldMatrix": [
414
+ -0.7071067811865478,
415
+ 0.7071067811865478,
416
+ 0,
417
+ 0,
418
+ -0.40824829046386296,
419
+ -0.408248290463863,
420
+ 0.816496580927726,
421
+ 0,
422
+ 0.5773502691896257,
423
+ 0.5773502691896255,
424
+ 0.5773502691896254,
425
+ 0,
426
+ 50.49792175352891,
427
+ 43.2878074790918,
428
+ 36.902730483518,
429
+ 1
430
+ ],
431
+ "projection": {
432
+ "kind": "orthographic",
433
+ "left": -13.540144980018415,
434
+ "right": 13.540144980018415,
435
+ "top": 10,
436
+ "bottom": -10,
437
+ "near": 0,
438
+ "far": 89.05237095291655,
439
+ "zoom": 0.4135117070459204,
440
+ "view": {
441
+ "enabled": false
442
+ }
443
+ },
444
+ "position": {
445
+ "x": 50.49792175352891,
446
+ "y": 43.2878074790918,
447
+ "z": 36.902730483518
448
+ },
449
+ "quaternion": {
450
+ "x": 0.17591989660616122,
451
+ "y": 0.42470820027786693,
452
+ "z": 0.8204732385702833,
453
+ "w": 0.3398511429799874
454
+ },
455
+ "up": {
456
+ "x": 0,
457
+ "y": 0,
458
+ "z": 1
459
+ },
460
+ "zoom": 0.4135117070459204,
461
+ "near": 0,
462
+ "far": 89.05237095291655,
463
+ "layers": 1,
464
+ "target": {
465
+ "x": 0,
466
+ "y": 0,
467
+ "z": 0
468
+ },
469
+ "controlsState": {
470
+ "target": [
471
+ 0,
472
+ 0,
473
+ 0
474
+ ],
475
+ "cameraMatrix": [
476
+ -0.7071067811865478,
477
+ 0.7071067811865478,
478
+ 0,
479
+ 0,
480
+ -0.40824829046386296,
481
+ -0.408248290463863,
482
+ 0.816496580927726,
483
+ 0,
484
+ 0.5773502691896257,
485
+ 0.5773502691896255,
486
+ 0.5773502691896254,
487
+ 0,
488
+ 50.49792175352891,
489
+ 43.2878074790918,
490
+ 36.902730483518,
491
+ 1
492
+ ],
493
+ "cameraUp": {
494
+ "x": 0,
495
+ "y": 0,
496
+ "z": 1
497
+ },
498
+ "cameraNear": 0,
499
+ "cameraFar": 89.05237095291655,
500
+ "cameraZoom": 0.4135117070459204,
501
+ "gizmoMatrix": [
502
+ 2.4183112181850546,
503
+ 0,
504
+ 0,
505
+ 0,
506
+ 0,
507
+ 2.4183112181850546,
508
+ 0,
509
+ 0,
510
+ 0,
511
+ 0,
512
+ 2.4183112181850546,
513
+ 0,
514
+ 13.400017635649473,
515
+ 6.189903361212377,
516
+ -0.19517363436142796,
517
+ 1
518
+ ]
519
+ },
520
+ "userData": {
521
+ "preventRemove": true
522
+ }
523
+ },
524
+ "viewSettings": {
525
+ "wireframe": false
526
+ },
527
+ "annotations": [
528
+ {
529
+ "type": "linear",
530
+ "inputParams": {
531
+ "id": "DIM1",
532
+ "decimals": 3,
533
+ "targets": [
534
+ "SM.TAB3:S2:G103_SW|SM.TAB3:S2:PROFILE_START[0]"
535
+ ],
536
+ "planeRefName": "SM.TAB3:S2:PROFILE_START",
537
+ "alignment": "view",
538
+ "offset": -7.932889825156913,
539
+ "showExt": true,
540
+ "isReference": false,
541
+ "value": "20.000",
542
+ "labelWorld": [
543
+ -7.932889825156913,
544
+ 7.958264544075703,
545
+ 3.552713678800501e-15
546
+ ],
547
+ "type": "linear"
548
+ },
549
+ "persistentData": {
550
+ "labelWorld": [
551
+ -7.932889825156913,
552
+ 7.958264544075703,
553
+ 3.552713678800501e-15
554
+ ]
555
+ },
556
+ "enabled": true
557
+ },
558
+ {
559
+ "type": "linear",
560
+ "inputParams": {
561
+ "id": "DIM2",
562
+ "decimals": 3,
563
+ "targets": [
564
+ "SM.TAB3:S2:G102_SW|SM.TAB3:S2:PROFILE_START[0]"
565
+ ],
566
+ "planeRefName": "SM.TAB3:S2:PROFILE_START",
567
+ "alignment": "view",
568
+ "offset": -5.395351034868035,
569
+ "showExt": true,
570
+ "isReference": false,
571
+ "value": "0.000",
572
+ "labelWorld": [
573
+ 8.358949790663528,
574
+ 25.395351034868035,
575
+ 0
576
+ ],
577
+ "type": "linear"
578
+ },
579
+ "persistentData": {
580
+ "labelWorld": [
581
+ 8.358949790663528,
582
+ 25.395351034868035,
583
+ 0
584
+ ]
585
+ },
586
+ "enabled": true
587
+ },
588
+ {
589
+ "type": "linear",
590
+ "inputParams": {
591
+ "id": "DIM3",
592
+ "decimals": 3,
593
+ "targets": [
594
+ "SM.F10:OFFSET:0:SM.TAB3:S2:G101_SW_END|SM.TAB3:S2:G101_SW|SM.TAB3:S2:G102_SW[0]_RV[0]_SW|SM.F10:OFFSET:0:SM.TAB3:S2:G101_SW_END|SM.TAB3:S2:G101_SW|SM.TAB3:S2:PROFILE_END[0]_RV[0]_SW[0]"
595
+ ],
596
+ "planeRefName": "SM.F10:OFFSET:0:SM.TAB3:S2:G101_SW_END|SM.TAB3:S2:G101_SW|SM.TAB3:S2:PROFILE_START[0]_RV[0]_SW",
597
+ "alignment": "view",
598
+ "offset": 24.137432582873657,
599
+ "showExt": true,
600
+ "isReference": false,
601
+ "value": "7.000",
602
+ "labelWorld": [
603
+ 20,
604
+ -4.137432582873657,
605
+ 5.445658605495694
606
+ ],
607
+ "type": "linear"
608
+ },
609
+ "persistentData": {},
610
+ "enabled": true
611
+ },
612
+ {
613
+ "type": "linear",
614
+ "inputParams": {
615
+ "id": "DIM4",
616
+ "decimals": 3,
617
+ "targets": [
618
+ "SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:PROFILE_END[0]_RV[0]_SW[0]_RV[0]_SW|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_RV[0]_SW[0]"
619
+ ],
620
+ "planeRefName": "SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_RV[0]_SW",
621
+ "alignment": "view",
622
+ "offset": -3.837187355076928,
623
+ "showExt": true,
624
+ "isReference": false,
625
+ "type": "linear",
626
+ "value": "5.999",
627
+ "labelWorld": [
628
+ -3.837187355076928,
629
+ 27.34054293842167,
630
+ -3
631
+ ]
632
+ },
633
+ "persistentData": {},
634
+ "enabled": true
635
+ },
636
+ {
637
+ "type": "linear",
638
+ "inputParams": {
639
+ "id": "DIM5",
640
+ "decimals": 3,
641
+ "targets": [
642
+ "SM.HEM15:OFFSET:0:SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END_END|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:PROFILE_END[0]_RV[0]_SW[0]_RV[0]_SW[0]_RV[0]_SW|SM.HEM15:OFFSET:0:SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END_END|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_RV[0]_SW[0]_RV[0]_SW[0]"
643
+ ],
644
+ "planeRefName": "SM.HEM15:OFFSET:0:SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END_END|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END_END|SM.F14:OFFSET:0:SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW_END|SM.F11:OFFSET:0:SM.TAB3:S2:G102_SW_END|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_SW|SM.TAB3:S2:G102_SW|SM.TAB3:S2:G103_SW[0]_RV[0]_RV[0]_SW[0]_RV[0]_SW",
645
+ "alignment": "view",
646
+ "offset": 2.415646110122193,
647
+ "showExt": true,
648
+ "isReference": false,
649
+ "type": "linear",
650
+ "value": "3.999",
651
+ "labelWorld": [
652
+ 4.102457223845327,
653
+ 28.21482550471635,
654
+ -4.315782360443372
655
+ ]
656
+ },
657
+ "persistentData": {},
658
+ "__open": true,
659
+ "enabled": true
660
+ }
661
+ ]
662
+ }
663
+ ],
664
+ "metadata": {
665
+ "SM.TAB3": {
666
+ "sheetMetalThickness": 1,
667
+ "sheetMetalBendRadius": 2,
668
+ "sheetMetalBaseType": "TAB",
669
+ "sheetMetalFeatureId": "SM.HEM15",
670
+ "sheetMetalExtra": {
671
+ "angleDegrees": 180,
672
+ "insetMode": "material_inside",
673
+ "useOppositeCenterline": false,
674
+ "offsetValue": -1.001,
675
+ "bendRadiusOverride": 0.001,
676
+ "bendRadiusUsed": 0.001,
677
+ "baseBendRadius": 2
678
+ },
679
+ "sheetMetalNeutralFactor": 0.5
680
+ },
681
+ "SM.CUTOUT6": {
682
+ "sheetMetalThickness": 1,
683
+ "sheetMetalBendRadius": 0.125,
684
+ "sheetMetalBaseType": "TAB",
685
+ "sheetMetalFeatureId": "SM.CUTOUT9",
686
+ "sheetMetalExtra": {
687
+ "sourceFeature": "CUTOUT"
688
+ }
689
+ },
690
+ "SM.CUTOUT9_CUTOUT_CUTTER": {
691
+ "sheetMetalThickness": 1,
692
+ "sheetMetalBendRadius": 0.125,
693
+ "sheetMetalBaseType": "TAB",
694
+ "sheetMetalFeatureId": "SM.CUTOUT9",
695
+ "sheetMetalExtra": {
696
+ "sourceFeature": "CUTOUT"
697
+ }
698
+ },
699
+ "SM.HEM13:BEND": {
700
+ "sheetMetalThickness": 1,
701
+ "sheetMetalBendRadius": 2,
702
+ "sheetMetalNeutralFactor": 0,
703
+ "sheetMetalBaseType": "HEM",
704
+ "sheetMetalFeatureId": "SM.HEM13",
705
+ "sheetMetalExtra": {
706
+ "angleDegrees": 180,
707
+ "insetMode": "material_inside",
708
+ "useOppositeCenterline": true,
709
+ "offsetValue": -1.0001,
710
+ "bendRadiusOverride": 0.0001,
711
+ "bendRadiusUsed": 0.0001,
712
+ "baseBendRadius": 2
713
+ }
714
+ },
715
+ "SM.HEM13:OFFSET:0": {
716
+ "sheetMetalThickness": 1,
717
+ "sheetMetalBendRadius": 2,
718
+ "sheetMetalNeutralFactor": 0,
719
+ "sheetMetalBaseType": "HEM",
720
+ "sheetMetalFeatureId": "SM.HEM13",
721
+ "sheetMetalExtra": {
722
+ "angleDegrees": 180,
723
+ "insetMode": "material_inside",
724
+ "useOppositeCenterline": true,
725
+ "offsetValue": -1.0001,
726
+ "bendRadiusOverride": 0.0001,
727
+ "bendRadiusUsed": 0.0001,
728
+ "baseBendRadius": 2
729
+ }
730
+ }
731
+ },
732
+ "assemblyConstraints": [],
733
+ "assemblyConstraintIdCounter": 0
734
+ }