]> SALOME platform Git repositories - modules/geom.git/blob - src/GEOM_SWIG/GEOM_shellSolid.py
Salome HOME
Merge with OCC-V2_1_0_deb
[modules/geom.git] / src / GEOM_SWIG / GEOM_shellSolid.py
1 #==============================================================================
2 #  Info.
3 #  Bug (from script, bug)   : shellSolid_modified.py, PAL6611
4 #  Modified                 : 25/11/2004
5 #  Author                   : Kovaltchuk Alexey
6 #  Project                  : PAL/SALOME
7 #==============================================================================
8
9 # Imports
10 # -------
11
12 import salome
13 import SALOMEDS
14
15 import geompy
16
17 # Interface with geometry
18 # -----------------------
19
20 #geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
21 geomgui = salome.ImportComponentGUI("GEOM")
22
23 geom = geompy
24
25 # Interface with study
26 # --------------------
27
28 def addToStudy(shape, name):
29     i = geompy.addToStudy(shape, name)
30     salome.sg.updateObjBrowser(0)
31 #    geomgui.createAndDisplayGO(i)
32     return i
33
34 def setName(obj):
35     obj.SetName(salome.orb.object_to_string(obj))
36
37
38 def MakeVertex(x, y, z):
39     v = geom.MakeVertex(x, y, z)
40     setName(v)
41     return v
42
43 def MakeEdge(v1, v2):
44     e = geom.MakeEdge(v1, v2)
45     setName(e)
46     return e
47
48 def MakeArc(f, p, t):
49     e = geom.MakeArc(f, p, t)
50     setName(e)
51     return e
52
53 def MakeArcCenter(c, f, t):
54     p = fkl(c, f, t)
55     e = geom.MakeArc(f, p, t)
56     setName(e)
57     return e
58
59 # Face with 4 edges
60 # -----------------
61
62 # cf. makeTiledSurfByContour
63
64 def MakeQuadFace(e1, e2, e3, e4):
65     l = []
66     l.append(e1)
67     l.append(e2)
68     l.append(e3)
69     l.append(e4)
70     w = geom.MakeWire(l)
71     f = geom.MakeFace(w, 1)
72     setName(f)
73     return f
74
75 # cf. makeTiledSurfBetweenTwolines
76
77 def MakeQuadFaceEdge(e1, e2):
78     return fkl
79
80 # cf. makeTiledSurfByPointsOfContour
81 # cf. makeMesh
82
83 def MakeQuadFaceVertex(v1, v2, v3, v4):
84     l = []
85     e = MakeEdge(v1, v2)
86     l.append(e)
87     e = MakeEdge(v2, v3)
88     l.append(e)
89     e = MakeEdge(v3, v4)
90     l.append(e)
91     e = MakeEdge(v4, v1)
92     l.append(e)
93     w = geom.MakeWire(l)
94     f = geom.MakeFace(w, 1)
95     setName(f)
96     return f
97
98 # Solid with 6 faces
99 # ------------------
100
101 # cf. makePavedVolWithContour
102 # cf. makeVolWithEnvolope
103
104 def MakeHexaSolid(f1, f2, f3, f4, f5, f6):
105     l = []
106     l.append(f1)
107     l.append(f2)
108     l.append(f3)
109     l.append(f4)
110     l.append(f5)
111     l.append(f6)
112     s = geom.MakeShell(l)
113 # FKL: bad shell
114     l = []
115     l.append(s)
116     s = geom.MakeSolid(l)
117 # FKL: MakeSolid crash
118     setName(s)
119     return s
120
121 # cf. makeVolBetweenTwoSurfaces
122
123 def MakeHexaSolidFace(f1, f2):
124     return fkl
125
126 # Face (with 4 edges) and solid (with 6 faces)
127 # --------------------------------------------
128
129 # makeTiledSurfByRotationOfLine
130
131 def MakeRevolution(g, pt, ve, angle):
132     """
133     Creates a face  by rotation of an edge with an angle around an axis defined by a point and a vector or
134     creates a solid by rotation of a  face with an angle around an axis defined by a point and a vector
135     """
136     axis = geom.MakeAxisStruct(pt.x, pt.y, pt.z, ve.x, ve.y, ve.z)
137     s = geom.MakeRevolution(g, axis, angle)
138     setName(s)
139     return s
140
141 # cf. makeSurfSewingTwolines
142
143 def MakeSewing(ls):
144     """
145     Creates a face  by sewing common edges between a list of faces or
146     Creates a solid by sewing common faces between a list of solids
147     """
148     s = geom.MakeSewing(ls)
149     setName(s)
150     return s
151
152 # cf. makeIntersectionBetweenTwoMeshes
153
154 def MakeCommon(s1, s2):
155     """
156     Creates the common face  between 2 faces or
157     Creates the common solid between 2 solids
158     """
159     s = geom.MakeBoolean(s1, s2, 1)
160     setName(s)
161     return s
162
163 # cf. makeMerge
164
165 def MakeFuse(s1, s2):
166     """
167     Fuses 2 faces or 2 solids
168     """
169     s = geom.MakeBoolean(s1, s2, 3)
170     setName(s)
171     return s
172
173 # Additional
174
175 def MakeCut(s1, s2):
176     """
177     Cuts 2 faces or 2 solids
178     """
179     s = geom.MakeBoolean(s1, s2, 2)
180     setName(s)
181     return s
182
183 # Edge, face (with 4 edges) and solid (with 6 faces)
184 # --------------------------------------------------
185
186 # cf. makeSurfByTranslation
187 # cf. makeVolByTranslation
188
189 def MakePrism(s, v):
190     """
191     Creates a edge  defined by a vertex and along a vector
192     Creates a face  defined by a edge   and along a vector
193     Creates a solid defined by a face   and along a vector
194     """
195     r = geom.MakePrism(s, point(0, 0, 0), v)
196     setName(r)
197     return r
198
199 # cf. homothety
200
201 def MakeScaleTransform(s, center, factor):
202     """
203     Creates a homothety of a geometric object
204     """
205     r = geom.MakeScaleTransform(s, center, factor)
206     setName(r)
207     return r
208
209 # Vertex, edge, face (with 4 edges) and solid (with 6 faces)
210 # ----------------------------------------------------------
211
212 # cf. translate
213
214 def MakeTranslation(s, vx, vy, vz):
215     """
216     Translates a vertex, an edge, a face or a solid
217     """
218     r = geom.MakeTranslation(s, vx, vy, vz)
219     setName(r)
220     return r
221
222 # cf. rotation
223
224 def MakeRotation(g, pt, ve, angle):
225     """
226     Creates a rotation of the geometric object with an angle around an axis defined by a point and a vector
227     """
228     axis = geom.MakeAxisStruct(pt.x, pt.y, pt.z, ve.x, ve.y, ve.z)
229     s = geom.MakeRotation(g, axis, angle)
230     setName(s)
231     return s
232
233 # cf. symmetryByPoint
234
235 def MakeMirrorByPoint(s, point):
236     """
237     Creates a symmetric object by point symetry
238     """
239     return fkl
240
241 # cf. symmetryByLine
242
243 def MakeMirrorByLine(s, line):
244     """
245     Creates a symmetric object by line symetry
246     """
247     return fkl
248
249 # cf. symmetryByPlane
250
251 def MakeMirrorByPlane(s, pt, ve):
252     """
253     Creates a symmetric object by plane symetry defined by a point and a normal vector
254     """
255     p = plane(pt, ve)
256     r = geom.MakeMirrorByplane(s, p)
257     setName(r)
258     return r
259
260 # Compound
261 # --------
262
263 # Additional
264
265 def BlockMakeCompound(ls):
266     """
267     Creates a compound defined by a list and glue faces
268     """
269     c = MakeCompound(ls)
270     r = MakeGlueFaces(c, 1.e-5)
271     setName(r)
272     return r
273
274 # Boolean operators
275 # -----------------
276
277 def mergePointsNearBy(l, v):
278     """
279     Modifies a list of shape by replacing all vertex near a new vextex
280     """
281     return fkl
282
283 # Acces operators
284 # ---------------
285
286 def getCoords(v):
287     """
288     Gets the coordinates of the vertex
289     """
290     return fkl
291
292 def extractBeginPoint(e):
293     """
294     Gets the first point of an edge
295     """
296     return fkl
297
298 def extractEndPoint(e):
299     """
300     Gets the second point of an edge
301     """
302     return fkl
303
304 # fkl more functionalities
305
306 # Addionnal
307 # =========
308
309 # Check geometry
310 # --------------
311
312 def CheckQuadFace(f):
313     """
314     Checks if a face has 4 edges
315     """
316     return fkl
317
318 def CheckHexaSolid(s):
319     """
320     Checks if a solid has 6 faces and each faces have 4 edges
321     """
322     return fkl
323
324 # fkl more if other kind of solid like: tetra, penta, etc
325
326 # point for building
327 # ------------------
328
329 def point(x, y, z):
330     p = geom.MakeVertex(x, y, z)
331     return p
332
333 def plane(pt, dir):
334     p = geom.MakePlane(pt, d, 100)
335     return p
336
337 # Solid
338 # -----
339
340 def MakeCylinder(center, dir, radius, height):
341     s = geom.MakeCylinder(center, dir, radius, height)
342     setName(s)
343     return s
344
345 def MakeBox(p1, p2):
346     s = geom.MakeBoxTwoPnt(p1, p2)
347     setName(s)
348     return s
349
350 # Compound
351 # --------
352
353 ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
354
355 def MakePartitionList(solids, tools):
356     """
357     Creates a list of shape by a partition of a list of solids by a list of tools
358     """
359     p = geom.Partition(solids, tools, [], [], ShapeType["SHAPE"]);
360     l = geom.SubShapeAll(p, ShapeType["SHAPE"])
361     return l
362
363 def MakePartition(solids, tools):
364     """
365     Creates a partition of a list of solids by a list of tools
366     """
367     l = MakePartitionList(solids, tools)
368     c = MakeCompound(l)
369     setName(c)
370     return c
371
372 def BlockMakeMultiTranslation1D(shape, dir, step, times):
373     m = geom.MakeMultiTranslation1D(shape, dir, step, times)
374     c  = MakeGlueFaces(m, 1.e-5)
375     setName(c)
376     return c
377
378 def BlockMakeMultiTranslation2D(shape, dir1, step1, times1, dir2, step2, times2):
379     m  = geom.MakeMultiTranslation2D(shape, dir1, step1, times1, dir2, step2, times2)
380     c  = MakeGlueFaces(m, 1.e-5)
381     setName(c)
382     return c
383
384 def BlockMakeMultiRotation1D(shape, dir, point, times):
385     m = geom.MakeMultiRotation1D(shape, dir, point, times)
386     c  = MakeGlueFaces(m, 1.e-5)
387     setName(c)
388     return c
389
390 def BlockMakeMultiRotation2D(shape, dir, point, angle, times1, step, times2):
391     m = geom.MakeMultiRotation2D(shape, dir, point, angle, times1, step, times2)
392     c  = MakeGlueFaces(m, 1.e-5)
393     setName(c)
394     return c
395
396 # internal
397 # --------
398
399 def MakeCompound(ls):
400     """
401     Creates a compound defined by a list
402     """
403     c = geom.MakeCompound(ls)
404     return c
405
406 def MakeSewingShape(s, eps):
407     """
408     Creates a shape fully sewed
409     """
410     r = geom.MakeSewingShape(s, eps)
411     return r
412
413 def MakeGlueFaces(s, eps):
414     """
415     Touched faces are replaced by one
416     """
417     r = geom.MakeGlueFaces(s, eps)
418     return r
419
420
421 # Geometry
422 # ========
423
424 # A small cube centered and put on a great cube
425
426 # Points
427 # ------
428
429 greatPoint111 = point( 0,  0,  0)
430 greatPoint211 = point(10,  0,  0)
431 greatPoint311 = point(20,  0,  0)
432 greatPoint411 = point(30,  0,  0)
433
434 greatPoint121 = point( 0, 10,  0)
435 greatPoint221 = point(10, 10,  0)
436 greatPoint321 = point(20, 10,  0)
437 greatPoint421 = point(30, 10,  0)
438
439 greatPoint112 = point( 0,  0, 10)
440 greatPoint212 = point(10,  0, 10)
441 greatPoint312 = point(20,  0, 10)
442 greatPoint412 = point(30,  0, 10)
443
444 greatPoint122 = point( 0, 10, 10)
445 greatPoint222 = point(10, 10, 10)
446 greatPoint322 = point(20, 10, 10)
447 greatPoint422 = point(30, 10, 10)
448
449 greatPoint113 = point( 0,  0, 20)
450 greatPoint213 = point(10,  0, 20)
451 greatPoint313 = point(20,  0, 20)
452 greatPoint413 = point(30,  0, 20)
453
454 greatPoint123 = point( 0, 10, 20)
455 greatPoint223 = point(10, 10, 20)
456 greatPoint323 = point(20, 10, 20)
457 greatPoint423 = point(30, 10, 20)
458
459 greatPoint114 = point( 0,  0, 30)
460 greatPoint214 = point(10,  0, 30)
461 greatPoint314 = point(20,  0, 30)
462 greatPoint414 = point(30,  0, 30)
463
464 greatPoint124 = point( 0, 10, 30)
465 greatPoint224 = point(10, 10, 30)
466 greatPoint324 = point(20, 10, 30)
467 greatPoint424 = point(30, 10, 30)
468
469
470 smallPoint111 = greatPoint222
471 smallPoint211 = greatPoint322
472 smallPoint121 = point(10, 20, 10)
473 smallPoint221 = point(20, 20, 10)
474
475 smallPoint112 = greatPoint223
476 smallPoint212 = greatPoint323
477 smallPoint122 = point(10, 20, 20)
478 smallPoint222 = point(20, 20, 20)
479
480 # Edges
481 # -----
482
483 smallEdgeX11 = MakeEdge(smallPoint111, smallPoint211)
484 smallEdgeX21 = MakeEdge(smallPoint121, smallPoint221)
485 smallEdgeX12 = MakeEdge(smallPoint112, smallPoint212)
486 smallEdgeX22 = MakeEdge(smallPoint122, smallPoint222)
487
488 smallEdgeY11 = MakeEdge(smallPoint111, smallPoint121)
489 smallEdgeY21 = MakeEdge(smallPoint211, smallPoint221)
490 smallEdgeY12 = MakeEdge(smallPoint112, smallPoint122)
491 smallEdgeY22 = MakeEdge(smallPoint212, smallPoint222)
492
493 smallEdgeZ11 = MakeEdge(smallPoint111, smallPoint112)
494 smallEdgeZ21 = MakeEdge(smallPoint211, smallPoint212)
495 smallEdgeZ12 = MakeEdge(smallPoint121, smallPoint122)
496 smallEdgeZ22 = MakeEdge(smallPoint221, smallPoint222)
497
498
499 greatEdgeX111 = MakeEdge(greatPoint111, greatPoint211)
500 greatEdgeX211 = MakeEdge(greatPoint211, greatPoint311)
501 greatEdgeX311 = MakeEdge(greatPoint311, greatPoint411)
502 greatEdgeX121 = MakeEdge(greatPoint121, greatPoint221)
503 greatEdgeX221 = MakeEdge(greatPoint221, greatPoint321)
504 greatEdgeX321 = MakeEdge(greatPoint321, greatPoint421)
505
506 greatEdgeX112 = MakeEdge(greatPoint112, greatPoint212)
507 greatEdgeX212 = MakeEdge(greatPoint212, greatPoint312)
508 greatEdgeX312 = MakeEdge(greatPoint312, greatPoint412)
509 greatEdgeX122 = MakeEdge(greatPoint122, greatPoint222)
510 greatEdgeX222 = smallEdgeX11
511 greatEdgeX322 = MakeEdge(greatPoint322, greatPoint422)
512
513 greatEdgeX113 = MakeEdge(greatPoint113, greatPoint213)
514 greatEdgeX213 = MakeEdge(greatPoint213, greatPoint313)
515 greatEdgeX313 = MakeEdge(greatPoint313, greatPoint413)
516 greatEdgeX123 = MakeEdge(greatPoint123, greatPoint223)
517 greatEdgeX223 = smallEdgeX12
518 greatEdgeX323 = MakeEdge(greatPoint323, greatPoint423)
519
520 greatEdgeX114 = MakeEdge(greatPoint114, greatPoint214)
521 greatEdgeX214 = MakeEdge(greatPoint214, greatPoint314)
522 greatEdgeX314 = MakeEdge(greatPoint314, greatPoint414)
523 greatEdgeX124 = MakeEdge(greatPoint124, greatPoint224)
524 greatEdgeX224 = MakeEdge(greatPoint224, greatPoint324)
525 greatEdgeX324 = MakeEdge(greatPoint324, greatPoint424)
526
527 greatEdgeY11 = MakeEdge(greatPoint111, greatPoint121)
528 greatEdgeY21 = MakeEdge(greatPoint211, greatPoint221)
529 greatEdgeY31 = MakeEdge(greatPoint311, greatPoint321)
530 greatEdgeY41 = MakeEdge(greatPoint411, greatPoint421)
531
532 greatEdgeY12 = MakeEdge(greatPoint112, greatPoint122)
533 greatEdgeY22 = MakeEdge(greatPoint212, greatPoint222)
534 greatEdgeY32 = MakeEdge(greatPoint312, greatPoint322)
535 greatEdgeY42 = MakeEdge(greatPoint412, greatPoint422)
536
537 greatEdgeY13 = MakeEdge(greatPoint113, greatPoint123)
538 greatEdgeY23 = MakeEdge(greatPoint213, greatPoint223)
539 greatEdgeY33 = MakeEdge(greatPoint313, greatPoint323)
540 greatEdgeY43 = MakeEdge(greatPoint413, greatPoint423)
541
542 greatEdgeY14 = MakeEdge(greatPoint114, greatPoint124)
543 greatEdgeY24 = MakeEdge(greatPoint214, greatPoint224)
544 greatEdgeY34 = MakeEdge(greatPoint314, greatPoint324)
545 greatEdgeY44 = MakeEdge(greatPoint414, greatPoint424)
546
547 greatEdgeZ111 = MakeEdge(greatPoint111, greatPoint112)
548 greatEdgeZ211 = MakeEdge(greatPoint211, greatPoint212)
549 greatEdgeZ311 = MakeEdge(greatPoint311, greatPoint312)
550 greatEdgeZ411 = MakeEdge(greatPoint411, greatPoint412)
551
552 greatEdgeZ121 = MakeEdge(greatPoint121, greatPoint122)
553 greatEdgeZ221 = MakeEdge(greatPoint221, greatPoint222)
554 greatEdgeZ321 = MakeEdge(greatPoint321, greatPoint322)
555 greatEdgeZ421 = MakeEdge(greatPoint421, greatPoint422)
556
557 greatEdgeZ112 = MakeEdge(greatPoint112, greatPoint113)
558 greatEdgeZ212 = MakeEdge(greatPoint212, greatPoint213)
559 greatEdgeZ312 = MakeEdge(greatPoint312, greatPoint313)
560 greatEdgeZ412 = MakeEdge(greatPoint412, greatPoint413)
561
562 greatEdgeZ122 = MakeEdge(greatPoint122, greatPoint123)
563 greatEdgeZ222 = smallEdgeZ11
564 greatEdgeZ322 = smallEdgeZ21
565 greatEdgeZ422 = MakeEdge(greatPoint422, greatPoint423)
566
567 greatEdgeZ113 = MakeEdge(greatPoint113, greatPoint114)
568 greatEdgeZ213 = MakeEdge(greatPoint213, greatPoint214)
569 greatEdgeZ313 = MakeEdge(greatPoint313, greatPoint314)
570 greatEdgeZ413 = MakeEdge(greatPoint413, greatPoint414)
571
572 greatEdgeZ123 = MakeEdge(greatPoint123, greatPoint124)
573 greatEdgeZ223 = MakeEdge(greatPoint223, greatPoint224)
574 greatEdgeZ323 = MakeEdge(greatPoint323, greatPoint324)
575 greatEdgeZ423 = MakeEdge(greatPoint423, greatPoint424)
576
577 # Faces
578 # -----
579
580 smallFaceX1 = MakeQuadFace(smallEdgeY11, smallEdgeZ11, smallEdgeY12, smallEdgeZ12)
581 smallFaceX2 = MakeQuadFace(smallEdgeY21, smallEdgeZ21, smallEdgeY22, smallEdgeZ22)
582 smallFaceY1 = MakeQuadFace(smallEdgeX11, smallEdgeZ11, smallEdgeX12, smallEdgeZ21)
583 smallFaceY2 = MakeQuadFace(smallEdgeX21, smallEdgeZ12, smallEdgeX22, smallEdgeZ22)
584 smallFaceZ1 = MakeQuadFace(smallEdgeX11, smallEdgeY11, smallEdgeX21, smallEdgeY21)
585 smallFaceZ2 = MakeQuadFace(smallEdgeX12, smallEdgeY12, smallEdgeX22, smallEdgeY22)
586
587
588 greatFaceX11 = MakeQuadFace(greatEdgeY11, greatEdgeZ111, greatEdgeY12, greatEdgeZ121)
589 greatFaceX21 = MakeQuadFace(greatEdgeY21, greatEdgeZ211, greatEdgeY22, greatEdgeZ221)
590 greatFaceX31 = MakeQuadFace(greatEdgeY31, greatEdgeZ311, greatEdgeY32, greatEdgeZ321)
591 greatFaceX41 = MakeQuadFace(greatEdgeY41, greatEdgeZ411, greatEdgeY42, greatEdgeZ421)
592
593 greatFaceX12 = MakeQuadFace(greatEdgeY12, greatEdgeZ112, greatEdgeY13, greatEdgeZ122)
594 greatFaceX22 = MakeQuadFace(greatEdgeY22, greatEdgeZ212, greatEdgeY23, greatEdgeZ222)
595 greatFaceX32 = MakeQuadFace(greatEdgeY32, greatEdgeZ312, greatEdgeY33, greatEdgeZ322)
596 greatFaceX42 = MakeQuadFace(greatEdgeY42, greatEdgeZ412, greatEdgeY43, greatEdgeZ422)
597
598 greatFaceX13 = MakeQuadFace(greatEdgeY13, greatEdgeZ113, greatEdgeY14, greatEdgeZ123)
599 greatFaceX23 = MakeQuadFace(greatEdgeY23, greatEdgeZ213, greatEdgeY24, greatEdgeZ223)
600 greatFaceX33 = MakeQuadFace(greatEdgeY33, greatEdgeZ313, greatEdgeY34, greatEdgeZ323)
601 greatFaceX43 = MakeQuadFace(greatEdgeY43, greatEdgeZ413, greatEdgeY44, greatEdgeZ423)
602
603 greatFaceY111 = MakeQuadFace(greatEdgeX111, greatEdgeZ111, greatEdgeX112, greatEdgeZ211)
604 greatFaceY211 = MakeQuadFace(greatEdgeX211, greatEdgeZ211, greatEdgeX212, greatEdgeZ311)
605 greatFaceY311 = MakeQuadFace(greatEdgeX311, greatEdgeZ311, greatEdgeX312, greatEdgeZ411)
606 greatFaceY121 = MakeQuadFace(greatEdgeX121, greatEdgeZ121, greatEdgeX122, greatEdgeZ221)
607 greatFaceY221 = MakeQuadFace(greatEdgeX221, greatEdgeZ221, greatEdgeX222, greatEdgeZ321)
608 greatFaceY321 = MakeQuadFace(greatEdgeX321, greatEdgeZ321, greatEdgeX322, greatEdgeZ421)
609
610 greatFaceY112 = MakeQuadFace(greatEdgeX112, greatEdgeZ112, greatEdgeX113, greatEdgeZ212)
611 greatFaceY212 = MakeQuadFace(greatEdgeX212, greatEdgeZ212, greatEdgeX213, greatEdgeZ312)
612 greatFaceY312 = MakeQuadFace(greatEdgeX312, greatEdgeZ312, greatEdgeX313, greatEdgeZ412)
613 greatFaceY122 = MakeQuadFace(greatEdgeX122, greatEdgeZ122, greatEdgeX123, greatEdgeZ222)
614 greatFaceY222 = smallFaceY1
615 greatFaceY322 = MakeQuadFace(greatEdgeX322, greatEdgeZ322, greatEdgeX323, greatEdgeZ422)
616
617 greatFaceY113 = MakeQuadFace(greatEdgeX113, greatEdgeZ113, greatEdgeX114, greatEdgeZ213)
618 greatFaceY213 = MakeQuadFace(greatEdgeX213, greatEdgeZ213, greatEdgeX214, greatEdgeZ313)
619 greatFaceY313 = MakeQuadFace(greatEdgeX313, greatEdgeZ313, greatEdgeX314, greatEdgeZ413)
620 greatFaceY123 = MakeQuadFace(greatEdgeX123, greatEdgeZ123, greatEdgeX124, greatEdgeZ223)
621 greatFaceY223 = MakeQuadFace(greatEdgeX223, greatEdgeZ223, greatEdgeX224, greatEdgeZ323)
622 greatFaceY323 = MakeQuadFace(greatEdgeX323, greatEdgeZ323, greatEdgeX324, greatEdgeZ423)
623
624 greatFaceZ11 = MakeQuadFace(greatEdgeX111, greatEdgeY11, greatEdgeX121, greatEdgeY21)
625 greatFaceZ21 = MakeQuadFace(greatEdgeX211, greatEdgeY21, greatEdgeX221, greatEdgeY31)
626 greatFaceZ31 = MakeQuadFace(greatEdgeX311, greatEdgeY31, greatEdgeX321, greatEdgeY41)
627
628 greatFaceZ12 = MakeQuadFace(greatEdgeX112, greatEdgeY12, greatEdgeX122, greatEdgeY22)
629 greatFaceZ22 = MakeQuadFace(greatEdgeX212, greatEdgeY22, greatEdgeX222, greatEdgeY32)
630 greatFaceZ32 = MakeQuadFace(greatEdgeX312, greatEdgeY32, greatEdgeX322, greatEdgeY42)
631
632 greatFaceZ13 = MakeQuadFace(greatEdgeX113, greatEdgeY13, greatEdgeX123, greatEdgeY23)
633 greatFaceZ23 = MakeQuadFace(greatEdgeX213, greatEdgeY23, greatEdgeX223, greatEdgeY33)
634 greatFaceZ33 = MakeQuadFace(greatEdgeX313, greatEdgeY33, greatEdgeX323, greatEdgeY43)
635
636 greatFaceZ14 = MakeQuadFace(greatEdgeX114, greatEdgeY14, greatEdgeX124, greatEdgeY24)
637 greatFaceZ24 = MakeQuadFace(greatEdgeX214, greatEdgeY24, greatEdgeX224, greatEdgeY34)
638 greatFaceZ34 = MakeQuadFace(greatEdgeX314, greatEdgeY34, greatEdgeX324, greatEdgeY44)
639
640 # Solids
641 # ------
642
643 smallBlock   = MakeHexaSolid(smallFaceX1, smallFaceX2, smallFaceY1, smallFaceY2, smallFaceZ1, smallFaceZ2)
644
645 greatBlock11 = MakeHexaSolid(greatFaceX11, greatFaceX21, greatFaceY111, greatFaceY121, greatFaceZ11, greatFaceZ12)
646 greatBlock21 = MakeHexaSolid(greatFaceX21, greatFaceX31, greatFaceY211, greatFaceY221, greatFaceZ21, greatFaceZ22)
647 greatBlock31 = MakeHexaSolid(greatFaceX31, greatFaceX41, greatFaceY311, greatFaceY321, greatFaceZ31, greatFaceZ32)
648
649 greatBlock12 = MakeHexaSolid(greatFaceX12, greatFaceX22, greatFaceY112, greatFaceY122, greatFaceZ12, greatFaceZ13)
650 greatBlock22 = MakeHexaSolid(greatFaceX22, greatFaceX32, greatFaceY212, greatFaceY222, greatFaceZ22, greatFaceZ23)
651 greatBlock32 = MakeHexaSolid(greatFaceX32, greatFaceX42, greatFaceY312, greatFaceY322, greatFaceZ32, greatFaceZ33)
652
653 greatBlock13 = MakeHexaSolid(greatFaceX13, greatFaceX23, greatFaceY113, greatFaceY123, greatFaceZ13, greatFaceZ14)
654 greatBlock23 = MakeHexaSolid(greatFaceX23, greatFaceX33, greatFaceY213, greatFaceY223, greatFaceZ23, greatFaceZ24)
655 greatBlock33 = MakeHexaSolid(greatFaceX33, greatFaceX43, greatFaceY313, greatFaceY323, greatFaceZ33, greatFaceZ34)
656
657 # Compound
658 # --------
659
660 l = []
661 l.append(smallBlock)
662 l.append(greatBlock11)
663 l.append(greatBlock21)
664 l.append(greatBlock31)
665 l.append(greatBlock12)
666 l.append(greatBlock22)
667 l.append(greatBlock32)
668 l.append(greatBlock13)
669 l.append(greatBlock23)
670 l.append(greatBlock33)
671
672 piece = MakeCompound(l)
673
674 # Add in study
675 # ------------
676
677 idpiece = addToStudy(piece, "Cubes2pyGibi")
678 #geom.InsertOp.Export(piece,"piece.brep", "BREP")