├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── examples
├── 3D_Printer_Extruder_Support.py
├── Braille.py
├── Classic_OCC_Bottle.py
├── Involute_Gear.py
├── Iqon-Building
├── Numpy.py
├── Panel_with_Various_Holes_for_Connector_Installation.py
├── Parametric_Enclosure.py
├── Reinforce_Junction_UsingFillet.py
├── Remote_Enclosure.py
├── Resin_Mold.py
├── Shelled_Cube_Inside_Chamfer_With_Logical_Selector_Operators.py
├── Tetrakaidecahedron.py
├── Thread.py
├── cylindrical_gear.py
├── door.py
├── hexagonal_drawers
│ ├── assembly.py
│ ├── base.py
│ ├── hmd.jpg
│ ├── hmd.png
│ ├── organiser_3_125_bits.py
│ ├── organiser_blank.py
│ └── organiser_collets.py
├── images
│ ├── Classic_OCC_Bottle.png
│ ├── Involute_Gear.png
│ ├── Numpy.png
│ ├── Parametric_Enclosure.png
│ ├── Remote_Enclosure.png
│ ├── Tetrakaidecahedron.png
│ ├── Thread.png
│ ├── braille.png
│ ├── cylindrical_gear.png
│ ├── door.png
│ ├── panel_with_various_holes.png
│ ├── reinforce_junction_using_fillet.png
│ ├── resin_mold.png
│ ├── shelled_cube.png
│ └── tray.png
├── tray.py
├── truss-gherkin-building
└── vslot-2020_1.dxf
├── grouped-tiles
├── partcad.yaml
└── tutorials
├── Ex000 Start Here.ipynb
├── Ex001 Simple Block.ipynb
└── README.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | # don't display diffs or treat the following as text files
2 | *.png -text -diff
3 | *.jpg -text -diff
4 | *.dxf -text -diff
5 |
6 | # Jupyter notebooks should be classified as documentation and not counted as lines of code
7 | *.ipynb linguist-documentation -diff -text
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .ipynb_checkpoints
2 | tray
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Dave Cowden
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # cadquery-contrib
2 | A place to share CadQuery scripts, modules, tutorials and projects
3 |
4 | ## Contents
5 |
6 | ### Examples
7 |
8 | * [Braille.py](examples/Braille.py) - Configurable braille label/sign generator where user inputs text and the braille dots are generated automatically
9 |
10 |
11 |
12 |
13 | * [Panel_with_Various_Holes_for_Connector_Installation.py](examples/Panel_with_Various_Holes_for_Connector_Installation.py) - Example of creating various knock-out holes in a panel
14 |
15 |
16 |
17 | * [Parametric_Enclosure.py](examples/Parametric_Enclosure.py) - Standard CadQuery example of an electronics enclosure with a base, fastener bosses, and a lid
18 |
19 |
20 |
21 | * [Reinforce_Junction_UsingFillet.py](examples/Reinforce_Junction_UsingFillet.py) - Example of using fillets to reinforce a joint, reducing stress concentrators at the joint
22 |
23 |
24 |
25 |
26 | * [Resin_Mold.py](examples/Resin_Mold.py) - A resin casting mold created to repair the strain-relief on an expensive cable
27 |
28 |
29 |
30 | * [Shelled_Cube_Inside_Chamfer_With_Logical_Selector_Operators.py](examples/Shelled_Cube_Inside_Chamfer_With_Logical_Selector_Operators.py) - Shows a somewhat more advanced use of selectors to chamfer the inside edges of a shelled cube
31 |
32 |
33 |
34 | * [tray.py](examples/tray.py) - Manual assembly example including export to DXF for laser cutting
35 |
36 |
37 |
38 | * [Tetrakaidecahedron.py](examples/Tetrakaidecahedron.py) - The Tetrakaidecahedron volume (Kelvin Cell) can pave 3D space and is often encountered in cristallography.
39 |
40 |
41 |
42 | * [cylindrical_gear.py](examples/cylindrical_gear.py) - A cylindrical straight or helix gear
43 |
44 |
45 |
46 | * [Remote_Enclosure.py](examples/Remote_Enclosure.py) - An electronics enclosure created to be mounted on motorcycle handlebars
47 |
48 |
49 |
50 | * [Classic_OCC_Bottle.py](examples/Classic_OCC_Bottle.py) - Standard OCCT bottle example, implemented using the CadQuery API
51 |
52 |
53 |
54 | * [Numpy.py](examples/Numpy.py) - Example of integrating Numpy with CadQuery
55 |
56 |
57 |
58 | * [3D_Printer_Extruder_Support.py](examples/3D_Printer_Extruder_Support.py) - Designed for mounting hotend to an i3 X-carriage inspired by the P3steel Toolson
59 |
60 | * [Involute_Gear.py](examples/Involute_Gear.py) - Fast involute gear generator.
61 |
62 |
63 |
64 | * [Thread.py](examples/Thread.py) - Thread example.
65 |
66 |
67 |
68 | * [Hexagonal modular drawers](examples/hexagonal_drawers/assembly.py) - Inspired by [this on Prusa Printers](https://www.prusaprinters.org/prints/54113-hexagonal-organizer-system), these drawers are 3D printed (without needing supports) and clip together.
69 |
70 |
71 |
72 |
73 | * [Digital sundial](https://github.com/lopezsolerluis/reloj-de-sol-digital-cadquery) - Inspired by [Mojoptix's digital sundial](https://www.thingiverse.com/thing:1068443) and derived from [my own version](https://github.com/lopezsolerluis/reloj-de-sol-digital) in OpenSCAD.
74 |
75 |
76 |
77 | * [Truss Gherkin with spirals](https://github.com/moOsama76/cadquery-contrib/blob/moOsama76-patch-1/examples/truss-gherkin-building) - Inspired by [3D Beast](https://www.youtube.com/watch?v=mwJQm70NRYY)
78 |
79 |
80 |
81 | * [IQON Building following a spline](https://github.com/moOsama76/cadquery-contrib/blob/moOsama76-patch-1/examples/Iqon-Building) - Inspired by [3D Beast](https://www.youtube.com/watch?v=wQvikT0DUCU)
82 |
83 |
84 |
85 | * [Tiles any shape](https://github.com/moOsama76/cadquery-contrib/blob/moOsama76-patch-1/grouped-tiles) - grid of tiles constrained to any 2D shape and seperated into individual groups
86 |
87 |
88 |
89 | ### Tutorials
90 |
91 | * [Ex000 Start Here.ipynb](tutorials/Ex000%20Start%20Here.ipynb) - iPython notebook that is the entry point for a set of CadQuery tutorials
92 | * [Ex001 Simple Block.ipynb](tutorials/Ex001%20Simple%20Block.ipynb) - iPython notebook that shows how to create an extremely simple block
93 |
94 |
--------------------------------------------------------------------------------
/examples/3D_Printer_Extruder_Support.py:
--------------------------------------------------------------------------------
1 | # 3d printer for mounting hotend to X-carriage inspired by the P3steel Toolson
2 | # edition - http://www.thingiverse.com/thing:1054909
3 | import cadquery as cq
4 |
5 |
6 | def move_to_center(cqObject, shape):
7 | '''
8 | Moves the origin of the current Workplane to the center of a given
9 | geometry object
10 | '''
11 |
12 | # transform to workplane local coordinates
13 | shape_center = shape.Center().sub(cqObject.plane.origin)
14 |
15 | # project onto plane using dot product
16 | x_offset = shape_center.dot(cqObject.plane.xDir)
17 | y_offset = shape_center.dot(cqObject.plane.yDir)
18 |
19 | return cqObject.center(x_offset, y_offset)
20 |
21 | # Parameter definitions
22 |
23 | main_plate_size_y = 67 # size of the main plate in y direction
24 | main_plate_size_x = 50. # size of the main plate in x direction
25 | main_plate_thickness = 10. # thickness of the main plate
26 |
27 | wing_size_x = 10. # size of the side wing supporting the bridge in x direction
28 | wing_size_y = 10. # size of the side wing supporting the bridge in y direction
29 |
30 | bridge_depth = 35. # depth of the bridge
31 |
32 | support_depth = 18. # depth of the bridge support
33 |
34 | cutout_depth = 15. # depth of the hotend cutout
35 | cutout_rad = 8. # radius of the cutout (cf groove mount sizes of E3D hotends)
36 | cutout_offset = 2. # delta radius of the second cutout (cf groove mount sizes of E3D hotends)
37 |
38 | extruder_hole_spacing = 50. # spacing of the extruder mounting holes (Wade's geared extruder)
39 |
40 | m4_predrill = 3.7 # hole diameter for m4 tapping
41 | m3_predrill = 2.5 # hole diameter for m3 tapping
42 | m3_cbore = 5. # counterbore size for m3 socket screw
43 |
44 | mounting_hole_spacing = 28. # spacing of the mounting holes for attaching to x-carriage
45 |
46 | aux_hole_depth = 6. # depth of the auxiliary holes at the sides of the object
47 | aux_hole_spacing = 5. # spacing of the auxiliary holes within a group
48 | aux_hole_N = 2 # number of the auxiliary hole per group
49 |
50 | # make the main plate
51 | res = cq.Workplane('front').box(main_plate_size_x,
52 | main_plate_size_y,
53 | main_plate_thickness)
54 |
55 |
56 | def add_wing(obj, sign=1):
57 | '''
58 | Adds a wing to the main plate, defined to keep the code DRY
59 | '''
60 | obj = obj.workplane()\
61 | .hLine(sign*wing_size_x)\
62 | .vLine(-wing_size_y)\
63 | .line(-sign*wing_size_x, -2*wing_size_y)\
64 | .close().extrude(main_plate_thickness)
65 | return obj
66 |
67 | # add wings
68 |
69 | # add right wing
70 | res = res.faces('XY')
71 | res = add_wing(res)
72 |
73 | # store sides of the plate for further reuse, their area is used later on to calculate "optimum" spacing of the aux hole groups
74 | face_right = res.faces('>X[1]').val()
75 | face_left = res.faces('>X[-2]').val()
76 |
77 | # add left wing
78 | res = res.faces('Y').vertices('Z') # select top face
83 | e = wp.edges('>Y') # select most extreme edge in Y direction
84 |
85 | bridge_length = e.val().Length() # the width of the bridge equals to the length of the selected edge
86 |
87 | # draw the bridge x-section and extrude
88 | res = e.vertices('Z[1]') # take all faces in Z direction and select the middle one; note the new selector syntax
96 | edge = faces.edges('>Y') # select the top edge of this face...
97 | res = move_to_center(faces.workplane(), edge.val()).\
98 | transformed(rotate=(0, 90, 0)) # ...and make a workplane that is centered in this edge and oriented along X direction
99 |
100 | res = res.vLine(-support_depth).\
101 | line(-support_depth, support_depth).\
102 | close() # draw a triangle
103 |
104 | res = res.extrude(main_plate_size_x/2, both=True, clean=True) # extrude the triangle, now the bridge has a nice support making it much more stiff
105 |
106 | # Start cutting out a slot for hotend mounting
107 | face = res.faces('>Y') # select the most extreme face in Y direction, i.e. top of the "bridge"
108 | res = move_to_center(face.workplane(), face.edges('>Z').val()) # shift the workplane to the center of the most extreme edge of the bridge
109 |
110 |
111 | def make_slot(obj, depth=None):
112 | '''
113 | Utility function that makes a slot for hotend mounting
114 | '''
115 | obj = obj.moveTo(cutout_rad, -cutout_depth).\
116 | threePointArc((0, -cutout_depth-cutout_rad),
117 | (-cutout_rad, -cutout_depth)).\
118 | vLineTo(0).hLineTo(cutout_rad).close()
119 |
120 | if depth is None:
121 | obj = obj.cutThruAll()
122 | else:
123 | obj = obj.cutBlind(depth)
124 |
125 | return obj
126 |
127 | res = make_slot(res, None) # make the smaller slot
128 |
129 | cutout_rad += cutout_offset # increase the cutout radius...
130 | res = make_slot(res.end().end(), -main_plate_thickness/2) # ...and make a slightly larger slot
131 |
132 | res = res.end().moveTo(0, 0) \
133 | .pushPoints([(-extruder_hole_spacing/2, -cutout_depth), (extruder_hole_spacing/2, -cutout_depth)]) \
134 | .hole(m4_predrill) # add extruder mounting holes at the top of the bridge
135 |
136 |
137 | # make additional slot in the bridge support which allows the hotend's radiator to fit
138 | cutout_rad += 3*cutout_offset
139 | res = make_slot(res.end().moveTo(0, 0).workplane(offset=-main_plate_thickness))
140 |
141 | # add reinforcement holes
142 | cutout_rad -= 2*cutout_offset
143 | res = res.faces('>Z').workplane().\
144 | pushPoints([(-cutout_rad, -main_plate_thickness/4),
145 | (cutout_rad, -main_plate_thickness/4)]).\
146 | hole(m3_predrill)
147 |
148 | # add aux holes on the front face
149 | res = res.moveTo(-main_plate_size_x/2., 0).workplane().rarray(aux_hole_spacing, 1, aux_hole_N, 1) \
150 | .hole(m3_predrill, depth=aux_hole_depth)
151 | res = res.moveTo(main_plate_size_x, 0).workplane().rarray(aux_hole_spacing, 1, aux_hole_N, 1) \
152 | .hole(m3_predrill, depth=aux_hole_depth)
153 |
154 | # make a hexagonal cutout
155 | res = res.faces('>Z[1]')
156 | res = res.workplane(offset=bridge_depth). \
157 | transformed(rotate=(0, 0, 90)). \
158 | polygon(6, 30).cutThruAll()
159 |
160 | # make 4 mounting holes with cbores
161 | res = res.end().moveTo(0, 0). \
162 | rect(mounting_hole_spacing,
163 | mounting_hole_spacing, forConstruction=True)
164 |
165 | res = res.vertices(). \
166 | cboreHole(m3_predrill,
167 | m3_cbore,
168 | bridge_depth+m3_cbore/2)
169 |
170 | # make cutout and holes for mounting of the fan
171 | res = res.transformed(rotate=(0, 0, 45)). \
172 | rect(35, 35).cutBlind(-bridge_depth).end(). \
173 | rect(25, 25, forConstruction=True).vertices().hole(m3_predrill)
174 |
175 |
176 | def make_aux_holes(workplane, holes_span, N_hole_groups=3):
177 | '''
178 | Utility function for creation of auxiliary mouting holes at the sides of the object
179 | '''
180 | res = workplane.moveTo(-holes_span/2).workplane().rarray(aux_hole_spacing, 1, aux_hole_N, 1) \
181 | .hole(m3_predrill, depth=aux_hole_depth)
182 | for i in range(N_hole_groups-1):
183 | res = res.moveTo(holes_span/(N_hole_groups-1.)).workplane().rarray(aux_hole_spacing, 1, aux_hole_N, 1) \
184 | .hole(m3_predrill, depth=aux_hole_depth)
185 |
186 | return res
187 |
188 | # make aux holes at the bottom
189 | res = res.faces('X').workplane().transformed((90, 0, 0))
196 | res = make_aux_holes(res, main_plate_size_x*2/3., 3)
197 |
198 | # make aux holes at the side (@main plate)
199 | res = res.faces('|X').edges('X')
200 | res = res.workplane()
201 | res = move_to_center(res, face_right)
202 | res = res.transformed((90, 0, 0))
203 | hole_sep = 0.5*face_right.Area()/main_plate_thickness
204 | res = make_aux_holes(res, hole_sep, 2)
205 |
206 | # make aux holes at the side (@main plate)
207 | res = res.faces('|X').edges('Z').vertices('Z').edges() \
167 | .fillet(r - 0.001)
168 | hidding_box = cq.Workplane('XY').box(
169 | base_width, base_height, base_thickness, centered=(False, False, False))
170 | result = hidding_box.union(base)
171 | return result
172 |
173 | _cell_geometry = BrailleCellGeometry(
174 | horizontal_interdot,
175 | vertical_interdot,
176 | horizontal_intercell,
177 | vertical_interline,
178 | dot_height,
179 | dot_diameter)
180 |
181 | if base_thickness < get_cylinder_radius(_cell_geometry):
182 | raise ValueError('Base thickness should be at least {}'.format(dot_height))
183 |
184 | show_object(make_embossed_plate(text_lines, _cell_geometry))
185 |
--------------------------------------------------------------------------------
/examples/Classic_OCC_Bottle.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 |
3 | # Set up the length, width, and thickness
4 | (L,w,t) = (20.0, 6.0, 3.0)
5 | s = cq.Workplane("XY")
6 |
7 | # Draw half the profile of the bottle, mirror it, and extrude it
8 | p = (s.center(-L/2.0, 0).vLine(w/2.0)
9 | .threePointArc((L/2.0, w/2.0 + t),(L, w/2.0)).vLine(-w/2.0)
10 | .mirrorX().extrude(30.0,True))
11 |
12 | # Make the neck
13 | p = p.faces(">Z").workplane(centerOption="CenterOfMass").circle(3.0).extrude(2.0,True)
14 |
15 | # Make the bottle a shell
16 | result = p.faces(">Z").shell(0.3)
17 |
18 | # Displays the result of this script
19 | show_object(result)
20 |
--------------------------------------------------------------------------------
/examples/Involute_Gear.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from cadquery import Workplane, Edge, Wire, Vector
3 | from math import *
4 |
5 |
6 | def involute_gear(m, z, alpha=20, shift=0, N=20):
7 | '''
8 | See https://khkgears.net/new/gear_knowledge/gear_technical_reference/involute_gear_profile.html
9 | for math
10 | '''
11 |
12 | alpha = radians(alpha)
13 |
14 | # radii
15 | r_ref = m*z/2
16 | r_top = r_ref + m*(1+shift)
17 | r_base = r_ref*cos(alpha)
18 | r_d = r_ref - 1.25*m
19 |
20 | inv = lambda a: tan(a) - a
21 |
22 | # angles of interest
23 | alpha_inv = inv(alpha)
24 | alpha_tip = acos(r_base/r_top)
25 | alpha_tip_inv = inv(alpha_tip)
26 |
27 | a = 90/z+degrees(alpha_inv)
28 | a2 = 90/z++degrees(alpha_inv)-degrees(alpha_tip_inv)
29 | a3 = 360/z-a
30 |
31 | # involute curve (radius based parametrization)
32 | def involute_curve(r_b,sign=1):
33 |
34 | def f(r):
35 | alpha = sign*acos(r_b/r)
36 | x = r*cos(tan(alpha) - alpha)
37 | y = r*sin(tan(alpha) - alpha)
38 |
39 | return x,y
40 |
41 | return f
42 |
43 | # construct all the profiles
44 | right = (
45 | Workplane()
46 | .transformed(rotate=(0,0,a))
47 | .parametricCurve(involute_curve(r_base,-1), start=r_base, stop = r_top, makeWire=False, N=N)
48 | .val()
49 | )
50 |
51 | left = (
52 | Workplane()
53 | .transformed(rotate=(0,0,-a))
54 | .parametricCurve(involute_curve(r_base), start=r_base, stop = r_top, makeWire=False, N=N)
55 | .val()
56 | )
57 |
58 | top = Edge.makeCircle(r_top,angle1=-a2, angle2=a2)
59 | bottom = Edge.makeCircle(r_d, angle1=-a3, angle2=-a)
60 |
61 | side = Edge.makeLine( cq.Vector(r_d,0), cq.Vector(r_base,0))
62 | side1 = side.rotate(cq.Vector(0, 0, 0), cq.Vector(0, 0, 1), -a)
63 | side2 = side.rotate(cq.Vector(0, 0, 0), cq.Vector(0, 0, 1), -a3)
64 |
65 | # single tooth profile
66 | profile = Wire.assembleEdges([left,top,right,side1,bottom,side2])
67 | profile = profile.chamfer2D(m/4, profile.Vertices()[-3:-1])
68 |
69 | # complete gear
70 | res = (
71 | Workplane()
72 | .polarArray(0,0,360,z)
73 | .each(lambda loc: profile.located(loc))
74 | .consolidateWires()
75 | )
76 |
77 | return res.val()
78 |
79 |
80 | show_object(
81 | Workplane(obj=involute_gear(1, 20)).toPending().twistExtrude(20, 30)
82 | )
83 |
--------------------------------------------------------------------------------
/examples/Iqon-Building:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | import math
3 |
4 | ROOMS = 12
5 | LEVELS = 10
6 | displacement = 0.4
7 |
8 | main_length = 1.15
9 | main_width = 1.15
10 | main_height = 1.15
11 |
12 | pocket_length = 0.85
13 | pocket_width = 0.4
14 | pocket_depth = 0.1
15 | pocket_y = -0.25
16 |
17 | path = [(0, 6, 0), (1, 6, 0), (4, 6, 0), (9, 6, 0), (12, 0, 0)]
18 | base_curve = cq.Workplane("XY").spline(path)
19 | max_y = max(path, key=lambda x: x[1])[1]
20 |
21 | cube = (
22 | cq.Workplane("XY")
23 | .box(main_length, main_width, main_height)
24 | )
25 |
26 |
27 | carved_room = (
28 | cube
29 | .faces(">X") # Select the face on the positive X direction
30 | .workplane(centerOption='CenterOfBoundBox')
31 | .transformed(offset=(pocket_y, 0, 0)) # Offset in the local YZ plane
32 | .rect(pocket_width, pocket_length) # Pocket dimensions in the YZ plane
33 | .cutBlind(-pocket_depth)
34 | .transformed(offset=(0.5, 0, 0))
35 | .rect(pocket_width, pocket_length)
36 | .cutBlind(-pocket_depth)
37 | )
38 | #show_object(window.translate((path[0][0], path[0][1]+0.55, 0)), options={"color": "black", "alpha": 0.6})
39 | bigger_room = (
40 | cq.Workplane("XY")
41 | .box(main_length+0.09, main_width+0.09, main_height+0.09)
42 | .faces(">X") # Select the face on the positive X direction
43 | .workplane(centerOption='CenterOfBoundBox')
44 | .transformed(offset=(pocket_y, 0, 0)) # Offset in the local YZ plane
45 | .rect(pocket_width, pocket_length) # Pocket dimensions in the YZ plane
46 | .cutBlind(-pocket_depth)
47 | .transformed(offset=(0.5, 0, 0))
48 | .rect(pocket_width, pocket_length)
49 | .cutBlind(-pocket_depth)
50 | )
51 |
52 |
53 | building = cq.Workplane("XY")
54 | for level in range(LEVELS):
55 | remove_level = level%2
56 | for room in range(ROOMS-remove_level):
57 | param = (room)/(ROOMS-remove_level)
58 | point_on_curve = base_curve.val().positionAt(param)
59 | angle = point_on_curve.y*90/max_y
60 | if level%2 == 0:
61 | new_room = carved_room.translate((point_on_curve.x, point_on_curve.y, level*main_height)).rotateAboutCenter((0, 0, 1), angle)
62 | building.add(new_room)
63 | else:
64 | new_room = bigger_room.translate((point_on_curve.x, point_on_curve.y, level*main_height)).rotateAboutCenter((0, 0, 1), angle)
65 | building.add(new_room)
66 | show_object(building)
67 |
--------------------------------------------------------------------------------
/examples/Numpy.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import cadquery as cq
3 |
4 | # Square side and offset in x and y.
5 | side = 10
6 | offset = 5
7 |
8 | # Define the locations that the polyline will be drawn to/thru.
9 | # The polyline is defined as numpy.array so that operations like translation
10 | # of all points are simplified.
11 | pts = np.array([
12 | (0, 0),
13 | (side, 0),
14 | (side, side),
15 | (0, side),
16 | (0, 0)
17 | ]) + [offset, offset]
18 |
19 | result = cq.Workplane('XY') \
20 | .polyline(pts).close().extrude(2) \
21 | .faces('+Z').workplane(centerOption="CenterOfMass").circle(side / 2).extrude(1)
22 |
23 | # Render the solid
24 | show_object(result)
25 |
--------------------------------------------------------------------------------
/examples/Panel_with_Various_Holes_for_Connector_Installation.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 |
3 | # The dimensions of the model. These can be modified rather than changing the
4 | # object's code directly.
5 | width = 400
6 | height = 500
7 | thickness = 2
8 |
9 | # Create a plate with two polygons cut through it
10 | result = cq.Workplane("front").box(width, height, thickness)
11 |
12 | h_sep = 60
13 | for idx in range(4):
14 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(157,210-idx*h_sep).moveTo(-23.5,0).circle(1.6).moveTo(23.5,0).circle(1.6).moveTo(-17.038896,-5.7).threePointArc((-19.44306,-4.70416),(-20.438896,-2.3)).lineTo(-21.25,2.3).threePointArc((-20.25416,4.70416),(-17.85,5.7)).lineTo(17.85,5.7).threePointArc((20.25416,4.70416),(21.25,2.3)).lineTo(20.438896,-2.3).threePointArc((19.44306,-4.70416),(17.038896,-5.7)).close().cutThruAll()
15 |
16 | for idx in range(4):
17 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(157,-30-idx*h_sep).moveTo(-16.65,0).circle(1.6).moveTo(16.65,0).circle(1.6).moveTo(-10.1889,-5.7).threePointArc((-12.59306,-4.70416),(-13.5889,-2.3)).lineTo(-14.4,2.3).threePointArc((-13.40416,4.70416),(-11,5.7)).lineTo(11,5.7).threePointArc((13.40416,4.70416),(14.4,2.3)).lineTo(13.5889,-2.3).threePointArc((12.59306,-4.70416),(10.1889,-5.7)).close().cutThruAll()
18 |
19 | h_sep4DB9 = 30
20 | for idx in range(8):
21 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(91,225-idx*h_sep4DB9).moveTo(-12.5,0).circle(1.6).moveTo(12.5,0).circle(1.6).moveTo(-6.038896,-5.7).threePointArc((-8.44306,-4.70416),(-9.438896,-2.3)).lineTo(-10.25,2.3).threePointArc((-9.25416,4.70416),(-6.85,5.7)).lineTo(6.85,5.7).threePointArc((9.25416,4.70416),(10.25,2.3)).lineTo(9.438896,-2.3).threePointArc((8.44306,-4.70416),(6.038896,-5.7)).close().cutThruAll()
22 |
23 | for idx in range(4):
24 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(25,210-idx*h_sep).moveTo(-23.5,0).circle(1.6).moveTo(23.5,0).circle(1.6).moveTo(-17.038896,-5.7).threePointArc((-19.44306,-4.70416),(-20.438896,-2.3)).lineTo(-21.25,2.3).threePointArc((-20.25416,4.70416),(-17.85,5.7)).lineTo(17.85,5.7).threePointArc((20.25416,4.70416),(21.25,2.3)).lineTo(20.438896,-2.3).threePointArc((19.44306,-4.70416),(17.038896,-5.7)).close().cutThruAll()
25 |
26 | for idx in range(4):
27 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(25,-30-idx*h_sep).moveTo(-16.65,0).circle(1.6).moveTo(16.65,0).circle(1.6).moveTo(-10.1889,-5.7).threePointArc((-12.59306,-4.70416),(-13.5889,-2.3)).lineTo(-14.4,2.3).threePointArc((-13.40416,4.70416),(-11,5.7)).lineTo(11,5.7).threePointArc((13.40416,4.70416),(14.4,2.3)).lineTo(13.5889,-2.3).threePointArc((12.59306,-4.70416),(10.1889,-5.7)).close().cutThruAll()
28 |
29 | for idx in range(8):
30 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(-41,225-idx*h_sep4DB9).moveTo(-12.5,0).circle(1.6).moveTo(12.5,0).circle(1.6).moveTo(-6.038896,-5.7).threePointArc((-8.44306,-4.70416),(-9.438896,-2.3)).lineTo(-10.25,2.3).threePointArc((-9.25416,4.70416),(-6.85,5.7)).lineTo(6.85,5.7).threePointArc((9.25416,4.70416),(10.25,2.3)).lineTo(9.438896,-2.3).threePointArc((8.44306,-4.70416),(6.038896,-5.7)).close().cutThruAll()
31 |
32 | for idx in range(4):
33 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(-107,210-idx*h_sep).moveTo(-23.5,0).circle(1.6).moveTo(23.5,0).circle(1.6).moveTo(-17.038896,-5.7).threePointArc((-19.44306,-4.70416),(-20.438896,-2.3)).lineTo(-21.25,2.3).threePointArc((-20.25416,4.70416),(-17.85,5.7)).lineTo(17.85,5.7).threePointArc((20.25416,4.70416),(21.25,2.3)).lineTo(20.438896,-2.3).threePointArc((19.44306,-4.70416),(17.038896,-5.7)).close().cutThruAll()
34 |
35 | for idx in range(4):
36 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(-107,-30-idx*h_sep).circle(14).rect(24.7487,24.7487, forConstruction=True).vertices().hole(3.2).cutThruAll()
37 |
38 | for idx in range(8):
39 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(-173,225-idx*h_sep4DB9).moveTo(-12.5,0).circle(1.6).moveTo(12.5,0).circle(1.6).moveTo(-6.038896,-5.7).threePointArc((-8.44306,-4.70416),(-9.438896,-2.3)).lineTo(-10.25,2.3).threePointArc((-9.25416,4.70416),(-6.85,5.7)).lineTo(6.85,5.7).threePointArc((9.25416,4.70416),(10.25,2.3)).lineTo(9.438896,-2.3).threePointArc((8.44306,-4.70416),(6.038896,-5.7)).close().cutThruAll()
40 |
41 | for idx in range(4):
42 | result = result.workplane(offset=1, centerOption='CenterOfBoundBox').center(-173,-30-idx*h_sep).moveTo(-2.9176,-5.3).threePointArc((-6.05,0),(-2.9176,5.3)).lineTo(2.9176,5.3).threePointArc((6.05,0),(2.9176,-5.3)).close().cutThruAll()
43 |
44 | # Render the solid
45 | show_object(result)
46 |
--------------------------------------------------------------------------------
/examples/Parametric_Enclosure.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 |
3 | # parameter definitions
4 | p_outerWidth = 100.0 #Outer width of box enclosure
5 | p_outerLength = 150.0 #Outer length of box enclosure
6 | p_outerHeight = 50.0 #Outer height of box enclosure
7 |
8 | p_thickness = 3.0 #Thickness of the box walls
9 | p_sideRadius = 10.0 #Radius for the curves around the sides of the box
10 | p_topAndBottomRadius = 2.0 #Radius for the curves on the top and bottom edges of the box
11 |
12 | p_screwpostInset = 12.0 #How far in from the edges the screw posts should be place.
13 | p_screwpostID = 4.0 #Inner Diameter of the screw post holes, should be roughly screw diameter not including threads
14 | p_screwpostOD = 10.0 #Outer Diameter of the screw posts.\nDetermines overall thickness of the posts
15 |
16 | p_boreDiameter = 8.0 #Diameter of the counterbore hole, if any
17 | p_boreDepth = 1.0 #Depth of the counterbore hole, if
18 | p_countersinkDiameter = 0.0 #Outer diameter of countersink. Should roughly match the outer diameter of the screw head
19 | p_countersinkAngle = 90.0 #Countersink angle (complete angle between opposite sides, not from center to one side)
20 | p_flipLid = True #Whether to place the lid with the top facing down or not.
21 | p_lipHeight = 1.0 #Height of lip on the underside of the lid.\nSits inside the box body for a snug fit.
22 |
23 | # outer shell
24 | oshell = cq.Workplane("XY").rect(p_outerWidth,p_outerLength).extrude(p_outerHeight + p_lipHeight)
25 |
26 | # weird geometry happens if we make the fillets in the wrong order
27 | if p_sideRadius > p_topAndBottomRadius:
28 | oshell = oshell.edges("|Z").fillet(p_sideRadius)
29 | oshell = oshell.edges("#Z").fillet(p_topAndBottomRadius)
30 | else:
31 | oshell = oshell.edges("#Z").fillet(p_topAndBottomRadius)
32 | oshell = oshell.edges("|Z").fillet(p_sideRadius)
33 |
34 | # inner shell
35 | ishell = (oshell.faces("Z").workplane(-p_thickness)
49 | .rect(POSTWIDTH,POSTLENGTH,forConstruction=True)
50 | .vertices().circle(p_screwpostOD/2.0).circle(p_screwpostID/2.0)
51 | .extrude((-1.0)*(p_outerHeight + p_lipHeight -p_thickness ),True))
52 |
53 | # split lid into top and bottom parts
54 | (lid,bottom) = box.faces(">Z").workplane(-p_thickness -p_lipHeight ).split(keepTop=True,keepBottom=True).all() #splits into two solids
55 |
56 | # translate the lid, and subtract the bottom from it to produce the lid inset
57 | lowerLid = lid.translate((0,0,-p_lipHeight))
58 | cutlip = lowerLid.cut(bottom).translate((p_outerWidth + p_thickness ,0,p_thickness - p_outerHeight + p_lipHeight))
59 |
60 | # compute centers for counterbore/countersink or counterbore
61 | topOfLidCenters = cutlip.faces(">Z").workplane().rect(POSTWIDTH,POSTLENGTH,forConstruction=True).vertices()
62 |
63 | # add holes of the desired type
64 | if p_boreDiameter > 0 and p_boreDepth > 0:
65 | topOfLid = topOfLidCenters.cboreHole(p_screwpostID,p_boreDiameter,p_boreDepth,(2.0)*p_thickness)
66 | elif p_countersinkDiameter > 0 and p_countersinkAngle > 0:
67 | topOfLid = topOfLidCenters.cskHole(p_screwpostID,p_countersinkDiameter,p_countersinkAngle,(2.0)*p_thickness)
68 | else:
69 | topOfLid= topOfLidCenters.hole(p_screwpostID,(2.0)*p_thickness)
70 |
71 | # flip lid upside down if desired
72 | if p_flipLid:
73 | topOfLid = topOfLid.rotateAboutCenter((1,0,0),180)
74 |
75 | # return the combined result
76 | result =topOfLid.union(bottom)
77 |
--------------------------------------------------------------------------------
/examples/Reinforce_Junction_UsingFillet.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from cadquery import selectors
3 |
4 | # This exemple demonstrates the use of a fillet to reinforce a junction between two parts.
5 | # It relies on the selection of an edge of the weak junction, and the use of fillet.
6 |
7 | # 1 - The construction of the model : a pipe connector
8 | # In that model, the junction surface between the box and the cylinder is small.
9 | # This makes the junction between the two too weak.
10 | model = cq.Workplane("XY").box(15.0, 15.0, 2.0)\
11 | .faces(">Z").rect(10.0, 10.0, forConstruction=True)\
12 | .vertices().cskHole(2.0, 4.0, 82)\
13 | .faces(">Z").circle(4.0).extrude(10.0)\
14 | .faces(">Z").hole(6)
15 |
16 | # 2 - Reinforcement of the junction
17 | # Two steps here :
18 | # - select the edge to reinforce. Here we search the closest edge from the center on the top face of the box.
19 | # - apply a fillet or a chamfer to that edge
20 | result = model.faces('Z")
51 | .fillet(yFilletRadius)
52 | # shell the solid from the bottom face, with a .060" wall thickness
53 | .faces("Z")
57 | .workplane(centerOption="CenterOfMass")
58 | .pushPoints([(0, 0),
59 | (-xHoleOffset, 0),
60 | (0, -yHoleOffset),
61 | (xHoleOffset, 0),
62 | (0, yHoleOffset)])
63 | .cskHole(diameter=holeRadius,
64 | cskDiameter=holeRadius * 1.5,
65 | cskAngle=counterSyncAngle))
66 |
67 | # the bottom cover begins with the same basic shape as the top
68 | cover = (base(coverThickness)
69 | # we need to move it upwards into the parent solid slightly.
70 | .translate((0, 0, -coverThickness + lipHeight))
71 | # now we subtract the top from the cover. This produces a lip on the
72 | # solid NOTE: that this does not account for mechanical tolerances.
73 | # But it looks cool.
74 | .cut(top)
75 | # try to fillet the inner edge of the cover lip. Technically this
76 | # fillets every edge perpendicular to the Z axis.
77 | .edges("#Z")
78 | .fillet(.020)
79 | .translate((0, 0, -0.5 if exploded else 0)))
80 |
81 | # Conditionally render the parts
82 | if showTop:
83 | show_object(top)
84 | if showCover:
85 | show_object(cover)
86 |
--------------------------------------------------------------------------------
/examples/Resin_Mold.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | BS = cq.selectors.BoxSelector
3 |
4 | # PARAMETERS
5 | mount_holes = True
6 |
7 | # mold size
8 | mw = 40
9 | mh = 13
10 | ml = 120
11 |
12 | # wire and fix size
13 | wd = 6 # wire diameter
14 | rt = 7 # resin thickness
15 | rl = 50 # resin length
16 | rwpl = 10 # resin to wire pass length
17 |
18 | # pocket fillet
19 | pf = 18
20 |
21 | # mount holes
22 | mhd = 7 # hole diameter
23 | mht = 3 # hole distance from edge
24 |
25 | # filling hole
26 | fhd = 6
27 |
28 | # DRAWING
29 |
30 | # draw base
31 | base = cq.Workplane("XY").box(ml, mw, mh, (True, True, False))
32 |
33 | # draw wire
34 | pocket = cq.Workplane("XY", (0, 0, mh)).moveTo(-ml/2., 0).line(0, wd/2.)\
35 | .line((ml-rl)/2.-rwpl, 0).line(rwpl, rt).line(rl, 0)\
36 | .line(rwpl, -rt).line((ml-rl)/2.-rwpl, 0)\
37 | .line(0, -(wd/2.)).close().revolve(axisEnd=(1, 0))\
38 | .edges(BS((-rl/2.-rwpl-.1, -100, -100), (rl/2.+rwpl+.1, 100, 100)))\
39 | .fillet(pf)
40 |
41 | r = base.cut(pocket)
42 |
43 | # mount holes
44 | if mount_holes:
45 | px = ml/2.-mht-mhd/2.
46 | py = mw/2.-mht-mhd/2
47 | r = r.faces("Z").shell(-0.2).\
7 | faces(">Z").edges("not(X or Y)").\
8 | chamfer(0.125)
9 |
10 | show_object(result)
11 |
--------------------------------------------------------------------------------
/examples/Tetrakaidecahedron.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from math import pi, cos, acos, sin, sqrt, atan, tan
3 | import numpy as np
4 |
5 |
6 | # TETRAKAIDECAHEDRON
7 |
8 | def pmcross(self, r1=1, fn=6, forConstruction=False):
9 | def _makeCross(loc):
10 | pnts = []
11 | t = 2*pi / fn
12 | R = r1/2 / sin(t)
13 | for i in range(fn+1):
14 | pts = [R*cos(i * t + pi/fn), R*sin(i * t + pi/fn)]
15 | pnts.append(cq.Vector(pts[0], pts[1], 0))
16 |
17 | return cq.Wire.makePolygon(pnts, forConstruction).locate(loc)
18 |
19 | return self.eachpoint(_makeCross, True)
20 | cq.Workplane.pmcross = pmcross
21 |
22 | L = 20
23 | W = 20
24 | H = 20
25 | D = 10 # Cell diameter
26 | WT = 1
27 | FRO = 3
28 | FRI = 2
29 | NPS = 6
30 |
31 | A = 180 / NPS
32 | BS = acos(1/sqrt(3)) * 180/pi
33 | BH = acos(1/3) * 180/pi
34 |
35 | tc = 1.
36 | dc = (D -2*WT +2*tc) / (2 * cos((90-BS)*pi/180))
37 |
38 | dcc = dc * tan(A*pi/180)
39 |
40 | path_h = cq.Workplane('XY').pmcross(dc, NPS)
41 | cell_h0 = cq.Workplane('XZ').workplane().center(dc/2,0).polygon(10,tc).sweep(path_h)
42 |
43 | lo = [cell_h0.val()]
44 | cell_s = cell_h0
45 |
46 | # ADD HEXAGONS
47 | cell_h1 = cell_h0.translate((-dc*sin(A*pi/180), dc*cos(A*pi/180), 0))
48 | V1 = [-dcc*cos(A*pi/180), dcc*sin(A*pi/180), 0]
49 | V2 = [0, dcc, 0]
50 | cell_h1 = cell_h1.rotate(V1,V2,BH)
51 | cell_h1 = cell_h1.cut(cell_h0)
52 | cell_s = cell_s.union(cell_h1, glue=True)
53 |
54 | cell_h2 = cell_h0.translate((-dc*sin(A*pi/180), -dc*cos(A*pi/180), 0))
55 | V1 = [-dcc*cos(A*pi/180), -dcc*sin(A*pi/180), 0]
56 | V2 = [0, -dcc, 0]
57 | cell_h2 = cell_h2.rotate(V1,V2,-BH)
58 | cell_h2 = cell_h2.cut(cell_h0)
59 | cell_s = cell_s.union(cell_h2, glue=True)
60 |
61 | cell_h3 = cell_h0.translate((dc, 0, 0))
62 | V1 = [dc/2, -dcc/2, 0]
63 | V2 = [dc/2, dcc/2, 0]
64 | cell_h3 = cell_h3.rotate(V1,V2,-BH)
65 | cell_h3 = cell_h3.cut(cell_h0)
66 | cell_s = cell_s.union(cell_h3, glue=True)
67 |
68 |
69 | # ADD SYMMETRY
70 | dz = dc * cos((90-BH)*pi/180) + dcc * cos((90-BS)*pi/180)
71 | cell = cell_s.rotate((0,0,0),(1,0,0),180).rotate((0,0,0),(0,0,1),60).translate((0,0,dz))
72 | cell = cell_s.union(cell).rotateAboutCenter((0,1,0),90-BS)
73 |
74 | # PATTERN
75 | dx = dc * sin((90-BS)*pi/180) + dcc/2 - tc/2
76 | dy = dz = dc * cos((90-BS)*pi/180) + dcc/2 + tc/2
77 | x_af0 = np.arange(0, H, dx)[:-2]
78 | y_af0 = np.arange(0, W, dy)[1:]
79 | z_af0 = np.arange(0, L, dz)#[:-1]
80 |
81 | x_af, y_af, z_af = np.meshgrid(x_af0, y_af0, z_af0)
82 | xyz_af = np.array([[x,y,z] for x,y,z in zip(x_af.flatten(), y_af.flatten(), z_af.flatten())])
83 |
84 | xyz_af[::2, 0] += dx
85 | xyz_af[::2, 1] += dy
86 | xyz_af[::2, 2] += dz
87 | xyz_af = np.unique(xyz_af, axis = 0)
88 | xyz_af = [tuple(e) for e in xyz_af]
89 |
90 | def cell_pos(pos):
91 | return cell.translate(pos).val()
92 | cellS = cq.Workplane('XY').pushPoints(xyz_af).each(cell_pos).combine()
93 | cellS = cellS.translate((0, -W/2-dc/2+FRI, -L/2-dz/2))
94 |
95 | show_object(cellS)
96 |
97 | #cq.exporters.export(cellS.val(), 'EV_Tetrakaidecahedron.step')
98 |
99 |
100 |
--------------------------------------------------------------------------------
/examples/Thread.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from cadquery import *
3 | from math import *
4 |
5 | def helix(r0,r_eps,p,h,d=0,frac=1e-1):
6 |
7 | def func(t):
8 |
9 | if t>frac and t<1-frac:
10 | z = h*t + d
11 | r = r0+r_eps
12 | elif t<=frac:
13 | z = h*t + d*sin(pi/2 *t/frac)
14 | r = r0 + r_eps*sin(pi/2 *t/frac)
15 | else:
16 | z = h*t - d*sin(2*pi - pi/2*(1-t)/frac)
17 | r = r0 - r_eps*sin(2*pi - pi/2*(1-t)/frac)
18 |
19 | x = r*sin(-2*pi/(p/h)*t)
20 | y = r*cos(2*pi/(p/h)*t)
21 |
22 | return x,y,z
23 |
24 | return func
25 |
26 | def thread(radius, pitch, height, d, radius_eps, aspect= 10):
27 |
28 | e1_bottom = (cq.Workplane("XY")
29 | .parametricCurve(helix(radius,0,pitch,height,-d)).val()
30 | )
31 | e1_top = (cq.Workplane("XY")
32 | .parametricCurve(helix(radius,0,pitch,height,d)).val()
33 | )
34 |
35 | e2_bottom = (cq.Workplane("XY")
36 | .parametricCurve(helix(radius,radius_eps,pitch,height,-d/aspect)).val()
37 | )
38 | e2_top = (cq.Workplane("XY")
39 | .parametricCurve(helix(radius,radius_eps,pitch,height,d/aspect)).val()
40 | )
41 |
42 | f1 = Face.makeRuledSurface(e1_bottom, e1_top)
43 | f2 = Face.makeRuledSurface(e2_bottom, e2_top)
44 | f3 = Face.makeRuledSurface(e1_bottom, e2_bottom)
45 | f4 = Face.makeRuledSurface(e1_top, e2_top)
46 |
47 | sh = Shell.makeShell([f1,f2,f3,f4])
48 | rv = Solid.makeSolid(sh)
49 |
50 | return rv
51 |
52 | radius = 4
53 | pitch = 2
54 | height = 4
55 | d = pitch/4
56 | radius_eps = 0.5
57 | eps=1e-3
58 |
59 | core = cq.Workplane("XY",origin=(0,0,-d)).circle(4).circle(3).extrude(height+1.75*d)
60 | th1 = thread(radius-eps,pitch,height,d,radius_eps)
61 | th2 =thread(radius-1+eps,pitch,height,d,-radius_eps)
62 |
63 | res = core.union(Compound.makeCompound([th1,th2]))
64 |
65 | show_object(res)
66 |
--------------------------------------------------------------------------------
/examples/cylindrical_gear.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from math import *
3 |
4 | class HollowCylinderSelector(cq.Selector):
5 | """
6 | Selects any shape present in the infinite hollow cylinder.
7 | """
8 | #It works for the use I have in this code, it's not tested for any other configuration hence it might not be super robust
9 | def __init__(self, inner_radius, outer_radius, along_axis = "Z"):
10 | self.r1 = inner_radius
11 | self.r2 = outer_radius
12 | if along_axis == "X":
13 | self.axis = 0
14 | elif along_axis == "Y":
15 | self.axis = 1
16 | elif along_axis == "Z":
17 | self.axis = 2
18 |
19 | def filter(self, objectList):
20 | result =[]
21 | for o in objectList:
22 | p = o.Center()
23 | p_coords = [p.x, p.y, p.z]
24 | del p_coords[self.axis]
25 | p_radius = sqrt(p_coords[0]**2 + p_coords[1]**2)
26 |
27 | if p_radius> self.r1 and p_radius < self.r2 :
28 | result.append(o)
29 |
30 | return result
31 |
32 | def involute(r):
33 | #callback for paramCurve() function
34 | def curve(t):
35 | """
36 | The involute curve is the curve that describe the flank of a tooth of a gear
37 | """
38 | x = r*(cos(t) + t*sin(t))
39 | y = r*(sin(t) - t*cos(t))
40 | return x,y
41 | return curve
42 |
43 | def cylindrical_gear(m, z, alpha, b, helix_angle = None):
44 | """
45 | Create a cylindrical gear (either straight or helix)
46 | Note that the helix one is pretty slow to be generated and the filling of the root edge of the gear don't work for helix_angle > 3°
47 |
48 | params :
49 | m : module of the gear (gear meshes only if they have the same module)
50 | z : number of teeths
51 | b : thickness of the gear
52 | """
53 | r_p = m*z/2 #primitif radius (radius at which contact with other gear is made)
54 | r_a = r_p + m #radius of the top of the tooth
55 | r_f = r_p - 1.25*m #radius of the root of the tooth
56 | r_b = r_p*cos(radians(alpha)) #radius of the base circle from where the involute curve starts
57 |
58 | def create_tooth_profile(m, z, alpha):
59 | #Callback for eachpoint() function
60 | def tooth_profile(loc):
61 |
62 |
63 | STOP = sqrt((r_a/r_b)**2 - 1) # the STOP value is calculated by solving the following equation for t : ||involute(t)|| = r_a , ||involute(t)|| being the norm of the vector
64 | #below I start my 2D shape by sketching the 2 flanks of the tooth define by the 2 involutes
65 | right = cq.Workplane("XY").parametricCurve(involute(r_b), stop = STOP, makeWire=False)
66 | wire = cq.Workplane("XY").tag("base").transformed(rotate=(0,0,180/z)).parametricCurve(involute(r_b), stop = -STOP, makeWire=False)
67 |
68 | end_point_a = wire.val().endPoint().toTuple() #storing the global coord of the point for later use
69 | if r_b < r_f:
70 | raise ValueError("r_b is smaller than r_f, your gear is undercut, try changing yours input parameter (use smaller alpah angle")
71 | # A gear could work even if it's undercut, I was just lazy to take care of it
72 |
73 | else:
74 | wire = (wire.vertices("Z")
111 | .circle(0.5*r_f)
112 | .cutThruAll()
113 | )
114 | return gear
115 |
116 | ############################################################
117 | ############################################################
118 | ############################################################
119 |
120 | #Creation of 2 gears that meshes
121 |
122 | alpha = 20
123 | m = 1
124 | z1 = 20
125 | z2 = 12
126 | b = m*5
127 |
128 |
129 | gear = cylindrical_gear(m,z1,alpha,b)
130 | gear2 = cylindrical_gear(m,z2,alpha,b).val().move(cq.Location(cq.Vector(m*z1/2+m*z2/2,0,0)))
131 | show_object(gear)
132 | show_object(gear2)
133 |
--------------------------------------------------------------------------------
/examples/door.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 |
3 | # Parameters
4 | H = 400
5 | W = 200
6 | D = 350
7 |
8 | PROFILE = cq.importers.importDXF("vslot-2020_1.dxf").wires()
9 |
10 | SLOT_D = 6
11 | PANEL_T = 3
12 |
13 | HANDLE_D = 20
14 | HANDLE_L = 50
15 | HANDLE_W = 4
16 |
17 | def make_vslot(l):
18 |
19 | return PROFILE.toPending().extrude(l)
20 |
21 |
22 | def make_connector():
23 |
24 | rv = (
25 | cq.Workplane()
26 | .box(20, 20, 20)
27 | .faces("X").tag("X").end()
37 | rv.faces(">Z").tag("Z").end()
38 |
39 | return rv
40 |
41 |
42 | def make_panel(w, h, t, cutout):
43 |
44 | rv = (
45 | cq.Workplane("XZ")
46 | .rect(w, h)
47 | .extrude(t)
48 | .faces(">Y")
49 | .vertices()
50 | .rect(2*cutout,2*cutout)
51 | .cutThruAll()
52 | .faces("Y").edges("%CIRCLE").edges(">Z").tag("hole1")
60 | rv.faces(">Y").edges("%CIRCLE").edges("Y").tag("mate1")
84 | rv.faces("Z", "con_tl?Z", "Plane")
119 | .constrain("left@faces@Y", "Axis")
123 | # bottom
124 | .constrain("bottom@faces@Y", "Axis")
125 | .constrain("bottom@faces@>Z", "con_bl?X", "Plane")
126 | # right connectors
127 | .constrain("top@faces@>Z", "con_tr@faces@>X", "Plane")
128 | .constrain("bottom@faces@X", "Plane")
129 | .constrain("left@faces@>Z", "con_tr?Z", "Axis")
130 | .constrain("left@faces@Z", "con_tr@faces@>Z", "Plane")
133 | .constrain("right@faces@X[-4]", "panel@faces@Z", "panel@faces@>Z", "Axis")
137 | # handle
138 | .constrain("panel?hole1", "handle?mate1", "Plane")
139 | .constrain("panel?hole2", "handle?mate2", "Point")
140 | )
141 |
142 | # solve
143 | door.solve()
144 |
145 | show_object(door,name='door')
--------------------------------------------------------------------------------
/examples/hexagonal_drawers/assembly.py:
--------------------------------------------------------------------------------
1 | """
2 | Display the drawers
3 | """
4 |
5 | import cadquery as cq
6 | import importlib
7 | import base
8 | import organiser_collets
9 | import organiser_3_125_bits
10 | importlib.reload(base)
11 | importlib.reload(organiser_collets)
12 | importlib.reload(organiser_3_125_bits)
13 |
14 | sep = 20 # seperation between parts
15 | big_sep = 100 # extra for the organisers
16 |
17 | assy = cq.Assembly()
18 | assy.add(base.frame, name="frame")
19 | assy.add(base.drawer, name="drawer")
20 | assy.add(organiser_collets.collet_organiser, name="collet organiser")
21 | assy.add(organiser_3_125_bits.bit_organiser, name="bit organiser")
22 |
23 | # pull the drawer out
24 | assy.constrain(
25 | "frame",
26 | base.frame.faces("Y").val(),
29 | "Point",
30 | )
31 |
32 | # bit organiser aligns with back face of drawer and is big_sep above
33 | assy.constrain(
34 | "drawer",
35 | base.drawer.faces("Y").val(),
38 | "Point",
39 | )
40 | assy.constrain(
41 | "bit organiser",
42 | organiser_3_125_bits.bit_organiser.faces("Y").val(),
45 | "Point",
46 | )
47 |
48 | # align the z and x axes between obj0 and obj1
49 | align_these = (
50 | ("frame", "drawer"),
51 | ("drawer", "collet organiser"),
52 | ("drawer", "bit organiser"),
53 | )
54 | for obj0, obj1 in align_these:
55 | assy.constrain(
56 | obj0,
57 | cq.Face.makePlane(),
58 | obj1,
59 | cq.Face.makePlane(),
60 | "Axis",
61 | 0,
62 | )
63 | assy.constrain(
64 | obj0,
65 | cq.Face.makePlane(dir=(1, 0, 0)),
66 | obj1,
67 | cq.Face.makePlane(dir=(1, 0, 0)),
68 | "Axis",
69 | 0,
70 | )
71 |
72 | assy.solve()
73 | if "show_object" in locals():
74 | show_object(assy)
75 |
--------------------------------------------------------------------------------
/examples/hexagonal_drawers/base.py:
--------------------------------------------------------------------------------
1 | """
2 | The basic frame and drawer.
3 | """
4 |
5 | import cadquery as cq
6 | from types import SimpleNamespace
7 | from math import tan, radians
8 |
9 | hex_diam = 80 # outside of the drawer frame
10 | wall_thick = 3
11 | clearance = SimpleNamespace(tight=0.3)
12 | clearance.loose = clearance.tight * 2
13 | drawer_length = 150
14 | dovetail_min_thick = wall_thick * 2
15 |
16 | frame_y = drawer_length + clearance.loose + 2 * wall_thick
17 |
18 | frame = (
19 | cq.Workplane("XZ")
20 | .polygon(6, hex_diam)
21 | .extrude(frame_y)
22 | .faces("Z or >>Z[-2]")
35 | .shell(-wall_thick)
36 | )
37 |
38 | handle = (
39 | drawer
40 | .faces("Z").val().BoundingBox().ylen
61 | dovetail_base_radius = frame.faces("Z").val().Center().z
62 | dovetail_length = 0.9 * top_length
63 |
64 | # make the male dovetail join
65 | # should extend wall_thick out from the frame
66 | dovetail_positive = (
67 | cq.Workplane()
68 | .hLine(dovetail_min_thick / 2)
69 | .line(wall_thick * tan(radians(30)), wall_thick)
70 | .hLineTo(0)
71 | .mirrorY()
72 | .extrude(-dovetail_length)
73 | .faces("Y and |Z").val().Length()
82 | dovetail_negative = (
83 | dovetail_positive
84 | .tag("dovetail_positive")
85 | .faces(">Z")
86 | .wires()
87 | .toPending()
88 | .offset2D(clearance.tight)
89 | .faces(">Z", tag="dovetail_positive")
90 | .workplane()
91 | .extrude(-(dovetail_length + clearance.tight))
92 | .faces("Z")
14 | .workplane(centerOption="CenterOfMass")
15 | )
16 |
17 | bit_3_125_points = (
18 | base_wp
19 | .rarray(
20 | 3.125 * 3,
21 | 3.125 * 4,
22 | 4,
23 | 4,
24 | )
25 | .vals()
26 | )
27 | bit_3_125_points.extend(
28 | base_wp
29 | .rarray(
30 | 3.125 * 3,
31 | 3.125 * 4,
32 | 3,
33 | 3,
34 | )
35 | .vals()
36 | )
37 | bit_organiser = (
38 | base_wp
39 | .newObject(bit_3_125_points)
40 | .hole(
41 | 3.125 + 2 * base.clearance.loose,
42 | depth=organiser_blank.organiser.val().BoundingBox().zlen - 1.5 * base.wall_thick,
43 | )
44 | )
45 |
--------------------------------------------------------------------------------
/examples/hexagonal_drawers/organiser_blank.py:
--------------------------------------------------------------------------------
1 | """
2 | An organiser that takes up 1/3 of a drawer and has no cutouts yet.
3 | """
4 |
5 | import cadquery as cq
6 | import importlib
7 | import base
8 | importlib.reload(base)
9 |
10 |
11 | # organiser base
12 | # first grab the inner profile of the drawer
13 | lines = (
14 | base.drawer
15 | .faces(">Y")
16 | .workplane(offset=-base.drawer_length / 2)
17 | .section()
18 | .edges()
19 | .vals()
20 | )
21 | assert len(lines) == 8
22 | # sort lines by radius about y axis
23 | lines.sort(
24 | key=lambda x: cq.Vector(x.Center().x, 0, x.Center().z).Center().Length
25 | )
26 | wire = cq.Wire.assembleEdges(lines[0:3])
27 | wire = cq.Wire.combine(
28 | [wire, cq.Edge.makeLine(wire.endPoint(), wire.startPoint())]
29 | )[0]
30 | wire_center = wire.Center()
31 | wire = wire.translate(cq.Vector(0, -wire_center.y, 0))
32 | organiser = (
33 | cq.Workplane("XZ")
34 | .newObject([wire])
35 | .toPending()
36 | .extrude(base.drawer_length / 3 - base.clearance.loose)
37 | )
38 |
--------------------------------------------------------------------------------
/examples/hexagonal_drawers/organiser_collets.py:
--------------------------------------------------------------------------------
1 | """
2 | An organiser with holes for ER11 collets.
3 | """
4 |
5 | import cadquery as cq
6 | from types import SimpleNamespace
7 | import importlib
8 | import organiser_blank
9 | importlib.reload(organiser_blank)
10 |
11 |
12 | collet_dims = SimpleNamespace(
13 | upper_diam=11.35,
14 | cone_height=13.55,
15 | lower_diam=7.8,
16 | )
17 | collet = (
18 | cq.Solid.makeCone(
19 | collet_dims.upper_diam / 2,
20 | collet_dims.lower_diam / 2,
21 | collet_dims.cone_height,
22 | )
23 | .mirror("XY")
24 | .translate(cq.Vector(0, 0, collet_dims.cone_height / 3))
25 | )
26 | collet_organiser_points = (
27 | organiser_blank.organiser
28 | .faces(">Z")
29 | .workplane(centerOption="CenterOfMass")
30 | .rarray(
31 | collet_dims.upper_diam * 1.5,
32 | collet_dims.upper_diam * 2.3,
33 | 3,
34 | 2,
35 | )
36 | .vals()
37 | )
38 | collet_organiser_points.extend(
39 | organiser_blank.organiser
40 | .faces(">Z")
41 | .workplane(centerOption="CenterOfMass")
42 | .rarray(
43 | collet_dims.upper_diam * 1.5,
44 | collet_dims.upper_diam * 2.3,
45 | 2,
46 | 1,
47 | )
48 | .vals()
49 | )
50 | collets = (
51 | cq.Workplane()
52 | .pushPoints(collet_organiser_points)
53 | .eachpoint(lambda loc: collet.located(loc))
54 | )
55 | collet_organiser = (
56 | organiser_blank.organiser
57 | .cut(collets)
58 | )
59 |
60 | if "show_object" in locals():
61 | show_object(collet_organiser, "collet organiser")
62 |
--------------------------------------------------------------------------------
/examples/images/Classic_OCC_Bottle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Classic_OCC_Bottle.png
--------------------------------------------------------------------------------
/examples/images/Involute_Gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Involute_Gear.png
--------------------------------------------------------------------------------
/examples/images/Numpy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Numpy.png
--------------------------------------------------------------------------------
/examples/images/Parametric_Enclosure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Parametric_Enclosure.png
--------------------------------------------------------------------------------
/examples/images/Remote_Enclosure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Remote_Enclosure.png
--------------------------------------------------------------------------------
/examples/images/Tetrakaidecahedron.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Tetrakaidecahedron.png
--------------------------------------------------------------------------------
/examples/images/Thread.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/Thread.png
--------------------------------------------------------------------------------
/examples/images/braille.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/braille.png
--------------------------------------------------------------------------------
/examples/images/cylindrical_gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/cylindrical_gear.png
--------------------------------------------------------------------------------
/examples/images/door.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/door.png
--------------------------------------------------------------------------------
/examples/images/panel_with_various_holes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/panel_with_various_holes.png
--------------------------------------------------------------------------------
/examples/images/reinforce_junction_using_fillet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/reinforce_junction_using_fillet.png
--------------------------------------------------------------------------------
/examples/images/resin_mold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/resin_mold.png
--------------------------------------------------------------------------------
/examples/images/shelled_cube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/shelled_cube.png
--------------------------------------------------------------------------------
/examples/images/tray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CadQuery/cadquery-contrib/2e98484066389fdad8d8d031b470830cc2e069c4/examples/images/tray.png
--------------------------------------------------------------------------------
/examples/tray.py:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from cadquery import Assembly, Color, Location as Loc, Vector as Vec
3 | from numpy import linspace,diff
4 |
5 | Ws = 1200
6 | Hs = 600
7 |
8 | W = 770
9 | H = 460
10 | d = 5
11 | N = 7
12 | h = 50
13 |
14 | vpts = [(0,-3*H/8), (0,-H/4),(0,-H/8), (0,0), (0,H/8),(0,H/4),(0,3*H/8)]
15 |
16 | pts = linspace(-(W-d)/2,(W-d)/2,N+2)
17 | delta = diff(pts)[0]
18 |
19 | def make_base():
20 |
21 | return (
22 | cq.Workplane()
23 | .rect(W,H)
24 | .extrude(d)
25 | .pushPoints(
26 | [(pt,0) for pt in pts] +
27 | [(0,H/2-d/2),(0,-H/2+d/2)])
28 | .rect(d,d)
29 | .cutThruAll()
30 | )
31 |
32 | def make_side():
33 |
34 | return cq.Workplane().rect(d,H-2*d).extrude(h)
35 |
36 | def make_front():
37 |
38 | return (
39 | cq.Workplane()
40 | .rect(W,d).extrude(h-d)
41 | .faces('Z').workplane()
55 | .pushPoints(vpts)
56 | .rect(d,d)
57 | .cutBlind(-d)
58 | .faces('X').workplane().section(), 'divider.dxf')
109 | exp.exportDXF(make_spacer().section(), 'spacer.dxf')
110 |
--------------------------------------------------------------------------------
/examples/truss-gherkin-building:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | import math
3 |
4 | HEIGHT = 20
5 | BASE_RADIUS = 2.4
6 | TOP_RADIUS = 0.5
7 | LEVELS = 30
8 | TRUSS_COUNT = 24
9 | TRUSS_SIZE = 0.05
10 | CURVE_MODIFIERS = [(2.2, HEIGHT - HEIGHT/5), (2.7, HEIGHT/5)]
11 |
12 | def point_on_circle(radius, angle_degrees, z):
13 | angle_rad = math.radians(angle_degrees)
14 | x = radius * math.cos(angle_rad)
15 | y = radius * math.sin(angle_rad)
16 | return x, y, z
17 |
18 | assembly = cq.Assembly()
19 |
20 |
21 | # Basic structure points
22 | center_line = [(0, 0, 0), (0, 0, HEIGHT)]
23 | base = cq.Workplane("XY").circle(BASE_RADIUS).extrude(TRUSS_SIZE)
24 | top = cq.Workplane("XY").circle(TOP_RADIUS).extrude(TRUSS_SIZE).translate((0, 0, HEIGHT))
25 |
26 | side_spline_points = [point_on_circle(BASE_RADIUS,0,0),point_on_circle(CURVE_MODIFIERS[1][0], 0, CURVE_MODIFIERS[1][1]), point_on_circle(CURVE_MODIFIERS[0][0],0,CURVE_MODIFIERS[0][1]) ,point_on_circle(TOP_RADIUS,0,HEIGHT)]
27 | side_spline = cq.Workplane("XY").spline(side_spline_points)
28 |
29 | assembly.add(base, color=cq.Color(5/255, 7/255, 40/255))
30 | assembly.add(top, color=cq.Color(5/255, 7/255, 40/255))
31 | for i in range(LEVELS-1):
32 | level_height = (i+1)*HEIGHT/LEVELS
33 | point_on_curve = side_spline.val().positionAt(level_height/HEIGHT)
34 | level = cq.Workplane("XY").circle(point_on_curve.x).translate((0, 0, level_height))
35 |
36 | for i in range(LEVELS):
37 | current_level_height = i*HEIGHT/LEVELS
38 | next_level_height = (i+1)*HEIGHT/LEVELS
39 |
40 | current_point_on_curve = side_spline.val().positionAt(current_level_height/HEIGHT)
41 | next_point_on_curve = side_spline.val().positionAt(next_level_height/HEIGHT)
42 | # Sepaparation of for loops is because CQ-Editor refuses intense computations in a single loop
43 | for j in range(TRUSS_COUNT):
44 | current_point = point_on_circle(current_point_on_curve.x, j/TRUSS_COUNT*360, current_level_height)
45 | next_point = point_on_circle(next_point_on_curve.x, (j+1)/TRUSS_COUNT*360, next_level_height)
46 |
47 | truss = cq.Workplane("XY").polyline((current_point, next_point))
48 | sweep_square = cq.Workplane("XY").rect(TRUSS_SIZE, TRUSS_SIZE)
49 | swept_truss = sweep_square.sweep(truss).translate((current_point))
50 |
51 | assembly.add(swept_truss, color=cq.Color("white"))
52 | for j in range(TRUSS_COUNT):
53 | next_point = point_on_circle(next_point_on_curve.x, (j+1)/TRUSS_COUNT*360, next_level_height)
54 | last_point = point_on_circle(current_point_on_curve.x, (j+2)/TRUSS_COUNT*360, current_level_height)
55 | truss = cq.Workplane("XY").polyline((next_point, last_point))
56 | sweep_square = cq.Workplane("XY").rect(TRUSS_SIZE, TRUSS_SIZE)
57 | swept_truss = sweep_square.sweep(truss).translate((last_point))
58 | assembly.add(swept_truss, color=cq.Color("white"))
59 | for j in range(TRUSS_COUNT):
60 | current_point = point_on_circle(current_point_on_curve.x, j/TRUSS_COUNT*360, current_level_height)
61 | next_point = point_on_circle(next_point_on_curve.x, (j+1)/TRUSS_COUNT*360, next_level_height)
62 | last_point = point_on_circle(current_point_on_curve.x, (j+2)/TRUSS_COUNT*360, current_level_height)
63 | further_point = point_on_circle(next_point_on_curve.x, (j+3)/TRUSS_COUNT*360, next_level_height)
64 | edge1 = cq.Edge.makeLine(cq.Vector(*current_point), cq.Vector(*next_point))
65 | edge2 = cq.Edge.makeLine(cq.Vector(*next_point), cq.Vector(*last_point))
66 | edge3 = cq.Edge.makeLine(cq.Vector(*last_point), cq.Vector(*current_point))
67 |
68 | wire = cq.Wire.assembleEdges([edge1, edge2, edge3])
69 | face = cq.Face.makeFromWires(wire)
70 | edge1 = cq.Edge.makeLine(cq.Vector(*next_point), cq.Vector(*last_point))
71 | edge2 = cq.Edge.makeLine(cq.Vector(*last_point), cq.Vector(*further_point))
72 | edge3 = cq.Edge.makeLine(cq.Vector(*further_point), cq.Vector(*next_point))
73 |
74 | wire = cq.Wire.assembleEdges([edge1, edge2, edge3])
75 | face2 = cq.Face.makeFromWires(wire)
76 | dark_color = (5/255, 7/255, 40/255)
77 | bright_color = (204/255, 255/255, 255/255)
78 | if j == i%TRUSS_COUNT or j == (i+TRUSS_COUNT//3)%TRUSS_COUNT or j ==(i+TRUSS_COUNT*2//3)%TRUSS_COUNT or i > LEVELS*4/5:
79 | assembly.add(face, color=cq.Color(*dark_color))
80 | assembly.add(face2, color=cq.Color(*dark_color))
81 | elif (j+2)%TRUSS_COUNT == i%TRUSS_COUNT or (j+2)%TRUSS_COUNT == (i+TRUSS_COUNT//3)%TRUSS_COUNT or (j+2)%TRUSS_COUNT ==(i+TRUSS_COUNT*2//3)%TRUSS_COUNT:
82 | assembly.add(face, color=cq.Color(*bright_color))
83 | assembly.add(face2, color=cq.Color(*bright_color))
84 | elif (j+4)%TRUSS_COUNT == i%TRUSS_COUNT or (j+4)%TRUSS_COUNT == (i+TRUSS_COUNT//3)%TRUSS_COUNT or (j+4)%TRUSS_COUNT ==(i+TRUSS_COUNT*2//3)%TRUSS_COUNT:
85 | assembly.add(face, color=cq.Color(*bright_color))
86 | assembly.add(face2, color=cq.Color(*bright_color))
87 | elif (j+6)%TRUSS_COUNT == i%TRUSS_COUNT or (j+6)%TRUSS_COUNT == (i+TRUSS_COUNT//3)%TRUSS_COUNT or (j+6)%TRUSS_COUNT ==(i+TRUSS_COUNT*2//3)%TRUSS_COUNT:
88 | assembly.add(face, color=cq.Color(*bright_color))
89 | assembly.add(face2, color=cq.Color(*bright_color))
90 | show_object(assembly)
91 | #assembly.save("tower.glb")
92 |
--------------------------------------------------------------------------------
/examples/vslot-2020_1.dxf:
--------------------------------------------------------------------------------
1 | 0
2 | SECTION
3 | 2
4 | HEADER
5 | 9
6 | $ACADVER
7 | 1
8 | AC1021
9 | 9
10 | $ACADMAINTVER
11 | 70
12 | 25
13 | 9
14 | $DWGCODEPAGE
15 | 3
16 | ANSI_1252
17 | 9
18 | $INSBASE
19 | 10
20 | 0.0
21 | 20
22 | 0.0
23 | 30
24 | 0.0
25 | 9
26 | $EXTMIN
27 | 10
28 | -10.0
29 | 20
30 | -10.0
31 | 30
32 | 0.0
33 | 9
34 | $EXTMAX
35 | 10
36 | 10.0
37 | 20
38 | 10.0
39 | 30
40 | 0.0
41 | 9
42 | $LIMMIN
43 | 10
44 | 0.0
45 | 20
46 | 0.0
47 | 9
48 | $LIMMAX
49 | 10
50 | 420.0
51 | 20
52 | 297.0
53 | 9
54 | $ORTHOMODE
55 | 70
56 | 0
57 | 9
58 | $REGENMODE
59 | 70
60 | 1
61 | 9
62 | $FILLMODE
63 | 70
64 | 1
65 | 9
66 | $QTEXTMODE
67 | 70
68 | 0
69 | 9
70 | $MIRRTEXT
71 | 70
72 | 1
73 | 9
74 | $LTSCALE
75 | 40
76 | 1.0
77 | 9
78 | $ATTMODE
79 | 70
80 | 1
81 | 9
82 | $TEXTSIZE
83 | 40
84 | 3.5
85 | 9
86 | $TRACEWID
87 | 40
88 | 1.0
89 | 9
90 | $TEXTSTYLE
91 | 7
92 | Standard
93 | 9
94 | $CLAYER
95 | 8
96 | 0
97 | 9
98 | $CELTYPE
99 | 6
100 | ByLayer
101 | 9
102 | $CECOLOR
103 | 62
104 | 256
105 | 9
106 | $CELTSCALE
107 | 40
108 | 1.0
109 | 9
110 | $DISPSILH
111 | 70
112 | 0
113 | 9
114 | $DIMSCALE
115 | 40
116 | 1.0
117 | 9
118 | $DIMASZ
119 | 40
120 | 3.302
121 | 9
122 | $DIMEXO
123 | 40
124 | 1.0
125 | 9
126 | $DIMDLI
127 | 40
128 | 3.75
129 | 9
130 | $DIMRND
131 | 40
132 | 0.0
133 | 9
134 | $DIMDLE
135 | 40
136 | 0.0
137 | 9
138 | $DIMEXE
139 | 40
140 | 1.0
141 | 9
142 | $DIMTP
143 | 40
144 | 0.0
145 | 9
146 | $DIMTM
147 | 40
148 | 0.0
149 | 9
150 | $DIMTXT
151 | 40
152 | 3.5
153 | 9
154 | $DIMCEN
155 | 40
156 | 2.5
157 | 9
158 | $DIMTSZ
159 | 40
160 | 0.0
161 | 9
162 | $DIMTOL
163 | 70
164 | 0
165 | 9
166 | $DIMLIM
167 | 70
168 | 0
169 | 9
170 | $DIMTIH
171 | 70
172 | 1
173 | 9
174 | $DIMTOH
175 | 70
176 | 1
177 | 9
178 | $DIMSE1
179 | 70
180 | 0
181 | 9
182 | $DIMSE2
183 | 70
184 | 0
185 | 9
186 | $DIMTAD
187 | 70
188 | 1
189 | 9
190 | $DIMZIN
191 | 70
192 | 0
193 | 9
194 | $DIMBLK
195 | 1
196 |
197 | 9
198 | $DIMASO
199 | 70
200 | 1
201 | 9
202 | $DIMSHO
203 | 70
204 | 1
205 | 9
206 | $DIMPOST
207 | 1
208 |
209 | 9
210 | $DIMAPOST
211 | 1
212 |
213 | 9
214 | $DIMALT
215 | 70
216 | 0
217 | 9
218 | $DIMALTD
219 | 70
220 | 3
221 | 9
222 | $DIMALTF
223 | 40
224 | 0.0393700787
225 | 9
226 | $DIMLFAC
227 | 40
228 | 1.0
229 | 9
230 | $DIMTOFL
231 | 70
232 | 1
233 | 9
234 | $DIMTVP
235 | 40
236 | 0.0
237 | 9
238 | $DIMTIX
239 | 70
240 | 0
241 | 9
242 | $DIMSOXD
243 | 70
244 | 0
245 | 9
246 | $DIMSAH
247 | 70
248 | 0
249 | 9
250 | $DIMBLK1
251 | 1
252 |
253 | 9
254 | $DIMBLK2
255 | 1
256 |
257 | 9
258 | $DIMSTYLE
259 | 2
260 | ISO-25
261 | 9
262 | $DIMCLRD
263 | 70
264 | 0
265 | 9
266 | $DIMCLRE
267 | 70
268 | 0
269 | 9
270 | $DIMCLRT
271 | 70
272 | 0
273 | 9
274 | $DIMTFAC
275 | 40
276 | 1.0
277 | 9
278 | $DIMGAP
279 | 40
280 | 1.524
281 | 9
282 | $DIMJUST
283 | 70
284 | 0
285 | 9
286 | $DIMSD1
287 | 70
288 | 0
289 | 9
290 | $DIMSD2
291 | 70
292 | 0
293 | 9
294 | $DIMTOLJ
295 | 70
296 | 0
297 | 9
298 | $DIMTZIN
299 | 70
300 | 0
301 | 9
302 | $DIMALTZ
303 | 70
304 | 0
305 | 9
306 | $DIMALTTZ
307 | 70
308 | 0
309 | 9
310 | $DIMUPT
311 | 70
312 | 0
313 | 9
314 | $DIMDEC
315 | 70
316 | 2
317 | 9
318 | $DIMTDEC
319 | 70
320 | 2
321 | 9
322 | $DIMALTU
323 | 70
324 | 2
325 | 9
326 | $DIMALTTD
327 | 70
328 | 3
329 | 9
330 | $DIMTXSTY
331 | 7
332 | Standard
333 | 9
334 | $DIMAUNIT
335 | 70
336 | 0
337 | 9
338 | $DIMADEC
339 | 70
340 | 2
341 | 9
342 | $DIMALTRND
343 | 40
344 | 0.0
345 | 9
346 | $DIMAZIN
347 | 70
348 | 0
349 | 9
350 | $DIMDSEP
351 | 70
352 | 44
353 | 9
354 | $DIMATFIT
355 | 70
356 | 3
357 | 9
358 | $DIMFRAC
359 | 70
360 | 0
361 | 9
362 | $DIMLDRBLK
363 | 1
364 |
365 | 9
366 | $DIMLUNIT
367 | 70
368 | 2
369 | 9
370 | $DIMLWD
371 | 70
372 | -2
373 | 9
374 | $DIMLWE
375 | 70
376 | -2
377 | 9
378 | $DIMTMOVE
379 | 70
380 | 0
381 | 9
382 | $DIMFXL
383 | 40
384 | 1.0
385 | 9
386 | $DIMFXLON
387 | 70
388 | 0
389 | 9
390 | $DIMJOGANG
391 | 40
392 | 0.7853981634
393 | 9
394 | $DIMTFILL
395 | 70
396 | 0
397 | 9
398 | $DIMTFILLCLR
399 | 70
400 | 0
401 | 9
402 | $DIMARCSYM
403 | 70
404 | 0
405 | 9
406 | $DIMLTYPE
407 | 6
408 |
409 | 9
410 | $DIMLTEX1
411 | 6
412 |
413 | 9
414 | $DIMLTEX2
415 | 6
416 |
417 | 9
418 | $LUNITS
419 | 70
420 | 2
421 | 9
422 | $LUPREC
423 | 70
424 | 2
425 | 9
426 | $SKETCHINC
427 | 40
428 | 1.0
429 | 9
430 | $FILLETRAD
431 | 40
432 | 10.0
433 | 9
434 | $AUNITS
435 | 70
436 | 0
437 | 9
438 | $AUPREC
439 | 70
440 | 2
441 | 9
442 | $MENU
443 | 1
444 | .
445 | 9
446 | $ELEVATION
447 | 40
448 | 0.0
449 | 9
450 | $PELEVATION
451 | 40
452 | 0.0
453 | 9
454 | $THICKNESS
455 | 40
456 | 0.0
457 | 9
458 | $LIMCHECK
459 | 70
460 | 0
461 | 9
462 | $CHAMFERA
463 | 40
464 | 0.0
465 | 9
466 | $CHAMFERB
467 | 40
468 | 0.0
469 | 9
470 | $CHAMFERC
471 | 40
472 | 0.0
473 | 9
474 | $CHAMFERD
475 | 40
476 | 0.0
477 | 9
478 | $SKPOLY
479 | 70
480 | 0
481 | 9
482 | $TDCREATE
483 | 40
484 | 2458569.390570567
485 | 9
486 | $TDUCREATE
487 | 40
488 | 2458569.3489039
489 | 9
490 | $TDUPDATE
491 | 40
492 | 2458569.39059581
493 | 9
494 | $TDUUPDATE
495 | 40
496 | 2458569.348929144
497 | 9
498 | $TDINDWG
499 | 40
500 | 0.0000000116
501 | 9
502 | $TDUSRTIMER
503 | 40
504 | 0.0000000116
505 | 9
506 | $USRTIMER
507 | 70
508 | 1
509 | 9
510 | $ANGBASE
511 | 50
512 | 0.0
513 | 9
514 | $ANGDIR
515 | 70
516 | 0
517 | 9
518 | $PDMODE
519 | 70
520 | 0
521 | 9
522 | $PDSIZE
523 | 40
524 | -1.0
525 | 9
526 | $PLINEWID
527 | 40
528 | 0.0
529 | 9
530 | $SPLFRAME
531 | 70
532 | 0
533 | 9
534 | $SPLINETYPE
535 | 70
536 | 6
537 | 9
538 | $SPLINESEGS
539 | 70
540 | 8
541 | 9
542 | $HANDSEED
543 | 5
544 | B0
545 | 9
546 | $SURFTAB1
547 | 70
548 | 6
549 | 9
550 | $SURFTAB2
551 | 70
552 | 6
553 | 9
554 | $SURFTYPE
555 | 70
556 | 6
557 | 9
558 | $SURFU
559 | 70
560 | 6
561 | 9
562 | $SURFV
563 | 70
564 | 6
565 | 9
566 | $UCSBASE
567 | 2
568 |
569 | 9
570 | $UCSNAME
571 | 2
572 |
573 | 9
574 | $UCSORG
575 | 10
576 | 0.0
577 | 20
578 | 0.0
579 | 30
580 | 0.0
581 | 9
582 | $UCSXDIR
583 | 10
584 | 1.0
585 | 20
586 | 0.0
587 | 30
588 | 0.0
589 | 9
590 | $UCSYDIR
591 | 10
592 | 0.0
593 | 20
594 | 1.0
595 | 30
596 | 0.0
597 | 9
598 | $UCSORTHOREF
599 | 2
600 |
601 | 9
602 | $UCSORTHOVIEW
603 | 70
604 | 0
605 | 9
606 | $UCSORGTOP
607 | 10
608 | 0.0
609 | 20
610 | 0.0
611 | 30
612 | 0.0
613 | 9
614 | $UCSORGBOTTOM
615 | 10
616 | 0.0
617 | 20
618 | 0.0
619 | 30
620 | 0.0
621 | 9
622 | $UCSORGLEFT
623 | 10
624 | 0.0
625 | 20
626 | 0.0
627 | 30
628 | 0.0
629 | 9
630 | $UCSORGRIGHT
631 | 10
632 | 0.0
633 | 20
634 | 0.0
635 | 30
636 | 0.0
637 | 9
638 | $UCSORGFRONT
639 | 10
640 | 0.0
641 | 20
642 | 0.0
643 | 30
644 | 0.0
645 | 9
646 | $UCSORGBACK
647 | 10
648 | 0.0
649 | 20
650 | 0.0
651 | 30
652 | 0.0
653 | 9
654 | $PUCSBASE
655 | 2
656 |
657 | 9
658 | $PUCSNAME
659 | 2
660 |
661 | 9
662 | $PUCSORG
663 | 10
664 | 0.0
665 | 20
666 | 0.0
667 | 30
668 | 0.0
669 | 9
670 | $PUCSXDIR
671 | 10
672 | 1.0
673 | 20
674 | 0.0
675 | 30
676 | 0.0
677 | 9
678 | $PUCSYDIR
679 | 10
680 | 0.0
681 | 20
682 | 1.0
683 | 30
684 | 0.0
685 | 9
686 | $PUCSORTHOREF
687 | 2
688 |
689 | 9
690 | $PUCSORTHOVIEW
691 | 70
692 | 0
693 | 9
694 | $PUCSORGTOP
695 | 10
696 | 0.0
697 | 20
698 | 0.0
699 | 30
700 | 0.0
701 | 9
702 | $PUCSORGBOTTOM
703 | 10
704 | 0.0
705 | 20
706 | 0.0
707 | 30
708 | 0.0
709 | 9
710 | $PUCSORGLEFT
711 | 10
712 | 0.0
713 | 20
714 | 0.0
715 | 30
716 | 0.0
717 | 9
718 | $PUCSORGRIGHT
719 | 10
720 | 0.0
721 | 20
722 | 0.0
723 | 30
724 | 0.0
725 | 9
726 | $PUCSORGFRONT
727 | 10
728 | 0.0
729 | 20
730 | 0.0
731 | 30
732 | 0.0
733 | 9
734 | $PUCSORGBACK
735 | 10
736 | 0.0
737 | 20
738 | 0.0
739 | 30
740 | 0.0
741 | 9
742 | $USERI1
743 | 70
744 | 0
745 | 9
746 | $USERI2
747 | 70
748 | 0
749 | 9
750 | $USERI3
751 | 70
752 | 0
753 | 9
754 | $USERI4
755 | 70
756 | 0
757 | 9
758 | $USERI5
759 | 70
760 | 0
761 | 9
762 | $USERR1
763 | 40
764 | 0.0
765 | 9
766 | $USERR2
767 | 40
768 | 0.0
769 | 9
770 | $USERR3
771 | 40
772 | 0.0
773 | 9
774 | $USERR4
775 | 40
776 | 0.0
777 | 9
778 | $USERR5
779 | 40
780 | 0.0
781 | 9
782 | $WORLDVIEW
783 | 70
784 | 1
785 | 9
786 | $SHADEDGE
787 | 70
788 | 3
789 | 9
790 | $SHADEDIF
791 | 70
792 | 70
793 | 9
794 | $TILEMODE
795 | 70
796 | 1
797 | 9
798 | $MAXACTVP
799 | 70
800 | 64
801 | 9
802 | $PINSBASE
803 | 10
804 | 0.0
805 | 20
806 | 0.0
807 | 30
808 | 0.0
809 | 9
810 | $PLIMCHECK
811 | 70
812 | 0
813 | 9
814 | $PEXTMIN
815 | 10
816 | 1.0000000000E+20
817 | 20
818 | 1.0000000000E+20
819 | 30
820 | 1.0000000000E+20
821 | 9
822 | $PEXTMAX
823 | 10
824 | -1.0000000000E+20
825 | 20
826 | -1.0000000000E+20
827 | 30
828 | -1.0000000000E+20
829 | 9
830 | $PLIMMIN
831 | 10
832 | 0.0
833 | 20
834 | 0.0
835 | 9
836 | $PLIMMAX
837 | 10
838 | 420.0
839 | 20
840 | 297.0
841 | 9
842 | $UNITMODE
843 | 70
844 | 0
845 | 9
846 | $VISRETAIN
847 | 70
848 | 1
849 | 9
850 | $PLINEGEN
851 | 70
852 | 0
853 | 9
854 | $PSLTSCALE
855 | 70
856 | 1
857 | 9
858 | $TREEDEPTH
859 | 70
860 | 3020
861 | 9
862 | $CMLSTYLE
863 | 2
864 | Standard
865 | 9
866 | $CMLJUST
867 | 70
868 | 0
869 | 9
870 | $CMLSCALE
871 | 40
872 | 20.0
873 | 9
874 | $PROXYGRAPHICS
875 | 70
876 | 1
877 | 9
878 | $MEASUREMENT
879 | 70
880 | 1
881 | 9
882 | $CELWEIGHT
883 | 370
884 | -1
885 | 9
886 | $ENDCAPS
887 | 280
888 | 0
889 | 9
890 | $JOINSTYLE
891 | 280
892 | 0
893 | 9
894 | $LWDISPLAY
895 | 290
896 | 1
897 | 9
898 | $INSUNITS
899 | 70
900 | 4
901 | 9
902 | $HYPERLINKBASE
903 | 1
904 |
905 | 9
906 | $STYLESHEET
907 | 1
908 |
909 | 9
910 | $XEDIT
911 | 290
912 | 1
913 | 9
914 | $CEPSNTYPE
915 | 380
916 | 0
917 | 9
918 | $PSTYLEMODE
919 | 290
920 | 1
921 | 9
922 | $FINGERPRINTGUID
923 | 2
924 | {17378cf6-d186-43dd-bcc8-1f58d3cda321}
925 | 9
926 | $VERSIONGUID
927 | 2
928 | {FAEB1C32-E019-11D5-929B-00C0DF256EC4}
929 | 9
930 | $EXTNAMES
931 | 290
932 | 1
933 | 9
934 | $PSVPSCALE
935 | 40
936 | 0.0
937 | 9
938 | $OLESTARTUP
939 | 290
940 | 0
941 | 9
942 | $SORTENTS
943 | 280
944 | 127
945 | 9
946 | $INDEXCTL
947 | 280
948 | 0
949 | 9
950 | $HIDETEXT
951 | 280
952 | 1
953 | 9
954 | $XCLIPFRAME
955 | 290
956 | 0
957 | 9
958 | $HALOGAP
959 | 280
960 | 0
961 | 9
962 | $OBSCOLOR
963 | 70
964 | 257
965 | 9
966 | $OBSLTYPE
967 | 280
968 | 0
969 | 9
970 | $INTERSECTIONDISPLAY
971 | 280
972 | 0
973 | 9
974 | $INTERSECTIONCOLOR
975 | 70
976 | 257
977 | 9
978 | $DIMASSOC
979 | 280
980 | 2
981 | 9
982 | $PROJECTNAME
983 | 1
984 |
985 | 9
986 | $CAMERADISPLAY
987 | 290
988 | 0
989 | 9
990 | $LENSLENGTH
991 | 40
992 | 50.0
993 | 9
994 | $CAMERAHEIGHT
995 | 40
996 | 0.0
997 | 9
998 | $STEPSPERSEC
999 | 40
1000 | 2.0
1001 | 9
1002 | $STEPSIZE
1003 | 40
1004 | 6.0
1005 | 9
1006 | $3DDWFPREC
1007 | 40
1008 | 2.0
1009 | 9
1010 | $PSOLWIDTH
1011 | 40
1012 | 5.0
1013 | 9
1014 | $PSOLHEIGHT
1015 | 40
1016 | 80.0
1017 | 9
1018 | $LOFTANG1
1019 | 40
1020 | 1.5707963268
1021 | 9
1022 | $LOFTANG2
1023 | 40
1024 | 1.5707963268
1025 | 9
1026 | $LOFTMAG1
1027 | 40
1028 | 0.0
1029 | 9
1030 | $LOFTMAG2
1031 | 40
1032 | 0.0
1033 | 9
1034 | $LOFTPARAM
1035 | 70
1036 | 7
1037 | 9
1038 | $LOFTNORMALS
1039 | 280
1040 | 1
1041 | 9
1042 | $LATITUDE
1043 | 40
1044 | 37.795
1045 | 9
1046 | $LONGITUDE
1047 | 40
1048 | -122.394
1049 | 9
1050 | $NORTHDIRECTION
1051 | 40
1052 | 0.0
1053 | 9
1054 | $TIMEZONE
1055 | 70
1056 | -8000
1057 | 9
1058 | $LIGHTGLYPHDISPLAY
1059 | 280
1060 | 1
1061 | 9
1062 | $TILEMODELIGHTSYNCH
1063 | 280
1064 | 1
1065 | 9
1066 | $CMATERIAL
1067 | 347
1068 | 44
1069 | 9
1070 | $SOLIDHIST
1071 | 280
1072 | 0
1073 | 9
1074 | $SHOWHIST
1075 | 280
1076 | 1
1077 | 9
1078 | $DWFFRAME
1079 | 280
1080 | 2
1081 | 9
1082 | $DGNFRAME
1083 | 280
1084 | 2
1085 | 9
1086 | $REALWORLDSCALE
1087 | 290
1088 | 1
1089 | 9
1090 | $INTERFERECOLOR
1091 | 62
1092 | 256
1093 | 9
1094 | $CSHADOW
1095 | 280
1096 | 0
1097 | 9
1098 | $SHADOWPLANELOCATION
1099 | 40
1100 | 0.0
1101 | 0
1102 | ENDSEC
1103 | 0
1104 | SECTION
1105 | 2
1106 | CLASSES
1107 | 0
1108 | CLASS
1109 | 1
1110 | ACDBDICTIONARYWDFLT
1111 | 2
1112 | AcDbDictionaryWithDefault
1113 | 3
1114 | ObjectDBX Classes
1115 | 90
1116 | 0
1117 | 91
1118 | 3
1119 | 280
1120 | 0
1121 | 281
1122 | 0
1123 | 0
1124 | CLASS
1125 | 1
1126 | VISUALSTYLE
1127 | 2
1128 | AcDbVisualStyle
1129 | 3
1130 | ObjectDBX Classes
1131 | 90
1132 | 4095
1133 | 91
1134 | 3
1135 | 280
1136 | 0
1137 | 281
1138 | 0
1139 | 0
1140 | CLASS
1141 | 1
1142 | MATERIAL
1143 | 2
1144 | AcDbMaterial
1145 | 3
1146 | ObjectDBX Classes
1147 | 90
1148 | 1153
1149 | 91
1150 | 3
1151 | 280
1152 | 0
1153 | 281
1154 | 0
1155 | 0
1156 | CLASS
1157 | 1
1158 | SCALE
1159 | 2
1160 | AcDbScale
1161 | 3
1162 | ObjectDBX Classes
1163 | 90
1164 | 1153
1165 | 91
1166 | 3
1167 | 280
1168 | 0
1169 | 281
1170 | 0
1171 | 0
1172 | CLASS
1173 | 1
1174 | TABLESTYLE
1175 | 2
1176 | AcDbTableStyle
1177 | 3
1178 | ObjectDBX Classes
1179 | 90
1180 | 4095
1181 | 91
1182 | 3
1183 | 280
1184 | 0
1185 | 281
1186 | 0
1187 | 0
1188 | CLASS
1189 | 1
1190 | MLEADERSTYLE
1191 | 2
1192 | AcDbMLeaderStyle
1193 | 3
1194 | ACDB_MLEADERSTYLE_CLASS
1195 | 90
1196 | 4095
1197 | 91
1198 | 3
1199 | 280
1200 | 0
1201 | 281
1202 | 0
1203 | 0
1204 | CLASS
1205 | 1
1206 | SUN
1207 | 2
1208 | AcDbSun
1209 | 3
1210 | SCENEOE
1211 | 90
1212 | 1153
1213 | 91
1214 | 3
1215 | 280
1216 | 0
1217 | 281
1218 | 0
1219 | 0
1220 | CLASS
1221 | 1
1222 | DICTIONARYVAR
1223 | 2
1224 | AcDbDictionaryVar
1225 | 3
1226 | ObjectDBX Classes
1227 | 90
1228 | 0
1229 | 91
1230 | 3
1231 | 280
1232 | 0
1233 | 281
1234 | 0
1235 | 0
1236 | CLASS
1237 | 1
1238 | CELLSTYLEMAP
1239 | 2
1240 | AcDbCellStyleMap
1241 | 3
1242 | ObjectDBX Classes
1243 | 90
1244 | 1152
1245 | 91
1246 | 3
1247 | 280
1248 | 0
1249 | 281
1250 | 0
1251 | 0
1252 | ENDSEC
1253 | 0
1254 | SECTION
1255 | 2
1256 | TABLES
1257 | 0
1258 | TABLE
1259 | 2
1260 | VPORT
1261 | 5
1262 | 8
1263 | 330
1264 | 0
1265 | 100
1266 | AcDbSymbolTable
1267 | 70
1268 | 1
1269 | 0
1270 | VPORT
1271 | 5
1272 | 29
1273 | 330
1274 | 8
1275 | 100
1276 | AcDbSymbolTableRecord
1277 | 100
1278 | AcDbViewportTableRecord
1279 | 2
1280 | *Active
1281 | 70
1282 | 0
1283 | 10
1284 | 0.0
1285 | 20
1286 | 0.0
1287 | 11
1288 | 1.0
1289 | 21
1290 | 1.0
1291 | 12
1292 | 0.0
1293 | 22
1294 | 0.0
1295 | 13
1296 | 0.0
1297 | 23
1298 | 0.0
1299 | 14
1300 | 10.0
1301 | 24
1302 | 10.0
1303 | 15
1304 | 10.0
1305 | 25
1306 | 10.0
1307 | 16
1308 | 0.0
1309 | 26
1310 | 0.0
1311 | 36
1312 | 1.0
1313 | 17
1314 | 0.0
1315 | 27
1316 | 0.0
1317 | 37
1318 | 0.0
1319 | 40
1320 | 20.4
1321 | 41
1322 | 1.0
1323 | 42
1324 | 50.0
1325 | 43
1326 | 0.0
1327 | 44
1328 | 0.0
1329 | 50
1330 | 0.0
1331 | 51
1332 | 0.0
1333 | 71
1334 | 0
1335 | 72
1336 | 100
1337 | 73
1338 | 1
1339 | 74
1340 | 3
1341 | 75
1342 | 0
1343 | 76
1344 | 0
1345 | 77
1346 | 0
1347 | 78
1348 | 0
1349 | 281
1350 | 0
1351 | 65
1352 | 1
1353 | 110
1354 | 0.0
1355 | 120
1356 | 0.0
1357 | 130
1358 | 0.0
1359 | 111
1360 | 1.0
1361 | 121
1362 | 0.0
1363 | 131
1364 | 0.0
1365 | 112
1366 | 0.0
1367 | 122
1368 | 1.0
1369 | 132
1370 | 0.0
1371 | 79
1372 | 0
1373 | 146
1374 | 0.0
1375 | 348
1376 | 2F
1377 | 60
1378 | 3
1379 | 61
1380 | 5
1381 | 292
1382 | 1
1383 | 282
1384 | 1
1385 | 141
1386 | 0.0
1387 | 142
1388 | 0.0
1389 | 63
1390 | 250
1391 | 361
1392 | 6D
1393 | 0
1394 | ENDTAB
1395 | 0
1396 | TABLE
1397 | 2
1398 | LTYPE
1399 | 5
1400 | 5
1401 | 330
1402 | 0
1403 | 100
1404 | AcDbSymbolTable
1405 | 70
1406 | 6
1407 | 0
1408 | LTYPE
1409 | 5
1410 | 14
1411 | 330
1412 | 5
1413 | 100
1414 | AcDbSymbolTableRecord
1415 | 100
1416 | AcDbLinetypeTableRecord
1417 | 2
1418 | ByBlock
1419 | 70
1420 | 0
1421 | 3
1422 |
1423 | 72
1424 | 65
1425 | 73
1426 | 0
1427 | 40
1428 | 0.0
1429 | 0
1430 | LTYPE
1431 | 5
1432 | 15
1433 | 330
1434 | 5
1435 | 100
1436 | AcDbSymbolTableRecord
1437 | 100
1438 | AcDbLinetypeTableRecord
1439 | 2
1440 | ByLayer
1441 | 70
1442 | 0
1443 | 3
1444 |
1445 | 72
1446 | 65
1447 | 73
1448 | 0
1449 | 40
1450 | 0.0
1451 | 0
1452 | LTYPE
1453 | 5
1454 | 16
1455 | 330
1456 | 5
1457 | 100
1458 | AcDbSymbolTableRecord
1459 | 100
1460 | AcDbLinetypeTableRecord
1461 | 2
1462 | Continuous
1463 | 70
1464 | 0
1465 | 3
1466 | Solid line
1467 | 72
1468 | 65
1469 | 73
1470 | 0
1471 | 40
1472 | 0.0
1473 | 0
1474 | LTYPE
1475 | 5
1476 | 6E
1477 | 330
1478 | 5
1479 | 100
1480 | AcDbSymbolTableRecord
1481 | 100
1482 | AcDbLinetypeTableRecord
1483 | 2
1484 | HIDDEN
1485 | 70
1486 | 0
1487 | 3
1488 | Hidden __ __ __ __ __ __ __ __ __ __ __ __ __ __
1489 | 72
1490 | 65
1491 | 73
1492 | 2
1493 | 40
1494 | 1.905
1495 | 49
1496 | 1.27
1497 | 74
1498 | 0
1499 | 49
1500 | -0.635
1501 | 74
1502 | 0
1503 | 0
1504 | LTYPE
1505 | 5
1506 | 6F
1507 | 330
1508 | 5
1509 | 100
1510 | AcDbSymbolTableRecord
1511 | 100
1512 | AcDbLinetypeTableRecord
1513 | 2
1514 | PHANTOM
1515 | 70
1516 | 0
1517 | 3
1518 | Phantom ______ __ __ ______ __ __ ______
1519 | 72
1520 | 65
1521 | 73
1522 | 6
1523 | 40
1524 | 12.7
1525 | 49
1526 | 6.35
1527 | 74
1528 | 0
1529 | 49
1530 | -1.27
1531 | 74
1532 | 0
1533 | 49
1534 | 1.27
1535 | 74
1536 | 0
1537 | 49
1538 | -1.27
1539 | 74
1540 | 0
1541 | 49
1542 | 1.27
1543 | 74
1544 | 0
1545 | 49
1546 | -1.27
1547 | 74
1548 | 0
1549 | 0
1550 | LTYPE
1551 | 5
1552 | 70
1553 | 330
1554 | 5
1555 | 100
1556 | AcDbSymbolTableRecord
1557 | 100
1558 | AcDbLinetypeTableRecord
1559 | 2
1560 | CENTER
1561 | 70
1562 | 0
1563 | 3
1564 | Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
1565 | 72
1566 | 65
1567 | 73
1568 | 4
1569 | 40
1570 | 10.16
1571 | 49
1572 | 6.35
1573 | 74
1574 | 0
1575 | 49
1576 | -1.27
1577 | 74
1578 | 0
1579 | 49
1580 | 1.27
1581 | 74
1582 | 0
1583 | 49
1584 | -1.27
1585 | 74
1586 | 0
1587 | 0
1588 | LTYPE
1589 | 5
1590 | 71
1591 | 330
1592 | 5
1593 | 100
1594 | AcDbSymbolTableRecord
1595 | 100
1596 | AcDbLinetypeTableRecord
1597 | 2
1598 | CENTERX2
1599 | 70
1600 | 0
1601 | 3
1602 | Center (2x) ________ __ ________ __ _____
1603 | 72
1604 | 65
1605 | 73
1606 | 4
1607 | 40
1608 | 20.32
1609 | 49
1610 | 12.7
1611 | 74
1612 | 0
1613 | 49
1614 | -2.54
1615 | 74
1616 | 0
1617 | 49
1618 | 2.54
1619 | 74
1620 | 0
1621 | 49
1622 | -2.54
1623 | 74
1624 | 0
1625 | 0
1626 | LTYPE
1627 | 5
1628 | 72
1629 | 330
1630 | 5
1631 | 100
1632 | AcDbSymbolTableRecord
1633 | 100
1634 | AcDbLinetypeTableRecord
1635 | 2
1636 | DOT2
1637 | 70
1638 | 0
1639 | 3
1640 | Dot (.5x) ........................................
1641 | 72
1642 | 65
1643 | 73
1644 | 2
1645 | 40
1646 | 0.635
1647 | 49
1648 | 0.0
1649 | 74
1650 | 0
1651 | 49
1652 | -0.635
1653 | 74
1654 | 0
1655 | 0
1656 | ENDTAB
1657 | 0
1658 | TABLE
1659 | 2
1660 | LAYER
1661 | 5
1662 | 2
1663 | 330
1664 | 0
1665 | 100
1666 | AcDbSymbolTable
1667 | 70
1668 | 1
1669 | 0
1670 | LAYER
1671 | 5
1672 | 10
1673 | 330
1674 | 2
1675 | 100
1676 | AcDbSymbolTableRecord
1677 | 100
1678 | AcDbLayerTableRecord
1679 | 2
1680 | 0
1681 | 70
1682 | 0
1683 | 62
1684 | 7
1685 | 6
1686 | Continuous
1687 | 370
1688 | -3
1689 | 390
1690 | F
1691 | 347
1692 | 46
1693 | 0
1694 | ENDTAB
1695 | 0
1696 | TABLE
1697 | 2
1698 | STYLE
1699 | 5
1700 | 3
1701 | 330
1702 | 0
1703 | 100
1704 | AcDbSymbolTable
1705 | 70
1706 | 1
1707 | 0
1708 | STYLE
1709 | 5
1710 | 11
1711 | 330
1712 | 3
1713 | 100
1714 | AcDbSymbolTableRecord
1715 | 100
1716 | AcDbTextStyleTableRecord
1717 | 2
1718 | Standard
1719 | 70
1720 | 0
1721 | 40
1722 | 0.0
1723 | 41
1724 | 1.0
1725 | 50
1726 | 0.0
1727 | 71
1728 | 0
1729 | 42
1730 | 3.5
1731 | 3
1732 | txt
1733 | 4
1734 |
1735 | 0
1736 | ENDTAB
1737 | 0
1738 | TABLE
1739 | 2
1740 | VIEW
1741 | 5
1742 | 6
1743 | 330
1744 | 0
1745 | 100
1746 | AcDbSymbolTable
1747 | 70
1748 | 0
1749 | 0
1750 | ENDTAB
1751 | 0
1752 | TABLE
1753 | 2
1754 | UCS
1755 | 5
1756 | 7
1757 | 330
1758 | 0
1759 | 100
1760 | AcDbSymbolTable
1761 | 70
1762 | 0
1763 | 0
1764 | ENDTAB
1765 | 0
1766 | TABLE
1767 | 2
1768 | APPID
1769 | 5
1770 | 9
1771 | 330
1772 | 0
1773 | 100
1774 | AcDbSymbolTable
1775 | 70
1776 | 2
1777 | 0
1778 | APPID
1779 | 5
1780 | 12
1781 | 330
1782 | 9
1783 | 100
1784 | AcDbSymbolTableRecord
1785 | 100
1786 | AcDbRegAppTableRecord
1787 | 2
1788 | ACAD
1789 | 70
1790 | 0
1791 | 0
1792 | APPID
1793 | 5
1794 | A8
1795 | 330
1796 | 9
1797 | 100
1798 | AcDbSymbolTableRecord
1799 | 100
1800 | AcDbRegAppTableRecord
1801 | 2
1802 | ACAD_MLEADERVER
1803 | 70
1804 | 0
1805 | 0
1806 | ENDTAB
1807 | 0
1808 | TABLE
1809 | 2
1810 | DIMSTYLE
1811 | 5
1812 | A
1813 | 330
1814 | 0
1815 | 100
1816 | AcDbSymbolTable
1817 | 70
1818 | 1
1819 | 100
1820 | AcDbDimStyleTable
1821 | 0
1822 | DIMSTYLE
1823 | 105
1824 | 27
1825 | 330
1826 | A
1827 | 100
1828 | AcDbSymbolTableRecord
1829 | 100
1830 | AcDbDimStyleTableRecord
1831 | 2
1832 | ISO-25
1833 | 70
1834 | 0
1835 | 41
1836 | 2.5
1837 | 42
1838 | 0.625
1839 | 43
1840 | 3.75
1841 | 44
1842 | 1.25
1843 | 73
1844 | 0
1845 | 74
1846 | 0
1847 | 77
1848 | 1
1849 | 78
1850 | 8
1851 | 140
1852 | 2.5
1853 | 141
1854 | 2.5
1855 | 143
1856 | 0.0393700787
1857 | 147
1858 | 0.625
1859 | 171
1860 | 3
1861 | 172
1862 | 1
1863 | 178
1864 | 0
1865 | 271
1866 | 2
1867 | 272
1868 | 2
1869 | 274
1870 | 3
1871 | 278
1872 | 44
1873 | 283
1874 | 0
1875 | 284
1876 | 8
1877 | 340
1878 | 11
1879 | 0
1880 | ENDTAB
1881 | 0
1882 | TABLE
1883 | 2
1884 | BLOCK_RECORD
1885 | 5
1886 | 1
1887 | 330
1888 | 0
1889 | 100
1890 | AcDbSymbolTable
1891 | 70
1892 | 1
1893 | 0
1894 | BLOCK_RECORD
1895 | 5
1896 | 1F
1897 | 330
1898 | 1
1899 | 100
1900 | AcDbSymbolTableRecord
1901 | 100
1902 | AcDbBlockTableRecord
1903 | 2
1904 | *Model_Space
1905 | 340
1906 | 22
1907 | 70
1908 | 0
1909 | 280
1910 | 1
1911 | 281
1912 | 0
1913 | 0
1914 | BLOCK_RECORD
1915 | 5
1916 | 1B
1917 | 330
1918 | 1
1919 | 100
1920 | AcDbSymbolTableRecord
1921 | 100
1922 | AcDbBlockTableRecord
1923 | 2
1924 | *Paper_Space
1925 | 340
1926 | 1E
1927 | 70
1928 | 0
1929 | 280
1930 | 1
1931 | 281
1932 | 0
1933 | 0
1934 | BLOCK_RECORD
1935 | 5
1936 | 23
1937 | 330
1938 | 1
1939 | 100
1940 | AcDbSymbolTableRecord
1941 | 100
1942 | AcDbBlockTableRecord
1943 | 2
1944 | *Paper_Space0
1945 | 340
1946 | 26
1947 | 70
1948 | 0
1949 | 280
1950 | 1
1951 | 281
1952 | 0
1953 | 0
1954 | ENDTAB
1955 | 0
1956 | ENDSEC
1957 | 0
1958 | SECTION
1959 | 2
1960 | BLOCKS
1961 | 0
1962 | BLOCK
1963 | 5
1964 | 20
1965 | 330
1966 | 1F
1967 | 100
1968 | AcDbEntity
1969 | 8
1970 | 0
1971 | 100
1972 | AcDbBlockBegin
1973 | 2
1974 | *Model_Space
1975 | 70
1976 | 0
1977 | 10
1978 | 0.0
1979 | 20
1980 | 0.0
1981 | 30
1982 | 0.0
1983 | 3
1984 | *Model_Space
1985 | 1
1986 |
1987 | 0
1988 | ENDBLK
1989 | 5
1990 | 21
1991 | 330
1992 | 1F
1993 | 100
1994 | AcDbEntity
1995 | 8
1996 | 0
1997 | 100
1998 | AcDbBlockEnd
1999 | 0
2000 | BLOCK
2001 | 5
2002 | 1C
2003 | 330
2004 | 1B
2005 | 100
2006 | AcDbEntity
2007 | 67
2008 | 1
2009 | 8
2010 | 0
2011 | 100
2012 | AcDbBlockBegin
2013 | 2
2014 | *Paper_Space
2015 | 70
2016 | 0
2017 | 10
2018 | 0.0
2019 | 20
2020 | 0.0
2021 | 30
2022 | 0.0
2023 | 3
2024 | *Paper_Space
2025 | 1
2026 |
2027 | 0
2028 | ENDBLK
2029 | 5
2030 | 1D
2031 | 330
2032 | 1B
2033 | 100
2034 | AcDbEntity
2035 | 67
2036 | 1
2037 | 8
2038 | 0
2039 | 100
2040 | AcDbBlockEnd
2041 | 0
2042 | BLOCK
2043 | 5
2044 | 24
2045 | 330
2046 | 23
2047 | 100
2048 | AcDbEntity
2049 | 8
2050 | 0
2051 | 100
2052 | AcDbBlockBegin
2053 | 2
2054 | *Paper_Space0
2055 | 70
2056 | 0
2057 | 10
2058 | 0.0
2059 | 20
2060 | 0.0
2061 | 30
2062 | 0.0
2063 | 3
2064 | *Paper_Space0
2065 | 1
2066 |
2067 | 0
2068 | ENDBLK
2069 | 5
2070 | 25
2071 | 330
2072 | 23
2073 | 100
2074 | AcDbEntity
2075 | 8
2076 | 0
2077 | 100
2078 | AcDbBlockEnd
2079 | 0
2080 | ENDSEC
2081 | 0
2082 | SECTION
2083 | 2
2084 | ENTITIES
2085 | 0
2086 | CIRCLE
2087 | 5
2088 | 73
2089 | 330
2090 | 1F
2091 | 100
2092 | AcDbEntity
2093 | 8
2094 | 0
2095 | 6
2096 | Continuous
2097 | 62
2098 | 7
2099 | 370
2100 | 25
2101 | 100
2102 | AcDbCircle
2103 | 10
2104 | 0.0
2105 | 20
2106 | 0.0
2107 | 30
2108 | 0.0
2109 | 40
2110 | 2.100000000000001
2111 | 0
2112 | ARC
2113 | 5
2114 | 74
2115 | 330
2116 | 1F
2117 | 100
2118 | AcDbEntity
2119 | 8
2120 | 0
2121 | 6
2122 | Continuous
2123 | 62
2124 | 7
2125 | 370
2126 | 25
2127 | 100
2128 | AcDbCircle
2129 | 10
2130 | -9.9
2131 | 20
2132 | 9.9
2133 | 30
2134 | 0.0
2135 | 40
2136 | 0.1000000000000245
2137 | 100
2138 | AcDbArc
2139 | 50
2140 | 90.0
2141 | 51
2142 | 180.0
2143 | 0
2144 | LINE
2145 | 5
2146 | 75
2147 | 330
2148 | 1F
2149 | 100
2150 | AcDbEntity
2151 | 8
2152 | 0
2153 | 6
2154 | Continuous
2155 | 62
2156 | 7
2157 | 370
2158 | 25
2159 | 100
2160 | AcDbLine
2161 | 10
2162 | -10.0
2163 | 20
2164 | 4.95
2165 | 30
2166 | 0.0
2167 | 11
2168 | -10.0
2169 | 21
2170 | 9.9
2171 | 31
2172 | 0.0
2173 | 0
2174 | LINE
2175 | 5
2176 | 76
2177 | 330
2178 | 1F
2179 | 100
2180 | AcDbEntity
2181 | 8
2182 | 0
2183 | 6
2184 | Continuous
2185 | 62
2186 | 7
2187 | 370
2188 | 25
2189 | 100
2190 | AcDbLine
2191 | 10
2192 | -8.15
2193 | 20
2194 | 3.1
2195 | 30
2196 | 0.0
2197 | 11
2198 | -10.0
2199 | 21
2200 | 4.95
2201 | 31
2202 | 0.0
2203 | 0
2204 | LINE
2205 | 5
2206 | 77
2207 | 330
2208 | 1F
2209 | 100
2210 | AcDbEntity
2211 | 8
2212 | 0
2213 | 6
2214 | Continuous
2215 | 62
2216 | 7
2217 | 370
2218 | 25
2219 | 100
2220 | AcDbLine
2221 | 10
2222 | -8.15
2223 | 20
2224 | 6.0
2225 | 30
2226 | 0.0
2227 | 11
2228 | -8.15
2229 | 21
2230 | 3.1
2231 | 31
2232 | 0.0
2233 | 0
2234 | LINE
2235 | 5
2236 | 78
2237 | 330
2238 | 1F
2239 | 100
2240 | AcDbEntity
2241 | 8
2242 | 0
2243 | 6
2244 | Continuous
2245 | 62
2246 | 7
2247 | 370
2248 | 25
2249 | 100
2250 | AcDbLine
2251 | 10
2252 | -7.0606601718
2253 | 20
2254 | 6.0
2255 | 30
2256 | 0.0
2257 | 11
2258 | -8.15
2259 | 21
2260 | 6.0
2261 | 31
2262 | 0.0
2263 | 0
2264 | LINE
2265 | 5
2266 | 79
2267 | 330
2268 | 1F
2269 | 100
2270 | AcDbEntity
2271 | 8
2272 | 0
2273 | 6
2274 | Continuous
2275 | 62
2276 | 7
2277 | 370
2278 | 25
2279 | 100
2280 | AcDbLine
2281 | 10
2282 | -3.9
2283 | 20
2284 | 2.8393398282
2285 | 30
2286 | 0.0
2287 | 11
2288 | -7.0606601718
2289 | 21
2290 | 6.0
2291 | 31
2292 | 0.0
2293 | 0
2294 | LINE
2295 | 5
2296 | 7A
2297 | 330
2298 | 1F
2299 | 100
2300 | AcDbEntity
2301 | 8
2302 | 0
2303 | 6
2304 | Continuous
2305 | 62
2306 | 7
2307 | 370
2308 | 25
2309 | 100
2310 | AcDbLine
2311 | 10
2312 | -3.9
2313 | 20
2314 | -2.8393398282
2315 | 30
2316 | 0.0
2317 | 11
2318 | -3.9
2319 | 21
2320 | 2.8393398282
2321 | 31
2322 | 0.0
2323 | 0
2324 | LINE
2325 | 5
2326 | 7B
2327 | 330
2328 | 1F
2329 | 100
2330 | AcDbEntity
2331 | 8
2332 | 0
2333 | 6
2334 | Continuous
2335 | 62
2336 | 7
2337 | 370
2338 | 25
2339 | 100
2340 | AcDbLine
2341 | 10
2342 | -3.9
2343 | 20
2344 | -2.8393398282
2345 | 30
2346 | 0.0
2347 | 11
2348 | -7.0606601718
2349 | 21
2350 | -6.0
2351 | 31
2352 | 0.0
2353 | 0
2354 | LINE
2355 | 5
2356 | 7C
2357 | 330
2358 | 1F
2359 | 100
2360 | AcDbEntity
2361 | 8
2362 | 0
2363 | 6
2364 | Continuous
2365 | 62
2366 | 7
2367 | 370
2368 | 25
2369 | 100
2370 | AcDbLine
2371 | 10
2372 | -7.0606601718
2373 | 20
2374 | -6.0
2375 | 30
2376 | 0.0
2377 | 11
2378 | -8.15
2379 | 21
2380 | -6.0
2381 | 31
2382 | 0.0
2383 | 0
2384 | LINE
2385 | 5
2386 | 7D
2387 | 330
2388 | 1F
2389 | 100
2390 | AcDbEntity
2391 | 8
2392 | 0
2393 | 6
2394 | Continuous
2395 | 62
2396 | 7
2397 | 370
2398 | 25
2399 | 100
2400 | AcDbLine
2401 | 10
2402 | -8.15
2403 | 20
2404 | -6.0
2405 | 30
2406 | 0.0
2407 | 11
2408 | -8.15
2409 | 21
2410 | -3.1
2411 | 31
2412 | 0.0
2413 | 0
2414 | LINE
2415 | 5
2416 | 7E
2417 | 330
2418 | 1F
2419 | 100
2420 | AcDbEntity
2421 | 8
2422 | 0
2423 | 6
2424 | Continuous
2425 | 62
2426 | 7
2427 | 370
2428 | 25
2429 | 100
2430 | AcDbLine
2431 | 10
2432 | -8.15
2433 | 20
2434 | -3.1
2435 | 30
2436 | 0.0
2437 | 11
2438 | -10.0
2439 | 21
2440 | -4.95
2441 | 31
2442 | 0.0
2443 | 0
2444 | LINE
2445 | 5
2446 | 7F
2447 | 330
2448 | 1F
2449 | 100
2450 | AcDbEntity
2451 | 8
2452 | 0
2453 | 6
2454 | Continuous
2455 | 62
2456 | 7
2457 | 370
2458 | 25
2459 | 100
2460 | AcDbLine
2461 | 10
2462 | -10.0
2463 | 20
2464 | -4.95
2465 | 30
2466 | 0.0
2467 | 11
2468 | -10.0
2469 | 21
2470 | -9.9
2471 | 31
2472 | 0.0
2473 | 0
2474 | ARC
2475 | 5
2476 | 80
2477 | 330
2478 | 1F
2479 | 100
2480 | AcDbEntity
2481 | 8
2482 | 0
2483 | 6
2484 | Continuous
2485 | 62
2486 | 7
2487 | 370
2488 | 25
2489 | 100
2490 | AcDbCircle
2491 | 10
2492 | -9.9
2493 | 20
2494 | -9.9
2495 | 30
2496 | 0.0
2497 | 40
2498 | 0.1000000000000245
2499 | 100
2500 | AcDbArc
2501 | 50
2502 | 180.0
2503 | 51
2504 | 270.0
2505 | 0
2506 | LINE
2507 | 5
2508 | 81
2509 | 330
2510 | 1F
2511 | 100
2512 | AcDbEntity
2513 | 8
2514 | 0
2515 | 6
2516 | Continuous
2517 | 62
2518 | 7
2519 | 370
2520 | 25
2521 | 100
2522 | AcDbLine
2523 | 10
2524 | -9.9
2525 | 20
2526 | -10.0
2527 | 30
2528 | 0.0
2529 | 11
2530 | -4.95
2531 | 21
2532 | -10.0
2533 | 31
2534 | 0.0
2535 | 0
2536 | LINE
2537 | 5
2538 | 82
2539 | 330
2540 | 1F
2541 | 100
2542 | AcDbEntity
2543 | 8
2544 | 0
2545 | 6
2546 | Continuous
2547 | 62
2548 | 7
2549 | 370
2550 | 25
2551 | 100
2552 | AcDbLine
2553 | 10
2554 | -3.1
2555 | 20
2556 | -8.15
2557 | 30
2558 | 0.0
2559 | 11
2560 | -4.95
2561 | 21
2562 | -10.0
2563 | 31
2564 | 0.0
2565 | 0
2566 | LINE
2567 | 5
2568 | 83
2569 | 330
2570 | 1F
2571 | 100
2572 | AcDbEntity
2573 | 8
2574 | 0
2575 | 6
2576 | Continuous
2577 | 62
2578 | 7
2579 | 370
2580 | 25
2581 | 100
2582 | AcDbLine
2583 | 10
2584 | -6.0
2585 | 20
2586 | -8.15
2587 | 30
2588 | 0.0
2589 | 11
2590 | -3.1
2591 | 21
2592 | -8.15
2593 | 31
2594 | 0.0
2595 | 0
2596 | LINE
2597 | 5
2598 | 84
2599 | 330
2600 | 1F
2601 | 100
2602 | AcDbEntity
2603 | 8
2604 | 0
2605 | 6
2606 | Continuous
2607 | 62
2608 | 7
2609 | 370
2610 | 25
2611 | 100
2612 | AcDbLine
2613 | 10
2614 | -6.0
2615 | 20
2616 | -7.0606601718
2617 | 30
2618 | 0.0
2619 | 11
2620 | -6.0
2621 | 21
2622 | -8.15
2623 | 31
2624 | 0.0
2625 | 0
2626 | LINE
2627 | 5
2628 | 85
2629 | 330
2630 | 1F
2631 | 100
2632 | AcDbEntity
2633 | 8
2634 | 0
2635 | 6
2636 | Continuous
2637 | 62
2638 | 7
2639 | 370
2640 | 25
2641 | 100
2642 | AcDbLine
2643 | 10
2644 | -6.0
2645 | 20
2646 | -7.0606601718
2647 | 30
2648 | 0.0
2649 | 11
2650 | -2.8393398282
2651 | 21
2652 | -3.9
2653 | 31
2654 | 0.0
2655 | 0
2656 | LINE
2657 | 5
2658 | 86
2659 | 330
2660 | 1F
2661 | 100
2662 | AcDbEntity
2663 | 8
2664 | 0
2665 | 6
2666 | Continuous
2667 | 62
2668 | 7
2669 | 370
2670 | 25
2671 | 100
2672 | AcDbLine
2673 | 10
2674 | -2.8393398282
2675 | 20
2676 | -3.9
2677 | 30
2678 | 0.0
2679 | 11
2680 | 2.8393398282
2681 | 21
2682 | -3.9
2683 | 31
2684 | 0.0
2685 | 0
2686 | LINE
2687 | 5
2688 | 87
2689 | 330
2690 | 1F
2691 | 100
2692 | AcDbEntity
2693 | 8
2694 | 0
2695 | 6
2696 | Continuous
2697 | 62
2698 | 7
2699 | 370
2700 | 25
2701 | 100
2702 | AcDbLine
2703 | 10
2704 | 6.0
2705 | 20
2706 | -7.0606601718
2707 | 30
2708 | 0.0
2709 | 11
2710 | 2.8393398282
2711 | 21
2712 | -3.9
2713 | 31
2714 | 0.0
2715 | 0
2716 | LINE
2717 | 5
2718 | 88
2719 | 330
2720 | 1F
2721 | 100
2722 | AcDbEntity
2723 | 8
2724 | 0
2725 | 6
2726 | Continuous
2727 | 62
2728 | 7
2729 | 370
2730 | 25
2731 | 100
2732 | AcDbLine
2733 | 10
2734 | 6.0
2735 | 20
2736 | -7.0606601718
2737 | 30
2738 | 0.0
2739 | 11
2740 | 6.0
2741 | 21
2742 | -8.15
2743 | 31
2744 | 0.0
2745 | 0
2746 | LINE
2747 | 5
2748 | 89
2749 | 330
2750 | 1F
2751 | 100
2752 | AcDbEntity
2753 | 8
2754 | 0
2755 | 6
2756 | Continuous
2757 | 62
2758 | 7
2759 | 370
2760 | 25
2761 | 100
2762 | AcDbLine
2763 | 10
2764 | 6.0
2765 | 20
2766 | -8.15
2767 | 30
2768 | 0.0
2769 | 11
2770 | 3.1
2771 | 21
2772 | -8.15
2773 | 31
2774 | 0.0
2775 | 0
2776 | LINE
2777 | 5
2778 | 8A
2779 | 330
2780 | 1F
2781 | 100
2782 | AcDbEntity
2783 | 8
2784 | 0
2785 | 6
2786 | Continuous
2787 | 62
2788 | 7
2789 | 370
2790 | 25
2791 | 100
2792 | AcDbLine
2793 | 10
2794 | 3.1
2795 | 20
2796 | -8.15
2797 | 30
2798 | 0.0
2799 | 11
2800 | 4.95
2801 | 21
2802 | -10.0
2803 | 31
2804 | 0.0
2805 | 0
2806 | LINE
2807 | 5
2808 | 8B
2809 | 330
2810 | 1F
2811 | 100
2812 | AcDbEntity
2813 | 8
2814 | 0
2815 | 6
2816 | Continuous
2817 | 62
2818 | 7
2819 | 370
2820 | 25
2821 | 100
2822 | AcDbLine
2823 | 10
2824 | 9.9
2825 | 20
2826 | -10.0
2827 | 30
2828 | 0.0
2829 | 11
2830 | 4.95
2831 | 21
2832 | -10.0
2833 | 31
2834 | 0.0
2835 | 0
2836 | ARC
2837 | 5
2838 | 8C
2839 | 330
2840 | 1F
2841 | 100
2842 | AcDbEntity
2843 | 8
2844 | 0
2845 | 6
2846 | Continuous
2847 | 62
2848 | 7
2849 | 370
2850 | 25
2851 | 100
2852 | AcDbCircle
2853 | 10
2854 | 9.9
2855 | 20
2856 | -9.9
2857 | 30
2858 | 0.0
2859 | 40
2860 | 0.1000000000000245
2861 | 100
2862 | AcDbArc
2863 | 50
2864 | 270.0
2865 | 51
2866 | 360.0
2867 | 0
2868 | LINE
2869 | 5
2870 | 8D
2871 | 330
2872 | 1F
2873 | 100
2874 | AcDbEntity
2875 | 8
2876 | 0
2877 | 6
2878 | Continuous
2879 | 62
2880 | 7
2881 | 370
2882 | 25
2883 | 100
2884 | AcDbLine
2885 | 10
2886 | 10.0
2887 | 20
2888 | -4.95
2889 | 30
2890 | 0.0
2891 | 11
2892 | 10.0
2893 | 21
2894 | -9.9
2895 | 31
2896 | 0.0
2897 | 0
2898 | LINE
2899 | 5
2900 | 8E
2901 | 330
2902 | 1F
2903 | 100
2904 | AcDbEntity
2905 | 8
2906 | 0
2907 | 6
2908 | Continuous
2909 | 62
2910 | 7
2911 | 370
2912 | 25
2913 | 100
2914 | AcDbLine
2915 | 10
2916 | 8.15
2917 | 20
2918 | -3.1
2919 | 30
2920 | 0.0
2921 | 11
2922 | 10.0
2923 | 21
2924 | -4.95
2925 | 31
2926 | 0.0
2927 | 0
2928 | LINE
2929 | 5
2930 | 8F
2931 | 330
2932 | 1F
2933 | 100
2934 | AcDbEntity
2935 | 8
2936 | 0
2937 | 6
2938 | Continuous
2939 | 62
2940 | 7
2941 | 370
2942 | 25
2943 | 100
2944 | AcDbLine
2945 | 10
2946 | 8.15
2947 | 20
2948 | -6.0
2949 | 30
2950 | 0.0
2951 | 11
2952 | 8.15
2953 | 21
2954 | -3.1
2955 | 31
2956 | 0.0
2957 | 0
2958 | LINE
2959 | 5
2960 | 90
2961 | 330
2962 | 1F
2963 | 100
2964 | AcDbEntity
2965 | 8
2966 | 0
2967 | 6
2968 | Continuous
2969 | 62
2970 | 7
2971 | 370
2972 | 25
2973 | 100
2974 | AcDbLine
2975 | 10
2976 | 7.0606601718
2977 | 20
2978 | -6.0
2979 | 30
2980 | 0.0
2981 | 11
2982 | 8.15
2983 | 21
2984 | -6.0
2985 | 31
2986 | 0.0
2987 | 0
2988 | LINE
2989 | 5
2990 | 91
2991 | 330
2992 | 1F
2993 | 100
2994 | AcDbEntity
2995 | 8
2996 | 0
2997 | 6
2998 | Continuous
2999 | 62
3000 | 7
3001 | 370
3002 | 25
3003 | 100
3004 | AcDbLine
3005 | 10
3006 | 3.9
3007 | 20
3008 | -2.8393398282
3009 | 30
3010 | 0.0
3011 | 11
3012 | 7.0606601718
3013 | 21
3014 | -6.0
3015 | 31
3016 | 0.0
3017 | 0
3018 | LINE
3019 | 5
3020 | 92
3021 | 330
3022 | 1F
3023 | 100
3024 | AcDbEntity
3025 | 8
3026 | 0
3027 | 6
3028 | Continuous
3029 | 62
3030 | 7
3031 | 370
3032 | 25
3033 | 100
3034 | AcDbLine
3035 | 10
3036 | 3.9
3037 | 20
3038 | -2.8393398282
3039 | 30
3040 | 0.0
3041 | 11
3042 | 3.9
3043 | 21
3044 | 2.8393398282
3045 | 31
3046 | 0.0
3047 | 0
3048 | LINE
3049 | 5
3050 | 93
3051 | 330
3052 | 1F
3053 | 100
3054 | AcDbEntity
3055 | 8
3056 | 0
3057 | 6
3058 | Continuous
3059 | 62
3060 | 7
3061 | 370
3062 | 25
3063 | 100
3064 | AcDbLine
3065 | 10
3066 | 3.9
3067 | 20
3068 | 2.8393398282
3069 | 30
3070 | 0.0
3071 | 11
3072 | 7.0606601718
3073 | 21
3074 | 6.0
3075 | 31
3076 | 0.0
3077 | 0
3078 | LINE
3079 | 5
3080 | 94
3081 | 330
3082 | 1F
3083 | 100
3084 | AcDbEntity
3085 | 8
3086 | 0
3087 | 6
3088 | Continuous
3089 | 62
3090 | 7
3091 | 370
3092 | 25
3093 | 100
3094 | AcDbLine
3095 | 10
3096 | 7.0606601718
3097 | 20
3098 | 6.0
3099 | 30
3100 | 0.0
3101 | 11
3102 | 8.15
3103 | 21
3104 | 6.0
3105 | 31
3106 | 0.0
3107 | 0
3108 | LINE
3109 | 5
3110 | 95
3111 | 330
3112 | 1F
3113 | 100
3114 | AcDbEntity
3115 | 8
3116 | 0
3117 | 6
3118 | Continuous
3119 | 62
3120 | 7
3121 | 370
3122 | 25
3123 | 100
3124 | AcDbLine
3125 | 10
3126 | 8.15
3127 | 20
3128 | 6.0
3129 | 30
3130 | 0.0
3131 | 11
3132 | 8.15
3133 | 21
3134 | 3.1
3135 | 31
3136 | 0.0
3137 | 0
3138 | LINE
3139 | 5
3140 | 96
3141 | 330
3142 | 1F
3143 | 100
3144 | AcDbEntity
3145 | 8
3146 | 0
3147 | 6
3148 | Continuous
3149 | 62
3150 | 7
3151 | 370
3152 | 25
3153 | 100
3154 | AcDbLine
3155 | 10
3156 | 8.15
3157 | 20
3158 | 3.1
3159 | 30
3160 | 0.0
3161 | 11
3162 | 10.0
3163 | 21
3164 | 4.95
3165 | 31
3166 | 0.0
3167 | 0
3168 | LINE
3169 | 5
3170 | 97
3171 | 330
3172 | 1F
3173 | 100
3174 | AcDbEntity
3175 | 8
3176 | 0
3177 | 6
3178 | Continuous
3179 | 62
3180 | 7
3181 | 370
3182 | 25
3183 | 100
3184 | AcDbLine
3185 | 10
3186 | 10.0
3187 | 20
3188 | 4.95
3189 | 30
3190 | 0.0
3191 | 11
3192 | 10.0
3193 | 21
3194 | 9.9
3195 | 31
3196 | 0.0
3197 | 0
3198 | ARC
3199 | 5
3200 | 98
3201 | 330
3202 | 1F
3203 | 100
3204 | AcDbEntity
3205 | 8
3206 | 0
3207 | 6
3208 | Continuous
3209 | 62
3210 | 7
3211 | 370
3212 | 25
3213 | 100
3214 | AcDbCircle
3215 | 10
3216 | 9.9
3217 | 20
3218 | 9.9
3219 | 30
3220 | 0.0
3221 | 40
3222 | 0.1000000000000263
3223 | 100
3224 | AcDbArc
3225 | 50
3226 | 0.0
3227 | 51
3228 | 90.0
3229 | 0
3230 | LINE
3231 | 5
3232 | 99
3233 | 330
3234 | 1F
3235 | 100
3236 | AcDbEntity
3237 | 8
3238 | 0
3239 | 6
3240 | Continuous
3241 | 62
3242 | 7
3243 | 370
3244 | 25
3245 | 100
3246 | AcDbLine
3247 | 10
3248 | 9.9
3249 | 20
3250 | 10.0
3251 | 30
3252 | 0.0
3253 | 11
3254 | 4.95
3255 | 21
3256 | 10.0
3257 | 31
3258 | 0.0
3259 | 0
3260 | LINE
3261 | 5
3262 | 9A
3263 | 330
3264 | 1F
3265 | 100
3266 | AcDbEntity
3267 | 8
3268 | 0
3269 | 6
3270 | Continuous
3271 | 62
3272 | 7
3273 | 370
3274 | 25
3275 | 100
3276 | AcDbLine
3277 | 10
3278 | 3.1
3279 | 20
3280 | 8.15
3281 | 30
3282 | 0.0
3283 | 11
3284 | 4.95
3285 | 21
3286 | 10.0
3287 | 31
3288 | 0.0
3289 | 0
3290 | LINE
3291 | 5
3292 | 9B
3293 | 330
3294 | 1F
3295 | 100
3296 | AcDbEntity
3297 | 8
3298 | 0
3299 | 6
3300 | Continuous
3301 | 62
3302 | 7
3303 | 370
3304 | 25
3305 | 100
3306 | AcDbLine
3307 | 10
3308 | 6.0
3309 | 20
3310 | 8.15
3311 | 30
3312 | 0.0
3313 | 11
3314 | 3.1
3315 | 21
3316 | 8.15
3317 | 31
3318 | 0.0
3319 | 0
3320 | LINE
3321 | 5
3322 | 9C
3323 | 330
3324 | 1F
3325 | 100
3326 | AcDbEntity
3327 | 8
3328 | 0
3329 | 6
3330 | Continuous
3331 | 62
3332 | 7
3333 | 370
3334 | 25
3335 | 100
3336 | AcDbLine
3337 | 10
3338 | 6.0
3339 | 20
3340 | 7.0606601718
3341 | 30
3342 | 0.0
3343 | 11
3344 | 6.0
3345 | 21
3346 | 8.15
3347 | 31
3348 | 0.0
3349 | 0
3350 | LINE
3351 | 5
3352 | 9D
3353 | 330
3354 | 1F
3355 | 100
3356 | AcDbEntity
3357 | 8
3358 | 0
3359 | 6
3360 | Continuous
3361 | 62
3362 | 7
3363 | 370
3364 | 25
3365 | 100
3366 | AcDbLine
3367 | 10
3368 | 6.0
3369 | 20
3370 | 7.0606601718
3371 | 30
3372 | 0.0
3373 | 11
3374 | 2.8393398282
3375 | 21
3376 | 3.9
3377 | 31
3378 | 0.0
3379 | 0
3380 | LINE
3381 | 5
3382 | 9E
3383 | 330
3384 | 1F
3385 | 100
3386 | AcDbEntity
3387 | 8
3388 | 0
3389 | 6
3390 | Continuous
3391 | 62
3392 | 7
3393 | 370
3394 | 25
3395 | 100
3396 | AcDbLine
3397 | 10
3398 | -2.8393398282
3399 | 20
3400 | 3.9
3401 | 30
3402 | 0.0
3403 | 11
3404 | 2.8393398282
3405 | 21
3406 | 3.9
3407 | 31
3408 | 0.0
3409 | 0
3410 | LINE
3411 | 5
3412 | 9F
3413 | 330
3414 | 1F
3415 | 100
3416 | AcDbEntity
3417 | 8
3418 | 0
3419 | 6
3420 | Continuous
3421 | 62
3422 | 7
3423 | 370
3424 | 25
3425 | 100
3426 | AcDbLine
3427 | 10
3428 | -6.0
3429 | 20
3430 | 7.0606601718
3431 | 30
3432 | 0.0
3433 | 11
3434 | -2.8393398282
3435 | 21
3436 | 3.9
3437 | 31
3438 | 0.0
3439 | 0
3440 | LINE
3441 | 5
3442 | A0
3443 | 330
3444 | 1F
3445 | 100
3446 | AcDbEntity
3447 | 8
3448 | 0
3449 | 6
3450 | Continuous
3451 | 62
3452 | 7
3453 | 370
3454 | 25
3455 | 100
3456 | AcDbLine
3457 | 10
3458 | -6.0
3459 | 20
3460 | 7.0606601718
3461 | 30
3462 | 0.0
3463 | 11
3464 | -6.0
3465 | 21
3466 | 8.15
3467 | 31
3468 | 0.0
3469 | 0
3470 | LINE
3471 | 5
3472 | A1
3473 | 330
3474 | 1F
3475 | 100
3476 | AcDbEntity
3477 | 8
3478 | 0
3479 | 6
3480 | Continuous
3481 | 62
3482 | 7
3483 | 370
3484 | 25
3485 | 100
3486 | AcDbLine
3487 | 10
3488 | -6.0
3489 | 20
3490 | 8.15
3491 | 30
3492 | 0.0
3493 | 11
3494 | -3.1
3495 | 21
3496 | 8.15
3497 | 31
3498 | 0.0
3499 | 0
3500 | LINE
3501 | 5
3502 | A2
3503 | 330
3504 | 1F
3505 | 100
3506 | AcDbEntity
3507 | 8
3508 | 0
3509 | 6
3510 | Continuous
3511 | 62
3512 | 7
3513 | 370
3514 | 25
3515 | 100
3516 | AcDbLine
3517 | 10
3518 | -3.1
3519 | 20
3520 | 8.15
3521 | 30
3522 | 0.0
3523 | 11
3524 | -4.95
3525 | 21
3526 | 10.0
3527 | 31
3528 | 0.0
3529 | 0
3530 | LINE
3531 | 5
3532 | A3
3533 | 330
3534 | 1F
3535 | 100
3536 | AcDbEntity
3537 | 8
3538 | 0
3539 | 6
3540 | Continuous
3541 | 62
3542 | 7
3543 | 370
3544 | 25
3545 | 100
3546 | AcDbLine
3547 | 10
3548 | -9.9
3549 | 20
3550 | 10.0
3551 | 30
3552 | 0.0
3553 | 11
3554 | -4.95
3555 | 21
3556 | 10.0
3557 | 31
3558 | 0.0
3559 | 0
3560 | ENDSEC
3561 | 0
3562 | SECTION
3563 | 2
3564 | OBJECTS
3565 | 0
3566 | DICTIONARY
3567 | 5
3568 | C
3569 | 330
3570 | 0
3571 | 100
3572 | AcDbDictionary
3573 | 281
3574 | 1
3575 | 3
3576 | ACAD_DETAILVIEWSTYLE
3577 | 350
3578 | AC
3579 | 3
3580 | ACAD_GROUP
3581 | 350
3582 | D
3583 | 3
3584 | ACAD_LAYOUT
3585 | 350
3586 | 1A
3587 | 3
3588 | ACAD_MATERIAL
3589 | 350
3590 | 43
3591 | 3
3592 | ACAD_MLEADERSTYLE
3593 | 350
3594 | 6B
3595 | 3
3596 | ACAD_MLINESTYLE
3597 | 350
3598 | 17
3599 | 3
3600 | ACAD_PLOTSETTINGS
3601 | 350
3602 | 19
3603 | 3
3604 | ACAD_PLOTSTYLENAME
3605 | 350
3606 | E
3607 | 3
3608 | ACAD_SCALELIST
3609 | 350
3610 | 47
3611 | 3
3612 | ACAD_SECTIONVIEWSTYLE
3613 | 350
3614 | AD
3615 | 3
3616 | ACAD_TABLESTYLE
3617 | 350
3618 | 69
3619 | 3
3620 | ACAD_VISUALSTYLE
3621 | 350
3622 | 2A
3623 | 3
3624 | ACDB_RECOMPOSE_DATA
3625 | 350
3626 | A9
3627 | 3
3628 | AcDbVariableDictionary
3629 | 350
3630 | A4
3631 | 0
3632 | SUN
3633 | 5
3634 | 6D
3635 | 330
3636 | 29
3637 | 100
3638 | AcDbSun
3639 | 90
3640 | 1
3641 | 290
3642 | 0
3643 | 63
3644 | 7
3645 | 421
3646 | 16777215
3647 | 40
3648 | 1.0
3649 | 291
3650 | 1
3651 | 91
3652 | 2455826
3653 | 92
3654 | 54000000
3655 | 292
3656 | 0
3657 | 70
3658 | 2
3659 | 71
3660 | 256
3661 | 280
3662 | 1
3663 | 0
3664 | DICTIONARY
3665 | 5
3666 | AC
3667 | 102
3668 | {ACAD_REACTORS
3669 | 330
3670 | C
3671 | 102
3672 | }
3673 | 330
3674 | C
3675 | 100
3676 | AcDbDictionary
3677 | 281
3678 | 1
3679 | 0
3680 | DICTIONARY
3681 | 5
3682 | D
3683 | 102
3684 | {ACAD_REACTORS
3685 | 330
3686 | C
3687 | 102
3688 | }
3689 | 330
3690 | C
3691 | 100
3692 | AcDbDictionary
3693 | 281
3694 | 1
3695 | 0
3696 | DICTIONARY
3697 | 5
3698 | 1A
3699 | 102
3700 | {ACAD_REACTORS
3701 | 330
3702 | C
3703 | 102
3704 | }
3705 | 330
3706 | C
3707 | 100
3708 | AcDbDictionary
3709 | 281
3710 | 1
3711 | 3
3712 | Layout1
3713 | 350
3714 | 1E
3715 | 3
3716 | Layout2
3717 | 350
3718 | 26
3719 | 3
3720 | Model
3721 | 350
3722 | 22
3723 | 0
3724 | DICTIONARY
3725 | 5
3726 | 43
3727 | 102
3728 | {ACAD_REACTORS
3729 | 330
3730 | C
3731 | 102
3732 | }
3733 | 330
3734 | C
3735 | 100
3736 | AcDbDictionary
3737 | 281
3738 | 1
3739 | 3
3740 | ByBlock
3741 | 350
3742 | 45
3743 | 3
3744 | ByLayer
3745 | 350
3746 | 44
3747 | 3
3748 | Global
3749 | 350
3750 | 46
3751 | 0
3752 | DICTIONARY
3753 | 5
3754 | 6B
3755 | 102
3756 | {ACAD_REACTORS
3757 | 330
3758 | C
3759 | 102
3760 | }
3761 | 330
3762 | C
3763 | 100
3764 | AcDbDictionary
3765 | 281
3766 | 1
3767 | 3
3768 | Standard
3769 | 350
3770 | 6C
3771 | 0
3772 | DICTIONARY
3773 | 5
3774 | 17
3775 | 102
3776 | {ACAD_REACTORS
3777 | 330
3778 | C
3779 | 102
3780 | }
3781 | 330
3782 | C
3783 | 100
3784 | AcDbDictionary
3785 | 281
3786 | 1
3787 | 3
3788 | Standard
3789 | 350
3790 | 18
3791 | 0
3792 | DICTIONARY
3793 | 5
3794 | 19
3795 | 102
3796 | {ACAD_REACTORS
3797 | 330
3798 | C
3799 | 102
3800 | }
3801 | 330
3802 | C
3803 | 100
3804 | AcDbDictionary
3805 | 281
3806 | 1
3807 | 0
3808 | ACDBDICTIONARYWDFLT
3809 | 5
3810 | E
3811 | 102
3812 | {ACAD_REACTORS
3813 | 330
3814 | C
3815 | 102
3816 | }
3817 | 330
3818 | C
3819 | 100
3820 | AcDbDictionary
3821 | 281
3822 | 1
3823 | 3
3824 | Normal
3825 | 350
3826 | F
3827 | 100
3828 | AcDbDictionaryWithDefault
3829 | 340
3830 | F
3831 | 0
3832 | DICTIONARY
3833 | 5
3834 | 47
3835 | 102
3836 | {ACAD_REACTORS
3837 | 330
3838 | C
3839 | 102
3840 | }
3841 | 330
3842 | C
3843 | 100
3844 | AcDbDictionary
3845 | 281
3846 | 1
3847 | 3
3848 | A0
3849 | 350
3850 | 48
3851 | 3
3852 | A1
3853 | 350
3854 | 49
3855 | 3
3856 | A2
3857 | 350
3858 | 4A
3859 | 3
3860 | A3
3861 | 350
3862 | 4B
3863 | 3
3864 | A4
3865 | 350
3866 | 4C
3867 | 3
3868 | A5
3869 | 350
3870 | 4D
3871 | 3
3872 | A6
3873 | 350
3874 | 4E
3875 | 3
3876 | A7
3877 | 350
3878 | 4F
3879 | 3
3880 | A8
3881 | 350
3882 | 50
3883 | 3
3884 | A9
3885 | 350
3886 | 51
3887 | 3
3888 | B0
3889 | 350
3890 | 52
3891 | 3
3892 | B1
3893 | 350
3894 | 53
3895 | 3
3896 | B2
3897 | 350
3898 | 54
3899 | 3
3900 | B3
3901 | 350
3902 | 55
3903 | 3
3904 | B4
3905 | 350
3906 | 56
3907 | 3
3908 | B5
3909 | 350
3910 | 57
3911 | 3
3912 | B6
3913 | 350
3914 | 58
3915 | 3
3916 | B7
3917 | 350
3918 | 59
3919 | 3
3920 | B8
3921 | 350
3922 | 5A
3923 | 3
3924 | B9
3925 | 350
3926 | 5B
3927 | 3
3928 | C0
3929 | 350
3930 | 5C
3931 | 3
3932 | C1
3933 | 350
3934 | 5D
3935 | 3
3936 | C2
3937 | 350
3938 | 5E
3939 | 3
3940 | C3
3941 | 350
3942 | 5F
3943 | 3
3944 | C4
3945 | 350
3946 | 60
3947 | 3
3948 | C5
3949 | 350
3950 | 61
3951 | 3
3952 | C6
3953 | 350
3954 | 62
3955 | 3
3956 | C7
3957 | 350
3958 | 63
3959 | 3
3960 | C8
3961 | 350
3962 | 64
3963 | 3
3964 | C9
3965 | 350
3966 | 65
3967 | 3
3968 | D0
3969 | 350
3970 | 66
3971 | 3
3972 | D1
3973 | 350
3974 | 67
3975 | 3
3976 | D2
3977 | 350
3978 | 68
3979 | 0
3980 | DICTIONARY
3981 | 5
3982 | AD
3983 | 102
3984 | {ACAD_REACTORS
3985 | 330
3986 | C
3987 | 102
3988 | }
3989 | 330
3990 | C
3991 | 100
3992 | AcDbDictionary
3993 | 281
3994 | 1
3995 | 0
3996 | DICTIONARY
3997 | 5
3998 | 69
3999 | 102
4000 | {ACAD_REACTORS
4001 | 330
4002 | C
4003 | 102
4004 | }
4005 | 330
4006 | C
4007 | 100
4008 | AcDbDictionary
4009 | 281
4010 | 1
4011 | 3
4012 | Standard
4013 | 350
4014 | 6A
4015 | 0
4016 | DICTIONARY
4017 | 5
4018 | 2A
4019 | 102
4020 | {ACAD_REACTORS
4021 | 330
4022 | C
4023 | 102
4024 | }
4025 | 330
4026 | C
4027 | 100
4028 | AcDbDictionary
4029 | 281
4030 | 1
4031 | 3
4032 | 2dWireframe
4033 | 350
4034 | 2F
4035 | 3
4036 | Basic
4037 | 350
4038 | 32
4039 | 3
4040 | Brighten
4041 | 350
4042 | 36
4043 | 3
4044 | ColorChange
4045 | 350
4046 | 3A
4047 | 3
4048 | Conceptual
4049 | 350
4050 | 34
4051 | 3
4052 | Dim
4053 | 350
4054 | 35
4055 | 3
4056 | EdgeColorOff
4057 | 350
4058 | 3D
4059 | 3
4060 | Facepattern
4061 | 350
4062 | 39
4063 | 3
4064 | Flat
4065 | 350
4066 | 2B
4067 | 3
4068 | FlatWithEdges
4069 | 350
4070 | 2C
4071 | 3
4072 | Gouraud
4073 | 350
4074 | 2D
4075 | 3
4076 | GouraudWithEdges
4077 | 350
4078 | 2E
4079 | 3
4080 | Hidden
4081 | 350
4082 | 31
4083 | 3
4084 | JitterOff
4085 | 350
4086 | 3B
4087 | 3
4088 | Linepattern
4089 | 350
4090 | 38
4091 | 3
4092 | OverhangOff
4093 | 350
4094 | 3C
4095 | 3
4096 | Realistic
4097 | 350
4098 | 33
4099 | 3
4100 | Shaded
4101 | 350
4102 | 42
4103 | 3
4104 | Shaded with edges
4105 | 350
4106 | 41
4107 | 3
4108 | Shades of Gray
4109 | 350
4110 | 3E
4111 | 3
4112 | Sketchy
4113 | 350
4114 | 3F
4115 | 3
4116 | Thicken
4117 | 350
4118 | 37
4119 | 3
4120 | Wireframe
4121 | 350
4122 | 30
4123 | 3
4124 | X-Ray
4125 | 350
4126 | 40
4127 | 0
4128 | XRECORD
4129 | 5
4130 | A9
4131 | 102
4132 | {ACAD_REACTORS
4133 | 330
4134 | C
4135 | 102
4136 | }
4137 | 330
4138 | C
4139 | 100
4140 | AcDbXrecord
4141 | 280
4142 | 1
4143 | 90
4144 | 1
4145 | 330
4146 | 6A
4147 | 0
4148 | DICTIONARY
4149 | 5
4150 | A4
4151 | 102
4152 | {ACAD_REACTORS
4153 | 330
4154 | C
4155 | 102
4156 | }
4157 | 330
4158 | C
4159 | 100
4160 | AcDbDictionary
4161 | 281
4162 | 1
4163 | 3
4164 | CANNOSCALE
4165 | 350
4166 | A5
4167 | 3
4168 | CENTEREXE
4169 | 350
4170 | AE
4171 | 3
4172 | CENTERLTYPEFILE
4173 | 350
4174 | AF
4175 | 3
4176 | CMLEADERSTYLE
4177 | 350
4178 | AB
4179 | 3
4180 | CTABLESTYLE
4181 | 350
4182 | AA
4183 | 0
4184 | LAYOUT
4185 | 5
4186 | 1E
4187 | 102
4188 | {ACAD_REACTORS
4189 | 330
4190 | 1A
4191 | 102
4192 | }
4193 | 330
4194 | 1A
4195 | 100
4196 | AcDbPlotSettings
4197 | 1
4198 |
4199 | 2
4200 | none_device
4201 | 4
4202 |
4203 | 6
4204 |
4205 | 40
4206 | 0.0
4207 | 41
4208 | 0.0
4209 | 42
4210 | 0.0
4211 | 43
4212 | 0.0
4213 | 44
4214 | 0.0
4215 | 45
4216 | 0.0
4217 | 46
4218 | 0.0
4219 | 47
4220 | 0.0
4221 | 48
4222 | 0.0
4223 | 49
4224 | 0.0
4225 | 140
4226 | 0.0
4227 | 141
4228 | 0.0
4229 | 142
4230 | 1.0
4231 | 143
4232 | 1.0
4233 | 70
4234 | 688
4235 | 72
4236 | 1
4237 | 73
4238 | 0
4239 | 74
4240 | 5
4241 | 7
4242 |
4243 | 75
4244 | 16
4245 | 76
4246 | 0
4247 | 77
4248 | 2
4249 | 78
4250 | 300
4251 | 147
4252 | 1.0
4253 | 148
4254 | 0.0
4255 | 149
4256 | 0.0
4257 | 100
4258 | AcDbLayout
4259 | 1
4260 | Layout1
4261 | 70
4262 | 1
4263 | 71
4264 | 1
4265 | 10
4266 | 0.0
4267 | 20
4268 | 0.0
4269 | 11
4270 | 420.0
4271 | 21
4272 | 297.0
4273 | 12
4274 | 0.0
4275 | 22
4276 | 0.0
4277 | 32
4278 | 0.0
4279 | 14
4280 | 1.0000000000E+20
4281 | 24
4282 | 1.0000000000E+20
4283 | 34
4284 | 1.0000000000E+20
4285 | 15
4286 | -1.0000000000E+20
4287 | 25
4288 | -1.0000000000E+20
4289 | 35
4290 | -1.0000000000E+20
4291 | 146
4292 | 0.0
4293 | 13
4294 | 0.0
4295 | 23
4296 | 0.0
4297 | 33
4298 | 0.0
4299 | 16
4300 | 1.0
4301 | 26
4302 | 0.0
4303 | 36
4304 | 0.0
4305 | 17
4306 | 0.0
4307 | 27
4308 | 1.0
4309 | 37
4310 | 0.0
4311 | 76
4312 | 0
4313 | 330
4314 | 1B
4315 | 0
4316 | LAYOUT
4317 | 5
4318 | 26
4319 | 102
4320 | {ACAD_REACTORS
4321 | 330
4322 | 1A
4323 | 102
4324 | }
4325 | 330
4326 | 1A
4327 | 100
4328 | AcDbPlotSettings
4329 | 1
4330 |
4331 | 2
4332 | none_device
4333 | 4
4334 |
4335 | 6
4336 |
4337 | 40
4338 | 0.0
4339 | 41
4340 | 0.0
4341 | 42
4342 | 0.0
4343 | 43
4344 | 0.0
4345 | 44
4346 | 0.0
4347 | 45
4348 | 0.0
4349 | 46
4350 | 0.0
4351 | 47
4352 | 0.0
4353 | 48
4354 | 0.0
4355 | 49
4356 | 0.0
4357 | 140
4358 | 0.0
4359 | 141
4360 | 0.0
4361 | 142
4362 | 1.0
4363 | 143
4364 | 1.0
4365 | 70
4366 | 688
4367 | 72
4368 | 1
4369 | 73
4370 | 0
4371 | 74
4372 | 5
4373 | 7
4374 |
4375 | 75
4376 | 16
4377 | 76
4378 | 0
4379 | 77
4380 | 2
4381 | 78
4382 | 300
4383 | 147
4384 | 1.0
4385 | 148
4386 | 0.0
4387 | 149
4388 | 0.0
4389 | 100
4390 | AcDbLayout
4391 | 1
4392 | Layout2
4393 | 70
4394 | 1
4395 | 71
4396 | 2
4397 | 10
4398 | 0.0
4399 | 20
4400 | 0.0
4401 | 11
4402 | 0.0
4403 | 21
4404 | 0.0
4405 | 12
4406 | 0.0
4407 | 22
4408 | 0.0
4409 | 32
4410 | 0.0
4411 | 14
4412 | 0.0
4413 | 24
4414 | 0.0
4415 | 34
4416 | 0.0
4417 | 15
4418 | 0.0
4419 | 25
4420 | 0.0
4421 | 35
4422 | 0.0
4423 | 146
4424 | 0.0
4425 | 13
4426 | 0.0
4427 | 23
4428 | 0.0
4429 | 33
4430 | 0.0
4431 | 16
4432 | 1.0
4433 | 26
4434 | 0.0
4435 | 36
4436 | 0.0
4437 | 17
4438 | 0.0
4439 | 27
4440 | 1.0
4441 | 37
4442 | 0.0
4443 | 76
4444 | 0
4445 | 330
4446 | 23
4447 | 0
4448 | LAYOUT
4449 | 5
4450 | 22
4451 | 102
4452 | {ACAD_REACTORS
4453 | 330
4454 | 1A
4455 | 102
4456 | }
4457 | 330
4458 | 1A
4459 | 100
4460 | AcDbPlotSettings
4461 | 1
4462 |
4463 | 2
4464 | none_device
4465 | 4
4466 | ANSI_A_(11.00_x_8.50_Inches)
4467 | 6
4468 |
4469 | 40
4470 | 6.35
4471 | 41
4472 | 19.05
4473 | 42
4474 | 6.35000508
4475 | 43
4476 | 19.05000254
4477 | 44
4478 | 279.4
4479 | 45
4480 | 215.9
4481 | 46
4482 | 133.34999746
4483 | 47
4484 | 88.89999873
4485 | 48
4486 | 0.0
4487 | 49
4488 | 0.0
4489 | 140
4490 | 0.0
4491 | 141
4492 | 0.0
4493 | 142
4494 | 0.42075
4495 | 143
4496 | 1.0
4497 | 70
4498 | 1696
4499 | 72
4500 | 0
4501 | 73
4502 | 0
4503 | 74
4504 | 0
4505 | 7
4506 |
4507 | 75
4508 | 0
4509 | 76
4510 | 0
4511 | 77
4512 | 2
4513 | 78
4514 | 300
4515 | 147
4516 | 0.0179189148
4517 | 148
4518 | -1300.4909072572
4519 | 149
4520 | 0.0
4521 | 100
4522 | AcDbLayout
4523 | 1
4524 | Model
4525 | 70
4526 | 1
4527 | 71
4528 | 0
4529 | 10
4530 | 0.0
4531 | 20
4532 | 0.0
4533 | 11
4534 | 420.0
4535 | 21
4536 | 297.0
4537 | 12
4538 | 0.0
4539 | 22
4540 | 0.0
4541 | 32
4542 | 0.0
4543 | 14
4544 | -10.0
4545 | 24
4546 | -10.0
4547 | 34
4548 | 0.0
4549 | 15
4550 | 10.0
4551 | 25
4552 | 10.0
4553 | 35
4554 | 0.0
4555 | 146
4556 | 0.0
4557 | 13
4558 | 0.0
4559 | 23
4560 | 0.0
4561 | 33
4562 | 0.0
4563 | 16
4564 | 1.0
4565 | 26
4566 | 0.0
4567 | 36
4568 | 0.0
4569 | 17
4570 | 0.0
4571 | 27
4572 | 1.0
4573 | 37
4574 | 0.0
4575 | 76
4576 | 0
4577 | 330
4578 | 1F
4579 | 331
4580 | 29
4581 | 0
4582 | MATERIAL
4583 | 5
4584 | 45
4585 | 102
4586 | {ACAD_REACTORS
4587 | 330
4588 | 43
4589 | 102
4590 | }
4591 | 330
4592 | 43
4593 | 100
4594 | AcDbMaterial
4595 | 1
4596 | ByBlock
4597 | 72
4598 | 1
4599 | 94
4600 | 127
4601 | 0
4602 | MATERIAL
4603 | 5
4604 | 44
4605 | 102
4606 | {ACAD_REACTORS
4607 | 330
4608 | 43
4609 | 102
4610 | }
4611 | 330
4612 | 43
4613 | 100
4614 | AcDbMaterial
4615 | 1
4616 | ByLayer
4617 | 72
4618 | 1
4619 | 94
4620 | 127
4621 | 0
4622 | MATERIAL
4623 | 5
4624 | 46
4625 | 102
4626 | {ACAD_REACTORS
4627 | 330
4628 | 43
4629 | 102
4630 | }
4631 | 330
4632 | 43
4633 | 100
4634 | AcDbMaterial
4635 | 1
4636 | Global
4637 | 72
4638 | 1
4639 | 94
4640 | 127
4641 | 0
4642 | MLEADERSTYLE
4643 | 5
4644 | 6C
4645 | 102
4646 | {ACAD_REACTORS
4647 | 330
4648 | 6B
4649 | 102
4650 | }
4651 | 330
4652 | 6B
4653 | 100
4654 | AcDbMLeaderStyle
4655 | 170
4656 | 2
4657 | 171
4658 | 1
4659 | 172
4660 | 0
4661 | 90
4662 | 2
4663 | 40
4664 | 0.0
4665 | 41
4666 | 0.0
4667 | 173
4668 | 1
4669 | 91
4670 | -1056964608
4671 | 340
4672 | 14
4673 | 92
4674 | -2
4675 | 290
4676 | 1
4677 | 42
4678 | 2.0
4679 | 291
4680 | 1
4681 | 43
4682 | 8.0
4683 | 3
4684 | Standard
4685 | 341
4686 | 0
4687 | 44
4688 | 4.0
4689 | 300
4690 |
4691 | 342
4692 | 11
4693 | 174
4694 | 1
4695 | 178
4696 | 6
4697 | 175
4698 | 1
4699 | 176
4700 | 0
4701 | 93
4702 | -1056964608
4703 | 45
4704 | 4.0
4705 | 292
4706 | 0
4707 | 297
4708 | 0
4709 | 46
4710 | 4.0
4711 | 343
4712 | 0
4713 | 94
4714 | -1056964608
4715 | 47
4716 | 1.0
4717 | 49
4718 | 1.0
4719 | 140
4720 | 1.0
4721 | 293
4722 | 1
4723 | 141
4724 | 0.0
4725 | 294
4726 | 1
4727 | 177
4728 | 0
4729 | 142
4730 | 1.0
4731 | 295
4732 | 0
4733 | 296
4734 | 0
4735 | 143
4736 | 3.75
4737 | 1001
4738 | ACAD_MLEADERVER
4739 | 1070
4740 | 2
4741 | 0
4742 | MLINESTYLE
4743 | 5
4744 | 18
4745 | 102
4746 | {ACAD_REACTORS
4747 | 330
4748 | 17
4749 | 102
4750 | }
4751 | 330
4752 | 17
4753 | 100
4754 | AcDbMlineStyle
4755 | 2
4756 | Standard
4757 | 70
4758 | 0
4759 | 3
4760 |
4761 | 62
4762 | 256
4763 | 51
4764 | 90.0
4765 | 52
4766 | 90.0
4767 | 71
4768 | 2
4769 | 49
4770 | 0.5
4771 | 62
4772 | 256
4773 | 6
4774 | BYLAYER
4775 | 49
4776 | -0.5
4777 | 62
4778 | 256
4779 | 6
4780 | BYLAYER
4781 | 0
4782 | ACDBPLACEHOLDER
4783 | 5
4784 | F
4785 | 102
4786 | {ACAD_REACTORS
4787 | 330
4788 | E
4789 | 102
4790 | }
4791 | 330
4792 | E
4793 | 0
4794 | SCALE
4795 | 5
4796 | 48
4797 | 102
4798 | {ACAD_REACTORS
4799 | 330
4800 | 47
4801 | 102
4802 | }
4803 | 330
4804 | 47
4805 | 100
4806 | AcDbScale
4807 | 70
4808 | 0
4809 | 300
4810 | 1:1
4811 | 140
4812 | 1.0
4813 | 141
4814 | 1.0
4815 | 290
4816 | 1
4817 | 0
4818 | SCALE
4819 | 5
4820 | 49
4821 | 102
4822 | {ACAD_REACTORS
4823 | 330
4824 | 47
4825 | 102
4826 | }
4827 | 330
4828 | 47
4829 | 100
4830 | AcDbScale
4831 | 70
4832 | 0
4833 | 300
4834 | 1:2
4835 | 140
4836 | 1.0
4837 | 141
4838 | 2.0
4839 | 290
4840 | 0
4841 | 0
4842 | SCALE
4843 | 5
4844 | 4A
4845 | 102
4846 | {ACAD_REACTORS
4847 | 330
4848 | 47
4849 | 102
4850 | }
4851 | 330
4852 | 47
4853 | 100
4854 | AcDbScale
4855 | 70
4856 | 0
4857 | 300
4858 | 1:4
4859 | 140
4860 | 1.0
4861 | 141
4862 | 4.0
4863 | 290
4864 | 0
4865 | 0
4866 | SCALE
4867 | 5
4868 | 4B
4869 | 102
4870 | {ACAD_REACTORS
4871 | 330
4872 | 47
4873 | 102
4874 | }
4875 | 330
4876 | 47
4877 | 100
4878 | AcDbScale
4879 | 70
4880 | 0
4881 | 300
4882 | 1:5
4883 | 140
4884 | 1.0
4885 | 141
4886 | 5.0
4887 | 290
4888 | 0
4889 | 0
4890 | SCALE
4891 | 5
4892 | 4C
4893 | 102
4894 | {ACAD_REACTORS
4895 | 330
4896 | 47
4897 | 102
4898 | }
4899 | 330
4900 | 47
4901 | 100
4902 | AcDbScale
4903 | 70
4904 | 0
4905 | 300
4906 | 1:8
4907 | 140
4908 | 1.0
4909 | 141
4910 | 8.0
4911 | 290
4912 | 0
4913 | 0
4914 | SCALE
4915 | 5
4916 | 4D
4917 | 102
4918 | {ACAD_REACTORS
4919 | 330
4920 | 47
4921 | 102
4922 | }
4923 | 330
4924 | 47
4925 | 100
4926 | AcDbScale
4927 | 70
4928 | 0
4929 | 300
4930 | 1:10
4931 | 140
4932 | 1.0
4933 | 141
4934 | 10.0
4935 | 290
4936 | 0
4937 | 0
4938 | SCALE
4939 | 5
4940 | 4E
4941 | 102
4942 | {ACAD_REACTORS
4943 | 330
4944 | 47
4945 | 102
4946 | }
4947 | 330
4948 | 47
4949 | 100
4950 | AcDbScale
4951 | 70
4952 | 0
4953 | 300
4954 | 1:16
4955 | 140
4956 | 1.0
4957 | 141
4958 | 16.0
4959 | 290
4960 | 0
4961 | 0
4962 | SCALE
4963 | 5
4964 | 4F
4965 | 102
4966 | {ACAD_REACTORS
4967 | 330
4968 | 47
4969 | 102
4970 | }
4971 | 330
4972 | 47
4973 | 100
4974 | AcDbScale
4975 | 70
4976 | 0
4977 | 300
4978 | 1:20
4979 | 140
4980 | 1.0
4981 | 141
4982 | 20.0
4983 | 290
4984 | 0
4985 | 0
4986 | SCALE
4987 | 5
4988 | 50
4989 | 102
4990 | {ACAD_REACTORS
4991 | 330
4992 | 47
4993 | 102
4994 | }
4995 | 330
4996 | 47
4997 | 100
4998 | AcDbScale
4999 | 70
5000 | 0
5001 | 300
5002 | 1:30
5003 | 140
5004 | 1.0
5005 | 141
5006 | 30.0
5007 | 290
5008 | 0
5009 | 0
5010 | SCALE
5011 | 5
5012 | 51
5013 | 102
5014 | {ACAD_REACTORS
5015 | 330
5016 | 47
5017 | 102
5018 | }
5019 | 330
5020 | 47
5021 | 100
5022 | AcDbScale
5023 | 70
5024 | 0
5025 | 300
5026 | 1:40
5027 | 140
5028 | 1.0
5029 | 141
5030 | 40.0
5031 | 290
5032 | 0
5033 | 0
5034 | SCALE
5035 | 5
5036 | 52
5037 | 102
5038 | {ACAD_REACTORS
5039 | 330
5040 | 47
5041 | 102
5042 | }
5043 | 330
5044 | 47
5045 | 100
5046 | AcDbScale
5047 | 70
5048 | 0
5049 | 300
5050 | 1:50
5051 | 140
5052 | 1.0
5053 | 141
5054 | 50.0
5055 | 290
5056 | 0
5057 | 0
5058 | SCALE
5059 | 5
5060 | 53
5061 | 102
5062 | {ACAD_REACTORS
5063 | 330
5064 | 47
5065 | 102
5066 | }
5067 | 330
5068 | 47
5069 | 100
5070 | AcDbScale
5071 | 70
5072 | 0
5073 | 300
5074 | 1:100
5075 | 140
5076 | 1.0
5077 | 141
5078 | 100.0
5079 | 290
5080 | 0
5081 | 0
5082 | SCALE
5083 | 5
5084 | 54
5085 | 102
5086 | {ACAD_REACTORS
5087 | 330
5088 | 47
5089 | 102
5090 | }
5091 | 330
5092 | 47
5093 | 100
5094 | AcDbScale
5095 | 70
5096 | 0
5097 | 300
5098 | 2:1
5099 | 140
5100 | 2.0
5101 | 141
5102 | 1.0
5103 | 290
5104 | 0
5105 | 0
5106 | SCALE
5107 | 5
5108 | 55
5109 | 102
5110 | {ACAD_REACTORS
5111 | 330
5112 | 47
5113 | 102
5114 | }
5115 | 330
5116 | 47
5117 | 100
5118 | AcDbScale
5119 | 70
5120 | 0
5121 | 300
5122 | 4:1
5123 | 140
5124 | 4.0
5125 | 141
5126 | 1.0
5127 | 290
5128 | 0
5129 | 0
5130 | SCALE
5131 | 5
5132 | 56
5133 | 102
5134 | {ACAD_REACTORS
5135 | 330
5136 | 47
5137 | 102
5138 | }
5139 | 330
5140 | 47
5141 | 100
5142 | AcDbScale
5143 | 70
5144 | 0
5145 | 300
5146 | 8:1
5147 | 140
5148 | 8.0
5149 | 141
5150 | 1.0
5151 | 290
5152 | 0
5153 | 0
5154 | SCALE
5155 | 5
5156 | 57
5157 | 102
5158 | {ACAD_REACTORS
5159 | 330
5160 | 47
5161 | 102
5162 | }
5163 | 330
5164 | 47
5165 | 100
5166 | AcDbScale
5167 | 70
5168 | 0
5169 | 300
5170 | 10:1
5171 | 140
5172 | 10.0
5173 | 141
5174 | 1.0
5175 | 290
5176 | 0
5177 | 0
5178 | SCALE
5179 | 5
5180 | 58
5181 | 102
5182 | {ACAD_REACTORS
5183 | 330
5184 | 47
5185 | 102
5186 | }
5187 | 330
5188 | 47
5189 | 100
5190 | AcDbScale
5191 | 70
5192 | 0
5193 | 300
5194 | 100:1
5195 | 140
5196 | 100.0
5197 | 141
5198 | 1.0
5199 | 290
5200 | 0
5201 | 0
5202 | SCALE
5203 | 5
5204 | 59
5205 | 102
5206 | {ACAD_REACTORS
5207 | 330
5208 | 47
5209 | 102
5210 | }
5211 | 330
5212 | 47
5213 | 100
5214 | AcDbScale
5215 | 70
5216 | 0
5217 | 300
5218 | 1/128" = 1'-0"
5219 | 140
5220 | 0.0078125
5221 | 141
5222 | 12.0
5223 | 290
5224 | 0
5225 | 0
5226 | SCALE
5227 | 5
5228 | 5A
5229 | 102
5230 | {ACAD_REACTORS
5231 | 330
5232 | 47
5233 | 102
5234 | }
5235 | 330
5236 | 47
5237 | 100
5238 | AcDbScale
5239 | 70
5240 | 0
5241 | 300
5242 | 1/64" = 1'-0"
5243 | 140
5244 | 0.015625
5245 | 141
5246 | 12.0
5247 | 290
5248 | 0
5249 | 0
5250 | SCALE
5251 | 5
5252 | 5B
5253 | 102
5254 | {ACAD_REACTORS
5255 | 330
5256 | 47
5257 | 102
5258 | }
5259 | 330
5260 | 47
5261 | 100
5262 | AcDbScale
5263 | 70
5264 | 0
5265 | 300
5266 | 1/32" = 1'-0"
5267 | 140
5268 | 0.03125
5269 | 141
5270 | 12.0
5271 | 290
5272 | 0
5273 | 0
5274 | SCALE
5275 | 5
5276 | 5C
5277 | 102
5278 | {ACAD_REACTORS
5279 | 330
5280 | 47
5281 | 102
5282 | }
5283 | 330
5284 | 47
5285 | 100
5286 | AcDbScale
5287 | 70
5288 | 0
5289 | 300
5290 | 1/16" = 1'-0"
5291 | 140
5292 | 0.0625
5293 | 141
5294 | 12.0
5295 | 290
5296 | 0
5297 | 0
5298 | SCALE
5299 | 5
5300 | 5D
5301 | 102
5302 | {ACAD_REACTORS
5303 | 330
5304 | 47
5305 | 102
5306 | }
5307 | 330
5308 | 47
5309 | 100
5310 | AcDbScale
5311 | 70
5312 | 0
5313 | 300
5314 | 3/32" = 1'-0"
5315 | 140
5316 | 0.09375
5317 | 141
5318 | 12.0
5319 | 290
5320 | 0
5321 | 0
5322 | SCALE
5323 | 5
5324 | 5E
5325 | 102
5326 | {ACAD_REACTORS
5327 | 330
5328 | 47
5329 | 102
5330 | }
5331 | 330
5332 | 47
5333 | 100
5334 | AcDbScale
5335 | 70
5336 | 0
5337 | 300
5338 | 1/8" = 1'-0"
5339 | 140
5340 | 0.125
5341 | 141
5342 | 12.0
5343 | 290
5344 | 0
5345 | 0
5346 | SCALE
5347 | 5
5348 | 5F
5349 | 102
5350 | {ACAD_REACTORS
5351 | 330
5352 | 47
5353 | 102
5354 | }
5355 | 330
5356 | 47
5357 | 100
5358 | AcDbScale
5359 | 70
5360 | 0
5361 | 300
5362 | 3/16" = 1'-0"
5363 | 140
5364 | 0.1875
5365 | 141
5366 | 12.0
5367 | 290
5368 | 0
5369 | 0
5370 | SCALE
5371 | 5
5372 | 60
5373 | 102
5374 | {ACAD_REACTORS
5375 | 330
5376 | 47
5377 | 102
5378 | }
5379 | 330
5380 | 47
5381 | 100
5382 | AcDbScale
5383 | 70
5384 | 0
5385 | 300
5386 | 1/4" = 1'-0"
5387 | 140
5388 | 0.25
5389 | 141
5390 | 12.0
5391 | 290
5392 | 0
5393 | 0
5394 | SCALE
5395 | 5
5396 | 61
5397 | 102
5398 | {ACAD_REACTORS
5399 | 330
5400 | 47
5401 | 102
5402 | }
5403 | 330
5404 | 47
5405 | 100
5406 | AcDbScale
5407 | 70
5408 | 0
5409 | 300
5410 | 3/8" = 1'-0"
5411 | 140
5412 | 0.375
5413 | 141
5414 | 12.0
5415 | 290
5416 | 0
5417 | 0
5418 | SCALE
5419 | 5
5420 | 62
5421 | 102
5422 | {ACAD_REACTORS
5423 | 330
5424 | 47
5425 | 102
5426 | }
5427 | 330
5428 | 47
5429 | 100
5430 | AcDbScale
5431 | 70
5432 | 0
5433 | 300
5434 | 1/2" = 1'-0"
5435 | 140
5436 | 0.5
5437 | 141
5438 | 12.0
5439 | 290
5440 | 0
5441 | 0
5442 | SCALE
5443 | 5
5444 | 63
5445 | 102
5446 | {ACAD_REACTORS
5447 | 330
5448 | 47
5449 | 102
5450 | }
5451 | 330
5452 | 47
5453 | 100
5454 | AcDbScale
5455 | 70
5456 | 0
5457 | 300
5458 | 3/4" = 1'-0"
5459 | 140
5460 | 0.75
5461 | 141
5462 | 12.0
5463 | 290
5464 | 0
5465 | 0
5466 | SCALE
5467 | 5
5468 | 64
5469 | 102
5470 | {ACAD_REACTORS
5471 | 330
5472 | 47
5473 | 102
5474 | }
5475 | 330
5476 | 47
5477 | 100
5478 | AcDbScale
5479 | 70
5480 | 0
5481 | 300
5482 | 1" = 1'-0"
5483 | 140
5484 | 1.0
5485 | 141
5486 | 12.0
5487 | 290
5488 | 0
5489 | 0
5490 | SCALE
5491 | 5
5492 | 65
5493 | 102
5494 | {ACAD_REACTORS
5495 | 330
5496 | 47
5497 | 102
5498 | }
5499 | 330
5500 | 47
5501 | 100
5502 | AcDbScale
5503 | 70
5504 | 0
5505 | 300
5506 | 1-1/2" = 1'-0"
5507 | 140
5508 | 1.5
5509 | 141
5510 | 12.0
5511 | 290
5512 | 0
5513 | 0
5514 | SCALE
5515 | 5
5516 | 66
5517 | 102
5518 | {ACAD_REACTORS
5519 | 330
5520 | 47
5521 | 102
5522 | }
5523 | 330
5524 | 47
5525 | 100
5526 | AcDbScale
5527 | 70
5528 | 0
5529 | 300
5530 | 3" = 1'-0"
5531 | 140
5532 | 3.0
5533 | 141
5534 | 12.0
5535 | 290
5536 | 0
5537 | 0
5538 | SCALE
5539 | 5
5540 | 67
5541 | 102
5542 | {ACAD_REACTORS
5543 | 330
5544 | 47
5545 | 102
5546 | }
5547 | 330
5548 | 47
5549 | 100
5550 | AcDbScale
5551 | 70
5552 | 0
5553 | 300
5554 | 6" = 1'-0"
5555 | 140
5556 | 6.0
5557 | 141
5558 | 12.0
5559 | 290
5560 | 0
5561 | 0
5562 | SCALE
5563 | 5
5564 | 68
5565 | 102
5566 | {ACAD_REACTORS
5567 | 330
5568 | 47
5569 | 102
5570 | }
5571 | 330
5572 | 47
5573 | 100
5574 | AcDbScale
5575 | 70
5576 | 0
5577 | 300
5578 | 1'-0" = 1'-0"
5579 | 140
5580 | 12.0
5581 | 141
5582 | 12.0
5583 | 290
5584 | 0
5585 | 0
5586 | TABLESTYLE
5587 | 5
5588 | 6A
5589 | 102
5590 | {ACAD_REACTORS
5591 | 330
5592 | 69
5593 | 102
5594 | }
5595 | 102
5596 | {ACAD_XDICTIONARY
5597 | 360
5598 | A6
5599 | 102
5600 | }
5601 | 330
5602 | 69
5603 | 100
5604 | AcDbTableStyle
5605 | 3
5606 | Standard
5607 | 70
5608 | 0
5609 | 71
5610 | 0
5611 | 40
5612 | 0.06
5613 | 41
5614 | 0.06
5615 | 280
5616 | 0
5617 | 281
5618 | 0
5619 | 7
5620 | Standard
5621 | 140
5622 | 4.5
5623 | 170
5624 | 2
5625 | 62
5626 | 0
5627 | 63
5628 | 257
5629 | 283
5630 | 0
5631 | 90
5632 | 4
5633 | 91
5634 | 0
5635 | 1
5636 |
5637 | 274
5638 | -2
5639 | 284
5640 | 1
5641 | 64
5642 | 0
5643 | 275
5644 | -2
5645 | 285
5646 | 1
5647 | 65
5648 | 0
5649 | 276
5650 | -2
5651 | 286
5652 | 1
5653 | 66
5654 | 0
5655 | 277
5656 | -2
5657 | 287
5658 | 1
5659 | 67
5660 | 0
5661 | 278
5662 | -2
5663 | 288
5664 | 1
5665 | 68
5666 | 0
5667 | 279
5668 | -2
5669 | 289
5670 | 1
5671 | 69
5672 | 0
5673 | 7
5674 | Standard
5675 | 140
5676 | 6.0
5677 | 170
5678 | 5
5679 | 62
5680 | 0
5681 | 63
5682 | 257
5683 | 283
5684 | 0
5685 | 90
5686 | 4
5687 | 91
5688 | 0
5689 | 1
5690 |
5691 | 274
5692 | -2
5693 | 284
5694 | 1
5695 | 64
5696 | 0
5697 | 275
5698 | -2
5699 | 285
5700 | 1
5701 | 65
5702 | 0
5703 | 276
5704 | -2
5705 | 286
5706 | 1
5707 | 66
5708 | 0
5709 | 277
5710 | -2
5711 | 287
5712 | 1
5713 | 67
5714 | 0
5715 | 278
5716 | -2
5717 | 288
5718 | 1
5719 | 68
5720 | 0
5721 | 279
5722 | -2
5723 | 289
5724 | 1
5725 | 69
5726 | 0
5727 | 7
5728 | Standard
5729 | 140
5730 | 4.5
5731 | 170
5732 | 5
5733 | 62
5734 | 0
5735 | 63
5736 | 257
5737 | 283
5738 | 0
5739 | 90
5740 | 4
5741 | 91
5742 | 0
5743 | 1
5744 |
5745 | 274
5746 | -2
5747 | 284
5748 | 1
5749 | 64
5750 | 0
5751 | 275
5752 | -2
5753 | 285
5754 | 1
5755 | 65
5756 | 0
5757 | 276
5758 | -2
5759 | 286
5760 | 1
5761 | 66
5762 | 0
5763 | 277
5764 | -2
5765 | 287
5766 | 1
5767 | 67
5768 | 0
5769 | 278
5770 | -2
5771 | 288
5772 | 1
5773 | 68
5774 | 0
5775 | 279
5776 | -2
5777 | 289
5778 | 1
5779 | 69
5780 | 0
5781 | 0
5782 | VISUALSTYLE
5783 | 5
5784 | 2F
5785 | 102
5786 | {ACAD_REACTORS
5787 | 330
5788 | 2A
5789 | 102
5790 | }
5791 | 330
5792 | 2A
5793 | 100
5794 | AcDbVisualStyle
5795 | 2
5796 | 2dWireframe
5797 | 70
5798 | 4
5799 | 71
5800 | 0
5801 | 72
5802 | 2
5803 | 73
5804 | 0
5805 | 90
5806 | 0
5807 | 40
5808 | 0.6
5809 | 41
5810 | 30.0
5811 | 62
5812 | 5
5813 | 63
5814 | 7
5815 | 421
5816 | 16777215
5817 | 74
5818 | 1
5819 | 91
5820 | 4
5821 | 64
5822 | 7
5823 | 65
5824 | 257
5825 | 75
5826 | 1
5827 | 175
5828 | 1
5829 | 42
5830 | 1.0
5831 | 92
5832 | 0
5833 | 66
5834 | 257
5835 | 43
5836 | 1.0
5837 | 76
5838 | 1
5839 | 77
5840 | 6
5841 | 78
5842 | 2
5843 | 67
5844 | 7
5845 | 79
5846 | 5
5847 | 170
5848 | 0
5849 | 171
5850 | 0
5851 | 290
5852 | 0
5853 | 174
5854 | 0
5855 | 93
5856 | 1
5857 | 44
5858 | 0.0
5859 | 173
5860 | 0
5861 | 291
5862 | 0
5863 | 45
5864 | 0.0
5865 | 0
5866 | VISUALSTYLE
5867 | 5
5868 | 32
5869 | 102
5870 | {ACAD_REACTORS
5871 | 330
5872 | 2A
5873 | 102
5874 | }
5875 | 330
5876 | 2A
5877 | 100
5878 | AcDbVisualStyle
5879 | 2
5880 | Basic
5881 | 70
5882 | 7
5883 | 71
5884 | 1
5885 | 72
5886 | 0
5887 | 73
5888 | 1
5889 | 90
5890 | 0
5891 | 40
5892 | 0.6
5893 | 41
5894 | 30.0
5895 | 62
5896 | 5
5897 | 63
5898 | 7
5899 | 421
5900 | 16777215
5901 | 74
5902 | 0
5903 | 91
5904 | 4
5905 | 64
5906 | 7
5907 | 65
5908 | 257
5909 | 75
5910 | 1
5911 | 175
5912 | 1
5913 | 42
5914 | 1.0
5915 | 92
5916 | 8
5917 | 66
5918 | 7
5919 | 43
5920 | 1.0
5921 | 76
5922 | 1
5923 | 77
5924 | 6
5925 | 78
5926 | 2
5927 | 67
5928 | 7
5929 | 79
5930 | 5
5931 | 170
5932 | 0
5933 | 171
5934 | 0
5935 | 290
5936 | 0
5937 | 174
5938 | 0
5939 | 93
5940 | 1
5941 | 44
5942 | 0.0
5943 | 173
5944 | 0
5945 | 291
5946 | 1
5947 | 45
5948 | 0.0
5949 | 0
5950 | VISUALSTYLE
5951 | 5
5952 | 36
5953 | 102
5954 | {ACAD_REACTORS
5955 | 330
5956 | 2A
5957 | 102
5958 | }
5959 | 330
5960 | 2A
5961 | 100
5962 | AcDbVisualStyle
5963 | 2
5964 | Brighten
5965 | 70
5966 | 12
5967 | 71
5968 | 2
5969 | 72
5970 | 2
5971 | 73
5972 | 0
5973 | 90
5974 | 0
5975 | 40
5976 | 0.6
5977 | 41
5978 | 30.0
5979 | 62
5980 | 5
5981 | 63
5982 | 7
5983 | 421
5984 | 16777215
5985 | 74
5986 | 1
5987 | 91
5988 | 4
5989 | 64
5990 | 7
5991 | 65
5992 | 257
5993 | 75
5994 | 1
5995 | 175
5996 | 1
5997 | 42
5998 | 1.0
5999 | 92
6000 | 8
6001 | 66
6002 | 7
6003 | 43
6004 | 1.0
6005 | 76
6006 | 1
6007 | 77
6008 | 6
6009 | 78
6010 | 2
6011 | 67
6012 | 7
6013 | 79
6014 | 5
6015 | 170
6016 | 0
6017 | 171
6018 | 0
6019 | 290
6020 | 0
6021 | 174
6022 | 0
6023 | 93
6024 | 1
6025 | 44
6026 | 50.0
6027 | 173
6028 | 0
6029 | 291
6030 | 1
6031 | 45
6032 | 0.0
6033 | 0
6034 | VISUALSTYLE
6035 | 5
6036 | 3A
6037 | 102
6038 | {ACAD_REACTORS
6039 | 330
6040 | 2A
6041 | 102
6042 | }
6043 | 330
6044 | 2A
6045 | 100
6046 | AcDbVisualStyle
6047 | 2
6048 | ColorChange
6049 | 70
6050 | 16
6051 | 71
6052 | 2
6053 | 72
6054 | 2
6055 | 73
6056 | 3
6057 | 90
6058 | 0
6059 | 40
6060 | 0.6
6061 | 41
6062 | 30.0
6063 | 62
6064 | 5
6065 | 63
6066 | 8
6067 | 421
6068 | 8421504
6069 | 74
6070 | 1
6071 | 91
6072 | 4
6073 | 64
6074 | 7
6075 | 65
6076 | 257
6077 | 75
6078 | 1
6079 | 175
6080 | 1
6081 | 42
6082 | 1.0
6083 | 92
6084 | 8
6085 | 66
6086 | 8
6087 | 424
6088 | 8421504
6089 | 43
6090 | 1.0
6091 | 76
6092 | 1
6093 | 77
6094 | 6
6095 | 78
6096 | 2
6097 | 67
6098 | 7
6099 | 79
6100 | 5
6101 | 170
6102 | 0
6103 | 171
6104 | 0
6105 | 290
6106 | 0
6107 | 174
6108 | 0
6109 | 93
6110 | 1
6111 | 44
6112 | 0.0
6113 | 173
6114 | 0
6115 | 291
6116 | 1
6117 | 45
6118 | 0.0
6119 | 0
6120 | VISUALSTYLE
6121 | 5
6122 | 34
6123 | 102
6124 | {ACAD_REACTORS
6125 | 330
6126 | 2A
6127 | 102
6128 | }
6129 | 330
6130 | 2A
6131 | 100
6132 | AcDbVisualStyle
6133 | 2
6134 | Conceptual
6135 | 70
6136 | 9
6137 | 71
6138 | 3
6139 | 72
6140 | 2
6141 | 73
6142 | 0
6143 | 90
6144 | 0
6145 | 40
6146 | 0.6
6147 | 41
6148 | 30.0
6149 | 62
6150 | 5
6151 | 63
6152 | 7
6153 | 421
6154 | 16777215
6155 | 74
6156 | 2
6157 | 91
6158 | 2
6159 | 64
6160 | 7
6161 | 65
6162 | 257
6163 | 75
6164 | 1
6165 | 175
6166 | 1
6167 | 42
6168 | 179.0
6169 | 92
6170 | 8
6171 | 66
6172 | 7
6173 | 43
6174 | 1.0
6175 | 76
6176 | 1
6177 | 77
6178 | 6
6179 | 78
6180 | 2
6181 | 67
6182 | 7
6183 | 79
6184 | 3
6185 | 170
6186 | 0
6187 | 171
6188 | 0
6189 | 290
6190 | 0
6191 | 174
6192 | 0
6193 | 93
6194 | 1
6195 | 44
6196 | 0.0
6197 | 173
6198 | 0
6199 | 291
6200 | 0
6201 | 45
6202 | 0.0
6203 | 0
6204 | VISUALSTYLE
6205 | 5
6206 | 35
6207 | 102
6208 | {ACAD_REACTORS
6209 | 330
6210 | 2A
6211 | 102
6212 | }
6213 | 330
6214 | 2A
6215 | 100
6216 | AcDbVisualStyle
6217 | 2
6218 | Dim
6219 | 70
6220 | 11
6221 | 71
6222 | 2
6223 | 72
6224 | 2
6225 | 73
6226 | 0
6227 | 90
6228 | 0
6229 | 40
6230 | 0.6
6231 | 41
6232 | 30.0
6233 | 62
6234 | 5
6235 | 63
6236 | 7
6237 | 421
6238 | 16777215
6239 | 74
6240 | 1
6241 | 91
6242 | 4
6243 | 64
6244 | 7
6245 | 65
6246 | 257
6247 | 75
6248 | 1
6249 | 175
6250 | 1
6251 | 42
6252 | 1.0
6253 | 92
6254 | 8
6255 | 66
6256 | 7
6257 | 43
6258 | 1.0
6259 | 76
6260 | 1
6261 | 77
6262 | 6
6263 | 78
6264 | 2
6265 | 67
6266 | 7
6267 | 79
6268 | 5
6269 | 170
6270 | 0
6271 | 171
6272 | 0
6273 | 290
6274 | 0
6275 | 174
6276 | 0
6277 | 93
6278 | 1
6279 | 44
6280 | -50.0
6281 | 173
6282 | 0
6283 | 291
6284 | 1
6285 | 45
6286 | 0.0
6287 | 0
6288 | VISUALSTYLE
6289 | 5
6290 | 3D
6291 | 102
6292 | {ACAD_REACTORS
6293 | 330
6294 | 2A
6295 | 102
6296 | }
6297 | 330
6298 | 2A
6299 | 100
6300 | AcDbVisualStyle
6301 | 2
6302 | EdgeColorOff
6303 | 70
6304 | 22
6305 | 71
6306 | 2
6307 | 72
6308 | 2
6309 | 73
6310 | 0
6311 | 90
6312 | 0
6313 | 40
6314 | 0.6
6315 | 41
6316 | 30.0
6317 | 62
6318 | 5
6319 | 63
6320 | 7
6321 | 421
6322 | 16777215
6323 | 74
6324 | 1
6325 | 91
6326 | 4
6327 | 64
6328 | 7
6329 | 65
6330 | 257
6331 | 75
6332 | 1
6333 | 175
6334 | 1
6335 | 42
6336 | 1.0
6337 | 92
6338 | 8
6339 | 66
6340 | 7
6341 | 43
6342 | 1.0
6343 | 76
6344 | 1
6345 | 77
6346 | 6
6347 | 78
6348 | 2
6349 | 67
6350 | 7
6351 | 79
6352 | 5
6353 | 170
6354 | 0
6355 | 171
6356 | 0
6357 | 290
6358 | 0
6359 | 174
6360 | 0
6361 | 93
6362 | 1
6363 | 44
6364 | 0.0
6365 | 173
6366 | 0
6367 | 291
6368 | 1
6369 | 45
6370 | 0.0
6371 | 0
6372 | VISUALSTYLE
6373 | 5
6374 | 39
6375 | 102
6376 | {ACAD_REACTORS
6377 | 330
6378 | 2A
6379 | 102
6380 | }
6381 | 330
6382 | 2A
6383 | 100
6384 | AcDbVisualStyle
6385 | 2
6386 | Facepattern
6387 | 70
6388 | 15
6389 | 71
6390 | 2
6391 | 72
6392 | 2
6393 | 73
6394 | 0
6395 | 90
6396 | 0
6397 | 40
6398 | 0.6
6399 | 41
6400 | 30.0
6401 | 62
6402 | 5
6403 | 63
6404 | 7
6405 | 421
6406 | 16777215
6407 | 74
6408 | 1
6409 | 91
6410 | 4
6411 | 64
6412 | 7
6413 | 65
6414 | 257
6415 | 75
6416 | 1
6417 | 175
6418 | 1
6419 | 42
6420 | 1.0
6421 | 92
6422 | 8
6423 | 66
6424 | 7
6425 | 43
6426 | 1.0
6427 | 76
6428 | 1
6429 | 77
6430 | 6
6431 | 78
6432 | 2
6433 | 67
6434 | 7
6435 | 79
6436 | 5
6437 | 170
6438 | 0
6439 | 171
6440 | 0
6441 | 290
6442 | 0
6443 | 174
6444 | 0
6445 | 93
6446 | 1
6447 | 44
6448 | 0.0
6449 | 173
6450 | 0
6451 | 291
6452 | 1
6453 | 45
6454 | 0.0
6455 | 0
6456 | VISUALSTYLE
6457 | 5
6458 | 2B
6459 | 102
6460 | {ACAD_REACTORS
6461 | 330
6462 | 2A
6463 | 102
6464 | }
6465 | 330
6466 | 2A
6467 | 100
6468 | AcDbVisualStyle
6469 | 2
6470 | Flat
6471 | 70
6472 | 0
6473 | 71
6474 | 2
6475 | 72
6476 | 1
6477 | 73
6478 | 1
6479 | 90
6480 | 2
6481 | 40
6482 | 0.6
6483 | 41
6484 | 30.0
6485 | 62
6486 | 5
6487 | 63
6488 | 7
6489 | 421
6490 | 16777215
6491 | 74
6492 | 0
6493 | 91
6494 | 0
6495 | 64
6496 | 7
6497 | 65
6498 | 257
6499 | 75
6500 | 1
6501 | 175
6502 | 1
6503 | 42
6504 | 1.0
6505 | 92
6506 | 8
6507 | 66
6508 | 7
6509 | 43
6510 | 1.0
6511 | 76
6512 | 1
6513 | 77
6514 | 6
6515 | 78
6516 | 2
6517 | 67
6518 | 7
6519 | 79
6520 | 5
6521 | 170
6522 | 0
6523 | 171
6524 | 0
6525 | 290
6526 | 0
6527 | 174
6528 | 0
6529 | 93
6530 | 13
6531 | 44
6532 | 0.0
6533 | 173
6534 | 0
6535 | 291
6536 | 1
6537 | 45
6538 | 0.0
6539 | 0
6540 | VISUALSTYLE
6541 | 5
6542 | 2C
6543 | 102
6544 | {ACAD_REACTORS
6545 | 330
6546 | 2A
6547 | 102
6548 | }
6549 | 330
6550 | 2A
6551 | 100
6552 | AcDbVisualStyle
6553 | 2
6554 | FlatWithEdges
6555 | 70
6556 | 1
6557 | 71
6558 | 2
6559 | 72
6560 | 1
6561 | 73
6562 | 1
6563 | 90
6564 | 2
6565 | 40
6566 | 0.6
6567 | 41
6568 | 30.0
6569 | 62
6570 | 5
6571 | 63
6572 | 7
6573 | 421
6574 | 16777215
6575 | 74
6576 | 1
6577 | 91
6578 | 0
6579 | 64
6580 | 7
6581 | 65
6582 | 257
6583 | 75
6584 | 1
6585 | 175
6586 | 1
6587 | 42
6588 | 1.0
6589 | 92
6590 | 0
6591 | 66
6592 | 257
6593 | 43
6594 | 1.0
6595 | 76
6596 | 1
6597 | 77
6598 | 6
6599 | 78
6600 | 2
6601 | 67
6602 | 7
6603 | 79
6604 | 5
6605 | 170
6606 | 0
6607 | 171
6608 | 0
6609 | 290
6610 | 0
6611 | 174
6612 | 0
6613 | 93
6614 | 13
6615 | 44
6616 | 0.0
6617 | 173
6618 | 0
6619 | 291
6620 | 1
6621 | 45
6622 | 0.0
6623 | 0
6624 | VISUALSTYLE
6625 | 5
6626 | 2D
6627 | 102
6628 | {ACAD_REACTORS
6629 | 330
6630 | 2A
6631 | 102
6632 | }
6633 | 330
6634 | 2A
6635 | 100
6636 | AcDbVisualStyle
6637 | 2
6638 | Gouraud
6639 | 70
6640 | 2
6641 | 71
6642 | 2
6643 | 72
6644 | 2
6645 | 73
6646 | 1
6647 | 90
6648 | 2
6649 | 40
6650 | 0.6
6651 | 41
6652 | 30.0
6653 | 62
6654 | 5
6655 | 63
6656 | 7
6657 | 421
6658 | 16777215
6659 | 74
6660 | 0
6661 | 91
6662 | 0
6663 | 64
6664 | 7
6665 | 65
6666 | 257
6667 | 75
6668 | 1
6669 | 175
6670 | 1
6671 | 42
6672 | 1.0
6673 | 92
6674 | 0
6675 | 66
6676 | 7
6677 | 43
6678 | 1.0
6679 | 76
6680 | 1
6681 | 77
6682 | 6
6683 | 78
6684 | 2
6685 | 67
6686 | 7
6687 | 79
6688 | 5
6689 | 170
6690 | 0
6691 | 171
6692 | 0
6693 | 290
6694 | 0
6695 | 174
6696 | 0
6697 | 93
6698 | 13
6699 | 44
6700 | 0.0
6701 | 173
6702 | 0
6703 | 291
6704 | 1
6705 | 45
6706 | 0.0
6707 | 0
6708 | VISUALSTYLE
6709 | 5
6710 | 2E
6711 | 102
6712 | {ACAD_REACTORS
6713 | 330
6714 | 2A
6715 | 102
6716 | }
6717 | 330
6718 | 2A
6719 | 100
6720 | AcDbVisualStyle
6721 | 2
6722 | GouraudWithEdges
6723 | 70
6724 | 3
6725 | 71
6726 | 2
6727 | 72
6728 | 2
6729 | 73
6730 | 1
6731 | 90
6732 | 2
6733 | 40
6734 | 0.6
6735 | 41
6736 | 30.0
6737 | 62
6738 | 5
6739 | 63
6740 | 7
6741 | 421
6742 | 16777215
6743 | 74
6744 | 1
6745 | 91
6746 | 0
6747 | 64
6748 | 7
6749 | 65
6750 | 257
6751 | 75
6752 | 1
6753 | 175
6754 | 1
6755 | 42
6756 | 1.0
6757 | 92
6758 | 0
6759 | 66
6760 | 257
6761 | 43
6762 | 1.0
6763 | 76
6764 | 1
6765 | 77
6766 | 6
6767 | 78
6768 | 2
6769 | 67
6770 | 7
6771 | 79
6772 | 5
6773 | 170
6774 | 0
6775 | 171
6776 | 0
6777 | 290
6778 | 0
6779 | 174
6780 | 0
6781 | 93
6782 | 13
6783 | 44
6784 | 0.0
6785 | 173
6786 | 0
6787 | 291
6788 | 1
6789 | 45
6790 | 0.0
6791 | 0
6792 | VISUALSTYLE
6793 | 5
6794 | 31
6795 | 102
6796 | {ACAD_REACTORS
6797 | 330
6798 | 2A
6799 | 102
6800 | }
6801 | 330
6802 | 2A
6803 | 100
6804 | AcDbVisualStyle
6805 | 2
6806 | Hidden
6807 | 70
6808 | 6
6809 | 71
6810 | 1
6811 | 72
6812 | 2
6813 | 73
6814 | 2
6815 | 90
6816 | 0
6817 | 40
6818 | 0.6
6819 | 41
6820 | 30.0
6821 | 62
6822 | 5
6823 | 63
6824 | 7
6825 | 421
6826 | 16777215
6827 | 74
6828 | 2
6829 | 91
6830 | 2
6831 | 64
6832 | 7
6833 | 65
6834 | 257
6835 | 75
6836 | 2
6837 | 175
6838 | 1
6839 | 42
6840 | 40.0
6841 | 92
6842 | 0
6843 | 66
6844 | 257
6845 | 43
6846 | 1.0
6847 | 76
6848 | 1
6849 | 77
6850 | 6
6851 | 78
6852 | 2
6853 | 67
6854 | 7
6855 | 79
6856 | 3
6857 | 170
6858 | 0
6859 | 171
6860 | 0
6861 | 290
6862 | 0
6863 | 174
6864 | 0
6865 | 93
6866 | 1
6867 | 44
6868 | 0.0
6869 | 173
6870 | 0
6871 | 291
6872 | 0
6873 | 45
6874 | 0.0
6875 | 0
6876 | VISUALSTYLE
6877 | 5
6878 | 3B
6879 | 102
6880 | {ACAD_REACTORS
6881 | 330
6882 | 2A
6883 | 102
6884 | }
6885 | 330
6886 | 2A
6887 | 100
6888 | AcDbVisualStyle
6889 | 2
6890 | JitterOff
6891 | 70
6892 | 20
6893 | 71
6894 | 2
6895 | 72
6896 | 2
6897 | 73
6898 | 0
6899 | 90
6900 | 0
6901 | 40
6902 | 0.6
6903 | 41
6904 | 30.0
6905 | 62
6906 | 5
6907 | 63
6908 | 7
6909 | 421
6910 | 16777215
6911 | 74
6912 | 1
6913 | 91
6914 | 4
6915 | 64
6916 | 7
6917 | 65
6918 | 257
6919 | 75
6920 | 1
6921 | 175
6922 | 1
6923 | 42
6924 | 1.0
6925 | 92
6926 | 10
6927 | 66
6928 | 7
6929 | 43
6930 | 1.0
6931 | 76
6932 | 1
6933 | 77
6934 | 6
6935 | 78
6936 | 2
6937 | 67
6938 | 7
6939 | 79
6940 | 5
6941 | 170
6942 | 0
6943 | 171
6944 | 0
6945 | 290
6946 | 0
6947 | 174
6948 | 0
6949 | 93
6950 | 1
6951 | 44
6952 | 0.0
6953 | 173
6954 | 0
6955 | 291
6956 | 1
6957 | 45
6958 | 0.0
6959 | 0
6960 | VISUALSTYLE
6961 | 5
6962 | 38
6963 | 102
6964 | {ACAD_REACTORS
6965 | 330
6966 | 2A
6967 | 102
6968 | }
6969 | 330
6970 | 2A
6971 | 100
6972 | AcDbVisualStyle
6973 | 2
6974 | Linepattern
6975 | 70
6976 | 14
6977 | 71
6978 | 2
6979 | 72
6980 | 2
6981 | 73
6982 | 0
6983 | 90
6984 | 0
6985 | 40
6986 | 0.6
6987 | 41
6988 | 30.0
6989 | 62
6990 | 5
6991 | 63
6992 | 7
6993 | 421
6994 | 16777215
6995 | 74
6996 | 1
6997 | 91
6998 | 4
6999 | 64
7000 | 7
7001 | 65
7002 | 257
7003 | 75
7004 | 7
7005 | 175
7006 | 7
7007 | 42
7008 | 1.0
7009 | 92
7010 | 8
7011 | 66
7012 | 7
7013 | 43
7014 | 1.0
7015 | 76
7016 | 1
7017 | 77
7018 | 6
7019 | 78
7020 | 2
7021 | 67
7022 | 7
7023 | 79
7024 | 5
7025 | 170
7026 | 0
7027 | 171
7028 | 0
7029 | 290
7030 | 0
7031 | 174
7032 | 0
7033 | 93
7034 | 1
7035 | 44
7036 | 0.0
7037 | 173
7038 | 0
7039 | 291
7040 | 1
7041 | 45
7042 | 0.0
7043 | 0
7044 | VISUALSTYLE
7045 | 5
7046 | 3C
7047 | 102
7048 | {ACAD_REACTORS
7049 | 330
7050 | 2A
7051 | 102
7052 | }
7053 | 330
7054 | 2A
7055 | 100
7056 | AcDbVisualStyle
7057 | 2
7058 | OverhangOff
7059 | 70
7060 | 21
7061 | 71
7062 | 2
7063 | 72
7064 | 2
7065 | 73
7066 | 0
7067 | 90
7068 | 0
7069 | 40
7070 | 0.6
7071 | 41
7072 | 30.0
7073 | 62
7074 | 5
7075 | 63
7076 | 7
7077 | 421
7078 | 16777215
7079 | 74
7080 | 1
7081 | 91
7082 | 4
7083 | 64
7084 | 7
7085 | 65
7086 | 257
7087 | 75
7088 | 1
7089 | 175
7090 | 1
7091 | 42
7092 | 1.0
7093 | 92
7094 | 9
7095 | 66
7096 | 7
7097 | 43
7098 | 1.0
7099 | 76
7100 | 1
7101 | 77
7102 | 6
7103 | 78
7104 | 2
7105 | 67
7106 | 7
7107 | 79
7108 | 5
7109 | 170
7110 | 0
7111 | 171
7112 | 0
7113 | 290
7114 | 0
7115 | 174
7116 | 0
7117 | 93
7118 | 1
7119 | 44
7120 | 0.0
7121 | 173
7122 | 0
7123 | 291
7124 | 1
7125 | 45
7126 | 0.0
7127 | 0
7128 | VISUALSTYLE
7129 | 5
7130 | 33
7131 | 102
7132 | {ACAD_REACTORS
7133 | 330
7134 | 2A
7135 | 102
7136 | }
7137 | 330
7138 | 2A
7139 | 100
7140 | AcDbVisualStyle
7141 | 2
7142 | Realistic
7143 | 70
7144 | 8
7145 | 71
7146 | 2
7147 | 72
7148 | 3
7149 | 73
7150 | 0
7151 | 90
7152 | 2
7153 | 40
7154 | 0.6
7155 | 41
7156 | 30.0
7157 | 62
7158 | 5
7159 | 63
7160 | 7
7161 | 421
7162 | 16777215
7163 | 74
7164 | 0
7165 | 91
7166 | 0
7167 | 64
7168 | 7
7169 | 65
7170 | 257
7171 | 75
7172 | 1
7173 | 175
7174 | 1
7175 | 42
7176 | 1.0
7177 | 92
7178 | 8
7179 | 66
7180 | 257
7181 | 43
7182 | 1.0
7183 | 76
7184 | 1
7185 | 77
7186 | 6
7187 | 78
7188 | 2
7189 | 67
7190 | 7
7191 | 79
7192 | 3
7193 | 170
7194 | 0
7195 | 171
7196 | 0
7197 | 290
7198 | 0
7199 | 174
7200 | 0
7201 | 93
7202 | 13
7203 | 44
7204 | 0.0
7205 | 173
7206 | 0
7207 | 291
7208 | 0
7209 | 45
7210 | 0.0
7211 | 0
7212 | VISUALSTYLE
7213 | 5
7214 | 42
7215 | 102
7216 | {ACAD_REACTORS
7217 | 330
7218 | 2A
7219 | 102
7220 | }
7221 | 330
7222 | 2A
7223 | 100
7224 | AcDbVisualStyle
7225 | 2
7226 | Shaded
7227 | 70
7228 | 27
7229 | 71
7230 | 2
7231 | 72
7232 | 2
7233 | 73
7234 | 1
7235 | 90
7236 | 2
7237 | 40
7238 | 0.6
7239 | 41
7240 | 30.0
7241 | 62
7242 | 5
7243 | 63
7244 | 7
7245 | 421
7246 | 16777215
7247 | 74
7248 | 0
7249 | 91
7250 | 4
7251 | 64
7252 | 7
7253 | 65
7254 | 257
7255 | 75
7256 | 1
7257 | 175
7258 | 1
7259 | 42
7260 | 1.0
7261 | 92
7262 | 8
7263 | 66
7264 | 257
7265 | 43
7266 | 1.0
7267 | 76
7268 | 1
7269 | 77
7270 | 6
7271 | 78
7272 | 2
7273 | 67
7274 | 8
7275 | 425
7276 | 7895160
7277 | 79
7278 | 3
7279 | 170
7280 | 0
7281 | 171
7282 | 0
7283 | 290
7284 | 0
7285 | 174
7286 | 0
7287 | 93
7288 | 5
7289 | 44
7290 | 0.0
7291 | 173
7292 | 0
7293 | 291
7294 | 0
7295 | 45
7296 | 0.0
7297 | 0
7298 | VISUALSTYLE
7299 | 5
7300 | 41
7301 | 102
7302 | {ACAD_REACTORS
7303 | 330
7304 | 2A
7305 | 102
7306 | }
7307 | 330
7308 | 2A
7309 | 100
7310 | AcDbVisualStyle
7311 | 2
7312 | Shaded with edges
7313 | 70
7314 | 26
7315 | 71
7316 | 2
7317 | 72
7318 | 2
7319 | 73
7320 | 1
7321 | 90
7322 | 2
7323 | 40
7324 | 0.6
7325 | 41
7326 | 30.0
7327 | 62
7328 | 5
7329 | 63
7330 | 7
7331 | 421
7332 | 16777215
7333 | 74
7334 | 1
7335 | 91
7336 | 10
7337 | 64
7338 | 7
7339 | 65
7340 | 257
7341 | 75
7342 | 2
7343 | 175
7344 | 1
7345 | 42
7346 | 1.0
7347 | 92
7348 | 8
7349 | 66
7350 | 257
7351 | 43
7352 | 1.0
7353 | 76
7354 | 1
7355 | 77
7356 | 6
7357 | 78
7358 | 2
7359 | 67
7360 | 7
7361 | 79
7362 | 3
7363 | 170
7364 | 0
7365 | 171
7366 | 0
7367 | 290
7368 | 0
7369 | 174
7370 | 0
7371 | 93
7372 | 5
7373 | 44
7374 | 0.0
7375 | 173
7376 | 0
7377 | 291
7378 | 0
7379 | 45
7380 | 0.0
7381 | 0
7382 | VISUALSTYLE
7383 | 5
7384 | 3E
7385 | 102
7386 | {ACAD_REACTORS
7387 | 330
7388 | 2A
7389 | 102
7390 | }
7391 | 330
7392 | 2A
7393 | 100
7394 | AcDbVisualStyle
7395 | 2
7396 | Shades of Gray
7397 | 70
7398 | 23
7399 | 71
7400 | 2
7401 | 72
7402 | 2
7403 | 73
7404 | 3
7405 | 90
7406 | 0
7407 | 40
7408 | 0.6
7409 | 41
7410 | 30.0
7411 | 62
7412 | 5
7413 | 63
7414 | 7
7415 | 421
7416 | 16777215
7417 | 74
7418 | 2
7419 | 91
7420 | 2
7421 | 64
7422 | 7
7423 | 65
7424 | 7
7425 | 75
7426 | 1
7427 | 175
7428 | 1
7429 | 42
7430 | 40.0
7431 | 92
7432 | 8
7433 | 66
7434 | 7
7435 | 43
7436 | 1.0
7437 | 76
7438 | 1
7439 | 77
7440 | 6
7441 | 78
7442 | 2
7443 | 67
7444 | 7
7445 | 79
7446 | 3
7447 | 170
7448 | 0
7449 | 171
7450 | 0
7451 | 290
7452 | 0
7453 | 174
7454 | 0
7455 | 93
7456 | 1
7457 | 44
7458 | 0.0
7459 | 173
7460 | 0
7461 | 291
7462 | 0
7463 | 45
7464 | 0.0
7465 | 0
7466 | VISUALSTYLE
7467 | 5
7468 | 3F
7469 | 102
7470 | {ACAD_REACTORS
7471 | 330
7472 | 2A
7473 | 102
7474 | }
7475 | 330
7476 | 2A
7477 | 100
7478 | AcDbVisualStyle
7479 | 2
7480 | Sketchy
7481 | 70
7482 | 24
7483 | 71
7484 | 1
7485 | 72
7486 | 2
7487 | 73
7488 | 2
7489 | 90
7490 | 0
7491 | 40
7492 | 0.6
7493 | 41
7494 | 30.0
7495 | 62
7496 | 5
7497 | 63
7498 | 7
7499 | 421
7500 | 16777215
7501 | 74
7502 | 2
7503 | 91
7504 | 2
7505 | 64
7506 | 7
7507 | 65
7508 | 7
7509 | 75
7510 | 1
7511 | 175
7512 | 1
7513 | 42
7514 | 40.0
7515 | 92
7516 | 11
7517 | 66
7518 | 7
7519 | 43
7520 | 1.0
7521 | 76
7522 | 1
7523 | 77
7524 | 6
7525 | 78
7526 | 2
7527 | 67
7528 | 7
7529 | 79
7530 | 6
7531 | 170
7532 | 0
7533 | 171
7534 | 0
7535 | 290
7536 | 0
7537 | 174
7538 | 0
7539 | 93
7540 | 1
7541 | 44
7542 | 0.0
7543 | 173
7544 | 0
7545 | 291
7546 | 0
7547 | 45
7548 | 0.0
7549 | 0
7550 | VISUALSTYLE
7551 | 5
7552 | 37
7553 | 102
7554 | {ACAD_REACTORS
7555 | 330
7556 | 2A
7557 | 102
7558 | }
7559 | 330
7560 | 2A
7561 | 100
7562 | AcDbVisualStyle
7563 | 2
7564 | Thicken
7565 | 70
7566 | 13
7567 | 71
7568 | 2
7569 | 72
7570 | 2
7571 | 73
7572 | 0
7573 | 90
7574 | 0
7575 | 40
7576 | 0.6
7577 | 41
7578 | 30.0
7579 | 62
7580 | 5
7581 | 63
7582 | 7
7583 | 421
7584 | 16777215
7585 | 74
7586 | 1
7587 | 91
7588 | 4
7589 | 64
7590 | 7
7591 | 65
7592 | 257
7593 | 75
7594 | 1
7595 | 175
7596 | 1
7597 | 42
7598 | 1.0
7599 | 92
7600 | 12
7601 | 66
7602 | 7
7603 | 43
7604 | 1.0
7605 | 76
7606 | 1
7607 | 77
7608 | 6
7609 | 78
7610 | 2
7611 | 67
7612 | 7
7613 | 79
7614 | 5
7615 | 170
7616 | 0
7617 | 171
7618 | 0
7619 | 290
7620 | 0
7621 | 174
7622 | 0
7623 | 93
7624 | 1
7625 | 44
7626 | 0.0
7627 | 173
7628 | 0
7629 | 291
7630 | 1
7631 | 45
7632 | 0.0
7633 | 0
7634 | VISUALSTYLE
7635 | 5
7636 | 30
7637 | 102
7638 | {ACAD_REACTORS
7639 | 330
7640 | 2A
7641 | 102
7642 | }
7643 | 330
7644 | 2A
7645 | 100
7646 | AcDbVisualStyle
7647 | 2
7648 | Wireframe
7649 | 70
7650 | 5
7651 | 71
7652 | 0
7653 | 72
7654 | 2
7655 | 73
7656 | 0
7657 | 90
7658 | 0
7659 | 40
7660 | 0.6
7661 | 41
7662 | 30.0
7663 | 62
7664 | 5
7665 | 63
7666 | 7
7667 | 421
7668 | 16777215
7669 | 74
7670 | 1
7671 | 91
7672 | 4
7673 | 64
7674 | 7
7675 | 65
7676 | 257
7677 | 75
7678 | 1
7679 | 175
7680 | 1
7681 | 42
7682 | 1.0
7683 | 92
7684 | 0
7685 | 66
7686 | 257
7687 | 43
7688 | 1.0
7689 | 76
7690 | 1
7691 | 77
7692 | 6
7693 | 78
7694 | 2
7695 | 67
7696 | 7
7697 | 79
7698 | 3
7699 | 170
7700 | 0
7701 | 171
7702 | 0
7703 | 290
7704 | 0
7705 | 174
7706 | 0
7707 | 93
7708 | 1
7709 | 44
7710 | 0.0
7711 | 173
7712 | 0
7713 | 291
7714 | 0
7715 | 45
7716 | 0.0
7717 | 0
7718 | VISUALSTYLE
7719 | 5
7720 | 40
7721 | 102
7722 | {ACAD_REACTORS
7723 | 330
7724 | 2A
7725 | 102
7726 | }
7727 | 330
7728 | 2A
7729 | 100
7730 | AcDbVisualStyle
7731 | 2
7732 | X-Ray
7733 | 70
7734 | 25
7735 | 71
7736 | 2
7737 | 72
7738 | 2
7739 | 73
7740 | 1
7741 | 90
7742 | 1
7743 | 40
7744 | 0.5
7745 | 41
7746 | 30.0
7747 | 62
7748 | 5
7749 | 63
7750 | 7
7751 | 421
7752 | 16777215
7753 | 74
7754 | 1
7755 | 91
7756 | 0
7757 | 64
7758 | 7
7759 | 65
7760 | 257
7761 | 75
7762 | 1
7763 | 175
7764 | 1
7765 | 42
7766 | 1.0
7767 | 92
7768 | 8
7769 | 66
7770 | 7
7771 | 43
7772 | 1.0
7773 | 76
7774 | 1
7775 | 77
7776 | 6
7777 | 78
7778 | 2
7779 | 67
7780 | 7
7781 | 79
7782 | 3
7783 | 170
7784 | 0
7785 | 171
7786 | 0
7787 | 290
7788 | 0
7789 | 174
7790 | 0
7791 | 93
7792 | 13
7793 | 44
7794 | 0.0
7795 | 173
7796 | 0
7797 | 291
7798 | 0
7799 | 45
7800 | 0.0
7801 | 0
7802 | DICTIONARYVAR
7803 | 5
7804 | A5
7805 | 102
7806 | {ACAD_REACTORS
7807 | 330
7808 | A4
7809 | 102
7810 | }
7811 | 330
7812 | A4
7813 | 100
7814 | DictionaryVariables
7815 | 280
7816 | 0
7817 | 1
7818 | 1:1
7819 | 0
7820 | DICTIONARYVAR
7821 | 5
7822 | AE
7823 | 102
7824 | {ACAD_REACTORS
7825 | 330
7826 | A4
7827 | 102
7828 | }
7829 | 330
7830 | A4
7831 | 100
7832 | DictionaryVariables
7833 | 280
7834 | 0
7835 | 1
7836 | 3.500000
7837 | 0
7838 | DICTIONARYVAR
7839 | 5
7840 | AF
7841 | 102
7842 | {ACAD_REACTORS
7843 | 330
7844 | A4
7845 | 102
7846 | }
7847 | 330
7848 | A4
7849 | 100
7850 | DictionaryVariables
7851 | 280
7852 | 0
7853 | 1
7854 | acadiso.lin
7855 | 0
7856 | DICTIONARYVAR
7857 | 5
7858 | AB
7859 | 102
7860 | {ACAD_REACTORS
7861 | 330
7862 | A4
7863 | 102
7864 | }
7865 | 330
7866 | A4
7867 | 100
7868 | DictionaryVariables
7869 | 280
7870 | 0
7871 | 1
7872 | Standard
7873 | 0
7874 | DICTIONARYVAR
7875 | 5
7876 | AA
7877 | 102
7878 | {ACAD_REACTORS
7879 | 330
7880 | A4
7881 | 102
7882 | }
7883 | 330
7884 | A4
7885 | 100
7886 | DictionaryVariables
7887 | 280
7888 | 0
7889 | 1
7890 | Standard
7891 | 0
7892 | DICTIONARY
7893 | 5
7894 | A6
7895 | 330
7896 | 6A
7897 | 100
7898 | AcDbDictionary
7899 | 280
7900 | 1
7901 | 281
7902 | 1
7903 | 3
7904 | ACAD_ROUNDTRIP_2008_TABLESTYLE_CELLSTYLEMAP
7905 | 360
7906 | A7
7907 | 0
7908 | CELLSTYLEMAP
7909 | 5
7910 | A7
7911 | 102
7912 | {ACAD_REACTORS
7913 | 330
7914 | A6
7915 | 102
7916 | }
7917 | 330
7918 | A6
7919 | 100
7920 | AcDbCellStyleMap
7921 | 90
7922 | 3
7923 | 300
7924 | CELLSTYLE
7925 | 1
7926 | TABLEFORMAT_BEGIN
7927 | 90
7928 | 5
7929 | 170
7930 | 1
7931 | 91
7932 | 0
7933 | 92
7934 | 32768
7935 | 62
7936 | 257
7937 | 93
7938 | 1
7939 | 300
7940 | CONTENTFORMAT
7941 | 1
7942 | CONTENTFORMAT_BEGIN
7943 | 90
7944 | 0
7945 | 91
7946 | 0
7947 | 92
7948 | 4
7949 | 93
7950 | 0
7951 | 300
7952 |
7953 | 40
7954 | 0.0
7955 | 140
7956 | 1.0
7957 | 94
7958 | 5
7959 | 62
7960 | 0
7961 | 340
7962 | 11
7963 | 144
7964 | 6.0
7965 | 309
7966 | CONTENTFORMAT_END
7967 | 171
7968 | 1
7969 | 301
7970 | MARGIN
7971 | 1
7972 | CELLMARGIN_BEGIN
7973 | 40
7974 | 1.5
7975 | 40
7976 | 1.5
7977 | 40
7978 | 1.5
7979 | 40
7980 | 1.5
7981 | 40
7982 | 1.5
7983 | 40
7984 | 1.5
7985 | 309
7986 | CELLMARGIN_END
7987 | 94
7988 | 6
7989 | 95
7990 | 1
7991 | 302
7992 | GRIDFORMAT
7993 | 1
7994 | GRIDFORMAT_BEGIN
7995 | 90
7996 | 0
7997 | 91
7998 | 1
7999 | 62
8000 | 0
8001 | 92
8002 | -2
8003 | 340
8004 | 14
8005 | 93
8006 | 0
8007 | 40
8008 | 0.045
8009 | 309
8010 | GRIDFORMAT_END
8011 | 95
8012 | 2
8013 | 302
8014 | GRIDFORMAT
8015 | 1
8016 | GRIDFORMAT_BEGIN
8017 | 90
8018 | 0
8019 | 91
8020 | 1
8021 | 62
8022 | 0
8023 | 92
8024 | -2
8025 | 340
8026 | 14
8027 | 93
8028 | 0
8029 | 40
8030 | 0.045
8031 | 309
8032 | GRIDFORMAT_END
8033 | 95
8034 | 4
8035 | 302
8036 | GRIDFORMAT
8037 | 1
8038 | GRIDFORMAT_BEGIN
8039 | 90
8040 | 0
8041 | 91
8042 | 1
8043 | 62
8044 | 0
8045 | 92
8046 | -2
8047 | 340
8048 | 14
8049 | 93
8050 | 0
8051 | 40
8052 | 0.045
8053 | 309
8054 | GRIDFORMAT_END
8055 | 95
8056 | 8
8057 | 302
8058 | GRIDFORMAT
8059 | 1
8060 | GRIDFORMAT_BEGIN
8061 | 90
8062 | 0
8063 | 91
8064 | 1
8065 | 62
8066 | 0
8067 | 92
8068 | -2
8069 | 340
8070 | 14
8071 | 93
8072 | 0
8073 | 40
8074 | 0.045
8075 | 309
8076 | GRIDFORMAT_END
8077 | 95
8078 | 16
8079 | 302
8080 | GRIDFORMAT
8081 | 1
8082 | GRIDFORMAT_BEGIN
8083 | 90
8084 | 0
8085 | 91
8086 | 1
8087 | 62
8088 | 0
8089 | 92
8090 | -2
8091 | 340
8092 | 14
8093 | 93
8094 | 0
8095 | 40
8096 | 0.045
8097 | 309
8098 | GRIDFORMAT_END
8099 | 95
8100 | 32
8101 | 302
8102 | GRIDFORMAT
8103 | 1
8104 | GRIDFORMAT_BEGIN
8105 | 90
8106 | 0
8107 | 91
8108 | 1
8109 | 62
8110 | 0
8111 | 92
8112 | -2
8113 | 340
8114 | 14
8115 | 93
8116 | 0
8117 | 40
8118 | 0.045
8119 | 309
8120 | GRIDFORMAT_END
8121 | 309
8122 | TABLEFORMAT_END
8123 | 1
8124 | CELLSTYLE_BEGIN
8125 | 90
8126 | 1
8127 | 91
8128 | 1
8129 | 300
8130 | _TITLE
8131 | 309
8132 | CELLSTYLE_END
8133 | 300
8134 | CELLSTYLE
8135 | 1
8136 | TABLEFORMAT_BEGIN
8137 | 90
8138 | 5
8139 | 170
8140 | 1
8141 | 91
8142 | 0
8143 | 92
8144 | 0
8145 | 62
8146 | 257
8147 | 93
8148 | 1
8149 | 300
8150 | CONTENTFORMAT
8151 | 1
8152 | CONTENTFORMAT_BEGIN
8153 | 90
8154 | 0
8155 | 91
8156 | 0
8157 | 92
8158 | 4
8159 | 93
8160 | 0
8161 | 300
8162 |
8163 | 40
8164 | 0.0
8165 | 140
8166 | 1.0
8167 | 94
8168 | 5
8169 | 62
8170 | 0
8171 | 340
8172 | 11
8173 | 144
8174 | 4.5
8175 | 309
8176 | CONTENTFORMAT_END
8177 | 171
8178 | 1
8179 | 301
8180 | MARGIN
8181 | 1
8182 | CELLMARGIN_BEGIN
8183 | 40
8184 | 1.5
8185 | 40
8186 | 1.5
8187 | 40
8188 | 1.5
8189 | 40
8190 | 1.5
8191 | 40
8192 | 1.5
8193 | 40
8194 | 1.5
8195 | 309
8196 | CELLMARGIN_END
8197 | 94
8198 | 6
8199 | 95
8200 | 1
8201 | 302
8202 | GRIDFORMAT
8203 | 1
8204 | GRIDFORMAT_BEGIN
8205 | 90
8206 | 0
8207 | 91
8208 | 1
8209 | 62
8210 | 0
8211 | 92
8212 | -2
8213 | 340
8214 | 14
8215 | 93
8216 | 0
8217 | 40
8218 | 0.045
8219 | 309
8220 | GRIDFORMAT_END
8221 | 95
8222 | 2
8223 | 302
8224 | GRIDFORMAT
8225 | 1
8226 | GRIDFORMAT_BEGIN
8227 | 90
8228 | 0
8229 | 91
8230 | 1
8231 | 62
8232 | 0
8233 | 92
8234 | -2
8235 | 340
8236 | 14
8237 | 93
8238 | 0
8239 | 40
8240 | 0.045
8241 | 309
8242 | GRIDFORMAT_END
8243 | 95
8244 | 4
8245 | 302
8246 | GRIDFORMAT
8247 | 1
8248 | GRIDFORMAT_BEGIN
8249 | 90
8250 | 0
8251 | 91
8252 | 1
8253 | 62
8254 | 0
8255 | 92
8256 | -2
8257 | 340
8258 | 14
8259 | 93
8260 | 0
8261 | 40
8262 | 0.045
8263 | 309
8264 | GRIDFORMAT_END
8265 | 95
8266 | 8
8267 | 302
8268 | GRIDFORMAT
8269 | 1
8270 | GRIDFORMAT_BEGIN
8271 | 90
8272 | 0
8273 | 91
8274 | 1
8275 | 62
8276 | 0
8277 | 92
8278 | -2
8279 | 340
8280 | 14
8281 | 93
8282 | 0
8283 | 40
8284 | 0.045
8285 | 309
8286 | GRIDFORMAT_END
8287 | 95
8288 | 16
8289 | 302
8290 | GRIDFORMAT
8291 | 1
8292 | GRIDFORMAT_BEGIN
8293 | 90
8294 | 0
8295 | 91
8296 | 1
8297 | 62
8298 | 0
8299 | 92
8300 | -2
8301 | 340
8302 | 14
8303 | 93
8304 | 0
8305 | 40
8306 | 0.045
8307 | 309
8308 | GRIDFORMAT_END
8309 | 95
8310 | 32
8311 | 302
8312 | GRIDFORMAT
8313 | 1
8314 | GRIDFORMAT_BEGIN
8315 | 90
8316 | 0
8317 | 91
8318 | 1
8319 | 62
8320 | 0
8321 | 92
8322 | -2
8323 | 340
8324 | 14
8325 | 93
8326 | 0
8327 | 40
8328 | 0.045
8329 | 309
8330 | GRIDFORMAT_END
8331 | 309
8332 | TABLEFORMAT_END
8333 | 1
8334 | CELLSTYLE_BEGIN
8335 | 90
8336 | 2
8337 | 91
8338 | 1
8339 | 300
8340 | _HEADER
8341 | 309
8342 | CELLSTYLE_END
8343 | 300
8344 | CELLSTYLE
8345 | 1
8346 | TABLEFORMAT_BEGIN
8347 | 90
8348 | 5
8349 | 170
8350 | 1
8351 | 91
8352 | 0
8353 | 92
8354 | 0
8355 | 62
8356 | 257
8357 | 93
8358 | 1
8359 | 300
8360 | CONTENTFORMAT
8361 | 1
8362 | CONTENTFORMAT_BEGIN
8363 | 90
8364 | 0
8365 | 91
8366 | 0
8367 | 92
8368 | 4
8369 | 93
8370 | 0
8371 | 300
8372 |
8373 | 40
8374 | 0.0
8375 | 140
8376 | 1.0
8377 | 94
8378 | 2
8379 | 62
8380 | 0
8381 | 340
8382 | 11
8383 | 144
8384 | 4.5
8385 | 309
8386 | CONTENTFORMAT_END
8387 | 171
8388 | 1
8389 | 301
8390 | MARGIN
8391 | 1
8392 | CELLMARGIN_BEGIN
8393 | 40
8394 | 1.5
8395 | 40
8396 | 1.5
8397 | 40
8398 | 1.5
8399 | 40
8400 | 1.5
8401 | 40
8402 | 1.5
8403 | 40
8404 | 1.5
8405 | 309
8406 | CELLMARGIN_END
8407 | 94
8408 | 6
8409 | 95
8410 | 1
8411 | 302
8412 | GRIDFORMAT
8413 | 1
8414 | GRIDFORMAT_BEGIN
8415 | 90
8416 | 0
8417 | 91
8418 | 1
8419 | 62
8420 | 0
8421 | 92
8422 | -2
8423 | 340
8424 | 14
8425 | 93
8426 | 0
8427 | 40
8428 | 0.045
8429 | 309
8430 | GRIDFORMAT_END
8431 | 95
8432 | 2
8433 | 302
8434 | GRIDFORMAT
8435 | 1
8436 | GRIDFORMAT_BEGIN
8437 | 90
8438 | 0
8439 | 91
8440 | 1
8441 | 62
8442 | 0
8443 | 92
8444 | -2
8445 | 340
8446 | 14
8447 | 93
8448 | 0
8449 | 40
8450 | 0.045
8451 | 309
8452 | GRIDFORMAT_END
8453 | 95
8454 | 4
8455 | 302
8456 | GRIDFORMAT
8457 | 1
8458 | GRIDFORMAT_BEGIN
8459 | 90
8460 | 0
8461 | 91
8462 | 1
8463 | 62
8464 | 0
8465 | 92
8466 | -2
8467 | 340
8468 | 14
8469 | 93
8470 | 0
8471 | 40
8472 | 0.045
8473 | 309
8474 | GRIDFORMAT_END
8475 | 95
8476 | 8
8477 | 302
8478 | GRIDFORMAT
8479 | 1
8480 | GRIDFORMAT_BEGIN
8481 | 90
8482 | 0
8483 | 91
8484 | 1
8485 | 62
8486 | 0
8487 | 92
8488 | -2
8489 | 340
8490 | 14
8491 | 93
8492 | 0
8493 | 40
8494 | 0.045
8495 | 309
8496 | GRIDFORMAT_END
8497 | 95
8498 | 16
8499 | 302
8500 | GRIDFORMAT
8501 | 1
8502 | GRIDFORMAT_BEGIN
8503 | 90
8504 | 0
8505 | 91
8506 | 1
8507 | 62
8508 | 0
8509 | 92
8510 | -2
8511 | 340
8512 | 14
8513 | 93
8514 | 0
8515 | 40
8516 | 0.045
8517 | 309
8518 | GRIDFORMAT_END
8519 | 95
8520 | 32
8521 | 302
8522 | GRIDFORMAT
8523 | 1
8524 | GRIDFORMAT_BEGIN
8525 | 90
8526 | 0
8527 | 91
8528 | 1
8529 | 62
8530 | 0
8531 | 92
8532 | -2
8533 | 340
8534 | 14
8535 | 93
8536 | 0
8537 | 40
8538 | 0.045
8539 | 309
8540 | GRIDFORMAT_END
8541 | 309
8542 | TABLEFORMAT_END
8543 | 1
8544 | CELLSTYLE_BEGIN
8545 | 90
8546 | 3
8547 | 91
8548 | 2
8549 | 300
8550 | _DATA
8551 | 309
8552 | CELLSTYLE_END
8553 | 0
8554 | ENDSEC
8555 | 0
8556 | EOF
8557 |
--------------------------------------------------------------------------------
/grouped-tiles:
--------------------------------------------------------------------------------
1 | import cadquery as cq
2 | from cadquery import exporters
3 | import random
4 |
5 | ROWS = 8
6 | COLS = 8
7 | CELL_WIDTH = 1
8 | CELL_HEIGHT = 1
9 | GROUPS = 3
10 | TILES_DISTANCE_X = 0.001
11 | TILES_DISTANCE_Y = 0.001
12 |
13 | # To visualize the grid
14 | grid = cq.Workplane("XY")
15 | for i in range(ROWS+1):
16 | new_line = cq.Workplane("XY").moveTo(0, CELL_HEIGHT*i).lineTo(COLS*CELL_WIDTH, i*CELL_HEIGHT)
17 | grid.add(new_line)
18 | for i in range(COLS+1):
19 | new_line = cq.Workplane("XY").moveTo(i*CELL_WIDTH, 0).lineTo(i*CELL_WIDTH, CELL_HEIGHT*ROWS)
20 | grid.add(new_line)
21 | show_object(grid)
22 |
23 |
24 | points = [
25 | (0, 0, -0.25),
26 | (5, 3, -0.25),
27 | (8, 6, -0.25),
28 | (0, 1, -0.25),
29 | (0, 0, -0.25)
30 | ]
31 |
32 | curve = cq.Workplane("XY").spline(points).close()
33 | solidified_curve = curve.extrude(0.5)
34 |
35 | isolating = [cq.Assembly() for _ in range(GROUPS)]
36 | colors = ["black", "white", "blue"]
37 |
38 | for i in range(ROWS):
39 | for j in range(COLS):
40 | random_group = random.randint(0, GROUPS-1)
41 | current_rect = cq.Workplane("XY").rect(CELL_WIDTH, CELL_HEIGHT).extrude(0.5).translate((i*CELL_WIDTH+CELL_WIDTH/2, j*CELL_HEIGHT+CELL_HEIGHT/2, -0.25))
42 | extracted_cell = solidified_curve.intersect(current_rect).translate((TILES_DISTANCE_X*i, TILES_DISTANCE_Y*j, 0))
43 | isolating[random_group].add(extracted_cell, color=cq.Color(colors[random_group]))
44 |
45 |
46 | combined_groups = cq.Assembly()
47 | for i in range(GROUPS):
48 | combined_groups.add(isolating[i])
49 | show_object(combined_groups)
50 | show_object(curve)
51 | #combined_groups.save("tiles_any_shape.glb")
52 |
--------------------------------------------------------------------------------
/partcad.yaml:
--------------------------------------------------------------------------------
1 | # This is a declaration of PartCAD package.
2 | # See https://partcad.org/ and https://github.com/openvmp/partcad for more information.
3 |
4 | name: /pub/examples/scripts/cadquery-contrib
5 | desc: A place to share cadquery scripts, modules, and projects
6 | partcad: ">=0.7.14"
7 |
8 | parts:
9 | examples/3D_Printer_Extruder_Support:
10 | type: cadquery
11 | parameters:
12 | main_plate_size_y:
13 | type: float
14 | desc: The size of the main plate in the y direction
15 | default: 67
16 | main_plate_size_x:
17 | type: float
18 | desc: The size of the main plate in the x direction
19 | default: 50
20 | main_plate_thickness:
21 | type: float
22 | desc: The thickness of the main plate
23 | default: 10
24 | wing_size_x:
25 | type: float
26 | desc: The size of the side wing supporting the bridge in x direction
27 | default: 10
28 | wing_size_y:
29 | type: float
30 | desc: The size of the side wing supporting the bridge in y direction
31 | default: 10
32 | bridge_depth:
33 | type: float
34 | desc: The depth of the bridge
35 | default: 35
36 | support_depth:
37 | type: float
38 | desc: The depth of the bridge support
39 | default: 18
40 | cutout_depth:
41 | type: float
42 | desc: The depth of the hotend cutout
43 | default: 15
44 | cutout_rad:
45 | type: float
46 | desc: The radius of the cutout (cf groove mount sizes of E3D hotends)
47 | default: 8
48 | cutout_offset:
49 | type: float
50 | desc: The delta radius of the second cutout (cf groove mount sizes of E3D hotends)
51 | default: 2
52 | extruder_hole_spacing:
53 | type: float
54 | desc: The spacing of the extruder mounting holes (Wade's geared extruder)
55 | default: 50
56 | m4_predrill:
57 | type: float
58 | desc: The predrill diameter for M4 tapping
59 | default: 3.7
60 | m3_predrill:
61 | type: float
62 | desc: The predrill diameter for M3 tapping
63 | default: 2.5
64 | m3_cbore:
65 | type: float
66 | desc: The counterbore size for M3 socket screw
67 | default: 5
68 | mounting_hole_spacing:
69 | type: float
70 | desc: The spacing of the mounting holes for attaching to x-carriage
71 | default: 28
72 | aux_hole_depth:
73 | type: float
74 | desc: The depth of the auxiliary holes at the sides of the object
75 | default: 6
76 | aux_hole_spacing:
77 | type: float
78 | desc: The spacing of the auxiliary holes within a group
79 | default: 5
80 | aux_hole_N:
81 | type: int
82 | desc: The number of the auxiliary hole per group
83 | default: 2
84 | examples/Braille:
85 | type: cadquery
86 | parameters:
87 | text_lines:
88 | type: array
89 | default: ["⠠ ⠉ ⠁ ⠙ ⠠ ⠟ ⠥ ⠻ ⠽"]
90 | horizontal_interdot: 2.5
91 | vertical_interdot: 2.5
92 | horizontal_intercell: 6.0
93 | vertical_interline: 10.0
94 | dot_height: 0.5
95 | dot_diameter: 1.3
96 | base_thickness: 1.5
97 | examples/Classic_OCC_Bottle:
98 | type: cadquery
99 | parameters:
100 | L:
101 | type: float
102 | desc: The length of the bottle
103 | default: 20
104 | w:
105 | type: float
106 | desc: The width of the bottle
107 | default: 6
108 | t:
109 | type: float
110 | desc: The thickness of the bottle
111 | default: 3
112 | # cylindrical_gear is broken
113 | # examples/cylindrical_gear:
114 | # type: cadquery
115 | # parameters:
116 | # alpha:
117 | # type: float
118 | # desc: The pressure angle of the gear
119 | # default: 20.0
120 | # m:
121 | # type: float
122 | # desc: The module of the gear
123 | # default: 1
124 | # z1:
125 | # type: int
126 | # desc: The number of teeth of the gear
127 | # default: 20
128 | # z2:
129 | # type: int
130 | # desc: The number of teeth of the gear
131 | # default: 12
132 | examples/door:
133 | type: cadquery
134 | cwd: examples
135 | parameters:
136 | H: 400.0
137 | W: 200.0
138 | D: 350.0
139 | SLOT_D: 6.0
140 | PANEL_T: 3.0
141 | HANDLE_D: 20.0
142 | HANDLE_L: 50.0
143 | HANDLE_W: 4.0
144 | # Involute_Gear is broken
145 | # examples/Involute_Gear:
146 | # type: cadquery
147 | examples/Numpy:
148 | type: cadquery
149 | parameters:
150 | side: 10.0
151 | offset: 5.0
152 | examples/Panel_with_Various_Holes_for_Connector_Installation:
153 | type: cadquery
154 | parameters:
155 | width: 400.0
156 | height: 500.0
157 | thickness: 2.0
158 | examples/Parametric_Enclosure:
159 | type: cadquery
160 | showObject: result
161 | parameters:
162 | p_outerWidth:
163 | type: float
164 | desc: Outer width of box enclosure
165 | default: 100.0
166 | p_outerLength:
167 | type: float
168 | desc: Outer length of box enclosure
169 | default: 150.0
170 | p_outerHeight:
171 | type: float
172 | desc: Outer height of box enclosure
173 | default: 50.0
174 | p_thickness:
175 | type: float
176 | desc: Thickness of the box walls
177 | default: 3.0
178 | p_sideRadius:
179 | type: float
180 | desc: Radius for the curves around the sides of the box
181 | default: 10.0
182 | p_topAndBottomRadius:
183 | type: float
184 | desc: Radius for the curves on the top and bottom edges of the box
185 | default: 2.0
186 | p_screwpostInset:
187 | type: float
188 | desc: How far in from the edges the screw posts should be place.
189 | default: 12.0
190 | p_screwpostID:
191 | type: float
192 | desc: Inner Diameter of the screw post holes, should be roughly screw diameter not including threads
193 | default: 4.0
194 | p_screwpostOD:
195 | type: float
196 | desc: Outer Diameter of the screw posts.\nDetermines overall thickness of the posts
197 | default: 10.0
198 | p_boreDiameter:
199 | type: float
200 | desc: Diameter of the counterbore hole, if any
201 | default: 8.0
202 | p_boreDepth:
203 | type: float
204 | desc: Depth of the counterbore hole, if
205 | default: 1.0
206 | p_countersinkDiameter:
207 | type: float
208 | desc: Outer diameter of countersink. Should roughly match the outer diameter of the screw head
209 | default: 0.0
210 | p_countersinkAngle:
211 | type: float
212 | desc: Countersink angle (complete angle between opposite sides, not from center to one side)
213 | default: 90.0
214 | p_flipLid:
215 | type: bool
216 | desc: Whether to place the lid with the top facing down or not.
217 | default: true
218 | p_lipHeight:
219 | type: float
220 | desc: Height of lip on the underside of the lid. Sits inside the box body for a snug fit.
221 | default: 1.0
222 | examples/Reinforce_Junction_UsingFillet:
223 | type: cadquery
224 | examples/Remote_Enclosure:
225 | type: cadquery
226 | parameters:
227 | exploded:
228 | type: bool
229 | desc: When true, moves the base away from the top so we see
230 | default: false
231 | showTop:
232 | type: bool
233 | desc: When true, the top is rendered.
234 | default: true
235 | showCover:
236 | type: bool
237 | desc: When true, the cover is rendered
238 | default: true
239 | width:
240 | type: float
241 | desc: Nominal x dimension of the part
242 | default: 2.2
243 | height:
244 | type: float
245 | desc: Height from bottom top to the top of the top :P
246 | default: 0.5
247 | length:
248 | type: float
249 | desc: Nominal y dimension of the part
250 | default: 1.5
251 | trapezoidFudge:
252 | type: float
253 | desc: ratio of trapezoid bases. set to 1.0 for cube
254 | default: 1.5
255 | xHoleOffset:
256 | type: float
257 | desc: Holes are distributed symmetrically about each axis
258 | default: 0.500
259 | yHoleOffset:
260 | type: float
261 | default: 0.500
262 | zFilletRadius:
263 | type: float
264 | desc: Fillet radius of corners perp. to Z axis.
265 | default: 0.50
266 | yFilletRadius:
267 | type: float
268 | desc: Fillet radius of the top edge of the case
269 | default: 0.250
270 | lipHeight:
271 | type: float
272 | desc: The height of the lip on the inside of the cover
273 | default: 0.1
274 | wallThickness:
275 | type: float
276 | desc: Wall thickness for the case
277 | default: 0.06
278 | coverThickness:
279 | type: float
280 | desc: Thickness of the cover plate
281 | default: 0.2
282 | holeRadius:
283 | type: float
284 | desc: Button hole radius
285 | default: 0.30
286 | counterSyncAngle:
287 | type: int
288 | desc: Countersink angle.
289 | default: 100
290 | examples/Resin_Mold:
291 | type: cadquery
292 | parameters:
293 | mount_holes: True
294 | mw:
295 | type: float
296 | desc: mold width
297 | default: 40
298 | mh:
299 | type: float
300 | desc: mold height
301 | default: 13
302 | ml:
303 | type: float
304 | desc: mold length
305 | default: 120
306 | wd:
307 | type: float
308 | desc: wire diameter
309 | default: 6
310 | rt:
311 | type: float
312 | desc: resin thickness
313 | default: 7
314 | rl:
315 | type: float
316 | desc: resin length
317 | default: 50
318 | rwpl:
319 | type: float
320 | desc: resin to wire pass length
321 | default: 10
322 | pf:
323 | type: float
324 | desc: pocket fillet
325 | default: 18
326 | mhd:
327 | type: float
328 | desc: hole diameter
329 | default: 7
330 | mht:
331 | type: float
332 | desc: hole distance from edge
333 | default: 3
334 | fhd:
335 | type: float
336 | desc: filling hole diameter
337 | default: 6
338 | examples/Shelled_Cube_Inside_Chamfer_With_Logical_Selector_Operators:
339 | type: cadquery
340 | examples/Tetrakaidecahedron:
341 | type: cadquery
342 | parameters:
343 | L: 20.0
344 | W: 20.0
345 | H: 20.0
346 | D: 10.0
347 | WT: 1.0
348 | FRO: 3.0
349 | FRI: 2.0
350 | NPS: 6
351 | examples/Thread:
352 | type: cadquery
353 | parameters:
354 | radius: 4.0
355 | pitch: 2.0
356 | height: 4.0
357 | radius_eps: 0.5
358 | eps: 0.001
359 | examples/tray:
360 | type: cadquery
361 | parameters:
362 | Ws: 1200.0
363 | Hs: 600.0
364 | W: 770.0
365 | H: 460.0
366 | d: 5.0
367 | N: 7
368 | h: 50.0
369 |
--------------------------------------------------------------------------------
/tutorials/Ex000 Start Here.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "\n",
8 | "\n",
9 | "[Next](Ex001%20Simple%20Block.ipynb)\n",
10 | "\n",
11 | "# CadQuery Scripting Tutorials\n",
12 | "\n",
13 | "## Introduction\n",
14 | "\n",
15 | "Welcome to the CadQuery tutorials. These tutorials are based on the core CadQuery [examples](https://github.com/CadQuery/cadquery/tree/master/examples), and are generally structured to get more complex as you progress from Ex001 through Ex024. Ex100 is included as a good example of what can be done with CadQuery once you have mastered some of the main concepts.\n",
16 | "\n",
17 | "Each of the tutorials was created using the [jupyter-cadquery](https://github.com/bernhard-42/jupyter-cadquery) extension for JupyterLab. This allows the tutorials to be live, so that you can change things and experiment as you go through. In order for the code to execute, you will need to press `Shift+Enter` with each of the code cells selected to get them to execute. The code cells are laid out in such a way that they need to be executed in order. Big thanks to community member @bernhard-42 for this great extension.\n",
18 | "\n",
19 | "As you work through these tutorials, keep in mind that at its core, a CadQuery script is just Python. This means that you have access to the vast collection of science and engineering libraries that have been created by the Python community. Leveraging these libraries can add a great deal of depth to what can be accomplished with CadQuery.\n",
20 | "\n",
21 | "## Getting Help\n",
22 | "\n",
23 | "As you are going through the tutorials, you may find that you need help or that something isn't clear. The CadQuery community has a [Google Group](https://groups.google.com/forum/#!forum/cadquery) for general discussions that you may want to make use of. The Google Group is a good way to get help as your model scripts become more advanced as well.\n",
24 | "\n",
25 | "## Contents\n",
26 | "\n",
27 | "* [Ex001 Simple Block](Ex001%20Simple%20Block.ipynb) - First steps with CadQuery, learning to create a workplane and a box primitive.\n",
28 | "\n",
29 | "Use the navigation icons at the bottom of each notebook to move through the tutorials.\n",
30 | "\n",
31 | "[Next](Ex001%20Simple%20Block.ipynb)"
32 | ]
33 | }
34 | ],
35 | "metadata": {
36 | "kernelspec": {
37 | "display_name": "Python 3",
38 | "language": "python",
39 | "name": "python3"
40 | },
41 | "language_info": {
42 | "codemirror_mode": {
43 | "name": "ipython",
44 | "version": 3
45 | },
46 | "file_extension": ".py",
47 | "mimetype": "text/x-python",
48 | "name": "python",
49 | "nbconvert_exporter": "python",
50 | "pygments_lexer": "ipython3",
51 | "version": "3.6.8"
52 | }
53 | },
54 | "nbformat": 4,
55 | "nbformat_minor": 4
56 | }
57 |
--------------------------------------------------------------------------------
/tutorials/Ex001 Simple Block.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "[Prev](Ex000%20Start%20Here.ipynb) | [Top](Ex000%20Start%20Here.ipynb) | Next"
8 | ]
9 | },
10 | {
11 | "cell_type": "markdown",
12 | "metadata": {},
13 | "source": [
14 | "# Ex001 Simple Block"
15 | ]
16 | },
17 | {
18 | "cell_type": "markdown",
19 | "metadata": {},
20 | "source": [
21 | "***Note:*** If live coding and experimentation are desired, it is required to hit _Shift+Enter_ on each of the code cells below to execute them."
22 | ]
23 | },
24 | {
25 | "cell_type": "markdown",
26 | "metadata": {},
27 | "source": [
28 | "## 1. Import the CadQuery library"
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": null,
34 | "metadata": {},
35 | "outputs": [],
36 | "source": [
37 | "import cadquery as cq"
38 | ]
39 | },
40 | {
41 | "cell_type": "markdown",
42 | "metadata": {},
43 | "source": [
44 | "`cadquery` is the core library that is used while scripting models, and that other libraries in the community are built upon. It is not required that you import it with the \"cq\" alias, but it helps to shorten lines of code. Use of the alias is personal preference, but it is seen quite a bit in scripts created by the community."
45 | ]
46 | },
47 | {
48 | "cell_type": "markdown",
49 | "metadata": {},
50 | "source": [
51 | "## 2. Import the jupyter-cadquery Display Method"
52 | ]
53 | },
54 | {
55 | "cell_type": "code",
56 | "execution_count": null,
57 | "metadata": {},
58 | "outputs": [],
59 | "source": [
60 | "from jupyter_cadquery.cadquery import show as show_object"
61 | ]
62 | },
63 | {
64 | "cell_type": "markdown",
65 | "metadata": {},
66 | "source": [
67 | "The following import is required because these tutorials use the [jupyter-cadquery](https://github.com/bernhard-42/jupyter-cadquery) extension for JupyterLab. When using [CQ-editor](https://github.com/CadQuery/CQ-editor) or running a CadQuery script from the command line, this import will not be needed. If you continue to use jupyter-cadquery, have a look at the [`show` method](https://github.com/bernhard-42/jupyter-cadquery/blob/master/jupyter_cadquery/cadquery/cad_objects.py#L174), which allows you to customize various aspects of how the model is displayed."
68 | ]
69 | },
70 | {
71 | "cell_type": "markdown",
72 | "metadata": {},
73 | "source": [
74 | "## 3. Set Up Model Parameters"
75 | ]
76 | },
77 | {
78 | "cell_type": "code",
79 | "execution_count": null,
80 | "metadata": {},
81 | "outputs": [],
82 | "source": [
83 | "length = 80.0 # Length of the block\n",
84 | "height = 60.0 # Height of the block\n",
85 | "thickness = 10.0 # Thickness of the block"
86 | ]
87 | },
88 | {
89 | "cell_type": "markdown",
90 | "metadata": {},
91 | "source": [
92 | "It is a best practice to avoid hardcoding model parameters that can change. Variables can be set for the parameters so that they can be used throughout your script and still changed in one place easily. Units can be added to parameters using external libraries such as [pint](https://pint.readthedocs.io/en/latest/)."
93 | ]
94 | },
95 | {
96 | "cell_type": "markdown",
97 | "metadata": {},
98 | "source": [
99 | "## 4. Create a Simple Box Model"
100 | ]
101 | },
102 | {
103 | "cell_type": "code",
104 | "execution_count": null,
105 | "metadata": {},
106 | "outputs": [],
107 | "source": [
108 | "result = cq.Workplane(\"XY\").box(length, height, thickness)"
109 | ]
110 | },
111 | {
112 | "cell_type": "markdown",
113 | "metadata": {},
114 | "source": [
115 | "In this line of code, `cq.Workplane(\"XY\")` uses the X and Y axes to define a workplane, meaning that the positive Z direction is \"up\", and the negative Z direction is \"down\". If you hold your hand open with the palm facing up, your thumb will point in the positive X direction, your fingers in the positive Y direction, and up from your palm will be the positive Z direction. Other [named views](https://cadquery.readthedocs.io/en/latest/classreference.html#cadquery.Workplane) can be passed to `Workplane` as well, such as \"front\" and \"XZ\". A workplane is like a virtual surface on which you can place geometry that you use while building your model. In CadQuery, creating and manipulating workplanes is a task that you will do quite a lot, and will be covered in more depth in later tutorials."
116 | ]
117 | },
118 | {
119 | "cell_type": "markdown",
120 | "metadata": {},
121 | "source": [
122 | "Once the workplane has been created, `box(length, height, thickness)` is called to create a CQ box primitive on the workplane. Notice that the `box` method call uses the parameter variables that were created above, instead of hardcoded values. The box will be centered around the origin by default, but this behavior can be overridden by passing the `centered` parameter. Additional information about the box method can be found [here](https://cadquery.readthedocs.io/en/latest/classreference.html#cadquery.Workplane.box). CadQuery also has other primitives, including [sphere](https://cadquery.readthedocs.io/en/latest/classreference.html#cadquery.Workplane.sphere) and [wedge](https://cadquery.readthedocs.io/en/latest/classreference.html#cadquery.Workplane.wedge) which are covered in the documentation."
123 | ]
124 | },
125 | {
126 | "cell_type": "markdown",
127 | "metadata": {},
128 | "source": [
129 | "One other thing to note about this line of code is that the box method is tacked on directly after the `Workplane` call. This chaining is enabled by the fact that most high level CadQuery methods return CQ objects. This leads to very compact code, although chaining too many calls together can make your code harder to read. Oftentimes you will want to break chains down into logical operations that build on one another. Some CadQuery methods will alter the CQ object in place rather than returning a new object, so it is best to consult the documentation for a method to ensure that you are using it properly."
130 | ]
131 | },
132 | {
133 | "cell_type": "markdown",
134 | "metadata": {},
135 | "source": [
136 | "## 5. Display the Box Model"
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": null,
142 | "metadata": {},
143 | "outputs": [],
144 | "source": [
145 | "show_object(result)"
146 | ]
147 | },
148 | {
149 | "cell_type": "markdown",
150 | "metadata": {},
151 | "source": [
152 | "`show_object` will handle the task of displaying the model differently based on which exection environment you are using (Jupyter-CadQuery, CQ-editor, command line, etc). If you are planning to run your script from the command line, it may be more appropriate to instead use one of the export methods to save your model in a format that you can open in an external application. More information on exporting CQ objects can be found in [here](https://cadquery.readthedocs.io/en/latest/apireference.html#file-management-and-export)."
153 | ]
154 | },
155 | {
156 | "cell_type": "markdown",
157 | "metadata": {},
158 | "source": [
159 | "## 6. Complete Script"
160 | ]
161 | },
162 | {
163 | "cell_type": "code",
164 | "execution_count": null,
165 | "metadata": {},
166 | "outputs": [],
167 | "source": [
168 | "import cadquery as cq\n",
169 | "from jupyter_cadquery.cadquery import show as show_object\n",
170 | "\n",
171 | "# These can be modified rather than hardcoding values for each dimension.\n",
172 | "length = 80.0 # Length of the block\n",
173 | "height = 60.0 # Height of the block\n",
174 | "thickness = 10.0 # Thickness of the block\n",
175 | "\n",
176 | "# Create a 3D block based on the dimension variables above.\n",
177 | "# 1. Establishes a workplane that an object can be built on.\n",
178 | "# 1a. Uses the X and Y origins to define the workplane, meaning that the\n",
179 | "# positive Z direction is \"up\", and the negative Z direction is \"down\".\n",
180 | "result = cq.Workplane(\"XY\").box(length, height, thickness)\n",
181 | "\n",
182 | "# Display the model\n",
183 | "show_object(result)"
184 | ]
185 | },
186 | {
187 | "cell_type": "markdown",
188 | "metadata": {},
189 | "source": [
190 | "## 7. Next Steps"
191 | ]
192 | },
193 | {
194 | "cell_type": "markdown",
195 | "metadata": {},
196 | "source": [
197 | "You can now move onto the [next section](). Complete documentation for a deeper exploration of these topics is available [here](https://cadquery.readthedocs.io/en/latest/index.html)."
198 | ]
199 | },
200 | {
201 | "cell_type": "markdown",
202 | "metadata": {},
203 | "source": [
204 | "[Top](Ex000%20Start%20Here.ipynb) | Next"
205 | ]
206 | }
207 | ],
208 | "metadata": {
209 | "kernelspec": {
210 | "display_name": "Python 3",
211 | "language": "python",
212 | "name": "python3"
213 | },
214 | "language_info": {
215 | "codemirror_mode": {
216 | "name": "ipython",
217 | "version": 3
218 | },
219 | "file_extension": ".py",
220 | "mimetype": "text/x-python",
221 | "name": "python",
222 | "nbconvert_exporter": "python",
223 | "pygments_lexer": "ipython3",
224 | "version": "3.6.8"
225 | }
226 | },
227 | "nbformat": 4,
228 | "nbformat_minor": 4
229 | }
230 |
--------------------------------------------------------------------------------
/tutorials/README.md:
--------------------------------------------------------------------------------
1 | # Tutorials
2 |
3 | These tutorials can be run via MyBinder.org without installing anything on your local computer.
4 | There are just a few steps needed to get this working.
5 |
6 | * Click [this link](https://mybinder.org/v2/gh/bernhard-42/jupyter-cadquery/master?urlpath=lab&filepath=examples%2Fcadquery.ipynb) to open a Jupyter Lab instance with the jupyter-cadquery extension installed.
7 | * Drill down into the `examples` directory and open the `install-cadquery-contrib.ipynb` workbook.
8 | * Wait until the workbook loads. This could take some time if the workbook needs to be built from scratch.
9 | * Execute the code cell containing `! git clone https://github.com/jmwright/cadquery-contrib.git` by clicking on it and pressing the Shift+Enter keys.
10 | * Once you see "Unpacking objects...done" in the output, you should see a `cadquery-contrib` directory in the left sidebar.
11 | * Drill down into the `cadquery-contrib/tutorials` directory and click on `Ex000 Start Here.ipynb`.
12 | * Enjoy
13 |
--------------------------------------------------------------------------------