commit 23207ee2aa571bc4ac397385e7974c311d43ae56 Author: Bruno Silva Date: Thu Aug 27 12:40:43 2026 +0100 Script assisted by Claude diff --git a/README.md b/README.md new file mode 100644 index 0000000..879531f --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# cad_viewer + diff --git a/cad_viewer.py b/cad_viewer.py new file mode 100644 index 0000000..2425aba --- /dev/null +++ b/cad_viewer.py @@ -0,0 +1,49 @@ +import cadquery as cq +import numpy as np +import pyvista as pv + + +def visualize_step( + step_file = "file.step", + color = "silver", + background = "white", + tolerance = 0.1, +): + # 1. Load the STEP file + print("Loading STEP file...") + shape = cq.importers.importStep(step_file).val() + + # 2. Convert the shape into a triangle mesh + print("Tessellating...") + raw_vertices, triangles = shape.tessellate(tolerance) + + vertices = np.array([[v.x, v.y, v.z] for v in raw_vertices], dtype=np.float64) + tri_array = np.array(triangles, dtype=np.int32) + + # PyVista needs faces in the format [3, i0, i1, i2, 3, i0, i1, i2, ...] + n = len(tri_array) + faces = np.column_stack([np.full(n, 3, dtype=np.int32), tri_array]).ravel() + + mesh = pv.PolyData(vertices, faces) + mesh.compute_normals(inplace=True) # makes shading look nicer + + # 3. Show the model + print("Opening viewer...") + plotter = pv.Plotter(title="CAD Viewer") + plotter.set_background(background) + + # Shaded solid surface + plotter.add_mesh(mesh, color=color, smooth_shading=True, show_edges=False) + + # Black edges along sharp corners only + edges = mesh.extract_feature_edges(feature_angle=20) + if edges.n_points > 0: + plotter.add_mesh(edges, color="black", line_width=2) + + plotter.add_axes() + plotter.reset_camera() + plotter.show() + + +# ── Call it here ─────────────────────────────────────────────────────────────── +visualize_step("file.step") \ No newline at end of file diff --git a/file.STEP b/file.STEP new file mode 100644 index 0000000..fd87973 --- /dev/null +++ b/file.STEP @@ -0,0 +1,528 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION (( 'STEP AP203' ), + '1' ); +FILE_NAME ('ASUS Monitor Riser.STEP', + '2026-02-16T23:11:55', + ( '' ), + ( '' ), + 'SwSTEP 2.0', + 'SolidWorks 2026', + '' ); +FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' )); +ENDSEC; + +DATA; +#1 = CARTESIAN_POINT ( 'NONE', ( 4.499999999999999112, 2.598076211353321341, 0.000000000000000000 ) ) ; +#2 = ORIENTED_EDGE ( 'NONE', *, *, #117, .T. ) ; +#3 = EDGE_LOOP ( 'NONE', ( #184, #154, #383, #102 ) ) ; +#4 = ADVANCED_FACE ( 'NONE', ( #279 ), #428, .T. ) ; +#5 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 0, 0, .AHEAD. ) ; +#6 = LINE ( 'NONE', #286, #25 ) ; +#7 = CALENDAR_DATE ( 2026, 16, 2 ) ; +#8 = DIRECTION ( 'NONE', ( 0.8660254037844385966, -0.4999999999999999445, 0.000000000000000000 ) ) ; +#9 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ; +#10 = ADVANCED_FACE ( 'NONE', ( #42 ), #478, .T. ) ; +#11 = CARTESIAN_POINT ( 'NONE', ( 7.500000000000000888, -4.330127018922190096, 35.00000000000000000 ) ) ; +#12 = CARTESIAN_POINT ( 'NONE', ( 4.499999999999999112, 2.598076211353321341, 35.00000000000000000 ) ) ; +#13 = VECTOR ( 'NONE', #321, 1000.000000000000227 ) ; +#14 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ; +#15 = CARTESIAN_POINT ( 'NONE', ( 7.499999999999998224, 4.330127018922198978, 0.000000000000000000 ) ) ; +#16 = ORIENTED_EDGE ( 'NONE', *, *, #480, .T. ) ; +#17 = EDGE_CURVE ( 'NONE', #24, #112, #198, .T. ) ; +#18 = DIRECTION ( 'NONE', ( 0.8660254037844385966, 0.5000000000000001110, 0.000000000000000000 ) ) ; +#19 = ORIENTED_EDGE ( 'NONE', *, *, #488, .F. ) ; +#20 = DIRECTION ( 'NONE', ( 0.5000000000000003331, 0.8660254037844385966, -0.000000000000000000 ) ) ; +#21 = ORIENTED_EDGE ( 'NONE', *, *, #374, .F. ) ; +#22 = DIRECTION ( 'NONE', ( -0.8660254037844385966, -0.5000000000000001110, 0.000000000000000000 ) ) ; +#23 = ADVANCED_FACE ( 'NONE', ( #426 ), #237, .F. ) ; +#24 = VERTEX_POINT ( 'NONE', #388 ) ; +#25 = VECTOR ( 'NONE', #370, 1000.000000000000000 ) ; +#26 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000002665, 4.330127018922194537, 35.00000000000000000 ) ) ; +#27 = EDGE_LOOP ( 'NONE', ( #31, #200, #315, #483 ) ) ; +#28 = LINE ( 'NONE', #351, #399 ) ; +#29 = DIRECTION ( 'NONE', ( 1.000000000000000000, 1.001543065824772852E-16, -0.000000000000000000 ) ) ; +#30 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) ); +#31 = ORIENTED_EDGE ( 'NONE', *, *, #389, .T. ) ; +#32 = VECTOR ( 'NONE', #214, 1000.000000000000000 ) ; +#33 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #326, #44, ( #425 ) ) ; +#34 = CARTESIAN_POINT ( 'NONE', ( 5.999999999999998224, 1.732050807568882966, 32.00000000000000000 ) ) ; +#35 = ORIENTED_EDGE ( 'NONE', *, *, #374, .T. ) ; +#36 = CLOSED_SHELL ( 'NONE', ( #23, #250, #244, #406, #197, #291, #10, #510, #56, #307, #4, #431, #317, #63, #395 ) ) ; +#37 = PLANE ( 'NONE', #371 ) ; +#38 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ; +#39 = DIRECTION ( 'NONE', ( -1.001543065824772852E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#40 = LOCAL_TIME ( 23, 11, 55.00000000000000000, #289 ) ; +#41 = APPROVAL ( #47, 'UNSPECIFIED' ) ; +#42 = FACE_OUTER_BOUND ( 'NONE', #74, .T. ) ; +#43 = LINE ( 'NONE', #12, #49 ) ; +#44 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ; +#45 = ADVANCED_BREP_SHAPE_REPRESENTATION ( 'ASUS Monitor Riser', ( #311, #373 ), #257 ) ; +#46 = DIRECTION ( 'NONE', ( 0.8660254037844383745, 0.5000000000000003331, -0.000000000000000000 ) ) ; +#47 = APPROVAL_STATUS ( 'not_yet_approved' ) ; +#48 = LINE ( 'NONE', #372, #116 ) ; +#49 = VECTOR ( 'NONE', #163, 1000.000000000000000 ) ; +#50 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#51 = DIRECTION ( 'NONE', ( -0.8660254037844385966, -0.5000000000000001110, 0.000000000000000000 ) ) ; +#52 = AXIS2_PLACEMENT_3D ( 'NONE', #119, #29, #194 ) ; +#53 = CARTESIAN_POINT ( 'NONE', ( -2.871873643000885652E-15, -8.660254037844389075, 35.00000000000000000 ) ) ; +#54 = VECTOR ( 'NONE', #427, 1000.000000000000000 ) ; +#55 = CARTESIAN_POINT ( 'NONE', ( -2.871873643000885652E-15, -8.660254037844389075, 0.000000000000000000 ) ) ; +#56 = ADVANCED_FACE ( 'NONE', ( #69 ), #282, .T. ) ; +#57 = AXIS2_PLACEMENT_3D ( 'NONE', #97, #142, #268 ) ; +#58 = ORIENTED_EDGE ( 'NONE', *, *, #182, .T. ) ; +#59 = FACE_OUTER_BOUND ( 'NONE', #27, .T. ) ; +#60 = EDGE_LOOP ( 'NONE', ( #300, #378, #313, #58 ) ) ; +#61 = DIRECTION ( 'NONE', ( -3.004629197474317569E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#62 = ORIENTED_EDGE ( 'NONE', *, *, #411, .F. ) ; +#63 = ADVANCED_FACE ( 'NONE', ( #71 ), #437, .T. ) ; +#64 = CARTESIAN_POINT ( 'NONE', ( 4.500000000000000000, -2.598076211353312903, 0.000000000000000000 ) ) ; +#65 = ORIENTED_EDGE ( 'NONE', *, *, #448, .T. ) ; +#66 = LINE ( 'NONE', #256, #249 ) ; +#67 = ORIENTED_EDGE ( 'NONE', *, *, #127, .T. ) ; +#68 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000001776, -4.330127018922194537, 0.000000000000000000 ) ) ; +#69 = FACE_OUTER_BOUND ( 'NONE', #462, .T. ) ; +#70 = FACE_OUTER_BOUND ( 'NONE', #467, .T. ) ; +#71 = FACE_OUTER_BOUND ( 'NONE', #465, .T. ) ; +#72 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #208, #439, ( #460 ) ) ; +#73 = FACE_BOUND ( 'NONE', #489, .T. ) ; +#74 = EDGE_LOOP ( 'NONE', ( #344, #16, #179, #386, #376, #504 ) ) ; +#75 = LINE ( 'NONE', #78, #79 ) ; +#76 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ; +#77 = EDGE_CURVE ( 'NONE', #275, #112, #243, .T. ) ; +#78 = CARTESIAN_POINT ( 'NONE', ( 4.500000000000000888, -4.330127018922190985, 0.000000000000000000 ) ) ; +#79 = VECTOR ( 'NONE', #396, 1000.000000000000000 ) ; +#80 = VERTEX_POINT ( 'NONE', #92 ) ; +#81 = LOCAL_TIME ( 23, 11, 55.00000000000000000, #5 ) ; +#82 = VECTOR ( 'NONE', #377, 1000.000000000000000 ) ; +#83 = LINE ( 'NONE', #171, #477 ) ; +#84 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 0, 0, .AHEAD. ) ; +#85 = LINE ( 'NONE', #404, #278 ) ; +#86 = LINE ( 'NONE', #129, #457 ) ; +#87 = EDGE_CURVE ( 'NONE', #459, #275, #83, .T. ) ; +#88 = MECHANICAL_CONTEXT ( 'NONE', #258, 'mechanical' ) ; +#89 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #144, 'distance_accuracy_value', 'NONE'); +#90 = LINE ( 'NONE', #11, #32 ) ; +#91 = APPROVAL_DATE_TIME ( #251, #133 ) ; +#92 = CARTESIAN_POINT ( 'NONE', ( 9.989125714785695141E-16, 8.660254037844390851, 35.00000000000000000 ) ) ; +#93 = EDGE_CURVE ( 'NONE', #269, #318, #442, .T. ) ; +#94 = PLANE ( 'NONE', #147 ) ; +#95 = FACE_OUTER_BOUND ( 'NONE', #187, .T. ) ; +#96 = VERTEX_POINT ( 'NONE', #288 ) ; +#97 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000001776, -4.330127018922194537, 35.00000000000000000 ) ) ; +#98 = EDGE_LOOP ( 'NONE', ( #305, #130, #150, #415 ) ) ; +#99 = EDGE_CURVE ( 'NONE', #417, #472, #48, .T. ) ; +#100 = AXIS2_PLACEMENT_3D ( 'NONE', #325, #353, #402 ) ; +#101 = LINE ( 'NONE', #227, #312 ) ; +#102 = ORIENTED_EDGE ( 'NONE', *, *, #99, .T. ) ; +#103 = CC_DESIGN_APPROVAL ( #354, ( #425 ) ) ; +#104 = FACE_OUTER_BOUND ( 'NONE', #233, .T. ) ; +#105 = ORIENTED_EDGE ( 'NONE', *, *, #93, .F. ) ; +#106 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#107 = ORIENTED_EDGE ( 'NONE', *, *, #17, .F. ) ; +#108 = CARTESIAN_POINT ( 'NONE', ( 1.500000000000001554, 6.062177826491073951, 32.00000000000000000 ) ) ; +#109 = EDGE_CURVE ( 'NONE', #80, #469, #85, .T. ) ; +#110 = VERTEX_POINT ( 'NONE', #412 ) ; +#111 = DIRECTION ( 'NONE', ( -0.8660254037844385966, 0.4999999999999998890, 0.000000000000000000 ) ) ; +#112 = VERTEX_POINT ( 'NONE', #246 ) ; +#113 = DIRECTION ( 'NONE', ( 0.8660254037844383745, 0.5000000000000003331, 0.000000000000000000 ) ) ; +#114 = VECTOR ( 'NONE', #363, 1000.000000000000000 ) ; +#115 = VERTEX_POINT ( 'NONE', #53 ) ; +#116 = VECTOR ( 'NONE', #14, 1000.000000000000000 ) ; +#117 = EDGE_CURVE ( 'NONE', #206, #459, #43, .T. ) ; +#118 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#119 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000002665, 4.330127018922194537, 35.00000000000000000 ) ) ; +#120 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ; +#121 = ORIENTED_EDGE ( 'NONE', *, *, #148, .T. ) ; +#122 = VECTOR ( 'NONE', #505, 1000.000000000000114 ) ; +#123 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#124 = CARTESIAN_POINT ( 'NONE', ( 1.500000000000001554, 6.062177826491073951, 0.000000000000000000 ) ) ; +#125 = DATE_TIME_ROLE ( 'classification_date' ) ; +#126 = DIRECTION ( 'NONE', ( -0.8660254037844385966, 0.4999999999999999445, 0.000000000000000000 ) ) ; +#127 = EDGE_CURVE ( 'NONE', #96, #139, #86, .T. ) ; +#128 = APPROVAL_ROLE ( '' ) ; +#129 = CARTESIAN_POINT ( 'NONE', ( -1.500000000000003997, -6.062177826491073063, 32.00000000000000000 ) ) ; +#130 = ORIENTED_EDGE ( 'NONE', *, *, #182, .F. ) ; +#131 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#132 = CARTESIAN_POINT ( 'NONE', ( 7.499999999999998224, 4.330127018922198978, 35.00000000000000000 ) ) ; +#133 = APPROVAL ( #490, 'UNSPECIFIED' ) ; +#134 = EDGE_CURVE ( 'NONE', #318, #302, #290, .T. ) ; +#135 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ; +#136 = CARTESIAN_POINT ( 'NONE', ( 7.500000000000000888, -4.330127018922190096, 0.000000000000000000 ) ) ; +#137 = VERTEX_POINT ( 'NONE', #408 ) ; +#138 = CARTESIAN_POINT ( 'NONE', ( 9.989125714785695141E-16, 8.660254037844390851, 35.00000000000000000 ) ) ; +#139 = VERTEX_POINT ( 'NONE', #368 ) ; +#140 = LINE ( 'NONE', #304, #433 ) ; +#141 = ORIENTED_EDGE ( 'NONE', *, *, #191, .F. ) ; +#142 = DIRECTION ( 'NONE', ( 0.5000000000000003331, 0.8660254037844385966, -0.000000000000000000 ) ) ; +#143 = ORIENTED_EDGE ( 'NONE', *, *, #366, .T. ) ; +#144 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) ); +#145 = LOCAL_TIME ( 23, 11, 55.00000000000000000, #160 ) ; +#146 = ORIENTED_EDGE ( 'NONE', *, *, #176, .F. ) ; +#147 = AXIS2_PLACEMENT_3D ( 'NONE', #138, #185, #18 ) ; +#148 = EDGE_CURVE ( 'NONE', #139, #206, #6, .T. ) ; +#149 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000002665, 4.330127018922194537, 35.00000000000000000 ) ) ; +#150 = ORIENTED_EDGE ( 'NONE', *, *, #360, .F. ) ; +#151 = CARTESIAN_POINT ( 'NONE', ( 7.500000000000000888, -4.330127018922190096, 0.000000000000000000 ) ) ; +#152 = ORIENTED_EDGE ( 'NONE', *, *, #463, .F. ) ; +#153 = PRODUCT ( 'ASUS Monitor Riser', 'ASUS Monitor Riser', '', ( #88 ) ) ; +#154 = ORIENTED_EDGE ( 'NONE', *, *, #266, .F. ) ; +#155 = EDGE_CURVE ( 'NONE', #417, #381, #90, .T. ) ; +#156 = APPROVAL_PERSON_ORGANIZATION ( #330, #133, #128 ) ; +#157 = PLANE ( 'NONE', #438 ) ; +#158 = VECTOR ( 'NONE', #331, 1000.000000000000000 ) ; +#159 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ; +#160 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 0, 0, .AHEAD. ) ; +#161 = ORIENTED_EDGE ( 'NONE', *, *, #366, .F. ) ; +#162 = APPROVAL_ROLE ( '' ) ; +#163 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ; +#164 = ORIENTED_EDGE ( 'NONE', *, *, #77, .F. ) ; +#165 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #50, #247, ( #460 ) ) ; +#166 = CALENDAR_DATE ( 2026, 16, 2 ) ; +#167 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ; +#168 = ORIENTED_EDGE ( 'NONE', *, *, #324, .F. ) ; +#169 = VECTOR ( 'NONE', #22, 1000.000000000000114 ) ; +#170 = APPROVAL_STATUS ( 'not_yet_approved' ) ; +#171 = CARTESIAN_POINT ( 'NONE', ( 5.999999999999998224, 1.732050807568882966, 0.000000000000000000 ) ) ; +#172 = VECTOR ( 'NONE', #215, 1000.000000000000114 ) ; +#173 = ORIENTED_EDGE ( 'NONE', *, *, #337, .T. ) ; +#174 = CARTESIAN_POINT ( 'NONE', ( 9.989125714785695141E-16, 8.660254037844390851, 0.000000000000000000 ) ) ; +#175 = LOCAL_TIME ( 23, 11, 55.00000000000000000, #84 ) ; +#176 = EDGE_CURVE ( 'NONE', #364, #96, #293, .T. ) ; +#177 = LINE ( 'NONE', #335, #158 ) ; +#178 = CARTESIAN_POINT ( 'NONE', ( 2.108875854551892711E-15, 5.196152422706635576, 0.000000000000000000 ) ) ; +#179 = ORIENTED_EDGE ( 'NONE', *, *, #276, .T. ) ; +#180 = PLANE ( 'NONE', #303 ) ; +#181 = VERTEX_POINT ( 'NONE', #174 ) ; +#182 = EDGE_CURVE ( 'NONE', #421, #419, #177, .T. ) ; +#183 = DIRECTION ( 'NONE', ( 0.8660254037844385966, -0.4999999999999999445, 0.000000000000000000 ) ) ; +#184 = ORIENTED_EDGE ( 'NONE', *, *, #298, .T. ) ; +#185 = DIRECTION ( 'NONE', ( 0.5000000000000001110, -0.8660254037844385966, 0.000000000000000000 ) ) ; +#186 = AXIS2_PLACEMENT_3D ( 'NONE', #299, #20, #452 ) ; +#187 = EDGE_LOOP ( 'NONE', ( #355, #196, #65, #391 ) ) ; +#188 = AXIS2_PLACEMENT_3D ( 'NONE', #248, #296, #450 ) ; +#189 = DIRECTION ( 'NONE', ( 1.001543065824772852E-16, -1.000000000000000000, 0.000000000000000000 ) ) ; +#190 = ORIENTED_EDGE ( 'NONE', *, *, #502, .F. ) ; +#191 = EDGE_CURVE ( 'NONE', #419, #137, #491, .T. ) ; +#192 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 32.00000000000000000 ) ) ; +#193 = AXIS2_PLACEMENT_3D ( 'NONE', #234, #474, #230 ) ; +#194 = DIRECTION ( 'NONE', ( -1.001543065824772852E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#195 = DIRECTION ( 'NONE', ( 3.004629197474317569E-16, -1.000000000000000000, 0.000000000000000000 ) ) ; +#196 = ORIENTED_EDGE ( 'NONE', *, *, #117, .F. ) ; +#197 = ADVANCED_FACE ( 'NONE', ( #365 ), #252, .F. ) ; +#198 = LINE ( 'NONE', #511, #306 ) ; +#199 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ; +#200 = ORIENTED_EDGE ( 'NONE', *, *, #99, .F. ) ; +#201 = CC_DESIGN_SECURITY_CLASSIFICATION ( #401, ( #460 ) ) ; +#202 = CARTESIAN_POINT ( 'NONE', ( 4.500000000000000888, -4.330127018922190985, 35.00000000000000000 ) ) ; +#203 = DIRECTION ( 'NONE', ( 1.000000000000000000, 1.001543065824772852E-16, -0.000000000000000000 ) ) ; +#204 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#205 = CARTESIAN_POINT ( 'NONE', ( -3.252606517456513302E-15, -5.196152422706632912, 35.00000000000000000 ) ) ; +#206 = VERTEX_POINT ( 'NONE', #492 ) ; +#207 = EDGE_CURVE ( 'NONE', #96, #318, #440, .T. ) ; +#208 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#209 = DIRECTION ( 'NONE', ( 0.8660254037844384856, -0.5000000000000001110, 0.000000000000000000 ) ) ; +#210 = DATE_AND_TIME ( #166, #223 ) ; +#211 = DIRECTION ( 'NONE', ( 0.8660254037844384856, -0.5000000000000002220, 0.000000000000000000 ) ) ; +#212 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ; +#213 = EDGE_CURVE ( 'NONE', #80, #181, #327, .T. ) ; +#214 = DIRECTION ( 'NONE', ( -3.004629197474317569E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#215 = DIRECTION ( 'NONE', ( -0.8660254037844385966, -0.5000000000000001110, 0.000000000000000000 ) ) ; +#216 = LINE ( 'NONE', #422, #475 ) ; +#217 = ORIENTED_EDGE ( 'NONE', *, *, #213, .T. ) ; +#218 = DIRECTION ( 'NONE', ( 0.8660254037844383745, 0.5000000000000003331, 0.000000000000000000 ) ) ; +#219 = ORIENTED_EDGE ( 'NONE', *, *, #298, .F. ) ; +#220 = EDGE_CURVE ( 'NONE', #229, #181, #329, .T. ) ; +#221 = PLANE ( 'NONE', #226 ) ; +#222 = ORIENTED_EDGE ( 'NONE', *, *, #134, .T. ) ; +#223 = LOCAL_TIME ( 23, 11, 55.00000000000000000, #245 ) ; +#224 = LINE ( 'NONE', #382, #319 ) ; +#225 = ORIENTED_EDGE ( 'NONE', *, *, #443, .F. ) ; +#226 = AXIS2_PLACEMENT_3D ( 'NONE', #493, #340, #259 ) ; +#227 = CARTESIAN_POINT ( 'NONE', ( -2.871873643000885652E-15, -8.660254037844389075, 35.00000000000000000 ) ) ; +#228 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #204, #242, ( #153 ) ) ; +#229 = VERTEX_POINT ( 'NONE', #15 ) ; +#230 = DIRECTION ( 'NONE', ( 3.004629197474317569E-16, -1.000000000000000000, 0.000000000000000000 ) ) ; +#231 = LINE ( 'NONE', #420, #241 ) ; +#232 = LINE ( 'NONE', #432, #13 ) ; +#233 = EDGE_LOOP ( 'NONE', ( #423, #190, #261, #217 ) ) ; +#234 = CARTESIAN_POINT ( 'NONE', ( 7.500000000000000888, -4.330127018922190096, 35.00000000000000000 ) ) ; +#235 = ORIENTED_EDGE ( 'NONE', *, *, #17, .T. ) ; +#236 = DIRECTION ( 'NONE', ( -1.000000000000000000, -3.004629197474317569E-16, 0.000000000000000000 ) ) ; +#237 = PLANE ( 'NONE', #280 ) ; +#238 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000001776, -4.330127018922194537, 35.00000000000000000 ) ) ; +#239 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 35.00000000000000000 ) ) ; +#240 = CC_DESIGN_APPROVAL ( #41, ( #401 ) ) ; +#241 = VECTOR ( 'NONE', #135, 1000.000000000000000 ) ; +#242 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ; +#243 = LINE ( 'NONE', #124, #172 ) ; +#244 = ADVANCED_FACE ( 'NONE', ( #59 ), #221, .F. ) ; +#245 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 0, 0, .AHEAD. ) ; +#246 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000002665, 2.598076211353316456, 0.000000000000000000 ) ) ; +#247 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ; +#248 = CARTESIAN_POINT ( 'NONE', ( 1.500000000000001554, 6.062177826491073951, 35.00000000000000000 ) ) ; +#249 = VECTOR ( 'NONE', #348, 1000.000000000000000 ) ; +#250 = ADVANCED_FACE ( 'NONE', ( #418 ), #416, .F. ) ; +#251 = DATE_AND_TIME ( #484, #81 ) ; +#252 = PLANE ( 'NONE', #384 ) ; +#253 = VECTOR ( 'NONE', #338, 1000.000000000000227 ) ; +#254 = VECTOR ( 'NONE', #46, 1000.000000000000114 ) ; +#255 = CARTESIAN_POINT ( 'NONE', ( -6.000000000000000888, -1.732050807568878303, 0.000000000000000000 ) ) ; +#256 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000002665, 4.330127018922194537, 32.00000000000000000 ) ) ; +#257 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #89 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #144, #30, #356 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) ); +#258 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ; +#259 = DIRECTION ( 'NONE', ( -0.8660254037844383745, -0.5000000000000003331, 0.000000000000000000 ) ) ; +#260 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #369, #334, ( #425 ) ) ; +#261 = ORIENTED_EDGE ( 'NONE', *, *, #109, .F. ) ; +#262 = LINE ( 'NONE', #346, #82 ) ; +#263 = ORIENTED_EDGE ( 'NONE', *, *, #87, .T. ) ; +#264 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000001776, -2.598076211353316900, 32.00000000000000000 ) ) ; +#265 = EDGE_LOOP ( 'NONE', ( #393, #430, #225, #456 ) ) ; +#266 = EDGE_CURVE ( 'NONE', #381, #229, #231, .T. ) ; +#267 = CC_DESIGN_APPROVAL ( #133, ( #460 ) ) ; +#268 = DIRECTION ( 'NONE', ( -0.8660254037844384856, 0.5000000000000002220, 0.000000000000000000 ) ) ; +#269 = VERTEX_POINT ( 'NONE', #308 ) ; +#270 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000002665, 4.330127018922194537, 35.00000000000000000 ) ) ; +#271 = EDGE_LOOP ( 'NONE', ( #19, #161, #121, #2 ) ) ; +#272 = DIRECTION ( 'NONE', ( -0.8660254037844385966, -0.5000000000000001110, 0.000000000000000000 ) ) ; +#273 = ORIENTED_EDGE ( 'NONE', *, *, #93, .T. ) ; +#274 = LINE ( 'NONE', #277, #310 ) ; +#275 = VERTEX_POINT ( 'NONE', #178 ) ; +#276 = EDGE_CURVE ( 'NONE', #115, #417, #101, .T. ) ; +#277 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000002665, 4.330127018922194537, 0.000000000000000000 ) ) ; +#278 = VECTOR ( 'NONE', #51, 1000.000000000000114 ) ; +#279 = FACE_OUTER_BOUND ( 'NONE', #501, .T. ) ; +#280 = AXIS2_PLACEMENT_3D ( 'NONE', #359, #203, #39 ) ; +#281 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ; +#282 = PLANE ( 'NONE', #52 ) ; +#283 = EDGE_CURVE ( 'NONE', #115, #137, #262, .T. ) ; +#284 = CALENDAR_DATE ( 2026, 16, 2 ) ; +#285 = AXIS2_PLACEMENT_3D ( 'NONE', #192, #106, #471 ) ; +#286 = CARTESIAN_POINT ( 'NONE', ( 4.500000000000000888, -4.330127018922190985, 32.00000000000000000 ) ) ; +#287 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #9 ) ; +#288 = CARTESIAN_POINT ( 'NONE', ( -3.656576274328556927E-15, -5.196152422706633800, 32.00000000000000000 ) ) ; +#289 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 0, 0, .AHEAD. ) ; +#290 = LINE ( 'NONE', #405, #254 ) ; +#291 = ADVANCED_FACE ( 'NONE', ( #104 ), #94, .F. ) ; +#292 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#293 = LINE ( 'NONE', #447, #392 ) ; +#294 = APPROVAL_PERSON_ORGANIZATION ( #362, #41, #481 ) ; +#295 = SHAPE_DEFINITION_REPRESENTATION ( #397, #45 ) ; +#296 = DIRECTION ( 'NONE', ( 0.5000000000000001110, -0.8660254037844385966, 0.000000000000000000 ) ) ; +#297 = CARTESIAN_POINT ( 'NONE', ( 7.499999999999998224, 4.330127018922198978, 35.00000000000000000 ) ) ; +#298 = EDGE_CURVE ( 'NONE', #472, #229, #500, .T. ) ; +#299 = CARTESIAN_POINT ( 'NONE', ( -6.000000000000000888, -1.732050807568878303, 35.00000000000000000 ) ) ; +#300 = ORIENTED_EDGE ( 'NONE', *, *, #191, .T. ) ; +#301 = DIRECTION ( 'NONE', ( -0.5000000000000000000, -0.8660254037844387076, 0.000000000000000000 ) ) ; +#302 = VERTEX_POINT ( 'NONE', #64 ) ; +#303 = AXIS2_PLACEMENT_3D ( 'NONE', #496, #301, #183 ) ; +#304 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000002665, 4.330127018922194537, 0.000000000000000000 ) ) ; +#305 = ORIENTED_EDGE ( 'NONE', *, *, #470, .T. ) ; +#306 = VECTOR ( 'NONE', #76, 1000.000000000000000 ) ; +#307 = ADVANCED_FACE ( 'NONE', ( #380 ), #498, .T. ) ; +#308 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000001776, -2.598076211353316900, 0.000000000000000000 ) ) ; +#309 = ORIENTED_EDGE ( 'NONE', *, *, #127, .F. ) ; +#310 = VECTOR ( 'NONE', #503, 1000.000000000000000 ) ; +#311 = MANIFOLD_SOLID_BREP ( 'Shell1', #36 ) ; +#312 = VECTOR ( 'NONE', #218, 1000.000000000000114 ) ; +#313 = ORIENTED_EDGE ( 'NONE', *, *, #480, .F. ) ; +#314 = CARTESIAN_POINT ( 'NONE', ( 7.500000000000000888, -4.330127018922190096, 35.00000000000000000 ) ) ; +#315 = ORIENTED_EDGE ( 'NONE', *, *, #276, .F. ) ; +#316 = FACE_OUTER_BOUND ( 'NONE', #3, .T. ) ; +#317 = ADVANCED_FACE ( 'NONE', ( #95 ), #180, .T. ) ; +#318 = VERTEX_POINT ( 'NONE', #451 ) ; +#319 = VECTOR ( 'NONE', #375, 1000.000000000000000 ) ; +#320 = ORIENTED_EDGE ( 'NONE', *, *, #207, .F. ) ; +#321 = DIRECTION ( 'NONE', ( 0.8660254037844384856, -0.5000000000000001110, 0.000000000000000000 ) ) ; +#322 = ORIENTED_EDGE ( 'NONE', *, *, #488, .T. ) ; +#323 = VECTOR ( 'NONE', #458, 1000.000000000000000 ) ; +#324 = EDGE_CURVE ( 'NONE', #181, #110, #454, .T. ) ; +#325 = CARTESIAN_POINT ( 'NONE', ( -1.500000000000003997, -6.062177826491073063, 35.00000000000000000 ) ) ; +#326 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#327 = LINE ( 'NONE', #482, #473 ) ; +#328 = EDGE_LOOP ( 'NONE', ( #105, #339, #508, #341 ) ) ; +#329 = LINE ( 'NONE', #445, #253 ) ; +#330 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#331 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ; +#332 = ORIENTED_EDGE ( 'NONE', *, *, #448, .F. ) ; +#333 = APPROVAL_PERSON_ORGANIZATION ( #123, #354, #162 ) ; +#334 = DATE_TIME_ROLE ( 'creation_date' ) ; +#335 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000001776, -4.330127018922194537, 35.00000000000000000 ) ) ; +#336 = DIRECTION ( 'NONE', ( -0.5000000000000000000, -0.8660254037844387076, 0.000000000000000000 ) ) ; +#337 = EDGE_CURVE ( 'NONE', #112, #269, #140, .T. ) ; +#338 = DIRECTION ( 'NONE', ( -0.8660254037844385966, 0.4999999999999998890, 0.000000000000000000 ) ) ; +#339 = ORIENTED_EDGE ( 'NONE', *, *, #343, .F. ) ; +#340 = DIRECTION ( 'NONE', ( -0.5000000000000004441, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#341 = ORIENTED_EDGE ( 'NONE', *, *, #207, .T. ) ; +#342 = CARTESIAN_POINT ( 'NONE', ( 9.989125714785695141E-16, 8.660254037844390851, 0.000000000000000000 ) ) ; +#343 = EDGE_CURVE ( 'NONE', #364, #269, #216, .T. ) ; +#344 = ORIENTED_EDGE ( 'NONE', *, *, #360, .T. ) ; +#345 = VECTOR ( 'NONE', #209, 1000.000000000000227 ) ; +#346 = CARTESIAN_POINT ( 'NONE', ( -2.871873643000885652E-15, -8.660254037844389075, 35.00000000000000000 ) ) ; +#347 = EDGE_LOOP ( 'NONE', ( #21, #152, #332, #453, #309, #146 ) ) ; +#348 = DIRECTION ( 'NONE', ( 1.001543065824772852E-16, -1.000000000000000000, 0.000000000000000000 ) ) ; +#349 = ORIENTED_EDGE ( 'NONE', *, *, #463, .T. ) ; +#350 = VECTOR ( 'NONE', #113, 1000.000000000000114 ) ; +#351 = CARTESIAN_POINT ( 'NONE', ( 7.499999999999998224, 4.330127018922198978, 35.00000000000000000 ) ) ; +#352 = VECTOR ( 'NONE', #61, 1000.000000000000000 ) ; +#353 = DIRECTION ( 'NONE', ( -0.5000000000000004441, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#354 = APPROVAL ( #170, 'UNSPECIFIED' ) ; +#355 = ORIENTED_EDGE ( 'NONE', *, *, #87, .F. ) ; +#356 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) ); +#357 = ORIENTED_EDGE ( 'NONE', *, *, #337, .F. ) ; +#358 = FACE_OUTER_BOUND ( 'NONE', #347, .T. ) ; +#359 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000002665, 4.330127018922194537, 35.00000000000000000 ) ) ; +#360 = EDGE_CURVE ( 'NONE', #469, #421, #461, .T. ) ; +#361 = ORIENTED_EDGE ( 'NONE', *, *, #389, .F. ) ; +#362 = PERSON_AND_ORGANIZATION ( #120, #38 ) ; +#363 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ; +#364 = VERTEX_POINT ( 'NONE', #264 ) ; +#365 = FACE_OUTER_BOUND ( 'NONE', #265, .T. ) ; +#366 = EDGE_CURVE ( 'NONE', #139, #302, #224, .T. ) ; +#367 = APPROVAL_DATE_TIME ( #444, #41 ) ; +#368 = CARTESIAN_POINT ( 'NONE', ( 4.500000000000000000, -2.598076211353312903, 32.00000000000000000 ) ) ; +#369 = DATE_AND_TIME ( #449, #175 ) ; +#370 = DIRECTION ( 'NONE', ( -3.004629197474317569E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#371 = AXIS2_PLACEMENT_3D ( 'NONE', #118, #390, #281 ) ; +#372 = CARTESIAN_POINT ( 'NONE', ( 7.500000000000000888, -4.330127018922190096, 35.00000000000000000 ) ) ; +#373 = AXIS2_PLACEMENT_3D ( 'NONE', #446, #409, #292 ) ; +#374 = EDGE_CURVE ( 'NONE', #24, #364, #66, .T. ) ; +#375 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ; +#376 = ORIENTED_EDGE ( 'NONE', *, *, #443, .T. ) ; +#377 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ; +#378 = ORIENTED_EDGE ( 'NONE', *, *, #283, .F. ) ; +#379 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #153 ) ) ; +#380 = FACE_OUTER_BOUND ( 'NONE', #328, .T. ) ; +#381 = VERTEX_POINT ( 'NONE', #297 ) ; +#382 = CARTESIAN_POINT ( 'NONE', ( 4.500000000000000000, -2.598076211353312903, 35.00000000000000000 ) ) ; +#383 = ORIENTED_EDGE ( 'NONE', *, *, #155, .F. ) ; +#384 = AXIS2_PLACEMENT_3D ( 'NONE', #132, #336, #8 ) ; +#385 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ; +#386 = ORIENTED_EDGE ( 'NONE', *, *, #155, .T. ) ; +#387 = FACE_OUTER_BOUND ( 'NONE', #271, .T. ) ; +#388 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000002665, 2.598076211353316456, 32.00000000000000000 ) ) ; +#389 = EDGE_CURVE ( 'NONE', #137, #472, #413, .T. ) ; +#390 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#391 = ORIENTED_EDGE ( 'NONE', *, *, #411, .T. ) ; +#392 = VECTOR ( 'NONE', #410, 1000.000000000000114 ) ; +#393 = ORIENTED_EDGE ( 'NONE', *, *, #220, .T. ) ; +#394 = VECTOR ( 'NONE', #211, 1000.000000000000114 ) ; +#395 = ADVANCED_FACE ( 'NONE', ( #358 ), #464, .F. ) ; +#396 = DIRECTION ( 'NONE', ( -3.004629197474317569E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#397 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #425 ) ; +#398 = VERTEX_POINT ( 'NONE', #468 ) ; +#399 = VECTOR ( 'NONE', #111, 1000.000000000000227 ) ; +#400 = DESIGN_CONTEXT ( 'detailed design', #9, 'design' ) ; +#401 = SECURITY_CLASSIFICATION ( '', '', #407 ) ; +#402 = DIRECTION ( 'NONE', ( -0.8660254037844383745, -0.5000000000000003331, 0.000000000000000000 ) ) ; +#403 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #258 ) ; +#404 = CARTESIAN_POINT ( 'NONE', ( 9.989125714785695141E-16, 8.660254037844390851, 35.00000000000000000 ) ) ; +#405 = CARTESIAN_POINT ( 'NONE', ( -1.500000000000003997, -6.062177826491073063, 0.000000000000000000 ) ) ; +#406 = ADVANCED_FACE ( 'NONE', ( #316 ), #436, .F. ) ; +#407 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ; +#408 = CARTESIAN_POINT ( 'NONE', ( -2.871873643000885652E-15, -8.660254037844389075, 0.000000000000000000 ) ) ; +#409 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#410 = DIRECTION ( 'NONE', ( 0.8660254037844384856, -0.5000000000000002220, 0.000000000000000000 ) ) ; +#411 = EDGE_CURVE ( 'NONE', #398, #275, #424, .T. ) ; +#412 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000002665, 4.330127018922194537, 0.000000000000000000 ) ) ; +#413 = LINE ( 'NONE', #55, #350 ) ; +#414 = VECTOR ( 'NONE', #272, 1000.000000000000114 ) ; +#415 = ORIENTED_EDGE ( 'NONE', *, *, #502, .T. ) ; +#416 = PLANE ( 'NONE', #57 ) ; +#417 = VERTEX_POINT ( 'NONE', #314 ) ; +#418 = FACE_OUTER_BOUND ( 'NONE', #60, .T. ) ; +#419 = VERTEX_POINT ( 'NONE', #68 ) ; +#420 = CARTESIAN_POINT ( 'NONE', ( 7.499999999999998224, 4.330127018922198978, 35.00000000000000000 ) ) ; +#421 = VERTEX_POINT ( 'NONE', #238 ) ; +#422 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000001776, -2.598076211353317344, 35.00000000000000000 ) ) ; +#423 = ORIENTED_EDGE ( 'NONE', *, *, #324, .T. ) ; +#424 = LINE ( 'NONE', #509, #479 ) ; +#425 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #460, #400 ) ; +#426 = FACE_OUTER_BOUND ( 'NONE', #98, .T. ) ; +#427 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ; +#428 = PLANE ( 'NONE', #100 ) ; +#429 = LINE ( 'NONE', #149, #54 ) ; +#430 = ORIENTED_EDGE ( 'NONE', *, *, #213, .F. ) ; +#431 = ADVANCED_FACE ( 'NONE', ( #387 ), #157, .T. ) ; +#432 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000001776, -4.330127018922194537, 35.00000000000000000 ) ) ; +#433 = VECTOR ( 'NONE', #189, 1000.000000000000000 ) ; +#434 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#435 = AXIS2_PLACEMENT_3D ( 'NONE', #239, #434, #159 ) ; +#436 = PLANE ( 'NONE', #193 ) ; +#437 = PLANE ( 'NONE', #188 ) ; +#438 = AXIS2_PLACEMENT_3D ( 'NONE', #202, #236, #195 ) ; +#439 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ; +#440 = LINE ( 'NONE', #205, #114 ) ; +#441 = DATE_AND_TIME ( #7, #145 ) ; +#442 = LINE ( 'NONE', #255, #394 ) ; +#443 = EDGE_CURVE ( 'NONE', #381, #80, #28, .T. ) ; +#444 = DATE_AND_TIME ( #284, #40 ) ; +#445 = CARTESIAN_POINT ( 'NONE', ( 7.499999999999998224, 4.330127018922198978, 0.000000000000000000 ) ) ; +#446 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#447 = CARTESIAN_POINT ( 'NONE', ( -6.000000000000000888, -1.732050807568878303, 32.00000000000000000 ) ) ; +#448 = EDGE_CURVE ( 'NONE', #206, #398, #466, .T. ) ; +#449 = CALENDAR_DATE ( 2026, 16, 2 ) ; +#450 = DIRECTION ( 'NONE', ( 0.8660254037844385966, 0.5000000000000001110, 0.000000000000000000 ) ) ; +#451 = CARTESIAN_POINT ( 'NONE', ( -3.656576274328556927E-15, -5.196152422706633800, 0.000000000000000000 ) ) ; +#452 = DIRECTION ( 'NONE', ( -0.8660254037844384856, 0.5000000000000002220, 0.000000000000000000 ) ) ; +#453 = ORIENTED_EDGE ( 'NONE', *, *, #148, .F. ) ; +#454 = LINE ( 'NONE', #342, #169 ) ; +#455 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #210, #125, ( #401 ) ) ; +#456 = ORIENTED_EDGE ( 'NONE', *, *, #266, .T. ) ; +#457 = VECTOR ( 'NONE', #485, 1000.000000000000114 ) ; +#458 = DIRECTION ( 'NONE', ( 1.001543065824772729E-16, -1.000000000000000000, 0.000000000000000000 ) ) ; +#459 = VERTEX_POINT ( 'NONE', #1 ) ; +#460 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #153, .NOT_KNOWN. ) ; +#461 = LINE ( 'NONE', #26, #323 ) ; +#462 = EDGE_LOOP ( 'NONE', ( #357, #107, #35, #497 ) ) ; +#463 = EDGE_CURVE ( 'NONE', #398, #24, #507, .T. ) ; +#464 = PLANE ( 'NONE', #285 ) ; +#465 = EDGE_LOOP ( 'NONE', ( #164, #62, #349, #235 ) ) ; +#466 = LINE ( 'NONE', #34, #122 ) ; +#467 = EDGE_LOOP ( 'NONE', ( #506, #168, #499, #219, #361, #141 ) ) ; +#468 = CARTESIAN_POINT ( 'NONE', ( 2.108875854551892711E-15, 5.196152422706635576, 32.00000000000000000 ) ) ; +#469 = VERTEX_POINT ( 'NONE', #270 ) ; +#470 = EDGE_CURVE ( 'NONE', #110, #419, #274, .T. ) ; +#471 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ; +#472 = VERTEX_POINT ( 'NONE', #151 ) ; +#473 = VECTOR ( 'NONE', #167, 1000.000000000000000 ) ; +#474 = DIRECTION ( 'NONE', ( -1.000000000000000000, -3.004629197474317569E-16, 0.000000000000000000 ) ) ; +#475 = VECTOR ( 'NONE', #385, 1000.000000000000000 ) ; +#476 = ORIENTED_EDGE ( 'NONE', *, *, #77, .T. ) ; +#477 = VECTOR ( 'NONE', #126, 1000.000000000000114 ) ; +#478 = PLANE ( 'NONE', #435 ) ; +#479 = VECTOR ( 'NONE', #199, 1000.000000000000000 ) ; +#480 = EDGE_CURVE ( 'NONE', #421, #115, #232, .T. ) ; +#481 = APPROVAL_ROLE ( '' ) ; +#482 = CARTESIAN_POINT ( 'NONE', ( 9.989125714785695141E-16, 8.660254037844390851, 35.00000000000000000 ) ) ; +#483 = ORIENTED_EDGE ( 'NONE', *, *, #283, .T. ) ; +#484 = CALENDAR_DATE ( 2026, 16, 2 ) ; +#485 = DIRECTION ( 'NONE', ( 0.8660254037844383745, 0.5000000000000003331, -0.000000000000000000 ) ) ; +#486 = APPROVAL_DATE_TIME ( #441, #354 ) ; +#487 = CARTESIAN_POINT ( 'NONE', ( -7.500000000000001776, -4.330127018922194537, 0.000000000000000000 ) ) ; +#488 = EDGE_CURVE ( 'NONE', #302, #459, #75, .T. ) ; +#489 = EDGE_LOOP ( 'NONE', ( #476, #173, #273, #222, #322, #263 ) ) ; +#490 = APPROVAL_STATUS ( 'not_yet_approved' ) ; +#491 = LINE ( 'NONE', #487, #345 ) ; +#492 = CARTESIAN_POINT ( 'NONE', ( 4.499999999999999112, 2.598076211353321341, 32.00000000000000000 ) ) ; +#493 = CARTESIAN_POINT ( 'NONE', ( -2.871873643000885652E-15, -8.660254037844389075, 35.00000000000000000 ) ) ; +#494 = ORIENTED_EDGE ( 'NONE', *, *, #134, .F. ) ; +#495 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #131, #212, ( #401 ) ) ; +#496 = CARTESIAN_POINT ( 'NONE', ( 5.999999999999998224, 1.732050807568882966, 35.00000000000000000 ) ) ; +#497 = ORIENTED_EDGE ( 'NONE', *, *, #343, .T. ) ; +#498 = PLANE ( 'NONE', #186 ) ; +#499 = ORIENTED_EDGE ( 'NONE', *, *, #220, .F. ) ; +#500 = LINE ( 'NONE', #136, #352 ) ; +#501 = EDGE_LOOP ( 'NONE', ( #494, #320, #67, #143 ) ) ; +#502 = EDGE_CURVE ( 'NONE', #469, #110, #429, .T. ) ; +#503 = DIRECTION ( 'NONE', ( 1.001543065824772729E-16, -1.000000000000000000, 0.000000000000000000 ) ) ; +#504 = ORIENTED_EDGE ( 'NONE', *, *, #109, .T. ) ; +#505 = DIRECTION ( 'NONE', ( -0.8660254037844385966, 0.4999999999999999445, 0.000000000000000000 ) ) ; +#506 = ORIENTED_EDGE ( 'NONE', *, *, #470, .F. ) ; +#507 = LINE ( 'NONE', #108, #414 ) ; +#508 = ORIENTED_EDGE ( 'NONE', *, *, #176, .T. ) ; +#509 = CARTESIAN_POINT ( 'NONE', ( 2.168404344971008868E-15, 5.196152422706635576, 35.00000000000000000 ) ) ; +#510 = ADVANCED_FACE ( 'NONE', ( #73, #70 ), #37, .F. ) ; +#511 = CARTESIAN_POINT ( 'NONE', ( -4.500000000000002665, 2.598076211353316456, 35.00000000000000000 ) ) ; +ENDSEC; +END-ISO-10303-21; diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3a04f7e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +cadquery +numpy +pyvista \ No newline at end of file