From 53f4dbbca881bb912d807906a9c2fd9c556a4d60 Mon Sep 17 00:00:00 2001 From: gsdali <51393997+gsdali@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:28:01 +1000 Subject: [PATCH 1/7] chore: repin OCCTSwift to 1.17.0 for the #100 fix branch Pins the dependency this branch was set up against; no other pin changes. --- Package.resolved | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Package.resolved b/Package.resolved index c66b474..4f709a6 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "fb5d03c0c4ec0e5129f75f7146d63d21f81c2fc74b3c1a5953847e18f4fe31a7", + "originHash" : "71e38e2f96f3194dfb2876a87ffd361994858a5a289974c54b1f799d85647e49", "pins" : [ { "identity" : "nodal", @@ -15,8 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/SecondMouseAU/OCCTSwift.git", "state" : { - "revision" : "b71b65760498052a3ce79c91b95a904fea6df459", - "version" : "1.15.0" + "revision" : "fb7f88747e0f6dc35a804f5af91f69a89bf456a7", + "version" : "1.17.0" } }, { From 96dace0f2924a06686a6ef9c61e254a0dfa9a55f Mon Sep 17 00:00:00 2001 From: gsdali <51393997+gsdali@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:28:13 +1000 Subject: [PATCH 2/7] fix: revolve a face, not a wire, so the pipe flange emits a solid Shape.revolve(profile: wire, ...) revolves the curve itself and returns a shell (BRepPrimAPI_MakeRevol on a wire), not a solid. That is standard OCCT behaviour, not an OCCTSwift bug, but it is a trap: Shape.extrude(profile: wire, ...) faces the wire for you, so the two neighbouring sweep factories are not symmetric. Face the half-section first with Shape.face(from:), then revolve the face instead of the wire. Regenerated the committed output.brep and output.png: the raw revolve volume is unchanged (247400.42 mm^3 both ways, confirming the old shell was already topologically closed), but the final volume after circularPatternCut drops from 241242.90 to 228927.86 mm^3 (-5.1%). That drop is not the intended fix, it is a second, previously-hidden bug the shell was masking: circularPatternCut's boolean subtract against a non-solid shell only removed 6157.52 mm^3 across the 8 bolt holes instead of the correct 8 * pi * 7^2 * 15 = 18472.56 mm^3 (verified by isolating the raw-revolve and post-cut volumes on both the old and new construction). The new volume matches the expected geometry exactly; the old one did not. Part of #100. --- recipes/03-pipe-flange/README.md | 19 +- recipes/03-pipe-flange/main.swift | 20 +- recipes/03-pipe-flange/output.brep | 419 ++++++++++++++++++++--------- recipes/03-pipe-flange/output.png | Bin 51022 -> 22126 bytes 4 files changed, 312 insertions(+), 146 deletions(-) diff --git a/recipes/03-pipe-flange/README.md b/recipes/03-pipe-flange/README.md index 63ac6c0..3258567 100644 --- a/recipes/03-pipe-flange/README.md +++ b/recipes/03-pipe-flange/README.md @@ -23,22 +23,31 @@ patterning a single bolt hole around the axis. Shows revolve + circular pattern The flange is a surface of revolution. Its half-section is drawn in the XY plane as a closed polygon of `(radius, axial)` pairs, bore wall, back face, OD, disk front, the raised-face step, and back to the bore, with every radius `≥ boreRadius` so the profile -never crosses the axis. It is revolved a full turn about the **Y axis** (the bore axis). -The bolt circle is cut with `Shape.circularPatternCut`: a single cylindrical hole tool is -built at the bolt-circle radius (oriented along Y), then patterned `boltCount` times around -the axis and subtracted as one compound. Finally a small all-edge chamfer breaks the sharp +never crosses the axis. The section is faced with `Shape.face(from:)`, and the **face** +(not the wire) is revolved a full turn about the **Y axis** (the bore axis), which is +what closes the result into a solid rather than a shell (see Gotchas). The bolt circle +is cut with `Shape.circularPatternCut`: a single cylindrical hole tool is built at the +bolt-circle radius (oriented along Y), then patterned `boltCount` times around the axis +and subtracted as one compound. Finally a small all-edge chamfer breaks the sharp corners; it falls back to the un-chamfered body if the blend fails. ## OCCTSwift APIs used - `Wire.polygon(_:closed:)`: the `(radius, axial)` half-section -- `Shape.revolve(profile:axisOrigin:axisDirection:angle:)`: surface of revolution +- `Shape.face(from:)`: face the half-section before revolving +- `revolved(axisOrigin:axisDirection:)`: surface of revolution (on the faced section) - `Shape.cylinder(at:direction:radius:height:)`: the bolt-hole tool - `Shape.circularPatternCut(tool:axisPoint:axisDirection:count:angle:)`: the bolt circle (OCCTSwift v1.3.1) - `Shape.chamfered(distance:)`: edge break (optional) ## Gotchas +- **Face the wire before revolving it.** `Shape.revolve(profile: wire, ...)` revolves + the curve itself and returns a **shell**, not a solid, this is standard + `BRepPrimAPI_MakeRevol` behaviour on a wire, not an OCCTSwift bug (OCCTSwiftScripts + #100). `Shape.face(from: wire)` followed by `face.revolved(...)` gives a solid with + the same volume. `Shape.extrude(profile: wire, ...)` faces the wire for you and so does + not have this trap, `Shape.revolve(profile: wire, ...)` does; the two aren't symmetric. - The revolve axis is **Y**, so the half-section uses `x` for radius and `y` for axial position. Revolving an XY profile about Z would sweep a flat disk, not a solid. - Keep every profile radius `≥ boreRadius`: a profile that touches or crosses the axis diff --git a/recipes/03-pipe-flange/main.swift b/recipes/03-pipe-flange/main.swift index f759b58..fd1a45c 100644 --- a/recipes/03-pipe-flange/main.swift +++ b/recipes/03-pipe-flange/main.swift @@ -4,10 +4,14 @@ // Outputs: one solid body: a raised-face pipe flange with a bolt circle. // Notes: The flange is a surface of revolution. The half-section is drawn in the XY // plane as (radius, axial) pairs with radius ≥ bore (so it never crosses the -// axis) and revolved a full turn about the Y axis. The bolt circle is cut with -// Shape.circularPatternCut (OCCTSwift v1.3.1, #169), which patterns a single hole -// tool around the axis and subtracts the whole compound in one call. A small -// all-edge chamfer breaks sharp corners; it degrades gracefully if it fails. +// axis), faced, and the face revolved a full turn about the Y axis. +// Shape.revolve(profile: wire, ...) revolves the curve itself and returns a +// shell (BRepPrimAPI_MakeRevol on a wire), not a solid; facing the wire first +// with Shape.face(from:) and revolving the face closes the ends into a solid +// (OCCTSwiftScripts #100). The bolt circle is cut with Shape.circularPatternCut +// (OCCTSwift v1.3.1, #169), which patterns a single hole tool around the axis +// and subtracts the whole compound in one call. A small all-edge chamfer breaks +// sharp corners; it degrades gracefully if it fails. // // Run: swift run occtkit run recipes/03-pipe-flange/main.swift --format brep @@ -41,9 +45,11 @@ let section = Wire.polygon([ SIMD2(boreRadius, thickness + raisedHeight), // raised face → bore ])! -// ── Revolve a full turn about the Y axis (the bore axis) ────────────────────── -var flange = Shape.revolve(profile: section, axisOrigin: .zero, - axisDirection: SIMD3(0, 1, 0), angle: 2 * .pi)! +// ── Face the half-section, then revolve the face a full turn about the Y axis +// (the bore axis). Revolving the wire directly would only sweep out the curve +// and return a shell; revolving the face closes the ends into a solid. +let sectionFace = Shape.face(from: section)! +var flange = sectionFace.revolved(axisOrigin: .zero, axisDirection: SIMD3(0, 1, 0))! // ── Bolt circle: one axial hole tool, patterned + subtracted around the Y axis ─ let depth = thickness + raisedHeight + 2 diff --git a/recipes/03-pipe-flange/output.brep b/recipes/03-pipe-flange/output.brep index efcfb1c..574cf54 100644 --- a/recipes/03-pipe-flange/output.brep +++ b/recipes/03-pipe-flange/output.brep @@ -2,7 +2,7 @@ DBRep_DrawableShape CASCADE Topology V3, (c) Open Cascade Locations 0 -Curve2ds 50 +Curve2ds 52 2 0 0 -1 0 0 1 75 1 0 0 1 0 2 -42.426406871192839 -42.42640687119286 0.70710678118654768 -0.70710678118654735 -0.70710678118654735 -0.70710678118654768 7 @@ -27,33 +27,35 @@ Curve2ds 50 2 0 0 1 0 -0 1 75 1 6.2831853071795862 0 0 1 1 0 0 0 1 +2 42.426406871192839 -42.42640687119286 -0.70710678118654768 -0.70710678118654735 0.70710678118654735 -0.70710678118654768 7 +1 1.0146536357569551e-17 16 1 0 +1 6.2831853071795862 -0 0 1 +1 0 -0 0 1 +2 -1.3322676295501878e-14 -60 -1 2.2204460492503131e-16 -2.2204460492503131e-16 -1 7 +1 0 16 1 0 +2 -42.42640687119286 -42.426406871192846 -0.70710678118654746 0.70710678118654768 -0.70710678118654768 -0.70710678118654746 7 +1 0 16 1 0 +2 60 0 0 -1 1 0 7 +1 0 16 1 0 +2 42.426406871192853 42.426406871192846 0.70710678118654746 -0.70710678118654757 0.70710678118654757 0.70710678118654746 7 +1 -1.0146536357569526e-17 16 1 0 2 0 0 1 0 -0 1 25 1 0 0 1 0 1 6.2831853071795862 0 0 1 1 0 0 0 1 -2 -42.42640687119286 -42.426406871192846 -0.70710678118654746 0.70710678118654768 -0.70710678118654768 -0.70710678118654746 7 -1 0 16 1 0 -2 -1.3322676295501878e-14 -60 -1 2.2204460492503131e-16 -2.2204460492503131e-16 -1 7 -1 0 16 1 0 -2 42.426406871192839 -42.42640687119286 -0.70710678118654768 -0.70710678118654735 0.70710678118654735 -0.70710678118654768 7 -1 1.0146536357569551e-17 16 1 0 2 -60 7.3478807948841199e-15 1.2246467991473532e-16 1 -1 1.2246467991473532e-16 7 1 0 16 1 0 +2 6.6613381477509392e-15 60 1 -1.1102230246251565e-16 1.1102230246251565e-16 1 7 +1 0 16 1 0 2 -42.426406871192846 42.426406871192853 0.70710678118654757 0.70710678118654746 -0.70710678118654746 0.70710678118654757 7 1 1.0146536357569526e-17 16 1 0 2 0 0 1 0 -0 1 50 1 0 0 1 0 -2 60 0 0 -1 1 0 7 -1 0 16 1 0 -2 6.6613381477509392e-15 60 1 -1.1102230246251565e-16 1.1102230246251565e-16 1 7 -1 0 16 1 0 -2 42.426406871192853 42.426406871192846 0.70710678118654746 -0.70710678118654757 0.70710678118654757 0.70710678118654746 7 -1 -1.0146536357569526e-17 16 1 0 1 0 2 1 0 2 0 0 1 0 -0 1 50 1 6.2831853071795862 0 0 1 1 0 0 0 1 -Curves 25 +Curves 33 2 0 0 0 0 1 0 1 0 0 0 0 -1 75 2 42.426406871192839 0 42.42640687119286 0 1 0 -0.70710678118654768 0 0.70710678118654735 0.70710678118654735 -0 0.70710678118654768 7 2 -1.3322676295501878e-14 0 60 0 1 0 -1 0 -2.2204460492503131e-16 -2.2204460492503131e-16 0 1 7 @@ -66,17 +68,25 @@ Curves 25 2 -42.426406871192846 0 -42.426406871192853 0 1 0 0.70710678118654757 0 -0.70710678118654746 -0.70710678118654746 0 -0.70710678118654757 7 2 0 15 0 0 1 0 1 0 0 0 0 -1 75 1 75 0 0 0 1 0 +2 42.426406871192839 15 42.42640687119286 0 1 0 -0.70710678118654768 0 0.70710678118654735 0.70710678118654735 -0 0.70710678118654768 7 +1 37.476659402887002 -1 47.37615433949869 0 1 0 +2 -1.3322676295501878e-14 15 60 0 1 0 -1 0 -2.2204460492503131e-16 -2.2204460492503131e-16 0 1 7 +1 -7.0000000000000133 -1 60 0 1 0 +2 -42.42640687119286 15 42.426406871192846 0 1 0 -0.70710678118654746 0 -0.70710678118654768 -0.70710678118654768 0 0.70710678118654746 7 +1 -47.37615433949869 -1 37.476659402887009 0 1 0 +2 60 15 0 0 1 0 0 -0 1 1 0 -0 7 +1 60 -1 7 0 1 0 +2 42.426406871192853 15 -42.426406871192846 0 1 0 0.70710678118654746 -0 0.70710678118654757 0.70710678118654757 0 -0.70710678118654746 7 +1 47.376154339498683 -1 -37.476659402887016 0 1 0 2 0 17 0 0 1 0 1 0 0 0 0 -1 25 1 25 17 0 0 -1 0 -2 -42.42640687119286 15 42.426406871192846 0 1 0 -0.70710678118654746 0 -0.70710678118654768 -0.70710678118654768 0 0.70710678118654746 7 -2 -1.3322676295501878e-14 15 60 0 1 0 -1 0 -2.2204460492503131e-16 -2.2204460492503131e-16 0 1 7 -2 42.426406871192839 15 42.42640687119286 0 1 0 -0.70710678118654768 0 0.70710678118654735 0.70710678118654735 -0 0.70710678118654768 7 2 -60 15 -7.3478807948841199e-15 0 1 0 1.2246467991473532e-16 0 -1 -1 0 -1.2246467991473532e-16 7 +1 -60 -1 -7.0000000000000071 0 1 0 +2 6.6613381477509392e-15 15 -60 0 1 0 1 -0 1.1102230246251565e-16 1.1102230246251565e-16 0 -1 7 +1 7.0000000000000071 -1 -60 0 1 0 2 -42.426406871192846 15 -42.426406871192853 0 1 0 0.70710678118654757 0 -0.70710678118654746 -0.70710678118654746 0 -0.70710678118654757 7 +1 -37.476659402887016 -1 -47.376154339498683 0 1 0 2 0 15 0 0 1 0 1 0 0 0 0 -1 50 -2 60 15 0 0 1 0 0 -0 1 1 0 -0 7 -2 6.6613381477509392e-15 15 -60 0 1 0 1 -0 1.1102230246251565e-16 1.1102230246251565e-16 0 -1 7 -2 42.426406871192853 15 -42.426406871192846 0 1 0 0.70710678118654746 -0 0.70710678118654757 0.70710678118654757 0 -0.70710678118654746 7 2 0 17 0 0 1 0 1 0 0 0 0 -1 50 1 50 15 0 0 1 0 Polygon3D 0 @@ -98,7 +108,7 @@ Surfaces 14 2 0 15 0 0 1 0 1 0 0 0 0 -1 50 Triangulations 0 -TShapes 80 +TShapes 105 Ve 1e-07 75 0 0 @@ -114,11 +124,11 @@ Ed 0 0101000 -+80 0 -80 0 * ++105 0 -105 0 * Wi 0101100 --79 0 * +-104 0 * Ve 1.00000007105427e-07 37.476659402887 0 47.3761543394987 @@ -134,11 +144,11 @@ Ed 0 0101100 -+77 0 -77 0 * ++102 0 -102 0 * Wi 0101100 -+76 0 * ++101 0 * Ve 1e-07 -7.00000000000001 0 60 @@ -154,11 +164,11 @@ Ed 0 0101100 -+74 0 -74 0 * ++99 0 -99 0 * Wi 0101100 -+73 0 * ++98 0 * Ve 1e-07 -47.3761543394987 0 37.476659402887 @@ -174,11 +184,11 @@ Ed 0 0101100 -+71 0 -71 0 * ++96 0 -96 0 * Wi 0101100 -+70 0 * ++95 0 * Ve 1e-07 60 0 7 @@ -194,11 +204,11 @@ Ed 0 0101100 -+68 0 -68 0 * ++93 0 -93 0 * Wi 0101100 -+67 0 * ++92 0 * Ve 1.00000007105427e-07 47.3761543394987 0 -37.476659402887 @@ -214,11 +224,11 @@ Ed 0 0101100 -+65 0 -65 0 * ++90 0 -90 0 * Wi 0101100 -+64 0 * ++89 0 * Ve 1e-07 25 0 0 @@ -234,11 +244,11 @@ Ed 0 0101000 -+62 0 -62 0 * ++87 0 -87 0 * Wi 0101100 -+61 0 * ++86 0 * Ve 1e-07 -60 0 -7.00000000000001 @@ -254,11 +264,11 @@ Ed 0 0101100 -+59 0 -59 0 * ++84 0 -84 0 * Wi 0101100 -+58 0 * ++83 0 * Ve 1e-07 7.00000000000001 0 -60 @@ -274,11 +284,11 @@ Ed 0 0101100 -+56 0 -56 0 * ++81 0 -81 0 * Wi 0101100 -+55 0 * ++80 0 * Ve 1.00000007105427e-07 -37.476659402887 0 -47.3761543394987 @@ -294,16 +304,16 @@ Ed 0 0101100 -+53 0 -53 0 * ++78 0 -78 0 * Wi 0101100 -+52 0 * ++77 0 * Fa 0 1e-07 1 0 0101000 -+78 0 +75 0 +72 0 +69 0 +66 0 +63 0 +60 0 +57 0 +54 0 +51 0 ++103 0 +100 0 +97 0 +94 0 +91 0 +88 0 +85 0 +82 0 +79 0 +76 0 * Ve 1e-07 @@ -320,7 +330,7 @@ Ed 0 0101000 -+49 0 -49 0 * ++74 0 -74 0 * Ed 1e-07 1 1 0 1 12 0 0 15 @@ -328,56 +338,52 @@ Ed 0 0101000 -+80 0 -49 0 * ++105 0 -74 0 * Wi 0101100 -+79 0 -48 0 -47 0 +47 0 * ++104 0 -73 0 -72 0 +72 0 * Fa 0 1e-07 2 0 0101000 -+46 0 * ++71 0 * Ve -1e-07 -25 17 0 +1.00000007105427e-07 +37.476659402887 15 47.3761543394987 0 0 0101101 * Ed 1e-07 1 1 0 -1 13 0 0 6.28318530717959 -2 25 13 0 0 6.28318530717959 -2 26 8 0 0 6.28318530717959 +1 13 0 2.78178084688463e-16 6.28318530717959 +2 25 12 0 2.78178084688463e-16 6.28318530717959 +2 26 3 0 2.78178084688463e-16 6.28318530717959 0 -0101000 -+44 0 -44 0 * +0101100 ++69 0 -69 0 * Ed 1e-07 1 1 0 -1 14 0 0 17 -3 27 28CN 8 0 0 17 +1 14 0 1 16 +3 27 28CN 3 0 1 16 0 0101000 -+44 0 -62 0 * ++102 0 -69 0 * Wi 0101100 -+43 0 -61 0 -42 0 +42 0 * +-68 0 +67 0 +101 0 -67 0 * Fa -0 1e-07 8 0 +0 1e-07 3 0 0101000 -+41 0 * -Wi - -0101100 -+48 0 * ++66 0 * Ve 1e-07 --47.3761543394987 15 37.476659402887 +-7.00000000000001 15 60 0 0 0101101 @@ -386,135 +392,193 @@ Ed 1e-07 1 1 0 1 15 0 0 6.28318530717959 2 29 12 0 0 6.28318530717959 -2 30 5 0 0 6.28318530717959 +2 30 4 0 0 6.28318530717959 0 0101100 -+38 0 -38 0 * ++64 0 -64 0 * +Ed + 1e-07 1 1 0 +1 16 0 1 16 +3 27 28CN 4 0 1 16 +0 + +0101000 ++99 0 -64 0 * Wi 0101100 --37 0 * +-63 0 +62 0 +98 0 -62 0 * +Fa +0 1e-07 4 0 + +0101000 ++61 0 * Ve 1e-07 --7.00000000000001 15 60 +-47.3761543394987 15 37.476659402887 0 0 0101101 * Ed 1e-07 1 1 0 -1 16 0 0 6.28318530717959 +1 17 0 0 6.28318530717959 2 31 12 0 0 6.28318530717959 -2 32 4 0 0 6.28318530717959 +2 32 5 0 0 6.28318530717959 0 0101100 -+35 0 -35 0 * -Wi - -0101100 --34 0 * -Ve -1.00000007105427e-07 -37.476659402887 15 47.3761543394987 -0 0 - -0101101 -* ++59 0 -59 0 * Ed 1e-07 1 1 0 -1 17 0 2.78178084688463e-16 6.28318530717959 -2 33 12 0 2.78178084688463e-16 6.28318530717959 -2 34 3 0 2.78178084688463e-16 6.28318530717959 +1 18 0 1 16 +3 27 28CN 5 0 1 16 0 -0101100 -+32 0 -32 0 * +0101000 ++96 0 -59 0 * Wi 0101100 --31 0 * +-58 0 +57 0 +95 0 -57 0 * +Fa +0 1e-07 5 0 + +0101000 ++56 0 * Ve 1e-07 --60 15 -7.00000000000001 +60 15 7 0 0 0101101 * Ed 1e-07 1 1 0 -1 18 0 0 6.28318530717959 -2 35 12 0 0 6.28318530717959 -2 36 9 0 0 6.28318530717959 +1 19 0 0 6.28318530717959 +2 33 12 0 0 6.28318530717959 +2 34 6 0 0 6.28318530717959 0 0101100 -+29 0 -29 0 * ++54 0 -54 0 * +Ed + 1e-07 1 1 0 +1 20 0 1 16 +3 27 28CN 6 0 1 16 +0 + +0101000 ++93 0 -54 0 * Wi 0101100 --28 0 * +-53 0 +52 0 +92 0 -52 0 * +Fa +0 1e-07 6 0 + +0101000 ++51 0 * Ve 1.00000007105427e-07 --37.476659402887 15 -47.3761543394987 +47.3761543394987 15 -37.476659402887 0 0 0101101 * Ed 1e-07 1 1 0 -1 19 0 8.86511592917583e-17 6.28318530717959 -2 37 12 0 8.86511592917583e-17 6.28318530717959 -2 38 11 0 8.86511592917583e-17 6.28318530717959 +1 21 0 1.00875766104946e-16 6.28318530717959 +2 35 12 0 1.00875766104946e-16 6.28318530717959 +2 36 7 0 1.00875766104946e-16 6.28318530717959 0 0101100 -+26 0 -26 0 * ++49 0 -49 0 * +Ed + 1e-07 1 1 0 +1 22 0 1 16 +3 27 28CN 7 0 1 16 +0 + +0101000 ++90 0 -49 0 * Wi 0101100 --25 0 * +-48 0 +47 0 +89 0 -47 0 * +Fa +0 1e-07 7 0 + +0101000 ++46 0 * Ve 1e-07 -50 15 0 +25 17 0 0 0 0101101 * Ed 1e-07 1 1 0 -1 20 0 0 6.28318530717959 -2 39 12 0 0 6.28318530717959 -2 40 14 0 0 6.28318530717959 +1 23 0 0 6.28318530717959 +2 37 13 0 0 6.28318530717959 +2 38 8 0 0 6.28318530717959 0 0101000 -+23 0 -23 0 * ++44 0 -44 0 * +Ed + 1e-07 1 1 0 +1 24 0 0 17 +3 39 40CN 8 0 0 17 +0 + +0101000 ++44 0 -87 0 * Wi 0101100 --22 0 * ++43 0 -86 0 -42 0 +42 0 * +Fa +0 1e-07 8 0 + +0101000 ++41 0 * Ve 1e-07 -60 15 7 +-60 15 -7.00000000000001 0 0 0101101 * Ed 1e-07 1 1 0 -1 21 0 0 6.28318530717959 +1 25 0 0 6.28318530717959 2 41 12 0 0 6.28318530717959 -2 42 6 0 0 6.28318530717959 +2 42 9 0 0 6.28318530717959 0 0101100 -+20 0 -20 0 * ++39 0 -39 0 * +Ed + 1e-07 1 1 0 +1 26 0 1 16 +3 27 28CN 9 0 1 16 +0 + +0101000 ++84 0 -39 0 * Wi 0101100 --19 0 * +-38 0 +37 0 +83 0 -37 0 * +Fa +0 1e-07 9 0 + +0101000 ++36 0 * Ve 1e-07 7.00000000000001 15 -60 @@ -524,42 +588,124 @@ Ve * Ed 1e-07 1 1 0 -1 22 0 0 6.28318530717959 +1 27 0 0 6.28318530717959 2 43 12 0 0 6.28318530717959 2 44 10 0 0 6.28318530717959 0 0101100 -+17 0 -17 0 * ++34 0 -34 0 * +Ed + 1e-07 1 1 0 +1 28 0 1 16 +3 27 28CN 10 0 1 16 +0 + +0101000 ++81 0 -34 0 * Wi 0101100 --16 0 * +-33 0 +32 0 +80 0 -32 0 * +Fa +0 1e-07 10 0 + +0101000 ++31 0 * Ve 1.00000007105427e-07 -47.3761543394987 15 -37.476659402887 +-37.476659402887 15 -47.3761543394987 +0 0 + +0101101 +* +Ed + 1e-07 1 1 0 +1 29 0 8.86511592917583e-17 6.28318530717959 +2 45 12 0 8.86511592917583e-17 6.28318530717959 +2 46 11 0 8.86511592917583e-17 6.28318530717959 +0 + +0101100 ++29 0 -29 0 * +Ed + 1e-07 1 1 0 +1 30 0 1 16 +3 27 28CN 11 0 1 16 +0 + +0101000 ++78 0 -29 0 * +Wi + +0101100 +-28 0 +27 0 +77 0 -27 0 * +Fa +0 1e-07 11 0 + +0101000 ++26 0 * +Wi + +0101100 ++73 0 * +Wi + +0101100 +-58 0 * +Wi + +0101100 +-63 0 * +Wi + +0101100 +-68 0 * +Wi + +0101100 +-38 0 * +Wi + +0101100 +-28 0 * +Ve +1e-07 +50 15 0 0 0 0101101 * Ed 1e-07 1 1 0 -1 23 0 1.00875766104946e-16 6.28318530717959 -2 45 12 0 1.00875766104946e-16 6.28318530717959 -2 46 7 0 1.00875766104946e-16 6.28318530717959 +1 31 0 0 6.28318530717959 +2 47 12 0 0 6.28318530717959 +2 48 14 0 0 6.28318530717959 0 +0101000 ++18 0 -18 0 * +Wi + +0101100 +-17 0 * +Wi + 0101100 -+14 0 -14 0 * +-53 0 * Wi 0101100 --13 0 * +-33 0 * +Wi + +0101100 +-48 0 * Fa 0 1e-07 12 0 0101000 -+39 0 +36 0 +33 0 +30 0 +27 0 +24 0 +21 0 +18 0 +15 0 +12 0 ++24 0 +23 0 +22 0 +21 0 +20 0 +19 0 +16 0 +15 0 +14 0 +13 0 * Ve 1e-07 @@ -570,17 +716,17 @@ Ve * Ed 1e-07 1 1 0 -1 24 0 0 6.28318530717959 -2 47 14 0 0 6.28318530717959 -2 48 13 0 0 6.28318530717959 +1 32 0 0 6.28318530717959 +2 49 14 0 0 6.28318530717959 +2 50 13 0 0 6.28318530717959 0 0101000 -+10 0 -10 0 * ++11 0 -11 0 * Wi 0101100 -+9 0 * ++10 0 * Wi 0101100 @@ -589,28 +735,33 @@ Fa 0 1e-07 13 0 0101000 -+8 0 +7 0 * ++9 0 +8 0 * Ed 1e-07 1 1 0 -1 25 0 0 2 -3 49 50CN 14 0 0 2 +1 33 0 0 2 +3 51 52CN 14 0 0 2 0 0101000 -+23 0 -10 0 * ++18 0 -11 0 * Wi 0101100 -+22 0 -9 0 -5 0 +5 0 * ++17 0 -10 0 -6 0 +6 0 * Fa 0 1e-07 14 0 0101000 -+4 0 * ++5 0 * Sh -0101000 -+50 0 +45 0 +40 0 +11 0 +6 0 +3 0 * +0101100 ++75 0 +70 0 -65 0 -60 0 -55 0 -50 0 -45 0 +40 0 -35 0 -30 0 +-25 0 +12 0 +7 0 +4 0 * +So + +0100000 ++3 0 * Co 1100000 diff --git a/recipes/03-pipe-flange/output.png b/recipes/03-pipe-flange/output.png index 50f6ed53a4eae031887ceab83b64d8ddc56ca1b5..a4e40e05a660d0c4b08cc0323cfc0b9926ea9391 100644 GIT binary patch literal 22126 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 Zqkwrx()X!?a0>A6#x))F5>>m${||A%P`3a8 literal 51022 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 JQNlW({~x2nUOWH* From 5806dec533b68f15202d89a67603f49997ad1382 Mon Sep 17 00:00:00 2001 From: gsdali <51393997+gsdali@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:28:25 +1000 Subject: [PATCH 3/7] fix: cap the helical spring pipe sweep into a solid Shape.sweep(profile:along:) wraps BRepOffsetAPI_MakePipe, which never caps the ends of the swept tube: it returns a shell even for a closed circular profile. Switch to Shape.pipeShell(spine:profile:mode:solid:), which wraps BRepOffsetAPI_MakePipeShell and has an explicit solid: flag that caps the ends into a genuine solid. This is the documented canonical spring recipe in the OCCTSwift cookbook (Helices & Springs), reached independently of the recipe 03 fix since this is a pipe sweep, not a revolve. Regenerated the committed output.brep and output.png. Volume drops from 9729.67 to 8575.15 mm^3 (-11.9%). Unlike recipe 03, this is not a hidden second bug: an open (uncapped) shell has no well-defined enclosed volume, so Shape.volume on the old shell was already reading an artifact of the algorithm, not a physical quantity. The new, capped-solid volume matches the analytic round-wire coil formula pi * r^2 * L (r = 2mm, L = coil length over 6 turns at mean radius 18mm and pitch 12mm) to within 0.06%, the old one was off by 13%. Part of #100. --- recipes/02-helical-spring/README.md | 19 +- recipes/02-helical-spring/main.swift | 15 +- recipes/02-helical-spring/output.brep | 258 ++++++++++++++------------ recipes/02-helical-spring/output.png | Bin 95132 -> 44437 bytes 4 files changed, 163 insertions(+), 129 deletions(-) diff --git a/recipes/02-helical-spring/README.md b/recipes/02-helical-spring/README.md index 45a9fb9..60e69a9 100644 --- a/recipes/02-helical-spring/README.md +++ b/recipes/02-helical-spring/README.md @@ -20,24 +20,29 @@ Mean coil radius is derived: `meanRadius = (outsideDia − wireDia) / 2`. The coil centre-line is a helix about Z (`Wire.helix`). The wire cross-section is a circle placed at the helix start point `(meanRadius, 0, 0)` and oriented along the start -tangent `(0, R, pitch/2π)`. The section is then swept along the helix with `Shape.sweep` -(which wraps `BRepOffsetAPI_MakePipe`). `sweep` orientation-normalises its result, so the -solid comes back with positive volume regardless of the section's sense. +tangent `(0, R, pitch/2π)`. The section is then swept along the helix with +`Shape.pipeShell(spine:profile:mode:solid:)` (which wraps +`BRepOffsetAPI_MakePipeShell`), passing `solid: true` so the swept ends are capped into +a genuine solid rather than an open tube surface (see Gotchas). `mode: .correctedFrenet` +keeps the round section true along the coil. ## OCCTSwift APIs used - `Wire.helix(radius:pitch:turns:)`: the coil centre-line - `Wire.circle(origin:normal:radius:)`: the wire cross-section -- `Shape.sweep(profile:along:)`: pipe-sweep the section along the helix +- `Shape.pipeShell(spine:profile:mode:solid:)`: pipe-sweep the section along the helix into a capped solid - `Shape.volume`: sanity print ## Gotchas +- **Use `Shape.pipeShell(..., solid: true)`, not `Shape.sweep`, for a spring.** + `Shape.sweep(profile:along:)` wraps `BRepOffsetAPI_MakePipe`, which never caps the + ends of the swept tube, it returns a **shell** even for a closed circular profile + (OCCTSwiftScripts #100). `Shape.pipeShell` wraps `BRepOffsetAPI_MakePipeShell`, which + has an explicit `solid:` flag that caps the ends into a real solid. This is the + documented canonical spring recipe (OCCTSwift cookbook, Helices & Springs). - The section circle **must** sit on the spine start and face along the tangent, or the pipe sweep fails. Don't leave it at the origin. -- `Shape.sweep` orientation-normalises since OCCTSwift v1.3.1, so you no longer need to - flip the section sense to avoid a negative-volume solid. Use `Shape.signedVolume` if you - need to inspect the raw orientation, or `Shape.orientedForward()` to normalise explicitly. - Ground/closed/squared ends are **out of scope**: this is an open-coil spring. Closed ends need either a variable-pitch helix or an end-grinding boolean. - `Wire.helix` uses `turns:` (a coil count), **not** a `height:`. Free length ≈ `pitch · diff --git a/recipes/02-helical-spring/main.swift b/recipes/02-helical-spring/main.swift index ad00880..6545c0b 100644 --- a/recipes/02-helical-spring/main.swift +++ b/recipes/02-helical-spring/main.swift @@ -4,11 +4,16 @@ // Outputs: one solid body: a constant-pitch round-wire compression spring. // Notes: The coil centre-line is a helix (Wire.helix); the wire cross-section is a // circle placed at the helix start and oriented along the start tangent, then -// swept along the path (Shape.sweep → BRepOffsetAPI_MakePipe). The section +// swept along the path with Shape.pipeShell(..., solid: true) (OCCTSwiftScripts +// #100). Shape.sweep wraps BRepOffsetAPI_MakePipe, which never caps the ends of +// the swept tube and so returns a shell even for a closed circular profile; +// Shape.pipeShell wraps BRepOffsetAPI_MakePipeShell, which has an explicit +// `solid:` flag that caps the ends into a genuine solid. This is the documented +// canonical spring recipe (OCCTSwift cookbook, Helices & Springs). The section // MUST sit on the spine start and face along the tangent or the pipe fails. -// Shape.sweep orientation-normalises its result (OCCTSwift v1.3.1, #170), so the -// solid has positive volume regardless of section sense. Ground/closed ends are -// out of scope here; this is an open-coil spring. +// `mode: .correctedFrenet` keeps the round section true along the coil (plain +// .frenet also builds a valid solid but lets the section twist slightly). +// Ground/closed ends are out of scope here; this is an open-coil spring. // // Run: swift run occtkit run recipes/02-helical-spring/main.swift --format brep @@ -39,7 +44,7 @@ let tLen = (t.x * t.x + t.y * t.y + t.z * t.z).squareRoot() let tangent = SIMD3(t.x / tLen, t.y / tLen, t.z / tLen) let section = Wire.circle(origin: SIMD3(meanRadius, 0, 0), normal: tangent, radius: wireDia / 2)! -let spring = Shape.sweep(profile: section, along: path)! +let spring = Shape.pipeShell(spine: path, profile: section, mode: .correctedFrenet, solid: true)! try ctx.add(spring, color: C.steel, name: "Compression spring") print("Free length ≈ \(pitch * activeCoils) mm, spring volume: \(spring.volume ?? 0) mm³") diff --git a/recipes/02-helical-spring/output.brep b/recipes/02-helical-spring/output.brep index 8c7f939..56bba28 100644 --- a/recipes/02-helical-spring/output.brep +++ b/recipes/02-helical-spring/output.brep @@ -39,132 +39,134 @@ Curve2ds 24 1 0 0 0 1 1 0 6.2831853071795862 1 0 Curves 13 -7 1 0 9 19 3 -15.33436018494295 0.7919759069610679 7.465407333532827 1.6690784610682365 -15.343646259983883 6.1551670372370495 6.8996549934860383 1.6690784610682248 -13.246460057477288 11.634001816198964 6.3215890780833988 1.6690784610682914 -8.9453390743402608 16.282433873999352 5.732002004789706 1.6690784610681222 -2.8190847531960119 19.081218232206748 5.1277568522507506 1.6690784610683778 4.1641568253474617 19.233359951592021 4.5137981346447784 1.669078461068116 10.684494759716259 16.547393638430481 3.8842892685871533 1.6690784610683136 15.522617334694585 11.612891253369121 3.2434474148041144 1.6690784610682001 18.002191582319647 5.4469051320668758 2.5891607306685405 1.6690784610682476 18.01199040249012 -0.8404260746955905 1.9220394065928479 1.6690784610682365 18.02184176246864 -7.1277419380158893 1.2549196307366426 1.6690784610682219 15.562286928667723 -13.536563922193306 0.57496266385126482 1.6690784610682809 10.529674505531396 -18.959722212172782 -0.11845214619857281 1.6690784610681595 3.3846445061657491 -22.202647482647116 -0.8231645489625059 1.6690784610683351 -4.7290125037339674 -22.354709057345147 -1.5434705641623749 1.6690784610681413 -12.267919208672714 -19.224543215878736 -2.2734289495233737 1.6690784610683038 -17.837253490720528 -13.515465353116038 -3.0180627740799366 1.6690784610682032 -20.678999521460312 -6.4198508615514793 -3.7741873932812937 1.6690784610682463 -20.688226218449401 0.79112568573515041 -4.5426058127385192 1.6690784610682365 - 0 10 3.1415926535897931 9 6.2831853071795862 10 -7 1 1 6 6 2 -15.33436018494295 0.7919759069610679 7.465407333532827 1.6690784610682365 -18.462461367543298 1.0246292718067047 8.5625659233241365 1.0367296232096095 -20.291880826845855 0.64993307188286886 4.8713382783415966 1.0383466998475139 -17.853075129661661 0.047277213715821276 0.44223072795767848 0.85353433019613967 -13.137394276972596 0.11781621491241623 2.3619544970872575 1.0383466998475139 -12.206259002342584 0.55932254211543997 6.3682487437415247 1.036729623209609 +7 1 0 8 17 3 -17.981645427977348 0.84042479581638307 7.9220273534400798 1.6690784610682365 -17.651525746634203 7.9017901844604577 7.1720282178533461 1.6690784610682363 -14.151654723836403 14.815211272597905 6.4220176486073202 1.669078461068235 -7.565719127310512 19.920196011290212 5.6720540063761264 1.669078461068239 1.010800390546561 21.610435431606462 4.921990994118576 1.6690784610682357 9.3897650711165497 19.12810248963525 4.1720538760121739 1.6690784610682354 15.471968343321269 13.430437818599531 3.422017899710359 1.6690784610682377 18.311649940172344 6.2209404266564272 2.6720280296821808 1.6690784610682368 17.981645427977362 -0.84042479581636342 1.9220273534400825 1.6690784610682365 17.651520194607123 -7.901790183108985 1.1720282305890279 1.669078461068231 14.151676524040745 -14.8152112779044 0.4220175986002514 1.6690784610682536 7.5656689223818292 -19.920195999070245 -0.32794587845969753 1.6690784610682063 -1.0107178972447652 -21.610435451684385 -1.0780091951113446 1.6690784610682667 -9.3898681877429553 -19.128102464538504 -1.8279458874503698 1.6690784610682168 -15.471867933466303 -13.430437843037685 -2.5779823306181822 1.6690784610682459 -18.311726240884774 -6.2209404080857142 -3.3279717952927421 1.6690784610682345 -17.981601011762418 0.84042478500589646 -4.0779727484456618 1.6690784610682365 + 0 9 3.1415926535897931 8 6.2831853071795862 9 +7 1 1 6 6 2 -17.981645427977348 0.84042479581638307 7.9220273534400798 1.6690784610682365 -21.302697966129521 0.95666423173145976 7.922010511520071 1.0367296232096095 -21.794689359051336 0.54006415268315333 3.8358481100945641 1.0383466998475139 -18.009281437167871 0.049761820772909499 0.46564759779054737 0.85353433019613967 -14.198891036479008 0.27420527144072698 3.8358866303607408 1.0383466998475139 -14.660592889825161 0.72418535990130772 7.9220441953600975 1.036729623209609 0 6 6.2831853071795862 6 -7 1 1 6 6 2 -20.688226218449401 0.79112568573515041 -4.5426058127385192 1.6690784610682365 -23.816056971873621 0.78828666043748186 -5.6649107114989006 1.0367296232096095 -22.883927741871624 0.37981371503255712 -9.6744766828783177 1.0383466998475139 -18.167768369691117 0.046492600722604749 -11.565164075288306 0.85353433019613967 -15.730059708405067 0.38630703705804104 -7.1075791196853082 1.0383466998475139 -17.560395465025167 0.79396471103282185 -3.420300913978136 1.036729623209609 +7 1 1 6 6 2 -17.981601011762418 0.84042478500589646 -4.0779727484456618 1.6690784610682365 -21.30265348157679 0.95666617457940151 -4.0779711775688918 1.0367296232096095 -21.794667774331305 0.54006638495909953 -8.1641308512000208 1.0383466998475139 -18.00927882622068 0.049761826232070309 -11.534352350757937 0.85353433019613967 -14.198869608058903 0.27420303537561397 -8.1641344440558967 1.0383466998475139 -14.660548541948049 0.72418339543239341 -4.0779743193224256 1.036729623209609 0 6 6.2831853071795862 6 -7 1 0 9 19 3 -20.68822621844939 0.79112568573516828 -4.5426058127385183 1.6690784610682365 -20.697502373664047 8.0020859267435824 -5.3110403309267227 1.6690784610682248 -17.87460671315522 15.326294039171907 -6.0913427783722476 1.6690784610682914 -12.122194104924988 21.495369111979837 -6.8854746999082597 1.6690784610681222 -3.9952386720332944 25.149829743936827 -7.6862298942756908 1.6690784610683778 5.1825278496042113 25.284133649624284 -8.5066453186561795 1.669078461068116 13.65735276390479 21.729271876896366 -9.3296928308491935 1.6690784610683136 19.883798938124222 15.307686569113526 -10.169051579975578 1.6690784610682001 23.044253031030053 7.3769180914753116 -11.016610787945169 1.6690784610682476 23.051839759156319 -0.64980803724873404 -11.874493271661178 1.6690784610682365 23.059467112274572 -8.6765187931633605 -12.732407628915684 1.6690784610682219 19.914512476258761 -16.795058827233131 -13.599840494707257 1.6690784610682809 13.53769876348224 -23.594496226646175 -14.479866193042149 1.6690784610681595 4.5798593363311095 -27.580027928776193 -15.361070602319076 1.6690784610683351 -5.471962138118915 -27.68096173627141 -16.263715509660255 1.6690784610681413 -14.691213830693888 -23.77029685386503 -17.161666129103846 1.6690784610683038 -21.424254475133395 -16.781131863723637 -18.075666897423481 1.6690784610682032 -24.822889347097895 -8.2068064658876398 -18.993624132182703 1.6690784610682463 -24.827958977815964 0.4329074026988029 -19.918733591844209 1.6690784610682365 - 0 10 3.1415926535897931 9 6.2831853071795862 10 -7 1 1 6 6 2 -24.827958977815964 0.4329074026988029 -19.918733591844209 1.6690784610682365 -26.542839309752694 0.24777393751153601 -22.759123110047124 1.0367296232096095 -23.270156136415309 -0.0024170231958509092 -25.276916520462354 1.0383466998475139 -18.406689281263905 0.024868259754237787 -23.768968687463175 0.85353433019613967 -19.347940212669421 0.42101393676838672 -18.780474296208389 1.0383466998475139 -23.113078645879256 0.61804086788606893 -17.078344073641304 1.036729623209609 +7 1 0 8 17 3 -17.981601011762422 0.84042478500591256 -4.07797274844566 1.6690784610682365 -17.651481334665629 7.9017727274930616 -4.8279718841551205 1.6690784610682363 -14.151618145018965 14.81517639586642 -5.5779824533658111 1.669078461068235 -7.5656981997410986 19.920147745521252 -6.3279460959010763 1.669078461068239 1.0108003775285432 21.610382094554989 -7.0780091074318774 1.6690784610682357 9.389744120056351 19.128054234098531 -7.8279462265800586 1.6690784610682354 15.471931747499729 13.430402959655801 -8.5779822016559137 1.6690784610682377 18.311605519702333 6.2209229913777149 -9.3279720727810709 1.6690784610682368 17.981601011762443 -0.84042478500589224 -10.077972748445656 1.6690784610682365 17.651475782638656 -7.9017727261383994 -10.827971871388556 1.669078461068231 14.151639945222831 -14.815176401185434 -11.577982503494111 1.6690784610682536 7.5656479948134034 -19.920147733272273 -12.327945980457901 1.6690784610682063 -1.0107178842281845 -21.610382114680867 -13.078009297119898 1.6690784610682667 -9.3898472366811685 -19.128054208941528 -13.82794598947036 1.6690784610682168 -15.471831337646179 -13.430402984152828 -14.577982432541411 1.6690784610682459 -18.311681820413739 -6.2209229727621693 -15.327971897332898 1.6690784610682345 -17.981556595548057 0.84042477416930628 -16.077972850577659 1.6690784610682365 + 0 9 3.1415926535897931 8 6.2831853071795862 9 +7 1 1 6 6 2 -17.981556595548057 0.84042477416930628 -16.077972850577659 1.6690784610682365 -21.302608996921393 0.95666811740119206 -16.077952866904482 1.0367296232096095 -21.794646189493321 0.54006861722236821 -20.164109812614274 1.0383466998475139 -18.009276215273218 0.049761831689707277 -23.534352299320901 0.85353433019613967 -14.198848179756961 0.2742007992979073 -20.164155518591343 1.0383466998475139 -14.660504194174742 0.72418143093741028 -16.077992834250825 1.036729623209609 0 6 6.2831853071795862 6 -7 1 0 9 19 3 -24.827958977815968 0.43290740269881267 -19.918733591844216 1.6690784610682365 -24.833055675883486 9.0726086196943054 -20.843886993205345 1.6690784610682248 -21.444777165957674 17.772051013274933 -21.775102544954663 1.6690784610682914 -14.611574995944872 25.012989467063765 -22.716209828155428 1.6690784610681222 -5.0705191247153039 29.210626652850149 -23.6529141836223 1.6690784610683778 5.5636561462608034 29.266458646558164 -24.610345922703363 1.669078461068116 15.249271456457757 25.110260937867203 -25.556302912075843 1.6690784610683136 22.279475686148231 17.764449653030773 -26.516182439223456 1.6690784610682001 25.808065262736569 8.8130056576317717 -27.475314331020328 1.6690784610682476 25.81003338866708 -0.16564783853246023 -28.437595642004052 1.6690784610682365 25.812011876557854 -9.1442928756144912 -29.399927852760097 1.6690784610682219 22.287441492314876 -18.143653105580867 -30.36416086907845 1.6690784610682809 15.218938360357333 -25.585887796398303 -31.334434175748317 1.6690784610681595 5.4101576683968489 -29.8519984660355 -32.295234945519333 1.6690784610683351 -5.4469464896555824 -29.856241962040102 -33.273639532280868 1.6690784610681413 -15.26662736608546 -25.593335494457204 -34.235123342631979 1.6690784610683038 -22.350006208829512 -18.143286821035634 -35.206782983192582 1.6690784610682032 -25.885211574595594 -9.12501885759281 -36.173077832005433 1.6690784610682463 -25.883854472099124 -0.1208902006147201 -37.138153038280777 1.6690784610682365 - 0 10 3.1415926535897931 9 6.2831853071795862 10 -7 1 1 6 6 2 -25.883854472099124 -0.1208902006147201 -37.138153038280777 1.6690784610682365 -25.411261294467828 -0.35278714951684842 -40.419278007168558 1.0367296232096095 -21.276126544774648 -0.32412521248165049 -40.308944772642533 1.0383466998475139 -18.461929598833933 -0.0078292085509965581 -36.077135066119283 0.85353433019613967 -22.357025574426338 0.20626159568988056 -32.804467427428705 1.0383466998475139 -26.356447649730448 0.11100674828741708 -33.857028069393003 1.036729623209609 +7 1 0 8 17 3 -17.981556595548064 0.84042477416931349 -16.077972850577655 1.6690784610682365 -17.651436922707909 7.9017552704998106 -16.827971986409722 1.6690784610682363 -14.151581566222374 14.815141519113631 -17.577982555585621 1.669078461068235 -7.565677272200511 19.920099479740987 -18.327946198423724 1.669078461068239 1.0108003644792891 21.610328757503691 -19.078009209229581 1.6690784610682357 9.3897231689679561 19.128005978575185 -19.827946329417752 1.6690784610682354 15.471895151658197 13.430368100733737 -20.577982303268872 1.6690784610682377 18.311561099222587 6.220905556125448 -21.327972175490466 1.6690784610682368 17.981556595548085 -0.84042477416929595 -22.077972850577652 1.6690784610682365 17.651431370681003 -7.9017552691418027 -22.827971973612428 1.669078461068231 14.151603366425944 -14.815141524445746 -23.57798260583461 1.6690784610682536 7.5656270672735495 -19.920099467461998 -24.327946082702546 1.6690784610682063 -1.0107178711801446 -21.610328777678635 -25.078009399374526 1.6690784610682667 -9.3898262855912904 -19.128005953357086 -25.827946091736706 1.6690784610682168 -15.471794741806017 -13.430368125290087 -26.577982534710866 1.6690784610682459 -18.311637399933009 -6.2209055374649322 -27.327971999619319 1.6690784610682345 -17.98151217933427 0.84042476330658145 -28.077972952955907 1.6690784610682365 + 0 9 3.1415926535897931 8 6.2831853071795862 9 +7 1 1 6 6 2 -17.98151217933427 0.84042476330658145 -28.077972952955907 1.6690784610682365 -21.302564512163315 0.95667006019682888 -28.077934556486706 1.0367296232096095 -21.794624604537383 0.54007084947294304 -32.16408877414819 1.0383466998475139 -18.009273604325458 0.049761837145803046 -35.53435224789834 0.85353433019613967 -14.198826751573165 0.27419856320759906 -32.1641765932456 1.0383466998475139 -14.660459846505233 0.72417946641632991 -28.078011349425104 1.036729623209609 0 6 6.2831853071795862 6 -7 1 0 9 19 3 -25.883854472099131 -0.12089020061470013 -37.138153038280777 1.6690784610682365 -25.882489821148685 8.8832351735196724 -38.103280183133748 1.6690784610682248 -22.344509372568691 17.866650329004255 -39.065925737912913 1.6690784610682914 -15.289156662309743 25.24656706746919 -40.030057698124786 1.6690784610681222 -5.5592773337444141 29.42955622454884 -40.980749102569312 1.6690784610683778 5.1354057010545411 29.381723927426762 -41.943873554581138 1.669078461068116 14.74126318630087 25.163342265297647 -42.886598974151504 1.6690784610683136 21.627643827038497 17.873587202892327 -43.834570136302546 1.6690784610682001 25.045356695620381 9.106561070182007 -44.773183239330208 1.6690784610682476 25.040837342321705 0.3933843056650983 -45.706349473999239 1.6690784610682365 25.036293407987753 -8.3197947340156873 -46.639562645980945 1.6690784610682219 21.609344203578011 -16.973256206965221 -47.56620042400467 1.6690784610682809 14.814063994790557 -24.03448795424492 -48.489597864312408 1.6690784610681595 5.5005365262359254 -27.992427064241298 -49.397149773661056 1.6690784610683351 -4.6652638378442415 -27.898087736260084 -50.310518083388104 1.6690784610681413 -13.734275168638735 -23.870286514332033 -51.202381372633837 1.6690784610683038 -20.196394332325617 -16.986715014790494 -52.093950272151361 1.6690784610682032 -23.386169989106946 -8.7597788095030573 -52.973256123802472 1.6690784610682463 -23.37901911071296 -0.62014528077302133 -53.843521314559368 1.6690784610682365 - 0 10 3.1415926535897931 9 6.2831853071795862 10 -7 1 1 6 6 2 -23.37901911071296 -0.62014528077302133 -53.843521314559368 1.6690784610682365 -20.932398411859303 -0.74215410107286539 -56.088975070846161 1.0367296232096095 -17.802439392693191 -0.44001183948491374 -53.401150500771152 1.0383466998475139 -18.308540117168594 -0.036832042470852595 -48.350480336047056 0.85353433019613967 -23.398266976517984 -0.16095741865715496 -48.265425100622316 1.0383466998475139 -25.82563980956661 -0.49813646047316285 -51.598067558272582 1.036729623209609 +7 1 0 8 17 3 -17.981512179334274 0.84042476330659777 -28.077972952955911 1.6690784610682365 -17.651392510760992 7.9017378134806817 -28.827972088910567 1.6690784610682363 -14.151544987446817 14.815106642339725 -29.577982658051724 1.669078461068235 -7.5656563446885654 19.920051213949069 -30.327946301192675 1.669078461068239 1.010800351398685 21.610275420453149 -31.078009311273391 1.6690784610682357 9.3897022178514007 19.127957723064561 -31.827946432501822 1.6690784610682354 15.471858555796647 13.430333241833845 -32.577982405128026 1.6690784610682377 18.311516678733131 6.2208881208994775 -33.327972278446104 1.6690784610682368 17.981512179334292 -0.84042476330657978 -34.077972952955911 1.6690784610682365 17.651386958734061 -7.9017378121194062 -34.827972076082553 1.669078461068231 14.151566787650477 -14.815106647684685 -35.577982708421388 1.6690784610682536 7.5656061397615959 -19.920051201640543 -36.327946185193419 1.6690784610682063 -1.0107178580999587 -21.610275440676507 -37.078009501875435 1.6690784610682667 -9.3898053344737917 -19.127957697786055 -37.8279461942493 1.6690784610682168 -15.471758145945618 -13.430333266449047 -38.577982637126595 1.6690784610682459 -18.311592979442608 -6.2208881021941487 -39.327972102151982 1.6690784610682345 -17.98146776312106 0.84042475241772485 -40.077973055580415 1.6690784610682365 + 0 9 3.1415926535897931 8 6.2831853071795862 9 +7 1 1 6 6 2 -17.98146776312106 0.84042475241772485 -40.077973055580415 1.6690784610682365 -21.302520027302581 0.95667200296628163 -40.077916246315567 1.0367296232096095 -21.79460301946348 0.54007308171081425 -44.164067735801787 1.0383466998475139 -18.009270993377413 0.049761842600367923 -47.534352196490246 0.85353433019613967 -14.198805323507534 0.27419632710468295 -44.164197668018659 1.0383466998475139 -14.660415498939546 0.7241775018691734 -40.078029864845256 1.036729623209609 0 6 6.2831853071795862 6 -7 1 0 9 19 3 -23.379019110712967 -0.6201452807730039 -53.843521314559368 1.6690784610682365 -23.371829477309433 7.5194958165401777 -54.713822982903466 1.6690784610682248 -20.167440653252903 15.56736634959719 -55.574220126475787 1.6690784610682914 -13.84891037718463 22.090606946000495 -56.427027018768278 1.6690784610681222 -5.240766398980961 25.707739251661071 -57.263426130715651 1.6690784610683778 4.0911951748167974 25.577870103823962 -58.098348588772026 1.669078461068116 12.362769114340839 21.864541758553365 -58.913160925132587 1.6690784610683136 18.222702226431739 15.585807410655619 -59.722172974170007 1.6690784610682001 21.10060349149143 8.1250004744868853 -60.517443095504262 1.6690784610682476 21.091657842035357 0.77480237949982866 -61.301130130116334 1.6690784610682365 21.082663770535806 -6.575407697312059 -62.084838940526645 1.6690784610682219 18.186482216942441 -13.812476106711713 -62.856465923507422 1.6690784610682809 12.505936556877963 -19.640984074240212 -63.617035436348445 1.6690784610681595 4.8101764364594217 -22.841186312628242 -64.362543031008158 1.6690784610683351 -3.4799599609242722 -22.690896430372316 -65.099452642635882 1.6690784610681413 -10.786241772704578 -19.379362359069127 -65.819985701007624 1.6690784610683038 -15.936094367086207 -13.833780338421825 -66.52988710731303 1.6690784610682032 -18.4544529136524 -7.2760464326348693 -67.226165798566242 1.6690784610682463 -18.444757966731014 -0.83937004179244967 -67.90966601067079 1.6690784610682365 - 0 10 3.1415926535897931 9 6.2831853071795862 10 -7 1 1 6 6 2 -18.444757966731014 -0.83937004179244967 -67.90966601067079 1.6690784610682365 -15.129122256127143 -0.74446992696344338 -68.110801215660985 1.0367296232096095 -14.417980187777893 -0.29773688575525892 -64.060240652490435 1.0383466998475139 -18.01579896186416 -0.049041156271865116 -60.465548522719359 0.85353433019613967 -22.001389326760815 -0.5147891981619761 -63.600211057919552 1.0383466998475139 -21.760393677334871 -0.93427015662147106 -67.708530805680596 1.036729623209609 +7 1 0 8 17 3 -17.981467763121064 0.84042475241774195 -40.077973055580415 1.6690784610682365 -17.651348098824968 7.901720356435602 -40.827972191657778 1.6690784610682363 -14.151508408692141 14.815071765544909 -41.577982760763661 1.669078461068235 -7.5656354172054607 19.920002948145257 -42.32794640420866 1.669078461068239 1.0108003382870434 21.610222083403336 -43.078009413562462 1.6690784610682357 9.3896812667062655 19.127909467567058 -43.827946535833028 1.6690784610682354 15.471821959915417 13.430298382955772 -44.577982507232939 1.6690784610682377 18.311472258233881 6.2208706856998877 -45.327972381648166 1.6690784610682368 17.981467763121088 -0.84042475241772407 -46.077973055580415 1.6690784610682365 17.651342546798109 -7.9017203550710597 -46.827972178798916 1.669078461068231 14.151530208895462 -14.815071770902657 -47.577982811254472 1.6690784610682536 7.5655852122792089 -19.920002935807194 -48.327946287930438 1.6690784610682063 -1.0107178449892711 -21.610222103675376 -49.078009604622707 1.6690784610682667 -9.3897843833276742 -19.127909442227619 -49.827946297008062 1.6690784610682168 -15.47172155006535 -13.430298407630239 -50.577982739788581 1.6690784610682459 -18.311548558942498 -6.2208706669496099 -51.327972204930916 1.6690784610682345 -17.981423346908429 0.84042474150274549 -52.077973158451172 1.6690784610682365 + 0 9 3.1415926535897931 8 6.2831853071795862 9 +7 1 1 6 6 2 -17.981423346908429 0.84042474150274549 -52.077973158451172 1.6690784610682365 -21.302475542339199 0.95667394570956743 -52.077897936391068 1.0367296232096095 -21.794581434271631 0.54007531393598873 -56.164046697575053 1.0383466998475139 -18.009268382429081 0.049761848053397582 -59.534352145096641 0.85353433019613967 -14.198783895560062 0.27419409098916941 -56.164218742910514 1.0383466998475139 -14.66037115147766 0.72417553729592543 -52.078048380511284 1.036729623209609 0 6 6.2831853071795862 6 -7 1 0 9 19 3 -18.444757966731007 -0.8393700417924399 -67.90966601067079 1.6690784610682365 -18.435010561885594 5.5973213507091391 -68.593170764436493 1.6690784610682248 -15.896840776778301 11.912667179762195 -69.263821421638909 1.6690784610682914 -10.941321180007915 16.970493681166445 -69.921233298323813 1.6690784610681222 -4.2588412986322304 19.726128697165983 -70.566680716001542 1.6690784610683778 2.9026406601250123 19.572901957298019 -71.19740870837731 1.669078461068116 9.1880324628532009 16.703757638445044 -71.817398197187458 1.6690784610683136 13.602487568394078 11.934382532423003 -72.423161056628032 1.6690784610682001 15.755447422359968 6.3116442174880021 -73.017004642541977 1.6690784610682476 15.746135789731261 0.80633949128572402 -73.59836040622271 1.6690784610682365 15.736773763792979 -4.698981511817184 -74.179702949292235 1.6690784610682219 13.564785931510363 -10.088874319407127 -74.748913969793279 1.6690784610682809 9.337018285879104 -14.389695487160269 -75.304244479320857 1.6690784610681595 3.650877481362798 -16.72482624509049 -75.852099372761685 1.6690784610683351 -2.4263755482558942 -16.586488060821875 -76.380825167265471 1.6690784610681413 -7.7540019681316652 -14.148882078280831 -76.90569932262207 1.6690784610683038 -11.493264298818001 -10.108500932774499 -77.414406329958027 1.6690784610682032 -13.317462848385645 -5.3439471934803873 -77.914283635598252 1.6690784610682463 -13.309622564979785 -0.67955195450329464 -78.403416023855883 1.6690784610682365 - 0 10 3.1415926535897931 9 6.2831853071795862 10 -7 1 1 6 6 2 -13.309622564979785 -0.67955195450329464 -78.403416023855883 1.6690784610682365 -10.62247365759298 -0.35868868795490405 -76.474898696575025 1.0367296232096095 -12.651334771300277 0.038441382712321115 -72.891835116947391 1.0383466998475139 -17.715922229514717 -0.038942322315054234 -72.370369255013784 0.85353433019613967 -18.797290286531982 -0.69542615892537407 -77.302674304623082 1.0383466998475139 -15.996771472366575 -1.0004152210516883 -80.331933351136712 1.036729623209609 +7 1 0 8 17 3 -17.981423346908436 0.84042474150276025 -52.077973158451172 1.6690784610682365 -17.651303686899773 7.901702899364615 -52.82797229465114 1.6690784610682363 -14.151471829958467 14.815036888729058 -53.577982863722262 1.669078461068235 -7.5656144897509101 19.919954682329525 -54.327946507470031 1.669078461068239 1.010800325143709 21.610168746354738 -55.078009516098987 1.6690784610682357 9.3896603155335026 19.127861212081889 -55.827946639409433 1.6690784610682354 15.471785364013735 13.430263524100026 -56.577982609584673 1.6690784610682377 18.311427837725113 6.2208532505265657 -57.327972485096325 1.6690784610682368 17.981423346908457 -0.84042474150274704 -58.077973158451172 1.6690784610682365 17.651298134873038 -7.9017028979968487 -58.827972281761525 1.669078461068231 14.151493630161406 -14.81503689409948 -59.577982914333752 1.6690784610682536 7.5655642848254931 -19.91995466996228 -60.327946390913958 1.6690784610682063 -1.0107178318473107 -21.610168766674757 -61.078009707615855 1.6690784610682667 -9.3897634321531775 -19.127861186682274 -61.827946400013374 1.6690784610682168 -15.471684954165285 -13.430263548833294 -62.577982842696727 1.6690784610682459 -18.311504138432603 -6.2208532317314829 -63.327972307956102 1.6690784610682345 -17.981378930696401 0.84042473056162958 -64.077973261568189 1.6690784610682365 + 0 9 3.1415926535897931 8 6.2831853071795862 9 +7 1 1 6 6 2 -17.981378930696401 0.84042473056162958 -64.077973261568189 1.6690784610682365 -21.302431057273182 0.9566758884266735 -64.077879626713212 1.0367296232096095 -21.794559848961839 0.54007754614846382 -68.16402565946801 1.0383466998475139 -18.009265771480464 0.04976185350488864 -71.534352093717501 0.85353433019613967 -14.198762467730774 0.27419185486104541 -68.164239817921157 1.0383466998475139 -14.660326804119629 0.72417357269658322 -64.078066896423167 1.036729623209609 0 6 6.2831853071795862 6 Polygon3D 0 PolygonOnTriangulations 0 -Surfaces 6 -9 1 1 1 0 6 9 6 19 2 3 -15.33436018494295 0.7919759069610679 7.465407333532827 1.6690784610682365 -15.343646259983885 6.1551670372370495 6.8996549934860383 1.6690784610682248 -13.246460057477288 11.634001816198964 6.3215890780833988 1.6690784610682914 -8.9453390743402608 16.282433873999352 5.732002004789706 1.6690784610681222 -2.8190847531960115 19.081218232206748 5.1277568522507497 1.6690784610683778 4.1641568253474617 19.233359951592025 4.5137981346447784 1.669078461068116 10.684494759716259 16.547393638430481 3.8842892685871533 1.6690784610683136 15.522617334694585 11.612891253369121 3.2434474148041144 1.6690784610682001 18.002191582319647 5.4469051320668758 2.5891607306685405 1.6690784610682476 18.01199040249012 -0.8404260746955905 1.9220394065928481 1.6690784610682365 18.02184176246864 -7.1277419380158893 1.2549196307366426 1.6690784610682219 15.562286928667723 -13.536563922193306 0.57496266385126482 1.6690784610682809 10.529674505531396 -18.959722212172782 -0.11845214619857281 1.6690784610681595 3.3846445061657491 -22.202647482647116 -0.8231645489625059 1.6690784610683351 -4.7290125037339674 -22.354709057345147 -1.5434705641623747 1.6690784610681413 -12.267919208672714 -19.224543215878736 -2.2734289495233737 1.6690784610683038 -17.837253490720528 -13.51546535311604 -3.0180627740799366 1.6690784610682032 -20.678999521460312 -6.4198508615514793 -3.7741873932812933 1.6690784610682463 -20.688226218449401 0.79112568573515052 -4.5426058127385192 1.6690784610682365 --18.462461367543298 1.0246292718067047 8.5625659233241365 1.0367296232096095 -18.432987562130755 7.4674146606388785 7.878392773153557 1.0367296232096073 -15.873112066391814 14.025764578012662 7.180359832517734 1.0367296232096246 -10.677237832621076 19.56550467177663 6.4675693915230603 1.0367296232095771 -3.3192540218307416 22.859823676542767 5.7432179576696338 1.0367296232096401 5.0256695953041488 22.974710794132001 5.0011548550002995 1.0367296232095977 12.768432272483759 19.714195589090288 4.2497309499151026 1.036729623209605 18.473749099579472 13.804734070901564 3.4819970996200134 1.0367296232096164 21.363400372863936 6.4781987527929665 2.7022691197328665 1.0367296232096075 21.333065500669996 -0.95533077572994474 1.9094429847854393 1.0367296232096095 21.302783165630402 -8.3888426742051152 1.1165968399273751 1.0367296232096055 18.352983279340542 -15.926689352453234 0.31118131427588303 1.036729623209615 12.386931670731141 -22.261748182353426 -0.50912757857662605 1.0367296232096119 3.9818092318742275 -25.992052560660579 -1.3357626464320269 1.0367296232095931 -5.4934672231450676 -26.084922539410023 -2.184167212942536 1.0367296232096359 -14.226325589323023 -22.372104480176873 -3.0342133408958523 1.0367296232095855 -20.624094140783527 -15.708747349484105 -3.9020375957218496 1.0367296232096228 -23.848330364489222 -7.5021929649037133 -4.7781020103730736 1.0367296232096057 -23.816056971873621 0.78828666043748186 -5.6649107114989006 1.0367296232096095 --20.291880826845855 0.64993307188286886 4.8713382783415966 1.0383466998475139 -20.251985767989268 7.7241059215920576 4.1179081354580926 1.0383466998474999 -17.433641388053069 14.854216760728058 3.3567448569433349 1.0383466998475714 -11.782300482548802 20.795261852198394 2.5862964432626612 1.0383466998473936 -3.8833057408869758 24.246024142784229 1.8122976172816152 1.0383466998476718 4.9484373479360579 24.277024163637016 1.0244352878831453 1.038346699847368 13.027591800173365 20.79039425461902 0.23613214572694829 1.0383466998476121 18.907387235719028 14.615028147675364 -0.56335853247236756 1.0383466998474677 21.850628519659338 7.0593890391300942 -1.3676977576961313 1.0383466998475264 21.809408316871391 -0.53853611001966994 -2.1785533527232488 1.0383466998475139 21.768213550963068 -8.1364512110005336 -2.9894328884640586 1.0383466998475062 18.742849879182891 -15.773567333418447 -3.806221506288475 1.0383466998475326 12.693012097167987 -22.113321435101614 -4.6311705436971993 1.0383466998474922 4.2682394996371995 -25.769797497405531 -5.4558961789109084 1.0383466998475241 -5.110782157415251 -25.775634436242868 -6.2952454804937306 1.0383466998475215 -13.650520397550515 -22.064641217143937 -7.1300937667606039 1.0383466998475004 -19.839979030618053 -15.537908032165856 -7.9756014260317301 1.0383466998475213 -22.926989892840041 -7.5889574794028629 -8.8229500318196763 1.0383466998475122 -22.883927741871624 0.37981371503255712 -9.6744766828783177 1.0383466998475139 --17.853075129661661 0.047277213715821276 0.44223072795767848 0.85353433019613967 -17.853500039815948 6.2797542054916455 -0.21887373423444245 0.85353433019612557 -15.405891256549983 12.519089723929635 -0.88070679776060423 0.85353433019619729 -10.50807278970751 17.666288314910503 -1.5432271577239494 0.85353433019601743 -3.7173114495619055 20.620714298651791 -2.2065994411011669 0.85353433019630476 3.7975004788207514 20.629540795008495 -2.8705676273957597 0.85353433019598357 10.611396573268816 17.681499634645501 -3.535430525346146 0.85353433019624458 15.540693403072568 12.517225202557897 -4.200975089300119 0.85353433019609182 18.010614387220343 6.2372469266241204 -4.8673053993283641 0.8535343301961521 18.011065150223388 -0.049757732128203891 -5.534390936777819 0.85353433019613967 18.011519001447333 -6.3367614818772049 -6.2014764504771014 0.853534330196136 15.542524644619702 -12.630915027059396 -6.8693156840345786 0.85353433019614511 10.601589268838685 -17.823715374348964 -7.5379504323602813 0.853534330196143 3.7508569862789471 -20.804222007872564 -8.2072337314350996 0.85353433019612113 -3.8303992648924043 -20.812975359150006 -8.8774528712892611 0.8535343301961672 -10.704076835269404 -17.838799382751034 -9.5482143759732292 0.8535343301961168 -15.676232532688612 -12.629060808095526 -10.219848165173085 0.85353433019615088 -18.167355498019578 -6.2945948067937918 -10.892147229433931 0.85353433019613645 -18.167768369691117 0.046492600722604749 -11.565164075288306 0.85353433019613967 --13.137394276972596 0.11781621491241623 2.3619544970872575 1.0383466998475139 -13.186149497372133 4.7227778239094054 1.8793724002858383 1.0383466998474999 -11.426052319801132 9.3838583832369551 1.3925936184235148 1.0383466998475714 -7.8211605933454518 13.286334073376221 0.90393175372116552 1.0383466998473936 -2.739335614532084 15.603726387478144 0.40463592616761979 1.0383466998476718 2.9780146648427657 15.719933865464292 -0.090230414167388417 1.038346699847368 8.2612808544806811 13.547392625350327 -0.59969362882174337 1.0383466998476121 12.157659114320085 9.6019198618226174 -1.1089612517802454 1.0383466998474677 14.162986183463429 4.7006493731965371 -1.6263954151563187 1.0383466998475264 14.213558395771647 -0.27572998896444734 -2.1497432455250234 1.0383466998475139 14.264156051029465 -5.2521045328024769 -2.6730657095855435 1.0383466998475062 12.360064176237421 -10.306953804923252 -3.2029097821849568 1.0383466998475326 8.4451567266354655 -14.561040031162792 -3.7376309926555225 1.0383466998474922 2.9024246654158512 -17.102799187547188 -4.2834992583006333 1.0383466998475241 -3.3623473438486711 -17.244017129858133 -4.8298659135725117 1.0383466998475215 -9.1713199843794939 -14.865646230799106 -5.3900536025532144 1.0383466998475004 -13.466011954865039 -10.521508105469495 -5.9538043028946621 1.0383466998475213 -15.678204267018831 -5.1134614616052154 -6.5268306910655722 1.0383466998475122 -15.730059708405067 0.38630703705804104 -7.1075791196853082 1.0383466998475139 --12.206259002342584 0.55932254211543997 6.3682487437415247 1.036729623209609 -12.254304957836968 4.8429194138351495 5.9209172138182709 1.0367296232096048 -10.619808048563076 9.2422390543858288 5.4628183236499339 1.0367296232096304 -7.2134403160588745 12.99936307622059 4.9964346180546784 1.0367296232095649 -2.3189154845616766 15.302612787873151 4.5122957468340434 1.0367296232096572 3.3026440553905356 15.492009109049373 4.0264414142871949 1.0367296232095797 8.6005572469495615 13.380591687772846 3.5188475872607015 1.0367296232096159 12.571485569808942 9.4210484358356226 3.0048977299874355 1.036729623209611 14.640982791775629 4.4156115113410586 2.4760523416044506 1.0367296232096082 14.690915304310247 -0.72552137366124514 1.9346358284002534 1.036729623209609 14.74090035930678 -5.866641201826801 1.3932424215458834 1.0367296232096044 12.771590577995241 -11.146438491933145 0.83874401342684379 1.0367296232096184 8.6724173403312097 -15.657696241992012 0.27222328617897062 1.036729623209603 2.7874797804572724 -18.413242404634655 -0.31056645149215889 1.0367296232096022 -3.9645577843219133 -18.62449557527874 -0.90277391538309182 1.0367296232096306 -10.309512828023886 -16.076981951581615 -1.5126445581502956 1.0367296232095844 -15.050412840656477 -11.322183356747741 -2.1340879524382901 1.0367296232096244 -17.509668678431773 -5.3375087581992045 -2.7702727761894499 1.0367296232096046 -17.560395465025167 0.79396471103282185 -3.420300913978136 1.036729623209609 +Surfaces 8 +9 1 1 1 0 6 8 6 17 2 3 -17.981645427977348 0.84042479581638307 7.9220273534400798 1.6690784610682365 -17.651525746634203 7.9017901844604568 7.1720282178533461 1.6690784610682363 -14.151654723836403 14.815211272597905 6.4220176486073202 1.669078461068235 -7.565719127310512 19.920196011290212 5.6720540063761264 1.669078461068239 1.010800390546561 21.610435431606462 4.921990994118576 1.6690784610682357 9.3897650711165497 19.12810248963525 4.1720538760121739 1.6690784610682354 15.471968343321269 13.430437818599531 3.422017899710359 1.6690784610682377 18.311649940172344 6.2209404266564272 2.6720280296821803 1.6690784610682368 17.981645427977362 -0.84042479581636331 1.9220273534400825 1.6690784610682365 17.651520194607123 -7.901790183108985 1.1720282305890279 1.669078461068231 14.151676524040745 -14.8152112779044 0.42201759860025145 1.6690784610682536 7.5656689223818292 -19.920195999070245 -0.32794587845969758 1.6690784610682063 -1.0107178972447652 -21.610435451684385 -1.0780091951113446 1.6690784610682667 -9.3898681877429553 -19.128102464538504 -1.8279458874503698 1.6690784610682168 -15.471867933466303 -13.430437843037685 -2.5779823306181826 1.6690784610682459 -18.311726240884774 -6.2209404080857142 -3.3279717952927421 1.6690784610682345 -17.981601011762418 0.84042478500589635 -4.0779727484456618 1.6690784610682365 +-21.302697966129521 0.95666423173145976 7.9220105115200719 1.0367296232096095 -20.926920827240266 9.3224992625060921 7.1720206718299329 1.0367296232096126 -16.796079943872275 17.518070333098894 6.4220060343316083 1.0367296232095986 -9.0050746754239182 23.583502504752364 5.6720700797472139 1.0367296232096301 1.1503872710547158 25.598509399521703 4.9219441128518158 1.0367296232095846 11.081723785551993 22.681807282568585 4.1720935087587163 1.0367296232096292 18.298896816663543 15.941797072017934 3.4219609060865954 1.036729623209599 21.678360526092145 7.4091655404558212 2.6720544899564223 1.0367296232096128 21.302697966129553 -0.95666423173144355 1.9220105115200559 1.0367296232096095 20.926915266670918 -9.3224995053620248 1.1720183829660522 1.036729623209607 16.796101777618034 -17.518069379517378 0.42201502162573146 1.0367296232096181 9.0050243932506326 -23.583504700809971 -0.32795061760313615 1.0367296232095955 -1.1503046508297476 -25.598505791109563 -1.0780218786784213 1.0367296232096217 -11.081827060832289 -22.681811793083675 -1.8279490018286051 1.0367296232096028 -18.298796252319569 -15.941792679902818 -2.5779976992124554 1.0367296232096113 -21.678436944199358 -7.4091688779913349 -3.3279769655731353 1.0367296232096099 -21.30265348157679 0.95666617457940151 -4.0779711775688918 1.0367296232096095 +-21.794689359051336 0.54006415268315333 3.8358481100945641 1.0383466998475139 -21.582553357338913 9.0991519565156889 3.0858591751669016 1.0383466998475122 -17.528589952674476 17.561085426352239 2.3358493981697377 1.038346699847519 -9.6891034659903603 23.921772893660531 1.5858987131569844 1.0383466998475051 0.6493001376095302 26.189329245731088 0.83579610097123336 1.0383466998475235 10.861616042640595 23.412713025460523 0.085925632411224306 1.0383466998475073 18.376909047245007 16.671251016982342 -0.66420245287411639 1.0383466998475175 22.006770271522463 8.0190177383825993 -1.4141019687871683 1.038346699847513 21.794689359051333 -0.54006415268314034 -2.164151889905451 1.0383466998475139 21.582550659248867 -9.099152235549921 -2.9141434546712843 1.0383466998475084 17.528600546807731 -17.56108433071552 -3.6641402756900594 1.0383466998475321 9.6890790681589287 -23.921775416865295 -4.4141250674980741 1.0383466998474844 -0.64926004876298204 -26.189325099772709 -5.1641648242837679 1.0383466998475408 -10.861666153698367 -23.412718207909204 -5.9141232110200326 1.0383466998474993 -18.376860251583107 -16.671245970570684 -6.6641548915639985 1.038346699847519 -22.006807350988112 -8.0190215731138359 -7.4141381102777846 1.0383466998475133 -21.794667774331305 0.54006638495909953 -8.1641308512000208 1.0383466998475139 +-18.009281437167871 0.049761820772909499 0.46564759779054743 0.85353433019613967 -17.98973495002387 7.121990421628662 -0.28435232240090436 0.85353433019614056 -14.795468660970846 14.18553230677265 -1.0343529563403466 0.85353433019613723 -8.4368037404808405 19.577650130193863 -1.784350732898452 0.853534330196145 0.059849136426688432 21.64364713480871 -2.5343546330789182 0.85353433019613245 8.5448070782024068 19.530749873055193 -3.2843506670656382 0.85353433019614688 14.87364450994502 14.103539517419806 -4.0343530831454615 0.85353433019613489 18.02882115664314 7.0224667544291837 -4.7843522273759174 0.85353433019614156 18.009281437167868 -0.049761820772889188 -5.534352402209449 0.85353433019613967 17.989734623655579 -7.1219904223109562 -6.2843523288323455 0.85353433019613456 14.795469942466003 -14.185532304093362 -7.0343529310870672 0.85353433019615799 8.4368007892524908 -19.577650136364628 -7.7843507910557168 0.85353433019610858 -0.059844287169797283 -21.643647124669009 -8.5343545375188015 0.85353433019617031 -8.5448131397737939 -19.530749885729783 -9.2843507865157697 0.85353433019612057 -14.873638607487397 -14.103539505078166 -10.034352966830959 0.85353433019614688 -18.028825641877461 -7.0224667638073628 -10.784352315762344 0.85353433019613867 -18.00927882622068 0.049761826232070309 -11.534352350757938 0.85353433019613967 +-14.198891036479008 0.27420527144072698 3.8358866303607408 1.0383466998475139 -14.091181217567854 5.8497545116056955 3.0858764341747547 1.0383466998475122 -11.480350600913976 11.379198183664707 2.3358759619460345 1.038346699847519 -6.3970584494343807 15.543182974212932 1.5858619506892966 1.0383466998475051 0.33004177579987282 17.067942213224924 0.83590332620934316 1.0383466998475235 6.9918256622314479 15.2848003848167 0.085834985742039294 1.0383466998475073 11.911254466607431 10.92735561474305 -0.66407209899772646 1.0383466998475175 14.306544416213985 5.3013497031582553 -1.4141624878257133 1.038346699847513 14.198891036479008 -0.27420527144070034 -2.1641133696392365 1.0383466998475139 14.091178539015296 -5.8497542320974603 -2.9141209315232151 1.0383466998475084 11.480361118332635 -11.379199281162395 -3.6641343817216696 1.0383466998475321 6.3970342282735446 -15.543180446723506 -4.4141142282905239 1.0383466998474844 -0.33000197724636759 -17.067946366221801 -5.164135814860817 1.0383466998475408 -6.9918754104231926 -15.284795193571194 -5.9141160879202133 1.0383466998474993 -11.911206024286239 -10.927360669720366 -6.6641197410382347 1.038346699847519 -14.306581227178686 -5.3013458619179117 -7.4141262849884795 1.0383466998475133 -14.198869608058903 0.27420303537561397 -8.1641344440558967 1.0383466998475139 +-14.660592889825161 0.72418535990130772 7.9220441953600966 1.036729623209609 -14.376130666028125 6.4810811064146412 7.1720357638767593 1.0367296232096108 -11.507229503800639 12.112352212097603 6.42202926288308 1.0367296232096026 -6.1263635791970685 16.25688951782665 5.6720379330049537 1.0367296232096219 0.87121351003874903 17.622361463693 4.9220378753854712 1.0367296232095928 7.6978063566803643 15.574397696700581 4.1720142432655569 1.0367296232096221 12.645039869979676 10.919078565181778 3.422074893334158 1.0367296232096015 14.944939354252284 5.0327153128568787 2.6720015694079597 1.0367296232096117 14.660592889825182 -0.72418535990128641 1.9220441953601162 1.036729623209609 14.376125122543232 -6.4810808608559034 1.1720380782120063 1.0367296232096064 11.507251270463655 -12.112353176291487 0.42202017557475191 1.0367296232096179 6.1263134515126412 -16.256887297330305 -0.32794113931625279 1.0367296232095975 -0.8711311436593796 -17.622365112259601 -1.0779965115441943 1.0367296232096139 -7.6979093146538862 -15.574393135992928 -1.8279427730722322 1.0367296232096126 -12.644939614612955 -10.91908300617283 -2.5779669620238161 1.0367296232096035 -14.945015537570187 -5.0327119381800243 -3.3279666250123761 1.0367296232096119 -14.660548541948049 0.72418339543239341 -4.0779743193224256 1.036729623209609 0 6 6.2831853071795862 6 -0 10 -3.1415926535897931 9 -6.2831853071795862 10 +0 9 +3.1415926535897931 8 +6.2831853071795862 9 -9 1 1 1 0 6 9 6 19 2 3 -20.68822621844939 0.79112568573516828 -4.5426058127385183 1.6690784610682365 -20.697502373664047 8.0020859267435824 -5.3110403309267227 1.6690784610682248 -17.87460671315522 15.326294039171909 -6.0913427783722476 1.6690784610682914 -12.122194104924988 21.495369111979837 -6.8854746999082597 1.6690784610681222 -3.9952386720332944 25.149829743936827 -7.6862298942756908 1.6690784610683778 5.1825278496042113 25.284133649624284 -8.5066453186561795 1.669078461068116 13.657352763904791 21.729271876896366 -9.3296928308491935 1.6690784610683136 19.883798938124222 15.307686569113528 -10.169051579975578 1.6690784610682001 23.044253031030053 7.3769180914753116 -11.016610787945169 1.6690784610682476 23.051839759156323 -0.64980803724873404 -11.874493271661178 1.6690784610682365 23.059467112274568 -8.6765187931633605 -12.732407628915686 1.6690784610682219 19.914512476258761 -16.795058827233131 -13.599840494707257 1.6690784610682809 13.53769876348224 -23.594496226646175 -14.479866193042149 1.6690784610681595 4.5798593363311095 -27.580027928776197 -15.361070602319076 1.6690784610683351 -5.471962138118915 -27.680961736271414 -16.263715509660255 1.6690784610681413 -14.69121383069389 -23.770296853865027 -17.161666129103846 1.6690784610683038 -21.424254475133395 -16.781131863723637 -18.075666897423481 1.6690784610682032 -24.822889347097895 -8.2068064658876398 -18.993624132182703 1.6690784610682463 -24.827958977815964 0.4329074026988029 -19.918733591844212 1.6690784610682365 --23.816056971873635 0.7882866604375045 -5.6649107114989032 1.0367296232096095 -23.783825675112762 9.0787499754850245 -6.5517560300568984 1.0367296232096073 -20.495479907162789 17.448362279876189 -7.4484187290349464 1.0367296232096246 -13.87564227160618 24.440217553433314 -8.3583781873478191 1.0367296232095771 -4.604579386536253 28.512156125324605 -9.2686940267179239 1.0367296232096401 5.7763969823048491 28.566608027203767 -10.202305185553085 1.0367296232095977 15.275659912613653 24.483682387299151 -11.129647396882213 1.036729623209605 22.191586665405691 17.235808748367333 -12.074169157201853 1.0367296232096164 25.657801698442352 8.3710721451230903 -13.022218355256834 1.0367296232096075 25.622680899651865 -0.54292301106754692 -13.977408626454725 1.0367296232096095 25.587586859958535 -9.4569050762355538 -14.932647838402969 1.0367296232096055 22.051444283770191 -18.413823233378601 -15.893810878471335 1.036729623209615 14.970242800887197 -25.847571735561917 -16.865127269840489 1.0367296232096119 5.1151405873455946 -30.127063607050065 -17.830789518339486 1.0367296232095931 -5.8415560819216967 -30.131164252928041 -18.818563455575177 1.0367296232096359 -15.794404856152809 -25.803367279566672 -19.792886606342265 1.0367296232095855 -22.99393804158672 -18.208331498365997 -20.781793579158823 1.0367296232096228 -26.581385266656458 -8.9837916029498111 -21.769104572568089 1.0367296232096057 -26.542839309752694 0.24777393751153598 -22.759123110047124 1.0367296232096095 --22.883927741871624 0.37981371503257311 -9.6744766828783177 1.0383466998475139 -22.840881106643693 8.3485770093242202 -10.526034628902007 1.0383466998474999 -19.667984274375051 16.333155671597925 -11.380990580579098 1.0383466998475714 -13.345222788900355 22.932015868352984 -12.242032687350619 1.0383466998473936 -4.5778359406079776 26.707701196739528 -13.09910437662735 1.0383466998476718 5.1350051335717719 26.681277612506559 -13.969858844088467 1.038346699847368 13.933774827654064 22.827165087884207 -14.831693486361273 1.0383466998476121 20.282266218022471 16.102020906370374 -15.702420545666859 1.0383466998474677 23.435718958352453 7.9513709449644994 -16.57176631345591 1.0383466998475264 23.390479861012974 -0.19222421305264126 -17.442466086810331 1.0383466998475139 23.345244553899779 -8.3358145408264726 -18.31320084037004 1.0383466998475062 20.101457787388544 -16.467905488797623 -19.18442752124092 1.0383466998475326 13.663084926693761 -23.156136603390298 -20.058957766543799 1.0383466998474922 4.776091120706786 -26.950663472038478 -20.926233130431829 1.0383466998475241 -5.0182893103752813 -26.888633601282962 -21.80465875202859 1.0383466998475215 -13.844414542630844 -22.989289569526452 -22.670782634054476 1.0383466998475004 -20.182813830924133 -16.241764311303982 -23.542998669066925 1.0383466998475213 -23.317654014382587 -8.1044832349452651 -24.410771261193169 1.0383466998475122 -23.270156136415309 -0.0024170231958509092 -25.276916520462354 1.0383466998475139 --18.167768369691128 0.046492600722619848 -11.565164075288306 0.85353433019613967 -18.168184125493084 6.3875790497624125 -12.238181931417312 0.85353433019612557 -15.677910362920569 12.735277076973542 -12.911890973913145 0.85353433019619729 -10.694871897305591 17.971643536020903 -13.586411235130715 0.85353433019601743 -3.7867849926142299 20.976121681977553 -14.261301254617816 0.85353433019630476 3.8565242191376634 20.983766806068179 -14.93735821975765 0.85353433019598357 10.784685172884153 17.984797984476774 -15.61354212847662 0.85353433019624458 15.795031673534135 12.733578320537923 -16.290687501699921 0.85353433019609182 18.304648568711482 6.350575007167202 -16.968300310581064 0.8535343301961521 18.30496127820053 -0.03786153189151209 -17.646509982585414 0.85353433019613967 18.305276332323874 -6.4262971744724027 -18.324721581322251 0.853534330196136 15.796303980798372 -12.820039282911875 -19.003481453133556 0.85353433019614511 10.777072545076617 -18.092869769100492 -19.682973906984941 0.853534330196143 3.8209172878040669 -21.116422567650709 -20.362514328457582 0.85353433019612113 -3.8728371885224009 -21.122053261637468 -21.043317091564198 0.8535343301961672 -10.843847389208296 -18.102516803607021 -21.723816613211341 0.8535343301961168 -15.883275300165945 -12.818623069891707 -22.405254969808336 0.85353433019615088 -18.4065273566343 -6.398677414314033 -23.086908561636353 0.85353433019613645 -18.406689281263905 0.024868259754237787 -23.768968687463175 0.85353433019613967 --15.730059708405072 0.38630703705805702 -7.1075791196853082 1.0383466998475139 -15.781947504495863 5.8860676447618951 -7.6883119135953901 1.0383466998474999 -13.673612314878259 11.479633422866478 -8.2771326586607934 1.0383466998475714 -9.3347958263061042 16.196658750435926 -8.8732579658817574 1.0383466998473936 -3.1841725992652439 19.017502744806446 -9.4797462771517615 1.0383466998476718 3.7767278675007661 19.173713945664012 -10.09160331375406 1.038346699847368 10.232437801410903 16.527371123699481 -10.714898670163281 1.0383466998476121 15.003972681149625 11.692085487812037 -11.345100469831207 1.0383466998474677 17.458099406770526 5.6775756326872733 -11.984608952795426 1.0383466998475264 17.510539511306572 -0.43668800675909614 -12.632749666804553 1.0383466998475139 17.563015119672038 -6.5509415971371396 -13.280886325472833 1.0383466998475062 15.21394009458623 -12.765522638908134 -13.937736542145082 1.0383466998475326 10.386618965577835 -18.002978990056882 -14.603469821712466 1.0383466998474922 3.551814063402142 -21.125170165234003 -15.277576090524921 1.0383466998475241 -4.1729666224234787 -21.284613805694075 -15.961297492587327 1.0383466998475215 -11.321233579854566 -18.339320093945304 -16.652744720554487 1.0383466998475004 -16.592687006951287 -12.977521886272765 -17.353637834314608 1.0383466998475213 -19.295682003225352 -6.3273892766412319 -18.062786870334548 1.0383466998475122 -19.347940212669421 0.42101393676838672 -18.780474296208389 1.0383466998475139 --17.560395465025174 0.7939647110328325 -3.4203009139781386 1.036729623209609 -17.611179072215229 6.9254218780021146 -4.0703246317968187 1.0367296232096048 -15.253733519147957 13.20422579846802 -4.7342668277084989 1.0367296232096304 -10.368745938243492 18.550520670525046 -5.4125712124707732 1.0367296232095649 -3.3858979575301165 21.78750336255148 -6.1037657618308572 1.0367296232096572 4.5886587169024047 22.001659272041831 -6.8109854517615958 1.0367296232095797 12.039045615197743 18.974861366495897 -7.5297382648146538 1.0367296232096159 17.576011210841347 13.379564389858739 -8.2639340027500303 1.036729623209611 20.430704363618254 6.3827640378276866 -9.0110032206333113 1.0367296232096082 20.480998618660802 -0.75669306342991138 -9.7715779168676242 1.036729623209609 20.531347364590385 -7.8961325100910935 -10.532167419428383 1.0367296232096044 17.777580668748161 -15.176294421088187 -11.305870110943294 1.0367296232096184 12.105154726076105 -21.341420717728823 -12.094605116243526 1.036729623209603 4.0445780853170792 -25.032992250505163 -12.89135168629916 1.0367296232096022 -5.1023681943149208 -25.23075921961172 -13.70886756374475 1.0367296232096306 -13.588022805237092 -21.73722642816524 -14.530445651865886 1.0367296232095844 -19.854570908678628 -15.353932229080783 -15.369540215687895 1.0367296232096244 -23.064393427539784 -7.4298213288254455 -16.21814369179739 1.0367296232096046 -23.113078645879256 0.61804086788606893 -17.078344073641304 1.036729623209609 +9 1 1 1 0 6 8 6 17 2 3 -17.981601011762422 0.84042478500591256 -4.07797274844566 1.6690784610682365 -17.651481334665629 7.9017727274930607 -4.8279718841551205 1.6690784610682363 -14.151618145018965 14.81517639586642 -5.5779824533658111 1.669078461068235 -7.5656981997410986 19.920147745521252 -6.3279460959010763 1.669078461068239 1.0108003775285432 21.610382094554989 -7.0780091074318765 1.6690784610682357 9.389744120056351 19.128054234098531 -7.8279462265800586 1.6690784610682354 15.471931747499729 13.430402959655801 -8.5779822016559137 1.6690784610682377 18.311605519702333 6.2209229913777149 -9.3279720727810709 1.6690784610682368 17.981601011762443 -0.84042478500589224 -10.077972748445656 1.6690784610682365 17.651475782638656 -7.9017727261383994 -10.827971871388556 1.669078461068231 14.151639945222831 -14.815176401185434 -11.577982503494111 1.6690784610682536 7.5656479948134034 -19.920147733272273 -12.327945980457901 1.6690784610682063 -1.0107178842281845 -21.610382114680871 -13.078009297119898 1.6690784610682667 -9.3898472366811685 -19.128054208941528 -13.827945989470361 1.6690784610682168 -15.471831337646179 -13.430402984152829 -14.577982432541411 1.6690784610682459 -18.311681820413739 -6.2209229727621693 -15.327971897332898 1.6690784610682345 -17.981556595548057 0.84042477416930628 -16.077972850577659 1.6690784610682365 +-21.302653481576797 0.95666617457941083 -4.0779711775688909 1.0367296232096095 -20.926875579534922 9.3224837323349412 -4.8279610173797494 1.0367296232096126 -16.796041774205399 17.518037012207387 -5.577975654867604 1.0367296232095986 -9.0050515954553489 23.583455085328985 -6.3279116096710304 1.0367296232096301 1.1503896077509825 25.598455980344106 -7.0780375759866772 1.0367296232095846 11.081704922285907 22.681758032070128 -7.8278881809751617 1.0367296232096292 18.298861699204068 15.941760549858458 -8.5780207825047015 1.036729623209599 21.678316804415623 7.4091461246561483 -9.3279271997088067 1.0367296232096128 21.302653481576819 -0.95666617457940339 -10.0779711775689 1.0367296232096095 20.926870018952734 -9.3224839751875415 -10.827963306212784 1.036729623209607 16.79606360800156 -17.518036058638927 -11.577966667694575 1.0367296232096181 9.0050013131660354 -23.583457281356697 -12.327932306742511 1.0367296232095955 -1.1503069873354343 -25.598452371980894 -13.078003567975147 1.0367296232096217 -11.081808197804362 -22.681762542524236 -13.827930690989708 1.0367296232096028 -18.298761134628194 -15.941756157802638 -14.577979388361451 1.0367296232096113 -21.678393222699128 -7.4091494621466518 -15.327958654814616 1.0367296232096099 -21.302608996921393 0.95666811740119206 -16.077952866904482 1.0367296232096095 +-21.794667774331309 0.5400663849591123 -8.1641308512000208 1.0383466998475139 -21.582530895778675 9.0991457105494042 -8.9141197861848429 1.0383466998475122 -17.528570419122708 17.561070320835334 -9.6641295631932227 1.038346699847519 -9.6890908676769669 23.921750492555422 -10.41408024825615 1.0383466998475051 0.64930282241633464 26.189303325726357 -11.164182860257903 1.0383466998475235 10.861608289214685 23.412688520474507 -11.914053329155088 1.0383466998475073 18.376893020604889 16.671232233317699 -12.664181413942083 1.0383466998475175 22.006749563331802 8.0190070278968104 -13.414080930359958 1.038346699847513 21.794667774331323 -0.54006638495910464 -14.164130851200031 1.0383466998475139 21.582528197673987 -9.0991459895820253 -14.914122416008073 1.0383466998475084 17.528581013313485 -17.561069225204935 -15.664119237111734 1.0383466998475321 9.6890664697128788 -23.921753015745534 -16.414104028775974 1.0383466998474844 -0.64926273335147133 -26.189299179792162 -17.164143785735153 1.0383466998475408 -10.861658400545743 -23.412693702893055 -17.914102172308507 1.0383466998474993 -18.376844224676585 -16.671227186935155 -18.66413385290252 1.038346699847519 -22.006786643000034 -8.0190108626061072 -19.414117071644977 1.0383466998475133 -21.794646189493321 0.54006861722236821 -20.164109812614274 1.0383466998475139 +-18.00927882622069 0.049761826232086553 -11.534352350757938 0.85353433019613967 -17.989732336932367 7.1219894015389649 -12.28435227095661 0.85353433019614056 -14.795466505947147 14.18553026161222 -13.034352904893979 0.85353433019613723 -8.4368025036680461 19.577647295827589 -13.784350681469896 0.853534330196145 0.0598491429919914 21.643643999462185 -14.534354581607754 0.85353433019613245 8.5448058532358342 19.530747033546284 -15.284350615655649 0.85353433019614688 14.873642363496922 14.103537463262761 -16.034353031663382 0.85353433019613489 18.028818547838874 7.0224657234251469 -16.784352175958372 0.85353433019614156 18.00927882622068 -0.049761826232058728 -17.534352350757935 0.85353433019613967 17.989732010563998 -7.1219894022210379 -18.284352277386226 0.85353433019613456 14.795467787442599 -14.185530258933852 -19.034352879647869 0.85353433019615799 8.4367995524390533 -19.577647301996116 -19.784350739610659 0.85353433019610858 -0.059844293734123255 -21.64364398932608 -20.534354486074704 0.85353433019617031 -8.5448119148083226 -19.530747046216661 -21.284350735072035 0.85353433019612057 -14.873636461038377 -14.103537450924904 -22.034352915381664 0.85353433019614688 -18.02882303307377 -7.0224657328006064 -22.784352264319914 0.85353433019613867 -18.009276215273218 0.049761831689707284 -23.534352299320901 0.85353433019613967 +-14.198869608058907 0.27420303537562513 -8.1641344440558967 1.0383466998475139 -14.091160667476331 5.8497438587369057 -8.9141446403035189 1.0383466998475122 -11.480334705898676 11.379179519682602 -9.6641451124871445 1.038346699847519 -6.3970507740154829 15.543158637376516 -10.414159123987254 1.0383466998475051 0.33003908642052693 17.067916481054759 -11.16411774794885 1.0383466998475235 6.9918131336737908 15.284778155474456 -11.914186089086424 1.0383466998475073 11.911235058707829 10.927340635128141 -12.664093173138207 1.0383466998475175 14.306522109766695 5.3013435224528225 -13.414183562523364 1.038346699847513 14.198869608058908 -0.27420303537560531 -14.164134444055879 1.0383466998475139 14.091157988938479 -5.8497435792270931 -14.914142005986601 1.0383466998475084 11.480345223259542 -11.379180617186419 -15.664155456213264 1.0383466998475321 6.3970265529878141 -15.543156109873067 -16.414135302832637 1.0383466998474844 -0.32999928808601275 -17.067920634074678 -17.164156889239788 1.0383466998475408 -6.9918628815915751 -15.284772964199995 -17.914137162472816 1.0383466998474993 -11.91118661665357 -10.927345690133825 -18.664140815447286 1.038346699847519 -14.306558920528484 -5.3013396811908544 -19.414147359482044 1.0383466998475133 -14.198848179756961 0.2742007992979073 -20.164155518591343 1.0383466998475139 +-14.660548541948049 0.72418339543241483 -4.0779743193224238 1.036729623209609 -14.376087089796282 6.4810617226511855 -4.8279827509303939 1.0367296232096108 -11.507194515832689 12.112315779525483 -5.5779892518643379 1.0367296232096026 -6.1263448040266688 16.256840405713227 -6.3279805821305377 1.0367296232096219 0.87121114730613947 17.622308208766412 -7.0779806388777509 1.0367296232095928 7.697783317826465 15.574350436126592 -7.8280042721843923 1.0367296232096221 12.645001795795784 10.919045369453183 -8.5779436208074173 1.0367296232096015 14.944894234988878 5.0326998580993312 -9.3280169458532409 1.0367296232096117 14.660548541948073 -0.72418339543238852 -10.077974319322408 1.036729623209609 14.376081546324395 -6.4810614770891455 -10.827980436564371 1.0367296232096064 11.50721628244459 -12.112316743732281 -11.577998339293462 1.0367296232096179 6.1262946764599544 -16.256838185187235 -12.327959654173656 1.0367296232095975 -0.87112878112010872 -17.6223118573816 -13.078015026264204 1.0367296232096139 -7.6978862755584965 -15.574345875358302 -13.827961287951318 1.0367296232096126 -12.644901540663987 -10.91904981050325 -14.577985476721221 1.0367296232096035 -14.944970418128385 -5.0326964833776398 -15.32798513985121 1.0367296232096119 -14.660504194174742 0.72418143093741028 -16.077992834250825 1.036729623209609 0 6 6.2831853071795862 6 -0 10 -3.1415926535897931 9 -6.2831853071795862 10 +0 9 +3.1415926535897931 8 +6.2831853071795862 9 -9 1 1 1 0 6 9 6 19 2 3 -24.827958977815968 0.43290740269881267 -19.918733591844216 1.6690784610682365 -24.833055675883486 9.0726086196943054 -20.843886993205345 1.6690784610682248 -21.444777165957674 17.772051013274933 -21.775102544954663 1.6690784610682914 -14.611574995944872 25.012989467063765 -22.716209828155428 1.6690784610681222 -5.0705191247153039 29.210626652850145 -23.6529141836223 1.6690784610683778 5.5636561462608034 29.266458646558164 -24.610345922703367 1.669078461068116 15.249271456457757 25.110260937867203 -25.556302912075843 1.6690784610683136 22.279475686148231 17.764449653030773 -26.516182439223456 1.6690784610682001 25.808065262736569 8.8130056576317717 -27.475314331020328 1.6690784610682476 25.81003338866708 -0.16564783853246023 -28.437595642004052 1.6690784610682365 25.812011876557854 -9.1442928756144912 -29.399927852760097 1.6690784610682219 22.287441492314876 -18.143653105580867 -30.36416086907845 1.6690784610682809 15.218938360357333 -25.585887796398303 -31.334434175748317 1.6690784610681595 5.4101576683968498 -29.8519984660355 -32.295234945519333 1.6690784610683351 -5.4469464896555824 -29.856241962040102 -33.273639532280868 1.6690784610681413 -15.26662736608546 -25.593335494457204 -34.235123342631979 1.6690784610683038 -22.350006208829512 -18.143286821035634 -35.206782983192582 1.6690784610682032 -25.885211574595594 -9.12501885759281 -36.173077832005433 1.6690784610682463 -25.883854472099124 -0.12089020061472011 -37.138153038280777 1.6690784610682365 --26.542839309752701 0.24777393751154086 -22.759123110047121 1.0367296232096095 -26.504301663288437 9.4793311313602953 -23.749197194272149 1.0367296232096073 -22.839928421864748 18.710795724514895 -24.740612795821985 1.0367296232096246 -15.54343872301596 26.320145087998661 -25.73785709727273 1.0367296232095771 -5.4541180677168555 30.648972339603695 -26.724094984658691 1.0367296232096401 5.6813669655295893 30.596644056151035 -27.728689126654718 1.0367296232095977 15.722233940188294 26.177688853472695 -28.714214511821709 1.036729623209605 22.937840306236346 18.513217872529601 -29.710032708293355 1.0367296232096164 26.511674633431539 9.2690962670351169 -30.699316631438876 1.0367296232096075 26.469524088876668 0.062836746899527007 -31.686559842864018 1.0367296232096095 26.427362439656427 -9.1434201444299319 -32.673858721478837 1.0367296232096055 22.769237023054146 -18.304743888992547 -33.657760939453219 1.036729623209615 15.528571282818257 -25.802980570431036 -34.642488889862506 1.0367296232096119 5.5820910711516731 -30.017187916266099 -35.612138840184272 1.0367296232095931 -5.3144585288992872 -29.908915327694501 -36.594254538827144 1.0367296232096359 -15.067540147352219 -25.563116076800476 -37.553900710316853 1.0367296232095855 -22.029817241295774 -18.115011676239643 -38.51835241367769 1.0367296232096228 -25.456776667386052 -9.1938071613631251 -39.472090962739976 1.0367296232096057 -25.411261294467828 -0.35278714951684842 -40.419278007168558 1.0367296232096095 --23.270156136415324 -0.0024170231958393629 -25.276916520462354 1.0383466998475139 -23.22264988238404 8.0996479930783032 -26.143096347596035 1.0383466998474999 -19.99286042111099 16.162146305294137 -27.006804978769324 1.0383466998475714 -13.609633323601756 22.759619935595367 -27.870649853752433 1.0383466998473936 -4.8399493219792609 26.470429476739554 -28.724799895414353 1.0383466998476718 4.7742079377122932 26.373588322987754 -29.586270556779496 1.038346699847368 13.39283153085346 22.532160696584118 -30.433487753133857 1.0383466998476121 19.553187499972744 15.940887047236714 -31.283289181863779 1.0383466998474677 22.58652520430671 8.0304884399557235 -32.126101210206514 1.0383466998475264 22.536949392154376 0.18147455264916834 -32.964493977763766 1.0383466998475139 22.487354011725103 -7.6675419161187417 -33.802916851218072 1.0383466998475062 19.354821304561071 -15.451435817451888 -34.636192951428697 1.0383466998475326 13.191084034523207 -21.788578034394121 -35.466421582538125 1.0383466998474922 4.7619842735177231 -25.322847131403599 -36.285643690103377 1.0383466998475241 -4.4311460054867169 -25.196038011657574 -37.107505022483522 1.0383466998475215 -12.631541799957498 -21.508939422322019 -37.914818325636041 1.0383466998475004 -18.46660844992315 -15.234379076773482 -38.720908231099514 1.0383466998475213 -21.327357795174599 -7.7379916472500394 -39.518275049942723 1.0383466998475122 -21.276126544774648 -0.32412521248165049 -40.308944772642533 1.0383466998475139 --18.406689281263908 0.024868259754249777 -23.768968687463175 0.85353433019613967 -18.406852738367789 6.4484132036061332 -24.451031432335427 0.85353433019612557 -15.88393713234943 12.875344381557396 -25.133435777025991 0.85353433019619729 -10.838631840496024 18.17329629397846 -25.816408871343381 0.85353433019601743 -3.8492845199701424 21.208808633950522 -26.499102566516015 0.85353433019630476 3.8774410865733469 21.211752959367612 -27.183007196507937 0.85353433019598357 10.874683324169839 18.178265948695255 -27.866213663786937 0.85353433019624458 15.930701283923133 12.874304934989162 -28.550227158580409 0.85353433019609182 18.461144057364031 6.4333080481343519 -29.234178656333516 0.8535343301961521 18.461122109703588 -0.0090238127616477648 -29.918299082279443 0.85353433019613967 18.461100704140065 -6.4513551946305219 -30.602422514927774 0.853534330196136 15.930618682978091 -12.894760769185236 -31.286641148855946 0.85353433019614511 10.872390859631761 -18.203570057307982 -31.97119855685478 0.853534330196143 3.8685877745347863 -21.242536014903372 -32.655181693331343 0.85353433019612113 -3.8698005115117939 -21.242434439490584 -33.34018353328031 0.8535343301961672 -10.873606969991664 -18.203236313614028 -34.024173479680002 0.8535343301961168 -15.931794308103626 -12.894148496741666 -34.708744796578202 0.85353433019615088 -18.462147123130002 -6.4504396033880695 -35.392984092533347 0.85353433019613645 -18.461929598833933 -0.0078292085509965581 -36.077135066119283 0.85353433019613967 --19.347940212669421 0.42101393676839827 -18.780474296208389 1.0383466998475139 -19.400232946215738 7.1694061085022014 -19.498169747280052 1.0383466998474999 -16.801917957055593 14.015081354939962 -20.224190873650073 1.0383466998475714 -11.478306326017163 19.769938092626557 -20.95964107129911 1.0383466998473936 -3.9625948765703209 23.180694180721357 -21.700499704783155 1.0383466998476718 4.5049837585472003 23.33123353128919 -22.454102123530916 1.038346699847368 12.311087836862779 20.09077590135627 -23.210819831856767 1.0383466998476121 18.047398350460696 14.228329862326593 -23.978423559399552 1.0383466998474677 20.977253801258236 6.9873335226379076 -24.752272887961826 1.0383466998475264 21.028584710519034 -0.34110761394417421 -25.533573646488122 1.0383466998475139 21.079945149238632 -7.6695379971773328 -26.314893607036666 1.0383466998475062 18.252874966113453 -15.082994460877376 -27.103182978723559 1.0383466998475326 12.48290215361979 -21.292050831069929 -27.900351440683604 1.0383466998474922 4.368744047043811 -24.945031443599913 -28.699334003701708 1.0383466998475241 -4.7341679596748421 -25.075565282628968 -29.512707407308376 1.0383466998475215 -13.086887310073005 -21.578056245779141 -30.32422369551314 1.0383466998475004 -19.19893375780503 -15.299049025512364 -31.146799349595568 1.0383466998475213 -22.307259531786706 -7.5806613802980767 -31.972884509833971 1.0383466998475122 -22.357025574426338 0.20626159568988056 -32.804467427428705 1.0383466998475139 --23.113078645879263 0.61804086788608048 -17.078344073641304 1.036729623209609 -23.161809688478236 8.6658861080279816 -17.93857679213869 1.0367296232096048 -20.049625910051759 16.833306302036455 -18.809592294086894 1.0367296232096304 -13.679711268871658 23.705833846125312 -19.694562559038772 1.0367296232095649 -4.6869201817161006 27.772280966102244 -20.581733382585366 1.0367296232096572 5.445945326993443 27.93627323695889 -21.492002718752303 1.0367296232095797 14.776308972727071 24.042833022266738 -22.398391312329863 1.0367296232096159 21.62111106605974 17.015681433529544 -23.32233217015358 1.036729623209611 25.104455892041791 8.3569150482289682 -24.251312030601788 1.0367296232096082 25.150542688457499 -0.39413242396444303 -25.188631441144089 1.036729623209609 25.196661313459053 -9.1451656067986686 -26.125996984041421 1.0367296232096044 21.805645961576715 -17.982562322171042 -27.070560798703447 1.0367296232096184 14.909305437894355 -25.36879502236096 -28.026379461634562 1.036729623209603 5.238224265644118 -29.686809015812241 -28.978331050853868 1.0367296232096022 -5.5794344504126947 -29.803568596377907 -29.953024525735071 1.0367296232096306 -15.465714584819199 -25.623554912119207 -30.916345974946807 1.0367296232095844 -22.670195176362547 -18.1715619658295 -31.895213552707546 1.0367296232096244 -26.313646481805449 -9.0562305538229158 -32.874064701270903 1.0367296232096046 -26.356447649730448 0.11100674828741708 -33.857028069393003 1.036729623209609 +9 1 1 1 0 6 8 6 17 2 3 -17.981556595548064 0.84042477416931349 -16.077972850577655 1.6690784610682365 -17.651436922707909 7.9017552704998106 -16.827971986409722 1.6690784610682363 -14.151581566222372 14.815141519113631 -17.577982555585621 1.669078461068235 -7.565677272200511 19.920099479740983 -18.327946198423724 1.669078461068239 1.0108003644792891 21.610328757503691 -19.078009209229581 1.6690784610682357 9.3897231689679561 19.128005978575185 -19.827946329417752 1.6690784610682354 15.471895151658197 13.430368100733737 -20.577982303268868 1.6690784610682377 18.311561099222587 6.220905556125448 -21.327972175490466 1.6690784610682368 17.981556595548085 -0.84042477416929595 -22.077972850577652 1.6690784610682365 17.651431370681003 -7.9017552691418027 -22.827971973612428 1.669078461068231 14.151603366425944 -14.815141524445746 -23.57798260583461 1.6690784610682536 7.5656270672735495 -19.920099467461998 -24.327946082702546 1.6690784610682063 -1.0107178711801446 -21.610328777678635 -25.078009399374526 1.6690784610682667 -9.3898262855912904 -19.128005953357086 -25.827946091736706 1.6690784610682168 -15.471794741806015 -13.430368125290087 -26.577982534710866 1.6690784610682459 -18.311637399933009 -6.2209055374649322 -27.327971999619322 1.6690784610682345 -17.98151217933427 0.84042476330658145 -28.077972952955907 1.6690784610682365 +-21.302608996921386 0.95666811740120483 -16.077952866904482 1.0367296232096095 -20.926830331737197 9.3224682020971947 -16.827942706836055 1.0367296232096126 -16.796003604474407 17.518003691214112 -17.577957344313472 1.0367296232095986 -9.0050285154670071 23.583407665781003 -18.327893299335855 1.0367296232096301 1.1503919444161657 25.598402561044075 -19.078019265071894 1.0367296232095846 11.0816860589426 22.681708781471613 -19.827869870955542 1.0367296232096292 18.298826581639773 15.941724027640461 -20.578002471342757 1.036729623209599 21.678273082626035 7.4091267088421411 -21.327908889620595 1.0367296232096128 21.302608996921414 -0.95666811740119573 -22.077952866904493 1.0367296232096095 20.926824771142293 -9.3224684449464768 -22.827944995638255 1.036729623209607 16.796025438320584 -17.518002737658612 -23.577948357261484 1.0367296232096181 9.0049782330623298 -23.583409861778922 -24.32791399612859 1.0367296232095955 -1.1503093238107622 -25.598398952729671 -25.077985257518357 1.0367296232096217 -11.08178933469873 -22.681713291864902 -25.82791238039756 1.0367296232096028 -18.298726016832148 -15.941719635643786 -26.577961077757028 1.0367296232096113 -21.678349501085826 -7.4091300462877223 -27.327940344302739 1.0367296232096099 -21.302564512163315 0.95667006019682888 -28.077934556486706 1.0367296232096095 +-21.794646189493328 0.54006861722238786 -20.164109812614271 1.0383466998475139 -21.582508434105556 9.0991394645238692 -20.914098747656269 1.0383466998475122 -17.528550885483355 17.561055215216157 -21.664108524675783 1.038346699847519 -9.6890782693224775 23.92172809131463 -22.414059209789006 1.0383466998475051 0.64930550720871949 26.189277405581912 -23.164161821606761 1.0383466998475235 10.861600535718813 23.412664015364644 -23.914032290840893 1.0383466998475073 18.376876993857813 16.671213449571802 -24.664160375129882 1.0383466998475175 22.006728855018203 8.0189963173771481 -25.414059892052343 1.038346699847513 21.794646189493335 -0.54006861722237165 -26.164109812614281 1.0383466998475139 21.582505735986047 -9.0991397435552273 -26.914101377464533 1.0383466998475084 17.528561479732431 -17.561054119590839 -27.66409819865304 1.0383466998475321 9.6890538712242407 -23.921730614492638 -28.414082990173611 1.0383466998474844 -0.6492654179238162 -26.189273259668429 -29.164122747306141 1.0383466998475408 -10.861650647324415 -23.41266919775618 -29.914081133716657 1.0383466998474993 -18.376828197662554 -16.671208403216653 -30.664112814360731 1.038346699847519 -22.006765934889117 -8.0190001520650025 -31.414096033131838 1.0383466998475133 -21.794624604537383 0.54007084947294304 -32.16408877414819 1.0383466998475139 +-18.009276215273225 0.049761831689716131 -23.534352299320901 0.85353433019613967 -17.989729723841116 7.1219883814476672 -24.284352219526777 0.85353433019614056 -14.7954643509246 14.185528216450155 -25.034352853462167 0.85353433019613723 -8.4368012668563761 19.577644461460419 -25.784350630055624 0.853534330196145 0.059849149554774606 21.643640864115177 -26.534354530151347 0.85353433019613245 8.5448046282682402 19.530744194037929 -27.284350564259867 0.85353433019614688 14.873640217046818 14.103535409106616 -28.034352980195926 0.85353433019613489 18.028815939033905 7.0224646924225658 -28.784352124555262 0.85353433019614156 18.009276215273218 -0.04976183168969768 -29.534352299320897 0.85353433019613967 17.989729397472743 -7.1219883821295484 -30.284352225954581 0.85353433019613456 14.795465632420031 -14.185528213772523 -31.034352828223149 0.85353433019615799 8.4367983156274438 -19.577644467627334 -31.784350688180073 0.85353433019610858 -0.05984430029696064 -21.643640853981683 -32.534354434645124 0.85353433019617031 -8.5448106898408192 -19.530744206704941 -33.2843506836427 0.85353433019612057 -14.873634314587978 -14.103535396772163 -34.034352863946914 0.85353433019614688 -18.028820424269192 -7.0224647017954078 -34.784352212891946 0.85353433019613867 -18.009273604325458 0.04976183714580304 -35.53435224789834 0.85353433019613967 +-14.198848179756961 0.27420079929792857 -20.164155518591343 1.0383466998475139 -14.091140117507869 5.8497332059019005 -20.914165714900545 1.0383466998475122 -11.480318810990772 11.379160855782875 -21.66416618703931 1.038346699847519 -6.3970430986655495 15.543134300662643 -22.414180198782347 1.0383466998475051 0.33003639702539722 17.067890749026226 -23.164138822226086 1.0383466998475235 6.9918006051587511 15.284755926266818 -23.914207164033606 1.0383466998475073 11.911215650895302 10.927325655616189 -24.664114247397507 1.0383466998475175 14.306499803432738 5.3013373418064766 -25.414204637339822 1.038346699847513 14.198848179756959 -0.27420079929790386 -26.164155518591329 1.0383466998475139 14.091137438984768 -5.8497329263904971 -26.914163080568787 1.0383466998475084 11.480329328293633 -11.379161953292961 -27.664176530823664 1.0383466998475321 6.3970188777715951 -15.543131773144736 -28.414156377493608 1.0383466998474844 -0.32999659891064326 -17.067894902069842 -29.16417796373749 1.0383466998475408 -6.9918503528019134 -15.28475073496285 -29.914158237144282 1.0383466998474993 -11.911167209108335 -10.927330710650493 -30.664161889975151 1.038346699847519 -14.306536613991481 -5.301333500522813 -31.41416843409441 1.0383466998475133 -14.198826751573165 0.27419856320759906 -32.1641765932456 1.0383466998475139 +-14.660504194174752 0.72418143093742648 -16.077992834250821 1.036729623209609 -14.37604351367855 6.4810423389023573 -16.828001265983424 1.0367296232096108 -11.507159527970416 12.112279347013514 -17.578007766857674 1.0367296232096026 -6.1263260289341739 16.256791293699973 -18.327999097511842 1.0367296232096219 0.87120878454305561 17.622254953964831 -19.077999153386827 1.0367296232095928 7.6977602789923729 15.57430317567737 -19.828022787880357 1.0367296232096221 12.64496372167733 10.919012173827745 -20.577962135194738 1.0367296232096015 14.944849115818903 5.0326844034085596 -21.328035461360379 1.0367296232096117 14.660504194174765 -0.72418143093740539 -22.077992834250807 1.036729623209609 14.376037970219622 -6.4810420933371207 -22.827998951586611 1.0367296232096064 11.507181294531476 -12.112280311232926 -23.578016854407647 1.0367296232096179 6.1262759014845933 -16.256789073144834 -24.327978169276747 1.0367296232095975 -0.87112641854952688 -17.622258602628087 -25.078033541230319 1.0367296232096139 -7.6978632364836628 -15.574298614848823 -25.827979803076122 1.0367296232096126 -12.644863466780102 -10.91901661493662 -26.578003991664598 1.0367296232096035 -14.944925298780101 -5.0326810286421164 -27.328003654935905 1.0367296232096119 -14.660459846505233 0.72417946641632991 -28.078011349425104 1.036729623209609 0 6 6.2831853071795862 6 -0 10 -3.1415926535897931 9 -6.2831853071795862 10 +0 9 +3.1415926535897931 8 +6.2831853071795862 9 -9 1 1 1 0 6 9 6 19 2 3 -25.883854472099131 -0.12089020061470013 -37.138153038280777 1.6690784610682365 -25.882489821148685 8.8832351735196724 -38.103280183133748 1.6690784610682248 -22.344509372568691 17.866650329004255 -39.06592573791292 1.6690784610682914 -15.289156662309743 25.24656706746919 -40.030057698124793 1.6690784610681222 -5.5592773337444141 29.42955622454884 -40.980749102569312 1.6690784610683778 5.1354057010545411 29.381723927426762 -41.943873554581138 1.669078461068116 14.74126318630087 25.163342265297647 -42.886598974151504 1.6690784610683136 21.627643827038494 17.873587202892327 -43.834570136302546 1.6690784610682001 25.045356695620381 9.106561070182007 -44.773183239330201 1.6690784610682476 25.040837342321705 0.3933843056650983 -45.706349473999239 1.6690784610682365 25.036293407987753 -8.3197947340156873 -46.639562645980945 1.6690784610682219 21.609344203578011 -16.973256206965221 -47.56620042400467 1.6690784610682809 14.814063994790555 -24.03448795424492 -48.489597864312408 1.6690784610681595 5.5005365262359254 -27.992427064241298 -49.397149773661049 1.6690784610683351 -4.6652638378442415 -27.898087736260084 -50.310518083388104 1.6690784610681413 -13.734275168638735 -23.870286514332033 -51.202381372633837 1.6690784610683038 -20.196394332325617 -16.986715014790494 -52.093950272151361 1.6690784610682032 -23.386169989106946 -8.7597788095030573 -52.973256123802472 1.6690784610682463 -23.37901911071296 -0.62014528077302122 -53.843521314559368 1.6690784610682365 --25.411261294467845 -0.35278714951684309 -40.419278007168558 1.0367296232096095 -25.365716693176264 8.4882362597842267 -41.366514339668925 1.0367296232096073 -21.847591012266655 17.242888770869872 -42.30601098399773 1.0367296232096246 -14.927369461642265 24.356220869896539 -43.241233888041286 1.0367296232095771 -5.4841772148956913 28.305182533151832 -44.159061388680364 1.0367296232096401 4.7834997072114795 28.147956202708983 -45.082014084676928 1.0367296232095977 13.906459876325048 24.031119549181362 -45.981709169498416 1.036729623209605 20.375465702638461 17.06002155950328 -46.880164371046206 1.0367296232096164 23.539368768225639 8.7666798926447136 -47.764972925468953 1.0367296232096075 23.491119632698393 0.58835802679087079 -48.63948121949975 1.0367296232096095 23.442826544148275 -7.5899728704205947 -49.51402666477334 1.0367296232096055 20.18217150056223 -15.648716838929371 -50.377389609100661 1.036729623209615 13.809748908670471 -22.148114218721691 -51.231875868875818 1.0367296232096119 5.1717632090113037 -25.712050676582486 -52.068673002748127 1.0367296232095931 -4.1502373704908555 -25.518554152032809 -52.902658388317761 1.0367296232096359 -12.374018800758208 -21.759859961416801 -53.715302413757655 1.0367296232095855 -18.167175429837727 -15.470935638528236 -54.520806045391645 1.0367296232096228 -20.982432326398598 -8.0373864332945182 -55.31131607031967 1.0367296232096057 -20.932398411859303 -0.74215410107286539 -56.088975070846161 1.0367296232096095 --21.276126544774652 -0.3241252124816314 -40.308944772642533 1.0383466998475139 -21.224866809542831 7.0897472836212367 -41.099636608539655 1.0383466998474999 -18.261540011768414 14.418424781454696 -41.883104791188728 1.0383466998475714 -12.456111471670365 20.355936414185038 -42.660695643515311 1.0383466998473936 -4.5512627758230657 23.641372393474242 -43.427249084340787 1.0383466998476718 4.0289992639391476 23.492923693704512 -44.191453012327713 1.038346699847368 11.649078125258217 20.038619364403463 -44.942505763894729 1.0383466998476121 17.049438373308494 14.204402432148708 -45.688670579523027 1.0383466998474677 19.686584322186512 7.2610082280830879 -46.425392509385205 1.0383466998475264 19.634312645595411 0.41377970915215956 -47.153918496946538 1.0383466998475139 19.582006880206414 -6.433457649237873 -47.882456003770741 1.0383466998475062 16.840157660138374 -13.183245297132487 -48.602533201524381 1.0383466998475326 11.490187904176025 -18.628301471349474 -49.314586152879649 1.0383466998474922 4.2322902941018166 -21.621549244618691 -50.016855199097527 1.0383466998475241 -3.6145346214730436 -21.462305885543952 -50.712058808042258 1.0383466998475215 -10.559694295085194 -18.292188663153752 -51.397037065994823 1.0383466998475004 -15.466484432085885 -12.970736334281153 -52.074032102241304 1.0383466998475213 -17.85501548899083 -6.6550080832898146 -52.741962048369565 1.0383466998475122 -17.802439392693191 -0.44001183948491374 -53.401150500771152 1.0383466998475139 --18.46192959883394 -0.0078292085509752418 -36.077135066119283 0.85353433019613967 -18.461711563216529 6.4347810141641473 -36.761289084326499 0.85353433019612557 -15.930919888451712 12.876030453054835 -37.445280834454408 0.85353433019619729 -10.874423660058525 18.180170428019412 -38.129341984530917 0.85353433019601743 -3.8765822153598393 21.213682447367109 -38.81260077673678 0.85353433019630476 3.8508040098301706 21.210529656276261 -39.496567571717563 0.85353433019598357 10.840743499275227 18.174524016142161 -40.179326417479153 0.85353433019624458 15.886427261495808 12.87584608499407 -40.862373369504503 0.85353433019609182 18.40941990426025 6.4480797976747146 -41.544856886981229 0.8535343301961521 18.409017843206207 0.023730913371150297 -42.227005103246917 0.85353433019613967 18.408614276874456 -6.4006181257404995 -42.909156047905398 0.853534330196136 15.884805720642746 -12.821331640496737 -43.590906126223807 0.85353433019614511 10.844493841021357 -18.105818622530116 -44.272448158171009 0.853534330196143 3.8723381437981983 -21.125603403406668 -44.953053056798133 0.85353433019612113 -3.8226607444034757 -21.119748917213801 -45.633972920523028 0.8535343301961672 -10.779914708318561 -18.09546809959846 -46.313629254446184 0.8535343301961168 -15.79987602051995 -12.821526144723595 -46.993246927804272 0.85353433019615088 -18.309094214745059 -6.4265030602175646 -47.672135275118876 0.85353433019613645 -18.308540117168594 -0.036832042470852588 -48.350480336047056 0.85353433019613967 --22.357025574426341 0.20626159568989655 -32.804467427428705 1.0383466998475139 -22.406812717808002 7.9931753540600932 -33.636078520367576 1.0383466998474999 -19.398074771239564 15.845070985492782 -34.472492103050755 1.0383466998475714 -13.283578842446918 22.392305931478116 -35.316202764633687 1.0383466998473936 -4.7230292113799237 26.213001628771998 -36.157921407613586 1.0383466998476718 4.8338666748043151 26.314755238427718 -37.014004808584673 1.038346699847368 13.558411840626125 22.628200621871017 -37.863475077113186 1.0383466998476121 19.913377557529898 16.065162079387406 -38.722891112398699 1.0383466998474677 23.131028648588675 8.0383728883990422 -39.582672974419332 1.0383466998475264 23.178774241426364 -0.032157549249891559 -40.445359407197074 1.0383466998475139 23.22653005241715 -8.1026813738211274 -41.308079741603578 1.0383466998475062 20.104338488071271 -16.212686654754442 -42.172876985225408 1.0383466998475326 13.78722318405751 -22.942751270444781 -43.042541243081459 1.0383466998474922 4.9842494344045525 -26.837148498546032 -43.906638203403027 1.0383466998475241 -4.792485627024142 -26.904694104311368 -44.783403734427097 1.0383466998475215 -13.670826359008434 -23.119084439842219 -45.649569596075366 1.0383466998475004 -20.107644834872588 -16.437575329246098 -46.52341018351634 1.0383466998475213 -23.352762452206282 -8.3072393372099533 -47.394430922074982 1.0383466998475122 -23.398266976517984 -0.16095741865715496 -48.265425100622316 1.0383466998475139 --26.356447649730445 0.11100674828743262 -33.857028069393003 1.036729623209609 -26.399262949120907 9.2782340872552815 -34.840046026598628 1.0367296232096048 -22.841427732871484 18.490411887138254 -35.825840491828032 1.0367296232096304 -15.650943862976014 26.136913265042253 -36.818881508208264 1.0367296232095649 -5.6343774525939914 30.553929915945801 -37.802436816458531 1.0367296232096572 5.4873116948971612 30.615491652144271 -38.805733024484937 1.0367296232095797 15.57606649627833 26.295564981414223 -39.791488778804997 1.0367296232096159 22.879821951437005 18.687152846281389 -40.788975901558686 1.036729623209611 26.551344623015673 9.4464422477191619 -41.781393553191499 1.0367296232096082 26.590555051945024 0.19841058453933647 -42.773217728498743 1.036729623209609 26.629760271826875 -9.0496165976107896 -43.765098627188578 1.0367296232096044 23.036516906594951 -18.297795575001409 -44.755011238908558 1.0367296232096184 15.81837908090894 -25.920861689766436 -45.74731985974919 1.036729623209603 5.829309843461739 -30.272803451903865 -46.725626544573963 1.0367296232096022 -5.1802903051973868 -30.277621320482631 -47.718377778458112 1.0367296232096306 -15.094531536520421 -25.980713067250655 -48.689460331510539 1.0367296232095844 -22.225613234812638 -18.502494391051393 -49.667094498910743 1.0367296232096244 -25.789907651815554 -9.4821711857118203 -50.635196177285387 1.0367296232096046 -25.82563980956661 -0.49813646047316285 -51.598067558272582 1.036729623209609 +9 1 1 1 0 6 8 6 17 2 3 -17.981512179334274 0.84042476330659766 -28.077972952955911 1.6690784610682365 -17.651392510760992 7.9017378134806808 -28.827972088910567 1.6690784610682363 -14.151544987446817 14.815106642339725 -29.577982658051724 1.669078461068235 -7.5656563446885645 19.920051213949069 -30.327946301192675 1.669078461068239 1.010800351398685 21.610275420453149 -31.078009311273391 1.6690784610682357 9.3897022178514007 19.127957723064561 -31.827946432501825 1.6690784610682354 15.471858555796647 13.430333241833845 -32.577982405128026 1.6690784610682377 18.311516678733131 6.2208881208994775 -33.327972278446104 1.6690784610682368 17.981512179334292 -0.84042476330657978 -34.077972952955911 1.6690784610682365 17.651386958734061 -7.9017378121194062 -34.827972076082553 1.669078461068231 14.151566787650477 -14.815106647684685 -35.577982708421388 1.6690784610682536 7.5656061397615959 -19.92005120164054 -36.327946185193419 1.6690784610682063 -1.0107178580999587 -21.610275440676507 -37.078009501875435 1.6690784610682667 -9.3898053344737917 -19.127957697786055 -37.8279461942493 1.6690784610682168 -15.471758145945618 -13.430333266449047 -38.577982637126595 1.6690784610682459 -18.311592979442608 -6.2208881021941487 -39.327972102151982 1.6690784610682345 -17.98146776312106 0.84042475241772485 -40.077973055580415 1.6690784610682365 +-21.302564512163308 0.95667006019684209 -28.07793455648671 1.0367296232096095 -20.926785083847118 9.3224526717929841 -28.827924396539018 1.0367296232096126 -16.79596543467942 17.517970370118565 -29.577939034005869 1.0367296232095986 -9.0050054354585498 23.583360246109493 -30.327874989247498 1.0367296232096301 1.1503942810496897 25.598349141620222 -31.078000954403539 1.0367296232095846 11.081667195522662 22.681659530774549 -31.827851561182715 1.0367296232096292 18.298791463970272 15.941687505362991 -32.577984160427349 1.036729623209599 21.678229360723535 7.4091072930141468 -33.327890579779051 1.0367296232096128 21.302564512163343 -0.95667006019682033 -34.077934556486724 1.0367296232096095 20.92677952323934 -9.3224529146389443 -34.827926685310359 1.036729623209607 16.795987268576123 -17.517969416576069 -35.57793004707505 1.0367296232096181 9.0049551529375691 -23.583362442077483 -36.327895685761305 1.0367296232095955 -1.1503116602532941 -25.59834553335487 -37.077966947308205 1.0367296232096217 -11.081770471517395 -22.681664041106583 -37.827894070052068 1.0367296232096028 -18.29869089893041 -15.941683113425798 -38.577942767399229 1.0367296232096113 -21.678305779359732 -7.4091106304146397 -39.327922034037499 1.0367296232096099 -21.302520027302581 0.95667200296628163 -40.077916246315567 1.0367296232096095 +-21.794624604537386 0.54007084947295625 -32.16408877414819 1.0383466998475139 -21.582485972319436 9.0991332184395173 -32.914077709247366 1.0383466998475122 -17.528531351757028 17.561040109493202 -33.664087486278035 1.038346699847519 -9.6890656709257357 23.921705689941007 -34.414038171441646 1.0383466998475051 0.64930819198544842 26.189251485294239 -35.16414078307497 1.0383466998475235 10.86159278215364 23.412639510133864 -35.914011252646802 1.0383466998475073 18.376860967003715 16.671194665743155 -36.664139336437053 1.0383466998475175 22.006708146581566 8.0189856068240122 -37.414038853864504 1.038346699847513 21.79462460453739 -0.54007084947294459 -38.164088774148205 1.0383466998475139 21.582483274185112 -9.0991334974691469 -38.914080339040659 1.0383466998475084 17.528541946064177 -17.561039013874566 -39.664077160314108 1.0383466998475321 9.6890412726939275 -23.921708213103859 -40.414061951690769 1.0383466998474844 -0.64926810248116773 -26.189247339405295 -41.164101708996945 1.0383466998475408 -10.861642894033364 -23.412644692495185 -41.914060095244416 1.0383466998474993 -18.376812170541637 -16.671189619417063 -42.66409177593863 1.038346699847519 -22.006745226655166 -8.0189894414899481 -43.414074994738364 1.0383466998475133 -21.79460301946348 0.54007308171081425 -44.164067735801787 1.0383466998475139 +-18.009273604325472 0.049761837145821081 -35.53435224789834 0.85353433019613967 -17.989727110750195 7.1219873613547096 -36.284352168111418 0.85353433019614056 -14.795462195902928 14.1855261712866 -37.034352802044808 0.85353433019613723 -8.4368000300465376 19.577641627092277 -37.784350578655904 0.853534330196145 0.059849156116241531 21.643637728767708 -38.534354478709297 0.85353433019613245 8.5448034032982747 19.530741354530022 -39.284350512878689 0.85353433019614688 14.873638070595643 14.103533354951546 -40.034352928742884 0.85353433019613489 18.028813330227919 7.022463661421412 -40.78435207316663 0.85353433019614156 18.009273604325458 -0.049761837145799848 -41.53435224789834 0.85353433019613967 17.989726784381752 -7.1219873620364655 -42.284352174537418 0.85353433019613456 14.795463477398634 -14.185526168609476 -43.034352776812902 0.85353433019615799 8.4367970788169053 -19.577641633257947 -43.784350636763961 0.85353433019610858 -0.059844306857321783 -21.643637718636469 -44.534354383230024 0.85353433019617031 -8.5448094648720563 -19.530741367193993 -45.284350632227842 0.85353433019612057 -14.873632168135847 -14.103533342620278 -46.034352812526635 0.85353433019614688 -18.028817815463796 -7.0224636707916819 -46.784352161478445 0.85353433019613867 -18.009270993377413 0.049761842600367923 -47.534352196490246 0.85353433019613967 +-14.198826751573161 0.27419856320761904 -32.1641765932456 1.0383466998475139 -14.091119567662586 5.849722553100702 -32.914186789616402 1.0383466998475122 -11.480302916189874 11.379142191965517 -33.664187261710147 1.038346699847519 -6.3970354233855078 15.543109964071213 -34.414201273696534 1.0383466998475051 0.33003370761587281 17.067865017139567 -35.164159896621783 1.0383466998475235 6.9917880766849949 15.284733697193527 -35.914228239099828 1.0383466998475073 11.91119624317064 10.927310676207377 -36.664135321775518 1.0383466998475175 14.306477497211844 5.3013311612191236 -37.414225712275112 1.038346699847513 14.198826751573172 -0.27419856320759717 -38.164176593245585 1.0383466998475139 14.091116889154222 -5.8497222735877523 -38.914184155269801 1.0383466998475084 11.480313433434809 -11.379143289481732 -39.664197605552836 1.0383466998475321 6.3970112026249462 -15.543107436539099 -40.414177452273407 1.0383466998474844 -0.32999390972029463 -17.067869170206624 -41.164199038354006 1.0383466998475408 -6.9918378240541328 -15.28472850586021 -41.914179311934561 1.0383466998474993 -11.911147801650596 -10.927315731270255 -42.664182964621801 1.038346699847519 -14.306514307567678 -5.3013273199137858 -43.414189508825594 1.0383466998475133 -14.198805323507534 0.27419632710468295 -44.164197668018659 1.0383466998475139 +-14.660459846505239 0.72417946641635 -28.078011349425104 1.036729623209609 -14.375999937674855 6.4810229551683074 -28.828019781282222 1.0367296232096108 -11.507124540214253 12.112242914561266 -29.578026282097177 1.0367296232096026 -6.1263072539187178 16.256742181787757 -30.328017613138556 1.0367296232096219 0.87120642174833574 17.622201699287281 -31.078017668142351 1.0367296232095928 7.6977372401791291 15.574255915353747 -31.828041303821703 1.0367296232096221 12.644925647623779 10.918978978305024 -32.577980649828234 1.0367296232096015 14.944803996742507 5.0326689487847434 -33.328053977113299 1.0367296232096117 14.660459846505258 -0.72417946641632991 -34.07801134942509 1.036729623209609 14.375994394228943 -6.4810227095997979 -34.828017466854732 1.0367296232096064 11.507146306724259 -12.112243878793514 -35.578035369767711 1.0367296232096179 6.1262571265865491 -16.256739961203021 -36.327996684625681 1.0367296232095975 -0.87112405594762166 -17.622205347999117 -37.07805205644236 1.0367296232096139 -7.6978401974294455 -15.574251354464524 -37.82799831844676 1.0367296232096126 -12.644825392961224 -10.918983419472923 -38.578022506853856 1.0367296232096035 -14.944880179525374 -5.0326655739734685 -39.328022170266472 1.0367296232096119 -14.660415498939546 0.7241775018691734 -40.078029864845256 1.036729623209609 0 6 6.2831853071795862 6 -0 10 -3.1415926535897931 9 -6.2831853071795862 10 +0 9 +3.1415926535897931 8 +6.2831853071795862 9 -9 1 1 1 0 6 9 6 19 2 3 -23.379019110712967 -0.6201452807730039 -53.843521314559368 1.6690784610682365 -23.371829477309429 7.5194958165401777 -54.713822982903466 1.6690784610682248 -20.167440653252903 15.56736634959719 -55.574220126475787 1.6690784610682914 -13.84891037718463 22.090606946000495 -56.427027018768271 1.6690784610681222 -5.240766398980961 25.707739251661071 -57.263426130715651 1.6690784610683778 4.0911951748167974 25.577870103823962 -58.098348588772019 1.669078461068116 12.362769114340839 21.864541758553365 -58.913160925132587 1.6690784610683136 18.222702226431739 15.585807410655619 -59.722172974170014 1.6690784610682001 21.100603491491434 8.1250004744868853 -60.517443095504262 1.6690784610682476 21.091657842035357 0.77480237949982866 -61.301130130116341 1.6690784610682365 21.082663770535806 -6.575407697312059 -62.084838940526645 1.6690784610682219 18.186482216942441 -13.812476106711713 -62.856465923507422 1.6690784610682809 12.505936556877963 -19.640984074240212 -63.617035436348445 1.6690784610681595 4.8101764364594208 -22.841186312628242 -64.362543031008158 1.6690784610683351 -3.4799599609242722 -22.690896430372312 -65.099452642635882 1.6690784610681413 -10.786241772704578 -19.379362359069127 -65.819985701007624 1.6690784610683038 -15.936094367086206 -13.833780338421825 -66.52988710731303 1.6690784610682032 -18.4544529136524 -7.2760464326348693 -67.226165798566242 1.6690784610682463 -18.444757966731014 -0.83937004179244967 -67.90966601067079 1.6690784610682365 --20.932398411859307 -0.74215410107285162 -56.088975070846161 1.0367296232096095 -20.882310931084358 6.5530918488668979 -56.866654739502877 1.0367296232096073 -17.966655356881585 13.7076193571556 -57.631009684711238 1.0367296232096246 -12.305681230366687 19.435448278798795 -58.382916820408084 1.0367296232095771 -4.6811806600640153 22.539355799623369 -59.118898946439387 1.0367296232096401 3.4883155860294162 22.326490603569745 -59.844459001923873 1.0367296232095977 10.648429309346785 19.013469228883753 -60.553075436543189 1.036729623209605 15.661755438728228 13.532553709090102 -61.249482060347511 1.0367296232096164 18.083321516424995 7.0907386116568203 -61.931291293275116 1.0367296232096075 18.032659364034402 0.79628994354864258 -62.599193365899453 1.0367296232096095 17.981940261579471 -5.4981753477334481 -63.267097194132553 1.0367296232096055 15.458691916294537 -11.645332652004534 -63.921083792475429 1.036729623209615 10.590079183881446 -16.533687497399416 -64.560498573000487 1.0367296232096119 4.0694809544336783 -19.156060560364562 -65.187605144206785 1.0367296232095931 -2.8747113183738011 -18.942980659097419 -65.797890972337797 1.0367296232096359 -8.9303656270653899 -16.111333760964563 -66.397600980158927 1.0367296232095855 -13.150568893878866 -11.47029629753591 -66.981452392118882 1.0367296232096228 -15.179183045457954 -6.0368250779473822 -67.552799727256286 1.0367296232096057 -15.129122256127143 -0.74446992696344338 -68.110801215660985 1.0367296232096095 --17.802439392693199 -0.44001183948490308 -53.401150500771152 1.0383466998475139 -17.749827567927071 5.7749949970780348 -54.060338509267474 1.0383466998474999 -15.255971270328857 11.889540268522886 -54.710813591645007 1.0383466998475714 -10.405643619323151 16.806585302847378 -55.352050128309301 1.0383466998473936 -3.8421611406885514 19.49826926652122 -55.985894886330669 1.0383466998476718 3.2359514739037696 19.340331513733968 -56.608779525530551 1.038346699847368 9.4900781786605819 16.472745233338838 -57.225553358355853 1.0383466998476121 13.901833314845469 11.676847690743184 -57.832177896699434 1.0383466998474677 16.045650191281297 5.9904648741888762 -58.431168800322013 1.0383466998475264 15.993541083689877 0.39977098660371979 -59.021889397413723 1.0383466998475139 15.941398762933204 -5.190934018316538 -59.61259760943306 1.0383466998475062 13.693210856247571 -10.6877587191412 -60.195353694689267 1.0383466998475326 9.3286036803987535 -15.102641007029522 -60.768730766364548 1.0383466998474922 3.4262446608985435 -17.518455360691622 -61.337968618109471 1.0383466998475241 -2.9372764452382309 -17.373771646708608 -61.893625837133385 1.0383466998475215 -8.5646187956558464 -14.791877869393637 -62.447997020262392 1.0383466998475004 -12.537443217248914 -10.473206878205932 -62.991233948536262 1.0383466998475213 -14.468905205838084 -5.3446604190321505 -63.529155888790996 1.0383466998475122 -14.417980187777893 -0.29773688575525892 -64.060240652490435 1.0383466998475139 --18.308540117168597 -0.036832042470837933 -48.350480336047056 0.85353433019613967 -18.307983695412826 6.3528394390191201 -49.02882749176684 0.85353433019612557 -15.797638941045282 12.737025428321687 -49.706581801328156 0.85353433019619729 -10.78608203524205 17.989161245977677 -50.383874811098494 0.85353433019601743 -3.8563491162681602 20.988541871832275 -51.060204896470637 0.85353433019630476 3.7886435840190904 20.98064939976517 -51.736420279855764 0.85353433019598357 10.698194568382092 17.97526222495534 -52.411463491597473 0.85353433019624458 15.682205900998792 12.737505712500351 -53.086145774085047 0.85353433019609182 18.172837244310941 6.3882186176240472 -53.760017653191177 0.8535343301961521 18.172181291254052 0.045609024374098972 -54.433201441650844 0.85353433019613967 18.171522465401122 -6.2970012876327317 -55.106386447612294 0.853534330196136 15.679556448402742 -12.632916050896409 -55.778855571972855 0.85353433019614511 10.705981135179414 -17.843764751291943 -56.450663787666805 0.853534330196143 3.830474547033166 -20.818437168911171 -57.121595271567102 0.85353433019612113 -3.7527084911608535 -20.809407423946872 -57.791995724340964 0.8535343301961672 -10.605086571367469 -17.827885511157429 -58.461451678028183 0.8535343301961168 -15.547101130930258 -12.633555788435547 -59.130266409559525 0.85353433019615088 -18.016494744266925 -6.3376786880408718 -59.798283903263354 0.85353433019613645 -18.01579896186416 -0.049041156271865116 -60.465548522719359 0.85353433019613967 --23.398266976517998 -0.16095741865714119 -48.265425100622316 1.0383466998475139 -23.443769648093465 7.9853212572773336 -49.136454994116392 1.0383466998474999 -20.289532489394325 16.143090287174594 -50.006594523487323 1.0383466998475714 -13.935264795163917 22.879373829615353 -50.878605548989583 1.0383466998473936 -5.1220265954412083 26.744888051919556 -51.742120619184462 1.0383466998476718 4.6148371484332111 26.77677603556733 -52.615135223044703 1.038346699847368 13.411057827584401 22.993621277791814 -53.474796707615411 1.0383466998476121 19.75914363763026 16.372979667878361 -54.338968541664002 1.0383466998474677 22.946674821771172 8.355993402429835 -55.197463327244847 1.0383466998475264 22.98997827973588 0.35062536150952628 -56.053003348281813 1.0383466998475139 23.033268029534582 -7.6547431812097635 -56.908576773742332 1.0383466998475062 19.932119982786869 -15.644375463060893 -57.760395942474069 1.0383466998475326 13.710487451555561 -22.209543970758176 -58.610873994011961 1.0383466998474922 5.1203381554400469 -25.946949546183244 -59.450914636440501 1.0383466998475241 -4.3215805388988988 -25.945877026413466 -60.296181463030649 1.0383466998475215 -12.809315545256982 -22.266401641131864 -61.126895014779038 1.0383466998475004 -18.908402265262612 -15.878887127749227 -61.958429199602833 1.0383466998475213 -21.959990964043378 -8.178965320594628 -62.782089885126013 1.0383466998475122 -22.001389326760815 -0.5147891981619761 -63.600211057919552 1.0383466998475139 --25.825639809566635 -0.49813646047315263 -51.598067558272582 1.036729623209609 -25.861348023534408 8.4858997842136716 -52.56099122630409 1.0367296232096048 -22.368225949624275 17.427113342038368 -53.517430568240293 1.0367296232096304 -15.392139524003323 24.74576561320259 -54.471137217128486 1.0367296232095649 -5.800352137895409 28.876122703698478 -55.407953314992007 1.0367296232096572 4.6940747636001321 28.829249604078399 -56.352238175619974 1.0367296232095797 14.077108919338936 24.715614288222877 -57.273246413722163 1.0367296232096159 20.783649014132806 17.639061112221249 -58.194863887992419 1.036729623209611 24.11788546655858 9.1592623373168571 -59.103594897733444 1.0367296232096082 24.150656320036305 0.75331481545101298 -60.003066894333237 1.036729623209609 24.183387279491797 -7.6526400468904452 -60.902580686920736 1.0367296232096044 20.91427251759151 -15.979619561420012 -61.791848054539386 1.0367296232096184 14.421793929872372 -22.74828065107819 -62.673572299696531 1.036729623209603 5.5508719184872897 -26.526312064896441 -63.537480917809411 1.0367296232096022 -4.0852086034757331 -26.438812201642424 -64.401014312933853 1.0367296232096306 -12.642117918343917 -22.647390957176778 -65.242370421856663 1.0367296232095844 -18.721619840293123 -16.197264379306635 -66.078321822506908 1.0367296232096244 -21.729722781847002 -8.5152677873225073 -66.899531869876284 1.0367296232096046 -21.760393677334871 -0.93427015662147106 -67.708530805680596 1.036729623209609 +9 1 1 1 0 6 8 6 17 2 3 -17.981467763121064 0.84042475241774195 -40.077973055580415 1.6690784610682365 -17.651348098824968 7.901720356435602 -40.827972191657778 1.6690784610682363 -14.151508408692141 14.815071765544909 -41.577982760763661 1.669078461068235 -7.5656354172054607 19.920002948145257 -42.32794640420866 1.669078461068239 1.0108003382870434 21.610222083403336 -43.078009413562462 1.6690784610682357 9.3896812667062655 19.127909467567058 -43.827946535833036 1.6690784610682354 15.471821959915417 13.430298382955771 -44.577982507232939 1.6690784610682377 18.311472258233881 6.2208706856998877 -45.327972381648166 1.6690784610682368 17.981467763121088 -0.84042475241772407 -46.077973055580415 1.6690784610682365 17.651342546798109 -7.9017203550710597 -46.827972178798916 1.669078461068231 14.151530208895462 -14.815071770902655 -47.577982811254472 1.6690784610682536 7.5655852122792089 -19.920002935807194 -48.327946287930445 1.6690784610682063 -1.0107178449892711 -21.610222103675376 -49.078009604622707 1.6690784610682667 -9.3897843833276742 -19.127909442227619 -49.827946297008062 1.6690784610682168 -15.47172155006535 -13.430298407630239 -50.577982739788581 1.6690784610682459 -18.311548558942498 -6.2208706669496099 -51.327972204930916 1.6690784610682345 -17.981423346908429 0.8404247415027456 -52.077973158451172 1.6690784610682365 +-21.302520027302585 0.9566720029662954 -40.077916246315567 1.0367296232096095 -20.926739835864666 9.3224371414221743 -40.827906086488618 1.0367296232096126 -16.795927264820303 17.517937048921166 -41.577920723944956 1.0367296232095986 -9.0049823554303856 23.583312826313538 -42.327856679405691 1.0367296232096301 1.1503966176521212 25.598295722073711 -43.077982643981919 1.0367296232095846 11.081648332025583 22.681610279977654 -43.827833251656415 1.0367296232096292 18.298756346195848 15.941650983026875 -44.577965849758634 1.036729623209599 21.678185638708033 7.4090878771718423 -45.32787227018413 1.0367296232096128 21.302520027302617 -0.95667200296628385 -46.077916246315581 1.0367296232096095 20.926734275244016 -9.3224373842650241 -46.827908375229121 1.036729623209607 16.795949098767554 -17.517936095391033 -47.577911737135153 1.0367296232096181 9.0049320727930429 -23.58331502225283 -48.327877375640796 1.0367296232095955 -1.1503139966646554 -25.598292113855898 -49.077948637344548 1.0367296232096217 -11.081751608259003 -22.68161479024992 -49.827875759953322 1.0367296232096028 -18.298655780923703 -15.941646591148254 -50.577924457287978 1.0367296232096113 -21.678262057520648 -7.4090912145275745 -51.327903724018924 1.0367296232096099 -21.302475542339199 0.95667394570956743 -52.077897936391068 1.0367296232096095 +-21.79460301946348 0.54007308171083479 -44.164067735801787 1.0383466998475139 -21.582463510420286 9.0991269722962258 -44.914056670958118 1.0383466998475122 -17.528511817943716 17.561025003666831 -45.664066448000014 1.038346699847519 -9.6890530724867823 23.921683288434039 -46.414017133213783 1.0383466998475051 0.64931087674635091 26.189225564863836 -47.164119744663147 1.0383466998475235 10.861585028519642 23.412615004781895 -47.913990214572046 1.0383466998475073 18.376844940042147 16.671175881831818 -48.664118297864121 1.0383466998475175 22.006687438022073 8.0189748962374008 -49.414017815796264 1.038346699847513 21.794603019463494 -0.54007308171081969 -50.164067735801801 1.0383466998475139 21.58246081227119 -9.0991272513241519 -50.914059300736469 1.0383466998475084 17.52852241230876 -17.561023908054811 -51.664056122094763 1.0383466998475321 9.689028674121662 -23.921685811581789 -52.414040913327767 1.0383466998474844 -0.64927078702308094 -26.189221418999342 -53.164080670807252 1.0383466998475408 -10.861635140673116 -23.412620187113028 -53.914039056891937 1.0383466998474993 -18.376796143313438 -16.671170835534788 -54.664070737636173 1.038346699847519 -22.006724518298316 -8.0189787308814147 -55.414053956464564 1.0383466998475133 -21.794581434271631 0.54007531393598873 -56.164046697575053 1.0383466998475139 +-18.00927099337742 0.049761842600382487 -47.534352196490246 0.85353433019613967 -17.989724497659612 7.1219863412600732 -48.284352116710537 0.85353433019614056 -14.795460040882173 14.18552412612174 -49.034352750641958 0.85353433019613723 -8.4367987932382604 19.577638792722698 -49.784350527270604 0.853534330196145 0.059849162675867262 21.643634593420447 -50.534354427281755 0.85353433019613245 8.5448021783264778 19.53073851502203 -51.284350461511963 0.85353433019614688 14.873635924143063 14.103531300797794 -52.034352877304293 0.85353433019613489 18.028810721421046 7.0224626304215825 -52.784352021792508 0.85353433019614156 18.00927099337741 -0.049761842600363336 -53.534352196490246 0.85353433019613967 17.989724171291108 -7.121986341941656 -54.284352123134724 0.85353433019613456 14.795461322378145 -14.185524123445262 -55.034352725417172 0.85353433019615799 8.4367958420081237 -19.577638798886827 -55.784350585362269 0.85353433019610858 -0.059844313416238748 -21.643634583291838 -56.534354331829398 0.85353433019617031 -8.5448082399010623 -19.53073852768264 -57.284350580827486 0.85353433019612057 -14.873630021682541 -14.103531288469865 -58.034352761120786 0.85353433019614688 -18.02881520665742 -7.0224626397892687 -58.784352110079453 0.85353433019613867 -18.009268382429081 0.049761848053397582 -59.534352145096641 0.85353433019613967 +-14.198805323507537 0.27419632710470521 -44.164197668018659 1.0383466998475139 -14.091099017940342 5.8497119003333529 -44.914207864451043 1.0383466998475122 -11.480287021496423 11.379123528230449 -45.664208336499883 1.038346699847519 -6.397027748174418 15.543085627602277 -46.414222348729261 1.0383466998475051 0.33003101819054859 17.06783928539485 -47.164180971136645 1.0383466998475235 6.9917755482538917 15.28471146825445 -47.914249314284547 1.0383466998475073 11.911176835533027 10.927295696901805 -48.664156396272475 1.0383466998475175 14.306455191104284 5.3013249806907652 -49.414246787329155 1.038346699847513 14.198805323507543 -0.27419632710468161 -50.164197668018637 1.0383466998475139 14.091096339446771 -5.8497116208187512 -50.9142052300896 1.0383466998475084 11.48029753868332 -11.379124625753041 -51.664218680400872 1.0383466998475321 6.397003527547505 -15.543083100055608 -52.414198527171884 1.0383466998474844 -0.32999122051457963 -17.067843438485657 -53.164220113089456 1.0383466998475408 -6.9918252953485256 -15.284706276891599 -53.914200386843511 1.0383466998474993 -11.91112839428023 -10.927300751993293 -54.664204039387307 1.038346699847519 -14.306492001257091 -5.3013211393637389 -55.414210583675569 1.0383466998475133 -14.198783895560062 0.27419409098916941 -56.164218742910514 1.0383466998475139 +-14.660415498939553 0.72417750186918883 -40.078029864845256 1.036729623209609 -14.375956361785244 6.4810035714488556 -40.82803829682701 1.0367296232096108 -11.50708955256402 12.112206482169308 -41.578044797582187 1.0367296232096026 -6.1262884789806016 16.256693069975498 -42.328036129011814 1.0367296232096219 0.87120405892228892 17.622148444734997 -43.078036183142963 1.0367296232095928 7.6977142013864972 15.574208655154777 -43.828059820009514 1.0367296232096221 12.644887573635295 10.918945782885483 -44.577999164707308 1.0367296232096015 14.944758877759661 5.0326534942277341 -45.328072493112181 1.0367296232096117 14.660415498939567 -0.72417750186916707 -46.078029864845242 1.036729623209609 14.375950818352223 -6.4810033258771478 -46.828035982368746 1.0367296232096064 11.507111319023338 -12.112207446414146 -47.578053885373492 1.0367296232096179 6.1262383517653651 -16.256690849361721 -48.328015200220882 1.0367296232095975 -0.87112169331398714 -17.622152093494702 -49.078070571899765 1.0367296232096139 -7.6978171583960489 -15.574204094205488 -49.828016834063689 1.0367296232096126 -12.644787319207296 -10.9189502241121 -50.57804102228878 1.0367296232096035 -14.944835060364234 -5.0326501193717155 -51.328040685842971 1.0367296232096119 -14.66037115147766 0.72417553729592543 -52.078048380511284 1.036729623209609 0 6 6.2831853071795862 6 -0 10 -3.1415926535897931 9 -6.2831853071795862 10 +0 9 +3.1415926535897931 8 +6.2831853071795862 9 -9 1 1 1 0 6 9 6 19 2 3 -18.444757966731007 -0.8393700417924399 -67.90966601067079 1.6690784610682365 -18.435010561885594 5.5973213507091391 -68.593170764436493 1.6690784610682248 -15.896840776778301 11.912667179762195 -69.263821421638909 1.6690784610682914 -10.941321180007915 16.970493681166445 -69.921233298323813 1.6690784610681222 -4.2588412986322304 19.726128697165983 -70.566680716001542 1.6690784610683778 2.9026406601250123 19.572901957298019 -71.19740870837731 1.669078461068116 9.1880324628532009 16.703757638445044 -71.817398197187458 1.6690784610683136 13.602487568394078 11.934382532423003 -72.423161056628032 1.6690784610682001 15.755447422359968 6.3116442174880021 -73.017004642541977 1.6690784610682476 15.746135789731259 0.80633949128572402 -73.59836040622271 1.6690784610682365 15.736773763792979 -4.698981511817184 -74.179702949292235 1.6690784610682219 13.564785931510361 -10.088874319407127 -74.748913969793279 1.6690784610682809 9.337018285879104 -14.389695487160269 -75.304244479320857 1.6690784610681595 3.650877481362798 -16.72482624509049 -75.852099372761685 1.6690784610683351 -2.4263755482558942 -16.586488060821875 -76.380825167265471 1.6690784610681413 -7.7540019681316643 -14.148882078280831 -76.90569932262207 1.6690784610683038 -11.493264298818001 -10.108500932774497 -77.414406329958041 1.6690784610682032 -13.317462848385645 -5.3439471934803873 -77.914283635598252 1.6690784610682463 -13.309622564979787 -0.67955195450329464 -78.403416023855868 1.6690784610682365 --15.129122256127157 -0.74446992696342473 -68.110801215660985 1.0367296232096095 -15.079007755807055 4.5479029222311365 -68.668785317140021 1.0367296232096073 -12.949940129101357 9.7016865255826481 -69.213878302783087 1.0367296232096246 -8.8624555228394328 13.780286755178015 -69.743969586556673 1.0367296232095771 -3.407800573276563 15.955618994887342 -70.266801536388527 1.0367296232096401 2.3807825361829176 15.761503323439573 -70.768369842069603 1.0367296232095977 7.4196267789038659 13.390952011791249 -71.266959657748501 1.036729623209605 10.925649570514164 9.5239897993230684 -71.747887053163439 1.0367296232096164 12.607748303140415 4.9982087491428331 -72.219857345963078 1.0367296232096075 12.559448543384018 0.59272036390122818 -72.68059527815565 1.0367296232096095 12.511104557931485 -3.8127847391502407 -73.141298677020103 1.0367296232096055 10.732150624908673 -8.1027136942421478 -73.591636364570846 1.036729623209615 7.3237210321969224 -11.49544767758119 -74.028286583020503 1.0367296232096119 2.7730884075886904 -13.310220510892353 -74.463571268356802 1.0367296232095931 -2.0639697698160302 -13.152042594414372 -74.875621858839537 1.0367296232096359 -6.2919013333203742 -11.168685724334528 -75.292637301970828 1.0367296232095855 -9.2457403290197586 -7.9199763138052202 -75.692241233482633 1.0367296232096228 -10.668057516927323 -4.0956735821875014 -76.087476207966205 1.0367296232096057 -10.62247365759298 -0.35868868795490405 -76.474898696575025 1.0367296232096095 --14.417980187777896 -0.29773688575523716 -64.060240652490435 1.0383466998475139 -14.367028334320718 4.7491969997067081 -64.591302500627791 1.0383466998474999 -12.333614737745123 9.7176596022113362 -65.116097962014351 1.0383466998475714 -8.3843204467252725 13.714625621060684 -65.632464108847515 1.0383466998473936 -3.0329090892679829 15.912346308205901 -66.148425776408502 1.0383466998476718 2.7532433932079767 15.791323711735952 -66.649765212793781 1.038346699847368 7.8909407261677229 13.445059919542128 -67.154792521902976 1.0383466998476121 11.531983351627197 9.4997890694504097 -67.64899627232559 1.0383466998474677 13.308145162263738 4.7926973474837755 -68.140821230019625 1.0383466998475264 13.258983633069928 0.14577540319061066 -68.628037420729171 1.0383466998475139 13.209804767018685 -4.5011549273927436 -69.115222800686738 1.0383466998475062 11.335294620256057 -9.0920587927805734 -69.598556434557707 1.0383466998475326 7.6826075831516443 -12.803955816296092 -70.075390176314755 1.0383466998474922 2.7078966555595096 -14.866721578317783 -70.555602036674998 1.0383466998475241 -2.7052540997927288 -14.777015552335964 -71.02185011360514 1.0383466998475215 -7.5473881100734301 -12.588917075831542 -71.49633067855585 1.0383466998475004 -11.002381805616707 -8.869796080624015 -71.961557905693439 1.0383466998475213 -12.698358493957539 -4.3987651797930942 -72.42761862460857 1.0383466998475122 -12.651334771300277 0.038441382712321115 -72.891835116947391 1.0383466998475139 --18.015798961864157 -0.049041156271836694 -60.465548522719359 0.85353433019613967 -18.015100092136365 6.239597265689472 -61.132813340720901 0.85353433019612557 -15.544290426878817 12.521110714904337 -61.799322494236137 0.85353433019619729 -10.61350632624216 17.686537753787103 -62.465047987889115 0.85353433019601743 -3.7977234710623371 20.635071305120579 -63.130084902439798 0.85353433019630476 3.719034470713801 20.625937257305704 -63.794236210878601 0.85353433019598357 10.511418538852748 17.670476859404619 -64.457780530441767 0.85353433019624458 15.410273468624556 12.521765035886153 -65.120477906869681 0.85353433019609182 17.85824827528031 6.2807607187109049 -65.782483922854894 0.8535343301961521 17.85757932154754 0.046729304759574042 -66.443759835537733 0.85353433019613967 17.856907424994176 -6.1873030673045353 -67.105034904641485 0.853534330196136 15.407571387222102 -12.414611614242769 -67.765602405405048 0.85353433019614511 10.519411794576939 -17.535764675111956 -68.425354627918651 0.853534330196143 3.7619046139099819 -20.459768473041716 -69.084686503231396 0.85353433019612113 -3.6915375803397668 -20.451575222097425 -69.742881186250003 0.8535343301961672 -10.428083420716444 -17.521341816508418 -70.400876978127613 0.8535343301961168 -15.287635032936368 -12.415133952788485 -71.057918601755745 0.85353433019615088 -17.71650081655353 -6.2240838791646098 -71.714455141342384 0.85353433019613645 -17.715922229514717 -0.038942322315054234 -72.370369255013784 0.85353433019613967 --22.001389326760808 -0.51478919816195745 -63.600211057919552 1.0383466998475139 -22.042763720049589 7.1493911089944682 -64.418359469468442 1.0383466998474999 -19.073665591883859 14.774539296625203 -65.230326163486637 1.0383466998475714 -13.139031216931347 21.011158313238415 -66.037895636662725 1.0383466998473936 -4.9793804683974239 24.536127757856232 -66.834299228666367 1.0383466998476718 3.9468195311709771 24.508624933897543 -67.631048304099025 1.038346699847368 11.935578013130126 21.021996186849208 -68.413736813363087 1.0383466998476121 17.654356105599156 15.012757283136931 -69.193459987930581 1.0383466998474677 20.507455445693914 7.796742243688664 -69.964029393286495 1.0383466998475264 20.547466233780231 0.63435780013133769 -70.727118582560408 1.0383466998475139 20.587445578653579 -6.5280340212832435 -71.490225706803002 1.0383466998475062 17.814001675675822 -13.634737769302248 -72.245442381562739 1.0383466998475326 12.287352532734523 -19.423580891344855 -72.993717645407159 1.0383466998474922 4.715545946725813 -22.676491586504891 -73.731396254057373 1.0383466998475241 -3.5341362605953486 -22.632162320718901 -74.46449988620688 1.0383466998475215 -10.891454914723845 -19.405120736024852 -75.185671226443802 1.0383466998475004 -16.142842127641856 -13.875315095665631 -75.900435294931285 1.0383466998475213 -18.757988187049673 -7.2537740945408427 -76.605830391830779 1.0383466998475122 -18.797290286531982 -0.69542615892537407 -77.302674304623082 1.0383466998475139 --21.760393677334875 -0.9342701566214493 -67.708530805680596 1.036729623209609 -21.791013367964101 6.6467397791869143 -68.51755621173298 1.0367296232096048 -18.843741424455487 14.123647833942744 -69.313764540494589 1.0367296232096304 -13.020186837175853 20.160700607152538 -70.098497010091634 1.0367296232095649 -5.1098820239884919 23.496638399448205 -70.866559895613207 1.0367296232096572 3.4244987840673078 23.384300591152645 -71.626447574686466 1.0367296232095797 10.956438146802888 20.01656326510156 -72.367836736625563 1.0367296232096159 16.279325566273506 14.344775265521729 -73.098435060092854 1.036729623209611 18.903146541579744 7.6250796858334517 -73.81415193912089 1.0367296232096082 18.932823036078492 1.0199586186702168 -74.516125534289756 1.036729623209609 18.962442969654315 -5.5851782844841615 -75.218107221564267 1.0367296232096044 16.397421238112464 -12.075034944572165 -75.906191575016209 1.0367296232096184 11.350315539560725 -17.28394329673883 -76.580202375620019 1.036729623209603 4.5286665551370646 -20.139431979289842 -77.240627477168587 1.0367296232096022 -2.7887813266950867 -20.020933527227882 -77.886028475689102 1.0367296232096306 -9.2161026029440887 -17.129078432228077 -78.518761343275088 1.0367296232095844 -13.740788268615425 -12.297025551743525 -79.136571426432567 1.0367296232096244 -15.966868179844191 -6.5922208047732598 -79.741091063230499 1.0367296232096046 -15.996771472366575 -1.0004152210516883 -80.331933351136712 1.036729623209609 +9 1 1 1 0 6 8 6 17 2 3 -17.981423346908436 0.84042474150276025 -52.077973158451172 1.6690784610682365 -17.651303686899773 7.9017028993646141 -52.82797229465114 1.6690784610682363 -14.151471829958467 14.815036888729058 -53.577982863722262 1.669078461068235 -7.5656144897509101 19.919954682329529 -54.327946507470031 1.669078461068239 1.010800325143709 21.610168746354738 -55.078009516098987 1.6690784610682357 9.3896603155335026 19.127861212081889 -55.827946639409433 1.6690784610682354 15.471785364013735 13.430263524100026 -56.577982609584666 1.6690784610682377 18.311427837725113 6.2208532505265648 -57.327972485096325 1.6690784610682368 17.981423346908457 -0.84042474150274704 -58.077973158451172 1.6690784610682365 17.651298134873038 -7.9017028979968487 -58.827972281761525 1.669078461068231 14.151493630161406 -14.81503689409948 -59.577982914333752 1.6690784610682536 7.5655642848254931 -19.91995466996228 -60.327946390913958 1.6690784610682063 -1.0107178318473107 -21.610168766674757 -61.078009707615863 1.6690784610682667 -9.3897634321531775 -19.127861186682274 -61.827946400013367 1.6690784610682168 -15.471684954165285 -13.430263548833294 -62.577982842696734 1.6690784610682459 -18.311504138432603 -6.2208532317314829 -63.327972307956102 1.6690784610682345 -17.981378930696401 0.84042473056162958 -64.077973261568189 1.6690784610682365 +-21.302475542339206 0.95667394570958242 -52.077897936391061 1.0367296232096095 -20.926694587789818 9.3224216109850602 -52.827887776684825 1.0367296232096126 -16.795889094897209 17.517903727621015 -53.577902414130676 1.0367296232095986 -9.004959275382177 23.583265406394705 -54.327838369810578 1.0367296232096301 1.1503989542229949 25.598242302402969 -55.07796433380679 1.0367296232095846 11.081629468451863 22.681561029082236 -55.827814942376982 1.0367296232096292 18.298721228316154 15.941614460631362 -56.577947539336414 1.036729623209599 21.678141916579655 7.4090684613155053 -57.327853960835888 1.0367296232096128 21.302475542339245 -0.95667394570957187 -58.077897936391082 1.0367296232096095 20.926689027156364 -9.3224218538243466 -58.827890065394492 1.036729623209607 16.795910928894806 -17.517902774104719 -59.577893427442042 1.0367296232096181 9.0049089926288683 -23.583267602302751 -60.327859065766646 1.0367296232095955 -1.1503163330449473 -25.598238694235558 -61.07793032762784 1.0367296232096217 -11.081732744923523 -22.681565539292382 -61.827857450100893 1.0367296232096028 -18.298620662812006 -15.941610068812587 -62.577906147423562 1.0367296232096113 -21.678218335568602 -7.4090717986260932 -63.327885414246921 1.0367296232096099 -21.302431057273182 0.9566758884266735 -64.077879626713212 1.0367296232096095 +-21.794581434271635 0.54007531393601049 -56.164046697575053 1.0383466998475139 -21.582441048408242 9.0991207260936875 -56.914035632788568 1.0383466998475122 -17.528492284042891 17.561009897738192 -57.664045409841563 1.038346699847519 -9.6890404740065925 23.921660886791315 -58.413996095105738 1.0383466998475051 0.64931356149267039 26.189199644293829 -59.164098706370865 1.0383466998475235 10.861577274815749 23.41259049930601 -59.913969176617115 1.0383466998475073 18.376828912973615 16.67115709783922 -60.664097259410724 1.0383466998475175 22.006666729339642 8.018964185616916 -61.413996777847743 1.038346699847513 21.794581434271649 -0.54007531393599639 -62.164046697575074 1.0383466998475139 21.582438350244459 -9.0991210051200557 -62.914038262551948 1.0383466998475084 17.528502878465709 -17.561008802132331 -63.664035083995103 1.0383466998475321 9.6890160755083077 -23.921663409924886 -64.414019875084392 1.0383466998474844 -0.64927347155042803 -26.189195498452705 -65.164059632737221 1.0383466998475408 -10.861627387243024 -23.412595681607819 -65.914018018659135 1.0383466998474993 -18.376780115978292 -16.671152051570832 -66.664049699453372 1.038346699847519 -22.006703809818468 -8.0189680202391465 -67.41403291831044 1.0383466998475133 -21.794559848961839 0.54007754614846382 -68.16402565946801 1.0383466998475139 +-18.009268382429084 0.049761848053409469 -59.534352145096641 0.85353433019613967 -17.989721884569278 7.1219853211639137 -60.284352065324128 0.85353433019614056 -14.795457885862643 14.185522080954886 -61.03435269925356 0.85353433019613723 -8.4367975564309923 19.577635958353035 -61.784350475899807 0.853534330196145 0.059849169232926158 21.643631458071592 -62.53435437586873 0.85353433019613245 8.5448009533535636 19.530735675515619 -63.284350410159654 0.85353433019614688 14.87363377768864 14.10352924664441 -64.034352825880234 0.85353433019613489 18.028808112613369 7.0224615994233757 -64.784351970432837 0.85353433019614156 18.009268382429084 -0.049761848053393606 -65.534352145096634 0.85353433019613967 17.989721558200792 -7.1219853218452087 -66.284352071746511 0.85353433019613456 14.795459167358521 -14.18552207827951 -67.034352674035901 0.85353433019615799 8.4367946052010634 -19.577635964514752 -67.784350533975072 0.85353433019610858 -0.059844319973462845 -21.643631447946753 -68.534354280443239 0.85353433019617031 -8.544807014928212 -19.530735688171774 -69.284350529441596 0.85353433019612057 -14.873627875227788 -14.10352923432046 -70.034352709729433 0.85353433019614688 -18.02881259785018 -7.0224616087882685 -70.784352058694921 0.85353433019613867 -18.009265771480464 0.04976185350488864 -71.534352093717501 0.85353433019613967 +-14.198783895560071 0.27419409098918945 -56.164218742910514 1.0383466998475139 -14.091078468341244 5.8497012475997598 -56.914228939404481 1.0383466998475122 -11.480271126910047 11.379104864577872 -57.664229411408435 1.038346699847519 -6.3970200730330617 15.543061291255638 -58.414243423880791 1.0383466998475051 0.33002832875057919 17.067813553792195 -59.164202045770267 1.0383466998475235 6.9917630198642851 15.284689239449543 -59.914270389588125 1.0383466998475073 11.911157427983211 10.927280717699459 -60.664177470888212 1.0383466998475175 14.306432885109766 5.3013188002213978 -61.414267862502022 1.038346699847513 14.198783895560082 -0.27419409098916175 -62.164218742910492 1.0383466998475139 14.091075789862456 -5.8497009680836713 -62.914226305028194 1.0383466998475084 11.480281644038969 -11.379105962106365 -63.664239755367646 1.0383466998475321 6.3969958525396446 -15.543058763695276 -64.414219602189334 1.0383466998474844 -0.32998853129395034 -17.067817706905679 -65.164241187943475 1.0383466998475408 -6.9918127666847409 -15.284684048058105 -65.914221461871421 1.0383466998474993 -11.911108986997412 -10.927285772819049 -66.664225114271545 1.038346699847519 -14.306469695059665 -5.3013149588728448 -67.414231658644368 1.0383466998475133 -14.198762467730774 0.27419185486104541 -68.164239817921157 1.0383466998475139 +-14.660371151477655 0.72417553729594031 -52.078048380511277 1.036729623209609 -14.375912786009616 6.4809841877441592 -52.828056812617618 1.0367296232096108 -11.507054565020022 12.112170049837111 -53.578063313313301 1.0367296232096026 -6.1262697041193634 16.256643958264178 -54.328054645130493 1.0367296232096219 0.87120169606449949 17.622095190306894 -55.078054698389955 1.0367296232095928 7.6976911626147277 15.574161395081186 -55.828078336442886 1.0367296232096221 12.644849499711723 10.918912587568828 -56.578017679832371 1.0367296232096015 14.944713758870398 5.0326380397376083 -57.32809100935691 1.0367296232096117 14.660371151477696 -0.72417553729591788 -58.078048380511262 1.036729623209609 14.375907242589617 -6.4809839421691837 -58.828054498128594 1.0367296232096064 11.507076331428303 -12.112171014094784 -59.57807240122532 1.0367296232096179 6.126219577021585 -16.256641737620861 -60.328033716061526 1.0367296232095975 -0.87111933064907721 -17.622098839115125 -61.078089087603601 1.0367296232096139 -7.6977941193832677 -15.57415683407126 -61.828035349926004 1.0367296232096126 -12.644749245518378 -10.918917028854443 -62.578059537969828 1.0367296232096035 -14.944789941296655 -5.0326346648367766 -63.328059201665283 1.0367296232096119 -14.660326804119629 0.72417357269658322 -64.078066896423167 1.036729623209609 0 6 6.2831853071795862 6 -0 10 -3.1415926535897931 9 -6.2831853071795862 10 +0 9 +3.1415926535897931 8 +6.2831853071795862 9 +1 -17.989015598496628 0.62956508343253303 5.9335061499341517 -0.034784647283530576 -0.99380957274300352 0.10551095411249596 1.1358075826780451e-19 -0.10557484473127868 -0.99441135962938731 0.99939483104194626 -0.034590248399444308 0.0036723837359910346 +1 -17.988815994796553 0.62956504430958793 -66.066494218788407 -0.034784645119012039 -0.99380944996750142 0.10551211124433463 -3.125479721775522e-20 -0.10557600255584298 -0.99441123670457832 0.99939483111728389 -0.034590241971126631 0.0036724237819889052 Triangulations 0 -TShapes 33 +TShapes 38 Ve -3.83731338058618e-05 --15.334360184943 0.791975906961068 7.46540733353283 +4.8625352787909e-05 +-17.9816454279773 0.840424795816383 7.92202735344008 0 0 0101101 * Ve -3.83731338066297e-05 --20.6882262184494 0.791125685735164 -4.54260581273852 +4.86253527915444e-05 +-17.9816010117624 0.840424785005909 -4.07797274844566 0 0 0101101 @@ -176,7 +178,7 @@ Ed 0 0101000 -+33 0 -32 0 * ++38 0 -37 0 * Ed 1e-07 1 1 0 1 2 0 0 6.28318530717959 @@ -184,7 +186,7 @@ Ed 0 0101000 -+33 0 -33 0 * ++38 0 -38 0 * Ed 1e-07 1 1 0 1 3 0 0 6.28318530717959 @@ -194,19 +196,19 @@ Ed 0 0101100 -+32 0 -32 0 * ++37 0 -37 0 * Wi 0101100 -+31 0 +30 0 -31 0 -29 0 * ++36 0 +35 0 -36 0 -34 0 * Fa 0 1e-07 1 0 0101000 -+28 0 * ++33 0 * Ve -4.48160960002918e-05 --24.827958977816 0.432907402698813 -19.9187335918442 +4.86255790186068e-05 +-17.9815565955481 0.840424774169314 -16.0779728505777 0 0 0101101 @@ -218,7 +220,7 @@ Ed 0 0101000 -+32 0 -26 0 * ++37 0 -31 0 * Ed 1e-07 1 1 0 1 5 0 0 6.28318530717959 @@ -228,19 +230,19 @@ Ed 0 0101100 -+26 0 -26 0 * ++31 0 -31 0 * Wi 0101100 -+25 0 +29 0 -25 0 -24 0 * ++30 0 +34 0 -30 0 -29 0 * Fa 0 1e-07 2 0 0101000 -+23 0 * ++28 0 * Ve -4.5981087239931e-05 --25.8838544720991 -0.120890200614708 -37.1381530382808 +4.8625805246486e-05 +-17.9815121793343 0.84042476330659 -28.0779729529559 0 0 0101101 @@ -252,7 +254,7 @@ Ed 0 0101000 -+26 0 -21 0 * ++31 0 -26 0 * Ed 1e-07 1 1 0 1 7 0 0 6.28318530717959 @@ -262,19 +264,19 @@ Ed 0 0101100 -+21 0 -21 0 * ++26 0 -26 0 * Wi 0101100 -+20 0 +24 0 -20 0 -19 0 * ++25 0 +29 0 -25 0 -24 0 * Fa 0 1e-07 3 0 0101000 -+18 0 * ++23 0 * Ve -4.45102645845952e-05 --23.379019110713 -0.620145280773002 -53.8435213145594 +4.86260314721378e-05 +-17.9814677631211 0.840424752417738 -40.0779730555804 0 0 0101101 @@ -286,7 +288,7 @@ Ed 0 0101000 -+21 0 -16 0 * ++26 0 -21 0 * Ed 1e-07 1 1 0 1 9 0 0 6.28318530717959 @@ -296,19 +298,19 @@ Ed 0 0101100 -+16 0 -16 0 * ++21 0 -21 0 * Wi 0101100 -+15 0 +19 0 -15 0 -14 0 * ++20 0 +24 0 -20 0 -19 0 * Fa 0 1e-07 4 0 0101000 -+13 0 * ++18 0 * Ve -4.40143445631001e-05 --18.444757966731 -0.83937004179244 -67.9096660106708 +4.8626257694568e-05 +-17.9814233469084 0.840424741502758 -52.0779731584512 0 0 0101101 @@ -320,7 +322,7 @@ Ed 0 0101000 -+16 0 -11 0 * ++21 0 -16 0 * Ed 1e-07 1 1 0 1 11 0 0 6.28318530717959 @@ -330,19 +332,19 @@ Ed 0 0101100 -+11 0 -11 0 * ++16 0 -16 0 * Wi 0101100 -+10 0 +14 0 -10 0 -9 0 * ++15 0 +19 0 -15 0 -14 0 * Fa 0 1e-07 5 0 0101000 -+8 0 * ++13 0 * Ve -4.38788977961802e-05 --13.3096225649798 -0.679551954503295 -78.4034160238559 +4.86264839104557e-05 +-17.9813789306964 0.84042473056163 -64.0779732615682 0 0 0101101 @@ -354,7 +356,7 @@ Ed 0 0101000 -+11 0 -6 0 * ++16 0 -11 0 * Ed 1e-07 1 1 0 1 13 0 0 6.28318530717959 @@ -362,19 +364,41 @@ Ed 0 0101000 -+6 0 -6 0 * ++11 0 -11 0 * Wi 0101100 -+5 0 +9 0 -5 0 -4 0 * ++10 0 +14 0 -10 0 -9 0 * Fa 0 1e-07 6 0 0101000 -+3 0 * ++8 0 * +Wi + +0101100 ++35 0 * +Fa +0 1e-07 7 0 + +0101000 ++6 0 * +Wi + +0101100 ++9 0 * +Fa +0 1e-07 8 0 + +0101000 ++4 0 * Sh -1101000 -+27 0 +22 0 +17 0 +12 0 +7 0 +2 0 * +0101100 ++32 0 +27 0 +22 0 +17 0 +12 0 +7 0 -5 0 +3 0 * +So + +1100100 +-2 0 * --1 0 \ No newline at end of file ++1 0 \ No newline at end of file diff --git a/recipes/02-helical-spring/output.png b/recipes/02-helical-spring/output.png index d436092798f4cb02c912d7564ec3b81cdcb7b77a..56df5d02cc60fd1406a9f55bf936bbd5fad3c9c1 100644 GIT binary patch literal 44437 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 literal 95132 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

