Repository: mikedh/trimesh

Issue:
Orientation of polygon when using .creation.sweep_polygon
Hi,
I am using .creation.sweep_polygon with a shapely polygon as input for the "polygon" parameter. The function does create extrusion shapes, however, I am having trouble understanding the orientation of the polygon when sweeping along the extrusion path. Shapely polygons only have x,y coordinates, that's fine, but how are these axes then re-oriented in 3D space for the extrusion with sweep_polygon, when the extrusion path is not aligned in z-direction ? Maybe I am missing something obvious here, but I have had surprising results when trying to work it out myself.
trimesh.creation.sweep_polygon - sweep without banking?
As I understand it, the sweep_polygon function rotates the polygon along x when it sweeps along a 3Dpath. In other software this is usually called banking when sweeping objects along a path. See here:
https://www.cadforum.cz/en/what-for-is-the-bank-option-of-the-sweep-command-tip12471

Is it possible to not rotate the polygon along X when sweeping? I would like resulting trimesh not to be banked.
Examples with a swept rectangle:
![2D](https://user-images.githubusercontent.com/10772529/145786168-3b8cdc26-7daf-4146-99c7-20937e3b1b68.png)
![banked](https://user-images.githubusercontent.com/10772529/145786180-3ec64de1-7e48-41a1-84d1-c9168dac3017.jpg)
![not_banked](https://user-images.githubusercontent.com/10772529/145786188-1392f324-a32e-49b8-8621-e5a3605bbbae.jpg)


I tried setting the angles option in trimesh.creation.sweep_polygon to a list with 0.0 values but it did not have any effect. Do I need calculate the angles for all vertices/line segments in the 3Dpath and then supply that to the angles option? Would appreciate an example if that is the case.

Thanks!
sweep_polygon not a superset of extrude_polygon?
Using trimesh 3.14.1

Something is confusing me in the relationship of sweep_polygon and extrude polygon.
I would have thought that sweeping from [0,0,0] to [0,0,z] would have been the same as extruding z.
However, this is not the case:

```
from shapely import wkt
from trimesh.creation import extrude_polygon, sweep_polygon

wkt_str = 'POLYGON ((5.00377535 -55.9875328200079, 5.00377535 -48.78608924996518, 0.5577428000031441 -48.78608924996518, 0.5577428000031441 -59.109798756658876, 70.78461385999685 -59.109798756658876, 70.78461385999685 -49.54863710000369, 63.648103400000004 -49.54863710000369, 63.648103400000004 -55.9875328200079, 5.00377535 -55.9875328200079))'
poly = wkt.loads(wkt_str)

extruded = extrude_polygon(poly, 5)
sweeped = sweep_polygon(poly, [(0, 0, 0), (0, 0, 5)])

print(poly.bounds)
print(extruded.bounds)
print(sweeped.bounds)
```

outputs this:

```
(0.5577428000031441, -59.109798756658876, 70.78461385999685, -48.78608924996518)
[[  0.5577428  -59.10979876   0.        ]
 [ 70.78461386 -48.78608925   5.        ]]
[[ 0.5577428  48.78608925  0.        ]
 [70.78461386 59.10979876  5.        ]]
```

It looks like the Y coordinate is flipped in sweep_polygon. How come?
Issue loading .STEP files using Gmsh
I was following this thread (https://github.com/mikedh/trimesh/issues/945), and it worked well for me, however, gmsh keeps writing new stl files to a a directory on my system. They all begin with tmp.....stl. Is there a way to prevent this or at least change the directory?
sweep_polygon with cyclic path
Hello there. First let me thank you for such great library!

I'm looking for making a path extrude like sweep_polygon where path is actually a closed shape (the beginning of the path is the same as the end). I've tried using the function and it works fine, but not for cyclic path, it stays open at the end. By looking at the code I see the "cap" at beginning and and are created and I see no option to remove them and close the shape. Would that be an interesting feature to develop add a flag for that use case (I could contribute)? Or maybe I missed a function doing this already.

funny example: from svg (red one is the profile=polygon and blue one is the cyclic path) into a mesh ![image](https://github.com/mikedh/trimesh/assets/2393097/492af238-b4a6-4f50-9b38-2fd152cf0104)

Thank you.
Instability with normal generation with trimesh.creation.sweep_polygon
I have been using the `trimesh.creation.sweep_polygon `with the following path:

```
path = array([[38.10477237, 21.67300341,  7.94233277],
                       [38.10477237, 21.67299835,  6.94233277],
                       [38.10477237, 21.67299688,  6.65233277],
                       [37.89523014, 20.84123975,  4.53453201]])

trimesh.creation.sweep_polygon(poly, path)
```

As a result,  It took a while to diagnose the issue internally to the function. I have noticed there are instabilities with the generation of the normals that are created across the path. In this situation the X-coordinate is kept the same, and the y coordinates are numerically very close. Generating the path will results in vertices that are extremely large, due to normals having small components.

I don't know which method you are using to construct the paths along the curve. Hopefully, you can investigate the instability?

Many thanks,
Luke 
GMSH stops on module 'gmsh' has no attribute 'isInitialized'. 
Hey. I'm trying to get gmsh to work to import a step file. However, this simple code does not work:

`import numpy as np`
`import trimesh`
`trimesh.util.attach_to_log()`
`mesh = trimesh.interfaces.gmsh.load_gmsh('trimesh/models/BREP/base_interface_AP203.STEP')`


As it stops on this:

`Traceback (most recent call last):
  File "c:\projects\blenderstl\main.py", line 32, in <module>
    mesh = trimesh.interfaces.gmsh.load_gmsh('trimesh/models/BREP/base_interface_AP203.STEP')
  File "C:\Python310\lib\site-packages\trimesh\interfaces\gmsh.py", line 79, in load_gmsh
    if not gmsh.isInitialized():
AttributeError: module 'gmsh' has no attribute 'isInitialized'. Did you mean: 'initialize'?`

Am I missing something obvious?


Discussion:


Hello,


I'm facing the exact same issue with trimesh version 4.2.3.

Here is an MWE showing the shape's tilt along the 3D path:

```py
import numpy as np
from shapely.geometry import Polygon
from trimesh.creation import sweep_polygon

shape = Polygon([[0, 0],[2, 0], [2, 1], [0, 1], [0, 0]])
path = np.array([
    [  0,  0,  0],
    [  0, 10, 10],
    [ 10, 20, 20],
    [ 30, 20, 20]
])
mesh = sweep_polygon(shape, path)
```
![image](https://github.com/mikedh/trimesh/assets/19967599/5ce9e639-5447-43c4-8538-10e8d807a151)

This is mainly due to the fact that the shape is rotated around an axis perpendicular to the plane defined by the two edges of a path at their common vertex.

Hey, `sweep_polygon` isn't as well tested as `extrude_polygon`, this seems likely to just be bug and I agree the behavior of sweep and extrude for a single segment seem like they should be the same. PR's welcome!



Glad it's useful! Yeah I think that case probably isn't handled in sweep (PR's welcome!). You could also try `trimesh.creation.revolve` and then apply a skew if the path is just an elipse. Revolve definitely handles the closed case as it's used for generating all the revolved solids (capsule/cone/cylinder/etc) in trimesh.creation.



https://github.com/mikedh/trimesh/blob/c880b028243fdcb128368d9dcd73fdb343fa15ac/trimesh/creation.py#L41-L76
Greetings @mikedh! During the time since posting, I've wrote my own implementation, the reason is I wanted something general that can handle pretty much anything simply. One of my concrete example was making a screw thread. I tried in trimesh and here is what happened (the shape starts at the bottom and goes upwards, we can see the original polygon at beginning, it started so well):

![image](https://github.com/mikedh/trimesh/assets/2393097/6721bf20-dcc6-4dc7-903c-a1aafe92da9a)

Basically I specify a path that's a XY circle up to `2*pi*height/pitch` and Z is np.linspace going up (one pitch for each revolution of XY). We can see the sweeped polygon is rotated more and more with every turn (some kind of roll), that's really weird! My implementation doesn't have path pitch yet but has proper orientation, this is what I expected:

![image](https://github.com/mikedh/trimesh/assets/2393097/f7213be8-7692-49ab-bed9-f621f47429ff)

Any idea why trimesh does that roll? It seems it wasn't made for rotations >2pi I'm not sure. I tried reading the code but didn't had much time. Maybe you can shed some light on that aspect?

Here is another example I wanted to be able to do: rails along arbitrary path with an arbitrary profile:
![image](https://github.com/mikedh/trimesh/assets/2393097/0ead27f5-c223-400d-9347-683b74d622f2)

Depending if the incremental roll exhibited above by trimesh is part of its feature (for some reason it escapes me right now), if not I may be able to adapt it to make a PR in trimesh then we can assess if it's useful to contribute. Also I'm sorry I don't have the trimesh code at hand but I can provide it or try rewriting it quickly if necessary (let me know). Thoughts?


PS: I was curious so I've given a shot with revolve but it's closing the top surface (which doesn't make sense to me because the profile shape isn't wide enough to close it). Left is revolve and right is mine I remade:

![image](https://github.com/mikedh/trimesh/assets/2393097/53b1838f-8c02-4f5f-8688-06bbbdfc9c92)


Actually I was able to isolate my code into something standalone:

```python
#!/usr/bin/python
import numpy as np
from numpy import array as V
import math
from trimesh.exchange.export import export_mesh
from trimesh.creation import sweep_polygon
from shapely.geometry import Polygon

def arc_2d(final_angle, d=1, start_angle=0, splits=20):
    xs = np.linspace(start_angle, final_angle, splits)
    return np.stack((d/2 * np.cos(xs), d/2 * np.sin(xs)), axis=1)

h=200
d=8
h1=1
w = 2
d = d - w
h2 = h1

lead = 2
splits_per_turn = 4*20

polygon = V([(-0.01, -h1/2),
             (w, -h2/2),
             (w, +h2/2),
             (-0.01, +h1/2)])

h_ = h + h1
n = math.ceil(splits_per_turn * h_ / lead)
turns = n / splits_per_turn
xys = arc_2d(2*np.pi * turns, d, splits=n)
zs = np.linspace(0, h_, n)[:,None]
spin_path = np.concatenate((xys, zs), axis=1)

x = sweep_polygon(Polygon(polygon), spin_path)

export_mesh(x, 'screw_test_trimesh.stl')
```

Although it's not exactly the same screw as in the screenshot above, it exhibits the same "roll" behavior. Hope this helps.







Patch:
diff --git a/Dockerfile b/Dockerfile
index f994ef1a1..fe40e20c0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -63,7 +63,7 @@ COPY --chown=499 pyproject.toml .
 COPY --chown=499 ./.git ./.git/
 
 USER root
-RUN trimesh-setup --install=test,gltf_validator,llvmpipe,binvox
+RUN trimesh-setup --install=test,gmsh,gltf_validator,llvmpipe,binvox
 USER user
 
 # install things like pytest
diff --git a/docker/trimesh-setup b/docker/trimesh-setup
index 5ed0f0d26..e0d8fa171 100755
--- a/docker/trimesh-setup
+++ b/docker/trimesh-setup
@@ -46,7 +46,8 @@ config_json = """
       "openscad",
       "curl",
       "git"
-    ]
+    ],
+   "gmsh": ["libxft2", "libxinerama-dev", "libxcursor1","libgomp1"]
   },
   "fetch": {
     "gltf_validator": {
diff --git a/models/featuretype.STEP b/models/featuretype.STEP
new file mode 100644
index 000000000..c9a339e6c
--- /dev/null
+++ b/models/featuretype.STEP
@@ -0,0 +1,3083 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION (( 'STEP AP214' ),
+    '1' );
+FILE_NAME ('featuretype.STEP',
+    '2014-10-03T02:30:11',
+    ( '' ),
+    ( '' ),
+    'SwSTEP 2.0',
+    'SolidWorks 2013',
+    '' );
+FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' ));
+ENDSEC;
+
+DATA;
+#1 = EDGE_CURVE ( 'NONE', #1685, #2945, #662, .T. ) ;
+#2 = FACE_BOUND ( 'NONE', #288, .T. ) ;
+#3 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, 0.6250000000000000000, 1.000000000000000000 ) ) ;
+#4 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#5 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#6 = EDGE_CURVE ( 'NONE', #2382, #729, #1512, .T. ) ;
+#7 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026637000, 0.2549102234176834900, 1.375000000000000000 ) ) ;
+#8 = ADVANCED_FACE ( 'NONE', ( #2457 ), #2682, .F. ) ;
+#9 = VERTEX_POINT ( 'NONE', #2455 ) ;
+#10 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#11 = EDGE_CURVE ( 'NONE', #1734, #2105, #888, .T. ) ;
+#12 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#13 = AXIS2_PLACEMENT_3D ( 'NONE', #1964, #2680, #2210 ) ;
+#14 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#15 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#16 = CYLINDRICAL_SURFACE ( 'NONE', #609, 0.09999999999999992200 ) ;
+#17 = ORIENTED_EDGE ( 'NONE', *, *, #2434, .F. ) ;
+#18 = VECTOR ( 'NONE', #2300, 39.37007874015748100 ) ;
+#19 = VECTOR ( 'NONE', #2331, 39.37007874015748100 ) ;
+#20 = ORIENTED_EDGE ( 'NONE', *, *, #336, .T. ) ;
+#21 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#22 = VECTOR ( 'NONE', #2611, 39.37007874015748100 ) ;
+#23 = ORIENTED_EDGE ( 'NONE', *, *, #2845, .T. ) ;
+#24 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#25 = CIRCLE ( 'NONE', #1872, 0.09999999999999989500 ) ;
+#26 = EDGE_LOOP ( 'NONE', ( #2746, #2734, #296, #996 ) ) ;
+#27 = CARTESIAN_POINT ( 'NONE',  ( -1.340750000000000100, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#28 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.4999999999999996700 ) ) ;
+#29 = VECTOR ( 'NONE', #2485, 39.37007874015748100 ) ;
+#30 = VERTEX_POINT ( 'NONE', #1770 ) ;
+#31 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#32 = PRESENTATION_STYLE_ASSIGNMENT (( #2151 ) ) ;
+#33 = ORIENTED_EDGE ( 'NONE', *, *, #1030, .F. ) ;
+#34 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, -0.1318487067688302900, 1.375000000000000000 ) ) ;
+#35 = CIRCLE ( 'NONE', #1705, 0.2187499999999999400 ) ;
+#36 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#37 = EDGE_CURVE ( 'NONE', #1946, #371, #1800, .T. ) ;
+#38 = ADVANCED_FACE ( 'NONE', ( #738 ), #2146, .F. ) ;
+#39 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#40 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#41 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.2060549223287785900, 1.375000000000000000 ) ) ;
+#42 = AXIS2_PLACEMENT_3D ( 'NONE', #2435, #1257, #1751 ) ;
+#43 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#44 = VERTEX_POINT ( 'NONE', #115 ) ;
+#45 = ADVANCED_BREP_SHAPE_REPRESENTATION ( 'featuretype', ( #551, #390 ), #2086 ) ;
+#46 = CARTESIAN_POINT ( 'NONE',  ( 0.9092499999999998900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#47 = FACE_OUTER_BOUND ( 'NONE', #2995, .T. ) ;
+#48 = EDGE_CURVE ( 'NONE', #1802, #59, #2061, .T. ) ;
+#49 = AXIS2_PLACEMENT_3D ( 'NONE', #575, #330, #1258 ) ;
+#50 = EDGE_CURVE ( 'NONE', #997, #1793, #1281, .T. ) ;
+#51 = CIRCLE ( 'NONE', #2659, 0.1250000000000000300 ) ;
+#52 = CYLINDRICAL_SURFACE ( 'NONE', #1991, 0.1249999999999999000 ) ;
+#53 = ORIENTED_EDGE ( 'NONE', *, *, #1064, .F. ) ;
+#54 = ORIENTED_EDGE ( 'NONE', *, *, #532, .T. ) ;
+#55 = CIRCLE ( 'NONE', #2414, 0.1330000000000002000 ) ;
+#56 = ADVANCED_FACE ( 'NONE', ( #2422 ), #2259, .F. ) ;
+#57 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#58 = FACE_BOUND ( 'NONE', #129, .T. ) ;
+#59 = VERTEX_POINT ( 'NONE', #2051 ) ;
+#60 = ORIENTED_EDGE ( 'NONE', *, *, #1690, .T. ) ;
+#61 = ORIENTED_EDGE ( 'NONE', *, *, #1395, .T. ) ;
+#62 = EDGE_LOOP ( 'NONE', ( #2150, #1546, #2307, #1683 ) ) ;
+#63 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#64 = CYLINDRICAL_SURFACE ( 'NONE', #2691, 0.2187499999999999400 ) ;
+#65 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.174999999999999800 ) ) ;
+#66 = CARTESIAN_POINT ( 'NONE',  ( 1.999999999999998900, -1.250000000000000000, 0.0000000000000000000 ) ) ;
+#67 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#68 = EDGE_CURVE ( 'NONE', #1497, #691, #2355, .T. ) ;
+#69 = AXIS2_PLACEMENT_3D ( 'NONE', #1399, #3002, #1613 ) ;
+#70 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#71 = FACE_BOUND ( 'NONE', #1781, .T. ) ;
+#72 = ADVANCED_FACE ( 'NONE', ( #2753 ), #1032, .F. ) ;
+#73 = AXIS2_PLACEMENT_3D ( 'NONE', #454, #233, #3012 ) ;
+#74 = LINE ( 'NONE', #1615, #1879 ) ;
+#75 = ORIENTED_EDGE ( 'NONE', *, *, #690, .T. ) ;
+#76 = CARTESIAN_POINT ( 'NONE',  ( -2.465749999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#77 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#78 = ORIENTED_EDGE ( 'NONE', *, *, #1297, .T. ) ;
+#79 = CARTESIAN_POINT ( 'NONE',  ( -3.161825413516036900, 0.6874999999999995600, 1.000000000000000000 ) ) ;
+#80 = VERTEX_POINT ( 'NONE', #151 ) ;
+#81 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#82 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#83 = AXIS2_PLACEMENT_3D ( 'NONE', #1296, #1763, #833 ) ;
+#84 = PLANE ( 'NONE',  #815 ) ;
+#85 = LINE ( 'NONE', #420, #2813 ) ;
+#86 = ORIENTED_EDGE ( 'NONE', *, *, #1698, .F. ) ;
+#87 = VECTOR ( 'NONE', #1529, 39.37007874015748100 ) ;
+#88 = LINE ( 'NONE', #476, #678 ) ;
+#89 = ORIENTED_EDGE ( 'NONE', *, *, #2904, .T. ) ;
+#90 = ORIENTED_EDGE ( 'NONE', *, *, #768, .F. ) ;
+#91 = LINE ( 'NONE', #472, #1822 ) ;
+#92 = ORIENTED_EDGE ( 'NONE', *, *, #2567, .F. ) ;
+#93 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#94 = EDGE_LOOP ( 'NONE', ( #1974, #317 ) ) ;
+#95 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279700, -0.1318487067688303100, 1.375000000000000000 ) ) ;
+#96 = ORIENTED_EDGE ( 'NONE', *, *, #2474, .F. ) ;
+#97 = CARTESIAN_POINT ( 'NONE',  ( 2.227291815900829300, -0.4188565208705536900, 0.6250000000000000000 ) ) ;
+#98 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#99 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#100 = EDGE_CURVE ( 'NONE', #2476, #2013, #1577, .T. ) ;
+#101 = CIRCLE ( 'NONE', #49, 0.1249999999999999000 ) ;
+#102 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#103 = ORIENTED_EDGE ( 'NONE', *, *, #2862, .F. ) ;
+#104 = ORIENTED_EDGE ( 'NONE', *, *, #1522, .T. ) ;
+#105 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#106 = EDGE_LOOP ( 'NONE', ( #2673, #259, #473, #914, #401, #2450, #1244, #2211, #2175, #2787, #1537, #2974 ) ) ;
+#107 = CARTESIAN_POINT ( 'NONE',  ( 2.526213591511189200, -0.08733638245144770300, 0.6250000000000000000 ) ) ;
+#108 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#109 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#110 = ORIENTED_EDGE ( 'NONE', *, *, #2383, .F. ) ;
+#111 = VECTOR ( 'NONE', #1545, 39.37007874015748100 ) ;
+#112 = EDGE_CURVE ( 'NONE', #836, #1548, #258, .T. ) ;
+#113 = AXIS2_PLACEMENT_3D ( 'NONE', #1263, #539, #1713 ) ;
+#114 = EDGE_CURVE ( 'NONE', #2919, #2359, #2453, .T. ) ;
+#115 = CARTESIAN_POINT ( 'NONE',  ( -0.2157500000000000300, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#116 = CARTESIAN_POINT ( 'NONE',  ( 2.500000003366624800, 0.4375503453205060200, 0.8124999999999998900 ) ) ;
+#117 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979653500, 0.5624999999999996700, 1.000000000000000000 ) ) ;
+#118 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#119 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.000000000000000000 ) ) ;
+#120 = VERTEX_POINT ( 'NONE', #1101 ) ;
+#121 = EDGE_CURVE ( 'NONE', #2945, #2282, #2992, .T. ) ;
+#122 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#123 = VECTOR ( 'NONE', #2739, 39.37007874015748100 ) ;
+#124 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.174999999999999800 ) ) ;
+#125 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 1.250000000000000000, 0.4999999999999996100 ) ) ;
+#126 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, -0.1318487067688302900, 1.174999999999999800 ) ) ;
+#127 = LINE ( 'NONE', #3004, #2235 ) ;
+#128 = ORIENTED_EDGE ( 'NONE', *, *, #2541, .F. ) ;
+#129 = EDGE_LOOP ( 'NONE', ( #1470, #1620 ) ) ;
+#130 = LINE ( 'NONE', #1689, #2555 ) ;
+#131 = FACE_OUTER_BOUND ( 'NONE', #1288, .T. ) ;
+#132 = ORIENTED_EDGE ( 'NONE', *, *, #1010, .F. ) ;
+#133 = ORIENTED_EDGE ( 'NONE', *, *, #559, .T. ) ;
+#134 = ORIENTED_EDGE ( 'NONE', *, *, #671, .T. ) ;
+#135 = ORIENTED_EDGE ( 'NONE', *, *, #958, .F. ) ;
+#136 = ORIENTED_EDGE ( 'NONE', *, *, #1159, .F. ) ;
+#137 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, 0.6250000000000000000, 1.375000000000000000 ) ) ;
+#138 = VECTOR ( 'NONE', #1245, 39.37007874015748100 ) ;
+#139 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000003200, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#140 = ORIENTED_EDGE ( 'NONE', *, *, #2244, .T. ) ;
+#141 = EDGE_CURVE ( 'NONE', #2233, #2444, #2826, .T. ) ;
+#142 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#143 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#144 = CIRCLE ( 'NONE', #855, 0.2187499999999999400 ) ;
+#145 = AXIS2_PLACEMENT_3D ( 'NONE', #2021, #1373, #180 ) ;
+#146 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.6875000000000001100, 0.8125000000000000000 ) ) ;
+#147 = LINE ( 'NONE', #2914, #307 ) ;
+#148 = ORIENTED_EDGE ( 'NONE', *, *, #2796, .F. ) ;
+#149 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#150 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#151 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, 0.2500000000000002200, 1.000000000000000000 ) ) ;
+#152 = EDGE_CURVE ( 'NONE', #326, #680, #2386, .T. ) ;
+#153 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -1.601555123121432500E-016, 0.0000000000000000000 ) ) ;
+#154 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#155 = EDGE_CURVE ( 'NONE', #645, #791, #2961, .T. ) ;
+#156 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#157 = ORIENTED_EDGE ( 'NONE', *, *, #1289, .T. ) ;
+#158 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#159 = ORIENTED_EDGE ( 'NONE', *, *, #2383, .T. ) ;
+#160 = VECTOR ( 'NONE', #1674, 39.37007874015748100 ) ;
+#161 = VERTEX_POINT ( 'NONE', #2707 ) ;
+#162 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#163 = VECTOR ( 'NONE', #1737, 39.37007874015748100 ) ;
+#164 = ORIENTED_EDGE ( 'NONE', *, *, #1593, .F. ) ;
+#165 = CYLINDRICAL_SURFACE ( 'NONE', #1992, 0.1330000000000002000 ) ;
+#166 = EDGE_CURVE ( 'NONE', #1343, #1273, #658, .T. ) ;
+#167 = ORIENTED_EDGE ( 'NONE', *, *, #2338, .T. ) ;
+#168 = ORIENTED_EDGE ( 'NONE', *, *, #2072, .T. ) ;
+#169 = FACE_OUTER_BOUND ( 'NONE', #277, .T. ) ;
+#170 = ORIENTED_EDGE ( 'NONE', *, *, #1552, .F. ) ;
+#171 = ORIENTED_EDGE ( 'NONE', *, *, #1211, .T. ) ;
+#172 = ORIENTED_EDGE ( 'NONE', *, *, #1327, .T. ) ;
+#173 = EDGE_CURVE ( 'NONE', #653, #2678, #959, .T. ) ;
+#174 = VECTOR ( 'NONE', #570, 39.37007874015748100 ) ;
+#175 = VERTEX_POINT ( 'NONE', #1043 ) ;
+#176 = ORIENTED_EDGE ( 'NONE', *, *, #68, .F. ) ;
+#177 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026637200, 0.2549102234176834900, 1.174999999999999800 ) ) ;
+#178 = CARTESIAN_POINT ( 'NONE',  ( 2.294434124949071000, 0.1559617977120215700, 0.6250000000000000000 ) ) ;
+#179 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.731847993664262700E-016, -0.0000000000000000000 ) ) ;
+#180 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#181 = ORIENTED_EDGE ( 'NONE', *, *, #2244, .F. ) ;
+#182 = ADVANCED_FACE ( 'NONE', ( #1733 ), #84, .F. ) ;
+#183 = VECTOR ( 'NONE', #2601, 39.37007874015748100 ) ;
+#184 = EDGE_LOOP ( 'NONE', ( #1907, #520 ) ) ;
+#185 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#186 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#187 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979653700, 0.6874999999999998900, 1.000000000000000000 ) ) ;
+#188 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000003200, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#189 = AXIS2_PLACEMENT_3D ( 'NONE', #1897, #24, #1850 ) ;
+#190 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#191 = EDGE_LOOP ( 'NONE', ( #2237, #2598, #688, #1339 ) ) ;
+#192 = ADVANCED_FACE ( 'NONE', ( #2215 ), #1765, .F. ) ;
+#193 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#194 = EDGE_CURVE ( 'NONE', #2278, #852, #1174, .T. ) ;
+#195 = ORIENTED_EDGE ( 'NONE', *, *, #1075, .F. ) ;
+#196 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250981300, 0.1874999999999998300, 0.5000000000000000000 ) ) ;
+#197 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979653500, 0.5624999999999996700, 0.8125000000000000000 ) ) ;
+#198 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#199 = LINE ( 'NONE', #125, #1021 ) ;
+#200 = FACE_OUTER_BOUND ( 'NONE', #1036, .T. ) ;
+#201 = CIRCLE ( 'NONE', #1078, 0.09999999999999989500 ) ;
+#202 = ORIENTED_EDGE ( 'NONE', *, *, #1425, .F. ) ;
+#203 = VERTEX_POINT ( 'NONE', #352 ) ;
+#204 = FACE_OUTER_BOUND ( 'NONE', #2624, .T. ) ;
+#205 = AXIS2_PLACEMENT_3D ( 'NONE', #1644, #1218, #1732 ) ;
+#206 = FACE_BOUND ( 'NONE', #1220, .T. ) ;
+#207 = EDGE_LOOP ( 'NONE', ( #2912, #1829, #720, #90, #75, #1060, #2336, #2508, #2099, #461, #2841, #1480, #2600, #2558, #801, #719 ) ) ;
+#208 = EDGE_LOOP ( 'NONE', ( #1905, #167, #444, #571 ) ) ;
+#209 = VERTEX_POINT ( 'NONE', #2918 ) ;
+#210 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060131000, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#211 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, 0.6250000000000000000, 1.375000000000000000 ) ) ;
+#212 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279400, 0.1318487067688303100, 1.174999999999999800 ) ) ;
+#213 = ORIENTED_EDGE ( 'NONE', *, *, #2338, .F. ) ;
+#214 = EDGE_CURVE ( 'NONE', #2502, #2605, #589, .T. ) ;
+#215 = VECTOR ( 'NONE', #2931, 39.37007874015748100 ) ;
+#216 = AXIS2_PLACEMENT_3D ( 'NONE', #1282, #1760, #2262 ) ;
+#217 = ADVANCED_FACE ( 'NONE', ( #556 ), #809, .F. ) ;
+#218 = AXIS2_PLACEMENT_3D ( 'NONE', #2697, #109, #594 ) ;
+#219 = ORIENTED_EDGE ( 'NONE', *, *, #690, .F. ) ;
+#220 = VERTEX_POINT ( 'NONE', #1747 ) ;
+#221 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#222 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000100, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#223 = PLANE ( 'NONE',  #561 ) ;
+#224 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#225 = FACE_OUTER_BOUND ( 'NONE', #2101, .T. ) ;
+#226 = EDGE_LOOP ( 'NONE', ( #263, #558, #89, #2928 ) ) ;
+#227 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#228 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#229 = EDGE_CURVE ( 'NONE', #1508, #2047, #1828, .T. ) ;
+#230 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026637200, 0.3549102234176833600, 1.375000000000000000 ) ) ;
+#231 = ADVANCED_FACE ( 'NONE', ( #2280 ), #477, .F. ) ;
+#232 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#233 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#234 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 0.8125000000000000000 ) ) ;
+#235 = ORIENTED_EDGE ( 'NONE', *, *, #2938, .F. ) ;
+#236 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#237 = ORIENTED_EDGE ( 'NONE', *, *, #2706, .F. ) ;
+#238 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 1.250000000000000000, 1.000000000000000000 ) ) ;
+#239 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#240 = CIRCLE ( 'NONE', #1557, 0.09999999999999989500 ) ;
+#241 = ORIENTED_EDGE ( 'NONE', *, *, #2577, .T. ) ;
+#242 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#243 = CIRCLE ( 'NONE', #413, 0.1250000000000000300 ) ;
+#244 = ORIENTED_EDGE ( 'NONE', *, *, #1582, .T. ) ;
+#245 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#246 = CIRCLE ( 'NONE', #2866, 0.1330000000000002000 ) ;
+#247 = EDGE_LOOP ( 'NONE', ( #1380, #1326, #387, #1209 ) ) ;
+#248 = VERTEX_POINT ( 'NONE', #2890 ) ;
+#249 = VECTOR ( 'NONE', #1189, 39.37007874015748100 ) ;
+#250 = VERTEX_POINT ( 'NONE', #2874 ) ;
+#251 = ADVANCED_FACE ( 'NONE', ( #329 ), #1098, .F. ) ;
+#252 = FILL_AREA_STYLE_COLOUR ( '', #2981 ) ;
+#253 = ORIENTED_EDGE ( 'NONE', *, *, #1048, .T. ) ;
+#254 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#255 = ORIENTED_EDGE ( 'NONE', *, *, #812, .F. ) ;
+#256 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250981300, 0.1874999999999998300, 0.5000000000000000000 ) ) ;
+#257 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#258 = LINE ( 'NONE', #1814, #29 ) ;
+#259 = ORIENTED_EDGE ( 'NONE', *, *, #141, .T. ) ;
+#260 = VECTOR ( 'NONE', #1932, 39.37007874015748100 ) ;
+#261 = VERTEX_POINT ( 'NONE', #2407 ) ;
+#262 = PLANE ( 'NONE',  #2452 ) ;
+#263 = ORIENTED_EDGE ( 'NONE', *, *, #981, .F. ) ;
+#264 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
+#265 = EDGE_CURVE ( 'NONE', #956, #209, #1212, .T. ) ;
+#266 = LINE ( 'NONE', #2195, #1774 ) ;
+#267 = ADVANCED_FACE ( 'NONE', ( #1471 ), #2026, .F. ) ;
+#268 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, 0.2060549223287782800, 1.375000000000000000 ) ) ;
+#269 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#270 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#271 = ORIENTED_EDGE ( 'NONE', *, *, #315, .F. ) ;
+#272 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, -0.2499999999999998100, 1.000000000000000000 ) ) ;
+#273 = EDGE_CURVE ( 'NONE', #1685, #963, #408, .T. ) ;
+#274 = PRESENTATION_LAYER_ASSIGNMENT (  '', '', ( #2998 ) ) ;
+#275 = EDGE_CURVE ( 'NONE', #2579, #2152, #775, .T. ) ;
+#276 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#277 = EDGE_LOOP ( 'NONE', ( #475, #2681, #913, #1550 ) ) ;
+#278 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#279 = CIRCLE ( 'NONE', #2003, 0.2187500000000000800 ) ;
+#280 = CIRCLE ( 'NONE', #1616, 0.09999999999999992200 ) ;
+#281 = VECTOR ( 'NONE', #2777, 39.37007874015748100 ) ;
+#282 = ORIENTED_EDGE ( 'NONE', *, *, #1659, .F. ) ;
+#283 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060137900, 0.3549102234176832500, 1.174999999999999800 ) ) ;
+#284 = VECTOR ( 'NONE', #102, 39.37007874015748100 ) ;
+#285 = CARTESIAN_POINT ( 'NONE',  ( 1.346749999999999700, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#286 = CIRCLE ( 'NONE', #1199, 0.1330000000000002600 ) ;
+#287 = ORIENTED_EDGE ( 'NONE', *, *, #1443, .F. ) ;
+#288 = EDGE_LOOP ( 'NONE', ( #2911, #1889 ) ) ;
+#290 = EDGE_LOOP ( 'NONE', ( #1242, #148, #2304, #1791 ) ) ;
+#289 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250981300, 0.6874999999999998900, 1.000000000000000000 ) ) ;
+#291 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#292 = VECTOR ( 'NONE', #3015, 39.37007874015748100 ) ;
+#293 = PLANE ( 'NONE',  #973 ) ;
+#294 = EDGE_CURVE ( 'NONE', #2047, #2579, #2565, .T. ) ;
+#295 = ORIENTED_EDGE ( 'NONE', *, *, #2797, .F. ) ;
+#296 = ORIENTED_EDGE ( 'NONE', *, *, #1270, .T. ) ;
+#297 = AXIS2_PLACEMENT_3D ( 'NONE', #2764, #2077, #664 ) ;
+#298 = ORIENTED_EDGE ( 'NONE', *, *, #2690, .T. ) ;
+#299 = ORIENTED_EDGE ( 'NONE', *, *, #1846, .T. ) ;
+#300 = ADVANCED_FACE ( 'NONE', ( #698 ), #2189, .F. ) ;
+#301 = AXIS2_PLACEMENT_3D ( 'NONE', #1358, #3001, #2320 ) ;
+#302 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#303 = FACE_OUTER_BOUND ( 'NONE', #2830, .T. ) ;
+#304 = PRODUCT_CONTEXT ( 'NONE', #478, 'mechanical' ) ;
+#305 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#306 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#307 = VECTOR ( 'NONE', #2721, 39.37007874015748100 ) ;
+#308 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#309 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#310 = ADVANCED_FACE ( 'NONE', ( #1985 ), #776, .F. ) ;
+#311 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979654000, -0.6875000000000001100, 0.8125000000000000000 ) ) ;
+#312 = VERTEX_POINT ( 'NONE', #1721 ) ;
+#313 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#314 = CARTESIAN_POINT ( 'NONE',  ( -0.1300000000000003100, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#315 = EDGE_CURVE ( 'NONE', #1390, #1439, #1350, .T. ) ;
+#316 = VECTOR ( 'NONE', #3011, 39.37007874015748100 ) ;
+#317 = ORIENTED_EDGE ( 'NONE', *, *, #981, .T. ) ;
+#318 = VECTOR ( 'NONE', #1602, 39.37007874015748100 ) ;
+#319 = ORIENTED_EDGE ( 'NONE', *, *, #48, .F. ) ;
+#320 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250980800, -0.1875000000000002500, 1.000000000000000000 ) ) ;
+#321 = CARTESIAN_POINT ( 'NONE',  ( -3.161825413516036900, 0.6874999999999995600, 0.5000000000000000000 ) ) ;
+#322 = CIRCLE ( 'NONE', #668, 0.1330000000000005100 ) ;
+#323 = VERTEX_POINT ( 'NONE', #845 ) ;
+#324 = EDGE_CURVE ( 'NONE', #2885, #1827, #885, .T. ) ;
+#325 = CIRCLE ( 'NONE', #1680, 0.1330000000000004800 ) ;
+#326 = VERTEX_POINT ( 'NONE', #2906 ) ;
+#327 = VERTEX_POINT ( 'NONE', #2423 ) ;
+#328 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.000000000000000000 ) ) ;
+#329 = FACE_OUTER_BOUND ( 'NONE', #2342, .T. ) ;
+#330 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#331 = ORIENTED_EDGE ( 'NONE', *, *, #1142, .T. ) ;
+#332 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#333 = ORIENTED_EDGE ( 'NONE', *, *, #100, .F. ) ;
+#334 = VECTOR ( 'NONE', #851, 39.37007874015748100 ) ;
+#335 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#336 = EDGE_CURVE ( 'NONE', #2487, #30, #1510, .T. ) ;
+#337 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#338 = CARTESIAN_POINT ( 'NONE',  ( -0.2157500000000000800, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#339 = EDGE_CURVE ( 'NONE', #1497, #2487, #1397, .T. ) ;
+#340 = AXIS2_PLACEMENT_3D ( 'NONE', #1890, #1227, #722 ) ;
+#341 = CIRCLE ( 'NONE', #2473, 0.2187499999999999400 ) ;
+#342 = CARTESIAN_POINT ( 'NONE',  ( -0.9032500000000000000, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#343 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#344 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, 0.2060549223287783100, 1.174999999999999800 ) ) ;
+#345 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060137900, 0.3549102234176832500, 1.375000000000000000 ) ) ;
+#346 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#347 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#348 = ORIENTED_EDGE ( 'NONE', *, *, #2576, .F. ) ;
+#349 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 0.6875000000000000000, 1.000000000000000000 ) ) ;
+#350 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, 0.2060549223287782800, 1.174999999999999800 ) ) ;
+#351 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 1.250000000000000000, 0.4999999999999996100 ) ) ;
+#352 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, -0.6875000000000003300, 0.5000000000000000000 ) ) ;
+#353 = AXIS2_PLACEMENT_3D ( 'NONE', #2615, #2843, #2042 ) ;
+#354 = CIRCLE ( 'NONE', #1349, 0.1330000000000004800 ) ;
+#355 = VECTOR ( 'NONE', #1153, 39.37007874015748100 ) ;
+#356 = ORIENTED_EDGE ( 'NONE', *, *, #2284, .F. ) ;
+#357 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#358 = VECTOR ( 'NONE', #2585, 39.37007874015748100 ) ;
+#359 = VECTOR ( 'NONE', #2962, 39.37007874015748100 ) ;
+#360 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#361 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 1.000000000000000000, -0.0000000000000000000 ) ) ;
+#362 = ORIENTED_EDGE ( 'NONE', *, *, #694, .T. ) ;
+#363 = CARTESIAN_POINT ( 'NONE',  ( 2.262952316657397900, 0.4790639956390647100, 0.8124999999999998900 ) ) ;
+#364 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#365 = EDGE_LOOP ( 'NONE', ( #1044, #2896, #92, #689 ) ) ;
+#366 = VERTEX_POINT ( 'NONE', #314 ) ;
+#367 = EDGE_CURVE ( 'NONE', #323, #1117, #101, .T. ) ;
+#368 = VECTOR ( 'NONE', #1507, 39.37007874015748100 ) ;
+#369 = EDGE_LOOP ( 'NONE', ( #1982, #1745 ) ) ;
+#370 = ORIENTED_EDGE ( 'NONE', *, *, #1893, .T. ) ;
+#371 = VERTEX_POINT ( 'NONE', #2898 ) ;
+#372 = ORIENTED_EDGE ( 'NONE', *, *, #2690, .F. ) ;
+#373 = AXIS2_PLACEMENT_3D ( 'NONE', #156, #1555, #2004 ) ;
+#374 = CARTESIAN_POINT ( 'NONE',  ( 0.2217499999999999200, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#375 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, 0.2060549223287782800, 1.375000000000000000 ) ) ;
+#376 = SURFACE_STYLE_FILL_AREA ( #1891 ) ;
+#377 = VECTOR ( 'NONE', #389, 39.37007874015748100 ) ;
+#378 = EDGE_CURVE ( 'NONE', #2127, #1685, #1874, .T. ) ;
+#379 = AXIS2_PLACEMENT_3D ( 'NONE', #1708, #1018, #2425 ) ;
+#380 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#381 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
+ ( #1303, #628, #2703, #1286, #2941, #616, #2475, #1096, #1797, #2925 ),
+ .UNSPECIFIED., .F., .F.,
+ ( 4, 1, 1, 1, 1, 1, 1, 4 ),
+ ( 0.1804171056932548400, 0.2574214255684045300, 0.3271167815832054000, 0.3787956272272490800, 0.4753932694299508600, 0.5595206077257001100, 0.6412861705332345600, 0.6905092016622677000 ),
+ .UNSPECIFIED. ) ;
+#382 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000004500, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#383 = DIRECTION ( 'NONE',  ( -0.7071067811865486800, 0.0000000000000000000, -0.7071067811865463500 ) ) ;
+#384 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#385 = VERTEX_POINT ( 'NONE', #1251 ) ;
+#386 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#387 = ORIENTED_EDGE ( 'NONE', *, *, #2932, .T. ) ;
+#388 = EDGE_CURVE ( 'NONE', #1748, #409, #993, .T. ) ;
+#389 = DIRECTION ( 'NONE',  ( 1.986798540846736800E-016, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#390 = AXIS2_PLACEMENT_3D ( 'NONE', #457, #2620, #1933 ) ;
+#391 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#392 = CIRCLE ( 'NONE', #1518, 0.1330000000000002000 ) ;
+#393 = VECTOR ( 'NONE', #1295, 39.37007874015748100 ) ;
+#394 = ORIENTED_EDGE ( 'NONE', *, *, #1330, .F. ) ;
+#395 = LINE ( 'NONE', #1547, #2756 ) ;
+#396 = EDGE_LOOP ( 'NONE', ( #1803, #1851, #2022, #1265 ) ) ;
+#397 = EDGE_CURVE ( 'NONE', #435, #1984, #2784, .T. ) ;
+#398 = AXIS2_PLACEMENT_3D ( 'NONE', #1885, #1201, #711 ) ;
+#399 = CIRCLE ( 'NONE', #1453, 0.2187499999999999400 ) ;
+#400 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#401 = ORIENTED_EDGE ( 'NONE', *, *, #1812, .T. ) ;
+#402 = ORIENTED_EDGE ( 'NONE', *, *, #1225, .F. ) ;
+#403 = ORIENTED_EDGE ( 'NONE', *, *, #555, .F. ) ;
+#404 = DIRECTION ( 'NONE',  ( -1.924323260793499400E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#405 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#406 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#407 = CARTESIAN_POINT ( 'NONE',  ( 2.262952316802713200, 0.4790639941476706500, 0.6250000000000000000 ) ) ;
+#408 = LINE ( 'NONE', #302, #2894 ) ;
+#409 = VERTEX_POINT ( 'NONE', #342 ) ;
+#410 = ORIENTED_EDGE ( 'NONE', *, *, #2901, .F. ) ;
+#411 = ORIENTED_EDGE ( 'NONE', *, *, #2002, .T. ) ;
+#412 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#413 = AXIS2_PLACEMENT_3D ( 'NONE', #2711, #2779, #850 ) ;
+#414 = FACE_OUTER_BOUND ( 'NONE', #513, .T. ) ;
+#415 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000001800, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#416 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#417 = ADVANCED_FACE ( 'NONE', ( #2183, #919 ), #804, .F. ) ;
+#418 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#419 = EDGE_CURVE ( 'NONE', #2557, #2589, #2855, .T. ) ;
+#420 = CARTESIAN_POINT ( 'NONE',  ( -1.340750000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#421 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.375000000000000000 ) ) ;
+#422 = ORIENTED_EDGE ( 'NONE', *, *, #388, .T. ) ;
+#423 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#424 = VERTEX_POINT ( 'NONE', #1040 ) ;
+#425 = LINE ( 'NONE', #824, #18 ) ;
+#426 = CIRCLE ( 'NONE', #1775, 0.1330000000000002000 ) ;
+#427 = ORIENTED_EDGE ( 'NONE', *, *, #2000, .T. ) ;
+#428 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#429 = LINE ( 'NONE', #3016, #1758 ) ;
+#430 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#431 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#432 = CYLINDRICAL_SURFACE ( 'NONE', #301, 0.1330000000000002000 ) ;
+#433 = ORIENTED_EDGE ( 'NONE', *, *, #2404, .F. ) ;
+#434 = EDGE_CURVE ( 'NONE', #2557, #1355, #1614, .T. ) ;
+#435 = VERTEX_POINT ( 'NONE', #1875 ) ;
+#436 = ADVANCED_FACE ( 'NONE', ( #516 ), #1697, .F. ) ;
+#437 = EDGE_CURVE ( 'NONE', #1162, #2790, #1062, .T. ) ;
+#438 = VECTOR ( 'NONE', #2353, 39.37007874015748100 ) ;
+#439 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#440 = ORIENTED_EDGE ( 'NONE', *, *, #2590, .F. ) ;
+#441 = VERTEX_POINT ( 'NONE', #238 ) ;
+#442 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000004500, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#443 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#444 = ORIENTED_EDGE ( 'NONE', *, *, #1280, .F. ) ;
+#445 = PLANE ( 'NONE',  #2096 ) ;
+#446 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#447 = FACE_OUTER_BOUND ( 'NONE', #726, .T. ) ;
+#448 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#449 = EDGE_CURVE ( 'NONE', #2127, #865, #2312, .T. ) ;
+#450 = FACE_BOUND ( 'NONE', #369, .T. ) ;
+#451 = ADVANCED_FACE ( 'NONE', ( #1544 ), #1409, .F. ) ;
+#452 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#453 = CARTESIAN_POINT ( 'NONE',  ( -1.255000000000000300, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#454 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026639400, -0.2549102234176833200, 1.174999999999999800 ) ) ;
+#455 = AXIS2_PLACEMENT_3D ( 'NONE', #2775, #2309, #1368 ) ;
+#456 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#457 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#458 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#459 = VERTEX_POINT ( 'NONE', #2785 ) ;
+#460 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#461 = ORIENTED_EDGE ( 'NONE', *, *, #2751, .F. ) ;
+#462 = DIRECTION ( 'NONE',  ( 9.621616303967501900E-017, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#463 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, 0.2500000000000000600, 1.000000000000000000 ) ) ;
+#464 = ADVANCED_FACE ( 'NONE', ( #2524 ), #64, .F. ) ;
+#465 = LINE ( 'NONE', #2023, #3018 ) ;
+#466 = FACE_OUTER_BOUND ( 'NONE', #1382, .T. ) ;
+#467 = ORIENTED_EDGE ( 'NONE', *, *, #483, .T. ) ;
+#468 = FACE_OUTER_BOUND ( 'NONE', #991, .T. ) ;
+#469 = AXIS2_PLACEMENT_3D ( 'NONE', #573, #347, #822 ) ;
+#470 = VECTOR ( 'NONE', #1768, 39.37007874015748100 ) ;
+#471 = ORIENTED_EDGE ( 'NONE', *, *, #2284, .T. ) ;
+#472 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, -0.6250000000000000000, 1.000000000000000000 ) ) ;
+#473 = ORIENTED_EDGE ( 'NONE', *, *, #2319, .F. ) ;
+#474 = ORIENTED_EDGE ( 'NONE', *, *, #793, .F. ) ;
+#475 = ORIENTED_EDGE ( 'NONE', *, *, #1055, .F. ) ;
+#476 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#477 = CYLINDRICAL_SURFACE ( 'NONE', #1067, 0.2187500000000000800 ) ;
+#478 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
+#479 = EDGE_CURVE ( 'NONE', #120, #175, #1129, .T. ) ;
+#480 = ORIENTED_EDGE ( 'NONE', *, *, #141, .F. ) ;
+#481 = CARTESIAN_POINT ( 'NONE',  ( 0.9949999999999994400, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#482 = ORIENTED_EDGE ( 'NONE', *, *, #2169, .F. ) ;
+#483 = EDGE_CURVE ( 'NONE', #729, #1429, #2523, .T. ) ;
+#484 = ADVANCED_FACE ( 'NONE', ( #1667 ), #2687, .F. ) ;
+#485 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#486 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#487 = VECTOR ( 'NONE', #578, 39.37007874015748100 ) ;
+#488 = SURFACE_SIDE_STYLE ('',( #2880 ) ) ;
+#489 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, -0.3310549223287785900, 1.375000000000000000 ) ) ;
+#490 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979654000, -0.6875000000000001100, 1.000000000000000000 ) ) ;
+#491 = EDGE_CURVE ( 'NONE', #2560, #2049, #1004, .T. ) ;
+#492 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 6.481953218662490300E-017, -0.0000000000000000000 ) ) ;
+#493 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#494 = EDGE_CURVE ( 'NONE', #1429, #1424, #1219, .T. ) ;
+#495 = DIRECTION ( 'NONE',  ( 1.000000000000000000, -0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#496 = AXIS2_PLACEMENT_3D ( 'NONE', #421, #2372, #2313 ) ;
+#497 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#498 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#499 = EDGE_LOOP ( 'NONE', ( #164, #1459, #2783, #2781 ) ) ;
+#500 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.375000000000000000 ) ) ;
+#501 = ORIENTED_EDGE ( 'NONE', *, *, #1375, .F. ) ;
+#502 = VERTEX_POINT ( 'NONE', #2337 ) ;
+#503 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#504 = FACE_OUTER_BOUND ( 'NONE', #847, .T. ) ;
+#505 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999998800, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#506 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#507 = FACE_OUTER_BOUND ( 'NONE', #1037, .T. ) ;
+#508 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#509 = ORIENTED_EDGE ( 'NONE', *, *, #1075, .T. ) ;
+#510 = LINE ( 'NONE', #2397, #730 ) ;
+#511 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#512 = VECTOR ( 'NONE', #1108, 39.37007874015748100 ) ;
+#513 = EDGE_LOOP ( 'NONE', ( #2190, #2963, #2025, #877 ) ) ;
+#514 = ORIENTED_EDGE ( 'NONE', *, *, #1482, .T. ) ;
+#515 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#516 = FACE_OUTER_BOUND ( 'NONE', #1903, .T. ) ;
+#517 = ADVANCED_FACE ( 'NONE', ( #2833, #447 ), #1621, .F. ) ;
+#518 = AXIS2_PLACEMENT_3D ( 'NONE', #667, #685, #1406 ) ;
+#519 = EDGE_LOOP ( 'NONE', ( #2948, #2754, #827, #1962 ) ) ;
+#520 = ORIENTED_EDGE ( 'NONE', *, *, #1862, .T. ) ;
+#521 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#522 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#523 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#524 = EDGE_CURVE ( 'NONE', #2047, #1168, #2253, .T. ) ;
+#525 = FACE_OUTER_BOUND ( 'NONE', #26, .T. ) ;
+#526 = DIRECTION ( 'NONE',  ( 1.294972880571175600E-016, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#527 = VECTOR ( 'NONE', #154, 39.37007874015748100 ) ;
+#528 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#529 = ADVANCED_FACE ( 'NONE', ( #2223 ), #1478, .F. ) ;
+#530 = CARTESIAN_POINT ( 'NONE',  ( 1.999999999999998900, -1.250000000000000000, 0.0000000000000000000 ) ) ;
+#531 = AXIS2_PLACEMENT_3D ( 'NONE', #423, #2529, #1836 ) ;
+#532 = EDGE_CURVE ( 'NONE', #366, #852, #1624, .T. ) ;
+#533 = AXIS2_PLACEMENT_3D ( 'NONE', #1076, #1779, #1083 ) ;
+#534 = AXIS2_PLACEMENT_3D ( 'NONE', #1712, #536, #2644 ) ;
+#535 = ORIENTED_EDGE ( 'NONE', *, *, #968, .T. ) ;
+#536 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#537 = ORIENTED_EDGE ( 'NONE', *, *, #1030, .T. ) ;
+#538 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #1948 ) ;
+#539 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#540 = FACE_OUTER_BOUND ( 'NONE', #1166, .T. ) ;
+#541 = LINE ( 'NONE', #1360, #1564 ) ;
+#542 = VERTEX_POINT ( 'NONE', #1838 ) ;
+#543 = VECTOR ( 'NONE', #2030, 39.37007874015748100 ) ;
+#544 = ADVANCED_FACE ( 'NONE', ( #2798 ), #2934, .F. ) ;
+#545 = CIRCLE ( 'NONE', #2299, 0.1249999999999999000 ) ;
+#546 = ORIENTED_EDGE ( 'NONE', *, *, #1279, .F. ) ;
+#547 = ORIENTED_EDGE ( 'NONE', *, *, #378, .T. ) ;
+#548 = VERTEX_POINT ( 'NONE', #256 ) ;
+#549 = ORIENTED_EDGE ( 'NONE', *, *, #2723, .F. ) ;
+#550 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, 0.6250000000000000000, 1.375000000000000000 ) ) ;
+#551 = MANIFOLD_SOLID_BREP ( 'Cut-Extrude6', #2137 ) ;
+#552 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -0.6875000000000001100, 1.000000000000000000 ) ) ;
+#553 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#554 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#555 = EDGE_CURVE ( 'NONE', #1117, #1695, #2533, .T. ) ;
+#556 = FACE_OUTER_BOUND ( 'NONE', #1001, .T. ) ;
+#557 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, -0.6875000000000003300, 1.000000000000000000 ) ) ;
+#558 = ORIENTED_EDGE ( 'NONE', *, *, #1623, .T. ) ;
+#559 = EDGE_CURVE ( 'NONE', #2712, #2266, #2652, .T. ) ;
+#560 = ORIENTED_EDGE ( 'NONE', *, *, #2059, .F. ) ;
+#561 = AXIS2_PLACEMENT_3D ( 'NONE', #3036, #1386, #1852 ) ;
+#562 = CARTESIAN_POINT ( 'NONE',  ( -0.9032500000000000000, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#563 = LINE ( 'NONE', #1591, #783 ) ;
+#564 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#565 = FACE_BOUND ( 'NONE', #1539, .T. ) ;
+#566 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#567 = ADVANCED_FACE ( 'NONE', ( #303 ), #293, .F. ) ;
+#568 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#569 = AXIS2_PLACEMENT_3D ( 'NONE', #344, #332, #1035 ) ;
+#570 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#571 = ORIENTED_EDGE ( 'NONE', *, *, #2010, .F. ) ;
+#572 = AXIS2_PLACEMENT_3D ( 'NONE', #2516, #1598, #2760 ) ;
+#573 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#574 = ORIENTED_EDGE ( 'NONE', *, *, #194, .F. ) ;
+#575 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979654000, -0.5625000000000001100, 0.8125000000000000000 ) ) ;
+#576 = ORIENTED_EDGE ( 'NONE', *, *, #906, .F. ) ;
+#577 = LINE ( 'NONE', #76, #2913 ) ;
+#578 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#579 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#580 = CIRCLE ( 'NONE', #1353, 0.2187500000000000300 ) ;
+#581 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 0.4375503462087235700, 0.6250000000000000000 ) ) ;
+#582 = EDGE_LOOP ( 'NONE', ( #1095, #2053, #2788, #1858 ) ) ;
+#583 = EDGE_CURVE ( 'NONE', #803, #2509, #2612, .T. ) ;
+#584 = CIRCLE ( 'NONE', #2506, 0.1330000000000004800 ) ;
+#585 = ORIENTED_EDGE ( 'NONE', *, *, #273, .T. ) ;
+#586 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#587 = CYLINDRICAL_SURFACE ( 'NONE', #2398, 0.1250000000000000300 ) ;
+#588 = ORIENTED_EDGE ( 'NONE', *, *, #595, .T. ) ;
+#589 = LINE ( 'NONE', #826, #174 ) ;
+#590 = DIRECTION ( 'NONE',  ( 9.621616303967501900E-017, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#591 = VERTEX_POINT ( 'NONE', #489 ) ;
+#592 = ORIENTED_EDGE ( 'NONE', *, *, #1582, .F. ) ;
+#593 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000300, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#594 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#595 = EDGE_CURVE ( 'NONE', #2909, #2265, #2031, .T. ) ;
+#596 = AXIS2_PLACEMENT_3D ( 'NONE', #1148, #1883, #458 ) ;
+#597 = EDGE_CURVE ( 'NONE', #2439, #2349, #969, .T. ) ;
+#598 = LINE ( 'NONE', #57, #748 ) ;
+#599 = VERTEX_POINT ( 'NONE', #1433 ) ;
+#600 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#601 = LINE ( 'NONE', #2500, #527 ) ;
+#602 = CARTESIAN_POINT ( 'NONE',  ( 1.346749999999999700, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#603 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, 0.6874999999999996700, 1.000000000000000000 ) ) ;
+#604 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE',  #1773 ) ;
+#605 = EDGE_CURVE ( 'NONE', #261, #2006, #341, .T. ) ;
+#606 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#607 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, -0.2499999999999998100, 1.000000000000000000 ) ) ;
+#608 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.6875000000000001100, 1.000000000000000000 ) ) ;
+#609 = AXIS2_PLACEMENT_3D ( 'NONE', #2478, #149, #2503 ) ;
+#610 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#611 = EDGE_LOOP ( 'NONE', ( #2378, #1612, #1938, #2079 ) ) ;
+#612 = AXIS2_PLACEMENT_3D ( 'NONE', #970, #2838, #1438 ) ;
+#613 = VECTOR ( 'NONE', #384, 39.37007874015748100 ) ;
+#614 = FACE_OUTER_BOUND ( 'NONE', #2553, .T. ) ;
+#615 = EDGE_LOOP ( 'NONE', ( #1757, #813 ) ) ;
+#616 = CARTESIAN_POINT ( 'NONE',  ( 2.526213591511189200, -0.08733638245144770300, 0.8125000000000000000 ) ) ;
+#617 = FACE_BOUND ( 'NONE', #1500, .T. ) ;
+#618 = CIRCLE ( 'NONE', #2032, 0.1330000000000004800 ) ;
+#619 = ORIENTED_EDGE ( 'NONE', *, *, #324, .F. ) ;
+#620 = DIRECTION ( 'NONE',  ( 0.7071067811865463500, 0.0000000000000000000, -0.7071067811865486800 ) ) ;
+#621 = ORIENTED_EDGE ( 'NONE', *, *, #1913, .T. ) ;
+#622 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#623 = ORIENTED_EDGE ( 'NONE', *, *, #6, .F. ) ;
+#624 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#625 = ORIENTED_EDGE ( 'NONE', *, *, #2107, .F. ) ;
+#626 = CARTESIAN_POINT ( 'NONE',  ( -3.161825413516036900, 0.6874999999999995600, 0.5000000000000000000 ) ) ;
+#627 = VECTOR ( 'NONE', #820, 39.37007874015748100 ) ;
+#628 = CARTESIAN_POINT ( 'NONE',  ( 2.405623983195961800, 0.4624496051557517900, 0.8125000000000000000 ) ) ;
+#629 = AXIS2_PLACEMENT_3D ( 'NONE', #1167, #239, #1402 ) ;
+#630 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#631 = FACE_BOUND ( 'NONE', #1034, .T. ) ;
+#632 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#633 = FACE_BOUND ( 'NONE', #2683, .T. ) ;
+#634 = EDGE_CURVE ( 'NONE', #691, #30, #782, .T. ) ;
+#635 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#636 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106012700, 0.3549102234176832500, 1.375000000000000000 ) ) ;
+#637 = EDGE_CURVE ( 'NONE', #1028, #2582, #1994, .T. ) ;
+#638 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#639 = ORIENTED_EDGE ( 'NONE', *, *, #2412, .T. ) ;
+#640 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#641 = EDGE_CURVE ( 'NONE', #2634, #2610, #598, .T. ) ;
+#642 = PLANE ( 'NONE',  #572 ) ;
+#643 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999400, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#644 = FACE_OUTER_BOUND ( 'NONE', #1750, .T. ) ;
+#645 = VERTEX_POINT ( 'NONE', #41 ) ;
+#646 = LINE ( 'NONE', #1742, #797 ) ;
+#647 = EDGE_CURVE ( 'NONE', #1275, #2669, #2393, .T. ) ;
+#648 = AXIS2_PLACEMENT_3D ( 'NONE', #1631, #2123, #2102 ) ;
+#649 = CIRCLE ( 'NONE', #2960, 0.1330000000000002600 ) ;
+#650 = ORIENTED_EDGE ( 'NONE', *, *, #812, .T. ) ;
+#651 = EDGE_LOOP ( 'NONE', ( #2873, #1298, #104, #2744 ) ) ;
+#652 = CIRCLE ( 'NONE', #189, 0.2187499999999999400 ) ;
+#653 = VERTEX_POINT ( 'NONE', #2599 ) ;
+#654 = LINE ( 'NONE', #744, #2098 ) ;
+#655 = VERTEX_POINT ( 'NONE', #530 ) ;
+#656 = PLANE ( 'NONE',  #1719 ) ;
+#657 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.2549102234176833800, 1.174999999999999800 ) ) ;
+#658 = CIRCLE ( 'NONE', #218, 0.1330000000000004800 ) ;
+#659 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#660 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#661 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#662 = LINE ( 'NONE', #506, #962 ) ;
+#663 = ADVANCED_FACE ( 'NONE', ( #414 ), #766, .F. ) ;
+#664 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#665 = ORIENTED_EDGE ( 'NONE', *, *, #2462, .T. ) ;
+#666 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.174999999999999800 ) ) ;
+#667 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, 0.2500000000000000600, 0.8750000000000000000 ) ) ;
+#668 = AXIS2_PLACEMENT_3D ( 'NONE', #1328, #198, #3025 ) ;
+#669 = VECTOR ( 'NONE', #406, 39.37007874015748100 ) ;
+#670 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#671 = EDGE_CURVE ( 'NONE', #1748, #248, #144, .T. ) ;
+#672 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#673 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#674 = ADVANCED_FACE ( 'NONE', ( #1517 ), #1005, .F. ) ;
+#675 = VERTEX_POINT ( 'NONE', #980 ) ;
+#676 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#677 = FACE_BOUND ( 'NONE', #1837, .T. ) ;
+#678 = VECTOR ( 'NONE', #486, 39.37007874015748100 ) ;
+#679 = VECTOR ( 'NONE', #1176, 39.37007874015748100 ) ;
+#680 = VERTEX_POINT ( 'NONE', #1675 ) ;
+#681 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026637000, 0.2549102234176834900, 1.174999999999999800 ) ) ;
+#682 = ORIENTED_EDGE ( 'NONE', *, *, #194, .T. ) ;
+#683 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#684 = LINE ( 'NONE', #1041, #2850 ) ;
+#685 = DIRECTION ( 'NONE',  ( -2.731847993664262700E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#686 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#687 = FACE_BOUND ( 'NONE', #2819, .T. ) ;
+#688 = ORIENTED_EDGE ( 'NONE', *, *, #2642, .T. ) ;
+#689 = ORIENTED_EDGE ( 'NONE', *, *, #1010, .T. ) ;
+#690 = EDGE_CURVE ( 'NONE', #2596, #2273, #1922, .T. ) ;
+#691 = VERTEX_POINT ( 'NONE', #2621 ) ;
+#692 = AXIS2_PLACEMENT_3D ( 'NONE', #1741, #400, #1483 ) ;
+#693 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#694 = EDGE_CURVE ( 'NONE', #2720, #998, #2159, .T. ) ;
+#695 = ORIENTED_EDGE ( 'NONE', *, *, #437, .T. ) ;
+#696 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#697 = ORIENTED_EDGE ( 'NONE', *, *, #2517, .F. ) ;
+#698 = FACE_OUTER_BOUND ( 'NONE', #62, .T. ) ;
+#699 = ADVANCED_FACE ( 'NONE', ( #1585 ), #1445, .F. ) ;
+#700 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060135200, 0.2549102234176833200, 1.174999999999999800 ) ) ;
+#701 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026637200, 0.3549102234176833600, 1.174999999999999800 ) ) ;
+#702 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#703 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#704 = CARTESIAN_POINT ( 'NONE',  ( -2.380000000000000300, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#705 = LINE ( 'NONE', #747, #1739 ) ;
+#706 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#707 = EDGE_CURVE ( 'NONE', #1243, #956, #266, .T. ) ;
+#708 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#709 = LINE ( 'NONE', #374, #111 ) ;
+#710 = VERTEX_POINT ( 'NONE', #2413 ) ;
+#711 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#712 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, 0.2500000000000002200, 0.8750000000000000000 ) ) ;
+#713 = EDGE_CURVE ( 'NONE', #209, #791, #1287, .T. ) ;
+#714 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#715 = AXIS2_PLACEMENT_3D ( 'NONE', #2607, #2825, #1682 ) ;
+#716 = ADVANCED_FACE ( 'NONE', ( #525 ), #2865, .F. ) ;
+#717 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#718 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#719 = ORIENTED_EDGE ( 'NONE', *, *, #2862, .T. ) ;
+#720 = ORIENTED_EDGE ( 'NONE', *, *, #1131, .T. ) ;
+#721 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#722 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#723 = LINE ( 'NONE', #2526, #1087 ) ;
+#724 = ORIENTED_EDGE ( 'NONE', *, *, #265, .T. ) ;
+#725 = VECTOR ( 'NONE', #2097, 39.37007874015748100 ) ;
+#726 = EDGE_LOOP ( 'NONE', ( #2957, #1506, #1241, #1237, #103 ) ) ;
+#727 = FACE_OUTER_BOUND ( 'NONE', #756, .T. ) ;
+#728 = ORIENTED_EDGE ( 'NONE', *, *, #837, .F. ) ;
+#729 = VERTEX_POINT ( 'NONE', #2618 ) ;
+#730 = VECTOR ( 'NONE', #70, 39.37007874015748100 ) ;
+#731 = EDGE_LOOP ( 'NONE', ( #2944, #1207, #2881, #923 ) ) ;
+#732 = ADVANCED_FACE ( 'NONE', ( #2761 ), #2429, .F. ) ;
+#733 = EDGE_LOOP ( 'NONE', ( #2402, #621, #2742, #1953 ) ) ;
+#734 = VERTEX_POINT ( 'NONE', #1926 ) ;
+#735 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#736 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#737 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#738 = FACE_OUTER_BOUND ( 'NONE', #1063, .T. ) ;
+#739 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979653500, 0.6874999999999998900, 0.8125000000000000000 ) ) ;
+#740 = ORIENTED_EDGE ( 'NONE', *, *, #434, .F. ) ;
+#741 = EDGE_LOOP ( 'NONE', ( #763, #2853, #625, #1133 ) ) ;
+#742 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#743 = EDGE_CURVE ( 'NONE', #1424, #1429, #1709, .T. ) ;
+#744 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#745 = EDGE_LOOP ( 'NONE', ( #1170, #2594, #881, #2792 ) ) ;
+#746 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#747 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.5625000000000001100, 0.8125000000000000000 ) ) ;
+#748 = VECTOR ( 'NONE', #269, 39.37007874015748100 ) ;
+#749 = ORIENTED_EDGE ( 'NONE', *, *, #597, .T. ) ;
+#750 = AXIS2_PLACEMENT_3D ( 'NONE', #1283, #81, #2915 ) ;
+#751 = VECTOR ( 'NONE', #590, 39.37007874015748100 ) ;
+#752 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -0.6875000000000003300, 1.000000000000000000 ) ) ;
+#753 = EDGE_CURVE ( 'NONE', #2605, #883, #2361, .T. ) ;
+#754 = AXIS2_PLACEMENT_3D ( 'NONE', #254, #2177, #995 ) ;
+#755 = AXIS2_PLACEMENT_3D ( 'NONE', #346, #1531, #2236 ) ;
+#756 = EDGE_LOOP ( 'NONE', ( #1194, #1981, #195, #411 ) ) ;
+#757 = EDGE_LOOP ( 'NONE', ( #2301, #1565 ) ) ;
+#758 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279400, 0.1318487067688303100, 1.174999999999999800 ) ) ;
+#759 = VECTOR ( 'NONE', #2201, 39.37007874015748100 ) ;
+#760 = CIRCLE ( 'NONE', #893, 0.2187499999999999400 ) ;
+#761 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#762 = FACE_OUTER_BOUND ( 'NONE', #1346, .T. ) ;
+#763 = ORIENTED_EDGE ( 'NONE', *, *, #1179, .F. ) ;
+#764 = ORIENTED_EDGE ( 'NONE', *, *, #68, .T. ) ;
+#765 = LINE ( 'NONE', #1633, #358 ) ;
+#766 = PLANE ( 'NONE',  #754 ) ;
+#767 = FACE_OUTER_BOUND ( 'NONE', #2056, .T. ) ;
+#768 = EDGE_CURVE ( 'NONE', #2596, #675, #2968, .T. ) ;
+#769 = ORIENTED_EDGE ( 'NONE', *, *, #121, .T. ) ;
+#770 = EDGE_LOOP ( 'NONE', ( #1514, #2852 ) ) ;
+#771 = AXIS2_PLACEMENT_3D ( 'NONE', #1625, #1599, #1833 ) ;
+#772 = ORIENTED_EDGE ( 'NONE', *, *, #634, .F. ) ;
+#773 = AXIS2_PLACEMENT_3D ( 'NONE', #886, #1103, #872 ) ;
+#774 = ORIENTED_EDGE ( 'NONE', *, *, #1928, .F. ) ;
+#775 = LINE ( 'NONE', #1230, #138 ) ;
+#776 = PLANE ( 'NONE',  #1916 ) ;
+#777 = ORIENTED_EDGE ( 'NONE', *, *, #324, .T. ) ;
+#778 = ADVANCED_FACE ( 'NONE', ( #1805, #71, #1323 ), #2392, .F. ) ;
+#779 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
+#780 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979653500, 0.6874999999999998900, 0.8125000000000000000 ) ) ;
+#781 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#782 = LINE ( 'NONE', #2374, #2463 ) ;
+#783 = VECTOR ( 'NONE', #2527, 39.37007874015748100 ) ;
+#784 = ORIENTED_EDGE ( 'NONE', *, *, #1593, .T. ) ;
+#785 = CARTESIAN_POINT ( 'NONE',  ( 2.426749360703121600, -0.4133649961045401400, 0.8124999999999998900 ) ) ;
+#786 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#787 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#788 = VERTEX_POINT ( 'NONE', #975 ) ;
+#789 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#790 = AXIS2_PLACEMENT_3D ( 'NONE', #28, #1192, #1576 ) ;
+#791 = VERTEX_POINT ( 'NONE', #2765 ) ;
+#792 = CARTESIAN_POINT ( 'NONE',  ( -1.255000000000000300, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#793 = EDGE_CURVE ( 'NONE', #1650, #1730, #1104, .T. ) ;
+#794 = LINE ( 'NONE', #1383, #316 ) ;
+#795 = ORIENTED_EDGE ( 'NONE', *, *, #1595, .F. ) ;
+#796 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.5625000000000001100, 1.000000000000000000 ) ) ;
+#797 = VECTOR ( 'NONE', #2213, 39.37007874015748100 ) ;
+#798 = ORIENTED_EDGE ( 'NONE', *, *, #1425, .T. ) ;
+#799 = VECTOR ( 'NONE', #2591, 39.37007874015748100 ) ;
+#800 = ORIENTED_EDGE ( 'NONE', *, *, #2776, .F. ) ;
+#801 = ORIENTED_EDGE ( 'NONE', *, *, #1714, .T. ) ;
+#802 = CIRCLE ( 'NONE', #1006, 0.1330000000000004800 ) ;
+#803 = VERTEX_POINT ( 'NONE', #2979 ) ;
+#804 = PLANE ( 'NONE',  #13 ) ;
+#805 = ORIENTED_EDGE ( 'NONE', *, *, #713, .F. ) ;
+#806 = ORIENTED_EDGE ( 'NONE', *, *, #968, .F. ) ;
+#807 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#808 = EDGE_CURVE ( 'NONE', #1944, #323, #705, .T. ) ;
+#809 = CYLINDRICAL_SURFACE ( 'NONE', #2692, 0.1947179912523943300 ) ;
+#810 = CARTESIAN_POINT ( 'NONE',  ( -1.340750000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#811 = VERTEX_POINT ( 'NONE', #1370 ) ;
+#812 = EDGE_CURVE ( 'NONE', #2808, #326, #1877, .T. ) ;
+#813 = ORIENTED_EDGE ( 'NONE', *, *, #2642, .F. ) ;
+#814 = AXIS2_PLACEMENT_3D ( 'NONE', #2771, #3000, #1394 ) ;
+#815 = AXIS2_PLACEMENT_3D ( 'NONE', #337, #2227, #2461 ) ;
+#816 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#817 = EDGE_LOOP ( 'NONE', ( #241, #132, #2554, #23 ) ) ;
+#818 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#819 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, -1.250000000000000000, 0.3052820087476053000 ) ) ;
+#820 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#821 = VECTOR ( 'NONE', #2869, 39.37007874015748100 ) ;
+#822 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#823 = CARTESIAN_POINT ( 'NONE',  ( -2.028250000000000300, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#824 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279400, 0.1318487067688303100, 1.375000000000000000 ) ) ;
+#825 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION (  '', ( #2863 ), #2140 ) ;
+#826 = CARTESIAN_POINT ( 'NONE',  ( -2.028250000000000300, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#827 = ORIENTED_EDGE ( 'NONE', *, *, #1806, .T. ) ;
+#828 = PLANE ( 'NONE',  #2547 ) ;
+#829 = ORIENTED_EDGE ( 'NONE', *, *, #671, .F. ) ;
+#830 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.000000000000000000 ) ) ;
+#831 = FACE_OUTER_BOUND ( 'NONE', #1361, .T. ) ;
+#832 = PLANE ( 'NONE',  #771 ) ;
+#833 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#834 = VECTOR ( 'NONE', #1635, 39.37007874015748100 ) ;
+#835 = CIRCLE ( 'NONE', #983, 0.2187499999999999400 ) ;
+#836 = VERTEX_POINT ( 'NONE', #2839 ) ;
+#837 = EDGE_CURVE ( 'NONE', #2349, #1262, #1183, .T. ) ;
+#838 = ORIENTED_EDGE ( 'NONE', *, *, #1755, .F. ) ;
+#839 = LINE ( 'NONE', #2895, #1941 ) ;
+#840 = FACE_BOUND ( 'NONE', #1679, .T. ) ;
+#841 = EDGE_LOOP ( 'NONE', ( #2829, #2388, #471, #682 ) ) ;
+#842 = ORIENTED_EDGE ( 'NONE', *, *, #1595, .T. ) ;
+#843 = EDGE_LOOP ( 'NONE', ( #2464, #1094 ) ) ;
+#844 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#845 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.5625000000000001100, 0.8125000000000000000 ) ) ;
+#846 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#847 = EDGE_LOOP ( 'NONE', ( #176, #2718, #20, #772 ) ) ;
+#848 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#849 = VECTOR ( 'NONE', #1324, 39.37007874015748100 ) ;
+#850 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#851 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#852 = VERTEX_POINT ( 'NONE', #2538 ) ;
+#853 = EDGE_LOOP ( 'NONE', ( #2052, #902 ) ) ;
+#854 = EDGE_CURVE ( 'NONE', #1117, #2613, #563, .T. ) ;
+#855 = AXIS2_PLACEMENT_3D ( 'NONE', #15, #2401, #1475 ) ;
+#856 = EDGE_CURVE ( 'NONE', #1641, #865, #74, .T. ) ;
+#857 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#858 = VECTOR ( 'NONE', #105, 39.37007874015748100 ) ;
+#859 = EDGE_LOOP ( 'NONE', ( #1820, #1278, #2065, #1664 ) ) ;
+#860 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#861 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#862 = EDGE_CURVE ( 'NONE', #591, #312, #2501, .T. ) ;
+#863 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#864 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999999842800, 0.4375503462087652600, 0.6250000000000000000 ) ) ;
+#865 = VERTEX_POINT ( 'NONE', #920 ) ;
+#866 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#867 = ORIENTED_EDGE ( 'NONE', *, *, #1640, .T. ) ;
+#868 = EDGE_CURVE ( 'NONE', #710, #459, #35, .T. ) ;
+#869 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#870 = LINE ( 'NONE', #1810, #2510 ) ;
+#871 = ORIENTED_EDGE ( 'NONE', *, *, #1436, .T. ) ;
+#872 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#873 = VECTOR ( 'NONE', #1137, 39.37007874015748100 ) ;
+#874 = ORIENTED_EDGE ( 'NONE', *, *, #2901, .T. ) ;
+#875 = LINE ( 'NONE', #2076, #1051 ) ;
+#876 = ORIENTED_EDGE ( 'NONE', *, *, #229, .F. ) ;
+#877 = ORIENTED_EDGE ( 'NONE', *, *, #449, .T. ) ;
+#878 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#879 = CARTESIAN_POINT ( 'NONE',  ( 2.405623983195884600, 0.4624496051557608300, 0.6250000000000000000 ) ) ;
+#880 = LINE ( 'NONE', #1864, #911 ) ;
+#881 = ORIENTED_EDGE ( 'NONE', *, *, #2367, .T. ) ;
+#882 = PLANE ( 'NONE',  #2454 ) ;
+#883 = VERTEX_POINT ( 'NONE', #1600 ) ;
+#884 = EDGE_LOOP ( 'NONE', ( #1022, #2511, #874, #3028, #3031, #1315, #1178, #724 ) ) ;
+#885 = LINE ( 'NONE', #550, #2679 ) ;
+#886 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#887 = ORIENTED_EDGE ( 'NONE', *, *, #1374, .F. ) ;
+#888 = LINE ( 'NONE', #1900, #260 ) ;
+#889 = ORIENTED_EDGE ( 'NONE', *, *, #1665, .T. ) ;
+#890 = AXIS2_PLACEMENT_3D ( 'NONE', #686, #224, #1652 ) ;
+#891 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000300, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#892 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#893 = AXIS2_PLACEMENT_3D ( 'NONE', #1886, #714, #12 ) ;
+#894 = ORIENTED_EDGE ( 'NONE', *, *, #555, .T. ) ;
+#895 = VECTOR ( 'NONE', #2654, 39.37007874015748100 ) ;
+#896 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -1.601555123121432500E-016, -0.0000000000000000000 ) ) ;
+#897 = EDGE_CURVE ( 'NONE', #3029, #2669, #2396, .T. ) ;
+#898 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#899 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#900 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, 0.2060549223287782800, 1.375000000000000000 ) ) ;
+#901 = ADVANCED_FACE ( 'NONE', ( #1479 ), #2545, .T. ) ;
+#902 = ORIENTED_EDGE ( 'NONE', *, *, #2122, .T. ) ;
+#903 = AXIS2_PLACEMENT_3D ( 'NONE', #2071, #1071, #661 ) ;
+#904 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#905 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#906 = EDGE_CURVE ( 'NONE', #2419, #1390, #2430, .T. ) ;
+#907 = AXIS2_PLACEMENT_3D ( 'NONE', #2245, #2469, #2018 ) ;
+#908 = CYLINDRICAL_SURFACE ( 'NONE', #2495, 0.2187500000000000000 ) ;
+#909 = FACE_OUTER_BOUND ( 'NONE', #2219, .T. ) ;
+#910 = ORIENTED_EDGE ( 'NONE', *, *, #595, .F. ) ;
+#911 = VECTOR ( 'NONE', #718, 39.37007874015748100 ) ;
+#912 = LINE ( 'NONE', #636, #1127 ) ;
+#913 = ORIENTED_EDGE ( 'NONE', *, *, #1538, .T. ) ;
+#914 = ORIENTED_EDGE ( 'NONE', *, *, #1714, .F. ) ;
+#915 = ADVANCED_FACE ( 'NONE', ( #225 ), #2936, .F. ) ;
+#916 = EDGE_LOOP ( 'NONE', ( #440, #2081, #697, #2335 ) ) ;
+#917 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.375000000000000000 ) ) ;
+#918 = PLANE ( 'NONE',  #2713 ) ;
+#919 = FACE_OUTER_BOUND ( 'NONE', #2514, .T. ) ;
+#920 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 1.000000000000000000 ) ) ;
+#921 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#922 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999998800, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#923 = ORIENTED_EDGE ( 'NONE', *, *, #2837, .T. ) ;
+#924 = ORIENTED_EDGE ( 'NONE', *, *, #367, .T. ) ;
+#925 = CARTESIAN_POINT ( 'NONE',  ( 0.9092499999999998900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#926 = ORIENTED_EDGE ( 'NONE', *, *, #2847, .T. ) ;
+#927 = EDGE_LOOP ( 'NONE', ( #2716, #985, #2633, #777 ) ) ;
+#928 = EDGE_CURVE ( 'NONE', #952, #2439, #2324, .T. ) ;
+#929 = AXIS2_PLACEMENT_3D ( 'NONE', #1172, #2128, #1648 ) ;
+#930 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#931 = CARTESIAN_POINT ( 'NONE',  ( -1.255000000000000300, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#932 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#933 = LINE ( 'NONE', #2954, #1290 ) ;
+#934 = ADVANCED_FACE ( 'NONE', ( #1809 ), #1363, .F. ) ;
+#935 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#936 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#937 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 0.6875000000000000000, 0.8125000000000000000 ) ) ;
+#938 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, 0.3310549223287783100, 1.375000000000000000 ) ) ;
+#939 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#940 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#941 = PLANE ( 'NONE',  #1476 ) ;
+#942 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#943 = ORIENTED_EDGE ( 'NONE', *, *, #1957, .T. ) ;
+#944 = AXIS2_PLACEMENT_3D ( 'NONE', #1556, #2769, #1362 ) ;
+#945 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#946 = ADVANCED_FACE ( 'NONE', ( #1841 ), #2708, .T. ) ;
+#947 = EDGE_LOOP ( 'NONE', ( #2156, #237, #619, #1418 ) ) ;
+#948 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000300, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#949 = FACE_OUTER_BOUND ( 'NONE', #2241, .T. ) ;
+#950 = ORIENTED_EDGE ( 'NONE', *, *, #1375, .T. ) ;
+#951 = VECTOR ( 'NONE', #1807, 39.37007874015748100 ) ;
+#952 = VERTEX_POINT ( 'NONE', #349 ) ;
+#953 = LINE ( 'NONE', #137, #543 ) ;
+#954 = ORIENTED_EDGE ( 'NONE', *, *, #1179, .T. ) ;
+#955 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#956 = VERTEX_POINT ( 'NONE', #1527 ) ;
+#957 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#958 = EDGE_CURVE ( 'NONE', #2657, #645, #147, .T. ) ;
+#959 = LINE ( 'NONE', #581, #627 ) ;
+#960 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#961 = ORIENTED_EDGE ( 'NONE', *, *, #2847, .F. ) ;
+#962 = VECTOR ( 'NONE', #736, 39.37007874015748100 ) ;
+#963 = VERTEX_POINT ( 'NONE', #607 ) ;
+#964 = CARTESIAN_POINT ( 'NONE',  ( -0.9032500000000001100, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#965 = ADVANCED_FACE ( 'NONE', ( #1255, #633, #450, #2970, #2117, #2, #3006, #1186, #2800, #2034, #565 ), #2935, .F. ) ;
+#966 =( CONVERSION_BASED_UNIT ( 'INCH', #1049 ) LENGTH_UNIT ( ) NAMED_UNIT ( #1437 ) );
+#967 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#968 = EDGE_CURVE ( 'NONE', #2013, #599, #1710, .T. ) ;
+#969 = LINE ( 'NONE', #739, #1401 ) ;
+#970 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#971 = EDGE_CURVE ( 'NONE', #2582, #1439, #2616, .T. ) ;
+#972 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#973 = AXIS2_PLACEMENT_3D ( 'NONE', #500, #1699, #1908 ) ;
+#974 = EDGE_CURVE ( 'NONE', #312, #2634, #1776, .T. ) ;
+#975 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250980800, -0.1875000000000002500, 0.5000000000000000000 ) ) ;
+#976 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#977 = ORIENTED_EDGE ( 'NONE', *, *, #397, .F. ) ;
+#978 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 0.0000000000000000000 ) ) ;
+#979 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#980 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250981300, 0.1874999999999998300, 1.000000000000000000 ) ) ;
+#981 = EDGE_CURVE ( 'NONE', #59, #1802, #2868, .T. ) ;
+#982 = CIRCLE ( 'NONE', #2729, 0.2187499999999999400 ) ;
+#983 = AXIS2_PLACEMENT_3D ( 'NONE', #2966, #2973, #1583 ) ;
+#984 = LINE ( 'NONE', #2142, #2050 ) ;
+#985 = ORIENTED_EDGE ( 'NONE', *, *, #2491, .T. ) ;
+#986 = CYLINDRICAL_SURFACE ( 'NONE', #1410, 0.1330000000000002000 ) ;
+#987 = AXIS2_PLACEMENT_3D ( 'NONE', #2057, #2750, #1335 ) ;
+#988 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026638100, -0.2549102234176833200, 1.375000000000000000 ) ) ;
+#989 = CYLINDRICAL_SURFACE ( 'NONE', #1930, 0.1330000000000003700 ) ;
+#990 = EDGE_LOOP ( 'NONE', ( #2976, #2040, #298, #1313 ) ) ;
+#991 = EDGE_LOOP ( 'NONE', ( #2066, #894, #2270, #170 ) ) ;
+#992 = ORIENTED_EDGE ( 'NONE', *, *, #1280, .T. ) ;
+#993 = LINE ( 'NONE', #562, #368 ) ;
+#994 = ADVANCED_FACE ( 'NONE', ( #2256 ), #2656, .F. ) ;
+#995 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#996 = ORIENTED_EDGE ( 'NONE', *, *, #2230, .T. ) ;
+#997 = VERTEX_POINT ( 'NONE', #2246 ) ;
+#998 = VERTEX_POINT ( 'NONE', #1553 ) ;
+#999 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1000 = EDGE_CURVE ( 'NONE', #2006, #424, #709, .T. ) ;
+#1001 = EDGE_LOOP ( 'NONE', ( #2593, #2104, #172, #1568 ) ) ;
+#1002 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1003 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1004 = CIRCLE ( 'NONE', #596, 0.09999999999999989500 ) ;
+#1005 = PLANE ( 'NONE',  #340 ) ;
+#1006 = AXIS2_PLACEMENT_3D ( 'NONE', #308, #2882, #2168 ) ;
+#1007 = FACE_OUTER_BOUND ( 'NONE', #2698, .T. ) ;
+#1008 = DIRECTION ( 'NONE',  ( -1.924323260793499400E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1009 = ADVANCED_FACE ( 'NONE', ( #1403, #1007 ), #1045, .F. ) ;
+#1010 = EDGE_CURVE ( 'NONE', #2282, #1641, #1325, .T. ) ;
+#1011 = AXIS2_PLACEMENT_3D ( 'NONE', #221, #228, #1130 ) ;
+#1012 = EDGE_CURVE ( 'NONE', #1390, #1435, #1554, .T. ) ;
+#1013 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1014 = ORIENTED_EDGE ( 'NONE', *, *, #2517, .T. ) ;
+#1015 = ORIENTED_EDGE ( 'NONE', *, *, #2567, .T. ) ;
+#1016 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1017 = LINE ( 'NONE', #1584, #2879 ) ;
+#1018 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1019 = FACE_OUTER_BOUND ( 'NONE', #947, .T. ) ;
+#1020 = EDGE_LOOP ( 'NONE', ( #2714, #2674, #362, #2020 ) ) ;
+#1021 = VECTOR ( 'NONE', #383, 39.37007874015748100 ) ;
+#1022 = ORIENTED_EDGE ( 'NONE', *, *, #713, .T. ) ;
+#1023 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1024 = FACE_OUTER_BOUND ( 'NONE', #2015, .T. ) ;
+#1025 = EDGE_CURVE ( 'NONE', #2359, #2265, #2363, .T. ) ;
+#1026 = ORIENTED_EDGE ( 'NONE', *, *, #37, .T. ) ;
+#1027 = ORIENTED_EDGE ( 'NONE', *, *, #837, .T. ) ;
+#1028 = VERTEX_POINT ( 'NONE', #95 ) ;
+#1029 = PLANE ( 'NONE',  #42 ) ;
+#1030 = EDGE_CURVE ( 'NONE', #2419, #2582, #1107, .T. ) ;
+#1031 = AXIS2_PLACEMENT_3D ( 'NONE', #2343, #1663, #2832 ) ;
+#1032 = CYLINDRICAL_SURFACE ( 'NONE', #1259, 0.2187499999999999400 ) ;
+#1033 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1034 = EDGE_LOOP ( 'NONE', ( #576, #3003, #2559, #1490 ) ) ;
+#1035 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1036 = EDGE_LOOP ( 'NONE', ( #1058, #1308, #1511, #1466 ) ) ;
+#1037 = EDGE_LOOP ( 'NONE', ( #96, #2486, #157, #2035 ) ) ;
+#1038 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1039 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1040 = CARTESIAN_POINT ( 'NONE',  ( 0.2217499999999999700, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1041 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 0.6250000000000000000 ) ) ;
+#1042 = AXIS2_PLACEMENT_3D ( 'NONE', #2803, #456, #932 ) ;
+#1043 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 1.250000000000000000, 0.0000000000000000000 ) ) ;
+#1044 = ORIENTED_EDGE ( 'NONE', *, *, #856, .T. ) ;
+#1045 = PLANE ( 'NONE',  #2145 ) ;
+#1046 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1047 = ORIENTED_EDGE ( 'NONE', *, *, #2655, .T. ) ;
+#1048 = EDGE_CURVE ( 'NONE', #2782, #2857, #1997, .T. ) ;
+#1049 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #1432 );
+#1050 = CYLINDRICAL_SURFACE ( 'NONE', #1366, 0.4999999999999998300 ) ;
+#1051 = VECTOR ( 'NONE', #1381, 39.37007874015748100 ) ;
+#1052 = EDGE_LOOP ( 'NONE', ( #410, #60, #1169, #1969 ) ) ;
+#1053 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1054 = CIRCLE ( 'NONE', #2878, 0.2187499999999999400 ) ;
+#1055 = EDGE_CURVE ( 'NONE', #459, #710, #2535, .T. ) ;
+#1056 = FACE_OUTER_BOUND ( 'NONE', #2953, .T. ) ;
+#1057 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1058 = ORIENTED_EDGE ( 'NONE', *, *, #1970, .F. ) ;
+#1059 = CARTESIAN_POINT ( 'NONE',  ( 1.880274082640043300, 0.1643791425749027100, 0.6250000000000000000 ) ) ;
+#1060 = ORIENTED_EDGE ( 'NONE', *, *, #2888, .F. ) ;
+#1061 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.4999999999999996700 ) ) ;
+#1062 = CIRCLE ( 'NONE', #2939, 0.1330000000000002000 ) ;
+#1063 = EDGE_LOOP ( 'NONE', ( #2640, #402, #1513, #2206 ) ) ;
+#1064 = EDGE_CURVE ( 'NONE', #2889, #2153, #1740, .T. ) ;
+#1065 = VERTEX_POINT ( 'NONE', #2019 ) ;
+#1066 = AXIS2_PLACEMENT_3D ( 'NONE', #1670, #967, #5 ) ;
+#1067 = AXIS2_PLACEMENT_3D ( 'NONE', #1764, #1999, #118 ) ;
+#1068 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1069 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, 0.2500000000000000600, 0.8750000000000000000 ) ) ;
+#1070 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1071 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1072 = LINE ( 'NONE', #1559, #1959 ) ;
+#1073 = VECTOR ( 'NONE', #361, 39.37007874015748100 ) ;
+#1074 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1075 = EDGE_CURVE ( 'NONE', #1262, #323, #2902, .T. ) ;
+#1076 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, 0.1874999999999997500, 0.5000000000000000000 ) ) ;
+#1077 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999999842800, 0.4375503462087652600, 0.6250000000000000000 ) ) ;
+#1078 = AXIS2_PLACEMENT_3D ( 'NONE', #2575, #1639, #227 ) ;
+#1079 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1080 = ORIENTED_EDGE ( 'NONE', *, *, #494, .F. ) ;
+#1081 = DIRECTION ( 'NONE',  ( -1.601555123121432500E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1082 = ORIENTED_EDGE ( 'NONE', *, *, #2136, .T. ) ;
+#1083 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1084 = CARTESIAN_POINT ( 'NONE',  ( 1.346749999999999700, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1085 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1086 = LINE ( 'NONE', #1899, #2406 ) ;
+#1087 = VECTOR ( 'NONE', #892, 39.37007874015748100 ) ;
+#1088 = ORIENTED_EDGE ( 'NONE', *, *, #1893, .F. ) ;
+#1089 = VECTOR ( 'NONE', #452, 39.37007874015748100 ) ;
+#1090 = FACE_OUTER_BOUND ( 'NONE', #2858, .T. ) ;
+#1091 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.731847993664262700E-016, -0.0000000000000000000 ) ) ;
+#1092 = ORIENTED_EDGE ( 'NONE', *, *, #2472, .F. ) ;
+#1093 = ORIENTED_EDGE ( 'NONE', *, *, #1698, .T. ) ;
+#1094 = ORIENTED_EDGE ( 'NONE', *, *, #2904, .F. ) ;
+#1095 = ORIENTED_EDGE ( 'NONE', *, *, #2268, .F. ) ;
+#1096 = CARTESIAN_POINT ( 'NONE',  ( 2.227291815932487900, -0.4188565208918158000, 0.8125000000000000000 ) ) ;
+#1097 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999900, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1098 = CYLINDRICAL_SURFACE ( 'NONE', #2532, 0.1250000000000000300 ) ;
+#1099 = ORIENTED_EDGE ( 'NONE', *, *, #1, .T. ) ;
+#1100 = ORIENTED_EDGE ( 'NONE', *, *, #1159, .T. ) ;
+#1101 = CARTESIAN_POINT ( 'NONE',  ( 1.999999999999998900, 1.250000000000000000, 0.0000000000000000000 ) ) ;
+#1102 = AXIS2_PLACEMENT_3D ( 'NONE', #412, #869, #2505 ) ;
+#1103 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1104 = LINE ( 'NONE', #1918, #2498 ) ;
+#1105 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 0.4999999999999996100 ) ) ;
+#1106 = EDGE_CURVE ( 'NONE', #2782, #2919, #933, .T. ) ;
+#1107 = LINE ( 'NONE', #2477, #487 ) ;
+#1108 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1109 = EDGE_CURVE ( 'NONE', #1650, #1783, #601, .T. ) ;
+#1110 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1111 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1112 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279400, 0.1318487067688303100, 1.174999999999999800 ) ) ;
+#1113 = ORIENTED_EDGE ( 'NONE', *, *, #1538, .F. ) ;
+#1114 = EDGE_CURVE ( 'NONE', #250, #1944, #1072, .T. ) ;
+#1115 = AXIS2_PLACEMENT_3D ( 'NONE', #1472, #761, #40 ) ;
+#1116 = ORIENTED_EDGE ( 'NONE', *, *, #2143, .F. ) ;
+#1117 = VERTEX_POINT ( 'NONE', #311 ) ;
+#1118 = CIRCLE ( 'NONE', #83, 0.1330000000000002600 ) ;
+#1119 = ADVANCED_FACE ( 'NONE', ( #2465 ), #1736, .F. ) ;
+#1120 = VECTOR ( 'NONE', #2525, 39.37007874015748100 ) ;
+#1121 = ORIENTED_EDGE ( 'NONE', *, *, #2999, .T. ) ;
+#1122 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1123 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1124 = CIRCLE ( 'NONE', #1738, 0.1947179912523943300 ) ;
+#1125 = DIRECTION ( 'NONE',  ( 1.294972880571175400E-016, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1126 = CARTESIAN_POINT ( 'NONE',  ( -2.465750000000000300, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1127 = VECTOR ( 'NONE', #896, 39.37007874015748100 ) ;
+#1128 = VERTEX_POINT ( 'NONE', #2028 ) ;
+#1129 = LINE ( 'NONE', #1364, #2926 ) ;
+#1130 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1131 = EDGE_CURVE ( 'NONE', #2487, #675, #1925, .T. ) ;
+#1132 = ORIENTED_EDGE ( 'NONE', *, *, #2706, .T. ) ;
+#1133 = ORIENTED_EDGE ( 'NONE', *, *, #37, .F. ) ;
+#1134 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, 0.6250000000000000000, 1.000000000000000000 ) ) ;
+#1135 = CARTESIAN_POINT ( 'NONE',  ( -2.380000000000000300, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1136 = AXIS2_PLACEMENT_3D ( 'NONE', #2170, #1681, #1002 ) ;
+#1137 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1138 = ADVANCED_FACE ( 'NONE', ( #1252 ), #587, .F. ) ;
+#1139 = VECTOR ( 'NONE', #306, 39.37007874015748100 ) ;
+#1140 = VECTOR ( 'NONE', #2730, 39.37007874015748100 ) ;
+#1141 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1142 = EDGE_CURVE ( 'NONE', #653, #2153, #381, .T. ) ;
+#1143 = CARTESIAN_POINT ( 'NONE',  ( 2.526213591511189200, -0.08733638245144770300, 0.6250000000000000000 ) ) ;
+#1144 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1145 = CARTESIAN_POINT ( 'NONE',  ( -0.9032500000000001100, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1146 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
+ ( #864, #879, #407, #178, #2311, #1143, #1155, #2291, #2060, #2978 ),
+ .UNSPECIFIED., .F., .F.,
+ ( 4, 1, 1, 1, 1, 1, 1, 4 ),
+ ( 0.1804171056932950000, 0.2574214255684045300, 0.3271167815832054000, 0.3787956272272490800, 0.4753932694299508000, 0.5595206077257001100, 0.6412861705332345600, 0.6905092016622609300 ),
+ .UNSPECIFIED. ) ;
+#1147 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1148 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026637200, 0.2549102234176834900, 1.375000000000000000 ) ) ;
+#1149 = AXIS2_PLACEMENT_3D ( 'NONE', #2427, #807, #1486 ) ;
+#1150 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1151 = ADVANCED_FACE ( 'NONE', ( #2637 ), #2818, .F. ) ;
+#1152 = ORIENTED_EDGE ( 'NONE', *, *, #1318, .T. ) ;
+#1153 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1154 = ORIENTED_EDGE ( 'NONE', *, *, #2932, .F. ) ;
+#1155 = CARTESIAN_POINT ( 'NONE',  ( 1.904415784228984400, -0.2020162695637367200, 0.6250000000000000000 ) ) ;
+#1156 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#1157 = AXIS2_PLACEMENT_3D ( 'NONE', #1643, #2134, #2806 ) ;
+#1158 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1159 = EDGE_CURVE ( 'NONE', #852, #2278, #2207, .T. ) ;
+#1160 = LINE ( 'NONE', #2504, #1645 ) ;
+#1161 = CIRCLE ( 'NONE', #2916, 0.1947179912523943300 ) ;
+#1162 = VERTEX_POINT ( 'NONE', #2466 ) ;
+#1163 = LINE ( 'NONE', #703, #1089 ) ;
+#1164 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#1165 = LINE ( 'NONE', #2693, #1789 ) ;
+#1166 = EDGE_LOOP ( 'NONE', ( #1731, #2001, #427, #798 ) ) ;
+#1167 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, 0.1874999999999997500, 0.5000000000000000000 ) ) ;
+#1168 = VERTEX_POINT ( 'NONE', #2242 ) ;
+#1169 = ORIENTED_EDGE ( 'NONE', *, *, #1704, .T. ) ;
+#1170 = ORIENTED_EDGE ( 'NONE', *, *, #1846, .F. ) ;
+#1171 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1172 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1173 = PLANE ( 'NONE',  #1042 ) ;
+#1174 = CIRCLE ( 'NONE', #755, 0.1330000000000005100 ) ;
+#1175 = ADVANCED_FACE ( 'NONE', ( #3027 ), #1777, .F. ) ;
+#1176 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#1177 = EDGE_LOOP ( 'NONE', ( #2373, #2357, #805, #1767 ) ) ;
+#1178 = ORIENTED_EDGE ( 'NONE', *, *, #1184, .T. ) ;
+#1179 = EDGE_CURVE ( 'NONE', #2814, #1946, #2017, .T. ) ;
+#1180 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1181 = AXIS2_PLACEMENT_3D ( 'NONE', #1630, #955, #2148 ) ;
+#1182 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1183 = CIRCLE ( 'NONE', #1540, 0.1249999999999999000 ) ;
+#1184 = EDGE_CURVE ( 'NONE', #836, #956, #2415, .T. ) ;
+#1185 = AXIS2_PLACEMENT_3D ( 'NONE', #1801, #2264, #2045 ) ;
+#1186 = FACE_BOUND ( 'NONE', #615, .T. ) ;
+#1187 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
+#1188 =( CONVERSION_BASED_UNIT ( 'INCH', #2113 ) LENGTH_UNIT ( ) NAMED_UNIT ( #2162 ) );
+#1189 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1190 = ADVANCED_FACE ( 'NONE', ( #1090 ), #828, .F. ) ;
+#1191 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1192 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1193 = SURFACE_STYLE_USAGE ( .BOTH. , #488 ) ;
+#1194 = ORIENTED_EDGE ( 'NONE', *, *, #1114, .T. ) ;
+#1195 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1196 = SURFACE_SIDE_STYLE ('',( #376 ) ) ;
+#1197 = AXIS2_PLACEMENT_3D ( 'NONE', #564, #1023, #818 ) ;
+#1198 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1199 = AXIS2_PLACEMENT_3D ( 'NONE', #31, #1213, #2856 ) ;
+#1200 = EDGE_LOOP ( 'NONE', ( #2997, #370, #1396, #2923 ) ) ;
+#1201 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1202 = CYLINDRICAL_SURFACE ( 'NONE', #1306, 0.1330000000000002000 ) ;
+#1203 = PLANE ( 'NONE',  #2810 ) ;
+#1204 = CIRCLE ( 'NONE', #612, 0.2187500000000000800 ) ;
+#1205 = ORIENTED_EDGE ( 'NONE', *, *, #2807, .T. ) ;
+#1206 = VECTOR ( 'NONE', #1314, 39.37007874015748100 ) ;
+#1207 = ORIENTED_EDGE ( 'NONE', *, *, #1609, .T. ) ;
+#1208 = FACE_BOUND ( 'NONE', #2185, .T. ) ;
+#1209 = ORIENTED_EDGE ( 'NONE', *, *, #1450, .T. ) ;
+#1210 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1211 = EDGE_CURVE ( 'NONE', #1802, #2712, #2780, .T. ) ;
+#1212 = CIRCLE ( 'NONE', #1115, 0.1250000000000000300 ) ;
+#1213 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1214 = ORIENTED_EDGE ( 'NONE', *, *, #868, .T. ) ;
+#1215 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1216 = EDGE_CURVE ( 'NONE', #2885, #502, #1165, .T. ) ;
+#1217 = AXIS2_PLACEMENT_3D ( 'NONE', #1228, #2649, #787 ) ;
+#1218 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1219 = CIRCLE ( 'NONE', #2231, 0.1330000000000004800 ) ;
+#1220 = EDGE_LOOP ( 'NONE', ( #2930, #695 ) ) ;
+#1221 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999400, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1222 = VECTOR ( 'NONE', #672, 39.37007874015748100 ) ;
+#1223 = EDGE_CURVE ( 'NONE', #2875, #175, #1307, .T. ) ;
+#1224 = AXIS2_PLACEMENT_3D ( 'NONE', #2817, #1849, #439 ) ;
+#1225 = EDGE_CURVE ( 'NONE', #1734, #1787, #2851, .T. ) ;
+#1226 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1227 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1228 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1229 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999400, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1230 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026639400, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#1231 = ORIENTED_EDGE ( 'NONE', *, *, #2977, .T. ) ;
+#1232 = ADVANCED_FACE ( 'NONE', ( #1388 ), #2922, .F. ) ;
+#1233 = EDGE_CURVE ( 'NONE', #2153, #2613, #2179, .T. ) ;
+#1234 = PRESENTATION_LAYER_ASSIGNMENT (  '', '', ( #2863 ) ) ;
+#1235 = CIRCLE ( 'NONE', #2768, 0.2187499999999999400 ) ;
+#1236 = ORIENTED_EDGE ( 'NONE', *, *, #483, .F. ) ;
+#1237 = ORIENTED_EDGE ( 'NONE', *, *, #1223, .F. ) ;
+#1238 = CIRCLE ( 'NONE', #1884, 0.2187499999999999400 ) ;
+#1239 = AXIS2_PLACEMENT_3D ( 'NONE', #212, #1601, #1125 ) ;
+#1240 = FACE_OUTER_BOUND ( 'NONE', #208, .T. ) ;
+#1241 = ORIENTED_EDGE ( 'NONE', *, *, #479, .T. ) ;
+#1242 = ORIENTED_EDGE ( 'NONE', *, *, #1913, .F. ) ;
+#1243 = VERTEX_POINT ( 'NONE', #2289 ) ;
+#1244 = ORIENTED_EDGE ( 'NONE', *, *, #173, .T. ) ;
+#1245 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1246 = PRODUCT_DEFINITION_CONTEXT ( 'detailed design', #1948, 'design' ) ;
+#1247 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000100, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1248 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1249 = VECTOR ( 'NONE', #2267, 39.37007874015748100 ) ;
+#1250 = ADVANCED_FACE ( 'NONE', ( #131 ), #1727, .F. ) ;
+#1251 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#1252 = FACE_OUTER_BOUND ( 'NONE', #2574, .T. ) ;
+#1253 = CARTESIAN_POINT ( 'NONE',  ( 2.405623984976974100, 0.4624496049483496400, 0.6250000000000000000 ) ) ;
+#1254 = AXIS2_PLACEMENT_3D ( 'NONE', #77, #566, #2229 ) ;
+#1255 = FACE_BOUND ( 'NONE', #2767, .T. ) ;
+#1256 = ORIENTED_EDGE ( 'NONE', *, *, #2474, .T. ) ;
+#1257 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1258 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1259 = AXIS2_PLACEMENT_3D ( 'NONE', #1079, #632, #1790 ) ;
+#1260 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, -0.1875000000000003900, 0.5000000000000000000 ) ) ;
+#1261 = EDGE_CURVE ( 'NONE', #1695, #1944, #545, .T. ) ;
+#1262 = VERTEX_POINT ( 'NONE', #2759 ) ;
+#1263 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1264 = FACE_OUTER_BOUND ( 'NONE', #1717, .T. ) ;
+#1265 = ORIENTED_EDGE ( 'NONE', *, *, #1330, .T. ) ;
+#1266 = LINE ( 'NONE', #1493, #2668 ) ;
+#1267 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979653700, 0.6874999999999998900, 0.8125000000000000000 ) ) ;
+#1268 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1269 = LINE ( 'NONE', #1191, #613 ) ;
+#1270 = EDGE_CURVE ( 'NONE', #710, #2702, #2347, .T. ) ;
+#1271 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#1272 = ORIENTED_EDGE ( 'NONE', *, *, #1109, .F. ) ;
+#1273 = VERTEX_POINT ( 'NONE', #1229 ) ;
+#1274 = LINE ( 'NONE', #2864, #22 ) ;
+#1275 = VERTEX_POINT ( 'NONE', #1221 ) ;
+#1276 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1277 = VECTOR ( 'NONE', #503, 39.37007874015748100 ) ;
+#1278 = ORIENTED_EDGE ( 'NONE', *, *, #155, .F. ) ;
+#1279 = EDGE_CURVE ( 'NONE', #366, #811, #286, .T. ) ;
+#1280 = EDGE_CURVE ( 'NONE', #1730, #655, #2884, .T. ) ;
+#1281 = CIRCLE ( 'NONE', #790, 0.1947179912523943300 ) ;
+#1282 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1283 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.6875000000000001100, 0.8125000000000000000 ) ) ;
+#1284 = ORIENTED_EDGE ( 'NONE', *, *, #2196, .F. ) ;
+#1285 = ORIENTED_EDGE ( 'NONE', *, *, #1832, .T. ) ;
+#1286 = CARTESIAN_POINT ( 'NONE',  ( 2.294434124949071000, 0.1559617977120215700, 0.8125000000000000000 ) ) ;
+#1287 = LINE ( 'NONE', #2202, #1139 ) ;
+#1288 = EDGE_LOOP ( 'NONE', ( #1729, #1205, #2251, #2748 ) ) ;
+#1289 = EDGE_CURVE ( 'NONE', #1435, #1316, #2556, .T. ) ;
+#1290 = VECTOR ( 'NONE', #863, 39.37007874015748100 ) ;
+#1291 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#1292 = AXIS2_PLACEMENT_3D ( 'NONE', #643, #2991, #1123 ) ;
+#1293 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1294 = AXIS2_PLACEMENT_3D ( 'NONE', #3021, #2369, #1171 ) ;
+#1295 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1296 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1297 = EDGE_CURVE ( 'NONE', #1968, #591, #2272, .T. ) ;
+#1298 = ORIENTED_EDGE ( 'NONE', *, *, #2541, .T. ) ;
+#1299 = VECTOR ( 'NONE', #622, 39.37007874015748100 ) ;
+#1300 = FACE_OUTER_BOUND ( 'NONE', #1619, .T. ) ;
+#1301 = LINE ( 'NONE', #1870, #1895 ) ;
+#1302 = ORIENTED_EDGE ( 'NONE', *, *, #3022, .F. ) ;
+#1303 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 0.4375503462087652100, 0.8125000000000000000 ) ) ;
+#1304 = ORIENTED_EDGE ( 'NONE', *, *, #2169, .T. ) ;
+#1305 = CIRCLE ( 'NONE', #629, 0.5000000000000001100 ) ;
+#1306 = AXIS2_PLACEMENT_3D ( 'NONE', #2194, #1746, #1038 ) ;
+#1307 = LINE ( 'NONE', #2737, #470 ) ;
+#1308 = ORIENTED_EDGE ( 'NONE', *, *, #2776, .T. ) ;
+#1309 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1310 = ORIENTED_EDGE ( 'NONE', *, *, #2107, .T. ) ;
+#1311 = CARTESIAN_POINT ( 'NONE',  ( -3.161825413516036900, -0.6875000000000003300, 0.5000000000000000000 ) ) ;
+#1312 = CARTESIAN_POINT ( 'NONE',  ( 0.2217499999999999200, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1313 = ORIENTED_EDGE ( 'NONE', *, *, #11, .F. ) ;
+#1314 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1315 = ORIENTED_EDGE ( 'NONE', *, *, #2590, .T. ) ;
+#1316 = VERTEX_POINT ( 'NONE', #1711 ) ;
+#1317 = VECTOR ( 'NONE', #2254, 39.37007874015748100 ) ;
+#1318 = EDGE_CURVE ( 'NONE', #963, #80, #2239, .T. ) ;
+#1319 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1320 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1321 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1322 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 0.8750000000000000000 ) ) ;
+#1323 = FACE_OUTER_BOUND ( 'NONE', #927, .T. ) ;
+#1324 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1325 = LINE ( 'NONE', #1069, #1629 ) ;
+#1326 = ORIENTED_EDGE ( 'NONE', *, *, #1106, .T. ) ;
+#1327 = EDGE_CURVE ( 'NONE', #997, #2405, #1942, .T. ) ;
+#1328 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1329 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279400, 0.1318487067688303100, 1.375000000000000000 ) ) ;
+#1330 = EDGE_CURVE ( 'NONE', #1533, #2209, #1826, .T. ) ;
+#1331 = AXIS2_PLACEMENT_3D ( 'NONE', #2971, #2975, #162 ) ;
+#1332 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1333 = VERTEX_POINT ( 'NONE', #752 ) ;
+#1334 = ORIENTED_EDGE ( 'NONE', *, *, #2222, .T. ) ;
+#1335 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1336 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250981300, 0.6874999999999998900, 0.5000000000000000000 ) ) ;
+#1337 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1338 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #2812 );
+#1339 = ORIENTED_EDGE ( 'NONE', *, *, #388, .F. ) ;
+#1340 = FACE_OUTER_BOUND ( 'NONE', #519, .T. ) ;
+#1341 = ORIENTED_EDGE ( 'NONE', *, *, #275, .F. ) ;
+#1342 = CYLINDRICAL_SURFACE ( 'NONE', #398, 0.09999999999999992200 ) ;
+#1343 = VERTEX_POINT ( 'NONE', #1446 ) ;
+#1344 = ORIENTED_EDGE ( 'NONE', *, *, #2684, .F. ) ;
+#1345 = CIRCLE ( 'NONE', #469, 0.2187499999999999400 ) ;
+#1346 = EDGE_LOOP ( 'NONE', ( #333, #159, #1542, #806 ) ) ;
+#1347 = ORIENTED_EDGE ( 'NONE', *, *, #1812, .F. ) ;
+#1348 = ORIENTED_EDGE ( 'NONE', *, *, #1806, .F. ) ;
+#1349 = AXIS2_PLACEMENT_3D ( 'NONE', #1509, #82, #2411 ) ;
+#1350 = LINE ( 'NONE', #65, #1317 ) ;
+#1351 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.4999999999999996700 ) ) ;
+#1352 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1353 = AXIS2_PLACEMENT_3D ( 'NONE', #1647, #232, #242 ) ;
+#1354 = VERTEX_POINT ( 'NONE', #268 ) ;
+#1355 = VERTEX_POINT ( 'NONE', #2164 ) ;
+#1356 = ADVANCED_FACE ( 'NONE', ( #1024 ), #1469, .T. ) ;
+#1357 = VERTEX_POINT ( 'NONE', #46 ) ;
+#1358 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1359 = EDGE_CURVE ( 'NONE', #542, #1275, #654, .T. ) ;
+#1360 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, 0.2500000000000002200, 0.8750000000000000000 ) ) ;
+#1361 = EDGE_LOOP ( 'NONE', ( #1393, #2827 ) ) ;
+#1362 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1363 = CYLINDRICAL_SURFACE ( 'NONE', #1594, 0.1330000000000003700 ) ;
+#1364 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 1.250000000000000000, 0.0000000000000000000 ) ) ;
+#1365 = EDGE_CURVE ( 'NONE', #1923, #2909, #25, .T. ) ;
+#1366 = AXIS2_PLACEMENT_3D ( 'NONE', #1260, #335, #2689 ) ;
+#1367 = ADVANCED_FACE ( 'NONE', ( #1056 ), #432, .F. ) ;
+#1368 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1369 = PLANE ( 'NONE',  #1292 ) ;
+#1370 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000001800, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1371 = PLANE ( 'NONE',  #1239 ) ;
+#1372 = EDGE_LOOP ( 'NONE', ( #1116, #467, #2039, #2587 ) ) ;
+#1373 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1374 = EDGE_CURVE ( 'NONE', #734, #1946, #1759, .T. ) ;
+#1375 = EDGE_CURVE ( 'NONE', #2560, #2359, #912, .T. ) ;
+#1376 = ORIENTED_EDGE ( 'NONE', *, *, #583, .F. ) ;
+#1377 = CIRCLE ( 'NONE', #1197, 0.2187499999999999400 ) ;
+#1378 = FACE_OUTER_BOUND ( 'NONE', #1978, .T. ) ;
+#1379 = LINE ( 'NONE', #925, #160 ) ;
+#1380 = ORIENTED_EDGE ( 'NONE', *, *, #1048, .F. ) ;
+#1381 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1382 = EDGE_LOOP ( 'NONE', ( #954, #887, #2217, #1132 ) ) ;
+#1383 = CARTESIAN_POINT ( 'NONE',  ( -3.161825413516036900, -0.6875000000000003300, 1.000000000000000000 ) ) ;
+#1384 = LINE ( 'NONE', #2216, #284 ) ;
+#1385 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#1386 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1387 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#1388 = FACE_OUTER_BOUND ( 'NONE', #1200, .T. ) ;
+#1389 = ORIENTED_EDGE ( 'NONE', *, *, #743, .T. ) ;
+#1390 = VERTEX_POINT ( 'NONE', #1831 ) ;
+#1391 = ADVANCED_FACE ( 'NONE', ( #1653 ), #1463, .F. ) ;
+#1392 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1393 = ORIENTED_EDGE ( 'NONE', *, *, #1755, .T. ) ;
+#1394 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1395 = EDGE_CURVE ( 'NONE', #599, #220, #399, .T. ) ;
+#1396 = ORIENTED_EDGE ( 'NONE', *, *, #583, .T. ) ;
+#1397 = LINE ( 'NONE', #1744, #1431 ) ;
+#1398 = VERTEX_POINT ( 'NONE', #442 ) ;
+#1399 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, 0.6250000000000000000, 1.375000000000000000 ) ) ;
+#1400 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1401 = VECTOR ( 'NONE', #2149, 39.37007874015748100 ) ;
+#1402 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1403 = FACE_BOUND ( 'NONE', #2089, .T. ) ;
+#1404 = ORIENTED_EDGE ( 'NONE', *, *, #166, .F. ) ;
+#1405 = ADVANCED_FACE ( 'NONE', ( #2448 ), #989, .F. ) ;
+#1406 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.731847993664262700E-016, 0.0000000000000000000 ) ) ;
+#1407 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999996600, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1408 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
+#1409 = PLANE ( 'NONE',  #648 ) ;
+#1410 = AXIS2_PLACEMENT_3D ( 'NONE', #257, #2836, #2154 ) ;
+#1411 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1412 = ORIENTED_EDGE ( 'NONE', *, *, #152, .T. ) ;
+#1413 = ORIENTED_EDGE ( 'NONE', *, *, #1365, .T. ) ;
+#1414 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1415 = ADVANCED_FACE ( 'NONE', ( #687, #840, #58, #1208, #1608, #2306, #206, #2484, #1240 ), #656, .T. ) ;
+#1416 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #478 ) ;
+#1417 = CIRCLE ( 'NONE', #929, 0.1330000000000004800 ) ;
+#1418 = ORIENTED_EDGE ( 'NONE', *, *, #1216, .T. ) ;
+#1419 = CYLINDRICAL_SURFACE ( 'NONE', #1149, 0.2187499999999999400 ) ;
+#1420 = EDGE_LOOP ( 'NONE', ( #1816, #319, #171, #133 ) ) ;
+#1421 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
+#1422 = VECTOR ( 'NONE', #493, 39.37007874015748100 ) ;
+#1423 = ORIENTED_EDGE ( 'NONE', *, *, #856, .F. ) ;
+#1424 = VERTEX_POINT ( 'NONE', #891 ) ;
+#1425 = EDGE_CURVE ( 'NONE', #1273, #1343, #618, .T. ) ;
+#1426 = CIRCLE ( 'NONE', #1569, 0.1330000000000002000 ) ;
+#1427 = ORIENTED_EDGE ( 'NONE', *, *, #3009, .F. ) ;
+#1428 = ORIENTED_EDGE ( 'NONE', *, *, #2627, .T. ) ;
+#1429 = VERTEX_POINT ( 'NONE', #3010 ) ;
+#1430 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1431 = VECTOR ( 'NONE', #93, 39.37007874015748100 ) ;
+#1432 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
+#1433 = CARTESIAN_POINT ( 'NONE',  ( -2.028250000000000300, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1434 = EDGE_LOOP ( 'NONE', ( #2218, #1460, #219, #1945 ) ) ;
+#1435 = VERTEX_POINT ( 'NONE', #2067 ) ;
+#1436 = EDGE_CURVE ( 'NONE', #788, #548, #2984, .T. ) ;
+#1437 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
+#1438 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1439 = VERTEX_POINT ( 'NONE', #917 ) ;
+#1440 = EDGE_CURVE ( 'NONE', #655, #2233, #2011, .T. ) ;
+#1441 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 0.0000000000000000000 ) ) ;
+#1442 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1443 = EDGE_CURVE ( 'NONE', #865, #963, #2377, .T. ) ;
+#1444 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1445 = CYLINDRICAL_SURFACE ( 'NONE', #1794, 0.09999999999999989500 ) ;
+#1446 = CARTESIAN_POINT ( 'NONE',  ( -2.380000000000000800, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1447 = ADVANCED_FACE ( 'NONE', ( #1901 ), #642, .T. ) ;
+#1448 = ORIENTED_EDGE ( 'NONE', *, *, #971, .F. ) ;
+#1449 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1450 = EDGE_CURVE ( 'NONE', #1168, #2857, #875, .T. ) ;
+#1451 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999243048200, -0.3967912632750754100, 0.8124999999999998900 ) ) ;
+#1452 = ORIENTED_EDGE ( 'NONE', *, *, #315, .T. ) ;
+#1453 = AXIS2_PLACEMENT_3D ( 'NONE', #904, #1141, #418 ) ;
+#1454 = CIRCLE ( 'NONE', #373, 0.2187500000000000800 ) ;
+#1455 = VECTOR ( 'NONE', #2078, 39.37007874015748100 ) ;
+#1456 = DIRECTION ( 'NONE',  ( -1.986798540846736500E-016, 1.000000000000000000, -0.0000000000000000000 ) ) ;
+#1457 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.3549102234176832500, 1.375000000000000000 ) ) ;
+#1458 = FACE_OUTER_BOUND ( 'NONE', #859, .T. ) ;
+#1459 = ORIENTED_EDGE ( 'NONE', *, *, #1025, .F. ) ;
+#1460 = ORIENTED_EDGE ( 'NONE', *, *, #1967, .F. ) ;
+#1461 = CYLINDRICAL_SURFACE ( 'NONE', #2671, 0.1250000000000000300 ) ;
+#1462 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 6.481953218662490300E-017, -0.0000000000000000000 ) ) ;
+#1463 = CYLINDRICAL_SURFACE ( 'NONE', #455, 0.2187499999999999400 ) ;
+#1464 = ORIENTED_EDGE ( 'NONE', *, *, #1928, .T. ) ;
+#1465 = ORIENTED_EDGE ( 'NONE', *, *, #637, .T. ) ;
+#1466 = ORIENTED_EDGE ( 'NONE', *, *, #2531, .F. ) ;
+#1467 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, 0.3310549223287783100, 1.174999999999999800 ) ) ;
+#1468 = EDGE_CURVE ( 'NONE', #502, #2814, #2773, .T. ) ;
+#1469 = PLANE ( 'NONE',  #353 ) ;
+#1470 = ORIENTED_EDGE ( 'NONE', *, *, #1769, .T. ) ;
+#1471 = FACE_OUTER_BOUND ( 'NONE', #611, .T. ) ;
+#1472 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, 0.2060549223287782800, 1.174999999999999800 ) ) ;
+#1473 = ORIENTED_EDGE ( 'NONE', *, *, #1184, .F. ) ;
+#1474 = ORIENTED_EDGE ( 'NONE', *, *, #1501, .F. ) ;
+#1475 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1476 = AXIS2_PLACEMENT_3D ( 'NONE', #1407, #1845, #446 ) ;
+#1477 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 0.4999999999999996100 ) ) ;
+#1478 = CYLINDRICAL_SURFACE ( 'NONE', #1224, 0.2187500000000000000 ) ;
+#1479 = FACE_OUTER_BOUND ( 'NONE', #2109, .T. ) ;
+#1480 = ORIENTED_EDGE ( 'NONE', *, *, #1114, .F. ) ;
+#1481 = AXIS2_PLACEMENT_3D ( 'NONE', #1951, #1248, #554 ) ;
+#1482 = EDGE_CURVE ( 'NONE', #203, #788, #1530, .T. ) ;
+#1483 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1484 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#1485 = ADVANCED_FACE ( 'NONE', ( #1605, #1756 ), #2571, .F. ) ;
+#1486 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1487 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026637200, 0.2549102234176834900, 1.174999999999999800 ) ) ;
+#1488 = PLANE ( 'NONE',  #2568 ) ;
+#1489 = ORIENTED_EDGE ( 'NONE', *, *, #294, .T. ) ;
+#1490 = ORIENTED_EDGE ( 'NONE', *, *, #1012, .F. ) ;
+#1491 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999997700, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1492 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999148911000, -0.3967912632963749900, 0.6250000000000000000 ) ) ;
+#1493 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#1494 = EDGE_CURVE ( 'NONE', #385, #371, #984, .T. ) ;
+#1495 = AXIS2_PLACEMENT_3D ( 'NONE', #1337, #2263, #1799 ) ;
+#1496 = CYLINDRICAL_SURFACE ( 'NONE', #1818, 0.2187499999999999400 ) ;
+#1497 = VERTEX_POINT ( 'NONE', #2824 ) ;
+#1498 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1499 = VECTOR ( 'NONE', #1949, 39.37007874015748100 ) ;
+#1500 = EDGE_LOOP ( 'NONE', ( #1551, #961 ) ) ;
+#1501 = EDGE_CURVE ( 'NONE', #2049, #1923, #2700, .T. ) ;
+#1502 = VECTOR ( 'NONE', #1627, 39.37007874015748100 ) ;
+#1503 = ORIENTED_EDGE ( 'NONE', *, *, #647, .F. ) ;
+#1504 = ORIENTED_EDGE ( 'NONE', *, *, #2072, .F. ) ;
+#1505 = LINE ( 'NONE', #2903, #1573 ) ;
+#1506 = ORIENTED_EDGE ( 'NONE', *, *, #2723, .T. ) ;
+#1507 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1508 = VERTEX_POINT ( 'NONE', #210 ) ;
+#1509 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1510 = LINE ( 'NONE', #79, #2492 ) ;
+#1511 = ORIENTED_EDGE ( 'NONE', *, *, #397, .T. ) ;
+#1512 = CIRCLE ( 'NONE', #2940, 0.1330000000000002000 ) ;
+#1513 = ORIENTED_EDGE ( 'NONE', *, *, #11, .T. ) ;
+#1514 = ORIENTED_EDGE ( 'NONE', *, *, #2977, .F. ) ;
+#1515 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000004500, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1516 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1517 = FACE_OUTER_BOUND ( 'NONE', #3035, .T. ) ;
+#1518 = AXIS2_PLACEMENT_3D ( 'NONE', #150, #610, #2037 ) ;
+#1519 = CARTESIAN_POINT ( 'NONE',  ( -2.028250000000000300, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1520 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, -0.2060549223287785900, 1.375000000000000000 ) ) ;
+#1521 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060131000, -0.3549102234176832500, 1.375000000000000000 ) ) ;
+#1522 = EDGE_CURVE ( 'NONE', #1993, #424, #2443, .T. ) ;
+#1523 = ORIENTED_EDGE ( 'NONE', *, *, #2083, .T. ) ;
+#1524 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1525 = AXIS2_PLACEMENT_3D ( 'NONE', #515, #1921, #781 ) ;
+#1526 = VECTOR ( 'NONE', #2120, 39.37007874015748100 ) ;
+#1527 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, 0.3310549223287783100, 1.174999999999999800 ) ) ;
+#1528 = CARTESIAN_POINT ( 'NONE',  ( 2.526213591511189200, -0.08733638245144770300, 0.8124999999999998900 ) ) ;
+#1529 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1530 = CIRCLE ( 'NONE', #1294, 0.4999999999999998300 ) ;
+#1531 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1532 = VECTOR ( 'NONE', #860, 39.37007874015748100 ) ;
+#1533 = VERTEX_POINT ( 'NONE', #2119 ) ;
+#1534 = B_SPLINE_SURFACE_WITH_KNOTS ( 'NONE', 3, 1, ( 
+ ( #1998, #116 ),
+ ( #1253, #2212 ),
+ ( #1762, #363 ),
+ ( #2907, #2661 ),
+ ( #1059, #2459 ),
+ ( #107, #1528 ),
+ ( #2929, #1735 ),
+ ( #97, #2225 ),
+ ( #2891, #785 ),
+ ( #1492, #1965 ) ),
+ .UNSPECIFIED., .F., .F., .F.,
+ ( 4, 1, 1, 1, 1, 1, 1, 4 ),
+ ( 2, 2 ),
+ ( 0.1804171047776078100, 0.2574214255684045300, 0.3271167815832054000, 0.3787956272272490800, 0.4753932694299508000, 0.5595206077257001100, 0.6412861705332345600, 0.6905092016411746900 ),
+ ( 0.0000000000000000000, 1.000000000000000000 ),
+ .UNSPECIFIED. ) ;
+#1535 = LINE ( 'NONE', #1112, #1206 ) ;
+#1536 = VECTOR ( 'NONE', #1693, 39.37007874015748100 ) ;
+#1537 = ORIENTED_EDGE ( 'NONE', *, *, #1552, .T. ) ;
+#1538 = EDGE_CURVE ( 'NONE', #1357, #2702, #1977, .T. ) ;
+#1539 = EDGE_LOOP ( 'NONE', ( #592, #977 ) ) ;
+#1540 = AXIS2_PLACEMENT_3D ( 'NONE', #197, #1144, #2993 ) ;
+#1541 = EDGE_CURVE ( 'NONE', #2405, #2296, #1936, .T. ) ;
+#1542 = ORIENTED_EDGE ( 'NONE', *, *, #2623, .T. ) ;
+#1543 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1544 = FACE_OUTER_BOUND ( 'NONE', #365, .T. ) ;
+#1545 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1546 = ORIENTED_EDGE ( 'NONE', *, *, #1967, .T. ) ;
+#1547 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#1548 = VERTEX_POINT ( 'NONE', #938 ) ;
+#1549 = CARTESIAN_POINT ( 'NONE',  ( -2.028250000000000300, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1550 = ORIENTED_EDGE ( 'NONE', *, *, #1270, .F. ) ;
+#1551 = ORIENTED_EDGE ( 'NONE', *, *, #1541, .F. ) ;
+#1552 = EDGE_CURVE ( 'NONE', #2613, #2650, #1819, .T. ) ;
+#1553 = CARTESIAN_POINT ( 'NONE',  ( 1.346749999999999700, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1554 = LINE ( 'NONE', #124, #1140 ) ;
+#1555 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1556 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#1557 = AXIS2_PLACEMENT_3D ( 'NONE', #1906, #942, #2327 ) ;
+#1558 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1559 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.6875000000000001100, 1.000000000000000000 ) ) ;
+#1560 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1561 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, 0.6250000000000000000, 1.375000000000000000 ) ) ;
+#1562 = ORIENTED_EDGE ( 'NONE', *, *, #707, .F. ) ;
+#1563 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1564 = VECTOR ( 'NONE', #2562, 39.37007874015748100 ) ;
+#1565 = ORIENTED_EDGE ( 'NONE', *, *, #2623, .F. ) ;
+#1566 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, 0.3310549223287783100, 1.174999999999999800 ) ) ;
+#1567 = LINE ( 'NONE', #900, #87 ) ;
+#1568 = ORIENTED_EDGE ( 'NONE', *, *, #1541, .T. ) ;
+#1569 = AXIS2_PLACEMENT_3D ( 'NONE', #523, #1963, #63 ) ;
+#1570 = FACE_OUTER_BOUND ( 'NONE', #2955, .T. ) ;
+#1571 = ORIENTED_EDGE ( 'NONE', *, *, #2010, .T. ) ;
+#1572 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1573 = VECTOR ( 'NONE', #586, 39.37007874015748100 ) ;
+#1574 = ORIENTED_EDGE ( 'NONE', *, *, #971, .T. ) ;
+#1575 = ORIENTED_EDGE ( 'NONE', *, *, #2996, .F. ) ;
+#1576 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1577 = CIRCLE ( 'NONE', #2328, 0.2187499999999999400 ) ;
+#1578 = PRODUCT ( 'featuretype', 'featuretype', '', ( #304 ) ) ;
+#1579 = ORIENTED_EDGE ( 'NONE', *, *, #2467, .T. ) ;
+#1580 = ORIENTED_EDGE ( 'NONE', *, *, #1917, .F. ) ;
+#1581 = ORIENTED_EDGE ( 'NONE', *, *, #1142, .F. ) ;
+#1582 = EDGE_CURVE ( 'NONE', #1984, #435, #580, .T. ) ;
+#1583 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1584 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -0.6875000000000003300, 1.000000000000000000 ) ) ;
+#1585 = FACE_OUTER_BOUND ( 'NONE', #1857, .T. ) ;
+#1586 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 0.8125000000000000000 ) ) ;
+#1587 = ADVANCED_FACE ( 'NONE', ( #1570 ), #1342, .F. ) ;
+#1588 = EDGE_CURVE ( 'NONE', #2105, #1995, #1204, .T. ) ;
+#1589 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1590 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999996600, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1591 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.6875000000000001100, 0.8125000000000000000 ) ) ;
+#1592 = CARTESIAN_POINT ( 'NONE',  ( -2.465749999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1593 = EDGE_CURVE ( 'NONE', #2265, #2782, #280, .T. ) ;
+#1594 = AXIS2_PLACEMENT_3D ( 'NONE', #2069, #899, #2877 ) ;
+#1595 = EDGE_CURVE ( 'NONE', #680, #1398, #322, .T. ) ;
+#1596 = EDGE_LOOP ( 'NONE', ( #202, #1404 ) ) ;
+#1597 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #966, 'distance_accuracy_value', 'NONE');
+#1598 = DIRECTION ( 'NONE',  ( 6.481953218662490300E-017, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1599 = DIRECTION ( 'NONE',  ( 6.481953218662490300E-017, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1600 = CARTESIAN_POINT ( 'NONE',  ( -2.465750000000000300, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1601 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -1.294972880571175400E-016, 0.0000000000000000000 ) ) ;
+#1602 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1603 = LINE ( 'NONE', #1312, #318 ) ;
+#1604 = ADVANCED_FACE ( 'NONE', ( #2172 ), #1687, .F. ) ;
+#1605 = FACE_BOUND ( 'NONE', #2515, .T. ) ;
+#1606 = ORIENTED_EDGE ( 'NONE', *, *, #743, .F. ) ;
+#1607 = VECTOR ( 'NONE', #640, 39.37007874015748100 ) ;
+#1608 = FACE_BOUND ( 'NONE', #2667, .T. ) ;
+#1609 = EDGE_CURVE ( 'NONE', #788, #2596, #2745, .T. ) ;
+#1610 = ORIENTED_EDGE ( 'NONE', *, *, #1494, .F. ) ;
+#1611 = EDGE_LOOP ( 'NONE', ( #774, #1121, #1579, #1943 ) ) ;
+#1612 = ORIENTED_EDGE ( 'NONE', *, *, #419, .F. ) ;
+#1613 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1614 = LINE ( 'NONE', #1491, #292 ) ;
+#1615 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 1.000000000000000000 ) ) ;
+#1616 = AXIS2_PLACEMENT_3D ( 'NONE', #700, #2106, #635 ) ;
+#1617 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1618 = ORIENTED_EDGE ( 'NONE', *, *, #1640, .F. ) ;
+#1619 = EDGE_LOOP ( 'NONE', ( #1152, #2293, #2489, #585 ) ) ;
+#1620 = ORIENTED_EDGE ( 'NONE', *, *, #1279, .T. ) ;
+#1621 = PLANE ( 'NONE',  #814 ) ;
+#1622 = ADVANCED_FACE ( 'NONE', ( #507 ), #1371, .T. ) ;
+#1623 = EDGE_CURVE ( 'NONE', #59, #2266, #2135, .T. ) ;
+#1624 = LINE ( 'NONE', #2583, #183 ) ;
+#1625 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.174999999999999800 ) ) ;
+#1626 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1627 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1628 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1629 = VECTOR ( 'NONE', #343, 39.37007874015748100 ) ;
+#1630 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1631 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#1632 = AXIS2_PLACEMENT_3D ( 'NONE', #313, #999, #2428 ) ;
+#1633 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1634 = PLANE ( 'NONE',  #69 ) ;
+#1635 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1636 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1637 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #2499 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #1188, #2828, #1421 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
+#1638 = ADVANCED_FACE ( 'NONE', ( #1855 ), #223, .F. ) ;
+#1639 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1640 = EDGE_CURVE ( 'NONE', #691, #2409, #2917, .T. ) ;
+#1641 = VERTEX_POINT ( 'NONE', #2539 ) ;
+#1642 = ORIENTED_EDGE ( 'NONE', *, *, #2893, .T. ) ;
+#1643 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1644 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, 0.2060549223287782800, 1.375000000000000000 ) ) ;
+#1645 = VECTOR ( 'NONE', #391, 39.37007874015748100 ) ;
+#1646 = ORIENTED_EDGE ( 'NONE', *, *, #1839, .T. ) ;
+#1647 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1648 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1649 = FACE_OUTER_BOUND ( 'NONE', #2823, .T. ) ;
+#1650 = VERTEX_POINT ( 'NONE', #1156 ) ;
+#1651 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 0.5000000000000000000 ) ) ;
+#1652 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1653 = FACE_OUTER_BOUND ( 'NONE', #1020, .T. ) ;
+#1654 = VERTEX_POINT ( 'NONE', #2110 ) ;
+#1655 = ORIENTED_EDGE ( 'NONE', *, *, #1753, .F. ) ;
+#1656 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1657 = ORIENTED_EDGE ( 'NONE', *, *, #793, .T. ) ;
+#1658 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1659 = EDGE_CURVE ( 'NONE', #2589, #2557, #426, .T. ) ;
+#1660 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1661 = VECTOR ( 'NONE', #1563, 39.37007874015748100 ) ;
+#1662 = ADVANCED_FACE ( 'NONE', ( #200 ), #908, .F. ) ;
+#1663 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1664 = ORIENTED_EDGE ( 'NONE', *, *, #1690, .F. ) ;
+#1665 = EDGE_CURVE ( 'NONE', #2808, #1398, #2551, .T. ) ;
+#1666 = EDGE_LOOP ( 'NONE', ( #1310, #2350, #1902, #2646 ) ) ;
+#1667 = FACE_OUTER_BOUND ( 'NONE', #2982, .T. ) ;
+#1668 = AXIS2_PLACEMENT_3D ( 'NONE', #1057, #1309, #2224 ) ;
+#1669 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979654000, -0.5625000000000001100, 0.8125000000000000000 ) ) ;
+#1670 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1671 = COLOUR_RGB ( '',0.7921568627450980000, 0.8196078431372548800, 0.9333333333333333500 ) ;
+#1672 = CARTESIAN_POINT ( 'NONE',  ( 1.750000000000000200, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#1673 = ADVANCED_FACE ( 'NONE', ( #727 ), #445, .F. ) ;
+#1674 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1675 = CARTESIAN_POINT ( 'NONE',  ( -0.1300000000000005900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1676 = FILL_AREA_STYLE_COLOUR ( '', #1671 ) ;
+#1677 = AXIS2_PLACEMENT_3D ( 'NONE', #1147, #2835, #14 ) ;
+#1678 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1679 = EDGE_LOOP ( 'NONE', ( #2283, #2886 ) ) ;
+#1680 = AXIS2_PLACEMENT_3D ( 'NONE', #1811, #2943, #1558 ) ;
+#1681 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1682 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1683 = ORIENTED_EDGE ( 'NONE', *, *, #1832, .F. ) ;
+#1684 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1685 = VERTEX_POINT ( 'NONE', #660 ) ;
+#1686 = FACE_OUTER_BOUND ( 'NONE', #1666, .T. ) ;
+#1687 = CYLINDRICAL_SURFACE ( 'NONE', #73, 0.09999999999999989500 ) ;
+#1688 = ORIENTED_EDGE ( 'NONE', *, *, #114, .T. ) ;
+#1689 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026638100, -0.3549102234176832500, 1.375000000000000000 ) ) ;
+#1690 = EDGE_CURVE ( 'NONE', #2208, #161, #2848, .T. ) ;
+#1691 = FACE_OUTER_BOUND ( 'NONE', #731, .T. ) ;
+#1692 = ADVANCED_FACE ( 'NONE', ( #2513 ), #2095, .F. ) ;
+#1693 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1694 = VECTOR ( 'NONE', #2184, 39.37007874015748100 ) ;
+#1695 = VERTEX_POINT ( 'NONE', #2332 ) ;
+#1696 = ORIENTED_EDGE ( 'NONE', *, *, #1233, .F. ) ;
+#1697 = CYLINDRICAL_SURFACE ( 'NONE', #1011, 0.2187500000000000000 ) ;
+#1698 = EDGE_CURVE ( 'NONE', #542, #3029, #246, .T. ) ;
+#1699 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1700 = AXIS2_PLACEMENT_3D ( 'NONE', #117, #1772, #2994 ) ;
+#1701 = ORIENTED_EDGE ( 'NONE', *, *, #1440, .F. ) ;
+#1702 = EDGE_LOOP ( 'NONE', ( #1606, #1080 ) ) ;
+#1703 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1704 = EDGE_CURVE ( 'NONE', #161, #591, #127, .T. ) ;
+#1705 = AXIS2_PLACEMENT_3D ( 'NONE', #659, #508, #1111 ) ;
+#1706 = AXIS2_PLACEMENT_3D ( 'NONE', #2221, #1516, #1293 ) ;
+#1707 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1708 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1709 = CIRCLE ( 'NONE', #2121, 0.1330000000000004800 ) ;
+#1710 = LINE ( 'NONE', #2942, #858 ) ;
+#1711 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279700, -0.1318487067688303100, 1.174999999999999800 ) ) ;
+#1712 = CARTESIAN_POINT ( 'NONE',  ( -3.161825413516036900, -0.6875000000000003300, 0.5000000000000000000 ) ) ;
+#1713 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1714 = EDGE_CURVE ( 'NONE', #952, #441, #88, .T. ) ;
+#1715 = ORIENTED_EDGE ( 'NONE', *, *, #1365, .F. ) ;
+#1716 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1717 = EDGE_LOOP ( 'NONE', ( #1979, #2191, #2530, #403 ) ) ;
+#1718 = ADVANCED_FACE ( 'NONE', ( #1300 ), #1203, .F. ) ;
+#1719 = AXIS2_PLACEMENT_3D ( 'NONE', #2290, #2090, #1842 ) ;
+#1720 = CYLINDRICAL_SURFACE ( 'NONE', #1825, 0.2187499999999999400 ) ;
+#1721 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#1722 = FACE_BOUND ( 'NONE', #2276, .T. ) ;
+#1723 = ORIENTED_EDGE ( 'NONE', *, *, #1440, .T. ) ;
+#1724 = FACE_OUTER_BOUND ( 'NONE', #2118, .T. ) ;
+#1725 = DIRECTION ( 'NONE',  ( -1.986798540846736500E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1726 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1727 = CYLINDRICAL_SURFACE ( 'NONE', #987, 0.1330000000000002000 ) ;
+#1728 = ORIENTED_EDGE ( 'NONE', *, *, #2938, .T. ) ;
+#1729 = ORIENTED_EDGE ( 'NONE', *, *, #437, .F. ) ;
+#1730 = VERTEX_POINT ( 'NONE', #1441 ) ;
+#1731 = ORIENTED_EDGE ( 'NONE', *, *, #2807, .F. ) ;
+#1732 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1733 = FACE_OUTER_BOUND ( 'NONE', #2985, .T. ) ;
+#1734 = VERTEX_POINT ( 'NONE', #964 ) ;
+#1735 = CARTESIAN_POINT ( 'NONE',  ( 1.904415784228984400, -0.2020162695637367200, 0.8124999999999998900 ) ) ;
+#1736 = CYLINDRICAL_SURFACE ( 'NONE', #2384, 0.1249999999999999000 ) ;
+#1737 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1738 = AXIS2_PLACEMENT_3D ( 'NONE', #2161, #708, #976 ) ;
+#1739 = VECTOR ( 'NONE', #1626, 39.37007874015748100 ) ;
+#1740 = LINE ( 'NONE', #1798, #669 ) ;
+#1741 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1742 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 1.250000000000000000, 1.000000000000000000 ) ) ;
+#1743 = EDGE_CURVE ( 'NONE', #161, #645, #51, .T. ) ;
+#1744 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, 0.6874999999999996700, 1.000000000000000000 ) ) ;
+#1745 = ORIENTED_EDGE ( 'NONE', *, *, #2467, .F. ) ;
+#1746 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1748 = VERTEX_POINT ( 'NONE', #1145 ) ;
+#1747 = CARTESIAN_POINT ( 'NONE',  ( -2.465750000000000300, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1749 = PRESENTATION_STYLE_ASSIGNMENT (( #1193 ) ) ;
+#1750 = EDGE_LOOP ( 'NONE', ( #1655, #271, #2204, #2736 ) ) ;
+#1751 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1752 = FACE_OUTER_BOUND ( 'NONE', #191, .T. ) ;
+#1753 = EDGE_CURVE ( 'NONE', #1439, #2757, #2672, .T. ) ;
+#1754 = AXIS2_PLACEMENT_3D ( 'NONE', #1996, #620, #1784 ) ;
+#1755 = EDGE_CURVE ( 'NONE', #1128, #44, #760, .T. ) ;
+#1756 = FACE_OUTER_BOUND ( 'NONE', #2247, .T. ) ;
+#1757 = ORIENTED_EDGE ( 'NONE', *, *, #2462, .F. ) ;
+#1758 = VECTOR ( 'NONE', #492, 39.37007874015748100 ) ;
+#1759 = LINE ( 'NONE', #2752, #1861 ) ;
+#1760 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1761 = EDGE_LOOP ( 'NONE', ( #728, #1989, #1092, #2859 ) ) ;
+#1762 = CARTESIAN_POINT ( 'NONE',  ( 2.262952316657397900, 0.4790639956390647100, 0.6250000000000000000 ) ) ;
+#1763 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1764 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1765 = CYLINDRICAL_SURFACE ( 'NONE', #1706, 0.1330000000000003400 ) ;
+#1766 = ORIENTED_EDGE ( 'NONE', *, *, #854, .T. ) ;
+#1767 = ORIENTED_EDGE ( 'NONE', *, *, #2436, .T. ) ;
+#1768 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1769 = EDGE_CURVE ( 'NONE', #811, #366, #649, .T. ) ;
+#1770 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 0.6874999999999996700, 1.000000000000000000 ) ) ;
+#1771 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -0.6875000000000002200, 0.8125000000000000000 ) ) ;
+#1772 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1773 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #1868, #1246 ) ;
+#1774 = VECTOR ( 'NONE', #786, 39.37007874015748100 ) ;
+#1775 = AXIS2_PLACEMENT_3D ( 'NONE', #1400, #702, #1871 ) ;
+#1776 = CIRCLE ( 'NONE', #2641, 0.1250000000000000300 ) ;
+#1777 = PLANE ( 'NONE',  #2921 ) ;
+#1778 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1779 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1780 = EDGE_CURVE ( 'NONE', #2013, #2476, #2479, .T. ) ;
+#1781 = EDGE_LOOP ( 'NONE', ( #1914, #2664, #135, #1082, #1344, #1014, #1348, #78 ) ) ;
+#1782 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1783 = VERTEX_POINT ( 'NONE', #2144 ) ;
+#1784 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#1785 = VECTOR ( 'NONE', #624, 39.37007874015748100 ) ;
+#1786 = FACE_BOUND ( 'NONE', #843, .T. ) ;
+#1787 = VERTEX_POINT ( 'NONE', #27 ) ;
+#1788 = LINE ( 'NONE', #1387, #725 ) ;
+#1789 = VECTOR ( 'NONE', #1524, 39.37007874015748100 ) ;
+#1790 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1791 = ORIENTED_EDGE ( 'NONE', *, *, #753, .T. ) ;
+#1792 = ORIENTED_EDGE ( 'NONE', *, *, #1000, .T. ) ;
+#1793 = VERTEX_POINT ( 'NONE', #2360 ) ;
+#1794 = AXIS2_PLACEMENT_3D ( 'NONE', #1487, #67, #1726 ) ;
+#1795 = EDGE_CURVE ( 'NONE', #2849, #2509, #1269, .T. ) ;
+#1796 = EDGE_LOOP ( 'NONE', ( #1869, #2482, #1154, #1688, #501, #2774, #2308, #2125 ) ) ;
+#1797 = CARTESIAN_POINT ( 'NONE',  ( 2.426749360767359100, -0.4133649961027716100, 0.8125000000000001100 ) ) ;
+#1798 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000007500, -0.3967912631038053000, 0.6250000000000000000 ) ) ;
+#1799 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1800 = LINE ( 'NONE', #830, #3033 ) ;
+#1801 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#1802 = VERTEX_POINT ( 'NONE', #505 ) ;
+#1803 = ORIENTED_EDGE ( 'NONE', *, *, #2232, .T. ) ;
+#1804 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1805 = FACE_BOUND ( 'NONE', #1796, .T. ) ;
+#1806 = EDGE_CURVE ( 'NONE', #1968, #1354, #1086, .T. ) ;
+#1807 = DIRECTION ( 'NONE',  ( 0.7071067811865486800, -0.0000000000000000000, 0.7071067811865463500 ) ) ;
+#1808 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1809 = FACE_OUTER_BOUND ( 'NONE', #841, .T. ) ;
+#1810 = CARTESIAN_POINT ( 'NONE',  ( -0.2157500000000000500, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1811 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1812 = EDGE_CURVE ( 'NONE', #952, #2133, #465, .T. ) ;
+#1813 = AXIS2_PLACEMENT_3D ( 'NONE', #1572, #1808, #2043 ) ;
+#1814 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, 0.3310549223287783100, 1.375000000000000000 ) ) ;
+#1815 = ORIENTED_EDGE ( 'NONE', *, *, #2287, .F. ) ;
+#1816 = ORIENTED_EDGE ( 'NONE', *, *, #1623, .F. ) ;
+#1817 = VECTOR ( 'NONE', #673, 39.37007874015748100 ) ;
+#1818 = AXIS2_PLACEMENT_3D ( 'NONE', #1656, #2334, #935 ) ;
+#1819 = LINE ( 'NONE', #2356, #355 ) ;
+#1820 = ORIENTED_EDGE ( 'NONE', *, *, #2424, .F. ) ;
+#1821 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1822 = VECTOR ( 'NONE', #2362, 39.37007874015748100 ) ;
+#1823 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1824 = ORIENTED_EDGE ( 'NONE', *, *, #1055, .T. ) ;
+#1825 = AXIS2_PLACEMENT_3D ( 'NONE', #630, #2494, #2967 ) ;
+#1826 = LINE ( 'NONE', #988, #1694 ) ;
+#1827 = VERTEX_POINT ( 'NONE', #1561 ) ;
+#1828 = LINE ( 'NONE', #1521, #215 ) ;
+#1829 = ORIENTED_EDGE ( 'NONE', *, *, #336, .F. ) ;
+#1830 = ADVANCED_FACE ( 'NONE', ( #2340 ), #2740, .F. ) ;
+#1831 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.174999999999999800 ) ) ;
+#1832 = EDGE_CURVE ( 'NONE', #1333, #2409, #1017, .T. ) ;
+#1833 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 6.481953218662490300E-017, 0.0000000000000000000 ) ) ;
+#1834 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#1835 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, -0.3310549223287785900, 1.375000000000000000 ) ) ;
+#1836 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1837 = EDGE_LOOP ( 'NONE', ( #574, #136 ) ) ;
+#1838 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999900, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1839 = EDGE_CURVE ( 'NONE', #1508, #2152, #1160, .T. ) ;
+#1840 = AXIS2_PLACEMENT_3D ( 'NONE', #568, #1268, #1990 ) ;
+#1841 = FACE_OUTER_BOUND ( 'NONE', #2167, .T. ) ;
+#1842 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1843 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1844 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#1845 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1846 = EDGE_CURVE ( 'NONE', #3029, #542, #392, .T. ) ;
+#1847 = AXIS2_PLACEMENT_3D ( 'NONE', #1351, #1385, #497 ) ;
+#1848 = ADVANCED_FACE ( 'NONE', ( #2946 ), #1720, .F. ) ;
+#1849 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1850 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1851 = ORIENTED_EDGE ( 'NONE', *, *, #1501, .T. ) ;
+#1852 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1853 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#1854 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1855 = FACE_OUTER_BOUND ( 'NONE', #884, .T. ) ;
+#1856 = LINE ( 'NONE', #453, #2586 ) ;
+#1857 = EDGE_LOOP ( 'NONE', ( #1715, #1474, #2924, #560 ) ) ;
+#1858 = ORIENTED_EDGE ( 'NONE', *, *, #339, .F. ) ;
+#1859 = VECTOR ( 'NONE', #1276, 39.37007874015748100 ) ;
+#1860 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1861 = VECTOR ( 'NONE', #1110, 39.37007874015748100 ) ;
+#1862 = EDGE_CURVE ( 'NONE', #2989, #2502, #1235, .T. ) ;
+#1863 = EDGE_LOOP ( 'NONE', ( #546, #54, #1100, #356 ) ) ;
+#1864 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 0.0000000000000000000 ) ) ;
+#1865 = ORIENTED_EDGE ( 'NONE', *, *, #1659, .T. ) ;
+#1866 = ORIENTED_EDGE ( 'NONE', *, *, #2268, .T. ) ;
+#1867 = ADVANCED_FACE ( 'NONE', ( #540 ), #165, .F. ) ;
+#1868 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #1578, .NOT_KNOWN. ) ;
+#1869 = ORIENTED_EDGE ( 'NONE', *, *, #294, .F. ) ;
+#1870 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.3549102234176832500, 1.375000000000000000 ) ) ;
+#1871 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1872 = AXIS2_PLACEMENT_3D ( 'NONE', #177, #878, #428 ) ;
+#1873 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1874 = LINE ( 'NONE', #2660, #2243 ) ;
+#1875 = CARTESIAN_POINT ( 'NONE',  ( -0.2157500000000000800, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1876 = CARTESIAN_POINT ( 'NONE',  ( -0.9032500000000000000, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1877 = CIRCLE ( 'NONE', #1971, 0.1330000000000002600 ) ;
+#1878 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1879 = VECTOR ( 'NONE', #1844, 39.37007874015748100 ) ;
+#1880 = ORIENTED_EDGE ( 'NONE', *, *, #605, .T. ) ;
+#1881 = ADVANCED_FACE ( 'NONE', ( #767 ), #2277, .F. ) ;
+#1882 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1883 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1884 = AXIS2_PLACEMENT_3D ( 'NONE', #2696, #364, #2080 ) ;
+#1885 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060131000, -0.2549102234176833200, 1.174999999999999800 ) ) ;
+#1886 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1887 = ORIENTED_EDGE ( 'NONE', *, *, #275, .T. ) ;
+#1888 = FILL_AREA_STYLE ('',( #252 ) ) ;
+#1889 = ORIENTED_EDGE ( 'NONE', *, *, #1950, .F. ) ;
+#1890 = CARTESIAN_POINT ( 'NONE',  ( 2.254535607008163500, -0.1166834469789727500, 0.6250000000000000000 ) ) ;
+#1891 = FILL_AREA_STYLE ('',( #1676 ) ) ;
+#1892 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1893 = EDGE_CURVE ( 'NONE', #327, #803, #2269, .T. ) ;
+#1894 = ADVANCED_FACE ( 'NONE', ( #631, #1378 ), #882, .F. ) ;
+#1895 = VECTOR ( 'NONE', #462, 39.37007874015748100 ) ;
+#1896 = ORIENTED_EDGE ( 'NONE', *, *, #2871, .F. ) ;
+#1897 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1898 = LINE ( 'NONE', #463, #1526 ) ;
+#1899 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, -0.3310549223287785900, 1.375000000000000000 ) ) ;
+#1900 = CARTESIAN_POINT ( 'NONE',  ( -0.9032500000000000000, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#1901 = FACE_OUTER_BOUND ( 'NONE', #2840, .T. ) ;
+#1902 = ORIENTED_EDGE ( 'NONE', *, *, #2584, .F. ) ;
+#1903 = EDGE_LOOP ( 'NONE', ( #128, #1284, #1792, #1231 ) ) ;
+#1904 = CIRCLE ( 'NONE', #2214, 0.1330000000000002000 ) ;
+#1905 = ORIENTED_EDGE ( 'NONE', *, *, #479, .F. ) ;
+#1906 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026639400, -0.2549102234176833200, 1.174999999999999800 ) ) ;
+#1907 = ORIENTED_EDGE ( 'NONE', *, *, #2796, .T. ) ;
+#1908 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#1909 = VECTOR ( 'NONE', #357, 39.37007874015748100 ) ;
+#1910 = EDGE_LOOP ( 'NONE', ( #1696, #1581, #348, #2182, #1027, #509, #924, #1766 ) ) ;
+#1911 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#1912 = VECTOR ( 'NONE', #717, 39.37007874015748100 ) ;
+#1913 = EDGE_CURVE ( 'NONE', #2989, #883, #2321, .T. ) ;
+#1914 = ORIENTED_EDGE ( 'NONE', *, *, #1704, .F. ) ;
+#1915 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.375000000000000000 ) ) ;
+#1916 = AXIS2_PLACEMENT_3D ( 'NONE', #1484, #1003, #1958 ) ;
+#1917 = EDGE_CURVE ( 'NONE', #1355, #1065, #325, .T. ) ;
+#1918 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#1919 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1920 = ORIENTED_EDGE ( 'NONE', *, *, #1753, .T. ) ;
+#1921 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1922 = CIRCLE ( 'NONE', #1481, 0.4999999999999998300 ) ;
+#1923 = VERTEX_POINT ( 'NONE', #2763 ) ;
+#1924 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#1925 = CIRCLE ( 'NONE', #2592, 0.5000000000000001100 ) ;
+#1926 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#1927 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1928 = EDGE_CURVE ( 'NONE', #1654, #2720, #652, .T. ) ;
+#1929 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, 0.2500000000000000600, 0.8750000000000000000 ) ) ;
+#1930 = AXIS2_PLACEMENT_3D ( 'NONE', #193, #1122, #185 ) ;
+#1931 = ORIENTED_EDGE ( 'NONE', *, *, #974, .F. ) ;
+#1932 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1933 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1934 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#1935 = LINE ( 'NONE', #1311, #123 ) ;
+#1936 = CIRCLE ( 'NONE', #1031, 0.1947179912523943300 ) ;
+#1937 = LINE ( 'NONE', #2092, #281 ) ;
+#1938 = ORIENTED_EDGE ( 'NONE', *, *, #434, .T. ) ;
+#1939 = EDGE_CURVE ( 'NONE', #1435, #2757, #1535, .T. ) ;
+#1940 = ORIENTED_EDGE ( 'NONE', *, *, #2122, .F. ) ;
+#1941 = VECTOR ( 'NONE', #2569, 39.37007874015748100 ) ;
+#1942 = LINE ( 'NONE', #2399, #2951 ) ;
+#1943 = ORIENTED_EDGE ( 'NONE', *, *, #694, .F. ) ;
+#1944 = VERTEX_POINT ( 'NONE', #796 ) ;
+#1945 = ORIENTED_EDGE ( 'NONE', *, *, #1609, .F. ) ;
+#1946 = VERTEX_POINT ( 'NONE', #328 ) ;
+#1947 = ADVANCED_FACE ( 'NONE', ( #2138 ), #1029, .F. ) ;
+#1948 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
+#1949 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1950 = EDGE_CURVE ( 'NONE', #883, #2605, #1345, .T. ) ;
+#1951 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, -0.1875000000000003900, 1.000000000000000000 ) ) ;
+#1952 = AXIS2_PLACEMENT_3D ( 'NONE', #2379, #1678, #2831 ) ;
+#1953 = ORIENTED_EDGE ( 'NONE', *, *, #214, .F. ) ;
+#1954 = VECTOR ( 'NONE', #528, 39.37007874015748100 ) ;
+#1955 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.731847993664262700E-016, -0.0000000000000000000 ) ) ;
+#1956 = AXIS2_PLACEMENT_3D ( 'NONE', #1226, #1215, #276 ) ;
+#1957 = EDGE_CURVE ( 'NONE', #248, #1748, #1054, .T. ) ;
+#1958 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#1959 = VECTOR ( 'NONE', #2274, 39.37007874015748100 ) ;
+#1960 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250981300, 0.6874999999999998900, 0.5000000000000000000 ) ) ;
+#1961 = VECTOR ( 'NONE', #2762, 39.37007874015748100 ) ;
+#1962 = ORIENTED_EDGE ( 'NONE', *, *, #2325, .T. ) ;
+#1963 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1964 = CARTESIAN_POINT ( 'NONE',  ( 1.261000000000000300, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#1965 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999148911000, -0.3967912632963749900, 0.8124999999999998900 ) ) ;
+#1966 = PLANE ( 'NONE',  #2178 ) ;
+#1967 = EDGE_CURVE ( 'NONE', #2273, #203, #1384, .T. ) ;
+#1968 = VERTEX_POINT ( 'NONE', #2456 ) ;
+#1969 = ORIENTED_EDGE ( 'NONE', *, *, #862, .T. ) ;
+#1970 = EDGE_CURVE ( 'NONE', #44, #1128, #2747, .T. ) ;
+#1971 = AXIS2_PLACEMENT_3D ( 'NONE', #1444, #2793, #737 ) ;
+#1972 = EDGE_LOOP ( 'NONE', ( #1575, #1341, #1427, #394 ) ) ;
+#1973 = VECTOR ( 'NONE', #1617, 39.37007874015748100 ) ;
+#1974 = ORIENTED_EDGE ( 'NONE', *, *, #48, .T. ) ;
+#1975 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.6947179912523939700 ) ) ;
+#1976 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.073645923333782200E-016, 0.0000000000000000000 ) ) ;
+#1977 = CIRCLE ( 'NONE', #2252, 0.2187499999999999400 ) ;
+#1978 = EDGE_LOOP ( 'NONE', ( #1334, #1413, #588, #784, #253, #168, #1646, #2749 ) ) ;
+#1979 = ORIENTED_EDGE ( 'NONE', *, *, #367, .F. ) ;
+#1980 = LINE ( 'NONE', #230, #249 ) ;
+#1981 = ORIENTED_EDGE ( 'NONE', *, *, #808, .T. ) ;
+#1982 = ORIENTED_EDGE ( 'NONE', *, *, #2728, .F. ) ;
+#1983 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1984 = VERTEX_POINT ( 'NONE', #2685 ) ;
+#1985 = FACE_OUTER_BOUND ( 'NONE', #1052, .T. ) ;
+#1986 = ORIENTED_EDGE ( 'NONE', *, *, #419, .T. ) ;
+#1987 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060137200, 0.3549102234176832500, 1.174999999999999800 ) ) ;
+#1988 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#1989 = ORIENTED_EDGE ( 'NONE', *, *, #597, .F. ) ;
+#1990 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#1991 = AXIS2_PLACEMENT_3D ( 'NONE', #1669, #2550, #1854 ) ;
+#1992 = AXIS2_PLACEMENT_3D ( 'NONE', #2732, #638, #1352 ) ;
+#1993 = VERTEX_POINT ( 'NONE', #338 ) ;
+#1994 = LINE ( 'NONE', #34, #2572 ) ;
+#1995 = VERTEX_POINT ( 'NONE', #810 ) ;
+#1996 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 0.4999999999999996100 ) ) ;
+#1997 = LINE ( 'NONE', #2470, #751 ) ;
+#1998 = CARTESIAN_POINT ( 'NONE',  ( 2.500000003366624800, 0.4375503453205060200, 0.6250000000000000000 ) ) ;
+#1999 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2000 = EDGE_CURVE ( 'NONE', #2790, #1273, #1505, .T. ) ;
+#2001 = ORIENTED_EDGE ( 'NONE', *, *, #2952, .F. ) ;
+#2002 = EDGE_CURVE ( 'NONE', #1262, #250, #2305, .T. ) ;
+#2003 = AXIS2_PLACEMENT_3D ( 'NONE', #1988, #1046, #2695 ) ;
+#2004 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2005 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -0.6875000000000003300, 0.5000000000000000000 ) ) ;
+#2006 = VERTEX_POINT ( 'NONE', #2910 ) ;
+#2007 = LINE ( 'NONE', #1975, #2084 ) ;
+#2008 = EDGE_CURVE ( 'NONE', #1787, #1995, #839, .T. ) ;
+#2009 = AXIS2_PLACEMENT_3D ( 'NONE', #2297, #430, #2166 ) ;
+#2010 = EDGE_CURVE ( 'NONE', #175, #1730, #880, .T. ) ;
+#2011 = LINE ( 'NONE', #1105, #951 ) ;
+#2012 = LINE ( 'NONE', #683, #2947 ) ;
+#2013 = VERTEX_POINT ( 'NONE', #1519 ) ;
+#2014 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2015 = EDGE_LOOP ( 'NONE', ( #1448, #33, #2606, #1452 ) ) ;
+#2016 = FACE_OUTER_BOUND ( 'NONE', #2141, .T. ) ;
+#2017 = LINE ( 'NONE', #119, #359 ) ;
+#2018 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2019 = CARTESIAN_POINT ( 'NONE',  ( -1.255000000000000800, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2020 = ORIENTED_EDGE ( 'NONE', *, *, #2728, .T. ) ;
+#2021 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2022 = ORIENTED_EDGE ( 'NONE', *, *, #2222, .F. ) ;
+#2023 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 0.6875000000000000000, 1.000000000000000000 ) ) ;
+#2024 = EDGE_LOOP ( 'NONE', ( #1896, #829, #422, #665 ) ) ;
+#2025 = ORIENTED_EDGE ( 'NONE', *, *, #378, .F. ) ;
+#2026 = CYLINDRICAL_SURFACE ( 'NONE', #379, 0.1330000000000003400 ) ;
+#2027 = ORIENTED_EDGE ( 'NONE', *, *, #2797, .T. ) ;
+#2028 = CARTESIAN_POINT ( 'NONE',  ( 0.2217499999999998900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2029 = EDGE_CURVE ( 'NONE', #2382, #1424, #765, .T. ) ;
+#2030 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2031 = LINE ( 'NONE', #2365, #821 ) ;
+#2032 = AXIS2_PLACEMENT_3D ( 'NONE', #2507, #1589, #2542 ) ;
+#2033 = CARTESIAN_POINT ( 'NONE',  ( -0.1300000000000004500, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2034 = FACE_BOUND ( 'NONE', #770, .T. ) ;
+#2035 = ORIENTED_EDGE ( 'NONE', *, *, #2434, .T. ) ;
+#2036 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, 0.3310549223287783100, 1.375000000000000000 ) ) ;
+#2037 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2038 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#2039 = ORIENTED_EDGE ( 'NONE', *, *, #494, .T. ) ;
+#2040 = ORIENTED_EDGE ( 'NONE', *, *, #2008, .T. ) ;
+#2041 = AXIS2_PLACEMENT_3D ( 'NONE', #2111, #2333, #1628 ) ;
+#2042 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2043 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2044 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999996600, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2045 = DIRECTION ( 'NONE',  ( 9.621616303967501900E-017, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2046 = FACE_BOUND ( 'NONE', #1596, .T. ) ;
+#2047 = VERTEX_POINT ( 'NONE', #2820 ) ;
+#2048 = LINE ( 'NONE', #66, #163 ) ;
+#2049 = VERTEX_POINT ( 'NONE', #7 ) ;
+#2050 = VECTOR ( 'NONE', #2155, 39.37007874015748100 ) ;
+#2051 = CARTESIAN_POINT ( 'NONE',  ( -1.255000000000000300, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2052 = ORIENTED_EDGE ( 'NONE', *, *, #50, .T. ) ;
+#2053 = ORIENTED_EDGE ( 'NONE', *, *, #2837, .F. ) ;
+#2054 = CIRCLE ( 'NONE', #1525, 0.2187499999999999400 ) ;
+#2055 = ORIENTED_EDGE ( 'NONE', *, *, #1795, .T. ) ;
+#2056 = EDGE_LOOP ( 'NONE', ( #1015, #547, #1099, #769 ) ) ;
+#2057 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2058 = ORIENTED_EDGE ( 'NONE', *, *, #1588, .F. ) ;
+#2059 = EDGE_CURVE ( 'NONE', #2909, #2560, #1980, .T. ) ;
+#2060 = CARTESIAN_POINT ( 'NONE',  ( 2.426749360767337800, -0.4133649961027721600, 0.6250000000000000000 ) ) ;
+#2061 = CIRCLE ( 'NONE', #2735, 0.1330000000000002000 ) ;
+#2062 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2063 = ORIENTED_EDGE ( 'NONE', *, *, #2029, .T. ) ;
+#2064 = ORIENTED_EDGE ( 'NONE', *, *, #2436, .F. ) ;
+#2065 = ORIENTED_EDGE ( 'NONE', *, *, #1743, .F. ) ;
+#2066 = ORIENTED_EDGE ( 'NONE', *, *, #854, .F. ) ;
+#2067 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279400, 0.1318487067688303100, 1.174999999999999800 ) ) ;
+#2068 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, -1.250000000000000000, 0.4999999999999996700 ) ) ;
+#2069 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2070 = DIRECTION ( 'NONE',  ( 1.986798540846737300E-016, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2071 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#2072 = EDGE_CURVE ( 'NONE', #2857, #1508, #2176, .T. ) ;
+#2073 = AXIS2_PLACEMENT_3D ( 'NONE', #1782, #143, #380 ) ;
+#2074 = ADVANCED_FACE ( 'NONE', ( #2986 ), #2483, .F. ) ;
+#2075 = EDGE_CURVE ( 'NONE', #1316, #2419, #429, .T. ) ;
+#2076 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.2549102234176833200, 1.174999999999999800 ) ) ;
+#2077 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2078 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2079 = ORIENTED_EDGE ( 'NONE', *, *, #1917, .T. ) ;
+#2080 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2081 = ORIENTED_EDGE ( 'NONE', *, *, #2325, .F. ) ;
+#2082 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060131000, -0.2549102234176833200, 1.375000000000000000 ) ) ;
+#2083 = EDGE_CURVE ( 'NONE', #327, #2849, #55, .T. ) ;
+#2084 = VECTOR ( 'NONE', #2670, 39.37007874015748100 ) ;
+#2085 = ADVANCED_FACE ( 'NONE', ( #204 ), #2778, .F. ) ;
+#2086 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #2658 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #2581, #1408, #1187 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
+#2087 = VECTOR ( 'NONE', #905, 39.37007874015748100 ) ;
+#2088 = CYLINDRICAL_SURFACE ( 'NONE', #297, 0.1250000000000000300 ) ;
+#2089 = EDGE_LOOP ( 'NONE', ( #235, #795 ) ) ;
+#2090 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2091 = ORIENTED_EDGE ( 'NONE', *, *, #2577, .F. ) ;
+#2092 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 1.250000000000000000, 1.000000000000000000 ) ) ;
+#2093 = FACE_OUTER_BOUND ( 'NONE', #916, .T. ) ;
+#2094 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2095 = PLANE ( 'NONE',  #518 ) ;
+#2096 = AXIS2_PLACEMENT_3D ( 'NONE', #2546, #2802, #2070 ) ;
+#2097 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2098 = VECTOR ( 'NONE', #2537, 39.37007874015748100 ) ;
+#2099 = ORIENTED_EDGE ( 'NONE', *, *, #2310, .T. ) ;
+#2100 = ORIENTED_EDGE ( 'NONE', *, *, #2738, .F. ) ;
+#2101 = EDGE_LOOP ( 'NONE', ( #1940, #1428, #926, #2352 ) ) ;
+#2102 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2103 = ORIENTED_EDGE ( 'NONE', *, *, #634, .T. ) ;
+#2104 = ORIENTED_EDGE ( 'NONE', *, *, #50, .F. ) ;
+#2105 = VERTEX_POINT ( 'NONE', #1876 ) ;
+#2106 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2107 = EDGE_CURVE ( 'NONE', #371, #502, #91, .T. ) ;
+#2108 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999243017500, -0.3967912632750822400, 0.6250000000000000000 ) ) ;
+#2109 = EDGE_LOOP ( 'NONE', ( #1047, #514, #871, #1866, #764, #867 ) ) ;
+#2110 = CARTESIAN_POINT ( 'NONE',  ( 0.9092499999999998900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2111 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#2112 = ADVANCED_FACE ( 'NONE', ( #2704 ), #986, .F. ) ;
+#2113 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #264 );
+#2114 = EDGE_CURVE ( 'NONE', #2509, #803, #584, .T. ) ;
+#2115 = AXIS2_PLACEMENT_3D ( 'NONE', #36, #2622, #1703 ) ;
+#2116 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2117 = FACE_OUTER_BOUND ( 'NONE', #207, .T. ) ;
+#2118 = EDGE_LOOP ( 'NONE', ( #2315, #639 ) ) ;
+#2119 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026638100, -0.2549102234176833200, 1.174999999999999800 ) ) ;
+#2120 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.731847993664262700E-016, -0.0000000000000000000 ) ) ;
+#2121 = AXIS2_PLACEMENT_3D ( 'NONE', #1707, #521, #2173 ) ;
+#2122 = EDGE_CURVE ( 'NONE', #1793, #997, #1124, .T. ) ;
+#2123 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2124 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, 0.2060549223287783100, 1.174999999999999800 ) ) ;
+#2125 = ORIENTED_EDGE ( 'NONE', *, *, #3009, .T. ) ;
+#2126 = ADVANCED_FACE ( 'NONE', ( #2093 ), #1461, .F. ) ;
+#2127 = VERTEX_POINT ( 'NONE', #696 ) ;
+#2128 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2129 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2130 = CIRCLE ( 'NONE', #2493, 0.1330000000000002000 ) ;
+#2131 = ORIENTED_EDGE ( 'NONE', *, *, #2258, .F. ) ;
+#2132 = LINE ( 'NONE', #3026, #2410 ) ;
+#2133 = VERTEX_POINT ( 'NONE', #937 ) ;
+#2134 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2135 = LINE ( 'NONE', #931, #1455 ) ;
+#2136 = EDGE_CURVE ( 'NONE', #2657, #1243, #2675, .T. ) ;
+#2137 = CLOSED_SHELL ( 'NONE', ( #915, #2317, #1232, #1848, #2112, #1662, #2074, #2147, #1405, #8, #544, #2421, #3007, #2990, #1250, #464, #2351, #965, #182, #2391, #2192, #517, #1415, #3038, #2536, #2522, #2834, #778, #56, #2200, #2549, #310, #1638, #1830, #1190, #1175, #2570, #1894, #1356, #1447, #1622, #2804, #567, #2872, #251, #2126, #1138, #2636, #2604, #1947, #1673, #3017, #1119, #732, #2770, #72, #1867, #2822, #484, #192, #2860, #231, #267, #2580, #38, #2085, #1009, #436, #934, #2653, #529, #1367, #417, #1391, #1151, #1485, #716, #674, #2619, #2364, #300, #901, #2294, #2330, #994, #217, #946, #699, #2789, #1587, #1604, #451, #1692, #1718, #663, #1881 ) ) ;
+#2138 = FACE_OUTER_BOUND ( 'NONE', #1910, .T. ) ;
+#2139 = ORIENTED_EDGE ( 'NONE', *, *, #1450, .F. ) ;
+#2140 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #1597 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #966, #2597, #779 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
+#2141 = EDGE_LOOP ( 'NONE', ( #1473, #2249, #2709, #3030 ) ) ;
+#2142 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#2143 = EDGE_CURVE ( 'NONE', #729, #2382, #1426, .T. ) ;
+#2144 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#2145 = AXIS2_PLACEMENT_3D ( 'NONE', #382, #2255, #857 ) ;
+#2146 = CYLINDRICAL_SURFACE ( 'NONE', #907, 0.2187500000000000800 ) ;
+#2147 = ADVANCED_FACE ( 'NONE', ( #2635 ), #2445, .F. ) ;
+#2148 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2149 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2150 = ORIENTED_EDGE ( 'NONE', *, *, #2888, .T. ) ;
+#2151 = SURFACE_STYLE_USAGE ( .BOTH. , #1196 ) ;
+#2152 = VERTEX_POINT ( 'NONE', #2854 ) ;
+#2153 = VERTEX_POINT ( 'NONE', #1451 ) ;
+#2154 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2155 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2156 = ORIENTED_EDGE ( 'NONE', *, *, #1468, .T. ) ;
+#2157 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2158 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2159 = LINE ( 'NONE', #2609, #895 ) ;
+#2160 = AXIS2_PLACEMENT_3D ( 'NONE', #1515, #1321, #1070 ) ;
+#2161 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.4999999999999996700 ) ) ;
+#2162 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
+#2163 = AXIS2_PLACEMENT_3D ( 'NONE', #1322, #158, #2062 ) ;
+#2164 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999996600, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2165 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2166 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2167 = EDGE_LOOP ( 'NONE', ( #1701, #213, #549, #480 ) ) ;
+#2168 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2169 = EDGE_CURVE ( 'NONE', #2849, #327, #1904, .T. ) ;
+#2170 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, -0.2060549223287785900, 1.375000000000000000 ) ) ;
+#2171 = CIRCLE ( 'NONE', #145, 0.2187499999999999400 ) ;
+#2172 = FACE_OUTER_BOUND ( 'NONE', #1972, .T. ) ;
+#2173 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2174 = FACE_OUTER_BOUND ( 'NONE', #499, .T. ) ;
+#2175 = ORIENTED_EDGE ( 'NONE', *, *, #1064, .T. ) ;
+#2176 = CIRCLE ( 'NONE', #1952, 0.09999999999999992200 ) ;
+#2177 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2178 = AXIS2_PLACEMENT_3D ( 'NONE', #1960, #2892, #1725 ) ;
+#2179 = LINE ( 'NONE', #1586, #512 ) ;
+#2180 = EDGE_LOOP ( 'NONE', ( #1026, #1610, #2316, #2481 ) ) ;
+#2181 = ORIENTED_EDGE ( 'NONE', *, *, #1780, .F. ) ;
+#2182 = ORIENTED_EDGE ( 'NONE', *, *, #2258, .T. ) ;
+#2183 = FACE_BOUND ( 'NONE', #1702, .T. ) ;
+#2184 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2185 = EDGE_LOOP ( 'NONE', ( #650, #2187 ) ) ;
+#2186 = EDGE_CURVE ( 'NONE', #1827, #734, #510, .T. ) ;
+#2187 = ORIENTED_EDGE ( 'NONE', *, *, #2404, .T. ) ;
+#2188 = AXIS2_PLACEMENT_3D ( 'NONE', #1449, #511, #2387 ) ;
+#2189 = PLANE ( 'NONE',  #534 ) ;
+#2190 = ORIENTED_EDGE ( 'NONE', *, *, #1443, .T. ) ;
+#2191 = ORIENTED_EDGE ( 'NONE', *, *, #808, .F. ) ;
+#2192 = ADVANCED_FACE ( 'NONE', ( #2518 ), #2390, .F. ) ;
+#2193 = VECTOR ( 'NONE', #979, 39.37007874015748100 ) ;
+#2194 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2195 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, 0.3310549223287783100, 1.174999999999999800 ) ) ;
+#2196 = EDGE_CURVE ( 'NONE', #2006, #261, #2380, .T. ) ;
+#2197 = CARTESIAN_POINT ( 'NONE',  ( -1.255000000000000800, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2198 = ORIENTED_EDGE ( 'NONE', *, *, #2059, .T. ) ;
+#2199 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2200 = ADVANCED_FACE ( 'NONE', ( #2016 ), #1488, .F. ) ;
+#2201 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2202 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.3310549223287785900, 1.174999999999999800 ) ) ;
+#2203 = VECTOR ( 'NONE', #1843, 39.37007874015748100 ) ;
+#2204 = ORIENTED_EDGE ( 'NONE', *, *, #1012, .T. ) ;
+#2205 = LINE ( 'NONE', #431, #873 ) ;
+#2206 = ORIENTED_EDGE ( 'NONE', *, *, #1588, .T. ) ;
+#2207 = CIRCLE ( 'NONE', #2073, 0.1330000000000005100 ) ;
+#2208 = VERTEX_POINT ( 'NONE', #43 ) ;
+#2209 = VERTEX_POINT ( 'NONE', #2403 ) ;
+#2210 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2211 = ORIENTED_EDGE ( 'NONE', *, *, #2287, .T. ) ;
+#2212 = CARTESIAN_POINT ( 'NONE',  ( 2.405623984976974100, 0.4624496049483496400, 0.8124999999999998900 ) ) ;
+#2213 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2214 = AXIS2_PLACEMENT_3D ( 'NONE', #2420, #1210, #270 ) ;
+#2215 = FACE_OUTER_BOUND ( 'NONE', #1420, .T. ) ;
+#2216 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, -0.6875000000000003300, 0.5000000000000000000 ) ) ;
+#2217 = ORIENTED_EDGE ( 'NONE', *, *, #2186, .F. ) ;
+#2218 = ORIENTED_EDGE ( 'NONE', *, *, #1482, .F. ) ;
+#2219 = EDGE_LOOP ( 'NONE', ( #2375, #2368 ) ) ;
+#2220 = CARTESIAN_POINT ( 'NONE',  ( -2.380000000000000800, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2221 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2222 = EDGE_CURVE ( 'NONE', #1533, #1923, #1274, .T. ) ;
+#2223 = FACE_OUTER_BOUND ( 'NONE', #2626, .T. ) ;
+#2224 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2225 = CARTESIAN_POINT ( 'NONE',  ( 2.227291815900829300, -0.4188565208705536900, 0.8124999999999998900 ) ) ;
+#2226 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2227 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2228 = ORIENTED_EDGE ( 'NONE', *, *, #229, .T. ) ;
+#2229 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2230 = EDGE_CURVE ( 'NONE', #2702, #1357, #2054, .T. ) ;
+#2231 = AXIS2_PLACEMENT_3D ( 'NONE', #3032, #3008, #936 ) ;
+#2232 = EDGE_CURVE ( 'NONE', #2209, #2049, #130, .T. ) ;
+#2233 = VERTEX_POINT ( 'NONE', #1477 ) ;
+#2234 = FACE_OUTER_BOUND ( 'NONE', #1434, .T. ) ;
+#2235 = VECTOR ( 'NONE', #921, 39.37007874015748100 ) ;
+#2236 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2237 = ORIENTED_EDGE ( 'NONE', *, *, #1957, .F. ) ;
+#2238 = LINE ( 'NONE', #139, #1607 ) ;
+#2239 = LINE ( 'NONE', #272, #1277 ) ;
+#2240 = ORIENTED_EDGE ( 'NONE', *, *, #1297, .F. ) ;
+#2241 = EDGE_LOOP ( 'NONE', ( #992, #1723, #2100, #1272, #1657 ) ) ;
+#2242 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.2549102234176833800, 1.375000000000000000 ) ) ;
+#2243 = VECTOR ( 'NONE', #1016, 39.37007874015748100 ) ;
+#2244 = EDGE_CURVE ( 'NONE', #1065, #1355, #802, .T. ) ;
+#2245 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2246 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.3052820087476053000 ) ) ;
+#2247 = EDGE_LOOP ( 'NONE', ( #1214, #1824 ) ) ;
+#2248 = PLANE ( 'NONE',  #2339 ) ;
+#2249 = ORIENTED_EDGE ( 'NONE', *, *, #112, .T. ) ;
+#2250 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'part', '', ( #1578 ) ) ;
+#2251 = ORIENTED_EDGE ( 'NONE', *, *, #166, .T. ) ;
+#2252 = AXIS2_PLACEMENT_3D ( 'NONE', #2809, #460, #1414 ) ;
+#2253 = CIRCLE ( 'NONE', #2288, 0.09999999999999992200 ) ;
+#2254 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2255 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2256 = FACE_OUTER_BOUND ( 'NONE', #582, .T. ) ;
+#2257 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2258 = EDGE_CURVE ( 'NONE', #2133, #2349, #2920, .T. ) ;
+#2259 = PLANE ( 'NONE',  #1102 ) ;
+#2260 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106012700, 0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2261 = AXIS2_PLACEMENT_3D ( 'NONE', #1411, #1180, #1660 ) ;
+#2262 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2263 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2264 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -9.621616303967501900E-017, 0.0000000000000000000 ) ) ;
+#2265 = VERTEX_POINT ( 'NONE', #283 ) ;
+#2266 = VERTEX_POINT ( 'NONE', #2197 ) ;
+#2267 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.073645923333782200E-016, -0.0000000000000000000 ) ) ;
+#2268 = EDGE_CURVE ( 'NONE', #548, #1497, #1305, .T. ) ;
+#2269 = LINE ( 'NONE', #2980, #1785 ) ;
+#2270 = ORIENTED_EDGE ( 'NONE', *, *, #2751, .T. ) ;
+#2271 = CIRCLE ( 'NONE', #569, 0.1250000000000000300 ) ;
+#2272 = CIRCLE ( 'NONE', #1136, 0.1250000000000000300 ) ;
+#2273 = VERTEX_POINT ( 'NONE', #557 ) ;
+#2274 = DIRECTION ( 'NONE',  ( 1.986798540846736800E-016, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2275 = ORIENTED_EDGE ( 'NONE', *, *, #2114, .F. ) ;
+#2276 = EDGE_LOOP ( 'NONE', ( #1503, #2643 ) ) ;
+#2277 = PLANE ( 'NONE',  #2163 ) ;
+#2278 = VERTEX_POINT ( 'NONE', #2958 ) ;
+#2279 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2280 = FACE_OUTER_BOUND ( 'NONE', #2024, .T. ) ;
+#2281 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, 0.1874999999999997500, 1.000000000000000000 ) ) ;
+#2282 = VERTEX_POINT ( 'NONE', #1929 ) ;
+#2283 = ORIENTED_EDGE ( 'NONE', *, *, #6, .T. ) ;
+#2284 = EDGE_CURVE ( 'NONE', #811, #2278, #2238, .T. ) ;
+#2285 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2286 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2287 = EDGE_CURVE ( 'NONE', #2678, #2889, #684, .T. ) ;
+#2288 = AXIS2_PLACEMENT_3D ( 'NONE', #2082, #670, #2318 ) ;
+#2289 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, 0.3310549223287783100, 1.375000000000000000 ) ) ;
+#2290 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2291 = CARTESIAN_POINT ( 'NONE',  ( 2.227291815932477700, -0.4188565208918088600, 0.6250000000000000000 ) ) ;
+#2292 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.174999999999999800 ) ) ;
+#2293 = ORIENTED_EDGE ( 'NONE', *, *, #2845, .F. ) ;
+#2294 = ADVANCED_FACE ( 'NONE', ( #1691 ), #1966, .F. ) ;
+#2295 = AXIS2_PLACEMENT_3D ( 'NONE', #939, #2358, #1392 ) ;
+#2296 = VERTEX_POINT ( 'NONE', #2876 ) ;
+#2297 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 0.5000000000000000000 ) ) ;
+#2298 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2299 = AXIS2_PLACEMENT_3D ( 'NONE', #2965, #1033, #2366 ) ;
+#2300 = DIRECTION ( 'NONE',  ( 1.294972880571175600E-016, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2301 = ORIENTED_EDGE ( 'NONE', *, *, #1395, .F. ) ;
+#2302 = CIRCLE ( 'NONE', #903, 0.1250000000000000300 ) ;
+#2303 = VECTOR ( 'NONE', #405, 39.37007874015748100 ) ;
+#2304 = ORIENTED_EDGE ( 'NONE', *, *, #214, .T. ) ;
+#2305 = LINE ( 'NONE', #2665, #1859 ) ;
+#2306 = FACE_BOUND ( 'NONE', #94, .T. ) ;
+#2307 = ORIENTED_EDGE ( 'NONE', *, *, #2655, .F. ) ;
+#2308 = ORIENTED_EDGE ( 'NONE', *, *, #2232, .F. ) ;
+#2309 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2310 = EDGE_CURVE ( 'NONE', #1783, #2650, #1266, .T. ) ;
+#2311 = CARTESIAN_POINT ( 'NONE',  ( 1.880274082640043300, 0.1643791425749027100, 0.6250000000000000000 ) ) ;
+#2312 = LINE ( 'NONE', #1164, #438 ) ;
+#2313 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2314 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2315 = ORIENTED_EDGE ( 'NONE', *, *, #1225, .T. ) ;
+#2316 = ORIENTED_EDGE ( 'NONE', *, *, #2491, .F. ) ;
+#2317 = ADVANCED_FACE ( 'NONE', ( #169 ), #1419, .F. ) ;
+#2318 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2319 = EDGE_CURVE ( 'NONE', #441, #2444, #646, .T. ) ;
+#2320 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2321 = LINE ( 'NONE', #1592, #334 ) ;
+#2322 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2323 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, -0.1318487067688302900, 1.375000000000000000 ) ) ;
+#2324 = LINE ( 'NONE', #187, #2726 ) ;
+#2325 = EDGE_CURVE ( 'NONE', #1354, #2610, #2815, .T. ) ;
+#2326 = AXIS2_PLACEMENT_3D ( 'NONE', #2625, #39, #2158 ) ;
+#2327 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2328 = AXIS2_PLACEMENT_3D ( 'NONE', #1332, #2969, #1804 ) ;
+#2329 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2330 = ADVANCED_FACE ( 'NONE', ( #2234 ), #1050, .F. ) ;
+#2331 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2332 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979654000, -0.6875000000000001100, 1.000000000000000000 ) ) ;
+#2333 = DIRECTION ( 'NONE',  ( 1.000000000000000000, -0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2334 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2335 = ORIENTED_EDGE ( 'NONE', *, *, #112, .F. ) ;
+#2336 = ORIENTED_EDGE ( 'NONE', *, *, #3022, .T. ) ;
+#2337 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, 0.6250000000000000000, 1.000000000000000000 ) ) ;
+#2338 = EDGE_CURVE ( 'NONE', #120, #655, #2048, .T. ) ;
+#2339 = AXIS2_PLACEMENT_3D ( 'NONE', #2710, #848, #2285 ) ;
+#2340 = FACE_OUTER_BOUND ( 'NONE', #247, .T. ) ;
+#2341 = FACE_OUTER_BOUND ( 'NONE', #184, .T. ) ;
+#2342 = EDGE_LOOP ( 'NONE', ( #1931, #2348, #2240, #2534 ) ) ;
+#2343 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, -1.250000000000000000, 0.4999999999999996700 ) ) ;
+#2344 = FACE_OUTER_BOUND ( 'NONE', #2180, .T. ) ;
+#2345 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2346 = AXIS2_PLACEMENT_3D ( 'NONE', #960, #1182, #3034 ) ;
+#2347 = LINE ( 'NONE', #285, #1536 ) ;
+#2348 = ORIENTED_EDGE ( 'NONE', *, *, #862, .F. ) ;
+#2349 = VERTEX_POINT ( 'NONE', #780 ) ;
+#2350 = ORIENTED_EDGE ( 'NONE', *, *, #1216, .F. ) ;
+#2351 = ADVANCED_FACE ( 'NONE', ( #2588 ), #1202, .F. ) ;
+#2352 = ORIENTED_EDGE ( 'NONE', *, *, #1327, .F. ) ;
+#2353 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2354 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2355 = LINE ( 'NONE', #626, #1249 ) ;
+#2356 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, -0.6875000000000001100, 1.000000000000000000 ) ) ;
+#2357 = ORIENTED_EDGE ( 'NONE', *, *, #155, .T. ) ;
+#2358 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2359 = VERTEX_POINT ( 'NONE', #345 ) ;
+#2360 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.6947179912523939700 ) ) ;
+#2361 = CIRCLE ( 'NONE', #2326, 0.2187499999999999400 ) ;
+#2362 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2363 = LINE ( 'NONE', #1987, #2573 ) ;
+#2364 = ADVANCED_FACE ( 'NONE', ( #504 ), #2662, .F. ) ;
+#2365 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106012700, 0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2366 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2367 = EDGE_CURVE ( 'NONE', #2669, #1275, #354, .T. ) ;
+#2368 = ORIENTED_EDGE ( 'NONE', *, *, #100, .T. ) ;
+#2369 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2370 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, -0.2060549223287785900, 1.375000000000000000 ) ) ;
+#2371 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2372 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2373 = ORIENTED_EDGE ( 'NONE', *, *, #958, .T. ) ;
+#2374 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 0.6875000000000000000, 1.000000000000000000 ) ) ;
+#2375 = ORIENTED_EDGE ( 'NONE', *, *, #1780, .T. ) ;
+#2376 = CIRCLE ( 'NONE', #1495, 0.2187499999999999400 ) ;
+#2377 = LINE ( 'NONE', #2791, #2303 ) ;
+#2378 = ORIENTED_EDGE ( 'NONE', *, *, #2893, .F. ) ;
+#2379 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060131000, -0.2549102234176833200, 1.174999999999999800 ) ) ;
+#2380 = CIRCLE ( 'NONE', #2115, 0.2187499999999999400 ) ;
+#2381 = VECTOR ( 'NONE', #1319, 39.37007874015748100 ) ;
+#2382 = VERTEX_POINT ( 'NONE', #1247 ) ;
+#2383 = EDGE_CURVE ( 'NONE', #2476, #220, #577, .T. ) ;
+#2384 = AXIS2_PLACEMENT_3D ( 'NONE', #2490, #386, #2458 ) ;
+#2385 = AXIS2_PLACEMENT_3D ( 'NONE', #2725, #2279, #142 ) ;
+#2386 = LINE ( 'NONE', #2033, #849 ) ;
+#2387 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2388 = ORIENTED_EDGE ( 'NONE', *, *, #1769, .F. ) ;
+#2389 = EDGE_LOOP ( 'NONE', ( #2058, #372 ) ) ;
+#2390 = PLANE ( 'NONE',  #1632 ) ;
+#2391 = ADVANCED_FACE ( 'NONE', ( #617, #949 ), #2900, .F. ) ;
+#2392 = PLANE ( 'NONE',  #496 ) ;
+#2393 = CIRCLE ( 'NONE', #2905, 0.1330000000000004800 ) ;
+#2394 = EDGE_LOOP ( 'NONE', ( #2417, #86, #2677, #2821 ) ) ;
+#2395 = EDGE_CURVE ( 'NONE', #2720, #1654, #982, .T. ) ;
+#2396 = LINE ( 'NONE', #1135, #1222 ) ;
+#2397 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#2398 = AXIS2_PLACEMENT_3D ( 'NONE', #2719, #1068, #2014 ) ;
+#2399 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, 1.250000000000000000, 0.3052820087476053000 ) ) ;
+#2400 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
+#2401 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2402 = ORIENTED_EDGE ( 'NONE', *, *, #1862, .F. ) ;
+#2403 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026638100, -0.2549102234176833200, 1.375000000000000000 ) ) ;
+#2404 = EDGE_CURVE ( 'NONE', #326, #2808, #1118, .T. ) ;
+#2405 = VERTEX_POINT ( 'NONE', #819 ) ;
+#2406 = VECTOR ( 'NONE', #2157, 39.37007874015748100 ) ;
+#2407 = CARTESIAN_POINT ( 'NONE',  ( -0.2157500000000000300, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2408 = LINE ( 'NONE', #196, #2203 ) ;
+#2409 = VERTEX_POINT ( 'NONE', #2005 ) ;
+#2410 = VECTOR ( 'NONE', #1873, 39.37007874015748100 ) ;
+#2411 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2412 = EDGE_CURVE ( 'NONE', #1787, #1734, #2171, .T. ) ;
+#2413 = CARTESIAN_POINT ( 'NONE',  ( 1.346749999999999700, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2414 = AXIS2_PLACEMENT_3D ( 'NONE', #1911, #2354, #2602 ) ;
+#2415 = LINE ( 'NONE', #1566, #1909 ) ;
+#2416 = ORIENTED_EDGE ( 'NONE', *, *, #1839, .F. ) ;
+#2417 = ORIENTED_EDGE ( 'NONE', *, *, #897, .F. ) ;
+#2418 = ORIENTED_EDGE ( 'NONE', *, *, #637, .F. ) ;
+#2419 = VERTEX_POINT ( 'NONE', #126 ) ;
+#2420 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2421 = ADVANCED_FACE ( 'NONE', ( #1752 ), #2512, .F. ) ;
+#2422 = FACE_OUTER_BOUND ( 'NONE', #1177, .T. ) ;
+#2423 = CARTESIAN_POINT ( 'NONE',  ( 0.9949999999999996600, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2424 = EDGE_CURVE ( 'NONE', #791, #2208, #2302, .T. ) ;
+#2425 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2426 = ORIENTED_EDGE ( 'NONE', *, *, #1318, .F. ) ;
+#2427 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2428 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2429 = CYLINDRICAL_SURFACE ( 'NONE', #1956, 0.1330000000000002000 ) ;
+#2430 = LINE ( 'NONE', #666, #1961 ) ;
+#2431 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.073645923333782200E-016, -0.0000000000000000000 ) ) ;
+#2432 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -2.731847993664262700E-016, 0.0000000000000000000 ) ) ;
+#2433 = DIRECTION ( 'NONE',  ( -2.073645923333782200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2434 = EDGE_CURVE ( 'NONE', #1316, #1028, #2844, .T. ) ;
+#2435 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 0.8125000000000000000 ) ) ;
+#2436 = EDGE_CURVE ( 'NONE', #209, #2657, #1567, .T. ) ;
+#2437 = AXIS2_PLACEMENT_3D ( 'NONE', #2645, #278, #2628 ) ;
+#2438 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2439 = VERTEX_POINT ( 'NONE', #2540 ) ;
+#2440 = PLANE ( 'NONE',  #750 ) ;
+#2441 = ORIENTED_EDGE ( 'NONE', *, *, #2075, .T. ) ;
+#2442 = LINE ( 'NONE', #234, #2883 ) ;
+#2443 = CIRCLE ( 'NONE', #2346, 0.2187500000000000300 ) ;
+#2444 = VERTEX_POINT ( 'NONE', #351 ) ;
+#2445 = CYLINDRICAL_SURFACE ( 'NONE', #1217, 0.2187500000000000000 ) ;
+#2446 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2447 = EDGE_LOOP ( 'NONE', ( #1093, #299 ) ) ;
+#2448 = FACE_OUTER_BOUND ( 'NONE', #2521, .T. ) ;
+#2449 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.375000000000000000 ) ) ;
+#2450 = ORIENTED_EDGE ( 'NONE', *, *, #2576, .T. ) ;
+#2451 = PLANE ( 'NONE',  #2786 ) ;
+#2452 = AXIS2_PLACEMENT_3D ( 'NONE', #236, #1882, #693 ) ;
+#2453 = CIRCLE ( 'NONE', #2385, 0.09999999999999992200 ) ;
+#2454 = AXIS2_PLACEMENT_3D ( 'NONE', #2292, #2257, #1823 ) ;
+#2455 = CARTESIAN_POINT ( 'NONE',  ( -1.340750000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2456 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, -0.2060549223287785900, 1.375000000000000000 ) ) ;
+#2457 = FACE_OUTER_BOUND ( 'NONE', #990, .T. ) ;
+#2458 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2459 = CARTESIAN_POINT ( 'NONE',  ( 1.880274082640043300, 0.1643791425749027100, 0.8124999999999998900 ) ) ;
+#2460 = CARTESIAN_POINT ( 'NONE',  ( 0.1340121486582279700, -0.1318487067688303100, 1.174999999999999800 ) ) ;
+#2461 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2462 = EDGE_CURVE ( 'NONE', #409, #9, #2743, .T. ) ;
+#2463 = VECTOR ( 'NONE', #1919, 39.37007874015748100 ) ;
+#2464 = ORIENTED_EDGE ( 'NONE', *, *, #559, .F. ) ;
+#2465 = FACE_OUTER_BOUND ( 'NONE', #1761, .T. ) ;
+#2466 = CARTESIAN_POINT ( 'NONE',  ( -2.380000000000000300, 1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2467 = EDGE_CURVE ( 'NONE', #3020, #998, #1238, .T. ) ;
+#2468 = AXIS2_PLACEMENT_3D ( 'NONE', #3005, #2314, #2937 ) ;
+#2469 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2470 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2471 = PLANE ( 'NONE',  #944 ) ;
+#2472 = EDGE_CURVE ( 'NONE', #250, #2439, #3024, .T. ) ;
+#2473 = AXIS2_PLACEMENT_3D ( 'NONE', #2861, #522, #1934 ) ;
+#2474 = EDGE_CURVE ( 'NONE', #2757, #1028, #425, .T. ) ;
+#2475 = CARTESIAN_POINT ( 'NONE',  ( 1.904415784228984400, -0.2020162695637367200, 0.8125000000000000000 ) ) ;
+#2476 = VERTEX_POINT ( 'NONE', #1126 ) ;
+#2477 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, -0.1318487067688302900, 1.174999999999999800 ) ) ;
+#2478 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060135200, 0.2549102234176833200, 1.174999999999999800 ) ) ;
+#2479 = CIRCLE ( 'NONE', #715, 0.2187499999999999400 ) ;
+#2480 = SHAPE_DEFINITION_REPRESENTATION ( #604, #45 ) ;
+#2481 = ORIENTED_EDGE ( 'NONE', *, *, #1374, .T. ) ;
+#2482 = ORIENTED_EDGE ( 'NONE', *, *, #524, .T. ) ;
+#2483 = CYLINDRICAL_SURFACE ( 'NONE', #2261, 0.1330000000000003700 ) ;
+#2484 = FACE_BOUND ( 'NONE', #2447, .T. ) ;
+#2485 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2486 = ORIENTED_EDGE ( 'NONE', *, *, #1939, .F. ) ;
+#2487 = VERTEX_POINT ( 'NONE', #603 ) ;
+#2488 = ORIENTED_EDGE ( 'NONE', *, *, #265, .F. ) ;
+#2489 = ORIENTED_EDGE ( 'NONE', *, *, #1, .F. ) ;
+#2490 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979653500, 0.5624999999999996700, 0.8125000000000000000 ) ) ;
+#2491 = EDGE_CURVE ( 'NONE', #734, #385, #2205, .T. ) ;
+#2492 = VECTOR ( 'NONE', #2431, 39.37007874015748100 ) ;
+#2493 = AXIS2_PLACEMENT_3D ( 'NONE', #498, #2566, #1158 ) ;
+#2494 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2495 = AXIS2_PLACEMENT_3D ( 'NONE', #940, #2766, #2345 ) ;
+#2496 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, 0.2500000000000000600, 0.8750000000000000000 ) ) ;
+#2497 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 1.924323260793499400E-016, 0.0000000000000000000 ) ) ;
+#2498 = VECTOR ( 'NONE', #2094, 39.37007874015748100 ) ;
+#2499 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #1188, 'distance_accuracy_value', 'NONE');
+#2500 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, -1.250000000000000000, 1.000000000000000000 ) ) ;
+#2501 = LINE ( 'NONE', #1834, #2193 ) ;
+#2502 = VERTEX_POINT ( 'NONE', #1549 ) ;
+#2503 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2504 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2505 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2506 = AXIS2_PLACEMENT_3D ( 'NONE', #957, #742, #21 ) ;
+#2507 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2508 = ORIENTED_EDGE ( 'NONE', *, *, #1109, .T. ) ;
+#2509 = VERTEX_POINT ( 'NONE', #593 ) ;
+#2510 = VECTOR ( 'NONE', #1560, 39.37007874015748100 ) ;
+#2511 = ORIENTED_EDGE ( 'NONE', *, *, #2424, .T. ) ;
+#2512 = CYLINDRICAL_SURFACE ( 'NONE', #2468, 0.2187500000000000800 ) ;
+#2513 = FACE_OUTER_BOUND ( 'NONE', #817, .T. ) ;
+#2514 = EDGE_LOOP ( 'NONE', ( #2717, #1464 ) ) ;
+#2515 = EDGE_LOOP ( 'NONE', ( #2275, #1376 ) ) ;
+#2516 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, -0.1318487067688302900, 1.174999999999999800 ) ) ;
+#2517 = EDGE_CURVE ( 'NONE', #1548, #1354, #243, .T. ) ;
+#2518 = FACE_OUTER_BOUND ( 'NONE', #106, .T. ) ;
+#2519 = ORIENTED_EDGE ( 'NONE', *, *, #1223, .T. ) ;
+#2520 = ORIENTED_EDGE ( 'NONE', *, *, #173, .F. ) ;
+#2521 = EDGE_LOOP ( 'NONE', ( #433, #1412, #842, #2987 ) ) ;
+#2522 = ADVANCED_FACE ( 'NONE', ( #1686 ), #2471, .F. ) ;
+#2523 = LINE ( 'NONE', #481, #1912 ) ;
+#2524 = FACE_OUTER_BOUND ( 'NONE', #733, .T. ) ;
+#2525 = DIRECTION ( 'NONE',  ( -1.986798540846736500E-016, 1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2526 = CARTESIAN_POINT ( 'NONE',  ( -2.380000000000000300, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2527 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2528 = CARTESIAN_POINT ( 'NONE',  ( -1.844412463250980800, -0.1875000000000002800, 1.000000000000000000 ) ) ;
+#2529 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2530 = ORIENTED_EDGE ( 'NONE', *, *, #1261, .F. ) ;
+#2531 = EDGE_CURVE ( 'NONE', #1128, #1984, #1603, .T. ) ;
+#2532 = AXIS2_PLACEMENT_3D ( 'NONE', #291, #309, #2651 ) ;
+#2533 = LINE ( 'NONE', #490, #2724 ) ;
+#2534 = ORIENTED_EDGE ( 'NONE', *, *, #2639, .F. ) ;
+#2535 = CIRCLE ( 'NONE', #1813, 0.2187499999999999400 ) ;
+#2536 = ADVANCED_FACE ( 'NONE', ( #2344 ), #3037, .F. ) ;
+#2537 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2538 = CARTESIAN_POINT ( 'NONE',  ( -0.1300000000000005900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2539 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, 0.2500000000000000600, 1.000000000000000000 ) ) ;
+#2540 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979653500, 0.6874999999999998900, 1.000000000000000000 ) ) ;
+#2541 = EDGE_CURVE ( 'NONE', #261, #1993, #2132, .T. ) ;
+#2542 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2543 = ORIENTED_EDGE ( 'NONE', *, *, #2196, .T. ) ;
+#2544 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 1.250000000000000000, 1.000000000000000000 ) ) ;
+#2545 = PLANE ( 'NONE',  #2009 ) ;
+#2546 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979654000, -0.6875000000000001100, 0.8125000000000000000 ) ) ;
+#2547 = AXIS2_PLACEMENT_3D ( 'NONE', #2260, #1081, #153 ) ;
+#2548 = LINE ( 'NONE', #2036, #1299 ) ;
+#2549 = ADVANCED_FACE ( 'NONE', ( #1340 ), #2795, .F. ) ;
+#2550 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2551 = LINE ( 'NONE', #188, #1502 ) ;
+#2552 = LINE ( 'NONE', #2722, #1532 ) ;
+#2553 = EDGE_LOOP ( 'NONE', ( #134, #943 ) ) ;
+#2554 = ORIENTED_EDGE ( 'NONE', *, *, #121, .F. ) ;
+#2555 = VECTOR ( 'NONE', #1008, 39.37007874015748100 ) ;
+#2556 = LINE ( 'NONE', #758, #2988 ) ;
+#2557 = VERTEX_POINT ( 'NONE', #922 ) ;
+#2558 = ORIENTED_EDGE ( 'NONE', *, *, #928, .F. ) ;
+#2559 = ORIENTED_EDGE ( 'NONE', *, *, #1289, .F. ) ;
+#2560 = VERTEX_POINT ( 'NONE', #2811 ) ;
+#2561 = EDGE_CURVE ( 'NONE', #2875, #30, #1788, .T. ) ;
+#2562 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2563 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026639400, -0.3549102234176832500, 1.375000000000000000 ) ) ;
+#2564 = ORIENTED_EDGE ( 'NONE', *, *, #928, .T. ) ;
+#2565 = LINE ( 'NONE', #1457, #1954 ) ;
+#2566 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2567 = EDGE_CURVE ( 'NONE', #2282, #2127, #2772, .T. ) ;
+#2568 = AXIS2_PLACEMENT_3D ( 'NONE', #1467, #2870, #1716 ) ;
+#2569 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2570 = ADVANCED_FACE ( 'NONE', ( #2983 ), #1173, .F. ) ;
+#2571 = PLANE ( 'NONE',  #2614 ) ;
+#2572 = VECTOR ( 'NONE', #1462, 39.37007874015748100 ) ;
+#2573 = VECTOR ( 'NONE', #1320, 39.37007874015748100 ) ;
+#2574 = EDGE_LOOP ( 'NONE', ( #2488, #1562, #2638, #2064 ) ) ;
+#2575 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026639400, -0.2549102234176833200, 1.375000000000000000 ) ) ;
+#2576 = EDGE_CURVE ( 'NONE', #2133, #653, #2442, .T. ) ;
+#2577 = EDGE_CURVE ( 'NONE', #80, #1641, #1898, .T. ) ;
+#2578 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106012700, 0.2549102234176832100, 1.375000000000000000 ) ) ;
+#2579 = VERTEX_POINT ( 'NONE', #2563 ) ;
+#2580 = ADVANCED_FACE ( 'NONE', ( #2950, #1724 ), #941, .F. ) ;
+#2581 =( CONVERSION_BASED_UNIT ( 'INCH', #1338 ) LENGTH_UNIT ( ) NAMED_UNIT ( #2400 ) );
+#2582 = VERTEX_POINT ( 'NONE', #2323 ) ;
+#2583 = CARTESIAN_POINT ( 'NONE',  ( -0.1300000000000004500, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2584 = EDGE_CURVE ( 'NONE', #385, #2885, #1163, .T. ) ;
+#2585 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2586 = VECTOR ( 'NONE', #2801, 39.37007874015748100 ) ;
+#2587 = ORIENTED_EDGE ( 'NONE', *, *, #2029, .F. ) ;
+#2588 = FACE_OUTER_BOUND ( 'NONE', #745, .T. ) ;
+#2589 = VERTEX_POINT ( 'NONE', #792 ) ;
+#2590 = EDGE_CURVE ( 'NONE', #2610, #836, #2271, .T. ) ;
+#2591 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 6.481953218662490300E-017, 0.0000000000000000000 ) ) ;
+#2592 = AXIS2_PLACEMENT_3D ( 'NONE', #2281, #1053, #1074 ) ;
+#2593 = ORIENTED_EDGE ( 'NONE', *, *, #2627, .F. ) ;
+#2594 = ORIENTED_EDGE ( 'NONE', *, *, #897, .T. ) ;
+#2595 = VECTOR ( 'NONE', #1955, 39.37007874015748100 ) ;
+#2596 = VERTEX_POINT ( 'NONE', #320 ) ;
+#2597 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
+#2598 = ORIENTED_EDGE ( 'NONE', *, *, #2871, .T. ) ;
+#2599 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 0.4375503462087652100, 0.8125000000000000000 ) ) ;
+#2600 = ORIENTED_EDGE ( 'NONE', *, *, #2472, .T. ) ;
+#2601 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2602 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2603 = VECTOR ( 'NONE', #1091, 39.37007874015748100 ) ;
+#2604 = ADVANCED_FACE ( 'NONE', ( #468 ), #2440, .F. ) ;
+#2605 = VERTEX_POINT ( 'NONE', #823 ) ;
+#2606 = ORIENTED_EDGE ( 'NONE', *, *, #906, .T. ) ;
+#2607 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2608 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2609 = CARTESIAN_POINT ( 'NONE',  ( 1.346749999999999700, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2610 = VERTEX_POINT ( 'NONE', #350 ) ;
+#2611 = DIRECTION ( 'NONE',  ( -1.924323260793499400E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2612 = CIRCLE ( 'NONE', #2188, 0.1330000000000004800 ) ;
+#2613 = VERTEX_POINT ( 'NONE', #1771 ) ;
+#2614 = AXIS2_PLACEMENT_3D ( 'NONE', #948, #485, #10 ) ;
+#2615 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, 0.1318487067688302900, 1.174999999999999800 ) ) ;
+#2616 = LINE ( 'NONE', #2449, #1073 ) ;
+#2617 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2618 = CARTESIAN_POINT ( 'NONE',  ( 0.9949999999999996600, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2619 = ADVANCED_FACE ( 'NONE', ( #1649 ), #1534, .F. ) ;
+#2620 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2621 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 0.6874999999999996700, 0.5000000000000000000 ) ) ;
+#2622 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2623 = EDGE_CURVE ( 'NONE', #220, #599, #1377, .T. ) ;
+#2624 = EDGE_LOOP ( 'NONE', ( #3014, #255, #889, #1728 ) ) ;
+#2625 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2626 = EDGE_LOOP ( 'NONE', ( #800, #838, #2959, #244 ) ) ;
+#2627 = EDGE_CURVE ( 'NONE', #1793, #2296, #2007, .T. ) ;
+#2628 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2629 = AXIS2_PLACEMENT_3D ( 'NONE', #2116, #1198, #945 ) ;
+#2630 = LINE ( 'NONE', #1520, #759 ) ;
+#2631 = VECTOR ( 'NONE', #2322, 39.37007874015748100 ) ;
+#2632 = CYLINDRICAL_SURFACE ( 'NONE', #1181, 0.1330000000000003400 ) ;
+#2633 = ORIENTED_EDGE ( 'NONE', *, *, #2584, .T. ) ;
+#2634 = VERTEX_POINT ( 'NONE', #1291 ) ;
+#2635 = FACE_OUTER_BOUND ( 'NONE', #651, .T. ) ;
+#2636 = ADVANCED_FACE ( 'NONE', ( #47 ), #2451, .F. ) ;
+#2637 = FACE_OUTER_BOUND ( 'NONE', #2686, .T. ) ;
+#2638 = ORIENTED_EDGE ( 'NONE', *, *, #2136, .F. ) ;
+#2639 = EDGE_CURVE ( 'NONE', #2634, #1968, #2630, .T. ) ;
+#2640 = ORIENTED_EDGE ( 'NONE', *, *, #2008, .F. ) ;
+#2641 = AXIS2_PLACEMENT_3D ( 'NONE', #846, #816, #2927 ) ;
+#2642 = EDGE_CURVE ( 'NONE', #9, #409, #279, .T. ) ;
+#2643 = ORIENTED_EDGE ( 'NONE', *, *, #2367, .F. ) ;
+#2644 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2645 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2646 = ORIENTED_EDGE ( 'NONE', *, *, #1494, .T. ) ;
+#2647 = VECTOR ( 'NONE', #360, 39.37007874015748100 ) ;
+#2648 = ORIENTED_EDGE ( 'NONE', *, *, #2114, .T. ) ;
+#2649 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2650 = VERTEX_POINT ( 'NONE', #552 ) ;
+#2651 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2652 = CIRCLE ( 'NONE', #2437, 0.1330000000000004800 ) ;
+#2653 = ADVANCED_FACE ( 'NONE', ( #677, #831 ), #2899, .F. ) ;
+#2654 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2655 = EDGE_CURVE ( 'NONE', #2409, #203, #1935, .T. ) ;
+#2656 = CYLINDRICAL_SURFACE ( 'NONE', #533, 0.5000000000000001100 ) ;
+#2657 = VERTEX_POINT ( 'NONE', #375 ) ;
+#2658 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #2581, 'distance_accuracy_value', 'NONE');
+#2659 = AXIS2_PLACEMENT_3D ( 'NONE', #2370, #245, #1878 ) ;
+#2660 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 0.8750000000000000000 ) ) ;
+#2661 = CARTESIAN_POINT ( 'NONE',  ( 2.294434124949071000, 0.1559617977120215700, 0.8124999999999998900 ) ) ;
+#2662 = PLANE ( 'NONE',  #2972 ) ;
+#2663 = ORIENTED_EDGE ( 'NONE', *, *, #524, .F. ) ;
+#2664 = ORIENTED_EDGE ( 'NONE', *, *, #1743, .T. ) ;
+#2665 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979653700, 0.5624999999999996700, 1.000000000000000000 ) ) ;
+#2666 = LINE ( 'NONE', #721, #679 ) ;
+#2667 = EDGE_LOOP ( 'NONE', ( #1986, #1865 ) ) ;
+#2668 = VECTOR ( 'NONE', #553, 39.37007874015748100 ) ;
+#2669 = VERTEX_POINT ( 'NONE', #2220 ) ;
+#2670 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2671 = AXIS2_PLACEMENT_3D ( 'NONE', #2124, #1892, #1150 ) ;
+#2672 = LINE ( 'NONE', #1915, #799 ) ;
+#2673 = ORIENTED_EDGE ( 'NONE', *, *, #2738, .T. ) ;
+#2674 = ORIENTED_EDGE ( 'NONE', *, *, #2395, .F. ) ;
+#2675 = CIRCLE ( 'NONE', #205, 0.1250000000000000300 ) ;
+#2676 = EDGE_LOOP ( 'NONE', ( #2416, #2228, #1489, #1887 ) ) ;
+#2677 = ORIENTED_EDGE ( 'NONE', *, *, #1359, .T. ) ;
+#2678 = VERTEX_POINT ( 'NONE', #1077 ) ;
+#2679 = VECTOR ( 'NONE', #2199, 39.37007874015748100 ) ;
+#2680 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2681 = ORIENTED_EDGE ( 'NONE', *, *, #2755, .T. ) ;
+#2682 = CYLINDRICAL_SURFACE ( 'NONE', #3039, 0.2187500000000000800 ) ;
+#2683 = EDGE_LOOP ( 'NONE', ( #2897, #1113 ) ) ;
+#2684 = EDGE_CURVE ( 'NONE', #1548, #1243, #2548, .T. ) ;
+#2685 = CARTESIAN_POINT ( 'NONE',  ( 0.2217499999999999700, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2686 = EDGE_LOOP ( 'NONE', ( #1088, #482, #2055, #2648 ) ) ;
+#2687 = CYLINDRICAL_SURFACE ( 'NONE', #1157, 0.2187499999999999400 ) ;
+#2688 = DIRECTION ( 'NONE',  ( -2.731847993664262700E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2689 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2690 = EDGE_CURVE ( 'NONE', #1995, #2105, #1454, .T. ) ;
+#2691 = AXIS2_PLACEMENT_3D ( 'NONE', #1860, #1658, #190 ) ;
+#2692 = AXIS2_PLACEMENT_3D ( 'NONE', #1061, #1271, #99 ) ;
+#2693 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, 0.6250000000000000000, 1.375000000000000000 ) ) ;
+#2694 = ORIENTED_EDGE ( 'NONE', *, *, #2561, .F. ) ;
+#2695 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2696 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2697 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2698 = EDGE_LOOP ( 'NONE', ( #2543, #1880 ) ) ;
+#2699 = LINE ( 'NONE', #608, #393 ) ;
+#2700 = LINE ( 'NONE', #681, #19 ) ;
+#2701 = CIRCLE ( 'NONE', #2295, 0.1330000000000005100 ) ;
+#2702 = VERTEX_POINT ( 'NONE', #1084 ) ;
+#2703 = CARTESIAN_POINT ( 'NONE',  ( 2.262952316802707000, 0.4790639941477360900, 0.8125000000000000000 ) ) ;
+#2704 = FACE_OUTER_BOUND ( 'NONE', #1372, .T. ) ;
+#2705 = VECTOR ( 'NONE', #2867, 39.37007874015748100 ) ;
+#2706 = EDGE_CURVE ( 'NONE', #1827, #2814, #953, .T. ) ;
+#2707 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, -0.3310549223287785900, 1.375000000000000000 ) ) ;
+#2708 = PLANE ( 'NONE',  #1754 ) ;
+#2709 = ORIENTED_EDGE ( 'NONE', *, *, #2684, .T. ) ;
+#2710 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999400, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2711 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, 0.2060549223287783100, 1.375000000000000000 ) ) ;
+#2712 = VERTEX_POINT ( 'NONE', #2044 ) ;
+#2713 = AXIS2_PLACEMENT_3D ( 'NONE', #1590, #930, #443 ) ;
+#2714 = ORIENTED_EDGE ( 'NONE', *, *, #2999, .F. ) ;
+#2715 = AXIS2_PLACEMENT_3D ( 'NONE', #2933, #1543, #844 ) ;
+#2716 = ORIENTED_EDGE ( 'NONE', *, *, #2186, .T. ) ;
+#2717 = ORIENTED_EDGE ( 'NONE', *, *, #2395, .T. ) ;
+#2718 = ORIENTED_EDGE ( 'NONE', *, *, #339, .T. ) ;
+#2719 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, 0.2060549223287782800, 1.174999999999999800 ) ) ;
+#2720 = VERTEX_POINT ( 'NONE', #602 ) ;
+#2721 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2722 = CARTESIAN_POINT ( 'NONE',  ( 0.9092499999999998900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2723 = EDGE_CURVE ( 'NONE', #2444, #120, #199, .T. ) ;
+#2724 = VECTOR ( 'NONE', #448, 39.37007874015748100 ) ;
+#2725 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060135200, 0.2549102234176833200, 1.375000000000000000 ) ) ;
+#2726 = VECTOR ( 'NONE', #179, 39.37007874015748100 ) ;
+#2727 = CARTESIAN_POINT ( 'NONE',  ( -0.9889999999999997700, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2728 = EDGE_CURVE ( 'NONE', #998, #3020, #2376, .T. ) ;
+#2729 = AXIS2_PLACEMENT_3D ( 'NONE', #2226, #108, #305 ) ;
+#2730 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 6.481953218662490300E-017, 0.0000000000000000000 ) ) ;
+#2731 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2732 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2733 = CARTESIAN_POINT ( 'NONE',  ( 2.500000000000000000, 1.250000000000000000, 0.4999999999999996100 ) ) ;
+#2734 = ORIENTED_EDGE ( 'NONE', *, *, #868, .F. ) ;
+#2735 = AXIS2_PLACEMENT_3D ( 'NONE', #122, #1778, #606 ) ;
+#2736 = ORIENTED_EDGE ( 'NONE', *, *, #1939, .T. ) ;
+#2737 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 1.250000000000000000, 1.000000000000000000 ) ) ;
+#2738 = EDGE_CURVE ( 'NONE', #1783, #2233, #395, .T. ) ;
+#2739 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2740 = PLANE ( 'NONE',  #1185 ) ;
+#2741 = CIRCLE ( 'NONE', #1677, 0.2187500000000000300 ) ;
+#2742 = ORIENTED_EDGE ( 'NONE', *, *, #1950, .T. ) ;
+#2743 = CIRCLE ( 'NONE', #531, 0.2187500000000000800 ) ;
+#2744 = ORIENTED_EDGE ( 'NONE', *, *, #1000, .F. ) ;
+#2745 = LINE ( 'NONE', #2528, #2087 ) ;
+#2746 = ORIENTED_EDGE ( 'NONE', *, *, #2755, .F. ) ;
+#2747 = CIRCLE ( 'NONE', #1254, 0.2187499999999999400 ) ;
+#2748 = ORIENTED_EDGE ( 'NONE', *, *, #2000, .F. ) ;
+#2749 = ORIENTED_EDGE ( 'NONE', *, *, #2996, .T. ) ;
+#2750 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2751 = EDGE_CURVE ( 'NONE', #1695, #2650, #2699, .T. ) ;
+#2752 = CARTESIAN_POINT ( 'NONE',  ( -1.500000000000000200, -0.6250000000000000000, 1.375000000000000000 ) ) ;
+#2753 = FACE_OUTER_BOUND ( 'NONE', #290, .T. ) ;
+#2754 = ORIENTED_EDGE ( 'NONE', *, *, #2639, .T. ) ;
+#2755 = EDGE_CURVE ( 'NONE', #459, #1357, #2552, .T. ) ;
+#2756 = VECTOR ( 'NONE', #2731, 39.37007874015748100 ) ;
+#2757 = VERTEX_POINT ( 'NONE', #1329 ) ;
+#2758 = AXIS2_PLACEMENT_3D ( 'NONE', #789, #2438, #2446 ) ;
+#2759 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979653700, 0.5624999999999996700, 0.8125000000000000000 ) ) ;
+#2760 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 6.481953218662490300E-017, 0.0000000000000000000 ) ) ;
+#2761 = FACE_OUTER_BOUND ( 'NONE', #2394, .T. ) ;
+#2762 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2763 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026637000, 0.2549102234176834900, 1.174999999999999800 ) ) ;
+#2764 = CARTESIAN_POINT ( 'NONE',  ( -1.163431963356009700, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#2765 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.2060549223287785900, 1.174999999999999800 ) ) ;
+#2766 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2767 = EDGE_LOOP ( 'NONE', ( #287, #1423, #2091, #2426 ) ) ;
+#2768 = AXIS2_PLACEMENT_3D ( 'NONE', #866, #1085, #416 ) ;
+#2769 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2770 = ADVANCED_FACE ( 'NONE', ( #1722, #2341 ), #2248, .F. ) ;
+#2771 = CARTESIAN_POINT ( 'NONE',  ( -2.500000000000000000, 1.250000000000000000, 1.000000000000000000 ) ) ;
+#2772 = LINE ( 'NONE', #1853, #1817 ) ;
+#2773 = LINE ( 'NONE', #3, #1422 ) ;
+#2774 = ORIENTED_EDGE ( 'NONE', *, *, #491, .T. ) ;
+#2775 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2776 = EDGE_CURVE ( 'NONE', #44, #435, #870, .T. ) ;
+#2777 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -0.0000000000000000000, -0.0000000000000000000 ) ) ;
+#2778 = CYLINDRICAL_SURFACE ( 'NONE', #2629, 0.1330000000000003700 ) ;
+#2779 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2780 = LINE ( 'NONE', #2727, #2381 ) ;
+#2781 = ORIENTED_EDGE ( 'NONE', *, *, #1106, .F. ) ;
+#2782 = VERTEX_POINT ( 'NONE', #2956 ) ;
+#2783 = ORIENTED_EDGE ( 'NONE', *, *, #114, .F. ) ;
+#2784 = CIRCLE ( 'NONE', #2758, 0.2187500000000000300 ) ;
+#2785 = CARTESIAN_POINT ( 'NONE',  ( 0.9092499999999998900, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2786 = AXIS2_PLACEMENT_3D ( 'NONE', #1267, #2688, #2432 ) ;
+#2787 = ORIENTED_EDGE ( 'NONE', *, *, #1233, .T. ) ;
+#2788 = ORIENTED_EDGE ( 'NONE', *, *, #1131, .F. ) ;
+#2789 = ADVANCED_FACE ( 'NONE', ( #2174 ), #16, .F. ) ;
+#2790 = VERTEX_POINT ( 'NONE', #1097 ) ;
+#2791 = CARTESIAN_POINT ( 'NONE',  ( 1.250000000000000000, -0.2499999999999998100, 1.000000000000000000 ) ) ;
+#2792 = ORIENTED_EDGE ( 'NONE', *, *, #1359, .F. ) ;
+#2793 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2794 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2795 = PLANE ( 'NONE',  #2041 ) ;
+#2796 = EDGE_CURVE ( 'NONE', #2502, #2989, #835, .T. ) ;
+#2797 = EDGE_CURVE ( 'NONE', #2678, #2889, #1146, .T. ) ;
+#2798 = FACE_OUTER_BOUND ( 'NONE', #2964, .T. ) ;
+#2799 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2800 = FACE_BOUND ( 'NONE', #2389, .T. ) ;
+#2801 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2802 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -1.986798540846737300E-016, 0.0000000000000000000 ) ) ;
+#2803 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106011900, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2804 = ADVANCED_FACE ( 'NONE', ( #644 ), #832, .T. ) ;
+#2805 = CARTESIAN_POINT ( 'NONE',  ( 0.9092499999999998900, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#2806 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2807 = EDGE_CURVE ( 'NONE', #1162, #1343, #723, .T. ) ;
+#2808 = VERTEX_POINT ( 'NONE', #415 ) ;
+#2809 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2810 = AXIS2_PLACEMENT_3D ( 'NONE', #1672, #495, #2129 ) ;
+#2811 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026637200, 0.3549102234176833600, 1.375000000000000000 ) ) ;
+#2812 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
+#2813 = VECTOR ( 'NONE', #3023, 39.37007874015748100 ) ;
+#2814 = VERTEX_POINT ( 'NONE', #1134 ) ;
+#2815 = LINE ( 'NONE', #2908, #1499 ) ;
+#2816 = ORIENTED_EDGE ( 'NONE', *, *, #1025, .T. ) ;
+#2817 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2818 = CYLINDRICAL_SURFACE ( 'NONE', #2715, 0.1330000000000002000 ) ;
+#2819 = EDGE_LOOP ( 'NONE', ( #1304, #1523 ) ) ;
+#2820 = CARTESIAN_POINT ( 'NONE',  ( -0.06160349221060131000, -0.3549102234176832500, 1.375000000000000000 ) ) ;
+#2821 = ORIENTED_EDGE ( 'NONE', *, *, #647, .T. ) ;
+#2822 = ADVANCED_FACE ( 'NONE', ( #2046, #909 ), #1369, .F. ) ;
+#2823 = EDGE_LOOP ( 'NONE', ( #331, #53, #295, #2520 ) ) ;
+#2824 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, 0.6874999999999996700, 0.5000000000000000000 ) ) ;
+#2825 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2826 = LINE ( 'NONE', #2733, #1661 ) ;
+#2827 = ORIENTED_EDGE ( 'NONE', *, *, #1970, .T. ) ;
+#2828 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
+#2829 = ORIENTED_EDGE ( 'NONE', *, *, #532, .F. ) ;
+#2830 = EDGE_LOOP ( 'NONE', ( #1574, #1920, #1256, #1465 ) ) ;
+#2831 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2832 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2833 = FACE_BOUND ( 'NONE', #853, .T. ) ;
+#2834 = ADVANCED_FACE ( 'NONE', ( #1019 ), #1634, .F. ) ;
+#2835 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2836 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2837 = EDGE_CURVE ( 'NONE', #675, #548, #2408, .T. ) ;
+#2838 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2839 = CARTESIAN_POINT ( 'NONE',  ( -0.8790460201818491900, 0.3310549223287783100, 1.174999999999999800 ) ) ;
+#2840 = EDGE_LOOP ( 'NONE', ( #2418, #17, #2441, #537 ) ) ;
+#2841 = ORIENTED_EDGE ( 'NONE', *, *, #1261, .T. ) ;
+#2842 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979653700, 0.6874999999999998900, 0.8125000000000000000 ) ) ;
+#2843 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2844 = LINE ( 'NONE', #2460, #1973 ) ;
+#2845 = EDGE_CURVE ( 'NONE', #2945, #80, #541, .T. ) ;
+#2846 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION (  '', ( #2998 ), #1637 ) ;
+#2847 = EDGE_CURVE ( 'NONE', #2296, #2405, #1161, .T. ) ;
+#2848 = LINE ( 'NONE', #1835, #2631 ) ;
+#2849 = VERTEX_POINT ( 'NONE', #222 ) ;
+#2850 = VECTOR ( 'NONE', #98, 39.37007874015748100 ) ;
+#2851 = CIRCLE ( 'NONE', #773, 0.2187499999999999400 ) ;
+#2852 = ORIENTED_EDGE ( 'NONE', *, *, #1522, .F. ) ;
+#2853 = ORIENTED_EDGE ( 'NONE', *, *, #1468, .F. ) ;
+#2854 = CARTESIAN_POINT ( 'NONE',  ( 0.5912700537026639400, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2855 = CIRCLE ( 'NONE', #692, 0.1330000000000002000 ) ;
+#2856 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2857 = VERTEX_POINT ( 'NONE', #657 ) ;
+#2858 = EDGE_LOOP ( 'NONE', ( #910, #2198, #950, #2816 ) ) ;
+#2859 = ORIENTED_EDGE ( 'NONE', *, *, #2002, .F. ) ;
+#2860 = ADVANCED_FACE ( 'NONE', ( #1786, #614 ), #918, .F. ) ;
+#2861 = CARTESIAN_POINT ( 'NONE',  ( 0.002999999999999940600, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2862 = EDGE_CURVE ( 'NONE', #441, #2875, #1937, .T. ) ;
+#2863 = STYLED_ITEM ( 'NONE', ( #1749 ), #45 ) ;
+#2864 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026638100, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2865 = CYLINDRICAL_SURFACE ( 'NONE', #113, 0.2187499999999999400 ) ;
+#2866 = AXIS2_PLACEMENT_3D ( 'NONE', #2794, #2298, #1430 ) ;
+#2867 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2868 = CIRCLE ( 'NONE', #216, 0.1330000000000002000 ) ;
+#2869 = DIRECTION ( 'NONE',  ( -1.000000000000000000, -1.601555123121432500E-016, -0.0000000000000000000 ) ) ;
+#2870 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, 1.000000000000000000, 0.0000000000000000000 ) ) ;
+#2871 = EDGE_CURVE ( 'NONE', #248, #9, #85, .T. ) ;
+#2872 = ADVANCED_FACE ( 'NONE', ( #1458 ), #2088, .F. ) ;
+#2873 = ORIENTED_EDGE ( 'NONE', *, *, #605, .F. ) ;
+#2874 = CARTESIAN_POINT ( 'NONE',  ( 1.893314055979653700, 0.5624999999999996700, 1.000000000000000000 ) ) ;
+#2875 = VERTEX_POINT ( 'NONE', #2544 ) ;
+#2876 = CARTESIAN_POINT ( 'NONE',  ( -0.5595000000000000000, -1.250000000000000000, 0.6947179912523939700 ) ) ;
+#2877 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2878 = AXIS2_PLACEMENT_3D ( 'NONE', #1498, #1983, #1039 ) ;
+#2879 = VECTOR ( 'NONE', #861, 39.37007874015748100 ) ;
+#2880 = SURFACE_STYLE_FILL_AREA ( #1888 ) ;
+#2881 = ORIENTED_EDGE ( 'NONE', *, *, #768, .T. ) ;
+#2882 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2883 = VECTOR ( 'NONE', #1636, 39.37007874015748100 ) ;
+#2884 = LINE ( 'NONE', #978, #2705 ) ;
+#2885 = VERTEX_POINT ( 'NONE', #211 ) ;
+#2886 = ORIENTED_EDGE ( 'NONE', *, *, #2143, .T. ) ;
+#2887 = EDGE_LOOP ( 'NONE', ( #1580, #181 ) ) ;
+#2888 = EDGE_CURVE ( 'NONE', #1333, #2273, #794, .T. ) ;
+#2889 = VERTEX_POINT ( 'NONE', #2108 ) ;
+#2890 = CARTESIAN_POINT ( 'NONE',  ( -1.340750000000000100, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2891 = CARTESIAN_POINT ( 'NONE',  ( 2.426749360703121600, -0.4133649961045401400, 0.6250000000000000000 ) ) ;
+#2892 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 1.986798540846736500E-016, 0.0000000000000000000 ) ) ;
+#2893 = EDGE_CURVE ( 'NONE', #2589, #1065, #1856, .T. ) ;
+#2894 = VECTOR ( 'NONE', #1013, 39.37007874015748100 ) ;
+#2895 = CARTESIAN_POINT ( 'NONE',  ( -1.340750000000000100, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2896 = ORIENTED_EDGE ( 'NONE', *, *, #449, .F. ) ;
+#2897 = ORIENTED_EDGE ( 'NONE', *, *, #2230, .F. ) ;
+#2898 = CARTESIAN_POINT ( 'NONE',  ( 1.000000000000000000, -0.6250000000000000000, 1.000000000000000000 ) ) ;
+#2899 = PLANE ( 'NONE',  #2160 ) ;
+#2900 = PLANE ( 'NONE',  #1840 ) ;
+#2901 = EDGE_CURVE ( 'NONE', #2208, #312, #2012, .T. ) ;
+#2902 = LINE ( 'NONE', #146, #377 ) ;
+#2903 = CARTESIAN_POINT ( 'NONE',  ( -2.113999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2904 = EDGE_CURVE ( 'NONE', #2266, #2712, #1417, .T. ) ;
+#2905 = AXIS2_PLACEMENT_3D ( 'NONE', #1684, #1927, #1195 ) ;
+#2906 = CARTESIAN_POINT ( 'NONE',  ( -0.1300000000000003100, -1.000000000000000000, -2.731847993664263200E-016 ) ) ;
+#2907 = CARTESIAN_POINT ( 'NONE',  ( 2.294434124949071000, 0.1559617977120215700, 0.6250000000000000000 ) ) ;
+#2908 = CARTESIAN_POINT ( 'NONE',  ( -0.7540460201818490700, 0.2060549223287783100, 1.174999999999999800 ) ) ;
+#2909 = VERTEX_POINT ( 'NONE', #701 ) ;
+#2910 = CARTESIAN_POINT ( 'NONE',  ( 0.2217499999999998900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2911 = ORIENTED_EDGE ( 'NONE', *, *, #753, .F. ) ;
+#2912 = ORIENTED_EDGE ( 'NONE', *, *, #2561, .T. ) ;
+#2913 = VECTOR ( 'NONE', #579, 39.37007874015748100 ) ;
+#2914 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.3310549223287785900, 1.375000000000000000 ) ) ;
+#2915 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2916 = AXIS2_PLACEMENT_3D ( 'NONE', #2068, #186, #1821 ) ;
+#2917 = LINE ( 'NONE', #1651, #834 ) ;
+#2918 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, 0.2060549223287782800, 1.174999999999999800 ) ) ;
+#2919 = VERTEX_POINT ( 'NONE', #2578 ) ;
+#2920 = LINE ( 'NONE', #2842, #2595 ) ;
+#2921 = AXIS2_PLACEMENT_3D ( 'NONE', #2949, #2497, #404 ) ;
+#2922 = CYLINDRICAL_SURFACE ( 'NONE', #1331, 0.1330000000000002000 ) ;
+#2923 = ORIENTED_EDGE ( 'NONE', *, *, #1795, .F. ) ;
+#2924 = ORIENTED_EDGE ( 'NONE', *, *, #491, .F. ) ;
+#2925 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999243048200, -0.3967912632750754100, 0.8124999999999998900 ) ) ;
+#2926 = VECTOR ( 'NONE', #676, 39.37007874015748100 ) ;
+#2927 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2928 = ORIENTED_EDGE ( 'NONE', *, *, #1211, .F. ) ;
+#2929 = CARTESIAN_POINT ( 'NONE',  ( 1.904415784228984400, -0.2020162695637367200, 0.6250000000000000000 ) ) ;
+#2930 = ORIENTED_EDGE ( 'NONE', *, *, #2952, .T. ) ;
+#2931 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2932 = EDGE_CURVE ( 'NONE', #2919, #1168, #1301, .T. ) ;
+#2933 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2934 = CYLINDRICAL_SURFACE ( 'NONE', #1066, 0.1330000000000003400 ) ;
+#2935 = PLANE ( 'NONE',  #1668 ) ;
+#2936 = CYLINDRICAL_SURFACE ( 'NONE', #1847, 0.1947179912523943300 ) ;
+#2937 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2938 = EDGE_CURVE ( 'NONE', #1398, #680, #2701, .T. ) ;
+#2939 = AXIS2_PLACEMENT_3D ( 'NONE', #2329, #706, #2799 ) ;
+#2940 = AXIS2_PLACEMENT_3D ( 'NONE', #2617, #1442, #746 ) ;
+#2941 = CARTESIAN_POINT ( 'NONE',  ( 1.880274082640043300, 0.1643791425749027100, 0.8125000000000000000 ) ) ;
+#2942 = CARTESIAN_POINT ( 'NONE',  ( -2.028250000000000300, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2943 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2944 = ORIENTED_EDGE ( 'NONE', *, *, #1436, .F. ) ;
+#2945 = VERTEX_POINT ( 'NONE', #712 ) ;
+#2946 = FACE_OUTER_BOUND ( 'NONE', #1611, .T. ) ;
+#2947 = VECTOR ( 'NONE', #898, 39.37007874015748100 ) ;
+#2948 = ORIENTED_EDGE ( 'NONE', *, *, #641, .F. ) ;
+#2949 = CARTESIAN_POINT ( 'NONE',  ( 0.6912700537026638100, -0.3549102234176832500, 1.174999999999999800 ) ) ;
+#2950 = FACE_BOUND ( 'NONE', #2887, .T. ) ;
+#2951 = VECTOR ( 'NONE', #1924, 39.37007874015748100 ) ;
+#2952 = EDGE_CURVE ( 'NONE', #2790, #1162, #2130, .T. ) ;
+#2953 = EDGE_LOOP ( 'NONE', ( #1236, #623, #2063, #1389 ) ) ;
+#2954 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106012700, 0.2549102234176833200, 1.375000000000000000 ) ) ;
+#2955 = EDGE_LOOP ( 'NONE', ( #1504, #2139, #2663, #876 ) ) ;
+#2956 = CARTESIAN_POINT ( 'NONE',  ( -0.1616034922106012700, 0.2549102234176832100, 1.174999999999999800 ) ) ;
+#2957 = ORIENTED_EDGE ( 'NONE', *, *, #2319, .T. ) ;
+#2958 = CARTESIAN_POINT ( 'NONE',  ( 0.1360000000000004500, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2959 = ORIENTED_EDGE ( 'NONE', *, *, #2531, .T. ) ;
+#2960 = AXIS2_PLACEMENT_3D ( 'NONE', #972, #735, #4 ) ;
+#2961 = LINE ( 'NONE', #2038, #2647 ) ;
+#2962 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
+#2963 = ORIENTED_EDGE ( 'NONE', *, *, #273, .F. ) ;
+#2964 = EDGE_LOOP ( 'NONE', ( #282, #1642, #140, #740 ) ) ;
+#2965 = CARTESIAN_POINT ( 'NONE',  ( 2.018314055979654000, -0.5625000000000001100, 1.000000000000000000 ) ) ;
+#2966 = CARTESIAN_POINT ( 'NONE',  ( -2.246999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2967 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2968 = LINE ( 'NONE', #289, #3040 ) ;
+#2969 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2970 = FACE_BOUND ( 'NONE', #741, .T. ) ;
+#2971 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2972 = AXIS2_PLACEMENT_3D ( 'NONE', #321, #2433, #1976 ) ;
+#2973 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2974 = ORIENTED_EDGE ( 'NONE', *, *, #2310, .F. ) ;
+#2975 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#2976 = ORIENTED_EDGE ( 'NONE', *, *, #2412, .F. ) ;
+#2977 = EDGE_CURVE ( 'NONE', #424, #1993, #2741, .T. ) ;
+#2978 = CARTESIAN_POINT ( 'NONE',  ( 2.499999999243017500, -0.3967912632750822400, 0.6250000000000000000 ) ) ;
+#2979 = CARTESIAN_POINT ( 'NONE',  ( 0.9949999999999993300, 1.000000000000000000, 0.7499999999999998900 ) ) ;
+#2980 = CARTESIAN_POINT ( 'NONE',  ( 0.9949999999999994400, 1.000000000000000000, 1.000000000000000000 ) ) ;
+#2981 = COLOUR_RGB ( '',0.7921568627450980000, 0.8196078431372548800, 0.9333333333333333500 ) ;
+#2982 = EDGE_LOOP ( 'NONE', ( #110, #2181, #535, #61 ) ) ;
+#2983 = FACE_OUTER_BOUND ( 'NONE', #2676, .T. ) ;
+#2984 = LINE ( 'NONE', #1336, #1120 ) ;
+#2985 = EDGE_LOOP ( 'NONE', ( #1618, #2103, #2694, #2519, #1571, #474, #1302, #1285 ) ) ;
+#2986 = FACE_OUTER_BOUND ( 'NONE', #1863, .T. ) ;
+#2987 = ORIENTED_EDGE ( 'NONE', *, *, #1665, .F. ) ;
+#2988 = VECTOR ( 'NONE', #526, 39.37007874015748100 ) ;
+#2989 = VERTEX_POINT ( 'NONE', #3013 ) ;
+#2990 = ADVANCED_FACE ( 'NONE', ( #762 ), #1496, .F. ) ;
+#2991 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
+#2992 = LINE ( 'NONE', #2496, #2603 ) ;
+#2993 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2994 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#2995 = EDGE_LOOP ( 'NONE', ( #2564, #749, #2131, #1347 ) ) ;
+#2996 = EDGE_CURVE ( 'NONE', #2152, #1533, #240, .T. ) ;
+#2997 = ORIENTED_EDGE ( 'NONE', *, *, #2083, .F. ) ;
+#2998 = STYLED_ITEM ( 'NONE', ( #32 ), #551 ) ;
+#2999 = EDGE_CURVE ( 'NONE', #1654, #3020, #1379, .T. ) ;
+#3000 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#3001 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#3002 = DIRECTION ( 'NONE',  ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
+#3003 = ORIENTED_EDGE ( 'NONE', *, *, #2075, .F. ) ;
+#3004 = CARTESIAN_POINT ( 'NONE',  ( -1.288431963356009700, -0.3310549223287785900, 1.375000000000000000 ) ) ;
+#3005 = CARTESIAN_POINT ( 'NONE',  ( -1.122000000000000100, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#3006 = FACE_BOUND ( 'NONE', #757, .T. ) ;
+#3007 = ADVANCED_FACE ( 'NONE', ( #3019 ), #2632, .F. ) ;
+#3008 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#3009 = EDGE_CURVE ( 'NONE', #2209, #2579, #201, .T. ) ;
+#3010 = CARTESIAN_POINT ( 'NONE',  ( 0.9949999999999993300, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#3011 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#3012 = DIRECTION ( 'NONE',  ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#3013 = CARTESIAN_POINT ( 'NONE',  ( -2.465750000000000300, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#3014 = ORIENTED_EDGE ( 'NONE', *, *, #152, .F. ) ;
+#3015 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#3016 = CARTESIAN_POINT ( 'NONE',  ( 0.3974211765303045700, -0.1318487067688302900, 1.174999999999999800 ) ) ;
+#3017 = ADVANCED_FACE ( 'NONE', ( #1264 ), #52, .F. ) ;
+#3018 = VECTOR ( 'NONE', #2286, 39.37007874015748100 ) ;
+#3019 = FACE_OUTER_BOUND ( 'NONE', #226, .T. ) ;
+#3020 = VERTEX_POINT ( 'NONE', #2805 ) ;
+#3021 = CARTESIAN_POINT ( 'NONE',  ( -2.344412463250980800, -0.1875000000000003900, 0.5000000000000000000 ) ) ;
+#3022 = EDGE_CURVE ( 'NONE', #1333, #1650, #2666, .T. ) ;
+#3023 = DIRECTION ( 'NONE',  ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
+#3024 = CIRCLE ( 'NONE', #1700, 0.1249999999999999000 ) ;
+#3025 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#3026 = CARTESIAN_POINT ( 'NONE',  ( -0.2157500000000000500, -1.000000000000000000, 1.000000000000000000 ) ) ;
+#3027 = FACE_OUTER_BOUND ( 'NONE', #396, .T. ) ;
+#3028 = ORIENTED_EDGE ( 'NONE', *, *, #974, .T. ) ;
+#3029 = VERTEX_POINT ( 'NONE', #704 ) ;
+#3030 = ORIENTED_EDGE ( 'NONE', *, *, #707, .T. ) ;
+#3031 = ORIENTED_EDGE ( 'NONE', *, *, #641, .T. ) ;
+#3032 = CARTESIAN_POINT ( 'NONE',  ( 1.127999999999999900, -1.000000000000000000, 0.7499999999999998900 ) ) ;
+#3033 = VECTOR ( 'NONE', #600, 39.37007874015748100 ) ;
+#3034 = DIRECTION ( 'NONE',  ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
+#3035 = EDGE_LOOP ( 'NONE', ( #2027, #1815 ) ) ;
+#3036 = CARTESIAN_POINT ( 'NONE',  ( 0.0000000000000000000, 0.0000000000000000000, 1.174999999999999800 ) ) ;
+#3037 = PLANE ( 'NONE',  #890 ) ;
+#3038 = ADVANCED_FACE ( 'NONE', ( #466 ), #262, .F. ) ;
+#3039 = AXIS2_PLACEMENT_3D ( 'NONE', #2371, #2608, #2165 ) ;
+#3040 = VECTOR ( 'NONE', #1456, 39.37007874015748100 ) ;
+ENDSEC;
+END-ISO-10303-21;
diff --git a/pyproject.toml b/pyproject.toml
index e3e7906f0..52db3f63a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,7 @@ requires = ["setuptools >= 61.0", "wheel"]
 [project]
 name = "trimesh"
 requires-python = ">=3.7"
-version = "4.2.4"
+version = "4.3.0"
 authors = [{name = "Michael Dawson-Haggerty", email = "mikedh@kerfed.com"}]
 license = {file = "LICENSE.md"}
 description = "Import, export, process, analyze and view triangular meshes."
@@ -102,6 +102,7 @@ test = [
     "coveralls",
     "pyright",
     "ezdxf",
+    "gmsh>=4.12.1",
     "pytest",
     "pymeshlab",
     "pyinstrument",
@@ -133,7 +134,8 @@ select = [
     "UP", # upgrade
     "W", # style warnings
     "YTT", # sys.version
-    "ISC002"
+    "ISC002",
+    "NPY201"
 ]
 
 ignore = [
diff --git a/trimesh/creation.py b/trimesh/creation.py
index e194efb17..0ed4a7930 100644
--- a/trimesh/creation.py
+++ b/trimesh/creation.py
@@ -15,6 +15,7 @@
 from .base import Trimesh
 from .constants import log, tol
 from .geometry import align_vectors, faces_to_edges, plane_transform
+from .resources import get_json
 from .typed import ArrayLike, Dict, Integer, Number, Optional
 
 try:
@@ -32,6 +33,9 @@
 except BaseException as E:
     _tri_earcut = exceptions.ExceptionWrapper(E)
 
+# get stored values for simple box and icosahedron primitives
+_data = get_json("creation.json")
+
 
 def revolve(
     linestring: ArrayLike,
@@ -206,12 +210,22 @@ def extrude_polygon(
 
 
 def sweep_polygon(
-    polygon: "Polygon", path: ArrayLike, angles: Optional[ArrayLike] = None, **kwargs
-):
+    polygon: "Polygon",
+    path: ArrayLike,
+    angles: Optional[ArrayLike] = None,
+    cap: bool = True,
+    connect: bool = True,
+    kwargs: Optional[Dict] = None,
+    **triangulation,
+) -> Trimesh:
     """
-    Extrude a 2D shapely polygon into a 3D mesh along an
-    arbitrary 3D path. Doesn't handle sharp curvature well.
+    Extrude a 2D polygon into a 3D mesh along a 3D path. Note that this
+    does *not* handle the case where there is very sharp curvature leading
+    the polygon to intersect the plane of a previous slice, and does *not*
+    scale the polygon along the induced normal to result in a constant cross section.
 
+    You may want to resample your path with a B-spline, i.e:
+      `trimesh.path.simplify.resample_spline(path, smooth=0.2, count=100)`
 
     Parameters
     ----------
@@ -219,11 +233,19 @@ def sweep_polygon(
       Profile to sweep along path
     path : (n, 3) float
       A path in 3D
-    angles :  (n,) float
+    angles : (n,) float
       Optional rotation angle relative to prior vertex
-      at each vertex
-    **kwargs : dict
-      Passed to `triangulate_polygon`.
+      at each vertex.
+    cap
+      If an open path is passed apply a cap to both ends.
+    connect
+      If a closed path is passed connect the sweep into
+      a single watertight mesh.
+    kwargs : dict
+      Passed to the mesh constructor.
+    **triangulation
+      Passed to `triangulate_polygon`, i.e. `engine='triangle'`
+
     Returns
     -------
     mesh : trimesh.Trimesh
@@ -234,82 +256,175 @@ def sweep_polygon(
     if not util.is_shape(path, (-1, 3)):
         raise ValueError("Path must be (n, 3)!")
 
+    if angles is not None:
+        angles = np.asanyarray(angles, dtype=np.float64)
+        if angles.shape != (len(path),):
+            raise ValueError(angles.shape)
+    else:
+        # set all angles to zero
+        angles = np.zeros(len(path), dtype=np.float64)
+
+    # check to see if path is closed i.e. first and last vertex are the same
+    closed = np.linalg.norm(path[0] - path[-1]) < tol.merge
     # Extract 2D vertices and triangulation
-    verts_2d = np.array(polygon.exterior.coords)[:-1]
-    base_verts_2d, faces_2d = triangulate_polygon(polygon, **kwargs)
-    n = len(verts_2d)
-
-    # Create basis for first planar polygon cap
-    x, y, z = util.generate_basis(path[0] - path[1])
-    tf_mat = np.ones((4, 4))
-    tf_mat[:3, :3] = np.c_[x, y, z]
-    tf_mat[:3, 3] = path[0]
-
-    # Compute 3D locations of those vertices
-    verts_3d = np.c_[verts_2d, np.zeros(n)]
-    verts_3d = tf.transform_points(verts_3d, tf_mat)
-    base_verts_3d = np.c_[base_verts_2d, np.zeros(len(base_verts_2d))]
-    base_verts_3d = tf.transform_points(base_verts_3d, tf_mat)
-
-    # keep matching sequence of vertices and 0- indexed faces
-    vertices = [base_verts_3d]
-    faces = [faces_2d]
-
-    # Compute plane normals for each turn --
-    # each turn induces a plane halfway between the two vectors
-    v1s = util.unitize(path[1:-1] - path[:-2])
-    v2s = util.unitize(path[1:-1] - path[2:])
-    norms = np.cross(np.cross(v1s, v2s), v1s + v2s)
-    norms[(norms == 0.0).all(1)] = v1s[(norms == 0.0).all(1)]
-    norms = util.unitize(norms)
-    final_v1 = util.unitize(path[-1] - path[-2])
-    norms = np.vstack((norms, final_v1))
-    v1s = np.vstack((v1s, final_v1))
-
-    # Create all side walls by projecting the 3d vertices into each plane
-    # in succession
-    for i in range(len(norms)):
-        verts_3d_prev = verts_3d
-
-        # Rotate if needed
-        if angles is not None:
-            tf_mat = tf.rotation_matrix(angles[i], norms[i], path[i])
-            verts_3d_prev = tf.transform_points(verts_3d_prev, tf_mat)
-
-        # Project vertices onto plane in 3D
-        ds = np.einsum("ij,j->i", (path[i + 1] - verts_3d_prev), norms[i])
-        ds = ds / np.dot(v1s[i], norms[i])
-
-        verts_3d_new = np.einsum("i,j->ij", ds, v1s[i]) + verts_3d_prev
-
-        # Add to face and vertex lists
-        new_faces = [[i + n, (i + 1) % n, i] for i in range(n)]
-        new_faces.extend([[(i - 1) % n + n, i + n, i] for i in range(n)])
-
-        # save faces and vertices into a sequence
-        faces.append(np.array(new_faces))
-        vertices.append(np.vstack((verts_3d, verts_3d_new)))
-
-        verts_3d = verts_3d_new
-
-    # do the main stack operation from a sequence to (n,3) arrays
-    # doing one vstack provides a substantial speedup by
-    # avoiding a bunch of temporary  allocations
-    vertices, faces = util.append_faces(vertices, faces)
-
-    # Create final cap
-    x, y, z = util.generate_basis(path[-1] - path[-2])
-    vecs = verts_3d - path[-1]
-    coords = np.c_[np.einsum("ij,j->i", vecs, x), np.einsum("ij,j->i", vecs, y)]
-    base_verts_2d, faces_2d = triangulate_polygon(Polygon(coords), **kwargs)
-    base_verts_3d = (
-        np.einsum("i,j->ij", base_verts_2d[:, 0], x)
-        + np.einsum("i,j->ij", base_verts_2d[:, 1], y)
-    ) + path[-1]
-    faces = np.vstack((faces, faces_2d + len(vertices)))
-    vertices = np.vstack((vertices, base_verts_3d))
-
-    return Trimesh(vertices, faces)
+    vertices_2D, faces_2D = triangulate_polygon(polygon, **triangulation)
+
+    # stack the `(n, 3)` faces into `(3 * n, 2)` edges
+    edges = faces_to_edges(faces_2D)
+    # edges which only occur once are on the boundary of the polygon
+    # since the triangulation may have subdivided the boundary of the
+    # shapely polygon, we need to find it again
+    edges_unique = grouping.group_rows(np.sort(edges, axis=1), require_count=1)
+    # subset the vertices to only ones included in the boundary
+    unique, inverse = np.unique(edges[edges_unique].reshape(-1), return_inverse=True)
+    # take only the vertices in the boundary
+    # and stack them with zeros and ones so we can use dot
+    # products to transform them all over the place
+    vertices_tf = np.column_stack(
+        (vertices_2D[unique], np.zeros(len(unique)), np.ones(len(unique)))
+    )
+    # the indices of vertices_tf
+    boundary = inverse.reshape((-1, 2))
+
+    # now create the normals for the plane each slice will lie on
+    # consider the simple path with 3 vertices and therefore 2 vectors:
+    # - the first plane will be exactly along the first vector
+    # - the second plane will be the average of the two vectors
+    # - the last plane will be exactly along the last vector
+    # and each plane origin will be the corresponding vertex on the path
+    vector = util.unitize(path[1:] - path[:-1])
+    # unitize instead of / 2 as they may be degenerate / zero
+    vector_mean = util.unitize(vector[1:] + vector[:-1])
+    # collect the vectors into plane normals
+    normal = np.concatenate([[vector[0]], vector_mean, [vector[-1]]], axis=0)
+
+    if closed and connect:
+        # if we have a closed loop average the first and last planes
+        normal[0] = util.unitize(normal[[0, -1]].mean(axis=0))
+
+    # planes should have one unit normal and one vertex each
+    assert normal.shape == path.shape
+
+    # get the spherical coordinates for the normal vectors
+    theta, phi = util.vector_to_spherical(normal).T
+
+    # collect the trig values into numpy arrays we can compose into matrices
+    cos_theta, sin_theta = np.cos(theta), np.sin(theta)
+    cos_phi, sin_phi = np.cos(phi), np.sin(phi)
+    cos_roll, sin_roll = np.cos(angles), np.sin(angles)
+
+    # we want a rotation which will be the identity for a Z+ vector
+    # this was constructed and unrolled from the following sympy block
+    # theta, phi, roll = sp.symbols("theta phi roll")
+    # matrix = (
+    #     tf.rotation_matrix(roll, [0, 0, 1]) @
+    #     tf.rotation_matrix(phi, [1, 0, 0]) @
+    #     tf.rotation_matrix((sp.pi / 2) - theta, [0, 0, 1])
+    # ).inv()
+    # matrix.simplify()
+
+    # shorthand for stacking
+    zeros = np.zeros(len(theta))
+    ones = np.ones(len(theta))
+
+    # stack initially as one unrolled matrix per row
+    transforms = np.column_stack(
+        [
+            -sin_roll * cos_phi * cos_theta + sin_theta * cos_roll,
+            sin_roll * sin_theta + cos_phi * cos_roll * cos_theta,
+            sin_phi * cos_theta,
+            path[:, 0],
+            -sin_roll * sin_theta * cos_phi - cos_roll * cos_theta,
+            -sin_roll * cos_theta + sin_theta * cos_phi * cos_roll,
+            sin_phi * sin_theta,
+            path[:, 1],
+            sin_phi * sin_roll,
+            -sin_phi * cos_roll,
+            cos_phi,
+            path[:, 2],
+            zeros,
+            zeros,
+            zeros,
+            ones,
+        ]
+    ).reshape((-1, 4, 4))
+
+    if tol.strict:
+        # make sure that each transform moves the Z+ vector to the requested normal
+        for n, matrix in zip(normal, transforms):
+            check = tf.transform_points([[0.0, 0.0, 1.0]], matrix, translate=False)[0]
+            assert np.allclose(check, n)
+
+    # apply transforms to prebaked homogeneous coordinates
+    vertices_3D = np.concatenate(
+        [np.dot(vertices_tf, matrix.T) for matrix in transforms], axis=0
+    )[:, :3]
+
+    # now construct the faces with one group of boundary faces per slice
+    stride = len(unique)
+    boundary_next = boundary + stride
+    faces_slice = np.column_stack(
+        [boundary, boundary_next[:, :1], boundary_next[:, ::-1], boundary[:, 1:]]
+    ).reshape((-1, 3))
+
+    # offset the slices
+    faces = [faces_slice + offset for offset in np.arange(len(path) - 1) * stride]
+
+    # connect only applies to closed paths
+    if closed and connect:
+        # the last slice will not be required
+        max_vertex = (len(path) - 1) * stride
+        # clip off the duplicated vertices
+        vertices_3D = vertices_3D[:max_vertex]
+        # apply the modulus in-place to a conservative subset
+        faces[-1] %= max_vertex
+    elif cap:
+        # these are indices of `vertices_2D` that were not on the boundary
+        # which can happen for triangulation algorithms that added vertices
+        # we don't currently support that but you could append the unconsumed
+        # vertices and then update the mapping below to reflect that
+        unconsumed = set(unique).difference(faces_2D.ravel())
+        if len(unconsumed) > 0:
+            raise NotImplementedError("triangulation added vertices: no logic to cap!")
+
+        # map the 2D faces to the order we used
+        mapped = np.zeros(unique.max() + 2, dtype=np.int64)
+        mapped[unique] = np.arange(len(unique))
+
+        # now should correspond to the first vertex block
+        cap_zero = mapped[faces_2D]
+        # winding will be along +Z so flip for the bottom cap
+        faces.append(np.fliplr(cap_zero))
+        # offset the end cap
+        faces.append(cap_zero + stride * (len(path) - 1))
+
+    if kwargs is None:
+        kwargs = {}
+
+    if "process" not in kwargs:
+        # we should be constructing clean meshes here
+        # so we don't need to run an expensive verex merge
+        kwargs["process"] = False
+
+    # stack the faces used
+    faces = np.concatenate(faces, axis=0)
+
+    # generate the mesh from the face data
+    mesh = Trimesh(vertices=vertices_3D, faces=faces, **kwargs)
+
+    if tol.strict:
+        # we should not have included any unused vertices
+        assert len(np.unique(faces)) == len(vertices_3D)
+
+        if cap:
+            # mesh should always be a volume if cap is true
+            assert mesh.is_volume
+
+        if closed and connect:
+            assert mesh.is_volume
+            assert mesh.body_count == 1
+
+    return mesh
 
 
 def extrude_triangulation(
@@ -587,12 +702,10 @@ def box(
     geometry : trimesh.Trimesh
       Mesh of a cuboid
     """
-    # vertices of the cube
-    vertices = np.array(
-        [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1],
-        order="C",
-        dtype=np.float64,
-    ).reshape((-1, 3))
+    # vertices of the cube from reference
+    vertices = np.array(_data["box"]["vertices"], order="C", dtype=np.float64)
+    faces = np.array(_data["box"]["faces"], order="C", dtype=np.int64)
+    face_normals = np.array(_data["box"]["face_normals"], order="C", dtype=np.float64)
 
     # resize cube based on passed extents
     if bounds is not None:
@@ -614,88 +727,6 @@ def box(
         vertices -= 0.5
         extents = np.asarray((1.0, 1.0, 1.0), dtype=np.float64)
 
-    # hardcoded face indices
-    # TODO : make less lol?
-    faces = [
-        1,
-        3,
-        0,
-        4,
-        1,
-        0,
-        0,
-        3,
-        2,
-        2,
-        4,
-        0,
-        1,
-        7,
-        3,
-        5,
-        1,
-        4,
-        5,
-        7,
-        1,
-        3,
-        7,
-        2,
-        6,
-        4,
-        2,
-        2,
-        7,
-        6,
-        6,
-        5,
-        4,
-        7,
-        5,
-        6,
-    ]
-    faces = np.array(faces, order="C", dtype=np.int64).reshape((-1, 3))
-
-    face_normals = [
-        -1,
-        0,
-        0,
-        0,
-        -1,
-        0,
-        -1,
-        0,
-        0,
-        0,
-        0,
-        -1,
-        0,
-        0,
-        1,
-        0,
-        -1,
-        0,
-        0,
-        0,
-        1,
-        0,
-        1,
-        0,
-        0,
-        0,
-        -1,
-        0,
-        1,
-        0,
-        1,
-        0,
-        0,
-        1,
-        0,
-        0,
-    ]
-    face_normals = np.asanyarray(face_normals, order="C", dtype=np.float64).reshape(-1, 3)
-
     if "metadata" not in kwargs:
         kwargs["metadata"] = {}
     kwargs["metadata"].update({"shape": "box", "extents": extents})
@@ -725,111 +756,9 @@ def icosahedron(**kwargs) -> Trimesh:
     ico : trimesh.Trimesh
       Icosahederon centered at the origin.
     """
-    t = (1.0 + 5.0**0.5) / 2.0
-    vertices = [
-        -1,
-        t,
-        0,
-        1,
-        t,
-        0,
-        -1,
-        -t,
-        0,
-        1,
-        -t,
-        0,
-        0,
-        -1,
-        t,
-        0,
-        1,
-        t,
-        0,
-        -1,
-        -t,
-        0,
-        1,
-        -t,
-        t,
-        0,
-        -1,
-        t,
-        0,
-        1,
-        -t,
-        0,
-        -1,
-        -t,
-        0,
-        1,
-    ]
-    faces = [
-        0,
-        11,
-        5,
-        0,
-        5,
-        1,
-        0,
-        1,
-        7,
-        0,
-        7,
-        10,
-        0,
-        10,
-        11,
-        1,
-        5,
-        9,
-        5,
-        11,
-        4,
-        11,
-        10,
-        2,
-        10,
-        7,
-        6,
-        7,
-        1,
-        8,
-        3,
-        9,
-        4,
-        3,
-        4,
-        2,
-        3,
-        2,
-        6,
-        3,
-        6,
-        8,
-        3,
-        8,
-        9,
-        4,
-        9,
-        5,
-        2,
-        4,
-        11,
-        6,
-        2,
-        10,
-        8,
-        6,
-        7,
-        9,
-        8,
-        1,
-    ]
-    # scale vertices so each vertex radius is 1.0
-    vertices = np.reshape(vertices, (-1, 3)) / np.sqrt(2.0 + t)
-    faces = np.reshape(faces, (-1, 3))
-
+    # get stored pre-baked primitive values
+    vertices = np.array(_data["icosahedron"]["vertices"], dtype=np.float64)
+    faces = np.array(_data["icosahedron"]["faces"], dtype=np.int64)
     return Trimesh(
         vertices=vertices, faces=faces, process=kwargs.pop("process", False), **kwargs
     )
diff --git a/trimesh/interfaces/gmsh.py b/trimesh/interfaces/gmsh.py
index 00eed2ee6..a3df156a5 100644
--- a/trimesh/interfaces/gmsh.py
+++ b/trimesh/interfaces/gmsh.py
@@ -1,7 +1,27 @@
+import os
 import tempfile
+import warnings
 
 import numpy as np
 
+from ..constants import log
+from ..typed import Integer, Number, Optional
+
+# the old `gmsh-sdk` package is deprecated and
+# has a different incompatible API!
+_min_gmsh = (4, 12, 1)
+
+
+_warning = " ".join(
+    [
+        "`trimesh.interfaces.gmsh` is deprecated and will be removed January 2025!",
+        "There are *many* gmsh options on PyPi: `scikit-gmsh` `gmsh` `pygmsh` `gmsh-sdk`,",
+        "users should pick one of those and use it directly. If STEP loading is the only",
+        "thing needed you may want `pip install cascadio` which uses OpenCASCADE more",
+        "directly and will immediatly enable STEP as a loadable format in trimesh.",
+    ]
+)
+
 
 def load_gmsh(file_name, gmsh_args=None):
     """
@@ -12,9 +32,9 @@ def load_gmsh(file_name, gmsh_args=None):
     For a list of possible options to pass to GMSH, check:
     http://gmsh.info/doc/texinfo/gmsh.html
 
-    An easy way to install the GMSH SDK is through the `gmsh-sdk`
+    An easy way to install the GMSH SDK is through the `gmsh`
     package on PyPi, which downloads and sets up gmsh:
-        >>> pip install gmsh-sdk
+        >>> pip install gmsh
 
     Parameters
     --------------
@@ -31,10 +51,19 @@ def load_gmsh(file_name, gmsh_args=None):
     mesh : trimesh.Trimesh
       Surface mesh of input geometry
     """
+    warnings.warn(_warning, category=DeprecationWarning, stacklevel=2)
+
     # use STL as an intermediate format
     # do import here to avoid very occasional segfaults
     import gmsh
 
+    # the deprecated `pip install gmsh-sdk` package has an entirely different API
+    # require a minimum version here
+    if tuple(int(i) for i in gmsh.__version__.split(".")) < _min_gmsh:
+        raise ImportError(
+            f"`gmsh.__version__ < {_min_gmsh}`: run `pip install --upgrade gmsh`"
+        )
+
     from ..exchange.stl import load_stl
 
     # start with default args for the meshing step
@@ -75,9 +104,19 @@ def load_gmsh(file_name, gmsh_args=None):
     else:
         raise ValueError("No import since no file was provided!")
 
-    # if we initialize with sys.argv it could be anything
-    if not gmsh.isInitialized():
+    # hmmm
+    init = False
+    try:
+        if hasattr(gmsh, "isInitialized"):
+            init = gmsh.isInitialized()
+        elif hasattr(gmsh, "is_initialized"):
+            init = gmsh.is_initialized()
+    except BaseException:
+        log.debug("gmsh unexpected", exc_info=True)
+
+    if not init:
         gmsh.initialize()
+
     gmsh.option.setNumber("General.Terminal", 1)
     gmsh.model.add("Surface_Mesh_Generation")
     # loop through our numbered args which do things, stuff
@@ -114,13 +153,19 @@ def load_gmsh(file_name, gmsh_args=None):
     return kwargs
 
 
-def to_volume(mesh, file_name=None, max_element=None, mesher_id=1):
+def to_volume(
+    mesh,
+    file_name: Optional[str] = None,
+    file_type: Optional[str] = None,
+    max_element: Optional[Number] = None,
+    mesher_id: Integer = 1,
+) -> bytes:
     """
     Convert a surface mesh to a 3D volume mesh generated by gmsh.
 
-    An easy way to install the gmsh sdk is through the gmsh-sdk
+    An easy way to install the gmsh sdk is through the gmsh
     package on pypi, which downloads and sets up gmsh:
-        pip install gmsh-sdk
+        pip install gmsh
 
     Algorithm details, although check gmsh docs for more information:
     The "Delaunay" algorithm is split into three separate steps.
@@ -141,7 +186,7 @@ def to_volume(mesh, file_name=None, max_element=None, mesher_id=1):
     --------------
     mesh : trimesh.Trimesh
       Surface mesh of input geometry
-    file_name : str or None
+    file_type
       Location to save output, in .msh (gmsh) or .bdf (Nastran) format
     max_element : float or None
       Maximum length of an element in the volume mesh
@@ -155,9 +200,16 @@ def to_volume(mesh, file_name=None, max_element=None, mesher_id=1):
       MSH data, only returned if file_name is None
 
     """
+    warnings.warn(_warning, category=DeprecationWarning, stacklevel=2)
+
     # do import here to avoid very occasional segfaults
     import gmsh
 
+    if tuple(int(i) for i in gmsh.__version__.split(".")) < _min_gmsh:
+        raise ImportError(
+            f"`gmsh.__version__ < {_min_gmsh}`: run `pip install --upgrade gmsh`"
+        )
+
     # checks mesher selection
     if mesher_id not in [1, 3, 4, 7, 9, 10]:
         raise ValueError("unavailable mesher selected!")
@@ -169,60 +221,60 @@ def to_volume(mesh, file_name=None, max_element=None, mesher_id=1):
         max_element = np.sqrt(np.mean(mesh.area_faces))
 
     if file_name is not None:
-        # check extensions to make sure it is supported format
-        if not any(
-            file_name.lower().endswith(e)
-            for e in [".bdf", ".msh", ".inp", ".diff", ".mesh"]
-        ):
-            raise ValueError(
-                "Only Nastran (.bdf), Gmsh (.msh), Abaqus (*.inp), "
-                + "Diffpack (*.diff) and Inria Medit (*.mesh) formats "
-                + "are available!"
-            )
+        file_type = file_name.split(".")[-1].lower()
+    elif file_type is not None:
+        file_type = file_type.lower().strip(".")
+    else:
+        file_type = "msh"
 
-    # exports to disk for gmsh to read using a temp file
-    mesh_file = tempfile.NamedTemporaryFile(suffix=".stl", delete=False)
-    mesh_file.close()
-    mesh.export(mesh_file.name)
+    if file_type not in ["bdf", "msh", "inp", "diff", "mesh"]:
+        raise ValueError(
+            "Only Nastran (`bdf`), Gmsh (`msh`), Abaqus (`inp`), "
+            + "Diffpack (`diff`) and Inria Medit (`mesh`) formats "
+            + "are available!"
+        )
 
-    # starts Gmsh Python API script
-    gmsh.initialize()
-    gmsh.option.setNumber("General.Terminal", 1)
-    gmsh.model.add("Nastran_stl")
-
-    gmsh.merge(mesh_file.name)
-    dimtag = gmsh.model.getEntities()[0]
-    dim = dimtag[0]
-    tag = dimtag[1]
-
-    surf_loop = gmsh.model.geo.addSurfaceLoop([tag])
-    gmsh.model.geo.addVolume([surf_loop])
-    gmsh.model.geo.synchronize()
-
-    # We can then generate a 3D mesh...
-    gmsh.option.setNumber("Mesh.Algorithm3D", mesher_id)
-    gmsh.option.setNumber("Mesh.CharacteristicLengthMax", max_element)
-    gmsh.model.mesh.generate(3)
-
-    dimtag2 = gmsh.model.getEntities()[1]
-    dim2 = dimtag2[0]
-    tag2 = dimtag2[1]
-    p2 = gmsh.model.addPhysicalGroup(dim2, [tag2])
-    gmsh.model.setPhysicalName(dim, p2, "Nastran_bdf")
-
-    data = None
-    # if file name is None, return msh data using a tempfile
-    if file_name is None:
-        out_data = tempfile.NamedTemporaryFile(suffix=".msh", delete=False)
-        # windows gets mad if two processes try to open the same file
-        out_data.close()
-        gmsh.write(out_data.name)
-        with open(out_data.name, "rb") as f:
+    # use a temporary directory for input and output
+    with tempfile.TemporaryDirectory() as D:
+        mesh_file = os.path.join(D, "input.stl")
+        mesh.export(mesh_file)
+
+        # starts Gmsh Python API script
+        gmsh.initialize()
+        gmsh.option.setNumber("General.Terminal", 1)
+        gmsh.model.add("Nastran_stl")
+
+        gmsh.merge(mesh_file)
+        dimtag = gmsh.model.getEntities()[0]
+        dim = dimtag[0]
+        tag = dimtag[1]
+
+        surf_loop = gmsh.model.geo.addSurfaceLoop([tag])
+        gmsh.model.geo.addVolume([surf_loop])
+        gmsh.model.geo.synchronize()
+
+        # We can then generate a 3D mesh...
+        gmsh.option.setNumber("Mesh.Algorithm3D", mesher_id)
+        gmsh.option.setNumber("Mesh.CharacteristicLengthMax", max_element)
+        gmsh.model.mesh.generate(3)
+
+        dimtag2 = gmsh.model.getEntities()[1]
+        dim2 = dimtag2[0]
+        tag2 = dimtag2[1]
+        p2 = gmsh.model.addPhysicalGroup(dim2, [tag2])
+        gmsh.model.setPhysicalName(dim, p2, "Nastran_bdf")
+
+        out_path = os.path.join(D, f"temp.{file_type}")
+        gmsh.write(out_path)
+        with open(out_path, "rb") as f:
             data = f.read()
-    else:
-        gmsh.write(file_name)
 
     # close up shop
     gmsh.finalize()
 
+    # write the data
+    if file_name is not None:
+        with open(os.path.abspath(os.path.expanduser(file_name)), "wb") as f:
+            f.write(data)
+
     return data
diff --git a/trimesh/resources/creation.json b/trimesh/resources/creation.json
new file mode 100644
index 000000000..91d558015
--- /dev/null
+++ b/trimesh/resources/creation.json
@@ -0,0 +1,1 @@
+{"box":{"vertices":[[0.0,0.0,0.0],[0.0,0.0,1.0],[0.0,1.0,0.0],[0.0,1.0,1.0],[1.0,0.0,0.0],[1.0,0.0,1.0],[1.0,1.0,0.0],[1.0,1.0,1.0]],"faces":[[1,3,0],[4,1,0],[0,3,2],[2,4,0],[1,7,3],[5,1,4],[5,7,1],[3,7,2],[6,4,2],[2,7,6],[6,5,4],[7,5,6]],"face_normals":[[-1,0,0],[0,-1,0],[-1,0,0],[0,0,-1],[0,0,1],[0,-1,0],[0,0,1],[0,1,0],[0,0,-1],[0,1,0],[1,0,0],[1,0,0]]},"icosahedron":{"vertices":[[-0.5257311121191336,0.85065080835204,0.0],[0.5257311121191336,0.85065080835204,0.0],[-0.5257311121191336,-0.85065080835204,0.0],[0.5257311121191336,-0.85065080835204,0.0],[0.0,-0.5257311121191336,0.85065080835204],[0.0,0.5257311121191336,0.85065080835204],[0.0,-0.5257311121191336,-0.85065080835204],[0.0,0.5257311121191336,-0.85065080835204],[0.85065080835204,0.0,-0.5257311121191336],[0.85065080835204,0.0,0.5257311121191336],[-0.85065080835204,0.0,-0.5257311121191336],[-0.85065080835204,0.0,0.5257311121191336]],"faces":[[0,11,5],[0,5,1],[0,1,7],[0,7,10],[0,10,11],[1,5,9],[5,11,4],[11,10,2],[10,7,6],[7,1,8],[3,9,4],[3,4,2],[3,2,6],[3,6,8],[3,8,9],[4,9,5],[2,4,11],[6,2,10],[8,6,7],[9,8,1]]}}
\ No newline at end of file
diff --git a/trimesh/transformations.py b/trimesh/transformations.py
index 44c92aa14..8fedecfc8 100644
--- a/trimesh/transformations.py
+++ b/trimesh/transformations.py
@@ -197,6 +197,7 @@
 """
 
 import numpy as np
+from numpy.typing import ArrayLike, NDArray
 
 _IDENTITY = np.eye(4)
 _IDENTITY.flags["WRITEABLE"] = False
@@ -228,10 +229,20 @@ def translation_matrix(direction):
     """
     # are we 2D or 3D
     dim = len(direction)
+
     # start with identity matrix
-    M = np.identity(dim + 1)
+
+    if any("sympy" in str(type(v)) for v in direction):
+        # if we have been passed input values as sympy.Symbol
+        from sympy import eye
+
+        M = eye(dim + 1)
+    else:
+        M = np.eye(dim + 1)
+
     # apply the offset
     M[:dim, dim] = direction[:dim]
+
     return M
 
 
@@ -344,7 +355,7 @@ def rotation_matrix(angle, direction, point=None):
     True
 
     """
-    if type(angle).__name__ == "Symbol":
+    if "sympy" in str(type(angle)):
         # special case sympy symbolic angles
         import sympy as sp
 
@@ -357,6 +368,7 @@ def rotation_matrix(angle, direction, point=None):
         cosa = np.cos(angle)
 
     direction = unit_vector(direction[:3])
+
     # rotation matrix around unit vector
     M = np.diag([cosa, cosa, cosa, 1.0])
     M[:3, :3] += np.outer(direction, direction) * (1.0 - cosa)
@@ -1124,7 +1136,7 @@ def euler_matrix(ai, aj, ak, axes="sxyz"):
     if parity:
         ai, aj, ak = -ai, -aj, -ak
 
-    if type(ai).__name__ == "Symbol":
+    if "sympy" in str(type(ai)):
         # if we have been passed input values as sympy.Symbol
         # use symbolic cosine and identity matrix
         from sympy import cos, eye, sin
@@ -2131,7 +2143,9 @@ def spherical_matrix(theta, phi, axes="sxyz"):
     return result
 
 
-def transform_points(points, matrix, translate=True):
+def transform_points(
+    points: ArrayLike, matrix: ArrayLike, translate: bool = True
+) -> NDArray[np.float64]:
     """
     Returns points rotated by a homogeneous
     transformation matrix.
diff --git a/trimesh/util.py b/trimesh/util.py
index aaf03d00c..39d12ee82 100644
--- a/trimesh/util.py
+++ b/trimesh/util.py
@@ -470,7 +470,7 @@ def vector_to_spherical(cartesian):
 
 def spherical_to_vector(spherical):
     """
-    Convert a set of (n, 2) spherical vectors to (n, 3) vectors
+    Convert an array of `(n, 2)` spherical angles to `(n, 3)` unit vectors.
 
     Parameters
     ------------
@@ -489,8 +489,7 @@ def spherical_to_vector(spherical):
     theta, phi = spherical.T
     st, ct = np.sin(theta), np.cos(theta)
     sp, cp = np.sin(phi), np.cos(phi)
-    vectors = np.column_stack((ct * sp, st * sp, cp))
-    return vectors
+    return np.column_stack((ct * sp, st * sp, cp))
 
 
 def pairwise(iterable):
diff --git a/trimesh/visual/texture.py b/trimesh/visual/texture.py
index 0db1ed54e..e2be87fc3 100644
--- a/trimesh/visual/texture.py
+++ b/trimesh/visual/texture.py
@@ -273,7 +273,7 @@ def unmerge_faces(faces, *args, **kwargs):
             # a column diff and sort but this seemed easier and is fast enough
             # turn default attribute value of -1 to nan before median computation
             # and use nanmedian to compute the median ignoring the nan values
-            masks_nan = np.where(masks != -1, masks, np.NaN)
+            masks_nan = np.where(masks != -1, masks, np.nan)
             result.append(np.nanmedian(masks_nan, axis=0).astype(np.int64))
 
         return result


Test patch:
diff --git a/tests/data/random_tree.json b/tests/data/random_tree.json
new file mode 100644
index 000000000..98de02f35
--- /dev/null
+++ b/tests/data/random_tree.json
@@ -0,0 +1,1 @@
+[[0, 710], [0, 906], [0, 758], [1, 205], [1, 82], [2, 750], [3, 323], [3, 209], [7, 999], [8, 394], [9, 298], [9, 224], [10, 850], [12, 619], [13, 179], [14, 178], [14, 218], [15, 740], [15, 307], [16, 248], [19, 788], [20, 817], [20, 155], [22, 512], [22, 773], [23, 534], [27, 75], [27, 994], [28, 718], [30, 708], [30, 353], [31, 810], [32, 683], [33, 191], [33, 20], [34, 955], [36, 635], [36, 329], [36, 964], [36, 421], [37, 511], [38, 876], [39, 347], [39, 712], [39, 193], [40, 552], [40, 937], [40, 956], [41, 18], [41, 789], [41, 133], [42, 843], [43, 19], [43, 803], [43, 918], [45, 979], [46, 467], [46, 625], [47, 692], [48, 469], [49, 854], [51, 720], [56, 342], [59, 576], [61, 902], [62, 526], [62, 184], [62, 226], [63, 171], [63, 451], [63, 974], [64, 233], [64, 995], [65, 456], [65, 117], [67, 89], [67, 481], [67, 950], [67, 340], [70, 328], [71, 546], [72, 857], [72, 360], [72, 610], [73, 547], [75, 110], [75, 483], [77, 647], [78, 614], [80, 620], [80, 258], [82, 252], [82, 352], [82, 665], [83, 771], [83, 734], [84, 422], [85, 648], [85, 903], [86, 827], [86, 947], [86, 958], [89, 654], [91, 70], [92, 587], [93, 251], [93, 299], [93, 501], [95, 180], [95, 836], [95, 235], [97, 81], [100, 754], [100, 8], [101, 108], [101, 111], [101, 64], [102, 766], [103, 129], [103, 453], [103, 543], [103, 554], [103, 48], [107, 924], [107, 154], [107, 331], [107, 425], [111, 264], [111, 424], [113, 502], [116, 149], [117, 355], [117, 851], [117, 908], [118, 426], [118, 504], [118, 779], [118, 490], [119, 442], [120, 589], [121, 756], [121, 916], [122, 496], [124, 829], [124, 998], [126, 522], [126, 765], [127, 273], [127, 484], [127, 351], [127, 666], [130, 957], [130, 869], [132, 561], [133, 335], [133, 738], [133, 230], [135, 649], [135, 632], [136, 782], [138, 287], [141, 832], [142, 69], [143, 76], [144, 978], [145, 246], [146, 212], [149, 460], [149, 638], [149, 436], [150, 105], [151, 499], [151, 537], [152, 819], [153, 339], [153, 847], [154, 141], [154, 846], [155, 984], [155, 988], [157, 256], [158, 787], [159, 878], [159, 943], [159, 751], [161, 701], [162, 584], [163, 670], [164, 882], [165, 586], [167, 276], [167, 63], [169, 47], [170, 883], [170, 904], [173, 570], [174, 448], [179, 592], [182, 550], [182, 10], [183, 315], [184, 446], [186, 705], [186, 309], [188, 297], [189, 521], [191, 320], [192, 728], [193, 188], [193, 488], [193, 804], [194, 439], [195, 234], [195, 755], [195, 774], [196, 608], [196, 907], [199, 513], [199, 354], [202, 890], [202, 925], [203, 760], [204, 400], [206, 693], [206, 934], [208, 283], [208, 573], [209, 143], [209, 674], [210, 790], [211, 772], [212, 823], [212, 262], [212, 3], [215, 524], [218, 745], [220, 385], [221, 816], [221, 896], [222, 901], [223, 66], [224, 465], [224, 936], [225, 443], [225, 377], [226, 71], [226, 767], [227, 240], [228, 673], [230, 951], [235, 221], [236, 838], [239, 600], [241, 383], [244, 227], [244, 975], [245, 138], [245, 163], [245, 748], [247, 314], [248, 194], [249, 219], [256, 90], [256, 588], [256, 613], [258, 739], [260, 583], [261, 497], [262, 781], [262, 407], [263, 895], [265, 21], [265, 699], [265, 793], [266, 168], [266, 326], [266, 545], [266, 204], [267, 225], [268, 880], [276, 42], [277, 440], [277, 833], [281, 405], [281, 22], [282, 378], [285, 158], [286, 762], [287, 557], [288, 74], [293, 244], [294, 292], [294, 634], [296, 597], [296, 892], [296, 211], [297, 247], [298, 271], [298, 601], [300, 132], [300, 818], [301, 596], [303, 636], [306, 336], [307, 41], [308, 269], [308, 549], [309, 761], [309, 858], [309, 38], [309, 519], [310, 52], [310, 844], [312, 968], [315, 49], [317, 106], [317, 657], [318, 605], [319, 333], [322, 571], [323, 137], [323, 744], [324, 311], [325, 920], [327, 253], [329, 837], [330, 909], [331, 645], [332, 84], [332, 985], [333, 229], [333, 714], [336, 855], [338, 123], [338, 459], [340, 275], [340, 174], [340, 260], [341, 217], [341, 277], [342, 668], [342, 849], [343, 437], [343, 621], [343, 877], [345, 341], [345, 485], [345, 991], [346, 840], [348, 9], [350, 165], [351, 831], [353, 356], [354, 664], [355, 660], [356, 182], [358, 308], [360, 631], [360, 80], [361, 987], [362, 131], [365, 420], [365, 606], [365, 466], [366, 55], [367, 266], [367, 637], [367, 196], [367, 124], [369, 848], [370, 387], [374, 72], [375, 797], [376, 835], [377, 85], [379, 93], [380, 444], [380, 952], [380, 455], [381, 445], [384, 828], [384, 578], [387, 458], [387, 926], [388, 862], [391, 517], [392, 973], [392, 199], [393, 417], [394, 5], [394, 305], [394, 62], [395, 477], [396, 933], [397, 607], [397, 317], [397, 970], [400, 368], [400, 122], [400, 558], [401, 800], [403, 100], [404, 369], [406, 769], [407, 509], [408, 187], [411, 32], [411, 741], [412, 859], [414, 29], [415, 577], [417, 791], [419, 594], [421, 361], [424, 661], [424, 681], [424, 306], [425, 727], [425, 101], [425, 792], [427, 743], [427, 962], [427, 492], [427, 30], [428, 688], [429, 399], [430, 17], [430, 536], [432, 945], [433, 222], [433, 696], [435, 539], [436, 449], [436, 875], [436, 764], [436, 913], [441, 170], [441, 702], [444, 134], [445, 655], [446, 358], [452, 591], [453, 156], [455, 295], [455, 401], [456, 169], [457, 161], [457, 441], [458, 250], [458, 652], [459, 894], [459, 864], [461, 408], [462, 538], [463, 775], [466, 195], [468, 12], [469, 820], [469, 202], [469, 395], [471, 671], [477, 626], [478, 515], [478, 719], [478, 717], [481, 564], [481, 826], [482, 13], [482, 103], [483, 125], [485, 866], [487, 327], [487, 102], [488, 54], [488, 150], [489, 852], [490, 523], [490, 872], [492, 863], [492, 976], [493, 630], [493, 966], [497, 26], [497, 40], [498, 429], [498, 706], [499, 929], [500, 899], [501, 259], [502, 796], [503, 144], [504, 409], [505, 213], [505, 67], [506, 713], [506, 815], [507, 533], [508, 996], [509, 874], [509, 121], [510, 853], [510, 932], [514, 542], [514, 798], [515, 551], [516, 68], [517, 953], [519, 430], [519, 312], [520, 255], [520, 603], [523, 25], [528, 948], [530, 824], [531, 569], [531, 993], [532, 967], [533, 166], [533, 669], [533, 898], [534, 282], [535, 856], [536, 715], [537, 373], [537, 942], [538, 915], [540, 704], [541, 691], [542, 350], [542, 954], [545, 96], [547, 476], [548, 296], [550, 822], [553, 280], [553, 364], [555, 206], [556, 249], [557, 23], [557, 46], [559, 370], [560, 274], [560, 290], [561, 176], [561, 192], [561, 404], [562, 716], [564, 270], [565, 148], [569, 403], [571, 265], [573, 128], [574, 157], [574, 707], [574, 860], [577, 930], [578, 641], [579, 432], [581, 238], [581, 679], [581, 687], [581, 799], [582, 595], [582, 682], [583, 568], [583, 972], [585, 582], [587, 472], [587, 34], [589, 313], [589, 495], [593, 402], [596, 388], [597, 57], [597, 153], [598, 900], [599, 267], [600, 622], [601, 291], [601, 431], [601, 830], [603, 389], [604, 639], [608, 1], [610, 302], [610, 553], [610, 928], [610, 914], [611, 120], [612, 961], [612, 33], [614, 776], [616, 99], [616, 479], [616, 982], [617, 289], [617, 263], [618, 709], [620, 491], [620, 37], [622, 757], [622, 812], [622, 397], [624, 633], [624, 555], [624, 61], [625, 139], [626, 207], [626, 541], [626, 36], [627, 321], [627, 423], [629, 478], [632, 612], [633, 87], [635, 435], [635, 646], [635, 842], [636, 730], [638, 921], [640, 201], [641, 886], [642, 406], [642, 910], [645, 434], [645, 135], [647, 629], [647, 808], [648, 643], [648, 733], [649, 473], [650, 486], [650, 510], [652, 228], [653, 415], [654, 887], [655, 140], [655, 821], [656, 413], [656, 917], [656, 167], [659, 729], [660, 785], [662, 73], [664, 318], [664, 759], [664, 562], [666, 663], [666, 784], [666, 345], [669, 136], [671, 814], [671, 889], [672, 324], [672, 971], [673, 611], [674, 689], [676, 410], [678, 690], [681, 452], [682, 532], [684, 200], [686, 650], [688, 572], [689, 294], [689, 677], [689, 83], [689, 749], [691, 753], [692, 580], [693, 770], [694, 742], [694, 92], [695, 91], [695, 386], [695, 529], [695, 731], [695, 507], [696, 480], [696, 653], [697, 593], [697, 210], [697, 980], [698, 992], [699, 366], [700, 115], [702, 427], [703, 752], [705, 286], [707, 615], [708, 367], [714, 464], [714, 173], [715, 667], [715, 983], [715, 514], [716, 359], [716, 556], [716, 118], [716, 989], [717, 414], [717, 624], [718, 685], [718, 700], [718, 811], [718, 873], [720, 231], [722, 97], [722, 372], [722, 119], [722, 348], [723, 272], [723, 735], [726, 678], [727, 190], [727, 675], [729, 506], [730, 698], [731, 598], [732, 651], [734, 14], [734, 616], [735, 189], [735, 376], [735, 301], [736, 181], [739, 332], [742, 737], [744, 215], [746, 535], [746, 293], [747, 109], [747, 223], [748, 489], [749, 16], [749, 563], [749, 960], [751, 977], [752, 343], [756, 623], [758, 186], [759, 468], [763, 938], [764, 939], [764, 78], [765, 7], [766, 658], [767, 806], [767, 891], [770, 462], [772, 747], [772, 927], [773, 79], [773, 618], [774, 380], [775, 334], [776, 6], [776, 530], [777, 15], [780, 627], [785, 575], [790, 428], [791, 310], [792, 159], [794, 95], [795, 599], [795, 802], [796, 482], [796, 795], [798, 346], [798, 642], [800, 39], [801, 454], [802, 44], [802, 617], [802, 392], [803, 198], [804, 881], [807, 59], [807, 500], [807, 303], [808, 834], [808, 365], [810, 865], [810, 457], [811, 778], [812, 418], [813, 447], [813, 694], [816, 919], [817, 304], [817, 861], [817, 885], [818, 88], [818, 288], [818, 396], [819, 525], [819, 463], [819, 946], [819, 164], [822, 242], [822, 145], [824, 172], [824, 813], [825, 384], [826, 723], [827, 888], [828, 51], [829, 98], [829, 393], [829, 986], [829, 697], [831, 382], [831, 726], [831, 870], [834, 278], [835, 450], [836, 470], [836, 783], [837, 325], [838, 374], [839, 794], [841, 316], [841, 65], [842, 721], [842, 2], [844, 197], [844, 965], [845, 390], [845, 963], [846, 559], [847, 214], [848, 662], [849, 50], [849, 363], [849, 746], [850, 494], [850, 997], [853, 379], [853, 330], [855, 544], [855, 412], [857, 371], [857, 609], [857, 319], [857, 736], [858, 565], [860, 185], [861, 867], [862, 349], [862, 944], [864, 4], [864, 777], [865, 438], [865, 162], [865, 493], [866, 805], [869, 241], [869, 801], [869, 807], [870, 114], [871, 285], [871, 239], [873, 912], [874, 644], [874, 487], [875, 461], [877, 183], [880, 505], [881, 531], [882, 780], [882, 338], [884, 841], [884, 911], [884, 941], [885, 871], [886, 160], [888, 216], [889, 528], [889, 152], [891, 232], [892, 684], [892, 786], [892, 381], [893, 763], [894, 203], [895, 602], [895, 680], [895, 686], [895, 151], [896, 254], [896, 676], [896, 724], [896, 585], [897, 337], [898, 433], [902, 113], [905, 711], [905, 839], [906, 540], [906, 672], [909, 931], [910, 905], [911, 11], [911, 503], [913, 58], [913, 640], [913, 579], [914, 146], [915, 703], [916, 220], [919, 357], [920, 112], [920, 940], [921, 419], [922, 391], [922, 548], [922, 261], [922, 126], [923, 104], [923, 566], [923, 45], [924, 659], [924, 28], [926, 560], [927, 959], [929, 60], [929, 498], [930, 574], [931, 94], [931, 474], [931, 581], [933, 981], [934, 142], [935, 281], [937, 177], [937, 949], [938, 416], [938, 300], [939, 237], [939, 520], [939, 695], [940, 35], [940, 175], [940, 567], [941, 879], [941, 508], [942, 897], [943, 590], [944, 279], [944, 768], [945, 344], [945, 362], [945, 86], [953, 935], [955, 257], [956, 245], [956, 990], [956, 923], [957, 656], [958, 475], [958, 107], [959, 527], [960, 375], [960, 922], [964, 56], [965, 268], [967, 27], [968, 116], [969, 604], [969, 322], [970, 43], [972, 398], [972, 411], [976, 628], [977, 31], [979, 77], [980, 893], [981, 130], [984, 516], [984, 809], [985, 722], [985, 884], [986, 284], [986, 732], [988, 24], [989, 147], [989, 208], [990, 243], [991, 53], [991, 471], [992, 127], [993, 518], [995, 845], [995, 969], [997, 725], [997, 825], [997, 236], [999, 868]]
\ No newline at end of file
diff --git a/tests/test_creation.py b/tests/test_creation.py
index 647e51fb0..e7f1abd67 100644
--- a/tests/test_creation.py
+++ b/tests/test_creation.py
@@ -147,6 +147,7 @@ def test_path_sweep(self):
             vec = g.np.dot(rotmat, vec)
         poly = g.Polygon(perim)
 
+        # --- test open sweep
         # Create 3D path
         angles = g.np.linspace(0, 8 * g.np.pi, 1000)
         x = angles / 10.0
@@ -159,6 +160,19 @@ def test_path_sweep(self):
             mesh = g.trimesh.creation.sweep_polygon(poly, path, engine=engine)
             assert mesh.is_volume
 
+        # --- test closed sweep
+        # Create 3D path
+        angles = g.np.linspace(0, 2 * 0.999 * g.np.pi, 1000)
+        x = g.np.zeros((1000,))
+        y = g.np.cos(angles)
+        z = g.np.sin(angles)
+        path_closed = g.np.c_[x, y, z]
+
+        # Extrude
+        for engine in self.engines:
+            mesh = g.trimesh.creation.sweep_polygon(poly, path_closed, engine=engine)
+            assert mesh.is_volume
+
     def test_annulus(self):
         """
         Basic tests of annular cylinder creation
diff --git a/tests/test_gmsh.py b/tests/test_gmsh.py
index 61797958f..2d49d5b53 100644
--- a/tests/test_gmsh.py
+++ b/tests/test_gmsh.py
@@ -23,11 +23,20 @@ def test_load(self):
         if gmsh is None:
             return
         r = g.trimesh.interfaces.gmsh.load_gmsh(
-            g.os.path.join(g.dir_models, "wrench.STEP")
+            g.os.path.join(g.dir_models, "featuretype.STEP")
         )
         assert isinstance(r, dict)
         assert len(g.trimesh.Trimesh(**r).faces) > 0
 
+    def test_to_volume(self):
+        if gmsh is None:
+            return
+        m = g.trimesh.creation.box()
+
+        r = g.trimesh.interfaces.gmsh.to_volume(mesh=m)
+
+        assert isinstance(r, bytes)
+
 
 if __name__ == "__main__":
     g.trimesh.util.attach_to_log()
diff --git a/tests/test_scenegraph.py b/tests/test_scenegraph.py
index 77e787f3e..b5556a316 100644
--- a/tests/test_scenegraph.py
+++ b/tests/test_scenegraph.py
@@ -206,13 +206,13 @@ def test_shortest_path(self):
             return
 
         tf = g.trimesh.transformations
-        # start with creating a random tree
-        edgelist = {}
-        tree = g.nx.random_tree(n=1000, seed=0, create_using=g.nx.DiGraph)
-        edges = list(tree.edges)
+        # start with a known good random tree
+        edges = [tuple(row) for row in g.data["random_tree"]]
+        tree = g.nx.from_edgelist(edges, create_using=g.nx.DiGraph)
 
         r_choices = g.random((len(edges), 2))
         r_matrices = g.random_transforms(len(edges))
+        edgelist = {}
         for e, r_choice, r_mat in zip(edges, r_choices, r_matrices):
             data = {}
             if r_choice[0] > 0.5:
diff --git a/tests/test_step.py b/tests/test_step.py
index 0138d75de..f60a92e09 100644
--- a/tests/test_step.py
+++ b/tests/test_step.py
@@ -15,6 +15,12 @@ def test_basic(self):
         s = g.get_mesh("box_sides.STEP")
         assert len(s.geometry) == 10
 
+        b = g.get_mesh("featuretype.STEP")
+        assert len(b.geometry) == 1
+        m = next(iter(b.geometry.values()))
+        m.merge_vertices(merge_tex=True, merge_norm=True)
+        assert m.is_watertight
+
 
 if __name__ == "__main__":
     g.trimesh.util.attach_to_log()
diff --git a/tests/test_sweep.py b/tests/test_sweep.py
new file mode 100644
index 000000000..402f8a2d6
--- /dev/null
+++ b/tests/test_sweep.py
@@ -0,0 +1,130 @@
+import numpy as np
+from pyinstrument import Profiler
+from shapely.geometry import Point, Polygon
+
+import trimesh
+from trimesh.creation import sweep_polygon
+
+trimesh.tol.strict = True
+
+
+def arc_2d(final_angle, d=1, start_angle=0, splits=20):
+    xs = np.linspace(start_angle, final_angle, splits)
+    return np.stack((d / 2 * np.cos(xs), d / 2 * np.sin(xs)), axis=1)
+
+
+def test_simple_closed(h1=1, w=2, r=4.4):
+    # a simple closed path
+    square = Polygon([(-0.01, -h1 / 2), (w, -h1 / 2), (w, +h1 / 2), (-0.01, +h1 / 2)])
+    circle = Point([0, 0]).buffer(1.0)
+
+    # a simple square of side `r`
+    path = [[0, 0, 0], [r, 0, 0], [r, r, 0], [0, r, 0], [0, 0, 0]]
+
+    a = sweep_polygon(square, path)
+    assert a.is_volume
+
+    aa = sweep_polygon(square, path, connect=False)
+    assert aa.is_volume
+
+    # should have the same bounds but no longer a volume
+    aaa = sweep_polygon(square, path, connect=False, cap=False)
+    assert np.allclose(aa.bounds, aaa.bounds)
+    assert not aaa.is_volume
+
+    b = sweep_polygon(circle, path)
+    assert b.is_volume
+
+
+def test_simple_extrude(height=10):
+    # make sure sweep behaves okay on a simple single segment path
+    # this should be identical to the extrude operation
+    circle = Point([0, 0]).buffer(1.0)
+
+    # a simple extrusion
+    path = [[0, 0, 0], [0, 0, height]]
+    # will be running asserts inside function
+    b = sweep_polygon(circle, path)
+
+    # should be a straight extrude along Z
+    expected = np.append(np.reshape(circle.bounds, (2, 2)).ptp(axis=0), height)
+    assert np.allclose(expected, b.extents)
+
+    # should be well constructed
+    assert b.is_volume
+    # volume should correspond to expected cylinder area
+    assert np.isclose(b.volume, circle.area * height)
+
+
+def test_simple_open():
+    circle = Point([0, 0]).buffer(1.0)
+    theta = np.linspace(0.0, np.pi, 100)
+    path = np.column_stack([np.cos(theta), np.sin(theta), np.zeros(len(theta))]) * 10
+
+    a = sweep_polygon(circle, path)
+    assert a.is_volume
+
+
+def test_spline_3D():
+    circle = Point([0, 0]).buffer(1.0)
+    # make a 3D noodle using spline smoothing
+    path = trimesh.path.simplify.resample_spline(
+        [[0, 0, 0], [4, 4, 0], [5, 5, 0], [10, 0, 10], [0, 20, 0]], smooth=0.25, count=100
+    )
+
+    a = sweep_polygon(circle, path)
+    assert a.is_volume
+    assert a.body_count == 1
+
+
+def test_screw():
+    h = 200
+    d = 8
+    h1 = 1
+    w = 2
+    d = d - w
+    h2 = h1
+
+    lead = 2
+    splits_per_turn = 4 * 20
+    polygon = np.array([(-0.01, -h1 / 2), (w, -h2 / 2), (w, +h2 / 2), (-0.01, +h1 / 2)])
+    h_ = h + h1
+    n = int(np.ceil(splits_per_turn * h_ / lead))
+    turns = n / splits_per_turn
+    xys = arc_2d(2 * np.pi * turns, d, splits=n)
+    zs = np.linspace(0, h_, n)[:, None]
+    spin_path = np.concatenate((xys, zs), axis=1)
+
+    with Profiler() as P:
+        x = sweep_polygon(Polygon(polygon), spin_path)
+    P.print()
+
+    assert x.is_volume
+    # should have produced a result corresponding to the input dimensions
+    assert np.allclose(x.extents[:2], d + w * 2, atol=0.01)
+    assert np.allclose(x.extents[2], h + h1 * 2, atol=0.01)
+
+    # check without capping: should be the same size just without caps
+    o = sweep_polygon(Polygon(polygon), spin_path, cap=False, connect=False)
+    assert np.allclose(x.bounds, o.bounds)
+    assert not o.is_volume
+
+    # try spinning along an angle
+    sweep_polygon(
+        Polygon(polygon), spin_path, angles=np.linspace(0.0, np.pi / 2, len(spin_path))
+    )
+
+    circle = Point([0, 0]).buffer(1.0)
+    theta = np.linspace(0.0, np.pi, 100)
+    path = np.column_stack([np.cos(theta), np.sin(theta), np.zeros(len(theta))]) * 10
+
+    a = sweep_polygon(circle, path)
+    assert a.is_volume
+
+
+if __name__ == "__main__":
+    test_simple_closed()
+    test_simple_extrude()
+    test_simple_open()
+    test_screw()
+    test_spline_3D()
diff --git a/tests/test_transformations.py b/tests/test_transformations.py
index 1d54c310f..18762415b 100644
--- a/tests/test_transformations.py
+++ b/tests/test_transformations.py
@@ -227,6 +227,31 @@ def test_symbolic_euler(self):
             # they should be the same matrix
             assert g.np.allclose(s, n)
 
+    def test_symbolic_translate(self):
+        # some of the functions have been modified to support `sympy.Symbol`
+        # values which is useful for calculating final rotations symbolically
+        try:
+            import sympy as sp
+        except BaseException:
+            return
+
+        translate = g.trimesh.transformations.translation_matrix
+
+        x, y, z = sp.symbols("x y z")
+
+        m = translate([x, y, z])
+
+        for T in g.random((100, 3)):
+            # get the euler matrix evaluated from the symbolic matrix
+            s = g.np.array(
+                m.subs({x: T[0], y: T[1], z: T[2]}).evalf(), dtype=g.np.float64
+            )
+            # get it from a numeric scalar
+            n = translate(T)
+
+            # they should be the same matrix
+            assert g.np.allclose(s, n)
+
 
 if __name__ == "__main__":
     g.trimesh.util.attach_to_log()