1 # SPDX-FileCopyrightText: 2016-2022 Blender Foundation
3 # SPDX-License-Identifier: GPL-2.0-or-later
5 # ----------------------------------------------------------
6 # Automatic generation of kitchen cabinet
7 # Author: Antonio Vazquez (antonioya)
9 # ----------------------------------------------------------
11 from math
import pi
, fabs
13 from sys
import exc_info
14 from datetime
import datetime
16 from bpy
.types
import Operator
, PropertyGroup
17 from bpy
.props
import StringProperty
, EnumProperty
, FloatProperty
, IntProperty
, BoolProperty
, CollectionProperty
18 from bpy_extras
.io_utils
import ExportHelper
19 from .achm_tools
import *
21 # ----------------------------------------------------------
22 # Define rotation types
23 # ----------------------------------------------------------
24 RotationType_Default
= 9
25 RotationType_R90CW
= 1
26 RotationType_R90CCW
= 2
30 # ----------------------------------------------------------
32 # ----------------------------------------------------------
33 class ARCHIMESH_OT_ExportInventory(Operator
, ExportHelper
):
34 bl_idname
= "io_export.kitchen_inventory"
35 bl_description
= 'Export kitchen inventory (.txt)'
39 # From ExportHelper. Filter filenames.
41 filter_glob
: StringProperty(
46 filepath
: StringProperty(
48 description
="File path used for exporting room data file",
49 maxlen
=1024, default
="",
52 # ----------------------------------------------------------
54 # ----------------------------------------------------------
55 # noinspection PyUnusedLocal
56 def execute(self
, context
):
57 # noinspection PyBroadException
59 # -------------------------------
60 # extract path and filename
61 # -------------------------------
62 (filepath
, filename
) = os
.path
.split(self
.properties
.filepath
)
63 print('Exporting %s' % filename
)
64 # -------------------------------
66 # -------------------------------
67 realpath
= os
.path
.realpath(os
.path
.expanduser(self
.properties
.filepath
))
68 fout
= open(realpath
, 'w')
70 st
= datetime
.fromtimestamp(time()).strftime('%Y-%m-%d %H:%M:%S')
71 fout
.write("# Archimesh kitchen inventory\n")
72 fout
.write("# " + st
+ "\n")
73 mylist
= getinventory()
78 self
.report({'INFO'}, realpath
+ "successfully exported")
81 self
.report({'ERROR'}, "Unable to export inventory " + e
)
86 # ----------------------------------------------------------
87 # Generate inventory list
88 # ----------------------------------------------------------
90 # Get List of boxes in the scene
92 for obj
in bpy
.context
.scene
.objects
:
93 # noinspection PyBroadException
95 if obj
["archimesh.sku"] is not None:
96 unitobj
.extend([obj
["archimesh.sku"]])
99 # ----------------------------------------
100 # Get number of unit structures (boxes)
101 # ----------------------------------------
105 key
= u
[:1] + u
[8:28]
112 # ----------------------------------------
113 # Get number of doors and drawer fronts
114 # ----------------------------------------
121 key
= u
[1:2] + "%06.3f" % w
+ u
[22:28]
123 # calculate separation
126 dist
= sz
- (gap
* int(u
[2:4]))
127 space
= dist
/ int(u
[2:4])
128 key
= u
[1:2] + u
[8:15] + "%06.3f" % space
140 # ----------------------------------------
141 # Get number of Shelves
142 # ----------------------------------------
151 key
= "%0.2f x %0.2f x %0.3f" % (w
- (th
* 2), float(u
[15:21]) - th
, th
) # subtract board thickness
153 if key
not in shelves
:
154 shelves
.extend([key
])
155 shelvestot
.extend([n
])
157 x
= shelves
.index(key
)
160 # ----------------------------------------
161 # Get Countertop size
162 # "T%06.3fx%06.3fx%06.3f-%06.3f"
163 # ----------------------------------------
166 for obj
in bpy
.context
.scene
.objects
:
167 # noinspection PyBroadException
169 if obj
["archimesh.top_sku"] is not None:
170 u
= obj
["archimesh.top_sku"]
176 # ----------------------------------------
178 # ----------------------------------------
181 for obj
in bpy
.context
.scene
.objects
:
182 # noinspection PyBroadException
184 if obj
["archimesh.base_sku"] is not None:
185 u
= obj
["archimesh.base_sku"]
187 btxt
= "%0.3f x %0.3f" % (float(u
[8:14]), float(u
[15:21]))
191 # ----------------------------------------
192 # Prepare output data
193 # ----------------------------------------
195 output
.extend(["Units\tDescription\tDimensions"])
196 for i
in range(0, len(boxes
)):
197 if boxes
[i
][:1] == "F":
202 txt
= "%0.2f x %0.2f x %0.2f" % (float(boxes
[i
][1:7]), float(boxes
[i
][8:14]), float(boxes
[i
][15:21]))
203 output
.extend([str(boxestot
[i
]) + "\t" + typ
+ txt
])
205 for i
in range(0, len(door
)):
206 if door
[i
][:1] == "D" or door
[i
][:1] == "L":
208 elif door
[i
][:1] == "G":
210 elif door
[i
][:1] == "W":
211 typ
= "Drawer front\t"
215 txt
= "%0.3f x %0.3f" % (float(door
[i
][1:7]), float(door
[i
][8:14]))
216 output
.extend([str(doortot
[i
]) + "\t" + typ
+ txt
])
218 for i
in range(0, len(shelves
)):
219 output
.extend([str(shelvestot
[i
]) + "\tShelf\t" + shelves
[i
]])
221 output
.extend([str(handles
) + "\tHandle"])
223 output
.extend([str(round(t
, 2)) + "\tCountertop (linear length)"])
225 output
.extend([str(round(z
, 2)) + "\tCountertop wall piece(linear length)"])
227 output
.extend([str(round(b
, 2)) + "\tBaseboard (linear length) " + btxt
])
232 # ------------------------------------------------------------------
233 # Define property group class for cabinet properties
234 # This is managed as an array of objects
235 # ------------------------------------------------------------------
236 class CabinetProperties(PropertyGroup
):
239 name
='width', min=0.001, max=10, default
=0.60, precision
=3,
240 description
='Cabinet width',
243 name
='', min=-10, max=10, default
=0, precision
=3,
244 description
='Modify depth size',
247 name
='', min=-10, max=10, default
=0, precision
=3,
248 description
='Modify height size',
251 # Cabinet position shift
253 name
='', min=-10, max=10, default
=0, precision
=3,
254 description
='Position x shift',
257 name
='', min=-10, max=10, default
=0, precision
=3,
258 description
='Position y shift',
261 name
='', min=-10, max=10, default
=0, precision
=3,
262 description
='Position z shift',
268 ('1', "Single R", ""),
269 ('2', "Single L", ""),
270 ('3', "Single T", ""),
271 ('4', "Glass R", ""),
272 ('5', "Glass L", ""),
273 ('6', "Glass T", ""),
274 ('7', "Drawers", ""),
276 ('11', "Double Glass", ""),
277 ('10', "Corner R", ""),
278 ('9', "Corner L", ""),
281 description
="Type of front door or drawers",
286 name
='Shelves', min=0, max=10, default
=1,
287 description
='Number total of shelves',
291 name
='Num', min=1, max=10, default
=3,
292 description
='Number total of drawers',
296 name
='', min=0.001, max=1, default
=0.1, precision
=3,
297 description
='Glass ratio',
302 description
="Create a handle", default
=True,
306 name
="Left Baseboard",
307 description
="Create a left baseboard", default
=False,
311 name
="Right Baseboard",
312 description
="Create a left baseboard", default
=False,
314 # Fill countertop spaces
316 name
="Countertop fill",
317 description
="Fill empty spaces with countertop", default
=True,
319 # Add countertop edge
321 name
="Countertop edge",
322 description
="Add edge to countertop", default
=True,
325 rotate
: EnumProperty(
327 ('9', "Default", ""),
333 description
="Rotate cabinet relative to previous one",
337 bpy
.utils
.register_class(CabinetProperties
)
340 # ------------------------------------------------------------------
343 # ------------------------------------------------------------------
344 class ARCHIMESH_OT_Kitchen(Operator
):
345 bl_idname
= "mesh.archimesh_kitchen"
346 bl_label
= "Cabinets"
347 bl_description
= "Cabinet Generator"
349 bl_options
= {'REGISTER', 'UNDO'}
352 type_cabinet
: EnumProperty(
353 items
=(('1', "Floor", ""),
356 description
="Type of cabinets",
358 oldtype
: EnumProperty(
359 items
=(('1', "Floor", ""),
362 description
="Type of cabinets",
365 thickness
: FloatProperty(
366 name
='Thickness', min=0.001, max=5, default
=0.018, precision
=3,
367 description
='Board thickness',
369 depth
: FloatProperty(
370 name
='Depth', min=0.001, max=50, default
=0.59, precision
=3,
371 description
='Default cabinet depth',
373 height
: FloatProperty(
374 name
='Height', min=0.001, max=50, default
=0.70, precision
=3,
375 description
='Default cabinet height',
377 handle
: EnumProperty(
379 ('1', "Model 1", ""),
380 ('2', "Model 2", ""),
381 ('3', "Model 3", ""),
382 ('4', "Model 4", ""),
383 ('5', "Model 5", ""),
384 ('6', "Model 6", ""),
385 ('7', "Model 7", ""),
386 ('8', "Model 8", ""),
390 description
="Type of handle",
392 handle_x
: FloatProperty(
393 name
='', min=0.001, max=10,
394 default
=0.05, precision
=3,
395 description
='Displacement in X relative position (limited to door size)',
397 handle_z
: FloatProperty(
398 name
='', min=0.001, max=10,
399 default
=0.05, precision
=3,
400 description
='Displacement in Z relative position (limited to door size)',
403 baseboard
: BoolProperty(
405 description
="Create a baseboard automatically",
408 baseheight
: FloatProperty(
409 name
='height', min=0.001, max=10,
410 default
=0.16, precision
=3,
411 description
='Baseboard height',
413 basefactor
: FloatProperty(
414 name
='sink', min=0, max=1,
415 default
=0.90, precision
=3,
416 description
='Baseboard sink',
419 countertop
: BoolProperty(
421 description
="Create a countertop automatically (only default cabinet height)",
424 counterheight
: FloatProperty(
425 name
='height', min=0.001, max=10,
426 default
=0.02, precision
=3,
427 description
='Countertop height',
429 counterextend
: FloatProperty(
430 name
='extend', min=0.001, max=10,
431 default
=0.03, precision
=3,
432 description
='Countertop extent',
436 name
="Floor origin in Z=0",
437 description
="Use Z=0 axis as vertical origin floor position",
440 moveZ
: FloatProperty(
441 name
='Z position', min=0.001, max=10,
442 default
=1.5, precision
=3,
443 description
='Wall cabinet Z position from floor',
446 cabinet_num
: IntProperty(
447 name
='Number of Cabinets', min=1, max=30,
449 description
='Number total of cabinets in the Kitchen',
451 cabinets
: CollectionProperty(type=CabinetProperties
)
454 crt_mat
: BoolProperty(
455 name
="Create default Cycles materials",
456 description
="Create default materials for Cycles render",
460 # -----------------------------------------------------
461 # Draw (create UI interface)
462 # -----------------------------------------------------
463 # noinspection PyUnusedLocal
464 def draw(self
, context
):
466 space
= bpy
.context
.space_data
467 if not space
.local_view
:
468 # Imperial units warning
469 if bpy
.context
.scene
.unit_settings
.system
== "IMPERIAL":
471 row
.label(text
="Warning: Imperial units not supported", icon
='COLOR_RED')
475 row
.prop(self
, 'type_cabinet')
477 row
.prop(self
, 'thickness')
479 row
.prop(self
, 'depth')
480 row
.prop(self
, 'height')
482 row
.prop(self
, 'handle')
483 if self
.handle
!= "9":
484 row
.prop(self
, 'handle_x')
485 row
.prop(self
, 'handle_z')
487 if self
.type_cabinet
== "1":
489 row
.prop(self
, "countertop")
491 row
.prop(self
, "counterheight")
492 row
.prop(self
, "counterextend")
494 row
.prop(self
, 'baseboard')
496 row
.prop(self
, 'baseheight')
497 row
.prop(self
, 'basefactor', slider
=True)
500 row
.prop(self
, 'fitZ')
501 if self
.type_cabinet
== "2":
502 row
.prop(self
, 'moveZ')
506 row
.prop(self
, 'cabinet_num')
507 # Add menu for cabinets
508 if self
.cabinet_num
> 0:
509 for idx
in range(0, self
.cabinet_num
):
511 add_cabinet(self
, box
, idx
+ 1, self
.cabinets
[idx
])
514 if not context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
516 box
.prop(self
, 'crt_mat')
519 row
.label(text
="Warning: Operator does not work in local view mode", icon
='ERROR')
521 # -----------------------------------------------------
523 # -----------------------------------------------------
524 # noinspection PyUnusedLocal
525 def execute(self
, context
):
526 if bpy
.context
.mode
== "OBJECT":
528 if self
.oldtype
!= self
.type_cabinet
:
529 if self
.type_cabinet
== "1": # Floor
533 if self
.type_cabinet
== "2": # Wall
536 self
.oldtype
= self
.type_cabinet
538 # Create all elements
539 for i
in range(len(self
.cabinets
) - 1, self
.cabinet_num
):
543 create_kitchen_mesh(self
)
546 self
.report({'WARNING'}, "Archimesh: Option only valid in Object mode")
550 # -----------------------------------------------------
551 # Add cabinet parameters
552 # -----------------------------------------------------
553 def add_cabinet(self
, box
, num
, cabinet
):
554 doortype
= cabinet
.dType
556 row
.label(text
="Cabinet " + str(num
))
557 row
.prop(cabinet
, 'sX')
560 row
.prop(cabinet
, 'wY')
561 row
.prop(cabinet
, 'wZ')
562 row
.prop(cabinet
, 'rotate')
565 row
.prop(cabinet
, 'pX')
566 row
.prop(cabinet
, 'pY')
567 row
.prop(cabinet
, 'pZ')
570 row
.prop(cabinet
, 'dType')
571 if doortype
== "7": # Drawers
572 row
.prop(cabinet
, 'dNum') # drawers number
574 row
.prop(cabinet
, 'sNum') # shelves number
576 if doortype
== "4" or doortype
== "5" or doortype
== "6" or doortype
== "11":
577 row
.prop(cabinet
, 'gF', slider
=True) # shelves number
580 if self
.handle
!= "9":
581 row
.prop(cabinet
, 'hand')
582 if self
.baseboard
and self
.type_cabinet
== "1":
583 row
.prop(cabinet
, 'bL')
584 row
.prop(cabinet
, 'bR')
586 if self
.countertop
and self
.type_cabinet
== "1":
588 row
.prop(cabinet
, 'tC')
589 row
.prop(cabinet
, 'tE')
592 # ------------------------------------------------------------------------------
594 # All custom values are passed using self container (self.myvariable)
595 # ------------------------------------------------------------------------------
596 def create_kitchen_mesh(self
):
598 for o
in bpy
.data
.objects
:
599 if o
.select_get() is True:
601 bpy
.ops
.object.select_all(action
='DESELECT')
603 generate_cabinets(self
)
608 # ------------------------------------------------------------------------------
610 # All custom values are passed using self container (self.myvariable)
611 # ------------------------------------------------------------------------------
612 def generate_cabinets(self
):
616 location
= bpy
.context
.scene
.cursor
.location
617 myloc
= copy(location
) # copy location to keep 3D cursor position
621 # Move to wall position
622 if self
.type_cabinet
== "2": # wall
623 myloc
[2] = myloc
[2] + self
.moveZ
625 if self
.type_cabinet
== "1" and self
.baseboard
: # floor
626 myloc
[2] = myloc
[2] + self
.baseheight
# add baseboard position for bottom
631 lastrot
= 0 # last rotation
632 # ------------------------------------------------------------------------------
635 # By default all cabinets are created in X axis and later are rotated if needed
636 # the default rotation means keep last rotation, not 0, so if the previous
637 # cabinet is 90CW, the next one will be the same. To back to 0, you must select
639 # ------------------------------------------------------------------------------
640 for i
in range(0, self
.cabinet_num
):
641 mydata
= create_box(self
.type_cabinet
, "Cabinet" + str(i
+ 1),
643 self
.cabinets
[i
].sX
, self
.depth
+ self
.cabinets
[i
].wY
, self
.height
+ self
.cabinets
[i
].wZ
,
644 self
.cabinets
[i
].pX
+ lastx
,
645 self
.cabinets
[i
].pY
+ lasty
,
646 myloc
[2] + self
.cabinets
[i
].pZ
,
647 self
.cabinets
[i
].dType
, self
.cabinets
[i
].dNum
, self
.cabinets
[i
].sNum
, self
.cabinets
[i
].gF
,
649 self
.cabinets
[i
].hand
, self
.handle
, self
.handle_x
, self
.handle_z
, self
.depth
)
651 # LastX is the sum of initial position + width of the cabinet.
654 sku
= createunitsku(self
, self
.cabinets
[i
])
655 mydata
[0]["archimesh.sku"] = sku
658 myrotationtype
= int(self
.cabinets
[i
].rotate
)
660 # ---------------------------------------------------------
661 # Calculate new rotation angle
663 # ---------------------------------------------------------
668 if myrotationtype
== RotationType_Default
:
669 myrot
= myrot
# do no change rotation
673 if myrotationtype
== RotationType_R90CW
:
678 if myrotationtype
== RotationType_R90CCW
:
683 if myrotationtype
== RotationType_R180
:
686 # Save the rotation for next cabinet
688 angle
= myrot
- ((2 * pi
) * (myrot
// (2 * pi
))) # clamp one revolution
690 # -------------------------------------------
691 # Countertop (only default height cabinet)
692 # 9-Default, 1-90CW, 2-90CCW, 3-180
693 # -------------------------------------------
694 if self
.countertop
and self
.type_cabinet
== "1" and self
.cabinets
[i
].wZ
== 0:
695 w
= self
.cabinets
[i
].sX
696 # fill (depend on orientation)
697 if self
.cabinets
[i
].tC
:
699 if angle
== 0 or angle
== pi
:
700 w
+= fabs(self
.cabinets
[i
].pX
)
702 if angle
== (3 * pi
) / 2 or angle
== pi
/ 2:
703 w
+= fabs(self
.cabinets
[i
].pY
)
705 mycountertop
= create_countertop("Countertop" + str(i
+ 1),
707 self
.depth
+ self
.cabinets
[i
].wY
,
708 self
.counterheight
, self
.counterextend
,
709 self
.crt_mat
, self
.cabinets
[i
].dType
, self
.depth
,
711 # -------------------------------
712 # Fill countertop spaces
713 # -------------------------------
714 if self
.cabinets
[i
].tC
:
717 if self
.cabinets
[i
].pX
>= 0:
718 mycountertop
.location
[0] = -self
.cabinets
[i
].pX
720 mycountertop
.location
[0] = 0
723 if angle
== (3 * pi
) / 2:
724 if self
.cabinets
[i
].pY
>= 0:
725 mycountertop
.location
[0] = 0
727 mycountertop
.location
[0] = self
.cabinets
[i
].pY
730 if self
.cabinets
[i
].pY
>= 0:
731 mycountertop
.location
[0] = self
.cabinets
[i
].pY
* -1
733 mycountertop
.location
[0] = 0
736 mycountertop
.location
[0] = 0
738 mycountertop
.location
[2] = self
.height
739 mycountertop
.parent
= mydata
[0]
740 # --------------------
742 # --------------------
744 # if corner, remove size
745 if self
.cabinets
[i
].dType
== "9" or self
.cabinets
[i
].dType
== "10":
746 t
= t
- self
.cabinets
[i
].sX
748 mycountertop
["archimesh.top_sku"] = "T%06.3fx%06.3fx%06.3f-%06.3f" % (t
,
749 self
.depth
+ self
.cabinets
[
750 i
].wY
+ self
.counterextend
,
756 if self
.baseboard
and self
.type_cabinet
== "1":
757 gap
= (self
.depth
+ self
.cabinets
[i
].wY
) - ((self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
)
758 mybase
= create_baseboard("Baseboard" + str(i
+ 1),
759 self
.cabinets
[i
].sX
, self
.thickness
, self
.baseheight
,
760 self
.crt_mat
, self
.cabinets
[i
].bL
, self
.cabinets
[i
].bR
,
761 (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
, self
.cabinets
[i
].dType
, gap
)
762 bases
.extend([mybase
])
763 mybase
.location
[1] = (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
* -1
764 mybase
.location
[2] = -self
.baseheight
765 mybase
.parent
= mydata
[0]
766 # --------------------
768 # --------------------
769 t
= self
.cabinets
[i
].sX
771 if self
.cabinets
[i
].bR
is True:
772 t
= t
+ (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
773 if self
.cabinets
[i
].bL
is True:
774 t
= t
+ (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
776 mybase
["archimesh.base_sku"] = "B%06.3fx%06.3fx%06.3f" % (t
, self
.thickness
, self
.baseheight
)
779 mybox
.rotation_euler
= (0, 0, myrot
)
781 # -----------------------------------------
782 # Calculate new position for next cabinet
783 # -----------------------------------------
793 ym
= -self
.cabinets
[i
].sX
794 lastx
= lastx
- self
.cabinets
[i
].sX
- self
.cabinets
[i
].pX
795 lasty
= lasty
+ self
.cabinets
[i
].sX
+ self
.cabinets
[i
].pY
798 lastx
-= 2 * (self
.cabinets
[i
].sX
+ self
.cabinets
[i
].pX
)
800 if angle
== (3 * pi
) / 2:
801 xm
= self
.depth
- self
.counterextend
802 lastx
= lastx
- self
.cabinets
[i
].sX
- self
.cabinets
[i
].pX
803 lasty
= lasty
- self
.cabinets
[i
].sX
- self
.cabinets
[i
].pX
+ self
.cabinets
[i
].pY
806 # noinspection PyUnresolvedReferences
807 mybox
.location
= (myl
.x
+ xm
, myl
.y
+ ym
, myl
.z
)
809 # ---------------------------------------
811 # ---------------------------------------
812 boxes
.extend([mybox
])
825 if self
.crt_mat
and bpy
.context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
826 mat
= create_diffuse_material("Cabinet_material", False, 0.8, 0.8, 0.8)
828 set_material(box
, mat
)
833 # ------------------------------------------------------------------------------
836 # thickness: wood thickness
840 # pX: position X axis
841 # pY: position Y axis
842 # pZ: position Z axis
843 # doorType: Type of door or drawers
844 # drawers: Number of drawers
845 # shelves: Number of shelves
846 # gF: Glass size factor
847 # mat: Flag for creating materials
848 # handle: handle visibility flag
849 # handle_model: Type of handle
850 # handle_x: Position of handle in X axis
851 # handle_z: Position of handle in Z axis
852 # depth: Default depth
853 # ------------------------------------------------------------------------------
854 def create_box(type_cabinet
, objname
, thickness
, sx
, sy
, sz
, px
, py
, pz
, doortype
, drawers
, shelves
, gf
, mat
,
855 handle
, handle_model
, handle_x
, handle_z
, depth
):
860 [(0, 0, 0), (0, -sy
, 0), (0, -sy
, sz
), (0, 0, sz
), (sx
, 0, 0), (sx
, -sy
, 0), (sx
, -sy
, sz
), (sx
, 0, sz
)])
861 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 4, 7, 3), (0, 1, 5, 4), (3, 2, 6, 7)])
864 myvertex
.extend([(thickness
, -thickness
, thickness
), (thickness
, -sy
, thickness
),
865 (thickness
, -sy
, sz
- thickness
), (thickness
, -thickness
, sz
- thickness
),
866 (sx
- thickness
, -thickness
, thickness
), (sx
- thickness
, -sy
, thickness
),
867 (sx
- thickness
, -sy
, sz
- thickness
), (sx
- thickness
, -thickness
, sz
- thickness
)])
869 myfaces
.extend([(8, 9, 10, 11), (12, 13, 14, 15), (8, 12, 15, 11), (8, 9, 13, 12), (11, 10, 14, 15)])
870 myfaces
.extend([(1, 9, 10, 2), (2, 6, 14, 10), (6, 5, 13, 14), (5, 1, 9, 13)])
875 v
= 16 # vertice number
876 if doortype
!= "7": # Drawers
877 # calculate separation
878 dist
= sz
- (thickness
* 2)
879 space
= dist
/ (shelves
+ 1)
880 posz1
= thickness
+ space
882 for x
in range(shelves
):
883 posz2
= posz1
- thickness
884 myvertex
.extend([(thickness
, -thickness
, posz1
), (thickness
, -sy
, posz1
),
885 (thickness
, -sy
, posz2
), (thickness
, -thickness
, posz2
),
886 (sx
- thickness
, -thickness
, posz1
), (sx
- thickness
, -sy
, posz1
),
887 (sx
- thickness
, -sy
, posz2
), (sx
- thickness
, -thickness
, posz2
)])
889 myfaces
.extend([(v
, v
+ 1, v
+ 2, v
+ 3), (v
+ 4, v
+ 5, v
+ 6, v
+ 7), (v
, v
+ 4, v
+ 7, v
+ 3),
890 (v
, v
+ 1, v
+ 5, v
+ 4), (v
+ 3, v
+ 2, v
+ 6, v
+ 7), (v
+ 1, v
+ 2, v
+ 6, v
+ 5)])
894 mymesh
= bpy
.data
.meshes
.new(objname
)
895 myobject
= bpy
.data
.objects
.new(objname
, mymesh
)
897 myobject
.location
[0] = px
898 myobject
.location
[1] = py
899 myobject
.location
[2] = pz
900 bpy
.context
.collection
.objects
.link(myobject
)
902 mymesh
.from_pydata(myvertex
, [], myfaces
)
903 mymesh
.update(calc_edges
=True)
905 # ---------------------------------------
907 # ---------------------------------------
908 if doortype
== "7": # Drawers
909 # calculate separation
911 dist
= sz
- (gap
* drawers
)
912 space
= dist
/ drawers
915 for x
in range(drawers
):
916 mydrawer
= create_drawer("Drawer", thickness
, sx
, sy
, space
, mat
, handle
,
917 handle_model
, handle_z
)
918 mydrawer
.location
[1] = -sy
919 mydrawer
.location
[2] = posz1
920 mydrawer
.parent
= myobject
921 remove_doubles(mydrawer
)
922 set_normals(mydrawer
)
923 posz1
= posz1
+ space
+ gap
# gap
925 # ---------------------------------------
927 # ---------------------------------------
928 if doortype
!= "99" and doortype
!= "7": # None or Drawers
929 if doortype
== "1" or doortype
== "2" or doortype
== "3" or doortype
== "4" \
930 or doortype
== "5" or doortype
== "6": # single door
931 mydoor
= create_door(type_cabinet
, objname
+ "_Door", thickness
, sx
, sz
, doortype
, gf
, mat
, handle
,
932 handle_model
, handle_x
, handle_z
, 0.001)
933 mydoor
.parent
= myobject
934 mydoor
.location
[1] = -sy
- 0.001 # add 1 mm gap
935 remove_doubles(mydoor
)
939 if doortype
== "8" or doortype
== "10" or doortype
== "11":
946 # Adjust corner doors
949 dwidth
= sx
- depth
- thickness
- 0.001
951 mydoor1
= create_door(type_cabinet
, objname
+ "_Door_L", thickness
, dwidth
, sz
, typ
, gf
, mat
,
953 handle_model
, handle_x
, handle_z
, 0.0005) # left
954 mydoor1
.location
[1] = -sy
- 0.001 # add 1 mm gap
955 mydoor1
.parent
= myobject
956 remove_doubles(mydoor1
)
959 if doortype
== "8" or doortype
== "9" or doortype
== "11":
966 # Adjust corner doors
969 dwidth
= sx
- depth
- thickness
- 0.001
971 mydoor2
= create_door(type_cabinet
, objname
+ "_Door_R", thickness
, dwidth
, sz
, typ
, gf
, mat
,
973 handle_model
, handle_x
, handle_z
, 0.0005) # right
974 mydoor2
.location
[1] = -sy
- 0.001 # add 1 mm gap
975 mydoor2
.location
[0] = sx
976 mydoor2
.parent
= myobject
977 remove_doubles(mydoor2
)
980 return myobject
, px
+ sx
983 # ------------------------------------------------------------------------------
989 # mat: Flag for creating materials
990 # bL: Flag to create left side
991 # bR: Flag to create right side
992 # depth: depth or position of baseboard
993 # gap: space to close in corners
994 # ------------------------------------------------------------------------------
995 def create_baseboard(objname
, sx
, sy
, sz
, mat
, bl
, br
, depth
, doortype
, gap
):
1001 [(0, 0, 0), (0, -sy
, 0), (0, -sy
, sz
), (0, 0, sz
), (sx
, 0, 0), (sx
, -sy
, 0), (sx
, -sy
, sz
), (sx
, 0, sz
)])
1002 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 4, 7, 3), (0, 1, 5, 4), (3, 2, 6, 7), (1, 5, 6, 2)])
1007 [(0, 0, 0), (0, depth
, 0), (0, depth
, sz
), (0, 0, sz
), (sy
, 0, 0), (sy
, depth
, 0), (sy
, depth
, sz
),
1010 [(f
, f
+ 1, f
+ 2, f
+ 3), (f
+ 4, f
+ 5, f
+ 6, f
+ 7), (f
, f
+ 4, f
+ 7, f
+ 3), (f
, f
+ 1, f
+ 5, f
+ 4),
1011 (f
+ 3, f
+ 2, f
+ 6, f
+ 7), (f
+ 1, f
+ 5, f
+ 6, f
+ 2)])
1016 myvertex
.extend([(p
, 0, 0), (p
, depth
, 0), (p
, depth
, sz
), (p
, 0, sz
), (p
+ sy
, 0, 0), (p
+ sy
, depth
, 0),
1017 (p
+ sy
, depth
, sz
), (p
+ sy
, 0, sz
)])
1019 [(f
, f
+ 1, f
+ 2, f
+ 3), (f
+ 4, f
+ 5, f
+ 6, f
+ 7), (f
, f
+ 4, f
+ 7, f
+ 3), (f
, f
+ 1, f
+ 5, f
+ 4),
1020 (f
+ 3, f
+ 2, f
+ 6, f
+ 7), (f
+ 1, f
+ 5, f
+ 6, f
+ 2)])
1023 if doortype
== "9" or doortype
== "10":
1026 if doortype
== "10":
1030 myvertex
.extend([(p
, -sy
, 0), (p
, size
, 0), (p
, size
, sz
), (p
, -sy
, sz
), (p
+ sy
, -sy
, 0), (p
+ sy
, size
, 0),
1031 (p
+ sy
, size
, sz
), (p
+ sy
, -sy
, sz
)])
1033 [(f
, f
+ 1, f
+ 2, f
+ 3), (f
+ 4, f
+ 5, f
+ 6, f
+ 7), (f
, f
+ 4, f
+ 7, f
+ 3), (f
, f
+ 1, f
+ 5, f
+ 4),
1034 (f
+ 3, f
+ 2, f
+ 6, f
+ 7), (f
+ 1, f
+ 5, f
+ 6, f
+ 2)])
1036 mymesh
= bpy
.data
.meshes
.new(objname
)
1037 mybaseboard
= bpy
.data
.objects
.new(objname
, mymesh
)
1039 mybaseboard
.location
[0] = 0
1040 mybaseboard
.location
[1] = 0
1041 mybaseboard
.location
[2] = 0
1042 bpy
.context
.collection
.objects
.link(mybaseboard
)
1044 mymesh
.from_pydata(myvertex
, [], myfaces
)
1045 mymesh
.update(calc_edges
=True)
1048 if mat
and bpy
.context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
1049 mat
= create_diffuse_material("Baseboard_material", False, 0.8, 0.8, 0.8)
1050 set_material(mybaseboard
, mat
)
1055 # ------------------------------------------------------------------------------
1058 # sX: Size in X axis
1059 # sY: Size in Y axis
1060 # sZ: Size in Z axis
1061 # mat: Flag for creating materials
1062 # doorType: Type of door
1063 # depth: Depth of the cabinets
1064 # edge: add countertop edge
1065 # ------------------------------------------------------------------------------
1066 def create_countertop(objname
, sx
, sy
, sz
, over
, mat
, doortype
, depth
, edge
):
1072 # if corner the size is less
1077 ts
= sx
- (sx
- over
- depth
)
1080 if doortype
== "10":
1082 tx
= sx
- over
- depth
1085 myvertex
.extend([(ts
, 0, 0), (ts
, -sy
- over
, 0), (ts
, -sy
- over
, sz
), (ts
, 0, sz
),
1086 (tx
, 0, 0), (tx
, -sy
- over
, 0), (tx
, -sy
- over
, sz
), (tx
, 0, sz
)])
1087 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 4, 7, 3), (0, 1, 5, 4), (3, 2, 6, 7), (1, 5, 6, 2)])
1095 if doortype
== "10":
1099 myvertex
.extend([(ts
, 0, sz
), (ts
, -oy
, sz
), (ts
, -oy
, oz
), (ts
, 0, oz
),
1100 (tx
, 0, sz
), (tx
, -oy
, sz
), (tx
, -oy
, oz
), (tx
, 0, oz
)])
1102 [(8, 9, 10, 11), (12, 13, 14, 15), (8, 12, 15, 11), (8, 9, 13, 12), (11, 10, 14, 15), (9, 13, 14, 10)])
1104 mymesh
= bpy
.data
.meshes
.new(objname
)
1105 mycountertop
= bpy
.data
.objects
.new(objname
, mymesh
)
1107 mycountertop
.location
[0] = 0
1108 mycountertop
.location
[1] = 0
1109 mycountertop
.location
[2] = 0
1110 bpy
.context
.collection
.objects
.link(mycountertop
)
1112 mymesh
.from_pydata(myvertex
, [], myfaces
)
1113 mymesh
.update(calc_edges
=True)
1116 if mat
and bpy
.context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
1117 mat
= create_diffuse_material("countertop_material", False, 0, 0, 0, 0.2, 0.2, 0.2, 0.15)
1118 set_material(mycountertop
, mat
)
1123 # ------------------------------------------------------------------------------
1124 # Create cabinet door
1126 # type_cabinet: Type of cabinet (floor or wall)
1127 # objName: Name of the created object
1128 # thickness: wood thickness
1129 # sX: Size in X axis
1130 # sY: Size in Y axis
1131 # sZ: Size in Z axis
1132 # doorType: Type of door or drawers
1133 # gF: Glass size factor
1134 # mat: Flag for creating materials
1135 # handle: handle visibility flag
1136 # handle_model: Type of handle
1137 # handle_x: Position of handle in X axis
1138 # handle_z: Position of handle in Z axis
1139 # gapX: size of the horizontal gap
1140 # ------------------------------------------------------------------------------
1141 def create_door(type_cabinet
, objname
, thickness
, sx
, sz
, doortype
, gf
, mat
, handle
, handle_model
, handle_x
,
1149 if doortype
== "2" or doortype
== "5" or doortype
== "10":
1151 # add small gap in width
1153 # add small gap in top zone
1156 myvertex
.extend([(0, 0, 0), (0, -thickness
, 0), (0, -thickness
, sz
), (0, 0, sz
), (sx
* f
, 0, 0),
1157 (sx
* f
, -thickness
, 0), (sx
* f
, -thickness
, sz
), (sx
* f
, 0, sz
)])
1158 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 1, 5, 4), (3, 2, 6, 7)])
1162 if doortype
== "1" or doortype
== "2" or doortype
== "3" \
1163 or doortype
== "8" or doortype
== "9" or doortype
== "10":
1164 myfaces
.extend([(0, 4, 7, 3), (1, 2, 6, 5)])
1168 if doortype
== "4" or doortype
== "5" or doortype
== "6" or doortype
== "11":
1169 w
= sx
* gf
# calculate frame size W
1170 h
= sz
* gf
# calculate frame size V
1172 myvertex
.extend([(w
* f
, 0, h
), (w
* f
, -thickness
, h
), (w
* f
, -thickness
, sz
- h
), (w
* f
, 0, sz
- h
),
1173 ((sx
- w
) * f
, 0, h
),
1174 ((sx
- w
) * f
, -thickness
, h
), ((sx
- w
) * f
, -thickness
, sz
- h
), ((sx
- w
) * f
, 0, sz
- h
)])
1175 myfaces
.extend([(8, 9, 10, 11), (12, 13, 14, 15), (8, 11, 15, 12), (10, 11, 15, 14), (8, 12, 13, 9),
1176 (1, 9, 10, 2), (5, 13, 14, 6), (6, 2, 10, 14), (5, 1, 9, 13),
1177 (0, 3, 11, 8), (12, 15, 7, 4), (4, 0, 8, 12), (11, 3, 7, 15)])
1179 mymesh
= bpy
.data
.meshes
.new(objname
)
1180 mydoor
= bpy
.data
.objects
.new(objname
, mymesh
)
1182 mydoor
.location
[0] = sx
1184 mydoor
.location
[0] = 0
1186 mydoor
.location
[1] = 0
1187 mydoor
.location
[2] = 0
1188 bpy
.context
.collection
.objects
.link(mydoor
)
1190 mymesh
.from_pydata(myvertex
, [], myfaces
)
1191 mymesh
.update(calc_edges
=True)
1193 # ----------------------------------------------
1195 # RT: Put handle in right side top
1196 # LT: Put handle in left side top
1197 # RB: Put handle in right side bottom
1198 # LB: Put handle in left side bottom
1199 # T: Put handle in top side middle
1200 # B: Put handle in bottom side middle
1202 # The position is reverse to the open direction
1204 # ----------------------------------------------
1205 hpos
= "RT" # Right by default
1210 if type_cabinet
== "1":
1211 if doortype
== "1" or doortype
== "4" or doortype
== "9": # Right
1213 if doortype
== "2" or doortype
== "5" or doortype
== "10": # Left
1215 if doortype
== "3" or doortype
== "6":
1220 if type_cabinet
== "2":
1221 if doortype
== "1" or doortype
== "4" or doortype
== "9": # Right
1223 if doortype
== "2" or doortype
== "5" or doortype
== "10": # Left
1225 if doortype
== "3" or doortype
== "6":
1228 create_handle(handle_model
, mydoor
, thickness
, hpos
, mat
, handle_x
, handle_z
)
1230 if mat
and bpy
.context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
1232 mat
= create_diffuse_material("Door_material", False, 0.8, 0.8, 0.8, 0.279, 0.337, 0.6, 0.2)
1233 set_material(mydoor
, mat
)
1235 if doortype
== "4" or doortype
== "5" or doortype
== "6" or doortype
== "11":
1236 mat
= create_glass_material("DoorGlass_material", False)
1237 mydoor
.data
.materials
.append(mat
)
1238 select_faces(mydoor
, 6, True)
1239 set_material_faces(mydoor
, 1)
1241 # Limit rotation axis
1242 if hpos
!= "T" and hpos
!= "TM" and hpos
!= "B":
1243 mydoor
.lock_rotation
= (True, True, False)
1248 # ------------------------------------------------------------------------------
1251 # thickness: wood thickness
1252 # sX: Size in X axis
1253 # sY: Size in Y axis
1254 # sZ: Size in Z axis
1255 # mat: Flag for creating materials
1256 # handle: handle visibility flag
1257 # handle_model: Type of handle
1258 # handle_z: Position of handle in Z axis
1259 # ------------------------------------------------------------------------------
1260 def create_drawer(objname
, thickness
, sx
, sy
, sz
, mat
, handle
, handle_model
, handle_z
):
1264 myvertex
.extend([(0, 0, 0), (0, -thickness
, 0), (0, -thickness
, sz
), (0, 0, sz
), (sx
, 0, 0), (sx
, -thickness
, 0),
1265 (sx
, -thickness
, sz
), (sx
, 0, sz
)])
1266 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 4, 7, 3), (0, 1, 5, 4), (3, 2, 6, 7), (1, 2, 6, 5)])
1268 # internal faces (thickness cm gap)
1269 myvertex
.extend([(thickness
, 0, thickness
),
1270 (thickness
, sy
- thickness
, thickness
),
1271 (sx
- thickness
, sy
- thickness
, thickness
),
1272 (sx
- thickness
, 0, thickness
),
1273 (thickness
* 2, 0, thickness
),
1274 (thickness
* 2, sy
- thickness
* 2, thickness
),
1275 (sx
- thickness
* 2, sy
- thickness
* 2, thickness
),
1276 (sx
- thickness
* 2, 0, thickness
)])
1278 myfaces
.extend([(8, 9, 13, 12), (13, 9, 10, 14), (14, 10, 11, 15), (12, 13, 14, 15)])
1280 myvertex
.extend([(thickness
, 0, h
),
1281 (thickness
, sy
- thickness
, h
),
1282 (sx
- thickness
, sy
- thickness
, h
),
1283 (sx
- thickness
, 0, h
),
1284 (thickness
* 2, 0, h
),
1285 (thickness
* 2, sy
- thickness
* 2, h
),
1286 (sx
- thickness
* 2, sy
- thickness
* 2, h
),
1287 (sx
- thickness
* 2, 0, h
)])
1289 [(16, 17, 21, 20), (21, 17, 18, 22), (22, 18, 19, 23), (8, 9, 17, 16), (9, 10, 18, 17), (10, 11, 19, 18),
1290 (12, 13, 21, 20), (13, 14, 22, 21), (14, 15, 23, 22)])
1292 mymesh
= bpy
.data
.meshes
.new(objname
)
1293 mydrawer
= bpy
.data
.objects
.new(objname
, mymesh
)
1295 mydrawer
.location
[0] = 0
1296 mydrawer
.location
[1] = 0
1297 mydrawer
.location
[2] = 0
1298 bpy
.context
.collection
.objects
.link(mydrawer
)
1300 mymesh
.from_pydata(myvertex
, [], myfaces
)
1301 mymesh
.update(calc_edges
=True)
1305 model
= handle_model
1306 # Drawers always horizontal handle, so override values
1313 create_handle(model
, mydrawer
, thickness
, "TM", mat
, 0, handle_z
) # always in the top area/middle
1316 if mat
and bpy
.context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
1317 mat
= create_diffuse_material("Drawer_material", False, 0.8, 0.8, 0.8, 0.6, 0.6, 0.6, 0.2)
1318 set_material(mydrawer
, mat
)
1320 # Lock transformation
1321 mydrawer
.lock_location
= (True, False, True) # only Y axis
1326 # ------------------------------------------------------------------------------
1329 # model: handle model
1330 # myDoor: Door that has the handle
1331 # thickness: thickness of board
1332 # handle_position: position of the handle
1333 # RT: Put handle in right side top
1334 # LT: Put handle in left side top
1335 # RB: Put handle in right side bottom
1336 # LB: Put handle in left side bottom
1337 # T: Put handle in top side middle
1338 # TM: Put handle in top side middle (drawers)
1339 # B: Put handle in bottom side middle
1340 # mat: create default cycles material
1341 # handle_x: Position of handle in X axis
1342 # handle_z: Position of handle in Z axis
1343 # ------------------------------------------------------------------------------
1344 def create_handle(model
, mydoor
, thickness
, handle_position
, mat
, handle_x
, handle_z
):
1349 if model
== "1" or model
== "3":
1350 mydata
= handle_model_01()
1351 elif model
== "2" or model
== "4":
1352 mydata
= handle_model_02()
1354 mydata
= handle_model_05()
1356 mydata
= handle_model_06()
1358 mydata
= handle_model_07()
1360 mydata
= handle_model_08()
1362 mydata
= handle_model_01() # default model
1365 myvertex
= mydata
[0]
1368 mymesh
= bpy
.data
.meshes
.new("Handle")
1369 myhandle
= bpy
.data
.objects
.new("Handle", mymesh
)
1371 bpy
.context
.collection
.objects
.link(myhandle
)
1373 mymesh
.from_pydata(myvertex
, [], myfaces
)
1374 mymesh
.update(calc_edges
=True)
1377 myhandle
.location
.y
= -thickness
1378 # Calculate dimensions
1379 if model
== "1" or model
== "4" or model
== "5" or model
== "6":
1380 width
= myhandle
.dimensions
.z
/ 2
1381 height
= myhandle
.dimensions
.x
/ 2
1383 width
= myhandle
.dimensions
.x
/ 2
1384 height
= myhandle
.dimensions
.z
/ 2
1385 # Limit handle position to door dimensions
1386 if handle_x
+ width
> mydoor
.dimensions
.x
:
1387 handle_x
= mydoor
.dimensions
.x
- 0.01
1389 if handle_z
+ height
> mydoor
.dimensions
.z
:
1390 handle_z
= mydoor
.dimensions
.z
- 0.01
1392 # Position in X axis
1393 if handle_position
== "LT" or handle_position
== "LB":
1394 myhandle
.location
.x
= -mydoor
.dimensions
.x
+ handle_x
+ width
1396 if handle_position
== "RT" or handle_position
== "RB":
1397 myhandle
.location
.x
= mydoor
.dimensions
.x
- handle_x
- width
1399 # Position in Z axis
1400 if handle_position
== "RT" or handle_position
== "LT":
1401 if mydoor
.dimensions
.z
- handle_z
- height
> 1.2:
1402 myhandle
.location
.z
= 1.2
1404 myhandle
.location
.z
= mydoor
.dimensions
.z
- handle_z
- height
1406 if handle_position
== "RB" or handle_position
== "LB":
1407 myhandle
.location
.z
= handle_z
+ height
1409 # Position for Middle point
1410 if handle_position
== "T" or handle_position
== "B":
1411 myhandle
.location
.x
= -mydoor
.dimensions
.x
/ 2
1413 if handle_position
== "TM":
1414 myhandle
.location
.x
= mydoor
.dimensions
.x
/ 2
1416 if handle_position
== "T" or handle_position
== "TM":
1417 myhandle
.location
.z
= mydoor
.dimensions
.z
- handle_z
- height
1419 if handle_position
== "B":
1420 myhandle
.location
.z
= handle_z
- height
1423 if handle_position
!= "T" and handle_position
!= "B" and handle_position
!= "TM":
1429 if handle_position
== "LT" or handle_position
== "LB":
1434 myhandle
.rotation_euler
= (0, yrot
, 0.0) # radians PI=180
1437 myhandle
.parent
= mydoor
1439 if mat
and bpy
.context
.scene
.render
.engine
in {'CYCLES', 'BLENDER_EEVEE'}:
1440 mat
= create_glossy_material("Handle_material", False, 0.733, 0.779, 0.8, 0.733, 0.779, 0.8, 0.02)
1441 set_material(myhandle
, mat
)
1444 if model
== "1" or model
== "3":
1445 set_smooth(myhandle
)
1446 set_modifier_subsurf(myhandle
)
1448 if model
== "5" or model
== "6" or model
== "7" or model
== "8":
1449 set_smooth(myhandle
)
1454 # ----------------------------------------------
1456 # ----------------------------------------------
1457 def handle_model_01():
1458 # ------------------------------------
1460 # ------------------------------------
1461 minx
= -0.07222598791122437
1462 maxx
= 0.07222597301006317
1463 maxy
= 6.545917585754069e-08
1464 minz
= -0.004081448074430227
1465 maxz
= 0.004081418737769127
1468 myvertex
= [(maxx
- 0.013172730803489685, -0.025110241025686264, maxz
- 0.0003106782678514719),
1469 (maxx
- 0.01216559112071991, -0.027320515364408493, maxz
- 0.0011954230722039938),
1470 (maxx
- 0.011492643505334854, -0.028797375038266182, maxz
- 0.0025195349007844925),
1471 (maxx
- 0.011256333440542221, -0.029315980151295662, maxz
- 0.0040814326939546675),
1472 (maxx
- 0.011492643505334854, -0.02879737690091133, minz
+ 0.0025195364141836762),
1473 (maxx
- 0.01216559112071991, -0.02732051908969879, minz
+ 0.0011954230722039938),
1474 (maxx
- 0.013172730803489685, -0.025110244750976562, minz
+ 0.0003106798976659775),
1475 (maxx
- 0.014360729604959488, -0.022503048181533813, minz
),
1476 (maxx
- 0.01554873213171959, -0.019895851612091064, minz
+ 0.00031067943200469017),
1477 (maxx
- 0.016555871814489365, -0.017685577273368835, minz
+ 0.001195424236357212),
1478 (maxx
- 0.01722881942987442, -0.016208721324801445, minz
+ 0.0025195354828611016),
1479 (maxx
- 0.017465125769376755, -0.015690118074417114, minz
+ 0.00408143286244389),
1480 (maxx
- 0.01722881942987442, -0.016208721324801445, maxz
- 0.0025195367634296417),
1481 (maxx
- 0.016555871814489365, -0.017685577273368835, maxz
- 0.0011954237706959248),
1482 (maxx
- 0.01554873213171959, -0.019895853474736214, maxz
- 0.00031068059615790844),
1483 (maxx
- 0.014360729604959488, -0.022503050044178963, maxz
),
1484 (maxx
- 0.00908602774143219, -0.022446047514677048, maxz
- 0.0003106782678514719),
1485 (maxx
- 0.007382020354270935, -0.024176951497793198, maxz
- 0.0011954226065427065),
1486 (maxx
- 0.006243452429771423, -0.025333505123853683, maxz
- 0.002519535133615136),
1487 (maxx
- 0.005843624472618103, -0.025739632546901703, maxz
- 0.004081432702012222),
1488 (maxx
- 0.006243452429771423, -0.025333506986498833, minz
+ 0.0025195362977683544),
1489 (maxx
- 0.007382020354270935, -0.024176953360438347, minz
+ 0.0011954230722039938),
1490 (maxx
- 0.00908602774143219, -0.022446051239967346, minz
+ 0.0003106798976659775),
1491 (maxx
- 0.011096026748418808, -0.020404310896992683, minz
),
1492 (maxx
- 0.013106036931276321, -0.01836257427930832, minz
+ 0.0003106796648353338),
1493 (maxx
- 0.014810033142566681, -0.01663167029619217, minz
+ 0.001195424236357212),
1494 (maxx
- 0.015948612242937088, -0.015475118532776833, minz
+ 0.0025195355992764235),
1495 (maxx
- 0.016348421573638916, -0.015068991109728813, minz
+ 0.004081432861045897),
1496 (maxx
- 0.015948612242937088, -0.015475118532776833, maxz
- 0.00251953664701432),
1497 (maxx
- 0.014810033142566681, -0.01663167029619217, maxz
- 0.0011954233050346375),
1498 (maxx
- 0.013106033205986023, -0.01836257241666317, maxz
- 0.0003106803633272648),
1499 (maxx
- 0.011096026748418808, -0.020404312759637833, maxz
- 4.656612873077393e-10),
1500 (maxx
- 0.004618480801582336, -0.01468262542039156, maxz
- 0.0008190707303583622),
1501 (maxx
- 0.002191290259361267, -0.014774298295378685, maxz
- 0.001584529411047697),
1502 (maxx
- 0.0005694925785064697, -0.014835557900369167, maxz
- 0.002730117877945304),
1503 (maxx
, -0.014857066795229912, maxz
- 0.004081432337202706),
1504 (maxx
- 0.0005694925785064697, -0.014835558831691742, minz
+ 0.002730119973421097),
1505 (maxx
- 0.002191290259361267, -0.014774300158023834, minz
+ 0.001584530808031559),
1506 (maxx
- 0.004618480801582336, -0.01468262542039156, minz
+ 0.0008190732914954424),
1507 (maxx
- 0.0074815452098846436, -0.014574488624930382, minz
+ 0.000550281023606658),
1508 (maxx
- 0.010344602167606354, -0.014466354623436928, minz
+ 0.0008190732914954424),
1509 (maxx
- 0.012771788984537125, -0.01437467709183693, minz
+ 0.0015845317393541336),
1510 (maxx
- 0.014393582940101624, -0.01431342400610447, minz
+ 0.002730119158513844),
1511 (maxx
- 0.014963079243898392, -0.014291912317276001, maxz
- 0.004081433403984924),
1512 (maxx
- 0.014393582940101624, -0.01431342400610447, maxz
- 0.0027301193913444877),
1513 (maxx
- 0.012771788984537125, -0.014374678023159504, maxz
- 0.0015845298767089844),
1514 (maxx
- 0.010344602167606354, -0.014466352760791779, maxz
- 0.0008190723601728678),
1515 (maxx
- 0.0074815452098846436, -0.014574489556252956, maxz
- 0.0005502800922840834),
1516 (maxx
- 0.004618480801582336, maxy
- 2.029310053330846e-11, maxz
- 0.0008190718945115805),
1517 (maxx
- 0.002191290259361267, maxy
- 7.808864666003501e-11, maxz
- 0.0015845305752009153),
1518 (maxx
- 0.0005694925785064697, maxy
- 1.645759084567544e-10, maxz
- 0.002730119042098522),
1519 (maxx
, maxy
- 2.665956344571896e-10, minz
+ 0.004081433353314345),
1520 (maxx
- 0.0005694925785064697, maxy
- 3.686153604576248e-10, minz
+ 0.0027301188092678785),
1521 (maxx
- 0.002191290259361267, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845296438783407),
1522 (maxx
- 0.004618480801582336, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1523 (maxx
- 0.0074815452098846436, maxy
- 5.331912689143792e-10, minz
+ 0.0005502798594534397),
1524 (maxx
- 0.010344602167606354, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1525 (maxx
- 0.012771788984537125, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845305752009153),
1526 (maxx
- 0.014393582940101624, maxy
- 3.686153604576248e-10, minz
+ 0.0027301181107759476),
1527 (maxx
- 0.014963079243898392, maxy
- 2.665956344571896e-10, minz
+ 0.00408143232919933),
1528 (maxx
- 0.014393582940101624, maxy
- 1.645759084567544e-10, maxz
- 0.002730120439082384),
1529 (maxx
- 0.012771788984537125, maxy
- 7.808864666003501e-11, maxz
- 0.0015845310408622026),
1530 (maxx
- 0.010344602167606354, maxy
- 2.029310053330846e-11, maxz
- 0.000819073524326086),
1531 (maxx
- 0.0074815452098846436, maxy
, maxz
- 0.0005502812564373016),
1532 (minx
+ 0.013172738254070282, -0.025110241025686264, maxz
- 0.0003106782678514719),
1533 (minx
+ 0.012165598571300507, -0.027320515364408493, maxz
- 0.0011954230722039938),
1534 (minx
+ 0.011492650955915451, -0.028797375038266182, maxz
- 0.0025195349007844925),
1535 (minx
+ 0.011256340891122818, -0.029315980151295662, maxz
- 0.0040814326939546675),
1536 (minx
+ 0.011492650955915451, -0.02879737690091133, minz
+ 0.0025195364141836762),
1537 (minx
+ 0.012165598571300507, -0.02732051908969879, minz
+ 0.0011954230722039938),
1538 (minx
+ 0.013172738254070282, -0.025110244750976562, minz
+ 0.0003106798976659775),
1539 (minx
+ 0.014360737055540085, -0.022503048181533813, minz
),
1540 (minx
+ 0.015548739582300186, -0.019895851612091064, minz
+ 0.00031067943200469017),
1541 (minx
+ 0.01655587926506996, -0.017685577273368835, minz
+ 0.001195424236357212),
1542 (minx
+ 0.017228826880455017, -0.016208721324801445, minz
+ 0.0025195354828611016),
1543 (minx
+ 0.01746513321995735, -0.015690118074417114, minz
+ 0.00408143286244389),
1544 (minx
+ 0.017228826880455017, -0.016208721324801445, maxz
- 0.0025195367634296417),
1545 (minx
+ 0.01655587926506996, -0.017685577273368835, maxz
- 0.0011954237706959248),
1546 (minx
+ 0.015548739582300186, -0.019895853474736214, maxz
- 0.00031068059615790844),
1547 (minx
+ 0.014360737055540085, -0.022503050044178963, maxz
),
1548 (maxx
- 0.07222597673535347, -0.022503051906824112, maxz
),
1549 (maxx
- 0.07222597673535347, -0.019637949764728546, maxz
- 0.00031068059615790844),
1550 (maxx
- 0.07222597673535347, -0.01720903068780899, maxz
- 0.0011954237706959248),
1551 (maxx
- 0.07222597673535347, -0.015586081892251968, maxz
- 0.0025195368798449636),
1552 (maxx
- 0.07222597673535347, -0.015016178600490093, minz
+ 0.004081432688119335),
1553 (maxx
- 0.07222597673535347, -0.015586081892251968, minz
+ 0.00251953536644578),
1554 (maxx
- 0.07222597673535347, -0.01720903068780899, minz
+ 0.001195424236357212),
1555 (maxx
- 0.07222597673535347, -0.019637947902083397, minz
+ 0.00031067943200469017),
1556 (maxx
- 0.07222597673535347, -0.022503051906824112, minz
),
1557 (maxx
- 0.07222597673535347, -0.025368154048919678, minz
+ 0.0003106798976659775),
1558 (maxx
- 0.07222597673535347, -0.027797073125839233, minz
+ 0.0011954230722039938),
1559 (maxx
- 0.07222597673535347, -0.029420025646686554, minz
+ 0.0025195364141836762),
1560 (maxx
- 0.07222597673535347, -0.029989928007125854, maxz
- 0.004081432643072702),
1561 (maxx
- 0.07222597673535347, -0.029420021921396255, maxz
- 0.0025195349007844925),
1562 (maxx
- 0.07222597673535347, -0.027797069400548935, maxz
- 0.0011954230722039938),
1563 (maxx
- 0.07222597673535347, -0.025368154048919678, maxz
- 0.0003106782678514719),
1564 (minx
+ 0.00908602774143219, -0.022446047514677048, maxz
- 0.0003106782678514719),
1565 (minx
+ 0.007382035255432129, -0.024176951497793198, maxz
- 0.0011954226065427065),
1566 (minx
+ 0.006243467330932617, -0.025333505123853683, maxz
- 0.002519535133615136),
1567 (minx
+ 0.005843639373779297, -0.025739632546901703, maxz
- 0.004081432702012222),
1568 (minx
+ 0.006243467330932617, -0.025333506986498833, minz
+ 0.0025195362977683544),
1569 (minx
+ 0.007382035255432129, -0.024176953360438347, minz
+ 0.0011954230722039938),
1570 (minx
+ 0.00908602774143219, -0.022446051239967346, minz
+ 0.0003106798976659775),
1571 (minx
+ 0.011096034198999405, -0.020404310896992683, minz
),
1572 (minx
+ 0.013106044381856918, -0.01836257427930832, minz
+ 0.0003106796648353338),
1573 (minx
+ 0.014810040593147278, -0.01663167029619217, minz
+ 0.001195424236357212),
1574 (minx
+ 0.015948619693517685, -0.015475118532776833, minz
+ 0.0025195355992764235),
1575 (minx
+ 0.016348429024219513, -0.015068991109728813, minz
+ 0.004081432861045897),
1576 (minx
+ 0.015948619693517685, -0.015475118532776833, maxz
- 0.00251953664701432),
1577 (minx
+ 0.014810040593147278, -0.01663167029619217, maxz
- 0.0011954233050346375),
1578 (minx
+ 0.01310604065656662, -0.01836257241666317, maxz
- 0.0003106803633272648),
1579 (minx
+ 0.011096034198999405, -0.020404312759637833, maxz
- 4.656612873077393e-10),
1580 (minx
+ 0.004618480801582336, -0.01468262542039156, maxz
- 0.0008190707303583622),
1581 (minx
+ 0.002191305160522461, -0.014774298295378685, maxz
- 0.001584529411047697),
1582 (minx
+ 0.0005695074796676636, -0.014835557900369167, maxz
- 0.002730117877945304),
1583 (minx
, -0.014857066795229912, maxz
- 0.004081432337202706),
1584 (minx
+ 0.0005694925785064697, -0.014835558831691742, minz
+ 0.002730119973421097),
1585 (minx
+ 0.002191290259361267, -0.014774300158023834, minz
+ 0.001584530808031559),
1586 (minx
+ 0.004618480801582336, -0.01468262542039156, minz
+ 0.0008190732914954424),
1587 (minx
+ 0.0074815452098846436, -0.014574488624930382, minz
+ 0.000550281023606658),
1588 (minx
+ 0.01034460961818695, -0.014466354623436928, minz
+ 0.0008190732914954424),
1589 (minx
+ 0.012771796435117722, -0.01437467709183693, minz
+ 0.0015845317393541336),
1590 (minx
+ 0.01439359039068222, -0.01431342400610447, minz
+ 0.002730119158513844),
1591 (minx
+ 0.014963086694478989, -0.014291912317276001, maxz
- 0.004081433403984924),
1592 (minx
+ 0.01439359039068222, -0.01431342400610447, maxz
- 0.0027301193913444877),
1593 (minx
+ 0.012771796435117722, -0.014374678023159504, maxz
- 0.0015845298767089844),
1594 (minx
+ 0.01034460961818695, -0.014466352760791779, maxz
- 0.0008190723601728678),
1595 (minx
+ 0.0074815452098846436, -0.014574489556252956, maxz
- 0.0005502800922840834),
1596 (minx
+ 0.004618480801582336, maxy
- 2.029310053330846e-11, maxz
- 0.0008190718945115805),
1597 (minx
+ 0.002191305160522461, maxy
- 7.808864666003501e-11, maxz
- 0.0015845305752009153),
1598 (minx
+ 0.0005695074796676636, maxy
- 1.645759084567544e-10, maxz
- 0.002730119042098522),
1599 (minx
, maxy
- 2.665956344571896e-10, minz
+ 0.004081433353314345),
1600 (minx
+ 0.0005694925785064697, maxy
- 3.686153604576248e-10, minz
+ 0.0027301188092678785),
1601 (minx
+ 0.002191290259361267, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845296438783407),
1602 (minx
+ 0.004618480801582336, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1603 (minx
+ 0.0074815452098846436, maxy
- 5.331912689143792e-10, minz
+ 0.0005502798594534397),
1604 (minx
+ 0.01034460961818695, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1605 (minx
+ 0.012771796435117722, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845305752009153),
1606 (minx
+ 0.01439359039068222, maxy
- 3.686153604576248e-10, minz
+ 0.0027301181107759476),
1607 (minx
+ 0.014963086694478989, maxy
- 2.665956344571896e-10, minz
+ 0.00408143232919933),
1608 (minx
+ 0.01439359039068222, maxy
- 1.645759084567544e-10, maxz
- 0.002730120439082384),
1609 (minx
+ 0.012771796435117722, maxy
- 7.808864666003501e-11, maxz
- 0.0015845310408622026),
1610 (minx
+ 0.01034460961818695, maxy
- 2.029310053330846e-11, maxz
- 0.000819073524326086),
1611 (minx
+ 0.0074815452098846436, maxy
, maxz
- 0.0005502812564373016)]
1614 myfaces
= [(90, 89, 6, 5), (88, 87, 8, 7), (86, 85, 10, 9), (84, 83, 12, 11), (80, 95, 0, 15),
1615 (82, 81, 14, 13), (93, 92, 3, 2), (91, 90, 5, 4), (89, 88, 7, 6), (87, 86, 9, 8),
1616 (85, 84, 11, 10), (95, 94, 1, 0), (83, 82, 13, 12), (94, 93, 2, 1), (81, 80, 15, 14),
1617 (92, 91, 4, 3), (2, 3, 19, 18), (13, 14, 30, 29), (15, 0, 16, 31), (11, 12, 28, 27),
1618 (9, 10, 26, 25), (7, 8, 24, 23), (5, 6, 22, 21), (3, 4, 20, 19), (14, 15, 31, 30),
1619 (1, 2, 18, 17), (12, 13, 29, 28), (0, 1, 17, 16), (10, 11, 27, 26), (8, 9, 25, 24),
1620 (6, 7, 23, 22), (4, 5, 21, 20), (19, 20, 36, 35), (30, 31, 47, 46), (17, 18, 34, 33),
1621 (28, 29, 45, 44), (16, 17, 33, 32), (26, 27, 43, 42), (24, 25, 41, 40), (22, 23, 39, 38),
1622 (20, 21, 37, 36), (18, 19, 35, 34), (29, 30, 46, 45), (31, 16, 32, 47), (27, 28, 44, 43),
1623 (25, 26, 42, 41), (23, 24, 40, 39), (21, 22, 38, 37), (36, 37, 53, 52), (34, 35, 51, 50),
1624 (45, 46, 62, 61), (47, 32, 48, 63), (43, 44, 60, 59), (41, 42, 58, 57), (39, 40, 56, 55),
1625 (37, 38, 54, 53), (35, 36, 52, 51), (46, 47, 63, 62), (33, 34, 50, 49), (44, 45, 61, 60),
1626 (32, 33, 49, 48), (42, 43, 59, 58), (40, 41, 57, 56), (38, 39, 55, 54), (90, 69, 70, 89),
1627 (88, 71, 72, 87), (86, 73, 74, 85), (84, 75, 76, 83), (80, 79, 64, 95), (82, 77, 78, 81),
1628 (93, 66, 67, 92), (91, 68, 69, 90), (89, 70, 71, 88), (87, 72, 73, 86), (85, 74, 75, 84),
1629 (95, 64, 65, 94), (83, 76, 77, 82), (94, 65, 66, 93), (81, 78, 79, 80), (92, 67, 68, 91),
1630 (66, 98, 99, 67), (77, 109, 110, 78), (79, 111, 96, 64), (75, 107, 108, 76), (73, 105, 106, 74),
1631 (71, 103, 104, 72), (69, 101, 102, 70), (67, 99, 100, 68), (78, 110, 111, 79), (65, 97, 98, 66),
1632 (76, 108, 109, 77), (64, 96, 97, 65), (74, 106, 107, 75), (72, 104, 105, 73), (70, 102, 103, 71),
1633 (68, 100, 101, 69), (99, 115, 116, 100), (110, 126, 127, 111), (97, 113, 114, 98), (108, 124, 125, 109),
1634 (96, 112, 113, 97), (106, 122, 123, 107), (104, 120, 121, 105), (102, 118, 119, 103),
1635 (100, 116, 117, 101),
1636 (98, 114, 115, 99), (109, 125, 126, 110), (111, 127, 112, 96), (107, 123, 124, 108),
1637 (105, 121, 122, 106),
1638 (103, 119, 120, 104), (101, 117, 118, 102), (116, 132, 133, 117), (114, 130, 131, 115),
1639 (125, 141, 142, 126),
1640 (127, 143, 128, 112), (123, 139, 140, 124), (121, 137, 138, 122), (119, 135, 136, 120),
1641 (117, 133, 134, 118),
1642 (115, 131, 132, 116), (126, 142, 143, 127), (113, 129, 130, 114), (124, 140, 141, 125),
1643 (112, 128, 129, 113),
1644 (122, 138, 139, 123), (120, 136, 137, 121), (118, 134, 135, 119)]
1646 return myvertex
, myfaces
1649 # ----------------------------------------------
1651 # ----------------------------------------------
1652 def handle_model_02():
1653 # ------------------------------------
1655 # ------------------------------------
1656 minx
= -0.09079331159591675
1657 maxx
= 0.09079315513372421
1659 minz
= -0.018363870680332184
1660 maxz
= 0.0015741242095828056
1663 myvertex
= [(maxx
, maxy
, maxz
- 9.313225746154785e-10),
1664 (maxx
, maxy
, maxz
- 0.0031482474878430367),
1665 (maxx
, -0.02426009438931942, maxz
- 0.0031482460908591747),
1666 (maxx
, -0.02426009438931942, maxz
),
1667 (maxx
, -0.02727462910115719, maxz
),
1668 (maxx
, -0.02727462910115719, maxz
- 0.0031482460908591747),
1669 (maxx
, -0.02426009625196457, minz
+ 0.002603583037853241),
1670 (maxx
, -0.027274630963802338, minz
+ 0.002603583037853241),
1671 (maxx
, -0.02426009625196457, minz
),
1672 (maxx
, -0.027274630963802338, minz
),
1673 (maxx
, -0.021415365859866142, minz
+ 0.002603583037853241),
1674 (maxx
, -0.02141536772251129, minz
),
1675 (maxx
- 0.0907932324437013, -0.02426009438931942, maxz
- 0.0031482460908591747),
1676 (maxx
- 0.0907932324437013, -0.02426009438931942, maxz
),
1677 (minx
, maxy
, maxz
- 9.313225746154785e-10),
1678 (minx
, maxy
, maxz
- 0.0031482474878430367),
1679 (minx
, -0.02426009438931942, maxz
- 0.0031482460908591747),
1680 (minx
, -0.02426009438931942, maxz
),
1681 (minx
, -0.02727462910115719, maxz
),
1682 (minx
, -0.02727462910115719, maxz
- 0.0031482460908591747),
1683 (maxx
- 0.0907932324437013, -0.02727462910115719, maxz
),
1684 (maxx
- 0.0907932324437013, maxy
, maxz
- 9.313225746154785e-10),
1685 (maxx
- 0.0907932324437013, -0.02727462910115719, maxz
- 0.0031482460908591747),
1686 (maxx
- 0.0907932324437013, maxy
, maxz
- 0.0031482474878430367),
1687 (maxx
- 0.0907932324437013, -0.02426009625196457, minz
+ 0.002603583037853241),
1688 (minx
, -0.02426009625196457, minz
+ 0.002603583037853241),
1689 (minx
, -0.027274630963802338, minz
+ 0.002603583037853241),
1690 (maxx
- 0.0907932324437013, -0.027274630963802338, minz
+ 0.002603583037853241),
1691 (maxx
- 0.0907932324437013, -0.02426009625196457, minz
),
1692 (minx
, -0.02426009625196457, minz
),
1693 (minx
, -0.027274630963802338, minz
),
1694 (maxx
- 0.0907932324437013, -0.027274630963802338, minz
),
1695 (maxx
- 0.0907932324437013, -0.021415365859866142, minz
+ 0.002603583037853241),
1696 (minx
, -0.021415365859866142, minz
+ 0.002603583037853241),
1697 (maxx
- 0.0907932324437013, -0.02141536772251129, minz
),
1698 (minx
, -0.02141536772251129, minz
)]
1701 myfaces
= [(2, 5, 7, 6), (13, 3, 0, 21), (3, 2, 1, 0), (7, 27, 31, 9), (23, 21, 0, 1),
1702 (5, 22, 27, 7), (4, 5, 2, 3), (2, 12, 23, 1), (20, 4, 3, 13), (5, 4, 20, 22),
1703 (12, 2, 6, 24), (9, 31, 28, 8), (6, 7, 9, 8), (32, 10, 11, 34), (6, 8, 11, 10),
1704 (8, 28, 34, 11), (24, 6, 10, 32), (16, 25, 26, 19), (13, 21, 14, 17), (17, 14, 15, 16),
1705 (26, 30, 31, 27), (23, 15, 14, 21), (19, 26, 27, 22), (18, 17, 16, 19), (16, 15, 23, 12),
1706 (20, 13, 17, 18), (19, 22, 20, 18), (22, 27, 24, 12), (12, 24, 25, 16), (30, 29, 28, 31),
1707 (25, 29, 30, 26), (27, 31, 28, 24), (28, 34, 32, 24), (32, 34, 35, 33), (25, 33, 35, 29),
1708 (29, 35, 34, 28), (24, 32, 33, 25)]
1710 return myvertex
, myfaces
1713 # ----------------------------------------------
1715 # ----------------------------------------------
1716 def handle_model_05():
1717 # ------------------------------------
1719 # ------------------------------------
1720 minx
= -0.012873317115008831
1721 maxx
= 0.012873315252363682
1722 maxy
= 6.581399869531879e-10
1723 minz
= -0.012873317115008831
1724 maxz
= 0.012873315252363682
1727 myvertex
= [(maxx
- 0.01287331552838386, maxy
, maxz
- 0.008879524189978838),
1728 (maxx
- 0.01287331552838386, -0.004451401997357607, maxz
- 0.008879524189978838),
1729 (maxx
- 0.012094165373127908, maxy
, maxz
- 0.008956264238804579),
1730 (maxx
- 0.012094165373127908, -0.004451401997357607, maxz
- 0.008956263773143291),
1731 (maxx
- 0.011344957514666021, maxy
, maxz
- 0.00918353395536542),
1732 (maxx
- 0.011344957514666021, -0.004451401997357607, maxz
- 0.009183533489704132),
1733 (maxx
- 0.010654483688995242, maxy
, maxz
- 0.00955259962938726),
1734 (maxx
- 0.010654483688995242, -0.004451401997357607, maxz
- 0.009552599163725972),
1735 (maxx
- 0.010049278382211924, maxy
, maxz
- 0.010049279080703855),
1736 (maxx
- 0.010049278382211924, -0.004451401997357607, maxz
- 0.010049278382211924),
1737 (maxx
- 0.009552599163725972, maxy
- 6.581399869531879e-10, maxz
- 0.01065448485314846),
1738 (maxx
- 0.009552599163725972, -0.004451401997357607, maxz
- 0.01065448415465653),
1739 (maxx
- 0.009183533489704132, maxy
- 6.581399869531879e-10, maxz
- 0.011344958445988595),
1740 (maxx
- 0.009183533489704132, -0.004451401997357607, maxz
- 0.011344957863911986),
1741 (maxx
- 0.008956263773143291, maxy
- 6.581399869531879e-10, maxz
- 0.0120941661298275),
1742 (maxx
- 0.008956263773143291, -0.004451401997357607, maxz
- 0.012094165605958551),
1743 (maxx
- 0.008879524189978838, maxy
- 6.581399869531879e-10, maxz
- 0.012873315995101497),
1744 (maxx
- 0.008879524189978838, -0.004451401997357607, maxz
- 0.012873315519886824),
1745 (maxx
- 0.008956263307482004, maxy
- 6.581399869531879e-10, minz
+ 0.012094166420865804),
1746 (maxx
- 0.008956263307482004, -0.004451401997357607, minz
+ 0.01209416682831943),
1747 (maxx
- 0.009183533024042845, maxy
- 6.581399869531879e-10, minz
+ 0.011344958795234561),
1748 (maxx
- 0.009183533024042845, -0.004451401997357607, minz
+ 0.011344959260895848),
1749 (maxx
- 0.009552599163725972, maxy
- 6.581399869531879e-10, minz
+ 0.01065448415465653),
1750 (maxx
- 0.009552599163725972, -0.004451401997357607, minz
+ 0.01065448485314846),
1751 (maxx
- 0.010049278382211924, -6.581399869531879e-10, minz
+ 0.010049278847873211),
1752 (maxx
- 0.010049278382211924, -0.004451401997357607, minz
+ 0.010049279546365142),
1753 (maxx
- 0.010654483921825886, -6.581399869531879e-10, minz
+ 0.00955259962938726),
1754 (maxx
- 0.010654483921825886, -0.004451401997357607, minz
+ 0.009552600095048547),
1755 (maxx
- 0.011344958213157952, -6.581399869531879e-10, minz
+ 0.009183533256873488),
1756 (maxx
- 0.011344958213157952, -0.004451401997357607, minz
+ 0.009183533489704132),
1757 (maxx
- 0.012094166362658143, -6.581399869531879e-10, minz
+ 0.008956264238804579),
1758 (maxx
- 0.012094166362658143, -0.004451401997357607, minz
+ 0.008956264238804579),
1759 (minx
+ 0.012873315537646146, -6.581399869531879e-10, minz
+ 0.008879524655640125),
1760 (minx
+ 0.012873315537646146, -0.004451401997357607, minz
+ 0.008879525121301413),
1761 (minx
+ 0.012094165082089603, -6.581399869531879e-10, minz
+ 0.008956264238804579),
1762 (minx
+ 0.012094165082089603, -0.004451401997357607, minz
+ 0.008956264704465866),
1763 (minx
+ 0.011344957165420055, -6.581399869531879e-10, minz
+ 0.009183534886687994),
1764 (minx
+ 0.011344957165420055, -0.004451401997357607, minz
+ 0.009183535352349281),
1765 (minx
+ 0.010654483223333955, -6.581399869531879e-10, minz
+ 0.009552601026371121),
1766 (minx
+ 0.010654483223333955, -0.004451401997357607, minz
+ 0.009552601724863052),
1767 (minx
+ 0.010049277916550636, -6.581399869531879e-10, minz
+ 0.010049280477687716),
1768 (minx
+ 0.010049277916550636, -0.004451401997357607, minz
+ 0.010049281176179647),
1769 (minx
+ 0.009552598698064685, maxy
- 6.581399869531879e-10, minz
+ 0.010654486482962966),
1770 (minx
+ 0.009552598698064685, -0.004451401997357607, minz
+ 0.010654486948624253),
1771 (minx
+ 0.009183533024042845, maxy
- 6.581399869531879e-10, minz
+ 0.011344961123540998),
1772 (minx
+ 0.009183533024042845, -0.004451401997357607, minz
+ 0.011344961589202285),
1773 (minx
+ 0.008956264238804579, maxy
- 6.581399869531879e-10, minz
+ 0.01209416938945651),
1774 (minx
+ 0.008956264238804579, -0.004451401997357607, minz
+ 0.012094169855117798),
1775 (minx
+ 0.008879525121301413, maxy
- 6.581399869531879e-10, maxz
- 0.012873312440222273),
1776 (minx
+ 0.008879525121301413, -0.004451401997357607, maxz
- 0.012873311965007517),
1777 (minx
+ 0.008956265170127153, maxy
- 6.581399869531879e-10, maxz
- 0.012094162055291235),
1778 (minx
+ 0.008956265170127153, -0.004451401997357607, maxz
- 0.012094161589629948),
1779 (minx
+ 0.009183535818010569, maxy
- 6.581399869531879e-10, maxz
- 0.01134495425503701),
1780 (minx
+ 0.009183535818010569, -0.004451401997357607, maxz
- 0.011344953789375722),
1781 (minx
+ 0.009552602656185627, maxy
- 6.581399869531879e-10, maxz
- 0.010654480429366231),
1782 (minx
+ 0.009552602656185627, -0.004451401997357607, maxz
- 0.010654479963704944),
1783 (minx
+ 0.01004928327165544, maxy
, maxz
- 0.010049275355413556),
1784 (minx
+ 0.01004928327165544, -0.004451401997357607, maxz
- 0.010049275122582912),
1785 (minx
+ 0.010654489509761333, maxy
, maxz
- 0.009552596602588892),
1786 (minx
+ 0.010654489509761333, -0.004451401997357607, maxz
- 0.009552596136927605),
1787 (minx
+ 0.011344964150339365, maxy
, maxz
- 0.00918353139422834),
1788 (minx
+ 0.011344964150339365, -0.004451401997357607, maxz
- 0.009183531161397696),
1789 (minx
+ 0.012094172765500844, maxy
, maxz
- 0.008956263307482004),
1790 (minx
+ 0.012094172765500844, -0.004451401997357607, maxz
- 0.00895626237615943),
1791 (minx
+ 0.01287331571475725, -0.01000460609793663, maxz
),
1792 (maxx
- 0.010361857246607542, -0.01000460609793663, maxz
- 0.0002473592758178711),
1793 (maxx
- 0.00794691126793623, -0.01000460609793663, maxz
- 0.0009799236431717873),
1794 (maxx
- 0.005721285007894039, -0.01000460609793663, maxz
- 0.002169545739889145),
1795 (maxx
- 0.0037705078721046448, -0.01000460609793663, maxz
- 0.0037705088034272194),
1796 (maxx
- 0.002169545739889145, -0.01000460609793663, maxz
- 0.005721286870539188),
1797 (maxx
- 0.0009799227118492126, -0.010004607029259205, maxz
- 0.007946912664920092),
1798 (maxx
- 0.00024735741317272186, -0.010004607029259205, maxz
- 0.010361858177930117),
1799 (maxx
, -0.010004607029259205, minz
+ 0.012873315524888684),
1800 (maxx
- 0.00024735648185014725, -0.010004607029259205, minz
+ 0.010361856315284967),
1801 (maxx
- 0.0009799227118492126, -0.010004607029259205, minz
+ 0.007946911733597517),
1802 (maxx
- 0.002169545739889145, -0.01000460796058178, minz
+ 0.005721283610910177),
1803 (maxx
- 0.0037705078721046448, -0.01000460796058178, minz
+ 0.003770505078136921),
1804 (maxx
- 0.005721286404877901, -0.01000460796058178, minz
+ 0.002169542945921421),
1805 (maxx
- 0.007946913596242666, -0.01000460796058178, minz
+ 0.0009799208492040634),
1806 (maxx
- 0.010361860506236553, -0.01000460796058178, minz
+ 0.00024735648185014725),
1807 (minx
+ 0.012873311520098518, -0.01000460796058178, minz
),
1808 (minx
+ 0.010361851193010807, -0.01000460796058178, minz
+ 0.00024735648185014725),
1809 (minx
+ 0.007946905214339495, -0.01000460796058178, minz
+ 0.0009799255058169365),
1810 (minx
+ 0.005721278488636017, -0.01000460796058178, minz
+ 0.0021695485338568687),
1811 (minx
+ 0.003770500421524048, -0.01000460796058178, minz
+ 0.0037705106660723686),
1812 (minx
+ 0.002169538289308548, -0.01000460796058178, minz
+ 0.005721290595829487),
1813 (minx
+ 0.0009799189865589142, -0.010004607029259205, minz
+ 0.007946919184178114),
1814 (minx
+ 0.000247354619204998, -0.010004607029259205, minz
+ 0.010361866094172001),
1815 (minx
, -0.010004607029259205, maxz
- 0.012873305383929612),
1816 (minx
+ 0.0002473592758178711, -0.010004607029259205, maxz
- 0.010361845139414072),
1817 (minx
+ 0.0009799282997846603, -0.010004607029259205, maxz
- 0.007946899626404047),
1818 (minx
+ 0.0021695513278245926, -0.01000460609793663, maxz
- 0.005721272900700569),
1819 (minx
+ 0.003770517185330391, -0.01000460609793663, maxz
- 0.003770497627556324),
1820 (minx
+ 0.005721298512071371, -0.01000460609793663, maxz
- 0.0021695364266633987),
1821 (minx
+ 0.00794692849740386, -0.01000460609793663, maxz
- 0.0009799161925911903),
1822 (minx
+ 0.010361875407397747, -0.01000460609793663, maxz
- 0.000247354619204998),
1823 (minx
+ 0.01287331571475725, -0.012252332642674446, maxz
),
1824 (maxx
- 0.010361857246607542, -0.012252332642674446, maxz
- 0.0002473592758178711),
1825 (maxx
- 0.00794691126793623, -0.012252332642674446, maxz
- 0.0009799236431717873),
1826 (maxx
- 0.005721285007894039, -0.012252332642674446, maxz
- 0.002169545739889145),
1827 (maxx
- 0.0037705078721046448, -0.012252332642674446, maxz
- 0.0037705088034272194),
1828 (maxx
- 0.002169545739889145, -0.012252332642674446, maxz
- 0.005721286870539188),
1829 (maxx
- 0.0009799227118492126, -0.012252334505319595, maxz
- 0.007946912664920092),
1830 (maxx
- 0.00024735741317272186, -0.012252334505319595, maxz
- 0.010361858177930117),
1831 (maxx
, -0.012252334505319595, minz
+ 0.012873315638136429),
1832 (maxx
- 0.00024735648185014725, -0.012252334505319595, minz
+ 0.010361856315284967),
1833 (maxx
- 0.0009799227118492126, -0.012252334505319595, minz
+ 0.007946911733597517),
1834 (maxx
- 0.002169545739889145, -0.01225233543664217, minz
+ 0.005721283610910177),
1835 (maxx
- 0.0037705078721046448, -0.01225233543664217, minz
+ 0.003770505078136921),
1836 (maxx
- 0.005721286404877901, -0.01225233543664217, minz
+ 0.002169542945921421),
1837 (maxx
- 0.007946913596242666, -0.01225233543664217, minz
+ 0.0009799208492040634),
1838 (maxx
- 0.010361860506236553, -0.01225233543664217, minz
+ 0.00024735648185014725),
1839 (minx
+ 0.012873311520098518, -0.01225233543664217, minz
),
1840 (minx
+ 0.010361851193010807, -0.01225233543664217, minz
+ 0.00024735648185014725),
1841 (minx
+ 0.007946905214339495, -0.01225233543664217, minz
+ 0.0009799255058169365),
1842 (minx
+ 0.005721278488636017, -0.01225233543664217, minz
+ 0.0021695485338568687),
1843 (minx
+ 0.003770500421524048, -0.01225233543664217, minz
+ 0.0037705106660723686),
1844 (minx
+ 0.002169538289308548, -0.01225233543664217, minz
+ 0.005721290595829487),
1845 (minx
+ 0.0009799189865589142, -0.012252334505319595, minz
+ 0.007946919184178114),
1846 (minx
+ 0.000247354619204998, -0.012252334505319595, minz
+ 0.010361866094172001),
1847 (minx
, -0.012252334505319595, maxz
- 0.012873305270680646),
1848 (minx
+ 0.0002473592758178711, -0.012252334505319595, maxz
- 0.010361845139414072),
1849 (minx
+ 0.0009799282997846603, -0.012252334505319595, maxz
- 0.007946899626404047),
1850 (minx
+ 0.0021695513278245926, -0.012252332642674446, maxz
- 0.005721272900700569),
1851 (minx
+ 0.003770517185330391, -0.012252332642674446, maxz
- 0.003770497627556324),
1852 (minx
+ 0.005721298512071371, -0.012252332642674446, maxz
- 0.0021695364266633987),
1853 (minx
+ 0.00794692849740386, -0.012252332642674446, maxz
- 0.0009799161925911903),
1854 (minx
+ 0.010361875407397747, -0.012252332642674446, maxz
- 0.000247354619204998),
1855 (minx
+ 0.01287331597587027, -0.012252331711351871, maxz
- 0.006033936515450478),
1856 (maxx
- 0.011539019644260406, -0.012252331711351871, maxz
- 0.006165354512631893),
1857 (maxx
- 0.010255999164655805, -0.012252331711351871, maxz
- 0.006554554216563702),
1858 (maxx
- 0.009073560824617743, -0.012252332642674446, maxz
- 0.007186579518020153),
1859 (maxx
- 0.008037144783884287, -0.012252332642674446, maxz
- 0.008037144318223),
1860 (maxx
- 0.007186580915004015, -0.012252332642674446, maxz
- 0.009073559893295169),
1861 (maxx
- 0.006554554216563702, -0.012252332642674446, maxz
- 0.010255998698994517),
1862 (maxx
- 0.006165354512631893, -0.012252332642674446, maxz
- 0.011539018712937832),
1863 (maxx
- 0.006033937446773052, -0.012252332642674446, maxz
- 0.012873314963572108),
1864 (maxx
- 0.0061653535813093185, -0.012252332642674446, minz
+ 0.011539021041244268),
1865 (maxx
- 0.006554554216563702, -0.012252332642674446, minz
+ 0.01025600079447031),
1866 (maxx
- 0.007186580915004015, -0.012252332642674446, minz
+ 0.009073561755940318),
1867 (maxx
- 0.008037144783884287, -0.012252332642674446, minz
+ 0.008037145715206861),
1868 (maxx
- 0.009073561057448387, -0.012252332642674446, minz
+ 0.007186580449342728),
1869 (maxx
- 0.010256000561639667, -0.012252334505319595, minz
+ 0.006554553750902414),
1870 (maxx
- 0.011539021274074912, -0.012252334505319595, minz
+ 0.0061653549782931805),
1871 (minx
+ 0.012873313747317816, -0.012252334505319595, minz
+ 0.006033938378095627),
1872 (minx
+ 0.01153901673387736, -0.012252334505319595, minz
+ 0.0061653549782931805),
1873 (minx
+ 0.01025599567219615, -0.012252334505319595, minz
+ 0.0065545570105314255),
1874 (minx
+ 0.009073557797819376, -0.012252332642674446, minz
+ 0.007186583708971739),
1875 (minx
+ 0.008037141524255276, -0.012252332642674446, minz
+ 0.008037148043513298),
1876 (minx
+ 0.007186576724052429, -0.012252332642674446, minz
+ 0.00907356571406126),
1877 (minx
+ 0.006554551888257265, -0.012252332642674446, minz
+ 0.010256004752591252),
1878 (minx
+ 0.006165352184325457, -0.012252332642674446, minz
+ 0.011539026163518429),
1879 (minx
+ 0.006033936981111765, -0.012252332642674446, maxz
- 0.012873308875832823),
1880 (minx
+ 0.006165355443954468, -0.012252332642674446, maxz
- 0.011539011728018522),
1881 (minx
+ 0.006554556544870138, -0.012252332642674446, maxz
- 0.010255991481244564),
1882 (minx
+ 0.007186584174633026, -0.012252332642674446, maxz
- 0.00907355290837586),
1883 (minx
+ 0.008037150837481022, -0.012252332642674446, maxz
- 0.008037138264626265),
1884 (minx
+ 0.009073568508028984, -0.012252332642674446, maxz
- 0.007186574395745993),
1885 (minx
+ 0.010256008245050907, -0.012252331711351871, maxz
- 0.006554548628628254),
1886 (minx
+ 0.011539029655978084, -0.012252331711351871, maxz
- 0.006165351718664169),
1887 (maxx
- 0.01237887132447213, -0.012252329848706722, maxz
- 0.010387574089691043),
1888 (maxx
- 0.011465257033705711, -0.012252329848706722, maxz
- 0.01076600537635386),
1889 (maxx
- 0.01108119694981724, -0.012252329848706722, maxz
- 0.011081195320002735),
1890 (maxx
- 0.010766007238999009, -0.012252329848706722, maxz
- 0.011465255171060562),
1891 (maxx
- 0.010531799867749214, -0.012252329848706722, maxz
- 0.01190342620247975),
1892 (maxx
- 0.01108119694981724, -0.012252329848706722, minz
+ 0.01108119951095432),
1893 (maxx
- 0.011903428356163204, -0.012252329848706722, minz
+ 0.010531801730394363),
1894 (minx
+ 0.012378871033433825, -0.012252329848706722, minz
+ 0.010387577582150698),
1895 (minx
+ 0.011465256451629102, -0.012252329848706722, minz
+ 0.01076600980013609),
1896 (minx
+ 0.01076600607484579, -0.012252329848706722, minz
+ 0.011465260875411332),
1897 (minx
+ 0.010531799402087927, -0.012252329848706722, minz
+ 0.011903432430699468),
1898 (minx
+ 0.010338877560570836, -0.012252329848706722, maxz
- 0.01287331168983985),
1899 (minx
+ 0.010531801264733076, -0.012252329848706722, maxz
- 0.01190342364134267),
1900 (minx
+ 0.011081199743784964, -0.012252329848706722, maxz
- 0.011081192875280976),
1901 (minx
+ 0.011465260293334723, -0.012252329848706722, maxz
- 0.010766003280878067),
1902 (maxx
- 0.01287331586396423, -0.012252329848706722, maxz
- 0.010338874999433756),
1903 (maxx
- 0.011903427948709577, -0.012252329848706722, maxz
- 0.010531798237934709),
1904 (maxx
- 0.010387575486674905, -0.012252329848706722, maxz
- 0.012378869636449963),
1905 (maxx
- 0.010338877094909549, -0.012252329848706722, maxz
- 0.012873313945746867),
1906 (maxx
- 0.010387575486674905, -0.012252329848706722, minz
+ 0.012378874002024531),
1907 (maxx
- 0.010531799867749214, -0.012252329848706722, minz
+ 0.011903430917300284),
1908 (maxx
- 0.010766007238999009, -0.012252329848706722, minz
+ 0.011465259245596826),
1909 (maxx
- 0.011465257382951677, -0.012252329848706722, minz
+ 0.010766008868813515),
1910 (maxx
- 0.01237887202296406, -0.012252329848706722, minz
+ 0.010387577582150698),
1911 (minx
+ 0.01287331567758343, -0.012252329848706722, minz
+ 0.010338879656046629),
1912 (minx
+ 0.011903427541255951, -0.012252329848706722, minz
+ 0.010531802894547582),
1913 (minx
+ 0.011081196367740631, -0.012252329848706722, minz
+ 0.011081200325861573),
1914 (minx
+ 0.010387575021013618, -0.012252329848706722, minz
+ 0.01237887586466968),
1915 (minx
+ 0.01038757641799748, -0.012252329848706722, maxz
- 0.012378867017105222),
1916 (minx
+ 0.010766008868813515, -0.012252329848706722, maxz
- 0.011465252609923482),
1917 (minx
+ 0.011903432314284146, -0.012252329848706722, maxz
- 0.01053179637528956),
1918 (minx
+ 0.01237887580646202, -0.012252329848706722, maxz
- 0.010387573391199112)]
1921 myfaces
= [(0, 1, 3, 2), (2, 3, 5, 4), (4, 5, 7, 6), (6, 7, 9, 8), (8, 9, 11, 10),
1922 (10, 11, 13, 12), (12, 13, 15, 14), (14, 15, 17, 16), (16, 17, 19, 18), (18, 19, 21, 20),
1923 (20, 21, 23, 22), (22, 23, 25, 24), (24, 25, 27, 26), (26, 27, 29, 28), (28, 29, 31, 30),
1924 (30, 31, 33, 32), (32, 33, 35, 34), (34, 35, 37, 36), (36, 37, 39, 38), (38, 39, 41, 40),
1925 (40, 41, 43, 42), (42, 43, 45, 44), (44, 45, 47, 46), (46, 47, 49, 48), (48, 49, 51, 50),
1926 (50, 51, 53, 52), (52, 53, 55, 54), (54, 55, 57, 56), (56, 57, 59, 58), (58, 59, 61, 60),
1927 (60, 61, 63, 62), (62, 63, 1, 0), (45, 43, 85, 86), (23, 21, 74, 75), (51, 49, 88, 89),
1928 (7, 5, 66, 67), (29, 27, 77, 78), (57, 55, 91, 92), (35, 33, 80, 81), (13, 11, 69, 70),
1929 (63, 61, 94, 95), (41, 39, 83, 84), (19, 17, 72, 73), (47, 45, 86, 87), (3, 1, 64, 65),
1930 (25, 23, 75, 76), (53, 51, 89, 90), (9, 7, 67, 68), (31, 29, 78, 79), (59, 57, 92, 93),
1931 (37, 35, 81, 82), (15, 13, 70, 71), (1, 63, 95, 64), (43, 41, 84, 85), (21, 19, 73, 74),
1932 (49, 47, 87, 88), (5, 3, 65, 66), (27, 25, 76, 77), (55, 53, 90, 91), (11, 9, 68, 69),
1933 (33, 31, 79, 80), (61, 59, 93, 94), (39, 37, 82, 83), (17, 15, 71, 72), (89, 88, 120, 121),
1934 (67, 66, 98, 99), (78, 77, 109, 110), (87, 86, 118, 119), (65, 64, 96, 97), (76, 75, 107, 108),
1935 (64, 95, 127, 96), (85, 84, 116, 117), (74, 73, 105, 106), (94, 93, 125, 126), (83, 82, 114, 115),
1936 (72, 71, 103, 104), (92, 91, 123, 124), (81, 80, 112, 113), (70, 69, 101, 102), (90, 89, 121, 122),
1937 (68, 67, 99, 100), (79, 78, 110, 111), (88, 87, 119, 120), (66, 65, 97, 98), (77, 76, 108, 109),
1938 (86, 85, 117, 118), (75, 74, 106, 107), (95, 94, 126, 127), (84, 83, 115, 116), (73, 72, 104, 105),
1939 (93, 92, 124, 125), (82, 81, 113, 114), (71, 70, 102, 103), (91, 90, 122, 123), (69, 68, 100, 101),
1940 (80, 79, 111, 112), (123, 122, 154, 155), (101, 100, 132, 133), (112, 111, 143, 144),
1941 (121, 120, 152, 153),
1942 (99, 98, 130, 131), (110, 109, 141, 142), (119, 118, 150, 151), (97, 96, 128, 129), (108, 107, 139, 140),
1943 (96, 127, 159, 128), (117, 116, 148, 149), (106, 105, 137, 138), (126, 125, 157, 158),
1944 (115, 114, 146, 147),
1945 (104, 103, 135, 136), (124, 123, 155, 156), (113, 112, 144, 145), (102, 101, 133, 134),
1946 (122, 121, 153, 154),
1947 (100, 99, 131, 132), (111, 110, 142, 143), (120, 119, 151, 152), (98, 97, 129, 130),
1948 (109, 108, 140, 141),
1949 (118, 117, 149, 150), (107, 106, 138, 139), (127, 126, 158, 159), (116, 115, 147, 148),
1950 (105, 104, 136, 137),
1951 (125, 124, 156, 157), (114, 113, 145, 146), (103, 102, 134, 135), (157, 156, 173, 174),
1952 (133, 132, 162, 163),
1953 (134, 133, 163, 164), (132, 131, 161, 162), (150, 149, 169, 170), (146, 145, 167, 185),
1954 (135, 134, 164, 177),
1955 (155, 154, 172, 189), (144, 143, 183, 184), (153, 152, 171, 188), (131, 130, 176, 161),
1956 (142, 141, 182, 166),
1957 (151, 150, 170, 187), (129, 128, 175, 160), (140, 139, 181, 165), (128, 159, 191, 175),
1958 (149, 148, 186, 169),
1959 (138, 137, 179, 180), (158, 157, 174, 190), (147, 146, 185, 168), (136, 135, 177, 178),
1960 (156, 155, 189, 173),
1961 (145, 144, 184, 167), (154, 153, 188, 172), (143, 142, 166, 183), (152, 151, 187, 171),
1962 (130, 129, 160, 176),
1963 (141, 140, 165, 182), (139, 138, 180, 181), (159, 158, 190, 191), (148, 147, 168, 186),
1964 (137, 136, 178, 179),
1965 (175, 191, 190, 174, 173, 189, 172, 188, 171, 187, 170, 169, 186, 168, 185, 167, 184, 183, 166, 182, 165,
1966 181, 180, 179, 178, 177, 164, 163, 162, 161, 176, 160)]
1968 return myvertex
, myfaces
1971 # ----------------------------------------------
1973 # ----------------------------------------------
1974 def handle_model_06():
1975 # ------------------------------------
1977 # ------------------------------------
1978 minx
= -0.021158458665013313
1979 maxx
= 0.021158456802368164
1980 maxy
= 6.581399869531879e-10
1981 minz
= -0.021158462390303612
1982 maxz
= 0.021158454939723015
1985 myvertex
= [(maxx
- 0.021158457078388343, maxy
, maxz
- 0.01716466387733817),
1986 (maxx
- 0.021158457078388343, -0.004451401997357607, maxz
- 0.01716466387733817),
1987 (maxx
- 0.02037930692313239, maxy
, maxz
- 0.017241403926163912),
1988 (maxx
- 0.02037930692313239, -0.004451401997357607, maxz
- 0.017241403460502625),
1989 (maxx
- 0.019630099064670503, maxy
, maxz
- 0.017468673642724752),
1990 (maxx
- 0.019630099064670503, -0.004451401997357607, maxz
- 0.017468673177063465),
1991 (maxx
- 0.018939625238999724, maxy
, maxz
- 0.017837739316746593),
1992 (maxx
- 0.018939625238999724, -0.004451401997357607, maxz
- 0.017837738851085305),
1993 (maxx
- 0.018334419932216406, maxy
, maxz
- 0.018334418768063188),
1994 (maxx
- 0.018334419932216406, -0.004451401997357607, maxz
- 0.018334418069571257),
1995 (maxx
- 0.017837740713730454, maxy
- 6.581399869531879e-10, maxz
- 0.018939624540507793),
1996 (maxx
- 0.017837740713730454, -0.004451401997357607, maxz
- 0.018939623842015862),
1997 (maxx
- 0.017468675039708614, maxy
- 6.581399869531879e-10, maxz
- 0.01963009813334793),
1998 (maxx
- 0.017468675039708614, -0.004451401997357607, maxz
- 0.01963009755127132),
1999 (maxx
- 0.017241405323147774, maxy
- 6.581399869531879e-10, maxz
- 0.020379305817186832),
2000 (maxx
- 0.017241405323147774, -0.004451401997357607, maxz
- 0.020379305293317884),
2001 (maxx
- 0.01716466573998332, maxy
- 6.581399869531879e-10, maxz
- 0.02115845568246083),
2002 (maxx
- 0.01716466573998332, -0.004451401997357607, maxz
- 0.021158455207246157),
2003 (maxx
- 0.017241404857486486, maxy
- 6.581399869531879e-10, minz
+ 0.020379311696160585),
2004 (maxx
- 0.017241404857486486, -0.004451401997357607, minz
+ 0.02037931210361421),
2005 (maxx
- 0.017468674574047327, maxy
- 6.581399869531879e-10, minz
+ 0.01963010407052934),
2006 (maxx
- 0.017468674574047327, -0.004451401997357607, minz
+ 0.01963010453619063),
2007 (maxx
- 0.017837740713730454, maxy
- 6.581399869531879e-10, minz
+ 0.01893962942995131),
2008 (maxx
- 0.017837740713730454, -0.004451401997357607, minz
+ 0.01893963012844324),
2009 (maxx
- 0.018334419932216406, -6.581399869531879e-10, minz
+ 0.01833442412316799),
2010 (maxx
- 0.018334419932216406, -0.004451401997357607, minz
+ 0.018334424821659923),
2011 (maxx
- 0.018939625471830368, -6.581399869531879e-10, minz
+ 0.01783774490468204),
2012 (maxx
- 0.018939625471830368, -0.004451401997357607, minz
+ 0.017837745370343328),
2013 (maxx
- 0.019630099763162434, -6.581399869531879e-10, minz
+ 0.01746867853216827),
2014 (maxx
- 0.019630099763162434, -0.004451401997357607, minz
+ 0.017468678764998913),
2015 (maxx
- 0.020379307912662625, -6.581399869531879e-10, minz
+ 0.01724140951409936),
2016 (maxx
- 0.020379307912662625, -0.004451401997357607, minz
+ 0.01724140951409936),
2017 (minx
+ 0.02115845708765063, -6.581399869531879e-10, minz
+ 0.017164669930934906),
2018 (minx
+ 0.02115845708765063, -0.004451401997357607, minz
+ 0.017164670396596193),
2019 (minx
+ 0.020379306632094085, -6.581399869531879e-10, minz
+ 0.01724140951409936),
2020 (minx
+ 0.020379306632094085, -0.004451401997357607, minz
+ 0.017241409979760647),
2021 (minx
+ 0.019630098715424538, -6.581399869531879e-10, minz
+ 0.017468680161982775),
2022 (minx
+ 0.019630098715424538, -0.004451401997357607, minz
+ 0.017468680627644062),
2023 (minx
+ 0.018939624773338437, -6.581399869531879e-10, minz
+ 0.017837746301665902),
2024 (minx
+ 0.018939624773338437, -0.004451401997357607, minz
+ 0.017837747000157833),
2025 (minx
+ 0.01833441946655512, -6.581399869531879e-10, minz
+ 0.018334425752982497),
2026 (minx
+ 0.01833441946655512, -0.004451401997357607, minz
+ 0.018334426451474428),
2027 (minx
+ 0.017837740248069167, maxy
- 6.581399869531879e-10, minz
+ 0.018939631758257747),
2028 (minx
+ 0.017837740248069167, -0.004451401997357607, minz
+ 0.018939632223919034),
2029 (minx
+ 0.017468674574047327, maxy
- 6.581399869531879e-10, minz
+ 0.019630106398835778),
2030 (minx
+ 0.017468674574047327, -0.004451401997357607, minz
+ 0.019630106864497066),
2031 (minx
+ 0.01724140578880906, maxy
- 6.581399869531879e-10, minz
+ 0.02037931466475129),
2032 (minx
+ 0.01724140578880906, -0.004451401997357607, minz
+ 0.02037931513041258),
2033 (minx
+ 0.017164666671305895, maxy
- 6.581399869531879e-10, maxz
- 0.021158452127581606),
2034 (minx
+ 0.017164666671305895, -0.004451401997357607, maxz
- 0.02115845165236685),
2035 (minx
+ 0.017241406720131636, maxy
- 6.581399869531879e-10, maxz
- 0.02037930174265057),
2036 (minx
+ 0.017241406720131636, -0.004451401997357607, maxz
- 0.02037930127698928),
2037 (minx
+ 0.01746867736801505, maxy
- 6.581399869531879e-10, maxz
- 0.019630093942396343),
2038 (minx
+ 0.01746867736801505, -0.004451401997357607, maxz
- 0.019630093476735055),
2039 (minx
+ 0.01783774420619011, maxy
- 6.581399869531879e-10, maxz
- 0.018939620116725564),
2040 (minx
+ 0.01783774420619011, -0.004451401997357607, maxz
- 0.018939619651064277),
2041 (minx
+ 0.018334424821659923, maxy
, maxz
- 0.01833441504277289),
2042 (minx
+ 0.018334424821659923, -0.004451401997357607, maxz
- 0.018334414809942245),
2043 (minx
+ 0.018939631059765816, maxy
, maxz
- 0.017837736289948225),
2044 (minx
+ 0.018939631059765816, -0.004451401997357607, maxz
- 0.017837735824286938),
2045 (minx
+ 0.019630105700343847, maxy
, maxz
- 0.017468671081587672),
2046 (minx
+ 0.019630105700343847, -0.004451401997357607, maxz
- 0.01746867084875703),
2047 (minx
+ 0.020379314315505326, maxy
, maxz
- 0.017241402994841337),
2048 (minx
+ 0.020379314315505326, -0.004451401997357607, maxz
- 0.017241402063518763),
2049 (minx
+ 0.02115845651317172, -0.01480177417397499, maxz
),
2050 (maxx
- 0.017030648421496153, -0.01480177417397499, maxz
- 0.00040655583143234253),
2051 (maxx
- 0.013061466626822948, -0.01480177417397499, maxz
- 0.0016105938702821732),
2052 (maxx
- 0.00940344762057066, -0.01480177417397499, maxz
- 0.0035658441483974457),
2053 (maxx
- 0.006197170354425907, -0.01480177417397499, maxz
- 0.006197171285748482),
2054 (maxx
- 0.0035658441483974457, -0.01480177417397499, maxz
- 0.009403450414538383),
2055 (maxx
- 0.0016105901449918747, -0.014801775105297565, maxz
- 0.013061468489468098),
2056 (maxx
- 0.0004065539687871933, -0.014801775105297565, maxz
- 0.017030649818480015),
2057 (maxx
, -0.014801775105297565, minz
+ 0.0211584585064859),
2058 (maxx
- 0.0004065539687871933, -0.014801775105297565, minz
+ 0.017030648421496153),
2059 (maxx
- 0.0016105901449918747, -0.014801775105297565, minz
+ 0.013061468489468098),
2060 (maxx
- 0.0035658441483974457, -0.01480177603662014, minz
+ 0.00940344762057066),
2061 (maxx
- 0.006197170354425907, -0.01480177603662014, minz
+ 0.006197166629135609),
2062 (maxx
- 0.009403450414538383, -0.01480177603662014, minz
+ 0.0035658422857522964),
2063 (maxx
- 0.013061470352113247, -0.01480177603662014, minz
+ 0.0016105901449918747),
2064 (maxx
- 0.017030653543770313, -0.01480177603662014, minz
+ 0.0004065539687871933),
2065 (minx
+ 0.02115844961887081, -0.01480177603662014, minz
),
2066 (minx
+ 0.017030637711286545, -0.01480177603662014, minz
+ 0.0004065539687871933),
2067 (minx
+ 0.013061455450952053, -0.01480177603662014, minz
+ 0.0016105975955724716),
2068 (minx
+ 0.009403438307344913, -0.01480177603662014, minz
+ 0.0035658497363328934),
2069 (minx
+ 0.006197156384587288, -0.01480177603662014, minz
+ 0.006197175942361355),
2070 (minx
+ 0.003565831109881401, -0.01480177603662014, minz
+ 0.00940345972776413),
2071 (minx
+ 0.001610584557056427, -0.014801775105297565, minz
+ 0.013061481527984142),
2072 (minx
+ 0.0004065483808517456, -0.014801775105297565, minz
+ 0.01703066425397992),
2073 (minx
, -0.014801775105297565, maxz
- 0.021158439990372813),
2074 (minx
+ 0.00040655583143234253, -0.014801775105297565, maxz
- 0.01703062793239951),
2075 (minx
+ 0.0016105994582176208, -0.014801775105297565, maxz
- 0.013061447069048882),
2076 (minx
+ 0.0035658515989780426, -0.01480177417397499, maxz
- 0.009403428062796593),
2077 (minx
+ 0.006197184324264526, -0.01480177417397499, maxz
- 0.006197153590619564),
2078 (minx
+ 0.00940346997231245, -0.01480177417397499, maxz
- 0.003565829247236252),
2079 (minx
+ 0.013061493635177612, -0.01480177417397499, maxz
- 0.0016105808317661285),
2080 (minx
+ 0.017030677758157253, -0.01480177417397499, maxz
- 0.00040655024349689484),
2081 (minx
+ 0.02115845651317172, -0.017049500718712807, maxz
),
2082 (maxx
- 0.017030648421496153, -0.017049500718712807, maxz
- 0.00040655583143234253),
2083 (maxx
- 0.013061466626822948, -0.017049500718712807, maxz
- 0.0016105938702821732),
2084 (maxx
- 0.00940344762057066, -0.017049500718712807, maxz
- 0.0035658441483974457),
2085 (maxx
- 0.006197170354425907, -0.017049500718712807, maxz
- 0.006197171285748482),
2086 (maxx
- 0.0035658441483974457, -0.017049500718712807, maxz
- 0.009403450414538383),
2087 (maxx
- 0.0016105901449918747, -0.017049502581357956, maxz
- 0.013061468489468098),
2088 (maxx
- 0.0004065539687871933, -0.017049502581357956, maxz
- 0.017030649818480015),
2089 (maxx
, -0.017049502581357956, maxz
- 0.021158458637408728),
2090 (maxx
- 0.0004065539687871933, -0.017049502581357956, minz
+ 0.017030648421496153),
2091 (maxx
- 0.0016105901449918747, -0.017049502581357956, minz
+ 0.013061468489468098),
2092 (maxx
- 0.0035658441483974457, -0.017049502581357956, minz
+ 0.00940344762057066),
2093 (maxx
- 0.006197170354425907, -0.017049502581357956, minz
+ 0.006197166629135609),
2094 (maxx
- 0.009403450414538383, -0.017049502581357956, minz
+ 0.0035658422857522964),
2095 (maxx
- 0.013061470352113247, -0.017049502581357956, minz
+ 0.0016105901449918747),
2096 (maxx
- 0.017030653543770313, -0.017049502581357956, minz
+ 0.0004065539687871933),
2097 (minx
+ 0.02115844961887081, -0.017049502581357956, minz
),
2098 (minx
+ 0.017030637711286545, -0.017049502581357956, minz
+ 0.0004065539687871933),
2099 (minx
+ 0.013061455450952053, -0.017049502581357956, minz
+ 0.0016105975955724716),
2100 (minx
+ 0.009403438307344913, -0.017049502581357956, minz
+ 0.0035658497363328934),
2101 (minx
+ 0.006197156384587288, -0.017049502581357956, minz
+ 0.006197175942361355),
2102 (minx
+ 0.003565831109881401, -0.017049502581357956, minz
+ 0.00940345972776413),
2103 (minx
+ 0.001610584557056427, -0.017049502581357956, minz
+ 0.013061481527984142),
2104 (minx
+ 0.0004065483808517456, -0.017049502581357956, minz
+ 0.01703066425397992),
2105 (minx
, -0.017049502581357956, maxz
- 0.02115843980423726),
2106 (minx
+ 0.00040655583143234253, -0.017049502581357956, maxz
- 0.01703062793239951),
2107 (minx
+ 0.0016105994582176208, -0.017049502581357956, maxz
- 0.013061447069048882),
2108 (minx
+ 0.0035658515989780426, -0.017049500718712807, maxz
- 0.009403428062796593),
2109 (minx
+ 0.006197184324264526, -0.017049500718712807, maxz
- 0.006197153590619564),
2110 (minx
+ 0.00940346997231245, -0.017049500718712807, maxz
- 0.003565829247236252),
2111 (minx
+ 0.013061493635177612, -0.017049500718712807, maxz
- 0.0016105808317661285),
2112 (minx
+ 0.017030677758157253, -0.017049500718712807, maxz
- 0.00040655024349689484),
2113 (minx
+ 0.021158456942334758, -0.017049498856067657, maxz
- 0.00991731882095337),
2114 (maxx
- 0.01896542147733271, -0.017049498856067657, maxz
- 0.010133316740393639),
2115 (maxx
- 0.016856661066412926, -0.017049498856067657, maxz
- 0.010773001238703728),
2116 (maxx
- 0.014913217630237341, -0.017049500718712807, maxz
- 0.01181179191917181),
2117 (maxx
- 0.013209773227572441, -0.017049500718712807, maxz
- 0.013209772296249866),
2118 (maxx
- 0.011811794713139534, -0.017049500718712807, maxz
- 0.014913215301930904),
2119 (maxx
- 0.010773001238703728, -0.017049500718712807, maxz
- 0.01685666013509035),
2120 (maxx
- 0.010133316740393639, -0.017049500718712807, maxz
- 0.01896541938185692),
2121 (maxx
- 0.009917320683598518, -0.017049500718712807, maxz
- 0.02115845573538011),
2122 (maxx
- 0.01013331487774849, -0.017049500718712807, minz
+ 0.018965424969792366),
2123 (maxx
- 0.010773001238703728, -0.017049500718712807, minz
+ 0.01685666525736451),
2124 (maxx
- 0.011811794713139534, -0.017049500718712807, minz
+ 0.01491321949288249),
2125 (maxx
- 0.013209773227572441, -0.017049500718712807, minz
+ 0.01320977695286274),
2126 (maxx
- 0.014913217630237341, -0.017049500718712807, minz
+ 0.011811795644462109),
2127 (maxx
- 0.016856663394719362, -0.017049502581357956, minz
+ 0.010773002170026302),
2128 (maxx
- 0.01896542403846979, -0.017049502581357956, minz
+ 0.010133319534361362),
2129 (minx
+ 0.021158453279507494, -0.017049502581357956, minz
+ 0.009917323477566242),
2130 (minx
+ 0.018965415423735976, -0.017049502581357956, minz
+ 0.010133319534361362),
2131 (minx
+ 0.016856654547154903, -0.017049502581357956, minz
+ 0.01077300775796175),
2132 (minx
+ 0.014913210645318031, -0.017049500718712807, minz
+ 0.011811801232397556),
2133 (minx
+ 0.013209767639636993, -0.017049500718712807, minz
+ 0.013209780678153038),
2134 (minx
+ 0.011811788193881512, -0.017049500718712807, minz
+ 0.014913226012140512),
2135 (minx
+ 0.01077299751341343, -0.017049500718712807, minz
+ 0.016856671776622534),
2136 (minx
+ 0.010133313946425915, -0.017049500718712807, minz
+ 0.018965433351695538),
2137 (minx
+ 0.009917320683598518, -0.017049500718712807, maxz
- 0.02115844572963077),
2138 (minx
+ 0.010133318603038788, -0.017049500718712807, maxz
- 0.01896540797315538),
2139 (minx
+ 0.0107730058953166, -0.017049500718712807, maxz
- 0.01685664849355817),
2140 (minx
+ 0.011811800301074982, -0.017049500718712807, maxz
- 0.014913204126060009),
2141 (minx
+ 0.013209782540798187, -0.017049500718712807, maxz
- 0.013209762051701546),
2142 (minx
+ 0.014913228340446949, -0.017049500718712807, maxz
- 0.011811783537268639),
2143 (minx
+ 0.016856675501912832, -0.017049498856067657, maxz
- 0.010772991925477982),
2144 (minx
+ 0.01896543661132455, -0.017049498856067657, maxz
- 0.010133312083780766),
2145 (maxx
- 0.020345793396700174, -0.017049498856067657, maxz
- 0.01707291603088379),
2146 (maxx
- 0.018844185629859567, -0.017049498856067657, maxz
- 0.017694902140647173),
2147 (maxx
- 0.01821294822730124, -0.017049498856067657, maxz
- 0.01821294496767223),
2148 (maxx
- 0.017694905400276184, -0.017049498856067657, maxz
- 0.018844182137399912),
2149 (maxx
- 0.017309964634478092, -0.017049498856067657, maxz
- 0.0195643559563905),
2150 (maxx
- 0.01821294822730124, -0.017049498856067657, minz
+ 0.01821295404806733),
2151 (maxx
- 0.019564359914511442, -0.017049498856067657, minz
+ 0.017309968825429678),
2152 (minx
+ 0.02034579199971631, -0.017049498856067657, minz
+ 0.017072923481464386),
2153 (minx
+ 0.018844183767214417, -0.017049498856067657, minz
+ 0.017694910988211632),
2154 (minx
+ 0.01769490260630846, -0.017049498856067657, minz
+ 0.01884419354610145),
2155 (minx
+ 0.017309962771832943, -0.017049498856067657, minz
+ 0.01956436806358397),
2156 (minx
+ 0.016992878634482622, -0.017049498856067657, maxz
- 0.021158450354705316),
2157 (minx
+ 0.017309966031461954, -0.017049498856067657, maxz
- 0.019564351649023592),
2158 (minx
+ 0.01821295195259154, -0.017049498856067657, maxz
- 0.018212941009551287),
2159 (minx
+ 0.01884419028647244, -0.017049498856067657, maxz
- 0.017694898648187518),
2160 (maxx
- 0.021158457657990293, -0.017049498856067657, maxz
- 0.016992874443531036),
2161 (maxx
- 0.01956435921601951, -0.017049498856067657, maxz
- 0.017309961607679725),
2162 (maxx
- 0.017072918359190226, -0.017049498856067657, maxz
- 0.020345790137071162),
2163 (maxx
- 0.016992878168821335, -0.017049498856067657, maxz
- 0.021158454062492393),
2164 (maxx
- 0.017072918359190226, -0.017049498856067657, minz
+ 0.020345799159258604),
2165 (maxx
- 0.017309964634478092, -0.017049498856067657, minz
+ 0.01956436550244689),
2166 (maxx
- 0.017694905400276184, -0.017049498856067657, minz
+ 0.01884419098496437),
2167 (maxx
- 0.018844186328351498, -0.017049498856067657, minz
+ 0.01769490959122777),
2168 (maxx
- 0.020345794560853392, -0.017049498856067657, minz
+ 0.017072923481464386),
2169 (minx
+ 0.021158456452073482, -0.017049498856067657, minz
+ 0.01699288422241807),
2170 (minx
+ 0.019564357702620327, -0.017049498856067657, minz
+ 0.01730997092090547),
2171 (minx
+ 0.01821294636465609, -0.017049498856067657, minz
+ 0.018212955445051193),
2172 (minx
+ 0.01707291742786765, -0.017049498856067657, minz
+ 0.020345802302472293),
2173 (minx
+ 0.017072919756174088, -0.017049498856067657, maxz
- 0.020345785829704255),
2174 (minx
+ 0.017694907495751977, -0.017049498856067657, maxz
- 0.018844177946448326),
2175 (minx
+ 0.01956436550244689, -0.017049498856067657, maxz
- 0.017309958348050714),
2176 (minx
+ 0.020345799799542874, -0.017049498856067657, maxz
- 0.017072914633899927)]
2179 myfaces
= [(0, 1, 3, 2), (2, 3, 5, 4), (4, 5, 7, 6), (6, 7, 9, 8), (8, 9, 11, 10),
2180 (10, 11, 13, 12), (12, 13, 15, 14), (14, 15, 17, 16), (16, 17, 19, 18), (18, 19, 21, 20),
2181 (20, 21, 23, 22), (22, 23, 25, 24), (24, 25, 27, 26), (26, 27, 29, 28), (28, 29, 31, 30),
2182 (30, 31, 33, 32), (32, 33, 35, 34), (34, 35, 37, 36), (36, 37, 39, 38), (38, 39, 41, 40),
2183 (40, 41, 43, 42), (42, 43, 45, 44), (44, 45, 47, 46), (46, 47, 49, 48), (48, 49, 51, 50),
2184 (50, 51, 53, 52), (52, 53, 55, 54), (54, 55, 57, 56), (56, 57, 59, 58), (58, 59, 61, 60),
2185 (60, 61, 63, 62), (62, 63, 1, 0), (45, 43, 85, 86), (23, 21, 74, 75), (51, 49, 88, 89),
2186 (7, 5, 66, 67), (29, 27, 77, 78), (57, 55, 91, 92), (35, 33, 80, 81), (13, 11, 69, 70),
2187 (63, 61, 94, 95), (41, 39, 83, 84), (19, 17, 72, 73), (47, 45, 86, 87), (3, 1, 64, 65),
2188 (25, 23, 75, 76), (53, 51, 89, 90), (9, 7, 67, 68), (31, 29, 78, 79), (59, 57, 92, 93),
2189 (37, 35, 81, 82), (15, 13, 70, 71), (1, 63, 95, 64), (43, 41, 84, 85), (21, 19, 73, 74),
2190 (49, 47, 87, 88), (5, 3, 65, 66), (27, 25, 76, 77), (55, 53, 90, 91), (11, 9, 68, 69),
2191 (33, 31, 79, 80), (61, 59, 93, 94), (39, 37, 82, 83), (17, 15, 71, 72), (89, 88, 120, 121),
2192 (67, 66, 98, 99), (78, 77, 109, 110), (87, 86, 118, 119), (65, 64, 96, 97), (76, 75, 107, 108),
2193 (64, 95, 127, 96), (85, 84, 116, 117), (74, 73, 105, 106), (94, 93, 125, 126), (83, 82, 114, 115),
2194 (72, 71, 103, 104), (92, 91, 123, 124), (81, 80, 112, 113), (70, 69, 101, 102), (90, 89, 121, 122),
2195 (68, 67, 99, 100), (79, 78, 110, 111), (88, 87, 119, 120), (66, 65, 97, 98), (77, 76, 108, 109),
2196 (86, 85, 117, 118), (75, 74, 106, 107), (95, 94, 126, 127), (84, 83, 115, 116), (73, 72, 104, 105),
2197 (93, 92, 124, 125), (82, 81, 113, 114), (71, 70, 102, 103), (91, 90, 122, 123), (69, 68, 100, 101),
2198 (80, 79, 111, 112), (123, 122, 154, 155), (101, 100, 132, 133), (112, 111, 143, 144),
2199 (121, 120, 152, 153),
2200 (99, 98, 130, 131), (110, 109, 141, 142), (119, 118, 150, 151), (97, 96, 128, 129), (108, 107, 139, 140),
2201 (96, 127, 159, 128), (117, 116, 148, 149), (106, 105, 137, 138), (126, 125, 157, 158),
2202 (115, 114, 146, 147),
2203 (104, 103, 135, 136), (124, 123, 155, 156), (113, 112, 144, 145), (102, 101, 133, 134),
2204 (122, 121, 153, 154),
2205 (100, 99, 131, 132), (111, 110, 142, 143), (120, 119, 151, 152), (98, 97, 129, 130),
2206 (109, 108, 140, 141),
2207 (118, 117, 149, 150), (107, 106, 138, 139), (127, 126, 158, 159), (116, 115, 147, 148),
2208 (105, 104, 136, 137),
2209 (125, 124, 156, 157), (114, 113, 145, 146), (103, 102, 134, 135), (157, 156, 173, 174),
2210 (133, 132, 162, 163),
2211 (134, 133, 163, 164), (132, 131, 161, 162), (150, 149, 169, 170), (146, 145, 167, 185),
2212 (135, 134, 164, 177),
2213 (155, 154, 172, 189), (144, 143, 183, 184), (153, 152, 171, 188), (131, 130, 176, 161),
2214 (142, 141, 182, 166),
2215 (151, 150, 170, 187), (129, 128, 175, 160), (140, 139, 181, 165), (128, 159, 191, 175),
2216 (149, 148, 186, 169),
2217 (138, 137, 179, 180), (158, 157, 174, 190), (147, 146, 185, 168), (136, 135, 177, 178),
2218 (156, 155, 189, 173),
2219 (145, 144, 184, 167), (154, 153, 188, 172), (143, 142, 166, 183), (152, 151, 187, 171),
2220 (130, 129, 160, 176),
2221 (141, 140, 165, 182), (139, 138, 180, 181), (159, 158, 190, 191), (148, 147, 168, 186),
2222 (137, 136, 178, 179),
2223 (175, 191, 190, 174, 173, 189, 172, 188, 171, 187, 170, 169, 186, 168, 185, 167, 184, 183, 166, 182, 165,
2224 181, 180, 179, 178, 177, 164, 163, 162, 161, 176, 160)]
2226 return myvertex
, myfaces
2229 # ----------------------------------------------
2231 # ----------------------------------------------
2232 def handle_model_07():
2233 # ------------------------------------
2235 # ------------------------------------
2236 minx
= -0.10910986363887787
2237 maxx
= 0.10910986363887787
2239 minz
= -0.0039262366481125355
2240 maxz
= 0.0039262366481125355
2243 myvertex
= [(maxx
, -0.017620893195271492, maxz
),
2244 (maxx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2245 (maxx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2246 (maxx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2247 (maxx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2248 (maxx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2249 (maxx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2250 (maxx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2251 (maxx
, -0.017620891332626343, minz
),
2252 (maxx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2253 (maxx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2254 (maxx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2255 (maxx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2256 (maxx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2257 (maxx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2258 (maxx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2259 (maxx
- 0.02949388325214386, -0.01396019384264946, maxz
- 0.0024807279696688056),
2260 (maxx
- 0.030047059059143066, -0.01396019384264946, maxz
- 0.0025907604722306132),
2261 (maxx
- 0.030516013503074646, -0.01396019384264946, maxz
- 0.002904107444919646),
2262 (maxx
- 0.030829355120658875, -0.01396019384264946, maxz
- 0.0033730645664036274),
2263 (maxx
- 0.030939392745494843, -0.01396019198000431, minz
+ 0.003926236608184253),
2264 (maxx
- 0.030829355120658875, -0.01396019384264946, minz
+ 0.0033730643335729837),
2265 (maxx
- 0.030516013503074646, -0.01396019384264946, minz
+ 0.0029041077941656113),
2266 (maxx
- 0.030047059059143066, -0.01396019384264946, minz
+ 0.002590760588645935),
2267 (maxx
- 0.02949388325214386, -0.01396019384264946, minz
+ 0.0024807280860841274),
2268 (maxx
- 0.02894071489572525, -0.01396019384264946, minz
+ 0.002590760588645935),
2269 (maxx
- 0.028471753001213074, -0.01396019384264946, minz
+ 0.002904107444919646),
2270 (maxx
- 0.028158411383628845, -0.01396019384264946, minz
+ 0.0033730644499883056),
2271 (maxx
- 0.028048373758792877, -0.01396019384264946, maxz
- 0.0039262363893523555),
2272 (maxx
- 0.028158411383628845, -0.01396019384264946, maxz
- 0.0033730638679116964),
2273 (maxx
- 0.028471753001213074, -0.01396019384264946, maxz
- 0.0029041070956736803),
2274 (maxx
- 0.02894071489572525, -0.01396019384264946, maxz
- 0.0025907597737386823),
2275 (maxx
- 0.02949388325214386, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2276 (maxx
- 0.030047059059143066, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2277 (maxx
- 0.030516013503074646, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2278 (maxx
- 0.030829355120658875, maxy
, maxz
- 0.0033730645664036274),
2279 (maxx
- 0.030939392745494843, maxy
, minz
+ 0.003926236608184253),
2280 (maxx
- 0.030829355120658875, maxy
, minz
+ 0.0033730643335729837),
2281 (maxx
- 0.030516013503074646, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2282 (maxx
- 0.030047059059143066, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2283 (maxx
- 0.02949388325214386, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2284 (maxx
- 0.02894071489572525, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2285 (maxx
- 0.028471753001213074, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2286 (maxx
- 0.028158411383628845, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2287 (maxx
- 0.028048373758792877, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2288 (maxx
- 0.028158411383628845, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2289 (maxx
- 0.028471753001213074, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2290 (maxx
- 0.02894071489572525, -1.862645149230957e-09, maxz
- 0.0025907597737386823),
2291 (minx
+ 0.10910986037924886, -0.017620893195271492, maxz
),
2292 (minx
+ 0.10910986037924886, -0.01611838862299919, maxz
- 0.00029886653646826744),
2293 (minx
+ 0.10910986037924886, -0.014844624325633049, maxz
- 0.0011499673128128052),
2294 (minx
+ 0.10910986037924886, -0.013993524014949799, maxz
- 0.002423731260932982),
2295 (minx
+ 0.10910986037924886, -0.013694657012820244, minz
+ 0.003926236289926277),
2296 (minx
+ 0.10910986037924886, -0.013993524014949799, minz
+ 0.002423729980364442),
2297 (minx
+ 0.10910986037924886, -0.014844624325633049, minz
+ 0.001149968709796667),
2298 (minx
+ 0.10910986037924886, -0.016118386760354042, minz
+ 0.0002988663036376238),
2299 (minx
+ 0.10910986037924886, -0.017620891332626343, minz
),
2300 (minx
+ 0.10910986037924886, -0.019123397767543793, minz
+ 0.00029886653646826744),
2301 (minx
+ 0.10910986037924886, -0.020397160202264786, minz
+ 0.0011499675456434488),
2302 (minx
+ 0.10910986037924886, -0.021248264238238335, minz
+ 0.0024237307952716947),
2303 (minx
+ 0.10910986037924886, -0.02154713124036789, maxz
- 0.003926236195012284),
2304 (minx
+ 0.10910986037924886, -0.021248262375593185, maxz
- 0.0024237297475337982),
2305 (minx
+ 0.10910986037924886, -0.020397160202264786, maxz
- 0.0011499666143208742),
2306 (minx
+ 0.10910986037924886, -0.019123397767543793, maxz
- 0.0002988646738231182),
2307 (minx
, -0.017620893195271492, maxz
),
2308 (minx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2309 (minx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2310 (minx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2311 (minx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2312 (minx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2313 (minx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2314 (minx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2315 (minx
, -0.017620891332626343, minz
),
2316 (minx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2317 (minx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2318 (minx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2319 (minx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2320 (minx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2321 (minx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2322 (minx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2323 (minx
+ 0.02949388325214386, -0.01396019384264946, maxz
- 0.0024807279696688056),
2324 (minx
+ 0.030047059059143066, -0.01396019384264946, maxz
- 0.0025907604722306132),
2325 (minx
+ 0.030516013503074646, -0.01396019384264946, maxz
- 0.002904107444919646),
2326 (minx
+ 0.030829355120658875, -0.01396019384264946, maxz
- 0.0033730645664036274),
2327 (minx
+ 0.030939392745494843, -0.01396019198000431, minz
+ 0.003926236608184253),
2328 (minx
+ 0.030829355120658875, -0.01396019384264946, minz
+ 0.0033730643335729837),
2329 (minx
+ 0.030516013503074646, -0.01396019384264946, minz
+ 0.0029041077941656113),
2330 (minx
+ 0.030047059059143066, -0.01396019384264946, minz
+ 0.002590760588645935),
2331 (minx
+ 0.02949388325214386, -0.01396019384264946, minz
+ 0.0024807280860841274),
2332 (minx
+ 0.02894071489572525, -0.01396019384264946, minz
+ 0.002590760588645935),
2333 (minx
+ 0.028471753001213074, -0.01396019384264946, minz
+ 0.002904107444919646),
2334 (minx
+ 0.028158411383628845, -0.01396019384264946, minz
+ 0.0033730644499883056),
2335 (minx
+ 0.028048373758792877, -0.01396019384264946, maxz
- 0.0039262363893523555),
2336 (minx
+ 0.028158411383628845, -0.01396019384264946, maxz
- 0.0033730638679116964),
2337 (minx
+ 0.028471753001213074, -0.01396019384264946, maxz
- 0.0029041070956736803),
2338 (minx
+ 0.02894071489572525, -0.01396019384264946, maxz
- 0.0025907597737386823),
2339 (minx
+ 0.02949388325214386, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2340 (minx
+ 0.030047059059143066, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2341 (minx
+ 0.030516013503074646, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2342 (minx
+ 0.030829355120658875, maxy
, maxz
- 0.0033730645664036274),
2343 (minx
+ 0.030939392745494843, maxy
, minz
+ 0.003926236608184253),
2344 (minx
+ 0.030829355120658875, maxy
, minz
+ 0.0033730643335729837),
2345 (minx
+ 0.030516013503074646, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2346 (minx
+ 0.030047059059143066, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2347 (minx
+ 0.02949388325214386, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2348 (minx
+ 0.02894071489572525, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2349 (minx
+ 0.028471753001213074, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2350 (minx
+ 0.028158411383628845, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2351 (minx
+ 0.028048373758792877, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2352 (minx
+ 0.028158411383628845, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2353 (minx
+ 0.028471753001213074, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2354 (minx
+ 0.02894071489572525, -1.862645149230957e-09, maxz
- 0.0025907597737386823)]
2357 myfaces
= [(49, 48, 0, 1), (60, 59, 11, 12), (58, 57, 9, 10), (56, 55, 7, 8), (54, 53, 5, 6),
2358 (52, 51, 3, 4), (48, 63, 15, 0), (50, 49, 1, 2), (61, 60, 12, 13), (59, 58, 10, 11),
2359 (57, 56, 8, 9), (55, 54, 6, 7), (53, 52, 4, 5), (63, 62, 14, 15), (51, 50, 2, 3),
2360 (62, 61, 13, 14), (17, 16, 32, 33), (32, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33),
2361 (28, 27, 43, 44), (26, 25, 41, 42),
2362 (24, 23, 39, 40), (22, 21, 37, 38), (20, 19, 35, 36), (16, 31, 47, 32), (18, 17, 33, 34),
2363 (29, 28, 44, 45), (27, 26, 42, 43), (25, 24, 40, 41), (23, 22, 38, 39), (21, 20, 36, 37),
2364 (31, 30, 46, 47), (19, 18, 34, 35), (30, 29, 45, 46), (49, 65, 64, 48), (60, 76, 75, 59),
2365 (58, 74, 73, 57), (56, 72, 71, 55), (54, 70, 69, 53), (52, 68, 67, 51), (48, 64, 79, 63),
2366 (50, 66, 65, 49), (61, 77, 76, 60), (59, 75, 74, 58), (57, 73, 72, 56), (55, 71, 70, 54),
2367 (53, 69, 68, 52), (63, 79, 78, 62), (51, 67, 66, 50), (62, 78, 77, 61), (81, 97, 96, 80),
2368 (96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111), (92, 108, 107, 91),
2369 (90, 106, 105, 89), (88, 104, 103, 87), (86, 102, 101, 85),
2370 (84, 100, 99, 83), (80, 96, 111, 95), (82, 98, 97, 81), (93, 109, 108, 92), (91, 107, 106, 90),
2371 (89, 105, 104, 88), (87, 103, 102, 86), (85, 101, 100, 84), (95, 111, 110, 94), (83, 99, 98, 82),
2372 (94, 110, 109, 93), (0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1),
2373 (64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79)]
2375 return myvertex
, myfaces
2378 # ----------------------------------------------
2380 # ----------------------------------------------
2381 def handle_model_08():
2382 # ------------------------------------
2384 # ------------------------------------
2385 minx
= -0.05910986289381981
2386 maxx
= 0.05910986289381981
2388 minz
= -0.0039262366481125355
2389 maxz
= 0.0039262366481125355
2392 myvertex
= [(maxx
, -0.017620893195271492, maxz
),
2393 (maxx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2394 (maxx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2395 (maxx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2396 (maxx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2397 (maxx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2398 (maxx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2399 (maxx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2400 (maxx
, -0.017620891332626343, minz
),
2401 (maxx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2402 (maxx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2403 (maxx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2404 (maxx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2405 (maxx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2406 (maxx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2407 (maxx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2408 (maxx
- 0.010583892464637756, -0.01396019384264946, maxz
- 0.0024807279696688056),
2409 (maxx
- 0.011137068271636963, -0.01396019384264946, maxz
- 0.0025907604722306132),
2410 (maxx
- 0.011606022715568542, -0.01396019384264946, maxz
- 0.002904107444919646),
2411 (maxx
- 0.011919364333152771, -0.01396019384264946, maxz
- 0.0033730645664036274),
2412 (maxx
- 0.012029401957988739, -0.01396019198000431, minz
+ 0.003926236608184253),
2413 (maxx
- 0.011919364333152771, -0.01396019384264946, minz
+ 0.0033730643335729837),
2414 (maxx
- 0.011606022715568542, -0.01396019384264946, minz
+ 0.0029041077941656113),
2415 (maxx
- 0.011137068271636963, -0.01396019384264946, minz
+ 0.002590760588645935),
2416 (maxx
- 0.010583892464637756, -0.01396019384264946, minz
+ 0.0024807280860841274),
2417 (maxx
- 0.010030724108219147, -0.01396019384264946, minz
+ 0.002590760588645935),
2418 (maxx
- 0.00956176221370697, -0.01396019384264946, minz
+ 0.002904107444919646),
2419 (maxx
- 0.009248420596122742, -0.01396019384264946, minz
+ 0.0033730644499883056),
2420 (maxx
- 0.009138382971286774, -0.01396019384264946, maxz
- 0.0039262363893523555),
2421 (maxx
- 0.009248420596122742, -0.01396019384264946, maxz
- 0.0033730638679116964),
2422 (maxx
- 0.00956176221370697, -0.01396019384264946, maxz
- 0.0029041070956736803),
2423 (maxx
- 0.010030724108219147, -0.01396019384264946, maxz
- 0.0025907597737386823),
2424 (maxx
- 0.010583892464637756, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2425 (maxx
- 0.011137068271636963, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2426 (maxx
- 0.011606022715568542, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2427 (maxx
- 0.011919364333152771, maxy
, maxz
- 0.0033730645664036274),
2428 (maxx
- 0.012029401957988739, maxy
, minz
+ 0.003926236608184253),
2429 (maxx
- 0.011919364333152771, maxy
, minz
+ 0.0033730643335729837),
2430 (maxx
- 0.011606022715568542, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2431 (maxx
- 0.011137068271636963, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2432 (maxx
- 0.010583892464637756, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2433 (maxx
- 0.010030724108219147, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2434 (maxx
- 0.00956176221370697, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2435 (maxx
- 0.009248420596122742, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2436 (maxx
- 0.009138382971286774, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2437 (maxx
- 0.009248420596122742, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2438 (maxx
- 0.00956176221370697, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2439 (maxx
- 0.010030724108219147, -1.862645149230957e-09, maxz
- 0.0025907597737386823),
2440 (minx
, -0.017620893195271492, maxz
),
2441 (minx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2442 (minx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2443 (minx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2444 (minx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2445 (minx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2446 (minx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2447 (minx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2448 (minx
, -0.017620891332626343, minz
),
2449 (minx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2450 (minx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2451 (minx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2452 (minx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2453 (minx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2454 (minx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2455 (minx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2456 (minx
+ 0.010583892464637756, -0.01396019384264946, maxz
- 0.0024807279696688056),
2457 (minx
+ 0.011137068271636963, -0.01396019384264946, maxz
- 0.0025907604722306132),
2458 (minx
+ 0.011606022715568542, -0.01396019384264946, maxz
- 0.002904107444919646),
2459 (minx
+ 0.011919364333152771, -0.01396019384264946, maxz
- 0.0033730645664036274),
2460 (minx
+ 0.012029401957988739, -0.01396019198000431, minz
+ 0.003926236608184253),
2461 (minx
+ 0.011919364333152771, -0.01396019384264946, minz
+ 0.0033730643335729837),
2462 (minx
+ 0.011606022715568542, -0.01396019384264946, minz
+ 0.0029041077941656113),
2463 (minx
+ 0.011137068271636963, -0.01396019384264946, minz
+ 0.002590760588645935),
2464 (minx
+ 0.010583892464637756, -0.01396019384264946, minz
+ 0.0024807280860841274),
2465 (minx
+ 0.010030724108219147, -0.01396019384264946, minz
+ 0.002590760588645935),
2466 (minx
+ 0.00956176221370697, -0.01396019384264946, minz
+ 0.002904107444919646),
2467 (minx
+ 0.009248420596122742, -0.01396019384264946, minz
+ 0.0033730644499883056),
2468 (minx
+ 0.009138382971286774, -0.01396019384264946, maxz
- 0.0039262363893523555),
2469 (minx
+ 0.009248420596122742, -0.01396019384264946, maxz
- 0.0033730638679116964),
2470 (minx
+ 0.00956176221370697, -0.01396019384264946, maxz
- 0.0029041070956736803),
2471 (minx
+ 0.010030724108219147, -0.01396019384264946, maxz
- 0.0025907597737386823),
2472 (minx
+ 0.010583892464637756, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2473 (minx
+ 0.011137068271636963, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2474 (minx
+ 0.011606022715568542, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2475 (minx
+ 0.011919364333152771, maxy
, maxz
- 0.0033730645664036274),
2476 (minx
+ 0.012029401957988739, maxy
, minz
+ 0.003926236608184253),
2477 (minx
+ 0.011919364333152771, maxy
, minz
+ 0.0033730643335729837),
2478 (minx
+ 0.011606022715568542, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2479 (minx
+ 0.011137068271636963, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2480 (minx
+ 0.010583892464637756, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2481 (minx
+ 0.010030724108219147, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2482 (minx
+ 0.00956176221370697, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2483 (minx
+ 0.009248420596122742, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2484 (minx
+ 0.009138382971286774, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2485 (minx
+ 0.009248420596122742, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2486 (minx
+ 0.00956176221370697, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2487 (minx
+ 0.010030724108219147, -1.862645149230957e-09, maxz
- 0.0025907597737386823),
2488 (maxx
- 0.0591098596341908, -0.017620893195271492, maxz
),
2489 (maxx
- 0.0591098596341908, -0.01611838862299919, maxz
- 0.00029886653646826744),
2490 (maxx
- 0.0591098596341908, -0.014844624325633049, maxz
- 0.0011499673128128052),
2491 (maxx
- 0.0591098596341908, -0.013993524014949799, maxz
- 0.002423731260932982),
2492 (maxx
- 0.0591098596341908, -0.013694657012820244, minz
+ 0.003926236289926277),
2493 (maxx
- 0.0591098596341908, -0.013993524014949799, minz
+ 0.002423729980364442),
2494 (maxx
- 0.0591098596341908, -0.014844624325633049, minz
+ 0.001149968709796667),
2495 (maxx
- 0.0591098596341908, -0.016118386760354042, minz
+ 0.0002988663036376238),
2496 (maxx
- 0.0591098596341908, -0.017620891332626343, minz
),
2497 (maxx
- 0.0591098596341908, -0.019123397767543793, minz
+ 0.00029886653646826744),
2498 (maxx
- 0.0591098596341908, -0.020397160202264786, minz
+ 0.0011499675456434488),
2499 (maxx
- 0.0591098596341908, -0.021248264238238335, minz
+ 0.0024237307952716947),
2500 (maxx
- 0.0591098596341908, -0.02154713124036789, maxz
- 0.003926236195012284),
2501 (maxx
- 0.0591098596341908, -0.021248262375593185, maxz
- 0.0024237297475337982),
2502 (maxx
- 0.0591098596341908, -0.020397160202264786, maxz
- 0.0011499666143208742),
2503 (maxx
- 0.0591098596341908, -0.019123397767543793, maxz
- 0.0002988646738231182)]
2506 myfaces
= [(97, 96, 0, 1), (108, 107, 11, 12), (106, 105, 9, 10), (104, 103, 7, 8), (102, 101, 5, 6),
2507 (100, 99, 3, 4), (96, 111, 15, 0), (98, 97, 1, 2), (109, 108, 12, 13), (107, 106, 10, 11),
2508 (105, 104, 8, 9), (103, 102, 6, 7), (101, 100, 4, 5), (111, 110, 14, 15), (99, 98, 2, 3),
2509 (110, 109, 13, 14), (17, 16, 32, 33), (32, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33),
2510 (28, 27, 43, 44), (26, 25, 41, 42),
2511 (24, 23, 39, 40), (22, 21, 37, 38), (20, 19, 35, 36), (16, 31, 47, 32), (18, 17, 33, 34),
2512 (29, 28, 44, 45), (27, 26, 42, 43), (25, 24, 40, 41), (23, 22, 38, 39), (21, 20, 36, 37),
2513 (31, 30, 46, 47), (19, 18, 34, 35), (30, 29, 45, 46),
2514 (0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1),
2516 (108, 60, 59, 107), (106, 58, 57, 105), (104, 56, 55, 103), (102, 54, 53, 101), (100, 52, 51, 99),
2517 (96, 48, 63, 111), (98, 50, 49, 97), (109, 61, 60, 108), (107, 59, 58, 106), (105, 57, 56, 104),
2518 (103, 55, 54, 102), (101, 53, 52, 100), (111, 63, 62, 110), (99, 51, 50, 98), (110, 62, 61, 109),
2519 (65, 81, 80, 64), (80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95), (76, 92, 91, 75),
2520 (74, 90, 89, 73), (72, 88, 87, 71),
2521 (70, 86, 85, 69), (68, 84, 83, 67), (64, 80, 95, 79), (66, 82, 81, 65), (77, 93, 92, 76),
2522 (75, 91, 90, 74), (73, 89, 88, 72), (71, 87, 86, 70), (69, 85, 84, 68), (79, 95, 94, 78),
2523 (67, 83, 82, 66), (78, 94, 93, 77), (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)]
2525 return myvertex
, myfaces
2528 # ----------------------------------------------
2529 # Create SKU code for inventory
2530 # ----------------------------------------------
2531 def createunitsku(self
, cabinet
):
2532 # ------------------
2534 # ------------------
2535 if self
.type_cabinet
== "1":
2539 # ------------------
2541 # ------------------
2542 if cabinet
.dType
== "1" or cabinet
.dType
== "2" or cabinet
.dType
== "3" or cabinet
.dType
== "8":
2544 elif cabinet
.dType
== "9" or cabinet
.dType
== "10":
2546 elif cabinet
.dType
== "4" or cabinet
.dType
== "5" or cabinet
.dType
== "6" or cabinet
.dType
== "11":
2548 elif cabinet
.dType
== "7":
2552 # ------------------
2554 # ------------------
2555 if cabinet
.dType
== "1" or cabinet
.dType
== "2" or cabinet
.dType
== "3" or cabinet
.dType
== "4" \
2556 or cabinet
.dType
== "5" or cabinet
.dType
== "6" or cabinet
.dType
== "9" or cabinet
.dType
== "10":
2558 elif cabinet
.dType
== "7":
2559 p3
= "%02d" % cabinet
.dNum
2560 elif cabinet
.dType
== "8" or cabinet
.dType
== "11":
2564 # ------------------
2566 # ------------------
2567 if cabinet
.hand
is True:
2571 # ------------------
2573 # ------------------
2574 # noinspection PyBroadException
2576 if cabinet
.dType
== "7":
2577 p5
= "00" # drawers is always 0
2579 p5
= "%02d" % cabinet
.sNum
2582 # ------------------
2584 # ------------------
2586 y
= self
.depth
+ cabinet
.wY
2587 z
= self
.height
+ cabinet
.wZ
2589 p6
= "%06.3fx%06.3fx%06.3f-%06.3f" % (x
, y
, z
, self
.thickness
)
2591 # ------------------
2593 # ------------------
2594 if cabinet
.dType
== "1" or cabinet
.dType
== "2" or cabinet
.dType
== "3" \
2595 or cabinet
.dType
== "4" or cabinet
.dType
== "5" or cabinet
.dType
== "6":
2596 p7
= "%06.3f" % cabinet
.sX
2597 elif cabinet
.dType
== "8" or cabinet
.dType
== "11":
2598 p7
= "%06.3f" % (cabinet
.sX
/ 2)
2599 elif cabinet
.dType
== "9" or cabinet
.dType
== "10": # corners
2600 dwidth
= cabinet
.sX
- self
.depth
- self
.thickness
- 0.001
2601 p7
= "%06.3f" % dwidth
2605 sku
= "%s%s%s%s%s-%s-%s" % (p1
, p2
, p3
, p4
, p5
, p6
, p7
)