1 # ##### BEGIN GPL LICENSE BLOCK #####
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software Foundation,
15 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 # ##### END GPL LICENSE BLOCK #####
21 # ----------------------------------------------------------
22 # Automatic generation of kitchen cabinet
23 # Author: Antonio Vazquez (antonioya)
25 # ----------------------------------------------------------
27 from math
import pi
, fabs
29 from sys
import exc_info
30 from datetime
import datetime
32 from bpy
.types
import Operator
, PropertyGroup
33 from bpy
.props
import StringProperty
, EnumProperty
, FloatProperty
, IntProperty
, BoolProperty
, CollectionProperty
34 from bpy_extras
.io_utils
import ExportHelper
35 from .achm_tools
import *
37 # ----------------------------------------------------------
38 # Define rotation types
39 # ----------------------------------------------------------
40 RotationType_Default
= 9
41 RotationType_R90CW
= 1
42 RotationType_R90CCW
= 2
46 # ----------------------------------------------------------
48 # ----------------------------------------------------------
49 class AchmExportInventory(Operator
, ExportHelper
):
50 bl_idname
= "io_export.kitchen_inventory"
51 bl_description
= 'Export kitchen inventory (.txt)'
52 bl_category
= 'Archimesh'
55 # From ExportHelper. Filter filenames.
57 filter_glob
= StringProperty(
62 filepath
= StringProperty(
64 description
="File path used for exporting room data file",
65 maxlen
=1024, default
="",
68 # ----------------------------------------------------------
70 # ----------------------------------------------------------
71 # noinspection PyUnusedLocal
72 def execute(self
, context
):
73 # noinspection PyBroadException
75 # -------------------------------
76 # extract path and filename
77 # -------------------------------
78 (filepath
, filename
) = os
.path
.split(self
.properties
.filepath
)
79 print('Exporting %s' % filename
)
80 # -------------------------------
82 # -------------------------------
83 realpath
= os
.path
.realpath(os
.path
.expanduser(self
.properties
.filepath
))
84 fout
= open(realpath
, 'w')
86 st
= datetime
.fromtimestamp(time()).strftime('%Y-%m-%d %H:%M:%S')
87 fout
.write("# Archimesh kitchen inventory\n")
88 fout
.write("# " + st
+ "\n")
89 mylist
= getinventory()
94 self
.report({'INFO'}, realpath
+ "successfully exported")
97 self
.report({'ERROR'}, "Unable to export inventory " + e
)
102 # ----------------------------------------------------------
103 # Generate inventory list
104 # ----------------------------------------------------------
106 # Get List of boxes in the scene
108 for obj
in bpy
.context
.scene
.objects
:
109 # noinspection PyBroadException
111 if obj
["archimesh.sku"] is not None:
112 unitobj
.extend([obj
["archimesh.sku"]])
115 # ----------------------------------------
116 # Get number of unit structures (boxes)
117 # ----------------------------------------
121 key
= u
[:1] + u
[8:28]
128 # ----------------------------------------
129 # Get number of doors and drawer fronts
130 # ----------------------------------------
137 key
= u
[1:2] + "%06.3f" % w
+ u
[22:28]
139 # calculate separation
142 dist
= sz
- (gap
* int(u
[2:4]))
143 space
= dist
/ int(u
[2:4])
144 key
= u
[1:2] + u
[8:15] + "%06.3f" % space
156 # ----------------------------------------
157 # Get number of Shelves
158 # ----------------------------------------
167 key
= "%0.2f x %0.2f x %0.3f" % (w
- (th
* 2), float(u
[15:21]) - th
, th
) # subtract board thickness
169 if key
not in shelves
:
170 shelves
.extend([key
])
171 shelvestot
.extend([n
])
173 x
= shelves
.index(key
)
176 # ----------------------------------------
177 # Get Countertop size
178 # "T%06.3fx%06.3fx%06.3f-%06.3f"
179 # ----------------------------------------
182 for obj
in bpy
.context
.scene
.objects
:
183 # noinspection PyBroadException
185 if obj
["archimesh.top_sku"] is not None:
186 u
= obj
["archimesh.top_sku"]
192 # ----------------------------------------
194 # ----------------------------------------
197 for obj
in bpy
.context
.scene
.objects
:
198 # noinspection PyBroadException
200 if obj
["archimesh.base_sku"] is not None:
201 u
= obj
["archimesh.base_sku"]
203 btxt
= "%0.3f x %0.3f" % (float(u
[8:14]), float(u
[15:21]))
207 # ----------------------------------------
208 # Prepare output data
209 # ----------------------------------------
211 output
.extend(["Units\tDescription\tDimensions"])
212 for i
in range(0, len(boxes
)):
213 if boxes
[i
][:1] == "F":
218 txt
= "%0.2f x %0.2f x %0.2f" % (float(boxes
[i
][1:7]), float(boxes
[i
][8:14]), float(boxes
[i
][15:21]))
219 output
.extend([str(boxestot
[i
]) + "\t" + typ
+ txt
])
221 for i
in range(0, len(door
)):
222 if door
[i
][:1] == "D" or door
[i
][:1] == "L":
224 elif door
[i
][:1] == "G":
226 elif door
[i
][:1] == "W":
227 typ
= "Drawer front\t"
231 txt
= "%0.3f x %0.3f" % (float(door
[i
][1:7]), float(door
[i
][8:14]))
232 output
.extend([str(doortot
[i
]) + "\t" + typ
+ txt
])
234 for i
in range(0, len(shelves
)):
235 output
.extend([str(shelvestot
[i
]) + "\tShelf\t" + shelves
[i
]])
237 output
.extend([str(handles
) + "\tHandle"])
239 output
.extend([str(round(t
, 2)) + "\tCountertop (linear length)"])
241 output
.extend([str(round(z
, 2)) + "\tCountertop wall piece(linear length)"])
243 output
.extend([str(round(b
, 2)) + "\tBaseboard (linear length) " + btxt
])
248 # ------------------------------------------------------------------
249 # Define property group class for cabinet properties
250 # This is managed as an array of objects
251 # ------------------------------------------------------------------
252 class CabinetProperties(PropertyGroup
):
255 name
='width', min=0.001, max=10, default
=0.60, precision
=3,
256 description
='Cabinet width',
259 name
='', min=-10, max=10, default
=0, precision
=3,
260 description
='Modify depth size',
263 name
='', min=-10, max=10, default
=0, precision
=3,
264 description
='Modify height size',
267 # Cabinet position shift
269 name
='', min=-10, max=10, default
=0, precision
=3,
270 description
='Position x shift',
273 name
='', min=-10, max=10, default
=0, precision
=3,
274 description
='Position y shift',
277 name
='', min=-10, max=10, default
=0, precision
=3,
278 description
='Position z shift',
282 dType
= EnumProperty(
284 ('1', "Single R", ""),
285 ('2', "Single L", ""),
286 ('3', "Single T", ""),
287 ('4', "Glass R", ""),
288 ('5', "Glass L", ""),
289 ('6', "Glass T", ""),
290 ('7', "Drawers", ""),
292 ('11', "Double Glass", ""),
293 ('10', "Corner R", ""),
294 ('9', "Corner L", ""),
297 description
="Type of front door or drawers",
302 name
='Shelves', min=0, max=10, default
=1,
303 description
='Number total of shelves',
307 name
='Num', min=1, max=10, default
=3,
308 description
='Number total of drawers',
312 name
='', min=0.001, max=1, default
=0.1, precision
=3,
313 description
='Glass ratio',
318 description
="Create a handle", default
=True,
322 name
="Left Baseboard",
323 description
="Create a left baseboard", default
=False,
327 name
="Right Baseboard",
328 description
="Create a left baseboard", default
=False,
330 # Fill countertop spaces
332 name
="Countertop fill",
333 description
="Fill empty spaces with countertop", default
=True,
335 # Add countertop edge
337 name
="Countertop edge",
338 description
="Add edge to countertop", default
=True,
341 rotate
= EnumProperty(
343 ('9', "Default", ""),
349 description
="Rotate cabinet relative to previous one",
353 bpy
.utils
.register_class(CabinetProperties
)
356 # ------------------------------------------------------------------
359 # ------------------------------------------------------------------
360 class AchmKitchen(Operator
):
361 bl_idname
= "mesh.archimesh_kitchen"
362 bl_label
= "Cabinets"
363 bl_description
= "Cabinet Generator"
364 bl_category
= 'Archimesh'
365 bl_options
= {'REGISTER', 'UNDO'}
368 type_cabinet
= EnumProperty(
369 items
=(('1', "Floor", ""),
372 description
="Type of cabinets",
374 oldtype
= type_cabinet
376 thickness
= FloatProperty(
377 name
='Thickness', min=0.001, max=5, default
=0.018, precision
=3,
378 description
='Board thickness',
380 depth
= FloatProperty(
381 name
='Depth', min=0.001, max=50, default
=0.59, precision
=3,
382 description
='Default cabinet depth',
384 height
= FloatProperty(
385 name
='Height', min=0.001, max=50, default
=0.70, precision
=3,
386 description
='Default cabinet height',
388 handle
= EnumProperty(
390 ('1', "Model 1", ""),
391 ('2', "Model 2", ""),
392 ('3', "Model 3", ""),
393 ('4', "Model 4", ""),
394 ('5', "Model 5", ""),
395 ('6', "Model 6", ""),
396 ('7', "Model 7", ""),
397 ('8', "Model 8", ""),
401 description
="Type of handle",
403 handle_x
= FloatProperty(
404 name
='', min=0.001, max=10,
405 default
=0.05, precision
=3,
406 description
='Displacement in X relative position (limited to door size)',
408 handle_z
= FloatProperty(
409 name
='', min=0.001, max=10,
410 default
=0.05, precision
=3,
411 description
='Displacement in Z relative position (limited to door size)',
414 baseboard
= BoolProperty(
416 description
="Create a baseboard automatically",
419 baseheight
= FloatProperty(
420 name
='height', min=0.001, max=10,
421 default
=0.16, precision
=3,
422 description
='Baseboard height',
424 basefactor
= FloatProperty(
425 name
='sink', min=0, max=1,
426 default
=0.90, precision
=3,
427 description
='Baseboard sink',
430 countertop
= BoolProperty(
432 description
="Create a countertop automatically (only default cabinet height)",
435 counterheight
= FloatProperty(
436 name
='height', min=0.001, max=10,
437 default
=0.02, precision
=3,
438 description
='Countertop height',
440 counterextend
= FloatProperty(
441 name
='extend', min=0.001, max=10,
442 default
=0.03, precision
=3,
443 description
='Countertop extent',
447 name
="Floor origin in Z=0",
448 description
="Use Z=0 axis as vertical origin floor position",
451 moveZ
= FloatProperty(
452 name
='Z position', min=0.001, max=10,
453 default
=1.5, precision
=3,
454 description
='Wall cabinet Z position from floor',
457 cabinet_num
= IntProperty(
458 name
='Number of Cabinets', min=1, max=30,
460 description
='Number total of cabinets in the Kitchen',
462 cabinets
= CollectionProperty(type=CabinetProperties
)
465 crt_mat
= BoolProperty(
466 name
="Create default Cycles materials",
467 description
="Create default materials for Cycles render",
471 # -----------------------------------------------------
472 # Draw (create UI interface)
473 # -----------------------------------------------------
474 # noinspection PyUnusedLocal
475 def draw(self
, context
):
477 space
= bpy
.context
.space_data
478 if not space
.local_view
:
479 # Imperial units warning
480 if bpy
.context
.scene
.unit_settings
.system
== "IMPERIAL":
482 row
.label("Warning: Imperial units not supported", icon
='COLOR_RED')
486 row
.prop(self
, 'type_cabinet')
488 row
.prop(self
, 'thickness')
490 row
.prop(self
, 'depth')
491 row
.prop(self
, 'height')
493 row
.prop(self
, 'handle')
494 if self
.handle
!= "9":
495 row
.prop(self
, 'handle_x')
496 row
.prop(self
, 'handle_z')
498 if self
.type_cabinet
== "1":
500 row
.prop(self
, "countertop")
502 row
.prop(self
, "counterheight")
503 row
.prop(self
, "counterextend")
505 row
.prop(self
, 'baseboard')
507 row
.prop(self
, 'baseheight')
508 row
.prop(self
, 'basefactor', slider
=True)
511 row
.prop(self
, 'fitZ')
512 if self
.type_cabinet
== "2":
513 row
.prop(self
, 'moveZ')
517 row
.prop(self
, 'cabinet_num')
518 # Add menu for cabinets
519 if self
.cabinet_num
> 0:
520 for idx
in range(0, self
.cabinet_num
):
522 add_cabinet(self
, box
, idx
+ 1, self
.cabinets
[idx
])
525 if not context
.scene
.render
.engine
== 'CYCLES':
527 box
.prop(self
, 'crt_mat')
530 row
.label("Warning: Operator does not work in local view mode", icon
='ERROR')
532 # -----------------------------------------------------
534 # -----------------------------------------------------
535 # noinspection PyUnusedLocal
536 def execute(self
, context
):
537 if bpy
.context
.mode
== "OBJECT":
539 if self
.oldtype
!= self
.type_cabinet
:
540 if self
.type_cabinet
== "1": # Floor
544 if self
.type_cabinet
== "2": # Wall
547 self
.oldtype
= self
.type_cabinet
549 # Create all elements
550 for i
in range(len(self
.cabinets
) - 1, self
.cabinet_num
):
554 create_kitchen_mesh(self
)
557 self
.report({'WARNING'}, "Archimesh: Option only valid in Object mode")
561 # -----------------------------------------------------
562 # Add cabinet parameters
563 # -----------------------------------------------------
564 def add_cabinet(self
, box
, num
, cabinet
):
565 doortype
= cabinet
.dType
567 row
.label("Cabinet " + str(num
))
568 row
.prop(cabinet
, 'sX')
571 row
.prop(cabinet
, 'wY')
572 row
.prop(cabinet
, 'wZ')
573 row
.prop(cabinet
, 'rotate')
576 row
.prop(cabinet
, 'pX')
577 row
.prop(cabinet
, 'pY')
578 row
.prop(cabinet
, 'pZ')
581 row
.prop(cabinet
, 'dType')
582 if doortype
== "7": # Drawers
583 row
.prop(cabinet
, 'dNum') # drawers number
585 row
.prop(cabinet
, 'sNum') # shelves number
587 if doortype
== "4" or doortype
== "5" or doortype
== "6" or doortype
== "11":
588 row
.prop(cabinet
, 'gF', slider
=True) # shelves number
591 if self
.handle
!= "9":
592 row
.prop(cabinet
, 'hand')
593 if self
.baseboard
and self
.type_cabinet
== "1":
594 row
.prop(cabinet
, 'bL')
595 row
.prop(cabinet
, 'bR')
597 if self
.countertop
and self
.type_cabinet
== "1":
599 row
.prop(cabinet
, 'tC')
600 row
.prop(cabinet
, 'tE')
603 # ------------------------------------------------------------------------------
605 # All custom values are passed using self container (self.myvariable)
606 # ------------------------------------------------------------------------------
607 def create_kitchen_mesh(self
):
609 for o
in bpy
.data
.objects
:
612 bpy
.ops
.object.select_all(False)
614 generate_cabinets(self
)
619 # ------------------------------------------------------------------------------
621 # All custom values are passed using self container (self.myvariable)
622 # ------------------------------------------------------------------------------
623 def generate_cabinets(self
):
627 location
= bpy
.context
.scene
.cursor_location
628 myloc
= copy(location
) # copy location to keep 3D cursor position
632 # Move to wall position
633 if self
.type_cabinet
== "2": # wall
634 myloc
[2] = myloc
[2] + self
.moveZ
636 if self
.type_cabinet
== "1" and self
.baseboard
: # floor
637 myloc
[2] = myloc
[2] + self
.baseheight
# add baseboard position for bottom
642 lastrot
= 0 # last rotation
643 # ------------------------------------------------------------------------------
646 # By default all cabinets are created in X axis and later are rotated if needed
647 # the default rotation means keep last rotation, not 0, so if the previous
648 # cabinet is 90CW, the next one will be the same. To back to 0, you must select
650 # ------------------------------------------------------------------------------
651 for i
in range(0, self
.cabinet_num
):
652 mydata
= create_box(self
.type_cabinet
, "Cabinet" + str(i
+ 1),
654 self
.cabinets
[i
].sX
, self
.depth
+ self
.cabinets
[i
].wY
, self
.height
+ self
.cabinets
[i
].wZ
,
655 self
.cabinets
[i
].pX
+ lastx
,
656 self
.cabinets
[i
].pY
+ lasty
,
657 myloc
[2] + self
.cabinets
[i
].pZ
,
658 self
.cabinets
[i
].dType
, self
.cabinets
[i
].dNum
, self
.cabinets
[i
].sNum
, self
.cabinets
[i
].gF
,
660 self
.cabinets
[i
].hand
, self
.handle
, self
.handle_x
, self
.handle_z
, self
.depth
)
662 # LastX is the sum of initial position + width of the cabinet.
665 sku
= createunitsku(self
, self
.cabinets
[i
])
666 mydata
[0]["archimesh.sku"] = sku
669 myrotationtype
= int(self
.cabinets
[i
].rotate
)
671 # ---------------------------------------------------------
672 # Calculate new rotation angle
674 # ---------------------------------------------------------
679 if myrotationtype
== RotationType_Default
:
680 myrot
= myrot
# do no change rotation
684 if myrotationtype
== RotationType_R90CW
:
689 if myrotationtype
== RotationType_R90CCW
:
694 if myrotationtype
== RotationType_R180
:
697 # Save the rotation for next cabinet
699 angle
= myrot
- ((2 * pi
) * (myrot
// (2 * pi
))) # clamp one revolution
701 # -------------------------------------------
702 # Countertop (only default height cabinet)
703 # 9-Default, 1-90CW, 2-90CCW, 3-180
704 # -------------------------------------------
705 if self
.countertop
and self
.type_cabinet
== "1" and self
.cabinets
[i
].wZ
== 0:
706 w
= self
.cabinets
[i
].sX
707 # fill (depend on orientation)
708 if self
.cabinets
[i
].tC
:
710 if angle
== 0 or angle
== pi
:
711 w
+= fabs(self
.cabinets
[i
].pX
)
713 if angle
== (3 * pi
) / 2 or angle
== pi
/ 2:
714 w
+= fabs(self
.cabinets
[i
].pY
)
716 mycountertop
= create_countertop("Countertop" + str(i
+ 1),
718 self
.depth
+ self
.cabinets
[i
].wY
,
719 self
.counterheight
, self
.counterextend
,
720 self
.crt_mat
, self
.cabinets
[i
].dType
, self
.depth
,
722 # -------------------------------
723 # Fill countertop spaces
724 # -------------------------------
725 if self
.cabinets
[i
].tC
:
728 if self
.cabinets
[i
].pX
>= 0:
729 mycountertop
.location
[0] = -self
.cabinets
[i
].pX
731 mycountertop
.location
[0] = 0
734 if angle
== (3 * pi
) / 2:
735 if self
.cabinets
[i
].pY
>= 0:
736 mycountertop
.location
[0] = 0
738 mycountertop
.location
[0] = self
.cabinets
[i
].pY
741 if self
.cabinets
[i
].pY
>= 0:
742 mycountertop
.location
[0] = self
.cabinets
[i
].pY
* -1
744 mycountertop
.location
[0] = 0
747 mycountertop
.location
[0] = 0
749 mycountertop
.location
[2] = self
.height
750 mycountertop
.parent
= mydata
[0]
751 # --------------------
753 # --------------------
755 # if corner, remove size
756 if self
.cabinets
[i
].dType
== "9" or self
.cabinets
[i
].dType
== "10":
757 t
= t
- self
.cabinets
[i
].sX
759 mycountertop
["archimesh.top_sku"] = "T%06.3fx%06.3fx%06.3f-%06.3f" % (t
,
760 self
.depth
+ self
.cabinets
[
761 i
].wY
+ self
.counterextend
,
767 if self
.baseboard
and self
.type_cabinet
== "1":
768 gap
= (self
.depth
+ self
.cabinets
[i
].wY
) - ((self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
)
769 mybase
= create_baseboard("Baseboard" + str(i
+ 1),
770 self
.cabinets
[i
].sX
, self
.thickness
, self
.baseheight
,
771 self
.crt_mat
, self
.cabinets
[i
].bL
, self
.cabinets
[i
].bR
,
772 (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
, self
.cabinets
[i
].dType
, gap
)
773 bases
.extend([mybase
])
774 mybase
.location
[1] = (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
* -1
775 mybase
.location
[2] = -self
.baseheight
776 mybase
.parent
= mydata
[0]
777 # --------------------
779 # --------------------
780 t
= self
.cabinets
[i
].sX
782 if self
.cabinets
[i
].bR
is True:
783 t
= t
+ (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
784 if self
.cabinets
[i
].bL
is True:
785 t
= t
+ (self
.depth
+ self
.cabinets
[i
].wY
) * self
.basefactor
787 mybase
["archimesh.base_sku"] = "B%06.3fx%06.3fx%06.3f" % (t
, self
.thickness
, self
.baseheight
)
790 mybox
.rotation_euler
= (0, 0, myrot
)
792 # -----------------------------------------
793 # Calculate new position for next cabinet
794 # -----------------------------------------
804 ym
= -self
.cabinets
[i
].sX
805 lastx
= lastx
- self
.cabinets
[i
].sX
- self
.cabinets
[i
].pX
806 lasty
= lasty
+ self
.cabinets
[i
].sX
+ self
.cabinets
[i
].pY
809 lastx
-= 2 * (self
.cabinets
[i
].sX
+ self
.cabinets
[i
].pX
)
811 if angle
== (3 * pi
) / 2:
812 xm
= self
.depth
- self
.counterextend
813 lastx
= lastx
- self
.cabinets
[i
].sX
- self
.cabinets
[i
].pX
814 lasty
= lasty
- self
.cabinets
[i
].sX
- self
.cabinets
[i
].pX
+ self
.cabinets
[i
].pY
817 # noinspection PyUnresolvedReferences
818 mybox
.location
= (myl
.x
+ xm
, myl
.y
+ ym
, myl
.z
)
820 # ---------------------------------------
822 # ---------------------------------------
823 boxes
.extend([mybox
])
836 if self
.crt_mat
and bpy
.context
.scene
.render
.engine
== 'CYCLES':
837 mat
= create_diffuse_material("Cabinet_material", False, 0.8, 0.8, 0.8)
839 set_material(box
, mat
)
844 # ------------------------------------------------------------------------------
847 # thickness: wood thickness
851 # pX: position X axis
852 # pY: position Y axis
853 # pZ: position Z axis
854 # doorType: Type of door or drawers
855 # drawers: Number of drawers
856 # shelves: Number of shelves
857 # gF: Glass size factor
858 # mat: Flag for creating materials
859 # handle: handle visibility flag
860 # handle_model: Type of handle
861 # handle_x: Position of handle in X axis
862 # handle_z: Position of handle in Z axis
863 # depth: Default depth
864 # ------------------------------------------------------------------------------
865 def create_box(type_cabinet
, objname
, thickness
, sx
, sy
, sz
, px
, py
, pz
, doortype
, drawers
, shelves
, gf
, mat
,
866 handle
, handle_model
, handle_x
, handle_z
, depth
):
871 [(0, 0, 0), (0, -sy
, 0), (0, -sy
, sz
), (0, 0, sz
), (sx
, 0, 0), (sx
, -sy
, 0), (sx
, -sy
, sz
), (sx
, 0, sz
)])
872 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 4, 7, 3), (0, 1, 5, 4), (3, 2, 6, 7)])
875 myvertex
.extend([(thickness
, -thickness
, thickness
), (thickness
, -sy
, thickness
),
876 (thickness
, -sy
, sz
- thickness
), (thickness
, -thickness
, sz
- thickness
),
877 (sx
- thickness
, -thickness
, thickness
), (sx
- thickness
, -sy
, thickness
),
878 (sx
- thickness
, -sy
, sz
- thickness
), (sx
- thickness
, -thickness
, sz
- thickness
)])
880 myfaces
.extend([(8, 9, 10, 11), (12, 13, 14, 15), (8, 12, 15, 11), (8, 9, 13, 12), (11, 10, 14, 15)])
881 myfaces
.extend([(1, 9, 10, 2), (2, 6, 14, 10), (6, 5, 13, 14), (5, 1, 9, 13)])
886 v
= 16 # vertice number
887 if doortype
!= "7": # Drawers
888 # calculate separation
889 dist
= sz
- (thickness
* 2)
890 space
= dist
/ (shelves
+ 1)
891 posz1
= thickness
+ space
893 for x
in range(shelves
):
894 posz2
= posz1
- thickness
895 myvertex
.extend([(thickness
, -thickness
, posz1
), (thickness
, -sy
, posz1
),
896 (thickness
, -sy
, posz2
), (thickness
, -thickness
, posz2
),
897 (sx
- thickness
, -thickness
, posz1
), (sx
- thickness
, -sy
, posz1
),
898 (sx
- thickness
, -sy
, posz2
), (sx
- thickness
, -thickness
, posz2
)])
900 myfaces
.extend([(v
, v
+ 1, v
+ 2, v
+ 3), (v
+ 4, v
+ 5, v
+ 6, v
+ 7), (v
, v
+ 4, v
+ 7, v
+ 3),
901 (v
, v
+ 1, v
+ 5, v
+ 4), (v
+ 3, v
+ 2, v
+ 6, v
+ 7), (v
+ 1, v
+ 2, v
+ 6, v
+ 5)])
905 mymesh
= bpy
.data
.meshes
.new(objname
)
906 myobject
= bpy
.data
.objects
.new(objname
, mymesh
)
908 myobject
.location
[0] = px
909 myobject
.location
[1] = py
910 myobject
.location
[2] = pz
911 bpy
.context
.scene
.objects
.link(myobject
)
913 mymesh
.from_pydata(myvertex
, [], myfaces
)
914 mymesh
.update(calc_edges
=True)
916 # ---------------------------------------
918 # ---------------------------------------
919 if doortype
== "7": # Drawers
920 # calculate separation
922 dist
= sz
- (gap
* drawers
)
923 space
= dist
/ drawers
926 for x
in range(drawers
):
927 mydrawer
= create_drawer("Drawer", thickness
, sx
, sy
, space
, mat
, handle
,
928 handle_model
, handle_z
)
929 mydrawer
.location
[1] = -sy
930 mydrawer
.location
[2] = posz1
931 mydrawer
.parent
= myobject
932 remove_doubles(mydrawer
)
933 set_normals(mydrawer
)
934 posz1
= posz1
+ space
+ gap
# gap
936 # ---------------------------------------
938 # ---------------------------------------
939 if doortype
!= "99" and doortype
!= "7": # None or Drawers
940 if doortype
== "1" or doortype
== "2" or doortype
== "3" or doortype
== "4" \
941 or doortype
== "5" or doortype
== "6": # single door
942 mydoor
= create_door(type_cabinet
, objname
+ "_Door", thickness
, sx
, sz
, doortype
, gf
, mat
, handle
,
943 handle_model
, handle_x
, handle_z
, 0.001)
944 mydoor
.parent
= myobject
945 mydoor
.location
[1] = -sy
- 0.001 # add 1 mm gap
946 remove_doubles(mydoor
)
950 if doortype
== "8" or doortype
== "10" or doortype
== "11":
957 # Adjust corner doors
960 dwidth
= sx
- depth
- thickness
- 0.001
962 mydoor1
= create_door(type_cabinet
, objname
+ "_Door_L", thickness
, dwidth
, sz
, typ
, gf
, mat
,
964 handle_model
, handle_x
, handle_z
, 0.0005) # left
965 mydoor1
.location
[1] = -sy
- 0.001 # add 1 mm gap
966 mydoor1
.parent
= myobject
967 remove_doubles(mydoor1
)
970 if doortype
== "8" or doortype
== "9" or doortype
== "11":
977 # Adjust corner doors
980 dwidth
= sx
- depth
- thickness
- 0.001
982 mydoor2
= create_door(type_cabinet
, objname
+ "_Door_R", thickness
, dwidth
, sz
, typ
, gf
, mat
,
984 handle_model
, handle_x
, handle_z
, 0.0005) # right
985 mydoor2
.location
[1] = -sy
- 0.001 # add 1 mm gap
986 mydoor2
.location
[0] = sx
987 mydoor2
.parent
= myobject
988 remove_doubles(mydoor2
)
991 return myobject
, px
+ sx
994 # ------------------------------------------------------------------------------
1000 # mat: Flag for creating materials
1001 # bL: Flag to create left side
1002 # bR: Flag to create right side
1003 # depth: depth or position of baseboard
1004 # gap: space to close in corners
1005 # ------------------------------------------------------------------------------
1006 def create_baseboard(objname
, sx
, sy
, sz
, mat
, bl
, br
, depth
, doortype
, gap
):
1012 [(0, 0, 0), (0, -sy
, 0), (0, -sy
, sz
), (0, 0, sz
), (sx
, 0, 0), (sx
, -sy
, 0), (sx
, -sy
, sz
), (sx
, 0, sz
)])
1013 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)])
1018 [(0, 0, 0), (0, depth
, 0), (0, depth
, sz
), (0, 0, sz
), (sy
, 0, 0), (sy
, depth
, 0), (sy
, depth
, sz
),
1021 [(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),
1022 (f
+ 3, f
+ 2, f
+ 6, f
+ 7), (f
+ 1, f
+ 5, f
+ 6, f
+ 2)])
1027 myvertex
.extend([(p
, 0, 0), (p
, depth
, 0), (p
, depth
, sz
), (p
, 0, sz
), (p
+ sy
, 0, 0), (p
+ sy
, depth
, 0),
1028 (p
+ sy
, depth
, sz
), (p
+ sy
, 0, sz
)])
1030 [(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),
1031 (f
+ 3, f
+ 2, f
+ 6, f
+ 7), (f
+ 1, f
+ 5, f
+ 6, f
+ 2)])
1034 if doortype
== "9" or doortype
== "10":
1037 if doortype
== "10":
1041 myvertex
.extend([(p
, -sy
, 0), (p
, size
, 0), (p
, size
, sz
), (p
, -sy
, sz
), (p
+ sy
, -sy
, 0), (p
+ sy
, size
, 0),
1042 (p
+ sy
, size
, sz
), (p
+ sy
, -sy
, sz
)])
1044 [(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),
1045 (f
+ 3, f
+ 2, f
+ 6, f
+ 7), (f
+ 1, f
+ 5, f
+ 6, f
+ 2)])
1047 mymesh
= bpy
.data
.meshes
.new(objname
)
1048 mybaseboard
= bpy
.data
.objects
.new(objname
, mymesh
)
1050 mybaseboard
.location
[0] = 0
1051 mybaseboard
.location
[1] = 0
1052 mybaseboard
.location
[2] = 0
1053 bpy
.context
.scene
.objects
.link(mybaseboard
)
1055 mymesh
.from_pydata(myvertex
, [], myfaces
)
1056 mymesh
.update(calc_edges
=True)
1059 if mat
and bpy
.context
.scene
.render
.engine
== 'CYCLES':
1060 mat
= create_diffuse_material("Baseboard_material", False, 0.8, 0.8, 0.8)
1061 set_material(mybaseboard
, mat
)
1066 # ------------------------------------------------------------------------------
1069 # sX: Size in X axis
1070 # sY: Size in Y axis
1071 # sZ: Size in Z axis
1072 # mat: Flag for creating materials
1073 # doorType: Type of door
1074 # depth: Depth of the cabinets
1075 # edge: add countertop edge
1076 # ------------------------------------------------------------------------------
1077 def create_countertop(objname
, sx
, sy
, sz
, over
, mat
, doortype
, depth
, edge
):
1083 # if corner the size is less
1088 ts
= sx
- (sx
- over
- depth
)
1091 if doortype
== "10":
1093 tx
= sx
- over
- depth
1096 myvertex
.extend([(ts
, 0, 0), (ts
, -sy
- over
, 0), (ts
, -sy
- over
, sz
), (ts
, 0, sz
),
1097 (tx
, 0, 0), (tx
, -sy
- over
, 0), (tx
, -sy
- over
, sz
), (tx
, 0, sz
)])
1098 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)])
1106 if doortype
== "10":
1110 myvertex
.extend([(ts
, 0, sz
), (ts
, -oy
, sz
), (ts
, -oy
, oz
), (ts
, 0, oz
),
1111 (tx
, 0, sz
), (tx
, -oy
, sz
), (tx
, -oy
, oz
), (tx
, 0, oz
)])
1113 [(8, 9, 10, 11), (12, 13, 14, 15), (8, 12, 15, 11), (8, 9, 13, 12), (11, 10, 14, 15), (9, 13, 14, 10)])
1115 mymesh
= bpy
.data
.meshes
.new(objname
)
1116 mycountertop
= bpy
.data
.objects
.new(objname
, mymesh
)
1118 mycountertop
.location
[0] = 0
1119 mycountertop
.location
[1] = 0
1120 mycountertop
.location
[2] = 0
1121 bpy
.context
.scene
.objects
.link(mycountertop
)
1123 mymesh
.from_pydata(myvertex
, [], myfaces
)
1124 mymesh
.update(calc_edges
=True)
1127 if mat
and bpy
.context
.scene
.render
.engine
== 'CYCLES':
1128 mat
= create_diffuse_material("countertop_material", False, 0, 0, 0, 0.2, 0.2, 0.2, 0.15)
1129 set_material(mycountertop
, mat
)
1134 # ------------------------------------------------------------------------------
1135 # Create cabinet door
1137 # type_cabinet: Type of cabinet (floor or wall)
1138 # objName: Name of the created object
1139 # thickness: wood thickness
1140 # sX: Size in X axis
1141 # sY: Size in Y axis
1142 # sZ: Size in Z axis
1143 # doorType: Type of door or drawers
1144 # gF: Glass size factor
1145 # mat: Flag for creating materials
1146 # handle: handle visibility flag
1147 # handle_model: Type of handle
1148 # handle_x: Position of handle in X axis
1149 # handle_z: Position of handle in Z axis
1150 # gapX: size of the horizontal gap
1151 # ------------------------------------------------------------------------------
1152 def create_door(type_cabinet
, objname
, thickness
, sx
, sz
, doortype
, gf
, mat
, handle
, handle_model
, handle_x
,
1160 if doortype
== "2" or doortype
== "5" or doortype
== "10":
1162 # add small gap in width
1164 # add small gap in top zone
1167 myvertex
.extend([(0, 0, 0), (0, -thickness
, 0), (0, -thickness
, sz
), (0, 0, sz
), (sx
* f
, 0, 0),
1168 (sx
* f
, -thickness
, 0), (sx
* f
, -thickness
, sz
), (sx
* f
, 0, sz
)])
1169 myfaces
.extend([(0, 1, 2, 3), (4, 5, 6, 7), (0, 1, 5, 4), (3, 2, 6, 7)])
1173 if doortype
== "1" or doortype
== "2" or doortype
== "3" \
1174 or doortype
== "8" or doortype
== "9" or doortype
== "10":
1175 myfaces
.extend([(0, 4, 7, 3), (1, 2, 6, 5)])
1179 if doortype
== "4" or doortype
== "5" or doortype
== "6" or doortype
== "11":
1180 w
= sx
* gf
# calculate frame size W
1181 h
= sz
* gf
# calculate frame size V
1183 myvertex
.extend([(w
* f
, 0, h
), (w
* f
, -thickness
, h
), (w
* f
, -thickness
, sz
- h
), (w
* f
, 0, sz
- h
),
1184 ((sx
- w
) * f
, 0, h
),
1185 ((sx
- w
) * f
, -thickness
, h
), ((sx
- w
) * f
, -thickness
, sz
- h
), ((sx
- w
) * f
, 0, sz
- h
)])
1186 myfaces
.extend([(8, 9, 10, 11), (12, 13, 14, 15), (8, 11, 15, 12), (10, 11, 15, 14), (8, 12, 13, 9),
1187 (1, 9, 10, 2), (5, 13, 14, 6), (6, 2, 10, 14), (5, 1, 9, 13),
1188 (0, 3, 11, 8), (12, 15, 7, 4), (4, 0, 8, 12), (11, 3, 7, 15)])
1190 mymesh
= bpy
.data
.meshes
.new(objname
)
1191 mydoor
= bpy
.data
.objects
.new(objname
, mymesh
)
1193 mydoor
.location
[0] = sx
1195 mydoor
.location
[0] = 0
1197 mydoor
.location
[1] = 0
1198 mydoor
.location
[2] = 0
1199 bpy
.context
.scene
.objects
.link(mydoor
)
1201 mymesh
.from_pydata(myvertex
, [], myfaces
)
1202 mymesh
.update(calc_edges
=True)
1204 # ----------------------------------------------
1206 # RT: Put handle in right side top
1207 # LT: Put handle in left side top
1208 # RB: Put handle in right side bottom
1209 # LB: Put handle in left side bottom
1210 # T: Put handle in top side middle
1211 # B: Put handle in bottom side middle
1213 # The position is reverse to the open direction
1215 # ----------------------------------------------
1216 hpos
= "RT" # Right by default
1221 if type_cabinet
== "1":
1222 if doortype
== "1" or doortype
== "4" or doortype
== "9": # Right
1224 if doortype
== "2" or doortype
== "5" or doortype
== "10": # Left
1226 if doortype
== "3" or doortype
== "6":
1231 if type_cabinet
== "2":
1232 if doortype
== "1" or doortype
== "4" or doortype
== "9": # Right
1234 if doortype
== "2" or doortype
== "5" or doortype
== "10": # Left
1236 if doortype
== "3" or doortype
== "6":
1239 create_handle(handle_model
, mydoor
, thickness
, hpos
, mat
, handle_x
, handle_z
)
1241 if mat
and bpy
.context
.scene
.render
.engine
== 'CYCLES':
1243 mat
= create_diffuse_material("Door_material", False, 0.8, 0.8, 0.8, 0.279, 0.337, 0.6, 0.2)
1244 set_material(mydoor
, mat
)
1246 if doortype
== "4" or doortype
== "5" or doortype
== "6" or doortype
== "11":
1247 mat
= create_glass_material("DoorGlass_material", False)
1248 mydoor
.data
.materials
.append(mat
)
1249 select_faces(mydoor
, 6, True)
1250 set_material_faces(mydoor
, 1)
1252 # Limit rotation axis
1253 if hpos
!= "T" and hpos
!= "TM" and hpos
!= "B":
1254 mydoor
.lock_rotation
= (True, True, False)
1259 # ------------------------------------------------------------------------------
1262 # thickness: wood thickness
1263 # sX: Size in X axis
1264 # sY: Size in Y axis
1265 # sZ: Size in Z axis
1266 # mat: Flag for creating materials
1267 # handle: handle visibility flag
1268 # handle_model: Type of handle
1269 # handle_z: Position of handle in Z axis
1270 # ------------------------------------------------------------------------------
1271 def create_drawer(objname
, thickness
, sx
, sy
, sz
, mat
, handle
, handle_model
, handle_z
):
1275 myvertex
.extend([(0, 0, 0), (0, -thickness
, 0), (0, -thickness
, sz
), (0, 0, sz
), (sx
, 0, 0), (sx
, -thickness
, 0),
1276 (sx
, -thickness
, sz
), (sx
, 0, sz
)])
1277 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)])
1279 # internal faces (thickness cm gap)
1280 myvertex
.extend([(thickness
, 0, thickness
),
1281 (thickness
, sy
- thickness
, thickness
),
1282 (sx
- thickness
, sy
- thickness
, thickness
),
1283 (sx
- thickness
, 0, thickness
),
1284 (thickness
* 2, 0, thickness
),
1285 (thickness
* 2, sy
- thickness
* 2, thickness
),
1286 (sx
- thickness
* 2, sy
- thickness
* 2, thickness
),
1287 (sx
- thickness
* 2, 0, thickness
)])
1289 myfaces
.extend([(8, 9, 13, 12), (13, 9, 10, 14), (14, 10, 11, 15), (12, 13, 14, 15)])
1291 myvertex
.extend([(thickness
, 0, h
),
1292 (thickness
, sy
- thickness
, h
),
1293 (sx
- thickness
, sy
- thickness
, h
),
1294 (sx
- thickness
, 0, h
),
1295 (thickness
* 2, 0, h
),
1296 (thickness
* 2, sy
- thickness
* 2, h
),
1297 (sx
- thickness
* 2, sy
- thickness
* 2, h
),
1298 (sx
- thickness
* 2, 0, h
)])
1300 [(16, 17, 21, 20), (21, 17, 18, 22), (22, 18, 19, 23), (8, 9, 17, 16), (9, 10, 18, 17), (10, 11, 19, 18),
1301 (12, 13, 21, 20), (13, 14, 22, 21), (14, 15, 23, 22)])
1303 mymesh
= bpy
.data
.meshes
.new(objname
)
1304 mydrawer
= bpy
.data
.objects
.new(objname
, mymesh
)
1306 mydrawer
.location
[0] = 0
1307 mydrawer
.location
[1] = 0
1308 mydrawer
.location
[2] = 0
1309 bpy
.context
.scene
.objects
.link(mydrawer
)
1311 mymesh
.from_pydata(myvertex
, [], myfaces
)
1312 mymesh
.update(calc_edges
=True)
1316 model
= handle_model
1317 # Drawers always horizontal handle, so override values
1324 create_handle(model
, mydrawer
, thickness
, "TM", mat
, 0, handle_z
) # always in the top area/middle
1327 if mat
and bpy
.context
.scene
.render
.engine
== 'CYCLES':
1328 mat
= create_diffuse_material("Drawer_material", False, 0.8, 0.8, 0.8, 0.6, 0.6, 0.6, 0.2)
1329 set_material(mydrawer
, mat
)
1331 # Lock transformation
1332 mydrawer
.lock_location
= (True, False, True) # only Y axis
1337 # ------------------------------------------------------------------------------
1340 # model: handle model
1341 # myDoor: Door that has the handle
1342 # thickness: thickness of board
1343 # handle_position: position of the handle
1344 # RT: Put handle in right side top
1345 # LT: Put handle in left side top
1346 # RB: Put handle in right side bottom
1347 # LB: Put handle in left side bottom
1348 # T: Put handle in top side middle
1349 # TM: Put handle in top side middle (drawers)
1350 # B: Put handle in bottom side middle
1351 # mat: create default cycles material
1352 # handle_x: Position of handle in X axis
1353 # handle_z: Position of handle in Z axis
1354 # ------------------------------------------------------------------------------
1355 def create_handle(model
, mydoor
, thickness
, handle_position
, mat
, handle_x
, handle_z
):
1360 if model
== "1" or model
== "3":
1361 mydata
= handle_model_01()
1362 elif model
== "2" or model
== "4":
1363 mydata
= handle_model_02()
1365 mydata
= handle_model_05()
1367 mydata
= handle_model_06()
1369 mydata
= handle_model_07()
1371 mydata
= handle_model_08()
1373 mydata
= handle_model_01() # default model
1376 myvertex
= mydata
[0]
1379 mymesh
= bpy
.data
.meshes
.new("Handle")
1380 myhandle
= bpy
.data
.objects
.new("Handle", mymesh
)
1382 bpy
.context
.scene
.objects
.link(myhandle
)
1384 mymesh
.from_pydata(myvertex
, [], myfaces
)
1385 mymesh
.update(calc_edges
=True)
1388 myhandle
.location
.y
= -thickness
1389 # Calculate dimensions
1390 if model
== "1" or model
== "4" or model
== "5" or model
== "6":
1391 width
= myhandle
.dimensions
.z
/ 2
1392 height
= myhandle
.dimensions
.x
/ 2
1394 width
= myhandle
.dimensions
.x
/ 2
1395 height
= myhandle
.dimensions
.z
/ 2
1396 # Limit handle position to door dimensions
1397 if handle_x
+ width
> mydoor
.dimensions
.x
:
1398 handle_x
= mydoor
.dimensions
.x
- 0.01
1400 if handle_z
+ height
> mydoor
.dimensions
.z
:
1401 handle_z
= mydoor
.dimensions
.z
- 0.01
1403 # Position in X axis
1404 if handle_position
== "LT" or handle_position
== "LB":
1405 myhandle
.location
.x
= -mydoor
.dimensions
.x
+ handle_x
+ width
1407 if handle_position
== "RT" or handle_position
== "RB":
1408 myhandle
.location
.x
= mydoor
.dimensions
.x
- handle_x
- width
1410 # Position in Z axis
1411 if handle_position
== "RT" or handle_position
== "LT":
1412 if mydoor
.dimensions
.z
- handle_z
- height
> 1.2:
1413 myhandle
.location
.z
= 1.2
1415 myhandle
.location
.z
= mydoor
.dimensions
.z
- handle_z
- height
1417 if handle_position
== "RB" or handle_position
== "LB":
1418 myhandle
.location
.z
= handle_z
+ height
1420 # Position for Middle point
1421 if handle_position
== "T" or handle_position
== "B":
1422 myhandle
.location
.x
= -mydoor
.dimensions
.x
/ 2
1424 if handle_position
== "TM":
1425 myhandle
.location
.x
= mydoor
.dimensions
.x
/ 2
1427 if handle_position
== "T" or handle_position
== "TM":
1428 myhandle
.location
.z
= mydoor
.dimensions
.z
- handle_z
- height
1430 if handle_position
== "B":
1431 myhandle
.location
.z
= handle_z
- height
1434 if handle_position
!= "T" and handle_position
!= "B" and handle_position
!= "TM":
1440 if handle_position
== "LT" or handle_position
== "LB":
1445 myhandle
.rotation_euler
= (0, yrot
, 0.0) # radians PI=180
1448 myhandle
.parent
= mydoor
1450 if mat
and bpy
.context
.scene
.render
.engine
== 'CYCLES':
1451 mat
= create_glossy_material("Handle_material", False, 0.733, 0.779, 0.8, 0.733, 0.779, 0.8, 0.02)
1452 set_material(myhandle
, mat
)
1455 if model
== "1" or model
== "3":
1456 set_smooth(myhandle
)
1457 set_modifier_subsurf(myhandle
)
1459 if model
== "5" or model
== "6" or model
== "7" or model
== "8":
1460 set_smooth(myhandle
)
1465 # ----------------------------------------------
1467 # ----------------------------------------------
1468 def handle_model_01():
1469 # ------------------------------------
1471 # ------------------------------------
1472 minx
= -0.07222598791122437
1473 maxx
= 0.07222597301006317
1474 maxy
= 6.545917585754069e-08
1475 minz
= -0.004081448074430227
1476 maxz
= 0.004081418737769127
1479 myvertex
= [(maxx
- 0.013172730803489685, -0.025110241025686264, maxz
- 0.0003106782678514719),
1480 (maxx
- 0.01216559112071991, -0.027320515364408493, maxz
- 0.0011954230722039938),
1481 (maxx
- 0.011492643505334854, -0.028797375038266182, maxz
- 0.0025195349007844925),
1482 (maxx
- 0.011256333440542221, -0.029315980151295662, maxz
- 0.0040814326939546675),
1483 (maxx
- 0.011492643505334854, -0.02879737690091133, minz
+ 0.0025195364141836762),
1484 (maxx
- 0.01216559112071991, -0.02732051908969879, minz
+ 0.0011954230722039938),
1485 (maxx
- 0.013172730803489685, -0.025110244750976562, minz
+ 0.0003106798976659775),
1486 (maxx
- 0.014360729604959488, -0.022503048181533813, minz
),
1487 (maxx
- 0.01554873213171959, -0.019895851612091064, minz
+ 0.00031067943200469017),
1488 (maxx
- 0.016555871814489365, -0.017685577273368835, minz
+ 0.001195424236357212),
1489 (maxx
- 0.01722881942987442, -0.016208721324801445, minz
+ 0.0025195354828611016),
1490 (maxx
- 0.017465125769376755, -0.015690118074417114, minz
+ 0.00408143286244389),
1491 (maxx
- 0.01722881942987442, -0.016208721324801445, maxz
- 0.0025195367634296417),
1492 (maxx
- 0.016555871814489365, -0.017685577273368835, maxz
- 0.0011954237706959248),
1493 (maxx
- 0.01554873213171959, -0.019895853474736214, maxz
- 0.00031068059615790844),
1494 (maxx
- 0.014360729604959488, -0.022503050044178963, maxz
),
1495 (maxx
- 0.00908602774143219, -0.022446047514677048, maxz
- 0.0003106782678514719),
1496 (maxx
- 0.007382020354270935, -0.024176951497793198, maxz
- 0.0011954226065427065),
1497 (maxx
- 0.006243452429771423, -0.025333505123853683, maxz
- 0.002519535133615136),
1498 (maxx
- 0.005843624472618103, -0.025739632546901703, maxz
- 0.004081432702012222),
1499 (maxx
- 0.006243452429771423, -0.025333506986498833, minz
+ 0.0025195362977683544),
1500 (maxx
- 0.007382020354270935, -0.024176953360438347, minz
+ 0.0011954230722039938),
1501 (maxx
- 0.00908602774143219, -0.022446051239967346, minz
+ 0.0003106798976659775),
1502 (maxx
- 0.011096026748418808, -0.020404310896992683, minz
),
1503 (maxx
- 0.013106036931276321, -0.01836257427930832, minz
+ 0.0003106796648353338),
1504 (maxx
- 0.014810033142566681, -0.01663167029619217, minz
+ 0.001195424236357212),
1505 (maxx
- 0.015948612242937088, -0.015475118532776833, minz
+ 0.0025195355992764235),
1506 (maxx
- 0.016348421573638916, -0.015068991109728813, minz
+ 0.004081432861045897),
1507 (maxx
- 0.015948612242937088, -0.015475118532776833, maxz
- 0.00251953664701432),
1508 (maxx
- 0.014810033142566681, -0.01663167029619217, maxz
- 0.0011954233050346375),
1509 (maxx
- 0.013106033205986023, -0.01836257241666317, maxz
- 0.0003106803633272648),
1510 (maxx
- 0.011096026748418808, -0.020404312759637833, maxz
- 4.656612873077393e-10),
1511 (maxx
- 0.004618480801582336, -0.01468262542039156, maxz
- 0.0008190707303583622),
1512 (maxx
- 0.002191290259361267, -0.014774298295378685, maxz
- 0.001584529411047697),
1513 (maxx
- 0.0005694925785064697, -0.014835557900369167, maxz
- 0.002730117877945304),
1514 (maxx
, -0.014857066795229912, maxz
- 0.004081432337202706),
1515 (maxx
- 0.0005694925785064697, -0.014835558831691742, minz
+ 0.002730119973421097),
1516 (maxx
- 0.002191290259361267, -0.014774300158023834, minz
+ 0.001584530808031559),
1517 (maxx
- 0.004618480801582336, -0.01468262542039156, minz
+ 0.0008190732914954424),
1518 (maxx
- 0.0074815452098846436, -0.014574488624930382, minz
+ 0.000550281023606658),
1519 (maxx
- 0.010344602167606354, -0.014466354623436928, minz
+ 0.0008190732914954424),
1520 (maxx
- 0.012771788984537125, -0.01437467709183693, minz
+ 0.0015845317393541336),
1521 (maxx
- 0.014393582940101624, -0.01431342400610447, minz
+ 0.002730119158513844),
1522 (maxx
- 0.014963079243898392, -0.014291912317276001, maxz
- 0.004081433403984924),
1523 (maxx
- 0.014393582940101624, -0.01431342400610447, maxz
- 0.0027301193913444877),
1524 (maxx
- 0.012771788984537125, -0.014374678023159504, maxz
- 0.0015845298767089844),
1525 (maxx
- 0.010344602167606354, -0.014466352760791779, maxz
- 0.0008190723601728678),
1526 (maxx
- 0.0074815452098846436, -0.014574489556252956, maxz
- 0.0005502800922840834),
1527 (maxx
- 0.004618480801582336, maxy
- 2.029310053330846e-11, maxz
- 0.0008190718945115805),
1528 (maxx
- 0.002191290259361267, maxy
- 7.808864666003501e-11, maxz
- 0.0015845305752009153),
1529 (maxx
- 0.0005694925785064697, maxy
- 1.645759084567544e-10, maxz
- 0.002730119042098522),
1530 (maxx
, maxy
- 2.665956344571896e-10, minz
+ 0.004081433353314345),
1531 (maxx
- 0.0005694925785064697, maxy
- 3.686153604576248e-10, minz
+ 0.0027301188092678785),
1532 (maxx
- 0.002191290259361267, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845296438783407),
1533 (maxx
- 0.004618480801582336, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1534 (maxx
- 0.0074815452098846436, maxy
- 5.331912689143792e-10, minz
+ 0.0005502798594534397),
1535 (maxx
- 0.010344602167606354, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1536 (maxx
- 0.012771788984537125, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845305752009153),
1537 (maxx
- 0.014393582940101624, maxy
- 3.686153604576248e-10, minz
+ 0.0027301181107759476),
1538 (maxx
- 0.014963079243898392, maxy
- 2.665956344571896e-10, minz
+ 0.00408143232919933),
1539 (maxx
- 0.014393582940101624, maxy
- 1.645759084567544e-10, maxz
- 0.002730120439082384),
1540 (maxx
- 0.012771788984537125, maxy
- 7.808864666003501e-11, maxz
- 0.0015845310408622026),
1541 (maxx
- 0.010344602167606354, maxy
- 2.029310053330846e-11, maxz
- 0.000819073524326086),
1542 (maxx
- 0.0074815452098846436, maxy
, maxz
- 0.0005502812564373016),
1543 (minx
+ 0.013172738254070282, -0.025110241025686264, maxz
- 0.0003106782678514719),
1544 (minx
+ 0.012165598571300507, -0.027320515364408493, maxz
- 0.0011954230722039938),
1545 (minx
+ 0.011492650955915451, -0.028797375038266182, maxz
- 0.0025195349007844925),
1546 (minx
+ 0.011256340891122818, -0.029315980151295662, maxz
- 0.0040814326939546675),
1547 (minx
+ 0.011492650955915451, -0.02879737690091133, minz
+ 0.0025195364141836762),
1548 (minx
+ 0.012165598571300507, -0.02732051908969879, minz
+ 0.0011954230722039938),
1549 (minx
+ 0.013172738254070282, -0.025110244750976562, minz
+ 0.0003106798976659775),
1550 (minx
+ 0.014360737055540085, -0.022503048181533813, minz
),
1551 (minx
+ 0.015548739582300186, -0.019895851612091064, minz
+ 0.00031067943200469017),
1552 (minx
+ 0.01655587926506996, -0.017685577273368835, minz
+ 0.001195424236357212),
1553 (minx
+ 0.017228826880455017, -0.016208721324801445, minz
+ 0.0025195354828611016),
1554 (minx
+ 0.01746513321995735, -0.015690118074417114, minz
+ 0.00408143286244389),
1555 (minx
+ 0.017228826880455017, -0.016208721324801445, maxz
- 0.0025195367634296417),
1556 (minx
+ 0.01655587926506996, -0.017685577273368835, maxz
- 0.0011954237706959248),
1557 (minx
+ 0.015548739582300186, -0.019895853474736214, maxz
- 0.00031068059615790844),
1558 (minx
+ 0.014360737055540085, -0.022503050044178963, maxz
),
1559 (maxx
- 0.07222597673535347, -0.022503051906824112, maxz
),
1560 (maxx
- 0.07222597673535347, -0.019637949764728546, maxz
- 0.00031068059615790844),
1561 (maxx
- 0.07222597673535347, -0.01720903068780899, maxz
- 0.0011954237706959248),
1562 (maxx
- 0.07222597673535347, -0.015586081892251968, maxz
- 0.0025195368798449636),
1563 (maxx
- 0.07222597673535347, -0.015016178600490093, minz
+ 0.004081432688119335),
1564 (maxx
- 0.07222597673535347, -0.015586081892251968, minz
+ 0.00251953536644578),
1565 (maxx
- 0.07222597673535347, -0.01720903068780899, minz
+ 0.001195424236357212),
1566 (maxx
- 0.07222597673535347, -0.019637947902083397, minz
+ 0.00031067943200469017),
1567 (maxx
- 0.07222597673535347, -0.022503051906824112, minz
),
1568 (maxx
- 0.07222597673535347, -0.025368154048919678, minz
+ 0.0003106798976659775),
1569 (maxx
- 0.07222597673535347, -0.027797073125839233, minz
+ 0.0011954230722039938),
1570 (maxx
- 0.07222597673535347, -0.029420025646686554, minz
+ 0.0025195364141836762),
1571 (maxx
- 0.07222597673535347, -0.029989928007125854, maxz
- 0.004081432643072702),
1572 (maxx
- 0.07222597673535347, -0.029420021921396255, maxz
- 0.0025195349007844925),
1573 (maxx
- 0.07222597673535347, -0.027797069400548935, maxz
- 0.0011954230722039938),
1574 (maxx
- 0.07222597673535347, -0.025368154048919678, maxz
- 0.0003106782678514719),
1575 (minx
+ 0.00908602774143219, -0.022446047514677048, maxz
- 0.0003106782678514719),
1576 (minx
+ 0.007382035255432129, -0.024176951497793198, maxz
- 0.0011954226065427065),
1577 (minx
+ 0.006243467330932617, -0.025333505123853683, maxz
- 0.002519535133615136),
1578 (minx
+ 0.005843639373779297, -0.025739632546901703, maxz
- 0.004081432702012222),
1579 (minx
+ 0.006243467330932617, -0.025333506986498833, minz
+ 0.0025195362977683544),
1580 (minx
+ 0.007382035255432129, -0.024176953360438347, minz
+ 0.0011954230722039938),
1581 (minx
+ 0.00908602774143219, -0.022446051239967346, minz
+ 0.0003106798976659775),
1582 (minx
+ 0.011096034198999405, -0.020404310896992683, minz
),
1583 (minx
+ 0.013106044381856918, -0.01836257427930832, minz
+ 0.0003106796648353338),
1584 (minx
+ 0.014810040593147278, -0.01663167029619217, minz
+ 0.001195424236357212),
1585 (minx
+ 0.015948619693517685, -0.015475118532776833, minz
+ 0.0025195355992764235),
1586 (minx
+ 0.016348429024219513, -0.015068991109728813, minz
+ 0.004081432861045897),
1587 (minx
+ 0.015948619693517685, -0.015475118532776833, maxz
- 0.00251953664701432),
1588 (minx
+ 0.014810040593147278, -0.01663167029619217, maxz
- 0.0011954233050346375),
1589 (minx
+ 0.01310604065656662, -0.01836257241666317, maxz
- 0.0003106803633272648),
1590 (minx
+ 0.011096034198999405, -0.020404312759637833, maxz
- 4.656612873077393e-10),
1591 (minx
+ 0.004618480801582336, -0.01468262542039156, maxz
- 0.0008190707303583622),
1592 (minx
+ 0.002191305160522461, -0.014774298295378685, maxz
- 0.001584529411047697),
1593 (minx
+ 0.0005695074796676636, -0.014835557900369167, maxz
- 0.002730117877945304),
1594 (minx
, -0.014857066795229912, maxz
- 0.004081432337202706),
1595 (minx
+ 0.0005694925785064697, -0.014835558831691742, minz
+ 0.002730119973421097),
1596 (minx
+ 0.002191290259361267, -0.014774300158023834, minz
+ 0.001584530808031559),
1597 (minx
+ 0.004618480801582336, -0.01468262542039156, minz
+ 0.0008190732914954424),
1598 (minx
+ 0.0074815452098846436, -0.014574488624930382, minz
+ 0.000550281023606658),
1599 (minx
+ 0.01034460961818695, -0.014466354623436928, minz
+ 0.0008190732914954424),
1600 (minx
+ 0.012771796435117722, -0.01437467709183693, minz
+ 0.0015845317393541336),
1601 (minx
+ 0.01439359039068222, -0.01431342400610447, minz
+ 0.002730119158513844),
1602 (minx
+ 0.014963086694478989, -0.014291912317276001, maxz
- 0.004081433403984924),
1603 (minx
+ 0.01439359039068222, -0.01431342400610447, maxz
- 0.0027301193913444877),
1604 (minx
+ 0.012771796435117722, -0.014374678023159504, maxz
- 0.0015845298767089844),
1605 (minx
+ 0.01034460961818695, -0.014466352760791779, maxz
- 0.0008190723601728678),
1606 (minx
+ 0.0074815452098846436, -0.014574489556252956, maxz
- 0.0005502800922840834),
1607 (minx
+ 0.004618480801582336, maxy
- 2.029310053330846e-11, maxz
- 0.0008190718945115805),
1608 (minx
+ 0.002191305160522461, maxy
- 7.808864666003501e-11, maxz
- 0.0015845305752009153),
1609 (minx
+ 0.0005695074796676636, maxy
- 1.645759084567544e-10, maxz
- 0.002730119042098522),
1610 (minx
, maxy
- 2.665956344571896e-10, minz
+ 0.004081433353314345),
1611 (minx
+ 0.0005694925785064697, maxy
- 3.686153604576248e-10, minz
+ 0.0027301188092678785),
1612 (minx
+ 0.002191290259361267, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845296438783407),
1613 (minx
+ 0.004618480801582336, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1614 (minx
+ 0.0074815452098846436, maxy
- 5.331912689143792e-10, minz
+ 0.0005502798594534397),
1615 (minx
+ 0.01034460961818695, maxy
- 5.128981683810707e-10, minz
+ 0.0008190721273422241),
1616 (minx
+ 0.012771796435117722, maxy
- 4.5510972768170177e-10, minz
+ 0.0015845305752009153),
1617 (minx
+ 0.01439359039068222, maxy
- 3.686153604576248e-10, minz
+ 0.0027301181107759476),
1618 (minx
+ 0.014963086694478989, maxy
- 2.665956344571896e-10, minz
+ 0.00408143232919933),
1619 (minx
+ 0.01439359039068222, maxy
- 1.645759084567544e-10, maxz
- 0.002730120439082384),
1620 (minx
+ 0.012771796435117722, maxy
- 7.808864666003501e-11, maxz
- 0.0015845310408622026),
1621 (minx
+ 0.01034460961818695, maxy
- 2.029310053330846e-11, maxz
- 0.000819073524326086),
1622 (minx
+ 0.0074815452098846436, maxy
, maxz
- 0.0005502812564373016)]
1625 myfaces
= [(90, 89, 6, 5), (88, 87, 8, 7), (86, 85, 10, 9), (84, 83, 12, 11), (80, 95, 0, 15),
1626 (82, 81, 14, 13), (93, 92, 3, 2), (91, 90, 5, 4), (89, 88, 7, 6), (87, 86, 9, 8),
1627 (85, 84, 11, 10), (95, 94, 1, 0), (83, 82, 13, 12), (94, 93, 2, 1), (81, 80, 15, 14),
1628 (92, 91, 4, 3), (2, 3, 19, 18), (13, 14, 30, 29), (15, 0, 16, 31), (11, 12, 28, 27),
1629 (9, 10, 26, 25), (7, 8, 24, 23), (5, 6, 22, 21), (3, 4, 20, 19), (14, 15, 31, 30),
1630 (1, 2, 18, 17), (12, 13, 29, 28), (0, 1, 17, 16), (10, 11, 27, 26), (8, 9, 25, 24),
1631 (6, 7, 23, 22), (4, 5, 21, 20), (19, 20, 36, 35), (30, 31, 47, 46), (17, 18, 34, 33),
1632 (28, 29, 45, 44), (16, 17, 33, 32), (26, 27, 43, 42), (24, 25, 41, 40), (22, 23, 39, 38),
1633 (20, 21, 37, 36), (18, 19, 35, 34), (29, 30, 46, 45), (31, 16, 32, 47), (27, 28, 44, 43),
1634 (25, 26, 42, 41), (23, 24, 40, 39), (21, 22, 38, 37), (36, 37, 53, 52), (34, 35, 51, 50),
1635 (45, 46, 62, 61), (47, 32, 48, 63), (43, 44, 60, 59), (41, 42, 58, 57), (39, 40, 56, 55),
1636 (37, 38, 54, 53), (35, 36, 52, 51), (46, 47, 63, 62), (33, 34, 50, 49), (44, 45, 61, 60),
1637 (32, 33, 49, 48), (42, 43, 59, 58), (40, 41, 57, 56), (38, 39, 55, 54), (90, 69, 70, 89),
1638 (88, 71, 72, 87), (86, 73, 74, 85), (84, 75, 76, 83), (80, 79, 64, 95), (82, 77, 78, 81),
1639 (93, 66, 67, 92), (91, 68, 69, 90), (89, 70, 71, 88), (87, 72, 73, 86), (85, 74, 75, 84),
1640 (95, 64, 65, 94), (83, 76, 77, 82), (94, 65, 66, 93), (81, 78, 79, 80), (92, 67, 68, 91),
1641 (66, 98, 99, 67), (77, 109, 110, 78), (79, 111, 96, 64), (75, 107, 108, 76), (73, 105, 106, 74),
1642 (71, 103, 104, 72), (69, 101, 102, 70), (67, 99, 100, 68), (78, 110, 111, 79), (65, 97, 98, 66),
1643 (76, 108, 109, 77), (64, 96, 97, 65), (74, 106, 107, 75), (72, 104, 105, 73), (70, 102, 103, 71),
1644 (68, 100, 101, 69), (99, 115, 116, 100), (110, 126, 127, 111), (97, 113, 114, 98), (108, 124, 125, 109),
1645 (96, 112, 113, 97), (106, 122, 123, 107), (104, 120, 121, 105), (102, 118, 119, 103),
1646 (100, 116, 117, 101),
1647 (98, 114, 115, 99), (109, 125, 126, 110), (111, 127, 112, 96), (107, 123, 124, 108),
1648 (105, 121, 122, 106),
1649 (103, 119, 120, 104), (101, 117, 118, 102), (116, 132, 133, 117), (114, 130, 131, 115),
1650 (125, 141, 142, 126),
1651 (127, 143, 128, 112), (123, 139, 140, 124), (121, 137, 138, 122), (119, 135, 136, 120),
1652 (117, 133, 134, 118),
1653 (115, 131, 132, 116), (126, 142, 143, 127), (113, 129, 130, 114), (124, 140, 141, 125),
1654 (112, 128, 129, 113),
1655 (122, 138, 139, 123), (120, 136, 137, 121), (118, 134, 135, 119)]
1657 return myvertex
, myfaces
1660 # ----------------------------------------------
1662 # ----------------------------------------------
1663 def handle_model_02():
1664 # ------------------------------------
1666 # ------------------------------------
1667 minx
= -0.09079331159591675
1668 maxx
= 0.09079315513372421
1670 minz
= -0.018363870680332184
1671 maxz
= 0.0015741242095828056
1674 myvertex
= [(maxx
, maxy
, maxz
- 9.313225746154785e-10),
1675 (maxx
, maxy
, maxz
- 0.0031482474878430367),
1676 (maxx
, -0.02426009438931942, maxz
- 0.0031482460908591747),
1677 (maxx
, -0.02426009438931942, maxz
),
1678 (maxx
, -0.02727462910115719, maxz
),
1679 (maxx
, -0.02727462910115719, maxz
- 0.0031482460908591747),
1680 (maxx
, -0.02426009625196457, minz
+ 0.002603583037853241),
1681 (maxx
, -0.027274630963802338, minz
+ 0.002603583037853241),
1682 (maxx
, -0.02426009625196457, minz
),
1683 (maxx
, -0.027274630963802338, minz
),
1684 (maxx
, -0.021415365859866142, minz
+ 0.002603583037853241),
1685 (maxx
, -0.02141536772251129, minz
),
1686 (maxx
- 0.0907932324437013, -0.02426009438931942, maxz
- 0.0031482460908591747),
1687 (maxx
- 0.0907932324437013, -0.02426009438931942, maxz
),
1688 (minx
, maxy
, maxz
- 9.313225746154785e-10),
1689 (minx
, maxy
, maxz
- 0.0031482474878430367),
1690 (minx
, -0.02426009438931942, maxz
- 0.0031482460908591747),
1691 (minx
, -0.02426009438931942, maxz
),
1692 (minx
, -0.02727462910115719, maxz
),
1693 (minx
, -0.02727462910115719, maxz
- 0.0031482460908591747),
1694 (maxx
- 0.0907932324437013, -0.02727462910115719, maxz
),
1695 (maxx
- 0.0907932324437013, maxy
, maxz
- 9.313225746154785e-10),
1696 (maxx
- 0.0907932324437013, -0.02727462910115719, maxz
- 0.0031482460908591747),
1697 (maxx
- 0.0907932324437013, maxy
, maxz
- 0.0031482474878430367),
1698 (maxx
- 0.0907932324437013, -0.02426009625196457, minz
+ 0.002603583037853241),
1699 (minx
, -0.02426009625196457, minz
+ 0.002603583037853241),
1700 (minx
, -0.027274630963802338, minz
+ 0.002603583037853241),
1701 (maxx
- 0.0907932324437013, -0.027274630963802338, minz
+ 0.002603583037853241),
1702 (maxx
- 0.0907932324437013, -0.02426009625196457, minz
),
1703 (minx
, -0.02426009625196457, minz
),
1704 (minx
, -0.027274630963802338, minz
),
1705 (maxx
- 0.0907932324437013, -0.027274630963802338, minz
),
1706 (maxx
- 0.0907932324437013, -0.021415365859866142, minz
+ 0.002603583037853241),
1707 (minx
, -0.021415365859866142, minz
+ 0.002603583037853241),
1708 (maxx
- 0.0907932324437013, -0.02141536772251129, minz
),
1709 (minx
, -0.02141536772251129, minz
)]
1712 myfaces
= [(2, 5, 7, 6), (13, 3, 0, 21), (3, 2, 1, 0), (7, 27, 31, 9), (23, 21, 0, 1),
1713 (5, 22, 27, 7), (4, 5, 2, 3), (2, 12, 23, 1), (20, 4, 3, 13), (5, 4, 20, 22),
1714 (12, 2, 6, 24), (9, 31, 28, 8), (6, 7, 9, 8), (32, 10, 11, 34), (6, 8, 11, 10),
1715 (8, 28, 34, 11), (24, 6, 10, 32), (16, 25, 26, 19), (13, 21, 14, 17), (17, 14, 15, 16),
1716 (26, 30, 31, 27), (23, 15, 14, 21), (19, 26, 27, 22), (18, 17, 16, 19), (16, 15, 23, 12),
1717 (20, 13, 17, 18), (19, 22, 20, 18), (22, 27, 24, 12), (12, 24, 25, 16), (30, 29, 28, 31),
1718 (25, 29, 30, 26), (27, 31, 28, 24), (28, 34, 32, 24), (32, 34, 35, 33), (25, 33, 35, 29),
1719 (29, 35, 34, 28), (24, 32, 33, 25)]
1721 return myvertex
, myfaces
1724 # ----------------------------------------------
1726 # ----------------------------------------------
1727 def handle_model_05():
1728 # ------------------------------------
1730 # ------------------------------------
1731 minx
= -0.012873317115008831
1732 maxx
= 0.012873315252363682
1733 maxy
= 6.581399869531879e-10
1734 minz
= -0.012873317115008831
1735 maxz
= 0.012873315252363682
1738 myvertex
= [(maxx
- 0.01287331552838386, maxy
, maxz
- 0.008879524189978838),
1739 (maxx
- 0.01287331552838386, -0.004451401997357607, maxz
- 0.008879524189978838),
1740 (maxx
- 0.012094165373127908, maxy
, maxz
- 0.008956264238804579),
1741 (maxx
- 0.012094165373127908, -0.004451401997357607, maxz
- 0.008956263773143291),
1742 (maxx
- 0.011344957514666021, maxy
, maxz
- 0.00918353395536542),
1743 (maxx
- 0.011344957514666021, -0.004451401997357607, maxz
- 0.009183533489704132),
1744 (maxx
- 0.010654483688995242, maxy
, maxz
- 0.00955259962938726),
1745 (maxx
- 0.010654483688995242, -0.004451401997357607, maxz
- 0.009552599163725972),
1746 (maxx
- 0.010049278382211924, maxy
, maxz
- 0.010049279080703855),
1747 (maxx
- 0.010049278382211924, -0.004451401997357607, maxz
- 0.010049278382211924),
1748 (maxx
- 0.009552599163725972, maxy
- 6.581399869531879e-10, maxz
- 0.01065448485314846),
1749 (maxx
- 0.009552599163725972, -0.004451401997357607, maxz
- 0.01065448415465653),
1750 (maxx
- 0.009183533489704132, maxy
- 6.581399869531879e-10, maxz
- 0.011344958445988595),
1751 (maxx
- 0.009183533489704132, -0.004451401997357607, maxz
- 0.011344957863911986),
1752 (maxx
- 0.008956263773143291, maxy
- 6.581399869531879e-10, maxz
- 0.0120941661298275),
1753 (maxx
- 0.008956263773143291, -0.004451401997357607, maxz
- 0.012094165605958551),
1754 (maxx
- 0.008879524189978838, maxy
- 6.581399869531879e-10, maxz
- 0.012873315995101497),
1755 (maxx
- 0.008879524189978838, -0.004451401997357607, maxz
- 0.012873315519886824),
1756 (maxx
- 0.008956263307482004, maxy
- 6.581399869531879e-10, minz
+ 0.012094166420865804),
1757 (maxx
- 0.008956263307482004, -0.004451401997357607, minz
+ 0.01209416682831943),
1758 (maxx
- 0.009183533024042845, maxy
- 6.581399869531879e-10, minz
+ 0.011344958795234561),
1759 (maxx
- 0.009183533024042845, -0.004451401997357607, minz
+ 0.011344959260895848),
1760 (maxx
- 0.009552599163725972, maxy
- 6.581399869531879e-10, minz
+ 0.01065448415465653),
1761 (maxx
- 0.009552599163725972, -0.004451401997357607, minz
+ 0.01065448485314846),
1762 (maxx
- 0.010049278382211924, -6.581399869531879e-10, minz
+ 0.010049278847873211),
1763 (maxx
- 0.010049278382211924, -0.004451401997357607, minz
+ 0.010049279546365142),
1764 (maxx
- 0.010654483921825886, -6.581399869531879e-10, minz
+ 0.00955259962938726),
1765 (maxx
- 0.010654483921825886, -0.004451401997357607, minz
+ 0.009552600095048547),
1766 (maxx
- 0.011344958213157952, -6.581399869531879e-10, minz
+ 0.009183533256873488),
1767 (maxx
- 0.011344958213157952, -0.004451401997357607, minz
+ 0.009183533489704132),
1768 (maxx
- 0.012094166362658143, -6.581399869531879e-10, minz
+ 0.008956264238804579),
1769 (maxx
- 0.012094166362658143, -0.004451401997357607, minz
+ 0.008956264238804579),
1770 (minx
+ 0.012873315537646146, -6.581399869531879e-10, minz
+ 0.008879524655640125),
1771 (minx
+ 0.012873315537646146, -0.004451401997357607, minz
+ 0.008879525121301413),
1772 (minx
+ 0.012094165082089603, -6.581399869531879e-10, minz
+ 0.008956264238804579),
1773 (minx
+ 0.012094165082089603, -0.004451401997357607, minz
+ 0.008956264704465866),
1774 (minx
+ 0.011344957165420055, -6.581399869531879e-10, minz
+ 0.009183534886687994),
1775 (minx
+ 0.011344957165420055, -0.004451401997357607, minz
+ 0.009183535352349281),
1776 (minx
+ 0.010654483223333955, -6.581399869531879e-10, minz
+ 0.009552601026371121),
1777 (minx
+ 0.010654483223333955, -0.004451401997357607, minz
+ 0.009552601724863052),
1778 (minx
+ 0.010049277916550636, -6.581399869531879e-10, minz
+ 0.010049280477687716),
1779 (minx
+ 0.010049277916550636, -0.004451401997357607, minz
+ 0.010049281176179647),
1780 (minx
+ 0.009552598698064685, maxy
- 6.581399869531879e-10, minz
+ 0.010654486482962966),
1781 (minx
+ 0.009552598698064685, -0.004451401997357607, minz
+ 0.010654486948624253),
1782 (minx
+ 0.009183533024042845, maxy
- 6.581399869531879e-10, minz
+ 0.011344961123540998),
1783 (minx
+ 0.009183533024042845, -0.004451401997357607, minz
+ 0.011344961589202285),
1784 (minx
+ 0.008956264238804579, maxy
- 6.581399869531879e-10, minz
+ 0.01209416938945651),
1785 (minx
+ 0.008956264238804579, -0.004451401997357607, minz
+ 0.012094169855117798),
1786 (minx
+ 0.008879525121301413, maxy
- 6.581399869531879e-10, maxz
- 0.012873312440222273),
1787 (minx
+ 0.008879525121301413, -0.004451401997357607, maxz
- 0.012873311965007517),
1788 (minx
+ 0.008956265170127153, maxy
- 6.581399869531879e-10, maxz
- 0.012094162055291235),
1789 (minx
+ 0.008956265170127153, -0.004451401997357607, maxz
- 0.012094161589629948),
1790 (minx
+ 0.009183535818010569, maxy
- 6.581399869531879e-10, maxz
- 0.01134495425503701),
1791 (minx
+ 0.009183535818010569, -0.004451401997357607, maxz
- 0.011344953789375722),
1792 (minx
+ 0.009552602656185627, maxy
- 6.581399869531879e-10, maxz
- 0.010654480429366231),
1793 (minx
+ 0.009552602656185627, -0.004451401997357607, maxz
- 0.010654479963704944),
1794 (minx
+ 0.01004928327165544, maxy
, maxz
- 0.010049275355413556),
1795 (minx
+ 0.01004928327165544, -0.004451401997357607, maxz
- 0.010049275122582912),
1796 (minx
+ 0.010654489509761333, maxy
, maxz
- 0.009552596602588892),
1797 (minx
+ 0.010654489509761333, -0.004451401997357607, maxz
- 0.009552596136927605),
1798 (minx
+ 0.011344964150339365, maxy
, maxz
- 0.00918353139422834),
1799 (minx
+ 0.011344964150339365, -0.004451401997357607, maxz
- 0.009183531161397696),
1800 (minx
+ 0.012094172765500844, maxy
, maxz
- 0.008956263307482004),
1801 (minx
+ 0.012094172765500844, -0.004451401997357607, maxz
- 0.00895626237615943),
1802 (minx
+ 0.01287331571475725, -0.01000460609793663, maxz
),
1803 (maxx
- 0.010361857246607542, -0.01000460609793663, maxz
- 0.0002473592758178711),
1804 (maxx
- 0.00794691126793623, -0.01000460609793663, maxz
- 0.0009799236431717873),
1805 (maxx
- 0.005721285007894039, -0.01000460609793663, maxz
- 0.002169545739889145),
1806 (maxx
- 0.0037705078721046448, -0.01000460609793663, maxz
- 0.0037705088034272194),
1807 (maxx
- 0.002169545739889145, -0.01000460609793663, maxz
- 0.005721286870539188),
1808 (maxx
- 0.0009799227118492126, -0.010004607029259205, maxz
- 0.007946912664920092),
1809 (maxx
- 0.00024735741317272186, -0.010004607029259205, maxz
- 0.010361858177930117),
1810 (maxx
, -0.010004607029259205, minz
+ 0.012873315524888684),
1811 (maxx
- 0.00024735648185014725, -0.010004607029259205, minz
+ 0.010361856315284967),
1812 (maxx
- 0.0009799227118492126, -0.010004607029259205, minz
+ 0.007946911733597517),
1813 (maxx
- 0.002169545739889145, -0.01000460796058178, minz
+ 0.005721283610910177),
1814 (maxx
- 0.0037705078721046448, -0.01000460796058178, minz
+ 0.003770505078136921),
1815 (maxx
- 0.005721286404877901, -0.01000460796058178, minz
+ 0.002169542945921421),
1816 (maxx
- 0.007946913596242666, -0.01000460796058178, minz
+ 0.0009799208492040634),
1817 (maxx
- 0.010361860506236553, -0.01000460796058178, minz
+ 0.00024735648185014725),
1818 (minx
+ 0.012873311520098518, -0.01000460796058178, minz
),
1819 (minx
+ 0.010361851193010807, -0.01000460796058178, minz
+ 0.00024735648185014725),
1820 (minx
+ 0.007946905214339495, -0.01000460796058178, minz
+ 0.0009799255058169365),
1821 (minx
+ 0.005721278488636017, -0.01000460796058178, minz
+ 0.0021695485338568687),
1822 (minx
+ 0.003770500421524048, -0.01000460796058178, minz
+ 0.0037705106660723686),
1823 (minx
+ 0.002169538289308548, -0.01000460796058178, minz
+ 0.005721290595829487),
1824 (minx
+ 0.0009799189865589142, -0.010004607029259205, minz
+ 0.007946919184178114),
1825 (minx
+ 0.000247354619204998, -0.010004607029259205, minz
+ 0.010361866094172001),
1826 (minx
, -0.010004607029259205, maxz
- 0.012873305383929612),
1827 (minx
+ 0.0002473592758178711, -0.010004607029259205, maxz
- 0.010361845139414072),
1828 (minx
+ 0.0009799282997846603, -0.010004607029259205, maxz
- 0.007946899626404047),
1829 (minx
+ 0.0021695513278245926, -0.01000460609793663, maxz
- 0.005721272900700569),
1830 (minx
+ 0.003770517185330391, -0.01000460609793663, maxz
- 0.003770497627556324),
1831 (minx
+ 0.005721298512071371, -0.01000460609793663, maxz
- 0.0021695364266633987),
1832 (minx
+ 0.00794692849740386, -0.01000460609793663, maxz
- 0.0009799161925911903),
1833 (minx
+ 0.010361875407397747, -0.01000460609793663, maxz
- 0.000247354619204998),
1834 (minx
+ 0.01287331571475725, -0.012252332642674446, maxz
),
1835 (maxx
- 0.010361857246607542, -0.012252332642674446, maxz
- 0.0002473592758178711),
1836 (maxx
- 0.00794691126793623, -0.012252332642674446, maxz
- 0.0009799236431717873),
1837 (maxx
- 0.005721285007894039, -0.012252332642674446, maxz
- 0.002169545739889145),
1838 (maxx
- 0.0037705078721046448, -0.012252332642674446, maxz
- 0.0037705088034272194),
1839 (maxx
- 0.002169545739889145, -0.012252332642674446, maxz
- 0.005721286870539188),
1840 (maxx
- 0.0009799227118492126, -0.012252334505319595, maxz
- 0.007946912664920092),
1841 (maxx
- 0.00024735741317272186, -0.012252334505319595, maxz
- 0.010361858177930117),
1842 (maxx
, -0.012252334505319595, minz
+ 0.012873315638136429),
1843 (maxx
- 0.00024735648185014725, -0.012252334505319595, minz
+ 0.010361856315284967),
1844 (maxx
- 0.0009799227118492126, -0.012252334505319595, minz
+ 0.007946911733597517),
1845 (maxx
- 0.002169545739889145, -0.01225233543664217, minz
+ 0.005721283610910177),
1846 (maxx
- 0.0037705078721046448, -0.01225233543664217, minz
+ 0.003770505078136921),
1847 (maxx
- 0.005721286404877901, -0.01225233543664217, minz
+ 0.002169542945921421),
1848 (maxx
- 0.007946913596242666, -0.01225233543664217, minz
+ 0.0009799208492040634),
1849 (maxx
- 0.010361860506236553, -0.01225233543664217, minz
+ 0.00024735648185014725),
1850 (minx
+ 0.012873311520098518, -0.01225233543664217, minz
),
1851 (minx
+ 0.010361851193010807, -0.01225233543664217, minz
+ 0.00024735648185014725),
1852 (minx
+ 0.007946905214339495, -0.01225233543664217, minz
+ 0.0009799255058169365),
1853 (minx
+ 0.005721278488636017, -0.01225233543664217, minz
+ 0.0021695485338568687),
1854 (minx
+ 0.003770500421524048, -0.01225233543664217, minz
+ 0.0037705106660723686),
1855 (minx
+ 0.002169538289308548, -0.01225233543664217, minz
+ 0.005721290595829487),
1856 (minx
+ 0.0009799189865589142, -0.012252334505319595, minz
+ 0.007946919184178114),
1857 (minx
+ 0.000247354619204998, -0.012252334505319595, minz
+ 0.010361866094172001),
1858 (minx
, -0.012252334505319595, maxz
- 0.012873305270680646),
1859 (minx
+ 0.0002473592758178711, -0.012252334505319595, maxz
- 0.010361845139414072),
1860 (minx
+ 0.0009799282997846603, -0.012252334505319595, maxz
- 0.007946899626404047),
1861 (minx
+ 0.0021695513278245926, -0.012252332642674446, maxz
- 0.005721272900700569),
1862 (minx
+ 0.003770517185330391, -0.012252332642674446, maxz
- 0.003770497627556324),
1863 (minx
+ 0.005721298512071371, -0.012252332642674446, maxz
- 0.0021695364266633987),
1864 (minx
+ 0.00794692849740386, -0.012252332642674446, maxz
- 0.0009799161925911903),
1865 (minx
+ 0.010361875407397747, -0.012252332642674446, maxz
- 0.000247354619204998),
1866 (minx
+ 0.01287331597587027, -0.012252331711351871, maxz
- 0.006033936515450478),
1867 (maxx
- 0.011539019644260406, -0.012252331711351871, maxz
- 0.006165354512631893),
1868 (maxx
- 0.010255999164655805, -0.012252331711351871, maxz
- 0.006554554216563702),
1869 (maxx
- 0.009073560824617743, -0.012252332642674446, maxz
- 0.007186579518020153),
1870 (maxx
- 0.008037144783884287, -0.012252332642674446, maxz
- 0.008037144318223),
1871 (maxx
- 0.007186580915004015, -0.012252332642674446, maxz
- 0.009073559893295169),
1872 (maxx
- 0.006554554216563702, -0.012252332642674446, maxz
- 0.010255998698994517),
1873 (maxx
- 0.006165354512631893, -0.012252332642674446, maxz
- 0.011539018712937832),
1874 (maxx
- 0.006033937446773052, -0.012252332642674446, maxz
- 0.012873314963572108),
1875 (maxx
- 0.0061653535813093185, -0.012252332642674446, minz
+ 0.011539021041244268),
1876 (maxx
- 0.006554554216563702, -0.012252332642674446, minz
+ 0.01025600079447031),
1877 (maxx
- 0.007186580915004015, -0.012252332642674446, minz
+ 0.009073561755940318),
1878 (maxx
- 0.008037144783884287, -0.012252332642674446, minz
+ 0.008037145715206861),
1879 (maxx
- 0.009073561057448387, -0.012252332642674446, minz
+ 0.007186580449342728),
1880 (maxx
- 0.010256000561639667, -0.012252334505319595, minz
+ 0.006554553750902414),
1881 (maxx
- 0.011539021274074912, -0.012252334505319595, minz
+ 0.0061653549782931805),
1882 (minx
+ 0.012873313747317816, -0.012252334505319595, minz
+ 0.006033938378095627),
1883 (minx
+ 0.01153901673387736, -0.012252334505319595, minz
+ 0.0061653549782931805),
1884 (minx
+ 0.01025599567219615, -0.012252334505319595, minz
+ 0.0065545570105314255),
1885 (minx
+ 0.009073557797819376, -0.012252332642674446, minz
+ 0.007186583708971739),
1886 (minx
+ 0.008037141524255276, -0.012252332642674446, minz
+ 0.008037148043513298),
1887 (minx
+ 0.007186576724052429, -0.012252332642674446, minz
+ 0.00907356571406126),
1888 (minx
+ 0.006554551888257265, -0.012252332642674446, minz
+ 0.010256004752591252),
1889 (minx
+ 0.006165352184325457, -0.012252332642674446, minz
+ 0.011539026163518429),
1890 (minx
+ 0.006033936981111765, -0.012252332642674446, maxz
- 0.012873308875832823),
1891 (minx
+ 0.006165355443954468, -0.012252332642674446, maxz
- 0.011539011728018522),
1892 (minx
+ 0.006554556544870138, -0.012252332642674446, maxz
- 0.010255991481244564),
1893 (minx
+ 0.007186584174633026, -0.012252332642674446, maxz
- 0.00907355290837586),
1894 (minx
+ 0.008037150837481022, -0.012252332642674446, maxz
- 0.008037138264626265),
1895 (minx
+ 0.009073568508028984, -0.012252332642674446, maxz
- 0.007186574395745993),
1896 (minx
+ 0.010256008245050907, -0.012252331711351871, maxz
- 0.006554548628628254),
1897 (minx
+ 0.011539029655978084, -0.012252331711351871, maxz
- 0.006165351718664169),
1898 (maxx
- 0.01237887132447213, -0.012252329848706722, maxz
- 0.010387574089691043),
1899 (maxx
- 0.011465257033705711, -0.012252329848706722, maxz
- 0.01076600537635386),
1900 (maxx
- 0.01108119694981724, -0.012252329848706722, maxz
- 0.011081195320002735),
1901 (maxx
- 0.010766007238999009, -0.012252329848706722, maxz
- 0.011465255171060562),
1902 (maxx
- 0.010531799867749214, -0.012252329848706722, maxz
- 0.01190342620247975),
1903 (maxx
- 0.01108119694981724, -0.012252329848706722, minz
+ 0.01108119951095432),
1904 (maxx
- 0.011903428356163204, -0.012252329848706722, minz
+ 0.010531801730394363),
1905 (minx
+ 0.012378871033433825, -0.012252329848706722, minz
+ 0.010387577582150698),
1906 (minx
+ 0.011465256451629102, -0.012252329848706722, minz
+ 0.01076600980013609),
1907 (minx
+ 0.01076600607484579, -0.012252329848706722, minz
+ 0.011465260875411332),
1908 (minx
+ 0.010531799402087927, -0.012252329848706722, minz
+ 0.011903432430699468),
1909 (minx
+ 0.010338877560570836, -0.012252329848706722, maxz
- 0.01287331168983985),
1910 (minx
+ 0.010531801264733076, -0.012252329848706722, maxz
- 0.01190342364134267),
1911 (minx
+ 0.011081199743784964, -0.012252329848706722, maxz
- 0.011081192875280976),
1912 (minx
+ 0.011465260293334723, -0.012252329848706722, maxz
- 0.010766003280878067),
1913 (maxx
- 0.01287331586396423, -0.012252329848706722, maxz
- 0.010338874999433756),
1914 (maxx
- 0.011903427948709577, -0.012252329848706722, maxz
- 0.010531798237934709),
1915 (maxx
- 0.010387575486674905, -0.012252329848706722, maxz
- 0.012378869636449963),
1916 (maxx
- 0.010338877094909549, -0.012252329848706722, maxz
- 0.012873313945746867),
1917 (maxx
- 0.010387575486674905, -0.012252329848706722, minz
+ 0.012378874002024531),
1918 (maxx
- 0.010531799867749214, -0.012252329848706722, minz
+ 0.011903430917300284),
1919 (maxx
- 0.010766007238999009, -0.012252329848706722, minz
+ 0.011465259245596826),
1920 (maxx
- 0.011465257382951677, -0.012252329848706722, minz
+ 0.010766008868813515),
1921 (maxx
- 0.01237887202296406, -0.012252329848706722, minz
+ 0.010387577582150698),
1922 (minx
+ 0.01287331567758343, -0.012252329848706722, minz
+ 0.010338879656046629),
1923 (minx
+ 0.011903427541255951, -0.012252329848706722, minz
+ 0.010531802894547582),
1924 (minx
+ 0.011081196367740631, -0.012252329848706722, minz
+ 0.011081200325861573),
1925 (minx
+ 0.010387575021013618, -0.012252329848706722, minz
+ 0.01237887586466968),
1926 (minx
+ 0.01038757641799748, -0.012252329848706722, maxz
- 0.012378867017105222),
1927 (minx
+ 0.010766008868813515, -0.012252329848706722, maxz
- 0.011465252609923482),
1928 (minx
+ 0.011903432314284146, -0.012252329848706722, maxz
- 0.01053179637528956),
1929 (minx
+ 0.01237887580646202, -0.012252329848706722, maxz
- 0.010387573391199112)]
1932 myfaces
= [(0, 1, 3, 2), (2, 3, 5, 4), (4, 5, 7, 6), (6, 7, 9, 8), (8, 9, 11, 10),
1933 (10, 11, 13, 12), (12, 13, 15, 14), (14, 15, 17, 16), (16, 17, 19, 18), (18, 19, 21, 20),
1934 (20, 21, 23, 22), (22, 23, 25, 24), (24, 25, 27, 26), (26, 27, 29, 28), (28, 29, 31, 30),
1935 (30, 31, 33, 32), (32, 33, 35, 34), (34, 35, 37, 36), (36, 37, 39, 38), (38, 39, 41, 40),
1936 (40, 41, 43, 42), (42, 43, 45, 44), (44, 45, 47, 46), (46, 47, 49, 48), (48, 49, 51, 50),
1937 (50, 51, 53, 52), (52, 53, 55, 54), (54, 55, 57, 56), (56, 57, 59, 58), (58, 59, 61, 60),
1938 (60, 61, 63, 62), (62, 63, 1, 0), (45, 43, 85, 86), (23, 21, 74, 75), (51, 49, 88, 89),
1939 (7, 5, 66, 67), (29, 27, 77, 78), (57, 55, 91, 92), (35, 33, 80, 81), (13, 11, 69, 70),
1940 (63, 61, 94, 95), (41, 39, 83, 84), (19, 17, 72, 73), (47, 45, 86, 87), (3, 1, 64, 65),
1941 (25, 23, 75, 76), (53, 51, 89, 90), (9, 7, 67, 68), (31, 29, 78, 79), (59, 57, 92, 93),
1942 (37, 35, 81, 82), (15, 13, 70, 71), (1, 63, 95, 64), (43, 41, 84, 85), (21, 19, 73, 74),
1943 (49, 47, 87, 88), (5, 3, 65, 66), (27, 25, 76, 77), (55, 53, 90, 91), (11, 9, 68, 69),
1944 (33, 31, 79, 80), (61, 59, 93, 94), (39, 37, 82, 83), (17, 15, 71, 72), (89, 88, 120, 121),
1945 (67, 66, 98, 99), (78, 77, 109, 110), (87, 86, 118, 119), (65, 64, 96, 97), (76, 75, 107, 108),
1946 (64, 95, 127, 96), (85, 84, 116, 117), (74, 73, 105, 106), (94, 93, 125, 126), (83, 82, 114, 115),
1947 (72, 71, 103, 104), (92, 91, 123, 124), (81, 80, 112, 113), (70, 69, 101, 102), (90, 89, 121, 122),
1948 (68, 67, 99, 100), (79, 78, 110, 111), (88, 87, 119, 120), (66, 65, 97, 98), (77, 76, 108, 109),
1949 (86, 85, 117, 118), (75, 74, 106, 107), (95, 94, 126, 127), (84, 83, 115, 116), (73, 72, 104, 105),
1950 (93, 92, 124, 125), (82, 81, 113, 114), (71, 70, 102, 103), (91, 90, 122, 123), (69, 68, 100, 101),
1951 (80, 79, 111, 112), (123, 122, 154, 155), (101, 100, 132, 133), (112, 111, 143, 144),
1952 (121, 120, 152, 153),
1953 (99, 98, 130, 131), (110, 109, 141, 142), (119, 118, 150, 151), (97, 96, 128, 129), (108, 107, 139, 140),
1954 (96, 127, 159, 128), (117, 116, 148, 149), (106, 105, 137, 138), (126, 125, 157, 158),
1955 (115, 114, 146, 147),
1956 (104, 103, 135, 136), (124, 123, 155, 156), (113, 112, 144, 145), (102, 101, 133, 134),
1957 (122, 121, 153, 154),
1958 (100, 99, 131, 132), (111, 110, 142, 143), (120, 119, 151, 152), (98, 97, 129, 130),
1959 (109, 108, 140, 141),
1960 (118, 117, 149, 150), (107, 106, 138, 139), (127, 126, 158, 159), (116, 115, 147, 148),
1961 (105, 104, 136, 137),
1962 (125, 124, 156, 157), (114, 113, 145, 146), (103, 102, 134, 135), (157, 156, 173, 174),
1963 (133, 132, 162, 163),
1964 (134, 133, 163, 164), (132, 131, 161, 162), (150, 149, 169, 170), (146, 145, 167, 185),
1965 (135, 134, 164, 177),
1966 (155, 154, 172, 189), (144, 143, 183, 184), (153, 152, 171, 188), (131, 130, 176, 161),
1967 (142, 141, 182, 166),
1968 (151, 150, 170, 187), (129, 128, 175, 160), (140, 139, 181, 165), (128, 159, 191, 175),
1969 (149, 148, 186, 169),
1970 (138, 137, 179, 180), (158, 157, 174, 190), (147, 146, 185, 168), (136, 135, 177, 178),
1971 (156, 155, 189, 173),
1972 (145, 144, 184, 167), (154, 153, 188, 172), (143, 142, 166, 183), (152, 151, 187, 171),
1973 (130, 129, 160, 176),
1974 (141, 140, 165, 182), (139, 138, 180, 181), (159, 158, 190, 191), (148, 147, 168, 186),
1975 (137, 136, 178, 179),
1976 (175, 191, 190, 174, 173, 189, 172, 188, 171, 187, 170, 169, 186, 168, 185, 167, 184, 183, 166, 182, 165,
1977 181, 180, 179, 178, 177, 164, 163, 162, 161, 176, 160)]
1979 return myvertex
, myfaces
1982 # ----------------------------------------------
1984 # ----------------------------------------------
1985 def handle_model_06():
1986 # ------------------------------------
1988 # ------------------------------------
1989 minx
= -0.021158458665013313
1990 maxx
= 0.021158456802368164
1991 maxy
= 6.581399869531879e-10
1992 minz
= -0.021158462390303612
1993 maxz
= 0.021158454939723015
1996 myvertex
= [(maxx
- 0.021158457078388343, maxy
, maxz
- 0.01716466387733817),
1997 (maxx
- 0.021158457078388343, -0.004451401997357607, maxz
- 0.01716466387733817),
1998 (maxx
- 0.02037930692313239, maxy
, maxz
- 0.017241403926163912),
1999 (maxx
- 0.02037930692313239, -0.004451401997357607, maxz
- 0.017241403460502625),
2000 (maxx
- 0.019630099064670503, maxy
, maxz
- 0.017468673642724752),
2001 (maxx
- 0.019630099064670503, -0.004451401997357607, maxz
- 0.017468673177063465),
2002 (maxx
- 0.018939625238999724, maxy
, maxz
- 0.017837739316746593),
2003 (maxx
- 0.018939625238999724, -0.004451401997357607, maxz
- 0.017837738851085305),
2004 (maxx
- 0.018334419932216406, maxy
, maxz
- 0.018334418768063188),
2005 (maxx
- 0.018334419932216406, -0.004451401997357607, maxz
- 0.018334418069571257),
2006 (maxx
- 0.017837740713730454, maxy
- 6.581399869531879e-10, maxz
- 0.018939624540507793),
2007 (maxx
- 0.017837740713730454, -0.004451401997357607, maxz
- 0.018939623842015862),
2008 (maxx
- 0.017468675039708614, maxy
- 6.581399869531879e-10, maxz
- 0.01963009813334793),
2009 (maxx
- 0.017468675039708614, -0.004451401997357607, maxz
- 0.01963009755127132),
2010 (maxx
- 0.017241405323147774, maxy
- 6.581399869531879e-10, maxz
- 0.020379305817186832),
2011 (maxx
- 0.017241405323147774, -0.004451401997357607, maxz
- 0.020379305293317884),
2012 (maxx
- 0.01716466573998332, maxy
- 6.581399869531879e-10, maxz
- 0.02115845568246083),
2013 (maxx
- 0.01716466573998332, -0.004451401997357607, maxz
- 0.021158455207246157),
2014 (maxx
- 0.017241404857486486, maxy
- 6.581399869531879e-10, minz
+ 0.020379311696160585),
2015 (maxx
- 0.017241404857486486, -0.004451401997357607, minz
+ 0.02037931210361421),
2016 (maxx
- 0.017468674574047327, maxy
- 6.581399869531879e-10, minz
+ 0.01963010407052934),
2017 (maxx
- 0.017468674574047327, -0.004451401997357607, minz
+ 0.01963010453619063),
2018 (maxx
- 0.017837740713730454, maxy
- 6.581399869531879e-10, minz
+ 0.01893962942995131),
2019 (maxx
- 0.017837740713730454, -0.004451401997357607, minz
+ 0.01893963012844324),
2020 (maxx
- 0.018334419932216406, -6.581399869531879e-10, minz
+ 0.01833442412316799),
2021 (maxx
- 0.018334419932216406, -0.004451401997357607, minz
+ 0.018334424821659923),
2022 (maxx
- 0.018939625471830368, -6.581399869531879e-10, minz
+ 0.01783774490468204),
2023 (maxx
- 0.018939625471830368, -0.004451401997357607, minz
+ 0.017837745370343328),
2024 (maxx
- 0.019630099763162434, -6.581399869531879e-10, minz
+ 0.01746867853216827),
2025 (maxx
- 0.019630099763162434, -0.004451401997357607, minz
+ 0.017468678764998913),
2026 (maxx
- 0.020379307912662625, -6.581399869531879e-10, minz
+ 0.01724140951409936),
2027 (maxx
- 0.020379307912662625, -0.004451401997357607, minz
+ 0.01724140951409936),
2028 (minx
+ 0.02115845708765063, -6.581399869531879e-10, minz
+ 0.017164669930934906),
2029 (minx
+ 0.02115845708765063, -0.004451401997357607, minz
+ 0.017164670396596193),
2030 (minx
+ 0.020379306632094085, -6.581399869531879e-10, minz
+ 0.01724140951409936),
2031 (minx
+ 0.020379306632094085, -0.004451401997357607, minz
+ 0.017241409979760647),
2032 (minx
+ 0.019630098715424538, -6.581399869531879e-10, minz
+ 0.017468680161982775),
2033 (minx
+ 0.019630098715424538, -0.004451401997357607, minz
+ 0.017468680627644062),
2034 (minx
+ 0.018939624773338437, -6.581399869531879e-10, minz
+ 0.017837746301665902),
2035 (minx
+ 0.018939624773338437, -0.004451401997357607, minz
+ 0.017837747000157833),
2036 (minx
+ 0.01833441946655512, -6.581399869531879e-10, minz
+ 0.018334425752982497),
2037 (minx
+ 0.01833441946655512, -0.004451401997357607, minz
+ 0.018334426451474428),
2038 (minx
+ 0.017837740248069167, maxy
- 6.581399869531879e-10, minz
+ 0.018939631758257747),
2039 (minx
+ 0.017837740248069167, -0.004451401997357607, minz
+ 0.018939632223919034),
2040 (minx
+ 0.017468674574047327, maxy
- 6.581399869531879e-10, minz
+ 0.019630106398835778),
2041 (minx
+ 0.017468674574047327, -0.004451401997357607, minz
+ 0.019630106864497066),
2042 (minx
+ 0.01724140578880906, maxy
- 6.581399869531879e-10, minz
+ 0.02037931466475129),
2043 (minx
+ 0.01724140578880906, -0.004451401997357607, minz
+ 0.02037931513041258),
2044 (minx
+ 0.017164666671305895, maxy
- 6.581399869531879e-10, maxz
- 0.021158452127581606),
2045 (minx
+ 0.017164666671305895, -0.004451401997357607, maxz
- 0.02115845165236685),
2046 (minx
+ 0.017241406720131636, maxy
- 6.581399869531879e-10, maxz
- 0.02037930174265057),
2047 (minx
+ 0.017241406720131636, -0.004451401997357607, maxz
- 0.02037930127698928),
2048 (minx
+ 0.01746867736801505, maxy
- 6.581399869531879e-10, maxz
- 0.019630093942396343),
2049 (minx
+ 0.01746867736801505, -0.004451401997357607, maxz
- 0.019630093476735055),
2050 (minx
+ 0.01783774420619011, maxy
- 6.581399869531879e-10, maxz
- 0.018939620116725564),
2051 (minx
+ 0.01783774420619011, -0.004451401997357607, maxz
- 0.018939619651064277),
2052 (minx
+ 0.018334424821659923, maxy
, maxz
- 0.01833441504277289),
2053 (minx
+ 0.018334424821659923, -0.004451401997357607, maxz
- 0.018334414809942245),
2054 (minx
+ 0.018939631059765816, maxy
, maxz
- 0.017837736289948225),
2055 (minx
+ 0.018939631059765816, -0.004451401997357607, maxz
- 0.017837735824286938),
2056 (minx
+ 0.019630105700343847, maxy
, maxz
- 0.017468671081587672),
2057 (minx
+ 0.019630105700343847, -0.004451401997357607, maxz
- 0.01746867084875703),
2058 (minx
+ 0.020379314315505326, maxy
, maxz
- 0.017241402994841337),
2059 (minx
+ 0.020379314315505326, -0.004451401997357607, maxz
- 0.017241402063518763),
2060 (minx
+ 0.02115845651317172, -0.01480177417397499, maxz
),
2061 (maxx
- 0.017030648421496153, -0.01480177417397499, maxz
- 0.00040655583143234253),
2062 (maxx
- 0.013061466626822948, -0.01480177417397499, maxz
- 0.0016105938702821732),
2063 (maxx
- 0.00940344762057066, -0.01480177417397499, maxz
- 0.0035658441483974457),
2064 (maxx
- 0.006197170354425907, -0.01480177417397499, maxz
- 0.006197171285748482),
2065 (maxx
- 0.0035658441483974457, -0.01480177417397499, maxz
- 0.009403450414538383),
2066 (maxx
- 0.0016105901449918747, -0.014801775105297565, maxz
- 0.013061468489468098),
2067 (maxx
- 0.0004065539687871933, -0.014801775105297565, maxz
- 0.017030649818480015),
2068 (maxx
, -0.014801775105297565, minz
+ 0.0211584585064859),
2069 (maxx
- 0.0004065539687871933, -0.014801775105297565, minz
+ 0.017030648421496153),
2070 (maxx
- 0.0016105901449918747, -0.014801775105297565, minz
+ 0.013061468489468098),
2071 (maxx
- 0.0035658441483974457, -0.01480177603662014, minz
+ 0.00940344762057066),
2072 (maxx
- 0.006197170354425907, -0.01480177603662014, minz
+ 0.006197166629135609),
2073 (maxx
- 0.009403450414538383, -0.01480177603662014, minz
+ 0.0035658422857522964),
2074 (maxx
- 0.013061470352113247, -0.01480177603662014, minz
+ 0.0016105901449918747),
2075 (maxx
- 0.017030653543770313, -0.01480177603662014, minz
+ 0.0004065539687871933),
2076 (minx
+ 0.02115844961887081, -0.01480177603662014, minz
),
2077 (minx
+ 0.017030637711286545, -0.01480177603662014, minz
+ 0.0004065539687871933),
2078 (minx
+ 0.013061455450952053, -0.01480177603662014, minz
+ 0.0016105975955724716),
2079 (minx
+ 0.009403438307344913, -0.01480177603662014, minz
+ 0.0035658497363328934),
2080 (minx
+ 0.006197156384587288, -0.01480177603662014, minz
+ 0.006197175942361355),
2081 (minx
+ 0.003565831109881401, -0.01480177603662014, minz
+ 0.00940345972776413),
2082 (minx
+ 0.001610584557056427, -0.014801775105297565, minz
+ 0.013061481527984142),
2083 (minx
+ 0.0004065483808517456, -0.014801775105297565, minz
+ 0.01703066425397992),
2084 (minx
, -0.014801775105297565, maxz
- 0.021158439990372813),
2085 (minx
+ 0.00040655583143234253, -0.014801775105297565, maxz
- 0.01703062793239951),
2086 (minx
+ 0.0016105994582176208, -0.014801775105297565, maxz
- 0.013061447069048882),
2087 (minx
+ 0.0035658515989780426, -0.01480177417397499, maxz
- 0.009403428062796593),
2088 (minx
+ 0.006197184324264526, -0.01480177417397499, maxz
- 0.006197153590619564),
2089 (minx
+ 0.00940346997231245, -0.01480177417397499, maxz
- 0.003565829247236252),
2090 (minx
+ 0.013061493635177612, -0.01480177417397499, maxz
- 0.0016105808317661285),
2091 (minx
+ 0.017030677758157253, -0.01480177417397499, maxz
- 0.00040655024349689484),
2092 (minx
+ 0.02115845651317172, -0.017049500718712807, maxz
),
2093 (maxx
- 0.017030648421496153, -0.017049500718712807, maxz
- 0.00040655583143234253),
2094 (maxx
- 0.013061466626822948, -0.017049500718712807, maxz
- 0.0016105938702821732),
2095 (maxx
- 0.00940344762057066, -0.017049500718712807, maxz
- 0.0035658441483974457),
2096 (maxx
- 0.006197170354425907, -0.017049500718712807, maxz
- 0.006197171285748482),
2097 (maxx
- 0.0035658441483974457, -0.017049500718712807, maxz
- 0.009403450414538383),
2098 (maxx
- 0.0016105901449918747, -0.017049502581357956, maxz
- 0.013061468489468098),
2099 (maxx
- 0.0004065539687871933, -0.017049502581357956, maxz
- 0.017030649818480015),
2100 (maxx
, -0.017049502581357956, maxz
- 0.021158458637408728),
2101 (maxx
- 0.0004065539687871933, -0.017049502581357956, minz
+ 0.017030648421496153),
2102 (maxx
- 0.0016105901449918747, -0.017049502581357956, minz
+ 0.013061468489468098),
2103 (maxx
- 0.0035658441483974457, -0.017049502581357956, minz
+ 0.00940344762057066),
2104 (maxx
- 0.006197170354425907, -0.017049502581357956, minz
+ 0.006197166629135609),
2105 (maxx
- 0.009403450414538383, -0.017049502581357956, minz
+ 0.0035658422857522964),
2106 (maxx
- 0.013061470352113247, -0.017049502581357956, minz
+ 0.0016105901449918747),
2107 (maxx
- 0.017030653543770313, -0.017049502581357956, minz
+ 0.0004065539687871933),
2108 (minx
+ 0.02115844961887081, -0.017049502581357956, minz
),
2109 (minx
+ 0.017030637711286545, -0.017049502581357956, minz
+ 0.0004065539687871933),
2110 (minx
+ 0.013061455450952053, -0.017049502581357956, minz
+ 0.0016105975955724716),
2111 (minx
+ 0.009403438307344913, -0.017049502581357956, minz
+ 0.0035658497363328934),
2112 (minx
+ 0.006197156384587288, -0.017049502581357956, minz
+ 0.006197175942361355),
2113 (minx
+ 0.003565831109881401, -0.017049502581357956, minz
+ 0.00940345972776413),
2114 (minx
+ 0.001610584557056427, -0.017049502581357956, minz
+ 0.013061481527984142),
2115 (minx
+ 0.0004065483808517456, -0.017049502581357956, minz
+ 0.01703066425397992),
2116 (minx
, -0.017049502581357956, maxz
- 0.02115843980423726),
2117 (minx
+ 0.00040655583143234253, -0.017049502581357956, maxz
- 0.01703062793239951),
2118 (minx
+ 0.0016105994582176208, -0.017049502581357956, maxz
- 0.013061447069048882),
2119 (minx
+ 0.0035658515989780426, -0.017049500718712807, maxz
- 0.009403428062796593),
2120 (minx
+ 0.006197184324264526, -0.017049500718712807, maxz
- 0.006197153590619564),
2121 (minx
+ 0.00940346997231245, -0.017049500718712807, maxz
- 0.003565829247236252),
2122 (minx
+ 0.013061493635177612, -0.017049500718712807, maxz
- 0.0016105808317661285),
2123 (minx
+ 0.017030677758157253, -0.017049500718712807, maxz
- 0.00040655024349689484),
2124 (minx
+ 0.021158456942334758, -0.017049498856067657, maxz
- 0.00991731882095337),
2125 (maxx
- 0.01896542147733271, -0.017049498856067657, maxz
- 0.010133316740393639),
2126 (maxx
- 0.016856661066412926, -0.017049498856067657, maxz
- 0.010773001238703728),
2127 (maxx
- 0.014913217630237341, -0.017049500718712807, maxz
- 0.01181179191917181),
2128 (maxx
- 0.013209773227572441, -0.017049500718712807, maxz
- 0.013209772296249866),
2129 (maxx
- 0.011811794713139534, -0.017049500718712807, maxz
- 0.014913215301930904),
2130 (maxx
- 0.010773001238703728, -0.017049500718712807, maxz
- 0.01685666013509035),
2131 (maxx
- 0.010133316740393639, -0.017049500718712807, maxz
- 0.01896541938185692),
2132 (maxx
- 0.009917320683598518, -0.017049500718712807, maxz
- 0.02115845573538011),
2133 (maxx
- 0.01013331487774849, -0.017049500718712807, minz
+ 0.018965424969792366),
2134 (maxx
- 0.010773001238703728, -0.017049500718712807, minz
+ 0.01685666525736451),
2135 (maxx
- 0.011811794713139534, -0.017049500718712807, minz
+ 0.01491321949288249),
2136 (maxx
- 0.013209773227572441, -0.017049500718712807, minz
+ 0.01320977695286274),
2137 (maxx
- 0.014913217630237341, -0.017049500718712807, minz
+ 0.011811795644462109),
2138 (maxx
- 0.016856663394719362, -0.017049502581357956, minz
+ 0.010773002170026302),
2139 (maxx
- 0.01896542403846979, -0.017049502581357956, minz
+ 0.010133319534361362),
2140 (minx
+ 0.021158453279507494, -0.017049502581357956, minz
+ 0.009917323477566242),
2141 (minx
+ 0.018965415423735976, -0.017049502581357956, minz
+ 0.010133319534361362),
2142 (minx
+ 0.016856654547154903, -0.017049502581357956, minz
+ 0.01077300775796175),
2143 (minx
+ 0.014913210645318031, -0.017049500718712807, minz
+ 0.011811801232397556),
2144 (minx
+ 0.013209767639636993, -0.017049500718712807, minz
+ 0.013209780678153038),
2145 (minx
+ 0.011811788193881512, -0.017049500718712807, minz
+ 0.014913226012140512),
2146 (minx
+ 0.01077299751341343, -0.017049500718712807, minz
+ 0.016856671776622534),
2147 (minx
+ 0.010133313946425915, -0.017049500718712807, minz
+ 0.018965433351695538),
2148 (minx
+ 0.009917320683598518, -0.017049500718712807, maxz
- 0.02115844572963077),
2149 (minx
+ 0.010133318603038788, -0.017049500718712807, maxz
- 0.01896540797315538),
2150 (minx
+ 0.0107730058953166, -0.017049500718712807, maxz
- 0.01685664849355817),
2151 (minx
+ 0.011811800301074982, -0.017049500718712807, maxz
- 0.014913204126060009),
2152 (minx
+ 0.013209782540798187, -0.017049500718712807, maxz
- 0.013209762051701546),
2153 (minx
+ 0.014913228340446949, -0.017049500718712807, maxz
- 0.011811783537268639),
2154 (minx
+ 0.016856675501912832, -0.017049498856067657, maxz
- 0.010772991925477982),
2155 (minx
+ 0.01896543661132455, -0.017049498856067657, maxz
- 0.010133312083780766),
2156 (maxx
- 0.020345793396700174, -0.017049498856067657, maxz
- 0.01707291603088379),
2157 (maxx
- 0.018844185629859567, -0.017049498856067657, maxz
- 0.017694902140647173),
2158 (maxx
- 0.01821294822730124, -0.017049498856067657, maxz
- 0.01821294496767223),
2159 (maxx
- 0.017694905400276184, -0.017049498856067657, maxz
- 0.018844182137399912),
2160 (maxx
- 0.017309964634478092, -0.017049498856067657, maxz
- 0.0195643559563905),
2161 (maxx
- 0.01821294822730124, -0.017049498856067657, minz
+ 0.01821295404806733),
2162 (maxx
- 0.019564359914511442, -0.017049498856067657, minz
+ 0.017309968825429678),
2163 (minx
+ 0.02034579199971631, -0.017049498856067657, minz
+ 0.017072923481464386),
2164 (minx
+ 0.018844183767214417, -0.017049498856067657, minz
+ 0.017694910988211632),
2165 (minx
+ 0.01769490260630846, -0.017049498856067657, minz
+ 0.01884419354610145),
2166 (minx
+ 0.017309962771832943, -0.017049498856067657, minz
+ 0.01956436806358397),
2167 (minx
+ 0.016992878634482622, -0.017049498856067657, maxz
- 0.021158450354705316),
2168 (minx
+ 0.017309966031461954, -0.017049498856067657, maxz
- 0.019564351649023592),
2169 (minx
+ 0.01821295195259154, -0.017049498856067657, maxz
- 0.018212941009551287),
2170 (minx
+ 0.01884419028647244, -0.017049498856067657, maxz
- 0.017694898648187518),
2171 (maxx
- 0.021158457657990293, -0.017049498856067657, maxz
- 0.016992874443531036),
2172 (maxx
- 0.01956435921601951, -0.017049498856067657, maxz
- 0.017309961607679725),
2173 (maxx
- 0.017072918359190226, -0.017049498856067657, maxz
- 0.020345790137071162),
2174 (maxx
- 0.016992878168821335, -0.017049498856067657, maxz
- 0.021158454062492393),
2175 (maxx
- 0.017072918359190226, -0.017049498856067657, minz
+ 0.020345799159258604),
2176 (maxx
- 0.017309964634478092, -0.017049498856067657, minz
+ 0.01956436550244689),
2177 (maxx
- 0.017694905400276184, -0.017049498856067657, minz
+ 0.01884419098496437),
2178 (maxx
- 0.018844186328351498, -0.017049498856067657, minz
+ 0.01769490959122777),
2179 (maxx
- 0.020345794560853392, -0.017049498856067657, minz
+ 0.017072923481464386),
2180 (minx
+ 0.021158456452073482, -0.017049498856067657, minz
+ 0.01699288422241807),
2181 (minx
+ 0.019564357702620327, -0.017049498856067657, minz
+ 0.01730997092090547),
2182 (minx
+ 0.01821294636465609, -0.017049498856067657, minz
+ 0.018212955445051193),
2183 (minx
+ 0.01707291742786765, -0.017049498856067657, minz
+ 0.020345802302472293),
2184 (minx
+ 0.017072919756174088, -0.017049498856067657, maxz
- 0.020345785829704255),
2185 (minx
+ 0.017694907495751977, -0.017049498856067657, maxz
- 0.018844177946448326),
2186 (minx
+ 0.01956436550244689, -0.017049498856067657, maxz
- 0.017309958348050714),
2187 (minx
+ 0.020345799799542874, -0.017049498856067657, maxz
- 0.017072914633899927)]
2190 myfaces
= [(0, 1, 3, 2), (2, 3, 5, 4), (4, 5, 7, 6), (6, 7, 9, 8), (8, 9, 11, 10),
2191 (10, 11, 13, 12), (12, 13, 15, 14), (14, 15, 17, 16), (16, 17, 19, 18), (18, 19, 21, 20),
2192 (20, 21, 23, 22), (22, 23, 25, 24), (24, 25, 27, 26), (26, 27, 29, 28), (28, 29, 31, 30),
2193 (30, 31, 33, 32), (32, 33, 35, 34), (34, 35, 37, 36), (36, 37, 39, 38), (38, 39, 41, 40),
2194 (40, 41, 43, 42), (42, 43, 45, 44), (44, 45, 47, 46), (46, 47, 49, 48), (48, 49, 51, 50),
2195 (50, 51, 53, 52), (52, 53, 55, 54), (54, 55, 57, 56), (56, 57, 59, 58), (58, 59, 61, 60),
2196 (60, 61, 63, 62), (62, 63, 1, 0), (45, 43, 85, 86), (23, 21, 74, 75), (51, 49, 88, 89),
2197 (7, 5, 66, 67), (29, 27, 77, 78), (57, 55, 91, 92), (35, 33, 80, 81), (13, 11, 69, 70),
2198 (63, 61, 94, 95), (41, 39, 83, 84), (19, 17, 72, 73), (47, 45, 86, 87), (3, 1, 64, 65),
2199 (25, 23, 75, 76), (53, 51, 89, 90), (9, 7, 67, 68), (31, 29, 78, 79), (59, 57, 92, 93),
2200 (37, 35, 81, 82), (15, 13, 70, 71), (1, 63, 95, 64), (43, 41, 84, 85), (21, 19, 73, 74),
2201 (49, 47, 87, 88), (5, 3, 65, 66), (27, 25, 76, 77), (55, 53, 90, 91), (11, 9, 68, 69),
2202 (33, 31, 79, 80), (61, 59, 93, 94), (39, 37, 82, 83), (17, 15, 71, 72), (89, 88, 120, 121),
2203 (67, 66, 98, 99), (78, 77, 109, 110), (87, 86, 118, 119), (65, 64, 96, 97), (76, 75, 107, 108),
2204 (64, 95, 127, 96), (85, 84, 116, 117), (74, 73, 105, 106), (94, 93, 125, 126), (83, 82, 114, 115),
2205 (72, 71, 103, 104), (92, 91, 123, 124), (81, 80, 112, 113), (70, 69, 101, 102), (90, 89, 121, 122),
2206 (68, 67, 99, 100), (79, 78, 110, 111), (88, 87, 119, 120), (66, 65, 97, 98), (77, 76, 108, 109),
2207 (86, 85, 117, 118), (75, 74, 106, 107), (95, 94, 126, 127), (84, 83, 115, 116), (73, 72, 104, 105),
2208 (93, 92, 124, 125), (82, 81, 113, 114), (71, 70, 102, 103), (91, 90, 122, 123), (69, 68, 100, 101),
2209 (80, 79, 111, 112), (123, 122, 154, 155), (101, 100, 132, 133), (112, 111, 143, 144),
2210 (121, 120, 152, 153),
2211 (99, 98, 130, 131), (110, 109, 141, 142), (119, 118, 150, 151), (97, 96, 128, 129), (108, 107, 139, 140),
2212 (96, 127, 159, 128), (117, 116, 148, 149), (106, 105, 137, 138), (126, 125, 157, 158),
2213 (115, 114, 146, 147),
2214 (104, 103, 135, 136), (124, 123, 155, 156), (113, 112, 144, 145), (102, 101, 133, 134),
2215 (122, 121, 153, 154),
2216 (100, 99, 131, 132), (111, 110, 142, 143), (120, 119, 151, 152), (98, 97, 129, 130),
2217 (109, 108, 140, 141),
2218 (118, 117, 149, 150), (107, 106, 138, 139), (127, 126, 158, 159), (116, 115, 147, 148),
2219 (105, 104, 136, 137),
2220 (125, 124, 156, 157), (114, 113, 145, 146), (103, 102, 134, 135), (157, 156, 173, 174),
2221 (133, 132, 162, 163),
2222 (134, 133, 163, 164), (132, 131, 161, 162), (150, 149, 169, 170), (146, 145, 167, 185),
2223 (135, 134, 164, 177),
2224 (155, 154, 172, 189), (144, 143, 183, 184), (153, 152, 171, 188), (131, 130, 176, 161),
2225 (142, 141, 182, 166),
2226 (151, 150, 170, 187), (129, 128, 175, 160), (140, 139, 181, 165), (128, 159, 191, 175),
2227 (149, 148, 186, 169),
2228 (138, 137, 179, 180), (158, 157, 174, 190), (147, 146, 185, 168), (136, 135, 177, 178),
2229 (156, 155, 189, 173),
2230 (145, 144, 184, 167), (154, 153, 188, 172), (143, 142, 166, 183), (152, 151, 187, 171),
2231 (130, 129, 160, 176),
2232 (141, 140, 165, 182), (139, 138, 180, 181), (159, 158, 190, 191), (148, 147, 168, 186),
2233 (137, 136, 178, 179),
2234 (175, 191, 190, 174, 173, 189, 172, 188, 171, 187, 170, 169, 186, 168, 185, 167, 184, 183, 166, 182, 165,
2235 181, 180, 179, 178, 177, 164, 163, 162, 161, 176, 160)]
2237 return myvertex
, myfaces
2240 # ----------------------------------------------
2242 # ----------------------------------------------
2243 def handle_model_07():
2244 # ------------------------------------
2246 # ------------------------------------
2247 minx
= -0.10910986363887787
2248 maxx
= 0.10910986363887787
2250 minz
= -0.0039262366481125355
2251 maxz
= 0.0039262366481125355
2254 myvertex
= [(maxx
, -0.017620893195271492, maxz
),
2255 (maxx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2256 (maxx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2257 (maxx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2258 (maxx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2259 (maxx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2260 (maxx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2261 (maxx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2262 (maxx
, -0.017620891332626343, minz
),
2263 (maxx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2264 (maxx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2265 (maxx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2266 (maxx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2267 (maxx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2268 (maxx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2269 (maxx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2270 (maxx
- 0.02949388325214386, -0.01396019384264946, maxz
- 0.0024807279696688056),
2271 (maxx
- 0.030047059059143066, -0.01396019384264946, maxz
- 0.0025907604722306132),
2272 (maxx
- 0.030516013503074646, -0.01396019384264946, maxz
- 0.002904107444919646),
2273 (maxx
- 0.030829355120658875, -0.01396019384264946, maxz
- 0.0033730645664036274),
2274 (maxx
- 0.030939392745494843, -0.01396019198000431, minz
+ 0.003926236608184253),
2275 (maxx
- 0.030829355120658875, -0.01396019384264946, minz
+ 0.0033730643335729837),
2276 (maxx
- 0.030516013503074646, -0.01396019384264946, minz
+ 0.0029041077941656113),
2277 (maxx
- 0.030047059059143066, -0.01396019384264946, minz
+ 0.002590760588645935),
2278 (maxx
- 0.02949388325214386, -0.01396019384264946, minz
+ 0.0024807280860841274),
2279 (maxx
- 0.02894071489572525, -0.01396019384264946, minz
+ 0.002590760588645935),
2280 (maxx
- 0.028471753001213074, -0.01396019384264946, minz
+ 0.002904107444919646),
2281 (maxx
- 0.028158411383628845, -0.01396019384264946, minz
+ 0.0033730644499883056),
2282 (maxx
- 0.028048373758792877, -0.01396019384264946, maxz
- 0.0039262363893523555),
2283 (maxx
- 0.028158411383628845, -0.01396019384264946, maxz
- 0.0033730638679116964),
2284 (maxx
- 0.028471753001213074, -0.01396019384264946, maxz
- 0.0029041070956736803),
2285 (maxx
- 0.02894071489572525, -0.01396019384264946, maxz
- 0.0025907597737386823),
2286 (maxx
- 0.02949388325214386, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2287 (maxx
- 0.030047059059143066, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2288 (maxx
- 0.030516013503074646, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2289 (maxx
- 0.030829355120658875, maxy
, maxz
- 0.0033730645664036274),
2290 (maxx
- 0.030939392745494843, maxy
, minz
+ 0.003926236608184253),
2291 (maxx
- 0.030829355120658875, maxy
, minz
+ 0.0033730643335729837),
2292 (maxx
- 0.030516013503074646, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2293 (maxx
- 0.030047059059143066, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2294 (maxx
- 0.02949388325214386, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2295 (maxx
- 0.02894071489572525, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2296 (maxx
- 0.028471753001213074, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2297 (maxx
- 0.028158411383628845, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2298 (maxx
- 0.028048373758792877, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2299 (maxx
- 0.028158411383628845, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2300 (maxx
- 0.028471753001213074, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2301 (maxx
- 0.02894071489572525, -1.862645149230957e-09, maxz
- 0.0025907597737386823),
2302 (minx
+ 0.10910986037924886, -0.017620893195271492, maxz
),
2303 (minx
+ 0.10910986037924886, -0.01611838862299919, maxz
- 0.00029886653646826744),
2304 (minx
+ 0.10910986037924886, -0.014844624325633049, maxz
- 0.0011499673128128052),
2305 (minx
+ 0.10910986037924886, -0.013993524014949799, maxz
- 0.002423731260932982),
2306 (minx
+ 0.10910986037924886, -0.013694657012820244, minz
+ 0.003926236289926277),
2307 (minx
+ 0.10910986037924886, -0.013993524014949799, minz
+ 0.002423729980364442),
2308 (minx
+ 0.10910986037924886, -0.014844624325633049, minz
+ 0.001149968709796667),
2309 (minx
+ 0.10910986037924886, -0.016118386760354042, minz
+ 0.0002988663036376238),
2310 (minx
+ 0.10910986037924886, -0.017620891332626343, minz
),
2311 (minx
+ 0.10910986037924886, -0.019123397767543793, minz
+ 0.00029886653646826744),
2312 (minx
+ 0.10910986037924886, -0.020397160202264786, minz
+ 0.0011499675456434488),
2313 (minx
+ 0.10910986037924886, -0.021248264238238335, minz
+ 0.0024237307952716947),
2314 (minx
+ 0.10910986037924886, -0.02154713124036789, maxz
- 0.003926236195012284),
2315 (minx
+ 0.10910986037924886, -0.021248262375593185, maxz
- 0.0024237297475337982),
2316 (minx
+ 0.10910986037924886, -0.020397160202264786, maxz
- 0.0011499666143208742),
2317 (minx
+ 0.10910986037924886, -0.019123397767543793, maxz
- 0.0002988646738231182),
2318 (minx
, -0.017620893195271492, maxz
),
2319 (minx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2320 (minx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2321 (minx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2322 (minx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2323 (minx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2324 (minx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2325 (minx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2326 (minx
, -0.017620891332626343, minz
),
2327 (minx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2328 (minx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2329 (minx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2330 (minx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2331 (minx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2332 (minx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2333 (minx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2334 (minx
+ 0.02949388325214386, -0.01396019384264946, maxz
- 0.0024807279696688056),
2335 (minx
+ 0.030047059059143066, -0.01396019384264946, maxz
- 0.0025907604722306132),
2336 (minx
+ 0.030516013503074646, -0.01396019384264946, maxz
- 0.002904107444919646),
2337 (minx
+ 0.030829355120658875, -0.01396019384264946, maxz
- 0.0033730645664036274),
2338 (minx
+ 0.030939392745494843, -0.01396019198000431, minz
+ 0.003926236608184253),
2339 (minx
+ 0.030829355120658875, -0.01396019384264946, minz
+ 0.0033730643335729837),
2340 (minx
+ 0.030516013503074646, -0.01396019384264946, minz
+ 0.0029041077941656113),
2341 (minx
+ 0.030047059059143066, -0.01396019384264946, minz
+ 0.002590760588645935),
2342 (minx
+ 0.02949388325214386, -0.01396019384264946, minz
+ 0.0024807280860841274),
2343 (minx
+ 0.02894071489572525, -0.01396019384264946, minz
+ 0.002590760588645935),
2344 (minx
+ 0.028471753001213074, -0.01396019384264946, minz
+ 0.002904107444919646),
2345 (minx
+ 0.028158411383628845, -0.01396019384264946, minz
+ 0.0033730644499883056),
2346 (minx
+ 0.028048373758792877, -0.01396019384264946, maxz
- 0.0039262363893523555),
2347 (minx
+ 0.028158411383628845, -0.01396019384264946, maxz
- 0.0033730638679116964),
2348 (minx
+ 0.028471753001213074, -0.01396019384264946, maxz
- 0.0029041070956736803),
2349 (minx
+ 0.02894071489572525, -0.01396019384264946, maxz
- 0.0025907597737386823),
2350 (minx
+ 0.02949388325214386, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2351 (minx
+ 0.030047059059143066, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2352 (minx
+ 0.030516013503074646, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2353 (minx
+ 0.030829355120658875, maxy
, maxz
- 0.0033730645664036274),
2354 (minx
+ 0.030939392745494843, maxy
, minz
+ 0.003926236608184253),
2355 (minx
+ 0.030829355120658875, maxy
, minz
+ 0.0033730643335729837),
2356 (minx
+ 0.030516013503074646, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2357 (minx
+ 0.030047059059143066, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2358 (minx
+ 0.02949388325214386, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2359 (minx
+ 0.02894071489572525, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2360 (minx
+ 0.028471753001213074, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2361 (minx
+ 0.028158411383628845, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2362 (minx
+ 0.028048373758792877, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2363 (minx
+ 0.028158411383628845, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2364 (minx
+ 0.028471753001213074, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2365 (minx
+ 0.02894071489572525, -1.862645149230957e-09, maxz
- 0.0025907597737386823)]
2368 myfaces
= [(49, 48, 0, 1), (60, 59, 11, 12), (58, 57, 9, 10), (56, 55, 7, 8), (54, 53, 5, 6),
2369 (52, 51, 3, 4), (48, 63, 15, 0), (50, 49, 1, 2), (61, 60, 12, 13), (59, 58, 10, 11),
2370 (57, 56, 8, 9), (55, 54, 6, 7), (53, 52, 4, 5), (63, 62, 14, 15), (51, 50, 2, 3),
2371 (62, 61, 13, 14), (17, 16, 32, 33), (32, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33),
2372 (28, 27, 43, 44), (26, 25, 41, 42),
2373 (24, 23, 39, 40), (22, 21, 37, 38), (20, 19, 35, 36), (16, 31, 47, 32), (18, 17, 33, 34),
2374 (29, 28, 44, 45), (27, 26, 42, 43), (25, 24, 40, 41), (23, 22, 38, 39), (21, 20, 36, 37),
2375 (31, 30, 46, 47), (19, 18, 34, 35), (30, 29, 45, 46), (49, 65, 64, 48), (60, 76, 75, 59),
2376 (58, 74, 73, 57), (56, 72, 71, 55), (54, 70, 69, 53), (52, 68, 67, 51), (48, 64, 79, 63),
2377 (50, 66, 65, 49), (61, 77, 76, 60), (59, 75, 74, 58), (57, 73, 72, 56), (55, 71, 70, 54),
2378 (53, 69, 68, 52), (63, 79, 78, 62), (51, 67, 66, 50), (62, 78, 77, 61), (81, 97, 96, 80),
2379 (96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111), (92, 108, 107, 91),
2380 (90, 106, 105, 89), (88, 104, 103, 87), (86, 102, 101, 85),
2381 (84, 100, 99, 83), (80, 96, 111, 95), (82, 98, 97, 81), (93, 109, 108, 92), (91, 107, 106, 90),
2382 (89, 105, 104, 88), (87, 103, 102, 86), (85, 101, 100, 84), (95, 111, 110, 94), (83, 99, 98, 82),
2383 (94, 110, 109, 93), (0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1),
2384 (64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79)]
2386 return myvertex
, myfaces
2389 # ----------------------------------------------
2391 # ----------------------------------------------
2392 def handle_model_08():
2393 # ------------------------------------
2395 # ------------------------------------
2396 minx
= -0.05910986289381981
2397 maxx
= 0.05910986289381981
2399 minz
= -0.0039262366481125355
2400 maxz
= 0.0039262366481125355
2403 myvertex
= [(maxx
, -0.017620893195271492, maxz
),
2404 (maxx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2405 (maxx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2406 (maxx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2407 (maxx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2408 (maxx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2409 (maxx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2410 (maxx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2411 (maxx
, -0.017620891332626343, minz
),
2412 (maxx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2413 (maxx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2414 (maxx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2415 (maxx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2416 (maxx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2417 (maxx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2418 (maxx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2419 (maxx
- 0.010583892464637756, -0.01396019384264946, maxz
- 0.0024807279696688056),
2420 (maxx
- 0.011137068271636963, -0.01396019384264946, maxz
- 0.0025907604722306132),
2421 (maxx
- 0.011606022715568542, -0.01396019384264946, maxz
- 0.002904107444919646),
2422 (maxx
- 0.011919364333152771, -0.01396019384264946, maxz
- 0.0033730645664036274),
2423 (maxx
- 0.012029401957988739, -0.01396019198000431, minz
+ 0.003926236608184253),
2424 (maxx
- 0.011919364333152771, -0.01396019384264946, minz
+ 0.0033730643335729837),
2425 (maxx
- 0.011606022715568542, -0.01396019384264946, minz
+ 0.0029041077941656113),
2426 (maxx
- 0.011137068271636963, -0.01396019384264946, minz
+ 0.002590760588645935),
2427 (maxx
- 0.010583892464637756, -0.01396019384264946, minz
+ 0.0024807280860841274),
2428 (maxx
- 0.010030724108219147, -0.01396019384264946, minz
+ 0.002590760588645935),
2429 (maxx
- 0.00956176221370697, -0.01396019384264946, minz
+ 0.002904107444919646),
2430 (maxx
- 0.009248420596122742, -0.01396019384264946, minz
+ 0.0033730644499883056),
2431 (maxx
- 0.009138382971286774, -0.01396019384264946, maxz
- 0.0039262363893523555),
2432 (maxx
- 0.009248420596122742, -0.01396019384264946, maxz
- 0.0033730638679116964),
2433 (maxx
- 0.00956176221370697, -0.01396019384264946, maxz
- 0.0029041070956736803),
2434 (maxx
- 0.010030724108219147, -0.01396019384264946, maxz
- 0.0025907597737386823),
2435 (maxx
- 0.010583892464637756, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2436 (maxx
- 0.011137068271636963, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2437 (maxx
- 0.011606022715568542, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2438 (maxx
- 0.011919364333152771, maxy
, maxz
- 0.0033730645664036274),
2439 (maxx
- 0.012029401957988739, maxy
, minz
+ 0.003926236608184253),
2440 (maxx
- 0.011919364333152771, maxy
, minz
+ 0.0033730643335729837),
2441 (maxx
- 0.011606022715568542, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2442 (maxx
- 0.011137068271636963, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2443 (maxx
- 0.010583892464637756, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2444 (maxx
- 0.010030724108219147, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2445 (maxx
- 0.00956176221370697, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2446 (maxx
- 0.009248420596122742, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2447 (maxx
- 0.009138382971286774, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2448 (maxx
- 0.009248420596122742, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2449 (maxx
- 0.00956176221370697, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2450 (maxx
- 0.010030724108219147, -1.862645149230957e-09, maxz
- 0.0025907597737386823),
2451 (minx
, -0.017620893195271492, maxz
),
2452 (minx
, -0.01611838862299919, maxz
- 0.00029886653646826744),
2453 (minx
, -0.014844624325633049, maxz
- 0.0011499673128128052),
2454 (minx
, -0.013993524014949799, maxz
- 0.002423731260932982),
2455 (minx
, -0.013694657012820244, minz
+ 0.003926236289926277),
2456 (minx
, -0.013993524014949799, minz
+ 0.002423729980364442),
2457 (minx
, -0.014844624325633049, minz
+ 0.001149968709796667),
2458 (minx
, -0.016118386760354042, minz
+ 0.0002988663036376238),
2459 (minx
, -0.017620891332626343, minz
),
2460 (minx
, -0.019123397767543793, minz
+ 0.00029886653646826744),
2461 (minx
, -0.020397160202264786, minz
+ 0.0011499675456434488),
2462 (minx
, -0.021248264238238335, minz
+ 0.0024237307952716947),
2463 (minx
, -0.02154713124036789, maxz
- 0.003926236195012284),
2464 (minx
, -0.021248262375593185, maxz
- 0.0024237297475337982),
2465 (minx
, -0.020397160202264786, maxz
- 0.0011499666143208742),
2466 (minx
, -0.019123397767543793, maxz
- 0.0002988646738231182),
2467 (minx
+ 0.010583892464637756, -0.01396019384264946, maxz
- 0.0024807279696688056),
2468 (minx
+ 0.011137068271636963, -0.01396019384264946, maxz
- 0.0025907604722306132),
2469 (minx
+ 0.011606022715568542, -0.01396019384264946, maxz
- 0.002904107444919646),
2470 (minx
+ 0.011919364333152771, -0.01396019384264946, maxz
- 0.0033730645664036274),
2471 (minx
+ 0.012029401957988739, -0.01396019198000431, minz
+ 0.003926236608184253),
2472 (minx
+ 0.011919364333152771, -0.01396019384264946, minz
+ 0.0033730643335729837),
2473 (minx
+ 0.011606022715568542, -0.01396019384264946, minz
+ 0.0029041077941656113),
2474 (minx
+ 0.011137068271636963, -0.01396019384264946, minz
+ 0.002590760588645935),
2475 (minx
+ 0.010583892464637756, -0.01396019384264946, minz
+ 0.0024807280860841274),
2476 (minx
+ 0.010030724108219147, -0.01396019384264946, minz
+ 0.002590760588645935),
2477 (minx
+ 0.00956176221370697, -0.01396019384264946, minz
+ 0.002904107444919646),
2478 (minx
+ 0.009248420596122742, -0.01396019384264946, minz
+ 0.0033730644499883056),
2479 (minx
+ 0.009138382971286774, -0.01396019384264946, maxz
- 0.0039262363893523555),
2480 (minx
+ 0.009248420596122742, -0.01396019384264946, maxz
- 0.0033730638679116964),
2481 (minx
+ 0.00956176221370697, -0.01396019384264946, maxz
- 0.0029041070956736803),
2482 (minx
+ 0.010030724108219147, -0.01396019384264946, maxz
- 0.0025907597737386823),
2483 (minx
+ 0.010583892464637756, -1.862645149230957e-09, maxz
- 0.0024807279696688056),
2484 (minx
+ 0.011137068271636963, -1.862645149230957e-09, maxz
- 0.0025907604722306132),
2485 (minx
+ 0.011606022715568542, -1.862645149230957e-09, maxz
- 0.002904107444919646),
2486 (minx
+ 0.011919364333152771, maxy
, maxz
- 0.0033730645664036274),
2487 (minx
+ 0.012029401957988739, maxy
, minz
+ 0.003926236608184253),
2488 (minx
+ 0.011919364333152771, maxy
, minz
+ 0.0033730643335729837),
2489 (minx
+ 0.011606022715568542, -1.862645149230957e-09, minz
+ 0.0029041077941656113),
2490 (minx
+ 0.011137068271636963, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2491 (minx
+ 0.010583892464637756, -1.862645149230957e-09, minz
+ 0.0024807280860841274),
2492 (minx
+ 0.010030724108219147, -1.862645149230957e-09, minz
+ 0.002590760588645935),
2493 (minx
+ 0.00956176221370697, -1.862645149230957e-09, minz
+ 0.002904107444919646),
2494 (minx
+ 0.009248420596122742, -1.862645149230957e-09, minz
+ 0.0033730644499883056),
2495 (minx
+ 0.009138382971286774, -1.862645149230957e-09, maxz
- 0.0039262363893523555),
2496 (minx
+ 0.009248420596122742, -1.862645149230957e-09, maxz
- 0.0033730638679116964),
2497 (minx
+ 0.00956176221370697, -1.862645149230957e-09, maxz
- 0.0029041070956736803),
2498 (minx
+ 0.010030724108219147, -1.862645149230957e-09, maxz
- 0.0025907597737386823),
2499 (maxx
- 0.0591098596341908, -0.017620893195271492, maxz
),
2500 (maxx
- 0.0591098596341908, -0.01611838862299919, maxz
- 0.00029886653646826744),
2501 (maxx
- 0.0591098596341908, -0.014844624325633049, maxz
- 0.0011499673128128052),
2502 (maxx
- 0.0591098596341908, -0.013993524014949799, maxz
- 0.002423731260932982),
2503 (maxx
- 0.0591098596341908, -0.013694657012820244, minz
+ 0.003926236289926277),
2504 (maxx
- 0.0591098596341908, -0.013993524014949799, minz
+ 0.002423729980364442),
2505 (maxx
- 0.0591098596341908, -0.014844624325633049, minz
+ 0.001149968709796667),
2506 (maxx
- 0.0591098596341908, -0.016118386760354042, minz
+ 0.0002988663036376238),
2507 (maxx
- 0.0591098596341908, -0.017620891332626343, minz
),
2508 (maxx
- 0.0591098596341908, -0.019123397767543793, minz
+ 0.00029886653646826744),
2509 (maxx
- 0.0591098596341908, -0.020397160202264786, minz
+ 0.0011499675456434488),
2510 (maxx
- 0.0591098596341908, -0.021248264238238335, minz
+ 0.0024237307952716947),
2511 (maxx
- 0.0591098596341908, -0.02154713124036789, maxz
- 0.003926236195012284),
2512 (maxx
- 0.0591098596341908, -0.021248262375593185, maxz
- 0.0024237297475337982),
2513 (maxx
- 0.0591098596341908, -0.020397160202264786, maxz
- 0.0011499666143208742),
2514 (maxx
- 0.0591098596341908, -0.019123397767543793, maxz
- 0.0002988646738231182)]
2517 myfaces
= [(97, 96, 0, 1), (108, 107, 11, 12), (106, 105, 9, 10), (104, 103, 7, 8), (102, 101, 5, 6),
2518 (100, 99, 3, 4), (96, 111, 15, 0), (98, 97, 1, 2), (109, 108, 12, 13), (107, 106, 10, 11),
2519 (105, 104, 8, 9), (103, 102, 6, 7), (101, 100, 4, 5), (111, 110, 14, 15), (99, 98, 2, 3),
2520 (110, 109, 13, 14), (17, 16, 32, 33), (32, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33),
2521 (28, 27, 43, 44), (26, 25, 41, 42),
2522 (24, 23, 39, 40), (22, 21, 37, 38), (20, 19, 35, 36), (16, 31, 47, 32), (18, 17, 33, 34),
2523 (29, 28, 44, 45), (27, 26, 42, 43), (25, 24, 40, 41), (23, 22, 38, 39), (21, 20, 36, 37),
2524 (31, 30, 46, 47), (19, 18, 34, 35), (30, 29, 45, 46),
2525 (0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1),
2527 (108, 60, 59, 107), (106, 58, 57, 105), (104, 56, 55, 103), (102, 54, 53, 101), (100, 52, 51, 99),
2528 (96, 48, 63, 111), (98, 50, 49, 97), (109, 61, 60, 108), (107, 59, 58, 106), (105, 57, 56, 104),
2529 (103, 55, 54, 102), (101, 53, 52, 100), (111, 63, 62, 110), (99, 51, 50, 98), (110, 62, 61, 109),
2530 (65, 81, 80, 64), (80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95), (76, 92, 91, 75),
2531 (74, 90, 89, 73), (72, 88, 87, 71),
2532 (70, 86, 85, 69), (68, 84, 83, 67), (64, 80, 95, 79), (66, 82, 81, 65), (77, 93, 92, 76),
2533 (75, 91, 90, 74), (73, 89, 88, 72), (71, 87, 86, 70), (69, 85, 84, 68), (79, 95, 94, 78),
2534 (67, 83, 82, 66), (78, 94, 93, 77), (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)]
2536 return myvertex
, myfaces
2539 # ----------------------------------------------
2540 # Creaate SKU code for inventory
2541 # ----------------------------------------------
2542 def createunitsku(self
, cabinet
):
2543 # ------------------
2545 # ------------------
2546 if self
.type_cabinet
== "1":
2550 # ------------------
2552 # ------------------
2553 if cabinet
.dType
== "1" or cabinet
.dType
== "2" or cabinet
.dType
== "3" or cabinet
.dType
== "8":
2555 elif cabinet
.dType
== "9" or cabinet
.dType
== "10":
2557 elif cabinet
.dType
== "4" or cabinet
.dType
== "5" or cabinet
.dType
== "6" or cabinet
.dType
== "11":
2559 elif cabinet
.dType
== "7":
2563 # ------------------
2565 # ------------------
2566 if cabinet
.dType
== "1" or cabinet
.dType
== "2" or cabinet
.dType
== "3" or cabinet
.dType
== "4" \
2567 or cabinet
.dType
== "5" or cabinet
.dType
== "6" or cabinet
.dType
== "9" or cabinet
.dType
== "10":
2569 elif cabinet
.dType
== "7":
2570 p3
= "%02d" % cabinet
.dNum
2571 elif cabinet
.dType
== "8" or cabinet
.dType
== "11":
2575 # ------------------
2577 # ------------------
2578 if cabinet
.hand
is True:
2582 # ------------------
2584 # ------------------
2585 # noinspection PyBroadException
2587 if cabinet
.dType
== "7":
2588 p5
= "00" # drawers is always 0
2590 p5
= "%02d" % cabinet
.sNum
2593 # ------------------
2595 # ------------------
2597 y
= self
.depth
+ cabinet
.wY
2598 z
= self
.height
+ cabinet
.wZ
2600 p6
= "%06.3fx%06.3fx%06.3f-%06.3f" % (x
, y
, z
, self
.thickness
)
2602 # ------------------
2604 # ------------------
2605 if cabinet
.dType
== "1" or cabinet
.dType
== "2" or cabinet
.dType
== "3" \
2606 or cabinet
.dType
== "4" or cabinet
.dType
== "5" or cabinet
.dType
== "6":
2607 p7
= "%06.3f" % cabinet
.sX
2608 elif cabinet
.dType
== "8" or cabinet
.dType
== "11":
2609 p7
= "%06.3f" % (cabinet
.sX
/ 2)
2610 elif cabinet
.dType
== "9" or cabinet
.dType
== "10": # corners
2611 dwidth
= cabinet
.sX
- self
.depth
- self
.thickness
- 0.001
2612 p7
= "%06.3f" % dwidth
2616 sku
= "%s%s%s%s%s-%s-%s" % (p1
, p2
, p3
, p4
, p5
, p6
, p7
)