fncj(~Og-_ZZ4_U>eEHHZ(B3jij35`y`moCt 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 Date: Tue, 4 Aug 2026 23:28:33 +1000 Subject: [PATCH 4/7] feat: expose solidCount from the metrics verb Add solidCount (Shape.subShapes(ofType: .solid).count) as an opt-in metric alongside volume / surfaceArea / boundingBox / principalAxes. shapeType alone cannot distinguish a healthy circularPatternCut result (compound wrapping one solid) from a wire-based revolve or sweep that never got faced/capped (compound or shell wrapping zero solids), both of which can report the same top-level shapeType. Needed by Scripts/recipe-check.sh's hardened solids >= 1 assertion, next commit. Part of #100. --- Sources/occtkit/Commands/Metrics.swift | 21 ++++++++++++++++----- docs/reference/occtkit-verbs.md | 15 +++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Sources/occtkit/Commands/Metrics.swift b/Sources/occtkit/Commands/Metrics.swift index a53342e..e1be5c5 100644 --- a/Sources/occtkit/Commands/Metrics.swift +++ b/Sources/occtkit/Commands/Metrics.swift @@ -4,13 +4,20 @@ // Pure read: input BREP -> JSON envelope on stdout. No file output. // // Wraps: -// Shape.volumeInertia -> volume, centerOfMass, principalMoments + axes -// Shape.surfaceArea -> total area -// Shape.bounds -> axis-aligned bounding box +// Shape.volumeInertia -> volume, centerOfMass, principalMoments + axes +// Shape.surfaceArea -> total area +// Shape.bounds -> axis-aligned bounding box +// Shape.subShapes(ofType: .solid) -> solidCount // // `volumeInertia` is solid-only; for non-solids, volume / centerOfMass / // principalAxes fall back to nil. surfaceArea is computed off the // optional-returning getter, also nil for shapes without surface area. +// `solidCount` exists because `shapeType` alone is misleading: a healthy +// `circularPatternCut` result reports `compound` (one solid wrapped in a +// compound), while a wire-based revolve/sweep that never got faced/capped +// also reports `compound` or `shell` with zero solids inside. Counting +// solids, not reading the top-level shape type, is what `Scripts/recipe-check.sh` +// uses to catch that (OCCTSwiftScripts#100). // // Two input modes: // 1. Flag form: occtkit metrics [--metrics m1,m2,...] @@ -25,7 +32,7 @@ enum MetricsCommand: Subcommand { static let summary = "Volume / area / center of mass / bbox / principal axes for a BREP" static let usage = """ Usage: - metrics [--metrics volume,surfaceArea,centerOfMass,boundingBox,boundingBoxOptimal,principalAxes] + metrics [--metrics volume,surfaceArea,centerOfMass,boundingBox,boundingBoxOptimal,principalAxes,solidCount] metrics (JSON request from file) metrics (JSON request from stdin) """ @@ -47,6 +54,7 @@ enum MetricsCommand: Subcommand { let boundingBox: BoundingBox? let boundingBoxOptimal: BoundingBox? let principalAxes: PrincipalAxes? + let solidCount: Int? struct BoundingBox: Encodable { let min: [Double] @@ -100,6 +108,8 @@ enum MetricsCommand: Subcommand { ) }() + let solidCount: Int? = wants("solidCount") ? shape.subShapes(ofType: .solid).count : nil + try GraphIO.emitJSON(Response( volume: wants("volume") ? inertia?.volume : nil, surfaceArea: wants("surfaceArea") ? shape.surfaceArea : nil, @@ -108,7 +118,8 @@ enum MetricsCommand: Subcommand { } : nil, boundingBox: bb, boundingBoxOptimal: bbOptimal, - principalAxes: pa + principalAxes: pa, + solidCount: solidCount )) return 0 } diff --git a/docs/reference/occtkit-verbs.md b/docs/reference/occtkit-verbs.md index 3cce850..fde2e21 100644 --- a/docs/reference/occtkit-verbs.md +++ b/docs/reference/occtkit-verbs.md @@ -190,14 +190,17 @@ feature-recognize bracket.brep ### `metrics` -Volume / surface area / centre of mass / bounding box / principal axes for a BREP. -Pure read, no file output. `volume`, `centerOfMass`, `principalAxes` come from -`Shape.volumeInertia` (solid-only; `null` otherwise). - -**Flag form:** `metrics [--metrics volume,surfaceArea,centerOfMass,boundingBox,boundingBoxOptimal,principalAxes]` +Volume / surface area / centre of mass / bounding box / principal axes / solid count for +a BREP. Pure read, no file output. `volume`, `centerOfMass`, `principalAxes` come from +`Shape.volumeInertia` (solid-only; `null` otherwise). `solidCount` is +`Shape.subShapes(ofType: .solid).count`: use it, not `shapeType`, to tell a genuinely +solid body from a shell or an empty-of-solids compound (`shapeType` alone is misleading, +`circularPatternCut` legitimately reports `compound` for a healthy one-solid result). + +**Flag form:** `metrics [--metrics volume,surfaceArea,centerOfMass,boundingBox,boundingBoxOptimal,principalAxes,solidCount]` (omit `--metrics` for all except `boundingBoxOptimal`, which is opt-in). **JSON form:** `{ "inputBrep": "...", "metrics": [...] }` -**Output:** `{ volume?, surfaceArea?, centerOfMass?, boundingBox?, boundingBoxOptimal?, principalAxes? }`. +**Output:** `{ volume?, surfaceArea?, centerOfMass?, boundingBox?, boundingBoxOptimal?, principalAxes?, solidCount? }`. ```bash metrics part.brep --metrics volume,boundingBox From 977dbe3e36fe5c47a73181c6dccdca63d2967295 Mon Sep 17 00:00:00 2001 From: gsdali <51393997+gsdali@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:28:48 +1000 Subject: [PATCH 5/7] test: harden recipe-check.sh to assert solidCount >= 1, fix silent-pass bug Assert the emitted body's solidCount (via the new metrics field) is at least 1, not shapeType == "solid": five of the seven recipes legitimately report compound, since a compound wrapping one solid is the normal result of circularPatternCut. Asserting solidCount is what actually would have caught both recipe 02 and 03 shipping a shell. While wiring this up, found and fixed a pre-existing bug that made every assertion in this script unable to fail. check_one() is always invoked as check_one ... || status=1, and bash disables errexit for every command inside a function while that function is the left-hand side of ||. The Python validation block was a bare statement, so a nonzero exit from any die() call (missing/empty manifest or body, volume <= 0, now solidCount < 1, or a reference drift) fell straight through to the unconditional final echo and "OK" was printed and the function returned 0 regardless. Confirmed on the unmodified script before this fix: a real reference-drift failure on 01-mounting-bracket (unrelated to #100, see #101) printed the die() message and then "OK" and exited 0. Fixed by wrapping the Python invocation in if ! ...; then return 1; fi. Proved the hardened check has teeth: temporarily reverted the recipe 03 face fix back to Shape.revolve(profile: wire, ...), reran Scripts/recipe-check.sh recipes/03-pipe-flange, got a clean failure ("solidCount not >= 1: 0") and exit 1, then restored the fix and reconfirmed a clean pass. make recipes-test now fails on 01-mounting-bracket for an unrelated, pre- existing reason (a 2.27% volume drift against its committed reference, tracked separately as #101) rather than passing silently; 02 through 07 all pass with solidCount == 1 and match their reference output.brep exactly. Closes #100. --- Scripts/recipe-check.sh | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/Scripts/recipe-check.sh b/Scripts/recipe-check.sh index 35ea347..9130bd8 100755 --- a/Scripts/recipe-check.sh +++ b/Scripts/recipe-check.sh @@ -5,7 +5,12 @@ # 1. Run `occtkit run

/main.swift --format brep` into a temp dir. # 2. Assert manifest.json parses and body-0.brep is non-empty. # 3. Assert the emitted volume is > 0 (via `occtkit metrics`). -# 4. If /output.brep exists, compare volume + bounding box within tolerance. +# 4. Assert the emitted body contains at least one solid (`solidCount >= 1`). +# This is a solids-count check, not a `shapeType == "solid"` check: a compound +# wrapping one solid (the normal `circularPatternCut` result) is healthy and must +# pass, while a shell, or a compound with zero solids inside (a wire-based +# revolve/sweep that never got faced/capped, OCCTSwiftScripts#100), must fail. +# 5. If /output.brep exists, compare volume + bounding box within tolerance. # # Usage: # Scripts/recipe-check.sh recipes/01-mounting-bracket @@ -36,7 +41,19 @@ check_one() { # All validation + (optional) reference compare happens in one Python pass. # Args: . occtkit metrics is shelled out for # both the emitted body and the reference; no data is piped over stdin. - python3 - "$tmp" "$dir/output.brep" <<'PY' + # + # This is deliberately `if ! python3 ...; then return 1; fi`, not a bare `python3 + # ...` statement: `check_one` is always invoked as `check_one ... || status=1`, and + # bash disables `errexit` for every command inside a function while that function is + # itself the left-hand side of `||`. A bare statement here let a nonzero exit from + # this Python block fall straight through to the unconditional `echo " ✓ ... OK"` + # below, so every failure this script detects (die() calls: missing/empty manifest + # or body, volume <= 0, solidCount < 1, drift vs the reference) got printed and then + # silently reported as a pass anyway, with exit 0. This was a pre-existing bug, not + # introduced by the solidCount check: confirmed on the unmodified script that a real + # reference-drift failure on 01-mounting-bracket still printed "✓ 01-mounting-bracket + # OK" and exited 0. + if ! python3 - "$tmp" "$dir/output.brep" <<'PY' import json, os, subprocess, sys emitted_dir, ref = sys.argv[1], sys.argv[2] @@ -56,7 +73,7 @@ except Exception as e: if not os.path.exists(body) or not os.path.getsize(body): die("body-0.brep missing/empty") def metrics(path): - out = subprocess.check_output(occtkit + ["metrics", path, "--metrics", "volume,boundingBox"]) + out = subprocess.check_output(occtkit + ["metrics", path, "--metrics", "volume,boundingBox,solidCount"]) return json.loads(out) cur = metrics(body) @@ -64,6 +81,10 @@ v = cur.get("volume") if v is None or v <= 0: die(f"volume not > 0: {v}") print(f" ✓ volume = {v:.3f}") +solids = cur.get("solidCount") +if solids is None or solids < 1: die(f"solidCount not >= 1: {solids} (shapeType alone is not enough, see header)") +print(f" ✓ solidCount = {solids}") + if os.path.exists(ref): r = metrics(ref); rv = r["volume"] rel = abs(v - rv) / max(abs(rv), 1e-9) @@ -76,6 +97,9 @@ if os.path.exists(ref): else: print(" · no reference output.brep, skipping compare") PY + then + return 1 + fi echo " ✓ $name OK" } From bc8b89ec96040636c2fd788e0331136ff7844a83 Mon Sep 17 00:00:00 2001 From: gsdali <51393997+gsdali@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:26:20 +1000 Subject: [PATCH 6/7] fix: address review on #102 (docs drift, OKF entries, two check upgrades) Item 1, docs drift. The two traps this PR fixes were still documented as correct elsewhere, and the cookbook is what people copy: * docs/guides/cookbook/sweeps-lofts-patterns.md mirrored recipe 02 verbatim, still built the spring with Shape.sweep, and described the result as a solid. Now uses pipeShell(solid: true) and its gotcha explains why sweep returns a shell that still reports a plausible volume. * docs/SCRIPT_WORKFLOW.md's "From profiles" cheat sheet listed extrude, revolve and sweep on consecutive lines with nothing saying only extrude faces the wire for you. That adjacency is where the wrong assumption forms, so each line is now annotated solid or SHELL, with the facing alternative alongside. * The same file's two "Rail solid" sweeps now use pipeShell. Item 2, OKF entries. Two durable rules were carried only in commit messages and a shell comment: * wire-sweep-factories-are-not-symmetric: which factories face a wire for you, and why to assert solidCount >= 1 rather than shapeType or a positive volume. * errexit-is-suppressed-in-or-context: why a function invoked as `f || status=1` must return 1 explicitly, with the recipe-check silent-pass bug as the worked example. Cross-linked to single-source-verb-inventory as the same guard-that-cannot-fail family. Item 3, CLAUDE.md:91 now lists solidCount alongside the rest of what metrics wraps, including the assert-solidCount-not-shapeType guidance. It was the second hand-maintained copy drifting from docs/reference/occtkit-verbs.md. Item 4, Metrics.swift uses subShapeCount(ofType:) rather than subShapes(ofType:).count. The latter allocates a Shape handle per solid only to discard them, and the counting API already existed. Verified behaviour-neutral: solidCount unchanged across recipes 02, 03 and 05. Item 5, recipe-check.sh now compares solidCount against the committed reference, not just >= 1. That catches the other half of the family: a topology regression that keeps a positive volume, such as a compound going from 1 solid to 3 because a boolean stopped fusing. Negative-tested by rewriting a reference to a 2-solid compound, confirming "solidCount drift: 1 vs reference 2", then restoring. Nits: qualified Shape.revolved(...) in recipe 03's API list, and restored the signedVolume / orientedForward pointer to recipe 02's gotchas, scoped to orientation debugging rather than the topology check. Also filed #103: recipe 03's chamfer has never applied. chamfered(distance: 1.0) returns nil and the ?? fallback hides it, confirmed directly and corroborated by this PR's own volume arithmetic. Out of scope here. Co-Authored-By: Claude Opus 5 (1M context) --- CLAUDE.md | 2 +- Scripts/recipe-check.sh | 6 ++ Sources/occtkit/Commands/Metrics.swift | 4 +- docs/SCRIPT_WORKFLOW.md | 19 ++++-- docs/guides/cookbook/sweeps-lofts-patterns.md | 15 ++-- .../errexit-is-suppressed-in-or-context.md | 63 +++++++++++++++++ okf/decisions/index.md | 5 ++ .../wire-sweep-factories-are-not-symmetric.md | 68 +++++++++++++++++++ okf/log.md | 10 +++ recipes/02-helical-spring/README.md | 5 ++ recipes/03-pipe-flange/README.md | 2 +- 11 files changed, 185 insertions(+), 14 deletions(-) create mode 100644 okf/decisions/errexit-is-suppressed-in-or-context.md create mode 100644 okf/decisions/wire-sweep-factories-are-not-symmetric.md diff --git a/CLAUDE.md b/CLAUDE.md index 8c57c79..6e3c15f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -88,7 +88,7 @@ No tests exist. No linter is configured. **`load-brep` / `import`** are the OCCTMCP-driven I/O verbs (closes #19). Both write a `ScriptManifest` (matching `ScriptContext.emit()`'s schema) into `--emit-manifest ` so OCCTSwiftViewport's `ScriptWatcher` picks the bodies up. `load-brep` is the one-line "load + emit" (no script compile); response carries `bodyId` + topology stats + bounding box. `import` does multi-format dispatch: STEP / IGES / STL / OBJ for v1 (the OCCT-native formats; glTF / FBX / 3DS deferred, since they're not OCCT formats and would need upstream loaders). `--preserve-assembly` is STEP-only and walks `Document.rootNodes` → `AssemblyNode` tree, writing one BREP per leaf node and populating the response's `assembly` field with names / transforms / colors. `--heal-on-import` is accepted today but currently a no-op with a warning; real behaviour arrives with the `heal` verb in #21. -**`metrics` / `query-topology` / `measure-distance`** are the OCCTMCP-driven introspection verbs (closes #18). Pure read; input BREP(s) → JSON envelope on stdout, no file output. `metrics` wraps `Shape.volumeInertia` (volume + center-of-mass + principal moments/axes) + `Shape.surfaceArea` + `Shape.bounds`; `--metrics` flag selects a subset (default all). `query-topology` iterates `Shape.faces()` / `.edges()` / `.vertices()` and emits stable IDs (`face[N]` / `edge[N]` / `vertex[N]`) with surface/curve type classification, area/length, bounding box, and (face only) the unit normal at the UV midpoint; supports filter keys `surfaceType` / `curveType` / `minArea` / `maxArea` / `minLength` / `maxLength` / `normalDirection` + `normalTolerance`. `measure-distance` wraps `Shape.allDistanceSolutions(to:)` for shape-shape distance + optional contact list; v1 supports `point:x,y,z` refs but defers sub-entity refs (`face[N]` etc.); callers identify contact provenance via `query-topology`. The same release also extends `graph-validate` with a `healthRecord` field (small-edge / free-edge / self-intersection counts via `Shape.analyze()`) and adds a unified `features:[]` array to `feature-recognize`'s response (alongside the existing `pockets`/`holes` arrays for backward compat). +**`metrics` / `query-topology` / `measure-distance`** are the OCCTMCP-driven introspection verbs (closes #18). Pure read; input BREP(s) → JSON envelope on stdout, no file output. `metrics` wraps `Shape.volumeInertia` (volume + center-of-mass + principal moments/axes) + `Shape.surfaceArea` + `Shape.bounds` + `Shape.subShapeCount(ofType: .solid)` (`solidCount`); `--metrics` flag selects a subset (default all). `solidCount` exists because `shapeType` alone is misleading: a compound wrapping one solid is healthy, while a bare shell reports a plausible positive volume. Assert `solidCount >= 1`, not `shapeType == "solid"` (#100). `query-topology` iterates `Shape.faces()` / `.edges()` / `.vertices()` and emits stable IDs (`face[N]` / `edge[N]` / `vertex[N]`) with surface/curve type classification, area/length, bounding box, and (face only) the unit normal at the UV midpoint; supports filter keys `surfaceType` / `curveType` / `minArea` / `maxArea` / `minLength` / `maxLength` / `normalDirection` + `normalTolerance`. `measure-distance` wraps `Shape.allDistanceSolutions(to:)` for shape-shape distance + optional contact list; v1 supports `point:x,y,z` refs but defers sub-entity refs (`face[N]` etc.); callers identify contact provenance via `query-topology`. The same release also extends `graph-validate` with a `healthRecord` field (small-edge / free-edge / self-intersection counts via `Shape.analyze()`) and adds a unified `features:[]` array to `feature-recognize`'s response (alongside the existing `pockets`/`holes` arrays for backward compat). **`transform` / `boolean` / `pattern`** are the OCCTMCP-driven construction verbs (closes #20). All three are pure functions: input BREP(s) → output BREP file(s) + JSON envelope on stdout, no scene/manifest involvement. Each accepts both flag form (matches the issue spec) and JSON form (stdin or file path) for `--serve` consumers; auto-detected by whether `--kind`/`--op`/`--output` flags are present. `transform` wraps `Shape.translated`/`.rotated`/`.scaled` (uniform only; non-uniform `--scale x,y,z` rejected); Euler XYZ decomposes into three sequential axis-angle rotations. `boolean` dispatches on `--op`, wraps `Shape.union`/`.subtracting`/`.intersection`/`.split`; split's array result is wrapped in `Shape.compound` so the verb always emits a single output BREP. `pattern` wraps `Shape.mirrored` / `.linearPattern` / `.circularPattern`; the linear/circular compound result is decomposed via `subShapes(ofType: input.shapeType)` and written as `pattern_N.brep` files (one per instance). diff --git a/Scripts/recipe-check.sh b/Scripts/recipe-check.sh index 9130bd8..83a2477 100755 --- a/Scripts/recipe-check.sh +++ b/Scripts/recipe-check.sh @@ -87,6 +87,12 @@ print(f" ✓ solidCount = {solids}") if os.path.exists(ref): r = metrics(ref); rv = r["volume"] + # `solidCount >= 1` above catches "a shell shipped". This catches the other half + # of the same family: a topology regression that still has a positive volume, for + # example a compound going from 1 solid to 3 because a boolean stopped fusing. + rs = r.get("solidCount") + if rs is not None and solids != rs: + die(f"solidCount drift: {solids} vs reference {rs}") rel = abs(v - rv) / max(abs(rv), 1e-9) if rel > tol: die(f"volume drift {rel:.2e} > tol {tol:.1e} (ref {rv:.3f})") for key in ("min", "max"): diff --git a/Sources/occtkit/Commands/Metrics.swift b/Sources/occtkit/Commands/Metrics.swift index e1be5c5..1147d06 100644 --- a/Sources/occtkit/Commands/Metrics.swift +++ b/Sources/occtkit/Commands/Metrics.swift @@ -7,7 +7,7 @@ // Shape.volumeInertia -> volume, centerOfMass, principalMoments + axes // Shape.surfaceArea -> total area // Shape.bounds -> axis-aligned bounding box -// Shape.subShapes(ofType: .solid) -> solidCount +// Shape.subShapeCount(ofType: .solid) -> solidCount // // `volumeInertia` is solid-only; for non-solids, volume / centerOfMass / // principalAxes fall back to nil. surfaceArea is computed off the @@ -108,7 +108,7 @@ enum MetricsCommand: Subcommand { ) }() - let solidCount: Int? = wants("solidCount") ? shape.subShapes(ofType: .solid).count : nil + let solidCount: Int? = wants("solidCount") ? shape.subShapeCount(ofType: .solid) : nil try GraphIO.emitJSON(Response( volume: wants("volume") ? inertia?.volume : nil, diff --git a/docs/SCRIPT_WORKFLOW.md b/docs/SCRIPT_WORKFLOW.md index d06b0e1..a141e29 100644 --- a/docs/SCRIPT_WORKFLOW.md +++ b/docs/SCRIPT_WORKFLOW.md @@ -114,10 +114,15 @@ Shape.cone(bottomRadius: 5, topRadius: 2, height: 10) Shape.torus(majorRadius: 10, minorRadius: 2) // From profiles -Shape.extrude(profile: wire, direction: SIMD3(0,0,1), length: 10) -Shape.revolve(axis: SIMD3(0,1,0), axisOrigin: .zero, angle: .pi*2, profile: wire) -Shape.sweep(profile: wire, along: pathWire) -Shape.loft(profiles: [wire1, wire2, wire3], solid: true) +// NOTE: these are NOT symmetric about what they return. `extrude` and `loft(solid: true)` +// give you a solid; `revolve` and `sweep` given a *wire* return a SHELL, because they +// sweep a curve. Face the wire first when you want a solid. See OCCTSwiftScripts#100. +Shape.extrude(profile: wire, direction: SIMD3(0,0,1), length: 10) // solid +Shape.loft(profiles: [wire1, wire2, wire3], solid: true) // solid +Shape.revolve(axis: SIMD3(0,1,0), axisOrigin: .zero, angle: .pi*2, profile: wire) // SHELL +Shape.face(from: wire)?.revolved(axisOrigin: .zero, axisDirection: SIMD3(0,1,0)) // solid +Shape.sweep(profile: wire, along: pathWire) // SHELL (uncapped) +Shape.pipeShell(spine: pathWire, profile: wire, mode: .correctedFrenet, solid: true) // solid Shape.evolved(spine: spineWire, profile: profileWire) // Faces @@ -258,7 +263,9 @@ let profile = Wire.polygon([...])! // ── 3D: Swept rail ── let path = Wire.line(from: SIMD3(0,0,0), to: SIMD3(0,0,50))! -let rail = Shape.sweep(profile: profile, along: path)! +// pipeShell(solid: true), not Shape.sweep: sweep leaves the tube ends uncapped and +// returns a shell that still reports a plausible volume (OCCTSwiftScripts#100). +let rail = Shape.pipeShell(spine: path, profile: profile, mode: .correctedFrenet, solid: true)! try ctx.add(rail, id: "rail-3d", color: C.steel, name: "Rail solid") // ── 2D: Cross-section profile ── @@ -419,7 +426,7 @@ public enum NEM120Profile { var rail: Shape? = nil if let len = trackLength, let path = Wire.line(from: SIMD3(0,0,0), to: SIMD3(0,0,len)) { - rail = Shape.sweep(profile: profile, along: path) + rail = Shape.pipeShell(spine: path, profile: profile, mode: .correctedFrenet, solid: true) } return RailProfileResult( diff --git a/docs/guides/cookbook/sweeps-lofts-patterns.md b/docs/guides/cookbook/sweeps-lofts-patterns.md index 8199ba7..5dd3d34 100644 --- a/docs/guides/cookbook/sweeps-lofts-patterns.md +++ b/docs/guides/cookbook/sweeps-lofts-patterns.md @@ -35,7 +35,7 @@ let tangent = t / tLen let section = Wire.circle(origin: SIMD3(meanRadius, 0, 0), normal: tangent, radius: wireDia / 2)! -let spring = Shape.sweep(profile: section, along: path)! +let spring = Shape.pipeShell(spine: path, profile: section, mode: .correctedFrenet, solid: true)! ``` Run it: @@ -50,9 +50,16 @@ swift run occtkit run recipes/02-helical-spring/main.swift --format brep - The section circle **must** sit on the spine start and face along the tangent: an edge-on or offset section makes `BRepOffsetAPI_MakePipe` fail and returns `nil`. -- `Shape.sweep` orientation-normalises its result since OCCTSwift v1.3.1 (issue #170), - so you never need to flip the section sense to avoid a negative-volume solid. Use - `Shape.signedVolume` if you need to inspect raw orientation. +- **Use `pipeShell(..., solid: true)`, not `Shape.sweep`, when you want a solid.** + `Shape.sweep` wraps `BRepOffsetAPI_MakePipe`, which never caps the tube ends, so it + returns an open **shell**. The shell still reports a plausible positive `volume`, which + is what let this go unnoticed in this recipe until OCCTSwiftScripts#100. Check with + `shape.subShapeCount(ofType: .solid) >= 1`; `shapeType` alone is misleading, because a + compound wrapping one solid is perfectly healthy. +- `Shape.sweep` orientation-normalises its result since OCCTSwift v1.3.1 (issue #170), so + you never need to flip the section sense to avoid a negative-volume shell. Use + `Shape.signedVolume` and `orientedForward()` if you need to inspect or fix raw + orientation. - `Wire.helix` takes `turns:` (a coil count), **not** a `height:`. Free length ≈ `pitch · turns`. - Ground or closed ends are out of scope here: they require a variable-pitch helix or diff --git a/okf/decisions/errexit-is-suppressed-in-or-context.md b/okf/decisions/errexit-is-suppressed-in-or-context.md new file mode 100644 index 0000000..e1235cc --- /dev/null +++ b/okf/decisions/errexit-is-suppressed-in-or-context.md @@ -0,0 +1,63 @@ +--- +type: decision +title: A shell function called as `f || status=1` must return failure explicitly +description: errexit is suppressed inside the left-hand side of a `||`, so a bare failing command in such a function does not abort it and the function returns the exit status of its last command instead. +tags: [decision, bash, scripts, ci, testing] +timestamp: 2026-08-05 +--- + +# Decision + +In a shell function that is invoked as the left-hand side of `||` or `&&`, every check must +propagate failure **explicitly**: + +```bash +if ! python3 - "$@" <<'PY' +... +PY +then + return 1 +fi +``` + +Not: + +```bash +python3 - "$@" <<'PY' # a nonzero exit here does NOT abort the function +... +PY +``` + +# Why + +`set -e` is disabled for any command in a context where its exit status is already being tested, +including the left-hand side of `||`. So in: + +```bash +check_one "$dir" || status=1 +``` + +a bare failing command inside `check_one` does not abort it. Execution continues, and the +function returns the status of whichever command happened to run last, which is usually a +successful `echo`. + +# Why it mattered + +`Scripts/recipe-check.sh` had exactly this shape. Its Python validation block printed every +failure it detected and then returned success, so the whole suite exited 0 while reporting +problems on screen. Every assertion in it was decorative. + +It hid a real regression: `recipes/01-mounting-bracket` had drifted 2.27% in volume against its +committed reference after the OCCTSwift 1.15.0 to 1.17.0 repin +([#101](https://github.com/SecondMouseAU/OCCTSwiftScripts/issues/101)). The check was detecting +it and reporting a pass. + +# The general rule + +This is the same failure class the repo has now hit three times: a guard that cannot fail is +worse than no guard, because it reads as coverage. See +[single-source-verb-inventory](single-source-verb-inventory.md) for the dead-code variant, where +the mechanism existed and was never wired up. + +When adding any check, verify it fails when it should. Break the thing deliberately, watch the +check go red, then restore. Put that evidence in the PR body. diff --git a/okf/decisions/index.md b/okf/decisions/index.md index 025bc6b..ffaba1b 100644 --- a/okf/decisions/index.md +++ b/okf/decisions/index.md @@ -11,3 +11,8 @@ that need standalone rationale. * [SwiftPM path dependency identity](swiftpm-path-dependency-identity.md): a path dep's identity is the directory basename, so generated manifests derive declaration and identity from one value. +* [Wire sweep factories are not symmetric](wire-sweep-factories-are-not-symmetric.md): `extrude` + faces a wire for you, `revolve` and `sweep` do not. Assert `solidCount >= 1`. +* [errexit is suppressed in `||` context](errexit-is-suppressed-in-or-context.md): a function + called as `f || status=1` must `return 1` explicitly or its checks are decorative. + diff --git a/okf/decisions/wire-sweep-factories-are-not-symmetric.md b/okf/decisions/wire-sweep-factories-are-not-symmetric.md new file mode 100644 index 0000000..7123efe --- /dev/null +++ b/okf/decisions/wire-sweep-factories-are-not-symmetric.md @@ -0,0 +1,68 @@ +--- +type: decision +title: Wire-profile sweep factories are not symmetric about what they return +description: Shape.extrude faces a wire for you and returns a solid; Shape.revolve and Shape.sweep given a wire return a shell. Face the wire first, and assert solidCount rather than trusting shapeType or a positive volume. +resource: https://github.com/SecondMouseAU/OCCTSwiftScripts/issues/100 +tags: [decision, occtswift, topology, recipes, solids] +timestamp: 2026-08-05 +--- + +# Decision + +When a sweep factory is given a **wire** and a solid is wanted, face the wire first. Do not +assume the factory does it. + +| Call | Returns | +|---|---| +| `Shape.extrude(profile: wire, ...)` | **solid** (faces the wire for you) | +| `Shape.loft(profiles: [...], solid: true)` | **solid** | +| `Shape.revolve(profile: wire, ...)` | **shell** | +| `Shape.face(from: wire)?.revolved(...)` | **solid** | +| `Shape.sweep(profile: wire, along:)` | **shell** (`BRepOffsetAPI_MakePipe` never caps ends) | +| `Shape.pipeShell(spine:profile:mode:solid: true)` | **solid** | + +None of this is an OCCTSwift bug. Revolving or sweeping a *curve* legitimately produces a +surface, and `BRepOffsetAPI_MakePipe` genuinely has no capping option. The trap is that +neighbouring factories with near-identical signatures return different topological kinds, and +nothing in the signature says so. + +# How to check + +Assert `shape.subShapeCount(ofType: .solid) >= 1`. + +Do **not** assert `shapeType == .solid`: a compound wrapping one solid is the normal, healthy +result of `circularPatternCut`, and that assertion would reject it. The `metrics` verb exposes +this as `solidCount`. + +Do **not** rely on volume being positive. A **closed** shell returns a correct positive volume +from `GProp`, and an open one returns a plausible but meaningless number. That is precisely why +this went unnoticed. + +# Why + +Two shipped cookbook recipes emitted shells while documenting themselves as solids: + +- `recipes/03-pipe-flange/` revolved a wire. +- `recipes/02-helical-spring/` swept one. + +Neither was caught, because `Scripts/recipe-check.sh` asserted only that volume was greater than +zero, and both shells satisfied that. + +The flange case shows why a shell is not a cosmetic problem. Its bolt-circle +`circularPatternCut` against the non-solid blank silently under-cut: it removed 6157.52 mm3 of +the correct 18472.57 mm3, so **two thirds of the bolt holes were missing** while every metric the +suite measured looked healthy. + +The same pattern is what broke Route B in the bevel gear spike ([#86](https://github.com/SecondMouseAU/OCCTSwiftScripts/issues/86)): +a shell blank produced disconnected surface patches under boolean subtraction, with a nil or +negative volume, and it took step-by-step measurement to see that the blank rather than +`circularPatternCut` was at fault. + +# Consequences + +`Scripts/recipe-check.sh` asserts `solidCount >= 1` on every emitted recipe body, and compares +`solidCount` against the committed reference so a topology regression that preserves volume is +caught too. + +`docs/SCRIPT_WORKFLOW.md`'s profile cheat sheet now annotates each factory with what it returns, +since that list sitting on consecutive lines is exactly where the wrong assumption forms. diff --git a/okf/log.md b/okf/log.md index 0f7cf4b..d321b8e 100644 --- a/okf/log.md +++ b/okf/log.md @@ -1,5 +1,15 @@ # Knowledge Log +## 2026-08-05 + +* **Update**: Fixed two cookbook recipes that emitted shells while documenting themselves as + solids (#100). `03-pipe-flange` revolved a wire, `02-helical-spring` swept one. The flange's + shell was also silently under-cutting its bolt circle, removing one third of the correct + material. Hardened `Scripts/recipe-check.sh` to assert `solidCount`, and fixed a bug there that + made every check it performed decorative. +* **Creation**: Recorded the wire-sweep-factories-are-not-symmetric decision. +* **Creation**: Recorded the errexit-is-suppressed-in-or-context decision. + ## 2026-08-04 * **Update**: Deduplication pass for issue #82. Moved `readFile`, `decodeJSON`, `valueAfter`, diff --git a/recipes/02-helical-spring/README.md b/recipes/02-helical-spring/README.md index 60e69a9..ef04d58 100644 --- a/recipes/02-helical-spring/README.md +++ b/recipes/02-helical-spring/README.md @@ -47,3 +47,8 @@ keeps the round section true along the coil. ends need either a variable-pitch helix or an end-grinding boolean. - `Wire.helix` uses `turns:` (a coil count), **not** a `height:`. Free length ≈ `pitch · activeCoils`. +- Checking a swept result: assert `shape.subShapeCount(ofType: .solid) >= 1`. Neither + `shapeType` nor a positive `volume` is sufficient, since a shell reports a plausible + volume and a compound wrapping one solid is healthy. If you are debugging a sweep's + orientation rather than its topology, `Shape.signedVolume` inspects the raw sense and + `orientedForward()` normalises it. diff --git a/recipes/03-pipe-flange/README.md b/recipes/03-pipe-flange/README.md index 3258567..1b3c714 100644 --- a/recipes/03-pipe-flange/README.md +++ b/recipes/03-pipe-flange/README.md @@ -35,7 +35,7 @@ corners; it falls back to the un-chamfered body if the blend fails. - `Wire.polygon(_:closed:)`: the `(radius, axial)` half-section - `Shape.face(from:)`: face the half-section before revolving -- `revolved(axisOrigin:axisDirection:)`: surface of revolution (on the faced section) +- `Shape.revolved(axisOrigin:axisDirection:)`: surface of revolution (on the faced section) - `Shape.cylinder(at:direction:radius:height:)`: the bolt-hole tool - `Shape.circularPatternCut(tool:axisPoint:axisDirection:count:angle:)`: the bolt circle (OCCTSwift v1.3.1) - `Shape.chamfered(distance:)`: edge break (optional) From 7d181dd52d8eaf7bed52586a63ca359b8576cfe5 Mon Sep 17 00:00:00 2001 From: gsdali <51393997+gsdali@users.noreply.github.com> Date: Wed, 5 Aug 2026 07:47:17 +1000 Subject: [PATCH 7/7] fix: address second review on #102, and close #101 to keep the suite green Item 1, the red suite. Rather than land a knowingly-failing check, this regenerates recipe 01's reference and closes #101. That is safe now because #101 is fully diagnosed: the 2.27% is OCCTSwift#272, Shape.drilled ignoring direction and hardcoding +Z, fixed between 1.12.0 and 1.12.9. Proven arithmetically, a +Z-forced bore entering at y = -1 removes only the circular segment above the face, 12.3387 mm2 x 7.0 = 86.37 mm3, exactly the per-hole figure the old reference was built from at 1.3.1. Current removes pi*r^2*t = 192.42 exactly and holds at 2.0.0-kernel.1. So the old reference baked in an upstream bug and the new one is correct. Full suite is now green, exit 0. Note the bracket was already un-filleted in the old reference: recipe 01's fillet has never applied at any version, since filletRadius 8 exceeds the 5mm leg thickness. That is #105 and will regenerate this reference again. Item 2, python3 -u. stdout was block-buffered when piped while die() wrote to stderr unbuffered, so failures printed above the passing lines that preceded them. Verified fixed: a forced drift now prints volume, then solidCount, then the failure, in that order. This mattered because the point of the change was making this script's output trustworthy. Item 3, docs/reference/occtkit-verbs.md said subShapes(ofType:).count while Metrics.swift calls subShapeCount(ofType:). Aligned. Item 4, CLAUDE.md's OCCTSwift floor still read >= 1.15.0 and "Floored at v1.15.0" while Package.swift has said from: "1.17.0" since d5d31e8. Updated, including the stale gsdali URL, and noted that the 1.17.0 floor also carries the #272 drilling fix. Item 5, okf/log.md said the flange cut was "removing one third of the correct material", which reads as though a third of the flange vanished. Reworded to match the decision entry: it removed one third of what it should have, leaving two thirds of each bolt hole unfinished. Item 6, added a downstream note to the metrics verb reference: solidCount is in the default-all set, so existing consumers including OCCTMCP's compute_metrics get one extra optional field, and why it is default-all rather than opt-in. Item 7, trailing blank line in okf/decisions/index.md. Closes #101. Co-Authored-By: Claude Opus 5 (1M context) --- CLAUDE.md | 2 +- Scripts/recipe-check.sh | 4 +- docs/reference/occtkit-verbs.md | 9 +- okf/decisions/index.md | 1 - okf/log.md | 4 +- recipes/01-mounting-bracket/output.brep | 753 ++++++++---------------- recipes/01-mounting-bracket/output.png | Bin 43501 -> 18967 bytes 7 files changed, 248 insertions(+), 525 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 6e3c15f..5bd8768 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -117,7 +117,7 @@ No tests exist. No linter is configured. The full cohort graduated to v1.0 on 2026-05-07 alongside OCCT 8.0.0 GA. SemVer-stable from these floors; only bump on documented breaking changes. Pre-1.0 dep history (which API landed in which 0.x tag) lives in git log; consult it when you actually need to support an older floor, otherwise treat the v1.0 surface as the contract. -- **OCCTSwift**: `https://github.com/gsdali/OCCTSwift.git` (>= 1.15.0; xcframework built against **OCCT 8.0.0p1**). The B-Rep kernel: ~400+ methods for parametric CAD, the full ISO drawings stack (Sheet/TitleBlock/ProjectionSymbol/Section2D/Hatch/AutoCentermarks/CuttingPlaneLine/CosmeticThread/SurfaceFinish/GDT/DetailView/DrawingScale), `FeatureReconstructor` for `reconstruct`, the `SheetMetal` namespace for `compose-sheet-metal`, and the XCAF surfaces (`AssemblyNode.labelId`, `Document.node(at:)`) for `inspect-assembly` / `set-metadata`. **Floored at v1.15.0**: v1.15.0 renamed the Swift wrapper class `TopologyGraph` → `BRepGraph` (OCCTSwift#335) to match the C++ package it wraps; this repo has migrated off the deprecated `TopologyGraph` typealias onto `BRepGraph` directly (OCCTSwiftScripts#78), so the floor must guarantee the `BRepGraph` symbol exists. Earlier, v1.7.0 realigned the BRepGraph wrapper to OCCT's redesigned graph model (definitions vs references/usages, persistent UIDs, controlled layers) and v1.7.1 made the derived graph reads real again: `adjacentFaces`/`faces(of:)`/`edges(of:)`/`sharedEdges`, `faceSameDomain`, `faceIsNaturalRestriction`, plus durable `UID`/`RefUID`/`ItemUID` identity. Our graph verbs (graph-validate/compact/dedup/ml, query-topology) build and run **unchanged** against it. Behaviour changes are **confined to the BRepGraph domain**: `edgeMaxContinuity`/`setEdgeRegularity` are now no-ops (use `Shape.maxContinuity` for continuity); `degenerated`/`closed`/`sameParameter`/`sameRange` setters no-op while their getters return the live derived value. The cookbook ergonomics relied on since v1.3.1, namely `Shape.circularPatternCut` (#169), orientation-normalised `Shape.sweep` + `orientedForward`/`signedVolume` (#170), `concaveEdges`/`convexEdges`/`edges(where:)` selectors (#171), are unchanged. The rest of the cohort still resolves at its existing floors (Viewport 1.0.4 / Tools 1.1.1 / AIS 1.0.2 / Mesh 1.0.0 / IO 1.7.5), all of which compile against 1.15.0. +- **OCCTSwift**: `https://github.com/SecondMouseAU/OCCTSwift.git` (>= 1.17.0; xcframework built against **OCCT 8.0.0p1**). The B-Rep kernel: ~400+ methods for parametric CAD, the full ISO drawings stack (Sheet/TitleBlock/ProjectionSymbol/Section2D/Hatch/AutoCentermarks/CuttingPlaneLine/CosmeticThread/SurfaceFinish/GDT/DetailView/DrawingScale), `FeatureReconstructor` for `reconstruct`, the `SheetMetal` namespace for `compose-sheet-metal`, and the XCAF surfaces (`AssemblyNode.labelId`, `Document.node(at:)`) for `inspect-assembly` / `set-metadata`. **Floored at v1.17.0** (raised in d5d31e8 for the OCCTSwift#377/#380 Pass 1a duplication and bug-fix audit; also carries the `Shape.drilled` direction fix, OCCTSwift#272, which lands between 1.12.0 and 1.12.9 and corrected recipe 01's through-holes). Previously **floored at v1.15.0**: v1.15.0 renamed the Swift wrapper class `TopologyGraph` → `BRepGraph` (OCCTSwift#335) to match the C++ package it wraps; this repo has migrated off the deprecated `TopologyGraph` typealias onto `BRepGraph` directly (OCCTSwiftScripts#78), so the floor must guarantee the `BRepGraph` symbol exists. Earlier, v1.7.0 realigned the BRepGraph wrapper to OCCT's redesigned graph model (definitions vs references/usages, persistent UIDs, controlled layers) and v1.7.1 made the derived graph reads real again: `adjacentFaces`/`faces(of:)`/`edges(of:)`/`sharedEdges`, `faceSameDomain`, `faceIsNaturalRestriction`, plus durable `UID`/`RefUID`/`ItemUID` identity. Our graph verbs (graph-validate/compact/dedup/ml, query-topology) build and run **unchanged** against it. Behaviour changes are **confined to the BRepGraph domain**: `edgeMaxContinuity`/`setEdgeRegularity` are now no-ops (use `Shape.maxContinuity` for continuity); `degenerated`/`closed`/`sameParameter`/`sameRange` setters no-op while their getters return the live derived value. The cookbook ergonomics relied on since v1.3.1, namely `Shape.circularPatternCut` (#169), orientation-normalised `Shape.sweep` + `orientedForward`/`signedVolume` (#170), `concaveEdges`/`convexEdges`/`edges(where:)` selectors (#171), are unchanged. The rest of the cohort still resolves at its existing floors (Viewport 1.0.4 / Tools 1.1.1 / AIS 1.0.2 / Mesh 1.0.0 / IO 1.7.5), all of which compile against 1.15.0. - **OCCTSwiftViewport**: `https://github.com/gsdali/OCCTSwiftViewport.git` (>= 1.0.0). Provides `OffscreenRenderer`, `CameraState`, `DisplayMode`, `ViewportBody` for `render-preview`. Graduated to v1.0.0 on 2026-05-08, one day after the rest of the cohort; floor unblocked by Tools v1.0.2 (closes #45). - **OCCTSwiftTools**: `https://github.com/gsdali/OCCTSwiftTools.git` (>= 1.0.0; resolves to v1.0.2+ for the widened Viewport constraint). Bridge layer between the B-Rep kernel and the Metal viewport. We use `CADFileLoader.shapeToBodyAndMetadata` in `render-preview` for Shape → `ViewportBody` conversion (both input bodies and highlight sub-shapes). Lives in its own repo since Viewport v0.55.0 split. - **OCCTSwiftAIS**: `https://github.com/gsdali/OCCTSwiftAIS.git` (>= 1.0.0). Headless-friendly subset only: `Trihedron` / `WorkPlane` / `Axis` / `PointCloud` scene objects (each emits `[ViewportBody]` via `makeBodies()`) for `render-preview`'s `--show-axes` / `--show-workplane` overlays, plus the SubShape selection vocabulary for `--highlight face[N]/edge[M]/vertex[K]`. Selection / Manipulator / SwiftUI surfaces aren't relevant to a CLI. `Dimension` overlays render via a SwiftUI Canvas inside `MetalViewportView` and so can't reach `OffscreenRenderer`, so `--annotate-dimensions` is deferred (filed as OCCTSwiftViewport#26). Note: `OCCTSwiftAIS` re-exports a `DisplayMode` enum (3 cases) that collides with `OCCTSwiftViewport.DisplayMode` (6 cases); fully-qualify in `RenderPreview.swift` as `OCCTSwiftViewport.DisplayMode`. diff --git a/Scripts/recipe-check.sh b/Scripts/recipe-check.sh index 83a2477..bd4785b 100755 --- a/Scripts/recipe-check.sh +++ b/Scripts/recipe-check.sh @@ -53,7 +53,9 @@ check_one() { # introduced by the solidCount check: confirmed on the unmodified script that a real # reference-drift failure on 01-mounting-bracket still printed "✓ 01-mounting-bracket # OK" and exited 0. - if ! python3 - "$tmp" "$dir/output.brep" <<'PY' + # -u: stdout is block-buffered when piped while die() writes to stderr unbuffered, + # so failures would otherwise print above the passing lines that preceded them. + if ! python3 -u - "$tmp" "$dir/output.brep" <<'PY' import json, os, subprocess, sys emitted_dir, ref = sys.argv[1], sys.argv[2] diff --git a/docs/reference/occtkit-verbs.md b/docs/reference/occtkit-verbs.md index fde2e21..3712ae7 100644 --- a/docs/reference/occtkit-verbs.md +++ b/docs/reference/occtkit-verbs.md @@ -193,12 +193,19 @@ feature-recognize bracket.brep Volume / surface area / centre of mass / bounding box / principal axes / solid count for a BREP. Pure read, no file output. `volume`, `centerOfMass`, `principalAxes` come from `Shape.volumeInertia` (solid-only; `null` otherwise). `solidCount` is -`Shape.subShapes(ofType: .solid).count`: use it, not `shapeType`, to tell a genuinely +`Shape.subShapeCount(ofType: .solid)`: use it, not `shapeType`, to tell a genuinely solid body from a shell or an empty-of-solids compound (`shapeType` alone is misleading, `circularPatternCut` legitimately reports `compound` for a healthy one-solid result). **Flag form:** `metrics [--metrics volume,surfaceArea,centerOfMass,boundingBox,boundingBoxOptimal,principalAxes,solidCount]` (omit `--metrics` for all except `boundingBoxOptimal`, which is opt-in). + +> **Downstream note (added OCCTSwiftScripts#100).** `solidCount` is in the default-all set, so +> every existing `occtkit metrics` consumer, including OCCTMCP's `compute_metrics`, now receives +> one extra field in the default response. The change is additive and the field is optional, so +> no consumer breaks. It is default-all rather than opt-in like `boundingBoxOptimal` because the +> traversal is a single cheap `TopExp::MapShapes` pass, and because "is this actually a solid" is +> the question a caller most often needs and cannot answer from `shapeType`. **JSON form:** `{ "inputBrep": "...", "metrics": [...] }` **Output:** `{ volume?, surfaceArea?, centerOfMass?, boundingBox?, boundingBoxOptimal?, principalAxes?, solidCount? }`. diff --git a/okf/decisions/index.md b/okf/decisions/index.md index ffaba1b..888d29a 100644 --- a/okf/decisions/index.md +++ b/okf/decisions/index.md @@ -15,4 +15,3 @@ that need standalone rationale. faces a wire for you, `revolve` and `sweep` do not. Assert `solidCount >= 1`. * [errexit is suppressed in `||` context](errexit-is-suppressed-in-or-context.md): a function called as `f || status=1` must `return 1` explicitly or its checks are decorative. - diff --git a/okf/log.md b/okf/log.md index d321b8e..c41ed76 100644 --- a/okf/log.md +++ b/okf/log.md @@ -4,8 +4,8 @@ * **Update**: Fixed two cookbook recipes that emitted shells while documenting themselves as solids (#100). `03-pipe-flange` revolved a wire, `02-helical-spring` swept one. The flange's - shell was also silently under-cutting its bolt circle, removing one third of the correct - material. Hardened `Scripts/recipe-check.sh` to assert `solidCount`, and fixed a bug there that + shell was also silently under-cutting its bolt circle: it removed only one third of the + material it should have, so two thirds of each bolt hole was left unfinished. Hardened `Scripts/recipe-check.sh` to assert `solidCount`, and fixed a bug there that made every check it performed decorative. * **Creation**: Recorded the wire-sweep-factories-are-not-symmetric decision. * **Creation**: Recorded the errexit-is-suppressed-in-or-context decision. diff --git a/recipes/01-mounting-bracket/output.brep b/recipes/01-mounting-bracket/output.brep index 90890d4..44253a0 100644 --- a/recipes/01-mounting-bracket/output.brep +++ b/recipes/01-mounting-bracket/output.brep @@ -7,157 +7,89 @@ Locations 2 0 1 0 0 0 0 1 40 2 1 -1 0 -Curve2ds 56 -1 0 -0 0 -1 +Curve2ds 40 +1 0 0 0 -1 +1 50 0 0 -1 +1 0 0 1 0 +1 0 -40 1 0 +1 50 0 0 -1 +2 27.500000000000004 -28 0 -1 1 0 3.5 +1 0 1 1 0 +2 27.500000000000004 -12 0 -1 1 0 3.5 +1 0 1 1 0 +1 0 0 0 -1 +1 0 0 1 0 +1 0 -40 1 0 +2 22.499999999999996 -28 0 -1 1 0 3.5 +1 0 1 1 0 +2 22.499999999999996 -12 0 -1 1 0 3.5 +1 0 1 1 0 1 0 -0 1 0 1 0 -40 1 0 1 0 0 1 0 1 0 -40 1 0 +1 0 -0 0 -1 +2 22.499999999999996 -28 0 -1 -1 -0 3.5 +1 0 6 1 0 +1 6.2831853071795862 -0 0 1 +1 0 -0 0 1 +2 22.499999999999996 -12 0 -1 -1 -0 3.5 +1 0 6 1 0 +1 6.2831853071795862 -0 0 1 +1 0 -0 0 1 1 45 0 0 -1 +2 22.500000000000004 -28 0 -1 -1 -0 3.5 +1 0 6 1 0 +1 6.2831853071795862 -0 0 1 +1 0 -0 0 1 +2 22.500000000000004 -12 0 -1 -1 -0 3.5 +1 0 6 1 0 +1 6.2831853071795862 -0 0 1 +1 0 -0 0 1 1 45 0 0 -1 1 0 0 0 -1 -8 7.7499999999999964 14.749999999999996 -1 11.25 -28 1 0 -8 7.7499999999999964 14.749999999999996 -1 11.249999999999996 -1 -1 0 -8 -5.999999999062311e-07 7.0000005999999999 -1 19.145898033750314 -28 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 5.9934336057435385 0 0 1 -8 7.7499999999999964 14.749999999999996 -1 11.25 -35 1 0 -8 7.7499999999999964 14.749999999999996 -1 11.249999999999996 -1 -1 0 -8 -5.999999999062311e-07 7.0000005999999999 -1 25.854101966249679 -28 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 3.4313443550258405 0 0 1 -8 7.7499999999999964 14.749999999999996 -1 11.25 -12 1 0 -8 7.7499999999999964 14.749999999999996 -1 11.249999999999996 -1 -1 0 -8 -5.999999999062311e-07 7.0000005999999999 -1 19.145898033750314 -12 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 5.9934336057435385 0 0 1 -8 -5.999999999062311e-07 7.0000005999999999 -1 25.854101966249679 -12 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 3.4313443550258405 0 0 1 -8 7.7499999999999964 14.749999999999996 -1 11.25 -19 1 0 -8 7.7499999999999964 14.749999999999996 -1 11.249999999999996 -1 -1 0 -8 7.7500000000000036 14.750000000000004 -1 11.25 -28 1 0 -8 7.7500000000000036 14.750000000000004 -1 -1 -11.250000000000004 0 1 -8 -5.999999999062311e-07 7.0000005999999999 -1 19.145898033750321 -28 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 4.4226372789486419 0 0 1 -8 7.7500000000000036 14.750000000000004 -1 11.25 -35 1 0 -8 7.7500000000000036 14.750000000000004 -1 -1 -11.250000000000004 0 1 -8 -5.999999999062311e-07 7.0000005999999999 -1 25.854101966249686 -28 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 1.8605480282309441 0 0 1 -8 7.7500000000000036 14.750000000000004 -1 11.25 -12 1 0 -8 7.7500000000000036 14.750000000000004 -1 -1 -11.250000000000004 0 1 -8 -5.999999999062311e-07 7.0000005999999999 -1 19.145898033750321 -12 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 4.4226372789486419 0 0 1 -8 -5.999999999062311e-07 7.0000005999999999 -1 25.854101966249686 -12 0 -1 -8 -5.999999999062311e-07 7.0000005999999999 -1 1.8605480282309441 0 0 1 -8 7.7500000000000036 14.750000000000004 -1 11.25 -19 1 0 -8 7.7500000000000036 14.750000000000004 -1 -1 -11.250000000000004 0 1 -1 0 0 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 7 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 0 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 7 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 0 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 7 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 0 1 0 -2 0 0 1 0 -0 1 3.5 -1 0 7 1 0 -2 0 0 1 0 -0 1 3.5 -Curves 36 +Curves 24 1 0 0 0 0 0 1 -1 50 0 0 0 0 1 1 0 0 0 1 0 0 +1 50 0 0 0 0 1 +2 27.500000000000004 0 28 0 1 0 0 -0 1 1 0 -0 3.5 +2 27.500000000000004 0 12 0 1 0 0 -0 1 1 0 -0 3.5 1 0 50 0 0 0 1 1 0 50 0 0 -1 0 -1 50 5 0 0 0 1 +2 0 27.500000000000004 28 1 0 0 -0 0 1 0 -1 0 3.5 +2 0 27.500000000000004 12 1 0 0 -0 0 1 0 -1 0 3.5 1 50 0 0 0 1 0 1 50 5 0 -1 0 0 1 5 5 0 0 1 0 1 5 50 0 -1 0 0 +1 50 5 0 0 0 1 +2 27.500000000000004 5 28 0 1 0 0 -0 1 1 0 -0 3.5 +1 27.500000000000004 -1 31.5 0 1 0 +2 27.500000000000004 5 12 0 1 0 0 -0 1 1 0 -0 3.5 +1 27.500000000000004 -1 15.5 0 1 0 1 5 50 0 0 0 1 +2 5 27.500000000000004 28 1 0 0 -0 0 1 0 -1 0 3.5 +1 -1 27.500000000000004 31.5 1 0 0 +2 5 27.500000000000004 12 1 0 0 -0 0 1 0 -1 0 3.5 +1 -1 27.500000000000004 15.5 1 0 0 1 5 5 0 0 0 1 -1 38.75 5 28 -1 0 0 -1 30.854101966249686 5 28 0 0 1 -1 38.75 5 35 -1 0 0 -1 24.145898033750321 5 28 0 0 1 -1 38.75 5 12 -1 0 0 -1 30.854101966249686 5 12 0 0 1 -1 24.145898033750321 5 12 0 0 1 -1 38.75 5 19 -1 0 0 -1 5 16.25 28 0 1 -0 -1 5 24.145898033750321 28 0 0 1 -1 5 16.25 35 0 1 -0 -1 5 30.854101966249686 28 0 0 1 -1 5 16.25 12 0 1 -0 -1 5 24.145898033750321 12 0 0 1 -1 5 30.854101966249686 12 0 0 1 -1 5 16.25 19 0 1 -0 -2 27.500000000000004 6 28 0 0 1 1 0 -0 -0 1 0 3.5 -2 27.500000000000004 6 35 0 0 1 1 0 -0 -0 1 0 3.5 -2 27.500000000000004 6 12 0 0 1 1 0 -0 -0 1 0 3.5 -2 27.500000000000004 6 19 0 0 1 1 0 -0 -0 1 0 3.5 -2 6 27.500000000000004 28 0 0 1 1 0 -0 -0 1 0 3.5 -2 6 27.500000000000004 35 0 0 1 1 0 -0 -0 1 0 3.5 -2 6 27.500000000000004 12 0 0 1 1 0 -0 -0 1 0 3.5 -2 6 27.500000000000004 19 0 0 1 1 0 -0 -0 1 0 3.5 Polygon3D 0 PolygonOnTriangulations 0 -Surfaces 19 +Surfaces 11 1 0 0 0 0 1 0 1 0 0 0 0 -1 1 0 50 0 1 0 -0 0 -1 0 0 -0 -1 -1 50 0 0 -1 0 0 0 1 0 0 0 -1 -1 50 5 0 0 -1 0 -1 0 0 -0 -0 -1 +2 27.500000000000004 -1 28 0 1 0 0 -0 1 1 0 -0 3.5 +2 27.500000000000004 -1 12 0 1 0 0 -0 1 1 0 -0 3.5 +2 -1 27.500000000000004 28 1 0 0 -0 0 1 0 -1 0 3.5 +2 -1 27.500000000000004 12 1 0 0 -0 0 1 0 -1 0 3.5 1 14.875 14.875 0 0 0 1 1 0 -0 -0 1 0 +1 50 5 0 0 -1 0 -1 0 0 -0 -0 -1 1 5 5 0 -1 0 0 0 1 0 0 0 -1 +1 50 0 0 -1 0 0 0 1 0 0 0 -1 1 5 50 0 0 -1 0 -1 0 0 -0 -0 -1 -1 27.500000000000004 6 28 0 0 1 1 0 -0 -0 1 0 -2 27.500000000000004 6 28 0 0 1 1 0 -0 -0 1 0 3.5 -1 27.500000000000004 6 35 0 0 1 1 0 -0 -0 1 0 -1 27.500000000000004 6 12 0 0 1 1 0 -0 -0 1 0 -2 27.500000000000004 6 12 0 0 1 1 0 -0 -0 1 0 3.5 -1 27.500000000000004 6 19 0 0 1 1 0 -0 -0 1 0 -1 6 27.500000000000004 28 0 0 1 1 0 -0 -0 1 0 -2 6 27.500000000000004 28 0 0 1 1 0 -0 -0 1 0 3.5 -1 6 27.500000000000004 35 0 0 1 1 0 -0 -0 1 0 -1 6 27.500000000000004 12 0 0 1 1 0 -0 -0 1 0 -2 6 27.500000000000004 12 0 0 1 1 0 -0 -0 1 0 3.5 -1 6 27.500000000000004 19 0 0 1 1 0 -0 -0 1 0 Triangulations 0 -TShapes 103 +TShapes 71 Ve 1e-07 0 0 0 @@ -168,10 +100,12 @@ Ve Ed 1e-07 1 1 0 1 1 0 0 40 +2 1 1 0 0 40 +2 2 2 0 0 40 0 0101000 -+103 0 -103 1 * ++71 0 -71 1 * Ve 1e-07 50 0 0 @@ -181,60 +115,73 @@ Ve * Ed 1e-07 1 1 0 -1 2 0 0 40 +1 2 0 0 50 +2 3 1 0 0 50 +2 4 1 2 0 50 0 0101000 -+101 0 -101 1 * ++71 0 -69 0 * Ed 1e-07 1 1 0 -1 3 0 0 50 +1 3 0 0 40 +2 5 1 0 0 40 0 0101000 -+103 0 -101 0 * ++69 0 -69 1 * Wi 0101100 -+102 0 -100 0 -99 0 +99 1 * -Fa -0 1e-07 1 0 - -0101000 -+98 0 * ++70 0 -68 0 +68 1 -67 0 * Ve 1e-07 -0 50 0 +27.5 0 31.5 0 0 0101101 * Ed 1e-07 1 1 0 -1 4 0 0 40 +1 4 0 0 6.28318530717959 +2 6 1 0 0 6.28318530717959 +2 7 3 0 0 6.28318530717959 0 -0101000 -+96 0 -96 1 * +0101100 ++65 0 -65 0 * +Wi + +0101100 +-64 0 * +Ve +1e-07 +27.5 0 15.5 +0 0 + +0101101 +* Ed 1e-07 1 1 0 -1 5 0 0 50 +1 5 0 0 6.28318530717959 +2 8 1 0 0 6.28318530717959 +2 9 4 0 0 6.28318530717959 0 -0101000 -+96 0 -103 0 * +0101100 ++62 0 -62 0 * Wi 0101100 -+95 0 -102 0 -94 0 +94 1 * +-61 0 * Fa -0 1e-07 2 0 +0 1e-07 1 0 0101000 -+93 0 * ++66 0 +63 0 +60 0 * Ve 1e-07 -50 5 0 +0 50 0 0 0 0101101 @@ -242,577 +189,345 @@ Ve Ed 1e-07 1 1 0 1 6 0 0 40 -2 1 4 0 0 40 +2 10 2 0 0 40 0 0101000 -+91 0 -91 1 * ++58 0 -58 1 * Ed 1e-07 1 1 0 -1 7 0 0 5 +1 7 0 0 50 +2 11 2 0 0 50 +2 12 2 2 0 50 0 0101000 -+101 0 -91 0 * ++58 0 -71 0 * Wi 0101100 -+100 0 -90 0 -89 0 +89 1 * -Fa -0 1e-07 3 0 - -0101000 -+88 0 * ++57 0 -56 0 +56 1 -70 0 * Ve 1e-07 -5 5 0 +0 27.5 31.5 0 0 0101101 * Ed 1e-07 1 1 0 -1 8 0 0 45 -2 2 4 0 0 45 -2 3 4 2 0 45 +1 8 0 0 6.28318530717959 +2 13 2 0 0 6.28318530717959 +2 14 5 0 0 6.28318530717959 0 -0101000 -+91 0 -86 0 * +0101100 ++54 0 -54 0 * +Wi + +0101100 +-53 0 * Ve 1e-07 -5 50 0 +0 27.5 15.5 0 0 0101101 * Ed 1e-07 1 1 0 -1 9 0 0 45 -2 4 6 0 0 45 -2 5 6 2 0 45 -0 - -0101000 -+86 0 -84 0 * -Ed - 1e-07 1 1 0 -1 10 0 0 5 +1 9 0 0 6.28318530717959 +2 15 2 0 0 6.28318530717959 +2 16 6 0 0 6.28318530717959 0 -0101000 -+84 0 -96 0 * -Wi - 0101100 -+99 0 +89 0 +85 0 +83 0 +82 0 +94 0 * -Fa -0 1e-07 5 0 - -0101000 -+81 0 * -Ed - 1e-07 1 1 0 -1 11 0 0 40 -2 6 6 0 0 40 -0 - -0101000 -+84 0 -84 1 * ++51 0 -51 0 * Wi 0101100 -+79 0 -95 0 -82 0 +82 1 * +-50 0 * Fa -0 1e-07 7 0 - -0101000 -+78 0 * -Ed - 1e-07 1 1 0 -1 12 0 0 40 -2 7 4 0 0 40 -2 8 6 0 0 40 -0 +0 1e-07 2 0 0101000 -+86 0 -86 1 * -Wi - -0101100 -+90 0 -85 0 +85 1 -76 0 * ++55 0 +52 0 +49 0 * Ve -1.50000001776357e-07 -30.8541019662497 5 28 -0 0 - -0101101 -* -Ve -1.50000000888178e-07 -24.1458980337503 5 28 +1e-07 +50 5 0 0 0 0101101 * Ed - 1.5e-07 1 1 0 -1 13 0 7.89589803375031 14.6041019662497 -2 9 4 0 7.89589803375031 14.6041019662497 -2 10 8 0 7.89589803375031 14.6041019662497 + 1e-07 1 1 0 +1 10 0 0 5 0 0101000 -+74 0 -73 0 * ++69 0 -47 0 * Ve -1.50000001776357e-07 -30.8541019662497 5 35 +1e-07 +5 5 0 0 0 0101101 * Ed 1e-07 1 1 0 -1 14 0 0 7 -2 11 4 0 0 7 -2 12 9 0 0 7 +1 11 0 0 45 +2 17 8 0 0 45 +2 18 8 2 0 45 0 0101000 -+74 0 -71 0 * ++47 0 -45 0 * Ve -1.50000000888178e-07 -24.1458980337503 5 35 +1e-07 +5 50 0 0 0 0101101 * Ed - 1.5e-07 1 1 0 -1 15 0 7.89589803375031 14.6041019662497 -2 13 4 0 7.89589803375031 14.6041019662497 -2 14 10 0 7.89589803375031 14.6041019662497 + 1e-07 1 1 0 +1 12 0 0 45 +2 19 9 0 0 45 +2 20 9 2 0 45 0 0101000 -+71 0 -69 0 * ++45 0 -43 0 * Ed 1e-07 1 1 0 -1 16 0 0 7 -2 15 4 0 0 7 -2 16 9 0 0 7 +1 13 0 0 5 0 0101000 -+73 0 -69 0 * ++43 0 -58 0 * Wi 0101100 -+72 0 -70 0 -68 0 +67 0 * -Ve -1.50000001776357e-07 -30.8541019662497 5 12 -0 0 - -0101101 -* -Ve -1.50000000888178e-07 -24.1458980337503 5 12 -0 0 - -0101101 -* -Ed - 1.5e-07 1 1 0 -1 17 0 7.89589803375031 14.6041019662497 -2 17 4 0 7.89589803375031 14.6041019662497 -2 18 11 0 7.89589803375031 14.6041019662497 -0 - -0101000 -+65 0 -64 0 * -Ve -1.50000001776357e-07 -30.8541019662497 5 19 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 18 0 0 7 -2 19 4 0 0 7 -2 20 12 0 0 7 -0 ++68 0 +46 0 +44 0 +42 0 +41 0 +56 0 * +Fa +0 1e-07 7 0 0101000 -+65 0 -62 0 * -Ve -1.50000000888178e-07 -24.1458980337503 5 19 -0 0 - -0101101 -* ++40 0 * Ed 1e-07 1 1 0 -1 19 0 0 7 -2 21 4 0 0 7 -2 22 12 0 0 7 -0 - -0101000 -+64 0 -60 0 * -Ed - 1.5e-07 1 1 0 -1 20 0 7.89589803375031 14.6041019662497 -2 23 4 0 7.89589803375031 14.6041019662497 -2 24 13 0 7.89589803375031 14.6041019662497 +1 14 0 0 40 +2 21 8 0 0 40 0 0101000 -+62 0 -60 0 * ++47 0 -47 1 * Wi 0101100 -+63 0 -61 0 +59 0 -58 0 * ++67 0 -38 0 -46 0 +46 1 * Fa -0 1e-07 4 0 - -0101000 -+75 0 +66 0 +57 0 * -Wi - -0101100 -+76 0 -83 0 +83 1 -79 0 * -Ve -1.50000001776357e-07 -5 24.1458980337503 28 -0 0 - -0101101 -* -Ve -1.50000000888178e-07 -5 30.8541019662497 28 -0 0 - -0101101 -* -Ed - 1.5e-07 1 1 0 -1 21 0 7.89589803375032 14.6041019662497 -2 25 6 0 7.89589803375032 14.6041019662497 -2 26 14 0 7.89589803375032 14.6041019662497 -0 +0 1e-07 10 0 0101000 -+54 0 -53 0 * ++37 0 * Ve -1.50000001776357e-07 -5 24.1458980337503 35 +1e-07 +27.5 5 31.5 0 0 0101101 * Ed 1e-07 1 1 0 -1 22 0 0 7 -2 27 6 0 0 7 -2 28 15 0 0 7 -0 - -0101000 -+54 0 -51 0 * -Ve -1.50000000888178e-07 -5 30.8541019662497 35 -0 0 - -0101101 -* -Ed - 1.5e-07 1 1 0 -1 23 0 7.89589803375032 14.6041019662497 -2 29 6 0 7.89589803375032 14.6041019662497 -2 30 16 0 7.89589803375032 14.6041019662497 +1 15 0 0 6.28318530717959 +2 22 8 0 0 6.28318530717959 +2 23 3 0 0 6.28318530717959 0 -0101000 -+51 0 -49 0 * +0101100 ++35 0 -35 0 * Ed 1e-07 1 1 0 -1 24 0 0 7 -2 31 6 0 0 7 -2 32 15 0 0 7 +1 16 0 1 6 +3 24 25CN 3 0 1 6 0 0101000 -+53 0 -49 0 * ++65 0 -35 0 * Wi 0101100 -+52 0 -50 0 -48 0 +47 0 * -Ve -1.50000001776357e-07 -5 24.1458980337503 12 -0 0 - -0101101 -* -Ve -1.50000000888178e-07 -5 30.8541019662497 12 -0 0 - -0101101 -* -Ed - 1.5e-07 1 1 0 -1 25 0 7.89589803375032 14.6041019662497 -2 33 6 0 7.89589803375032 14.6041019662497 -2 34 17 0 7.89589803375032 14.6041019662497 -0 +-34 0 +33 0 +64 0 -33 0 * +Fa +0 1e-07 3 0 0101000 -+45 0 -44 0 * ++32 0 * Ve -1.50000001776357e-07 -5 24.1458980337503 19 +1e-07 +27.5 5 15.5 0 0 0101101 * Ed 1e-07 1 1 0 -1 26 0 0 7 -2 35 6 0 0 7 -2 36 18 0 0 7 +1 17 0 0 6.28318530717959 +2 26 8 0 0 6.28318530717959 +2 27 4 0 0 6.28318530717959 0 -0101000 -+45 0 -42 0 * -Ve -1.50000000888178e-07 -5 30.8541019662497 19 -0 0 - -0101101 -* +0101100 ++30 0 -30 0 * Ed 1e-07 1 1 0 -1 27 0 0 7 -2 37 6 0 0 7 -2 38 18 0 0 7 -0 - -0101000 -+44 0 -40 0 * -Ed - 1.5e-07 1 1 0 -1 28 0 7.89589803375032 14.6041019662497 -2 39 6 0 7.89589803375032 14.6041019662497 -2 40 19 0 7.89589803375032 14.6041019662497 +1 18 0 1 6 +3 28 29CN 4 0 1 6 0 0101000 -+42 0 -40 0 * ++62 0 -30 0 * Wi 0101100 -+43 0 -41 0 +39 0 -38 0 * +-29 0 +28 0 +61 0 -28 0 * Fa -0 1e-07 6 0 +0 1e-07 4 0 0101000 -+55 0 +46 0 +37 0 * ++27 0 * Ed 1e-07 1 1 0 -1 29 0 3.43134435502584 5.99343360574354 -2 41 9 0 3.43134435502584 5.99343360574354 -2 42 8 0 3.43134435502584 5.99343360574354 +1 19 0 0 40 +2 30 9 0 0 40 0 0101000 -+73 0 -74 0 * ++43 0 -43 1 * Wi 0101100 -+72 0 +35 0 * ++25 0 -57 0 -41 0 +41 1 * Fa -0 1e-07 8 0 +0 1e-07 11 0 0101000 -+34 0 * ++24 0 * +Ve +1e-07 +5 27.5 31.5 +0 0 + +0101101 +* Ed 1e-07 1 1 0 -1 30 0 3.43134435502584 5.99343360574354 -2 43 9 0 3.43134435502584 5.99343360574354 -2 44 10 0 3.43134435502584 5.99343360574354 +1 20 0 0 6.28318530717959 +2 31 9 0 0 6.28318530717959 +2 32 5 0 0 6.28318530717959 0 -0101000 -+69 0 -71 0 * -Wi - 0101100 --32 0 +70 0 +35 0 -67 0 * -Fa -0 1e-07 9 0 - -0101000 -+31 0 * -Wi - -0101100 -+68 0 +32 0 * -Fa -0 1e-07 10 0 - -0101000 -+29 0 * ++22 0 -22 0 * Ed 1e-07 1 1 0 -1 31 0 3.43134435502584 5.99343360574354 -2 45 12 0 3.43134435502584 5.99343360574354 -2 46 11 0 3.43134435502584 5.99343360574354 +1 21 0 1 6 +3 33 34CN 5 0 1 6 0 0101000 -+64 0 -65 0 * ++54 0 -22 0 * Wi 0101100 -+63 0 +27 0 * +-21 0 +20 0 +53 0 -20 0 * Fa -0 1e-07 11 0 +0 1e-07 5 0 0101000 -+26 0 * ++19 0 * +Ve +1e-07 +5 27.5 15.5 +0 0 + +0101101 +* Ed 1e-07 1 1 0 -1 32 0 3.43134435502584 5.99343360574354 -2 47 12 0 3.43134435502584 5.99343360574354 -2 48 13 0 3.43134435502584 5.99343360574354 +1 22 0 0 6.28318530717959 +2 35 9 0 0 6.28318530717959 +2 36 6 0 0 6.28318530717959 0 -0101000 -+60 0 -62 0 * -Wi - 0101100 --24 0 +61 0 +27 0 -59 0 * -Fa -0 1e-07 12 0 - -0101000 -+23 0 * -Wi - -0101100 -+58 0 +24 0 * -Fa -0 1e-07 13 0 - -0101000 -+21 0 * ++17 0 -17 0 * Ed 1e-07 1 1 0 -1 33 0 1.86054802823094 4.42263727894864 -2 49 15 0 1.86054802823094 4.42263727894864 -2 50 14 0 1.86054802823094 4.42263727894864 +1 23 0 1 6 +3 37 38CN 6 0 1 6 0 0101000 -+53 0 -54 0 * ++51 0 -17 0 * Wi 0101100 -+52 0 +19 0 * +-16 0 +15 0 +50 0 -15 0 * Fa -0 1e-07 14 0 +0 1e-07 6 0 0101000 -+18 0 * ++14 0 * Ed 1e-07 1 1 0 -1 34 0 1.86054802823094 4.42263727894864 -2 51 15 0 1.86054802823094 4.42263727894864 -2 52 16 0 1.86054802823094 4.42263727894864 +1 24 0 0 40 +2 39 8 0 0 40 +2 40 9 0 0 40 0 0101000 -+49 0 -51 0 * ++45 0 -45 1 * Wi 0101100 --16 0 +50 0 +19 0 -47 0 * -Fa -0 1e-07 15 0 - -0101000 -+15 0 * ++38 0 -44 0 +44 1 -12 0 * Wi 0101100 -+48 0 +16 0 * -Fa -0 1e-07 16 0 - -0101000 -+13 0 * -Ed - 1e-07 1 1 0 -1 35 0 1.86054802823094 4.42263727894864 -2 53 18 0 1.86054802823094 4.42263727894864 -2 54 17 0 1.86054802823094 4.42263727894864 -0 - -0101000 -+44 0 -45 0 * ++34 0 * Wi 0101100 -+43 0 +11 0 * ++29 0 * Fa -0 1e-07 17 0 - -0101000 -+10 0 * -Ed - 1e-07 1 1 0 -1 36 0 1.86054802823094 4.42263727894864 -2 55 18 0 1.86054802823094 4.42263727894864 -2 56 19 0 1.86054802823094 4.42263727894864 -0 +0 1e-07 8 0 0101000 -+40 0 -42 0 * ++11 0 +10 0 +9 0 * Wi 0101100 --8 0 +41 0 +11 0 -39 0 * -Fa -0 1e-07 18 0 ++12 0 -42 0 +42 1 -25 0 * +Wi -0101000 -+7 0 * +0101100 ++21 0 * Wi 0101100 -+38 0 +8 0 * ++16 0 * Fa -0 1e-07 19 0 +0 1e-07 9 0 0101000 -+5 0 * ++7 0 +6 0 +5 0 * Sh 0101100 --97 0 -92 0 -87 0 -80 0 +80 1 -77 0 -56 0 -36 0 +33 0 -30 0 --28 0 +25 0 -22 0 -20 0 +17 0 -14 0 -12 0 +9 0 -6 0 -4 0 -* +-59 0 -48 0 -39 0 +39 1 -36 0 -31 0 -26 0 -23 0 -18 0 -13 0 +-8 0 -4 0 * So 0100000 diff --git a/recipes/01-mounting-bracket/output.png b/recipes/01-mounting-bracket/output.png index 7889ead8e37ff562de78e4b054d151a49512d7b3..7151596252f3f6549a195ccebe943bb84459c412 100644 GIT binary patch literal 18967 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 Gwf_SskDFNl literal 43501 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 JU;fy940LL0)C_eg9Bmgccg&MiFu5|ol75Q*fL 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 JLZP{9%s*