1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 # GEOM GEOM_SWIG : binding of C++ implementation with Python
22 # File : geomBuilder.py
23 # Author : Paul RASCLE, EDF
27 \namespace geomBuilder
28 \brief Module geomBuilder
32 ## @defgroup l1_publish_data Publishing results in SALOME study
37 ## By default, all functions of geomBuilder Python module do not publish
38 ## resulting geometrical objects. This can be done in the Python script
39 ## by means of \ref geomBuilder.geomBuilder.addToStudy() "addToStudy()"
40 ## or \ref geomBuilder.geomBuilder.addToStudyInFather() "addToStudyInFather()"
43 ## However, it is possible to publish result data in the study
44 ## automatically. For this, almost each function of
45 ## \ref geomBuilder.geomBuilder "geomBuilder" class has
46 ## an additional @a theName parameter (@c None by default).
47 ## As soon as non-empty string value is passed to this parameter,
48 ## the result object is published in the study automatically.
50 ## For example, consider the following Python script:
54 ## from salome.geom import geomBuilder
55 ## geompy = geomBuilder.New(salome.myStudy)
56 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100) # box is not published in the study yet
57 ## geompy.addToStudy(box, "box") # explicit publishing
60 ## Last two lines can be replaced by one-line instruction:
63 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100, theName="box") # box is published in the study with "box" name
69 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100, "box") # box is published in the study with "box" name
72 ## Note, that some functions produce more than one geometrical objects. For example,
73 ## \ref geomBuilder.geomBuilder.GetNonBlocks() "GetNonBlocks()" function returns two objects:
74 ## group of all non-hexa solids and group of all non-quad faces.
75 ## For such functions it is possible to specify separate names for results.
80 ## # create and publish cylinder
81 ## cyl = geompy.MakeCylinderRH(100, 100, "cylinder")
82 ## # get non blocks from cylinder
83 ## g1, g2 = geompy.GetNonBlocks(cyl, "nonblock")
86 ## Above example will publish both result compounds (first with non-hexa solids and
87 ## second with non-quad faces) as two items, both named "nonblock".
88 ## However, if second command is invoked as
91 ## g1, g2 = geompy.GetNonBlocks(cyl, ("nonhexa", "nonquad"))
94 ## ... the first compound will be published with "nonhexa" name, and second will be named "nonquad".
96 ## Automatic publication of all results can be also enabled/disabled by means of the function
97 ## \ref geomBuilder.geomBuilder.addToStudyAuto() "addToStudyAuto()". The automatic publishing
98 ## is managed by the numeric parameter passed to this function:
99 ## - if @a maxNbSubShapes = 0, automatic publishing is disabled.
100 ## - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
101 ## maximum number of sub-shapes allowed for publishing is unlimited; any negative
102 ## value passed as parameter has the same effect.
103 ## - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
104 ## maximum number of sub-shapes allowed for publishing is set to specified value.
106 ## When automatic publishing is enabled, you even do not need to pass @a theName parameter
107 ## to the functions creating objects, instead default names will be used. However, you
108 ## can always change the behavior, by passing explicit name to the @a theName parameter
109 ## and it will be used instead default one.
110 ## The publishing of the collections of objects will be done according to the above
111 ## mentioned rules (maximum allowed number of sub-shapes).
117 ## from salome.geom import geomBuilder
118 ## geompy = geomBuilder.New(salome.myStudy)
119 ## geompy.addToStudyAuto() # enable automatic publication
120 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100)
121 ## # the box is created and published in the study with default name
122 ## geompy.addToStudyAuto(5) # set max allowed number of sub-shapes to 5
123 ## vertices = geompy.SubShapeAll(box, geomBuilder.ShapeType['VERTEX'])
124 ## # only 5 first vertices will be published, with default names
125 ## print len(vertices)
126 ## # note, that result value still containes all 8 vertices
127 ## geompy.addToStudyAuto(-1) # disable automatic publication
130 ## This feature can be used, for example, for debugging purposes.
133 ## - Use automatic publication feature with caution. When it is enabled, any function of
134 ## \ref geomBuilder.geomBuilder "geomBuilder" class publishes the results in the study,
135 ## that can lead to the huge size of the study data tree.
136 ## For example, repeating call of \ref geomBuilder.geomBuilder.SubShapeAll() "SubShapeAll()"
137 ## command on the same main shape each time will publish all child objects, that will lead
138 ## to a lot of duplicated items in the study.
139 ## - Sub-shapes are automatically published as child items of the parent main shape in the study if main
140 ## shape was also published before. Otherwise, sub-shapes are published as top-level objects.
141 ## - Not that some functions of \ref geomBuilder.geomBuilder "geomBuilder" class do not have
142 ## @theName parameter (and, thus, do not support automatic publication).
143 ## For example, some transformation operations like
144 ## \ref geomBuilder.geomBuilder.TranslateDXDYDZ() "TranslateDXDYDZ()".
145 ## Refer to the documentation to check if some function has such possibility.
150 ## @defgroup l1_geomBuilder_auxiliary Auxiliary data structures and methods
152 ## @defgroup l1_geomBuilder_purpose All package methods, grouped by their purpose
154 ## @defgroup l2_import_export Importing/exporting geometrical objects
155 ## @defgroup l2_creating Creating geometrical objects
157 ## @defgroup l3_basic_go Creating Basic Geometric Objects
159 ## @defgroup l4_curves Creating Curves
162 ## @defgroup l3_3d_primitives Creating 3D Primitives
163 ## @defgroup l3_complex Creating Complex Objects
164 ## @defgroup l3_groups Working with groups
165 ## @defgroup l3_blocks Building by blocks
167 ## @defgroup l4_blocks_measure Check and Improve
170 ## @defgroup l3_sketcher Sketcher
171 ## @defgroup l3_advanced Creating Advanced Geometrical Objects
173 ## @defgroup l4_decompose Decompose objects
174 ## @defgroup l4_decompose_d Decompose objects deprecated methods
175 ## @defgroup l4_access Access to sub-shapes by their unique IDs inside the main shape
176 ## @defgroup l4_obtain Access to sub-shapes by a criteria
177 ## @defgroup l4_advanced Advanced objects creation functions
182 ## @defgroup l2_transforming Transforming geometrical objects
184 ## @defgroup l3_basic_op Basic Operations
185 ## @defgroup l3_boolean Boolean Operations
186 ## @defgroup l3_transform Transformation Operations
187 ## @defgroup l3_transform_d Transformation Operations deprecated methods
188 ## @defgroup l3_local Local Operations (Fillet, Chamfer and other Features)
189 ## @defgroup l3_blocks_op Blocks Operations
190 ## @defgroup l3_healing Repairing Operations
191 ## @defgroup l3_restore_ss Restore presentation parameters and a tree of sub-shapes
194 ## @defgroup l2_measure Using measurement tools
198 # initialize SALOME session in try/except block
199 # to avoid problems in some cases, e.g. when generating documentation
207 from salome_notebook import *
213 from salome.geom.gsketcher import Sketcher3D
216 def _toListOfNames(_names, _size=-1):
219 if type(_names) in [types.ListType, types.TupleType]:
220 for i in _names: l.append(i)
223 if l and len(l) < _size:
224 for i in range(len(l), _size): l.append("%s_%d"%(l[0],i))
227 ## Raise an Error, containing the Method_name, if Operation is Failed
228 ## @ingroup l1_geomBuilder_auxiliary
229 def RaiseIfFailed (Method_name, Operation):
230 if Operation.IsDone() == 0 and Operation.GetErrorCode() != "NOT_FOUND_ANY":
231 raise RuntimeError, Method_name + " : " + Operation.GetErrorCode()
233 ## Return list of variables value from salome notebook
234 ## @ingroup l1_geomBuilder_auxiliary
235 def ParseParameters(*parameters):
238 for parameter in parameters:
239 if isinstance(parameter, list):
240 lResults = ParseParameters(*parameter)
241 if len(lResults) > 0:
242 Result.append(lResults[:-1])
243 StringResult += lResults[-1].split(":")
247 if isinstance(parameter,str):
248 if notebook.isVariable(parameter):
249 Result.append(notebook.get(parameter))
251 raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!"
254 Result.append(parameter)
256 StringResult.append(str(parameter))
260 Result.append(":".join(StringResult))
262 Result = ":".join(StringResult)
265 ## Return list of variables value from salome notebook
266 ## @ingroup l1_geomBuilder_auxiliary
270 for parameter in list:
271 if isinstance(parameter,str) and notebook.isVariable(parameter):
272 Result.append(str(notebook.get(parameter)))
275 Result.append(str(parameter))
278 StringResult = StringResult + str(parameter)
279 StringResult = StringResult + ":"
281 StringResult = StringResult[:len(StringResult)-1]
282 return Result, StringResult
284 ## Return list of variables value from salome notebook
285 ## @ingroup l1_geomBuilder_auxiliary
286 def ParseSketcherCommand(command):
289 sections = command.split(":")
290 for section in sections:
291 parameters = section.split(" ")
293 for parameter in parameters:
294 if paramIndex > 1 and parameter.find("'") != -1:
295 parameter = parameter.replace("'","")
296 if notebook.isVariable(parameter):
297 Result = Result + str(notebook.get(parameter)) + " "
300 raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!"
304 Result = Result + str(parameter) + " "
307 StringResult = StringResult + parameter
308 StringResult = StringResult + ":"
310 paramIndex = paramIndex + 1
312 Result = Result[:len(Result)-1] + ":"
314 Result = Result[:len(Result)-1]
315 return Result, StringResult
317 ## Helper function which can be used to pack the passed string to the byte data.
318 ## Only '1' an '0' symbols are valid for the string. The missing bits are replaced by zeroes.
319 ## If the string contains invalid symbol (neither '1' nor '0'), the function raises an exception.
322 ## val = PackData("10001110") # val = 0xAE
323 ## val = PackData("1") # val = 0x80
325 ## @param data unpacked data - a string containing '1' and '0' symbols
326 ## @return data packed to the byte stream
327 ## @ingroup l1_geomBuilder_auxiliary
330 Helper function which can be used to pack the passed string to the byte data.
331 Only '1' an '0' symbols are valid for the string. The missing bits are replaced by zeroes.
332 If the string contains invalid symbol (neither '1' nor '0'), the function raises an exception.
335 data unpacked data - a string containing '1' and '0' symbols
338 data packed to the byte stream
341 val = PackData("10001110") # val = 0xAE
342 val = PackData("1") # val = 0x80
345 if len(data)%8: bytes += 1
347 for b in range(bytes):
348 d = data[b*8:(b+1)*8]
353 if d[i] == "1": val += 1
355 raise "Invalid symbol %s" % d[i]
362 ## Read bitmap texture from the text file.
363 ## In that file, any non-zero symbol represents '1' opaque pixel of the bitmap.
364 ## A zero symbol ('0') represents transparent pixel of the texture bitmap.
365 ## The function returns width and height of the pixmap in pixels and byte stream representing
366 ## texture bitmap itself.
368 ## This function can be used to read the texture to the byte stream in order to pass it to
369 ## the AddTexture() function of geomBuilder class.
372 ## from salome.geom import geomBuilder
373 ## geompy = geomBuilder.New(salome.myStudy)
374 ## texture = geompy.readtexture('mytexture.dat')
375 ## texture = geompy.AddTexture(*texture)
376 ## obj.SetMarkerTexture(texture)
378 ## @param fname texture file name
379 ## @return sequence of tree values: texture's width, height in pixels and its byte stream
380 ## @ingroup l1_geomBuilder_auxiliary
381 def ReadTexture(fname):
383 Read bitmap texture from the text file.
384 In that file, any non-zero symbol represents '1' opaque pixel of the bitmap.
385 A zero symbol ('0') represents transparent pixel of the texture bitmap.
386 The function returns width and height of the pixmap in pixels and byte stream representing
387 texture bitmap itself.
388 This function can be used to read the texture to the byte stream in order to pass it to
389 the AddTexture() function of geomBuilder class.
392 fname texture file name
395 sequence of tree values: texture's width, height in pixels and its byte stream
398 from salome.geom import geomBuilder
399 geompy = geomBuilder.New(salome.myStudy)
400 texture = geompy.readtexture('mytexture.dat')
401 texture = geompy.AddTexture(*texture)
402 obj.SetMarkerTexture(texture)
406 lines = [ l.strip() for l in f.readlines()]
409 if lines: maxlen = max([len(x) for x in lines])
411 if maxlen%8: lenbytes += 1
415 lenline = (len(line)/8+1)*8
418 lenline = (len(line)/8)*8
420 for i in range(lenline/8):
423 if i*8+j < len(line) and line[i*8+j] != "0": byte += "1"
426 bytedata += PackData(byte)
428 for i in range(lenline/8, lenbytes):
429 bytedata += PackData("0")
431 return lenbytes*8, len(lines), bytedata
436 ## Returns a long value from enumeration type
437 # Can be used for CORBA enumerator types like GEOM.shape_type
438 # @param theItem enumeration type
439 # @ingroup l1_geomBuilder_auxiliary
440 def EnumToLong(theItem):
442 Returns a long value from enumeration type
443 Can be used for CORBA enumerator types like geomBuilder.ShapeType
446 theItem enumeration type
449 if hasattr(theItem, "_v"): ret = theItem._v
452 ## Information about closed/unclosed state of shell or wire
453 # @ingroup l1_geomBuilder_auxiliary
456 Information about closed/unclosed state of shell or wire
462 # Warning: geom is a singleton
468 class geomBuilder(object, GEOM._objref_GEOM_Gen):
470 ## Enumeration ShapeType as a dictionary. \n
471 ## Topological types of shapes (like Open Cascade types). See GEOM::shape_type for details.
472 # @ingroup l1_geomBuilder_auxiliary
473 ShapeType = {"AUTO":-1, "COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
475 ## Kinds of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
476 # and a list of parameters, describing the shape.
477 # List of parameters, describing the shape:
478 # - COMPOUND: [nb_solids nb_faces nb_edges nb_vertices]
479 # - COMPSOLID: [nb_solids nb_faces nb_edges nb_vertices]
481 # - SHELL: [info.CLOSED / info.UNCLOSED nb_faces nb_edges nb_vertices]
483 # - WIRE: [info.CLOSED / info.UNCLOSED nb_edges nb_vertices]
485 # - SPHERE: [xc yc zc R]
486 # - CYLINDER: [xb yb zb dx dy dz R H]
487 # - BOX: [xc yc zc ax ay az]
488 # - ROTATED_BOX: [xc yc zc zx zy zz xx xy xz ax ay az]
489 # - TORUS: [xc yc zc dx dy dz R_1 R_2]
490 # - CONE: [xb yb zb dx dy dz R_1 R_2 H]
491 # - POLYHEDRON: [nb_faces nb_edges nb_vertices]
492 # - SOLID: [nb_faces nb_edges nb_vertices]
494 # - SPHERE2D: [xc yc zc R]
495 # - CYLINDER2D: [xb yb zb dx dy dz R H]
496 # - TORUS2D: [xc yc zc dx dy dz R_1 R_2]
497 # - CONE2D: [xc yc zc dx dy dz R_1 R_2 H]
498 # - DISK_CIRCLE: [xc yc zc dx dy dz R]
499 # - DISK_ELLIPSE: [xc yc zc dx dy dz R_1 R_2]
500 # - POLYGON: [xo yo zo dx dy dz nb_edges nb_vertices]
501 # - PLANE: [xo yo zo dx dy dz]
502 # - PLANAR: [xo yo zo dx dy dz nb_edges nb_vertices]
503 # - FACE: [nb_edges nb_vertices]
505 # - CIRCLE: [xc yc zc dx dy dz R]
506 # - ARC_CIRCLE: [xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2]
507 # - ELLIPSE: [xc yc zc dx dy dz R_1 R_2]
508 # - ARC_ELLIPSE: [xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2]
509 # - LINE: [xo yo zo dx dy dz]
510 # - SEGMENT: [x1 y1 z1 x2 y2 z2]
511 # - EDGE: [nb_vertices]
514 # @ingroup l1_geomBuilder_auxiliary
515 kind = GEOM.GEOM_IKindOfShape
522 #print "==== __new__ ", engine, geom, doLcc, created
524 # geom engine is either retrieved from engine, or created
526 # Following test avoids a recursive loop
529 # geom engine not created: existing engine found
531 if doLcc and not created:
533 # FindOrLoadComponent called:
534 # 1. CORBA resolution of server
535 # 2. the __new__ method is called again
536 #print "==== FindOrLoadComponent ", engine, geom, doLcc, created
537 geom = lcc.FindOrLoadComponent( "FactoryServer", "GEOM" )
540 # FindOrLoadComponent not called
542 # geomBuilder instance is created from lcc.FindOrLoadComponent
543 #print "==== super ", engine, geom, doLcc, created
544 geom = super(geomBuilder,cls).__new__(cls)
547 # geom engine not created: existing engine found
548 #print "==== existing ", engine, geom, doLcc, created
550 #print "return geom 1 ", geom
553 #print "return geom 2 ", geom
558 #print "-------- geomBuilder __init__ --- ", created, self
561 GEOM._objref_GEOM_Gen.__init__(self)
562 self.myMaxNbSubShapesAllowed = 0 # auto-publishing is disabled by default
563 self.myBuilder = None
582 ## Process object publication in the study, as follows:
583 # - if @a theName is specified (not None), the object is published in the study
584 # with this name, not taking into account "auto-publishing" option;
585 # - if @a theName is NOT specified, the object is published in the study
586 # (using default name, which can be customized using @a theDefaultName parameter)
587 # only if auto-publishing is switched on.
589 # @param theObj object, a subject for publishing
590 # @param theName object name for study
591 # @param theDefaultName default name for the auto-publishing
593 # @sa addToStudyAuto()
594 def _autoPublish(self, theObj, theName, theDefaultName="noname"):
596 def _item_name(_names, _defname, _idx=-1):
597 if not _names: _names = _defname
598 if type(_names) in [types.ListType, types.TupleType]:
600 if _idx >= len(_names) or not _names[_idx]:
601 if type(_defname) not in [types.ListType, types.TupleType]:
602 _name = "%s_%d"%(_defname, _idx+1)
603 elif len(_defname) > 0 and _idx >= 0 and _idx < len(_defname):
604 _name = _defname[_idx]
606 _name = "%noname_%d"%(dn, _idx+1)
612 # must be wrong usage
617 _name = "%s_%d"%(_names, _idx+1)
625 if not theName and not self.myMaxNbSubShapesAllowed:
626 return # nothing to do: auto-publishing is disabled
627 if not theName and not theDefaultName:
628 return # neither theName nor theDefaultName is given
630 if type(theObj) in [types.ListType, types.TupleType]:
631 # list of objects is being published
634 if not obj: continue # bad object
635 ###if obj.GetStudyEntry(): continue # already published
636 name = _item_name(theName, theDefaultName, idx)
637 if obj.IsMainShape() or not obj.GetMainShape().GetStudyEntry():
638 self.addToStudy(obj, name) # "%s_%d"%(aName, idx)
640 self.addToStudyInFather(obj.GetMainShape(), obj, name) # "%s_%d"%(aName, idx)
643 if not theName and idx == self.myMaxNbSubShapesAllowed: break
647 # single object is published
648 ###if theObj.GetStudyEntry(): return # already published
649 name = _item_name(theName, theDefaultName)
650 if theObj.IsMainShape():
651 self.addToStudy(theObj, name)
653 self.addToStudyInFather(theObj.GetMainShape(), theObj, name)
658 ## @addtogroup l1_geomBuilder_auxiliary
660 def init_geom(self,theStudy):
661 self.myStudy = theStudy
662 self.myStudyId = self.myStudy._get_StudyId()
663 self.myBuilder = self.myStudy.NewBuilder()
664 self.father = self.myStudy.FindComponent("GEOM")
665 if self.father is None:
666 self.father = self.myBuilder.NewComponent("GEOM")
667 A1 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributeName")
668 FName = A1._narrow(SALOMEDS.AttributeName)
669 FName.SetValue("Geometry")
670 A2 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributePixMap")
671 aPixmap = A2._narrow(SALOMEDS.AttributePixMap)
672 aPixmap.SetPixMap("ICON_OBJBROWSER_Geometry")
673 self.myBuilder.DefineComponentInstance(self.father,self)
675 self.BasicOp = self.GetIBasicOperations (self.myStudyId)
676 self.CurvesOp = self.GetICurvesOperations (self.myStudyId)
677 self.PrimOp = self.GetI3DPrimOperations (self.myStudyId)
678 self.ShapesOp = self.GetIShapesOperations (self.myStudyId)
679 self.HealOp = self.GetIHealingOperations (self.myStudyId)
680 self.InsertOp = self.GetIInsertOperations (self.myStudyId)
681 self.BoolOp = self.GetIBooleanOperations (self.myStudyId)
682 self.TrsfOp = self.GetITransformOperations(self.myStudyId)
683 self.LocalOp = self.GetILocalOperations (self.myStudyId)
684 self.MeasuOp = self.GetIMeasureOperations (self.myStudyId)
685 self.BlocksOp = self.GetIBlocksOperations (self.myStudyId)
686 self.GroupOp = self.GetIGroupOperations (self.myStudyId)
687 self.AdvOp = self.GetIAdvancedOperations (self.myStudyId)
690 ## Enable / disable results auto-publishing
692 # The automatic publishing is managed in the following way:
693 # - if @a maxNbSubShapes = 0, automatic publishing is disabled.
694 # - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
695 # maximum number of sub-shapes allowed for publishing is unlimited; any negative
696 # value passed as parameter has the same effect.
697 # - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
698 # maximum number of sub-shapes allowed for publishing is set to specified value.
700 # @param maxNbSubShapes maximum number of sub-shapes allowed for publishing.
701 # @ingroup l1_publish_data
702 def addToStudyAuto(self, maxNbSubShapes=-1):
704 Enable / disable results auto-publishing
706 The automatic publishing is managed in the following way:
707 - if @a maxNbSubShapes = 0, automatic publishing is disabled;
708 - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
709 maximum number of sub-shapes allowed for publishing is unlimited; any negative
710 value passed as parameter has the same effect.
711 - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
712 maximum number of sub-shapes allowed for publishing is set to this value.
715 maxNbSubShapes maximum number of sub-shapes allowed for publishing.
718 geompy.addToStudyAuto() # enable auto-publishing
719 geompy.MakeBoxDXDYDZ(100) # box is created and published with default name
720 geompy.addToStudyAuto(0) # disable auto-publishing
722 self.myMaxNbSubShapesAllowed = max(-1, maxNbSubShapes)
725 ## Dump component to the Python script
726 # This method overrides IDL function to allow default values for the parameters.
727 def DumpPython(self, theStudy, theIsPublished=True, theIsMultiFile=True):
729 Dump component to the Python script
730 This method overrides IDL function to allow default values for the parameters.
732 return GEOM._objref_GEOM_Gen.DumpPython(self, theStudy, theIsPublished, theIsMultiFile)
734 ## Get name for sub-shape aSubObj of shape aMainObj
736 # @ref swig_SubShapeName "Example"
737 def SubShapeName(self,aSubObj, aMainObj):
739 Get name for sub-shape aSubObj of shape aMainObj
741 # Example: see GEOM_TestAll.py
743 #aSubId = orb.object_to_string(aSubObj)
744 #aMainId = orb.object_to_string(aMainObj)
745 #index = gg.getIndexTopology(aSubId, aMainId)
746 #name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
747 index = self.ShapesOp.GetTopologyIndex(aMainObj, aSubObj)
748 name = self.ShapesOp.GetShapeTypeString(aSubObj) + "_%d"%(index)
751 ## Publish in study aShape with name aName
753 # \param aShape the shape to be published
754 # \param aName the name for the shape
755 # \param doRestoreSubShapes if True, finds and publishes also
756 # sub-shapes of <VAR>aShape</VAR>, corresponding to its arguments
757 # and published sub-shapes of arguments
758 # \param theArgs,theFindMethod,theInheritFirstArg see RestoreSubShapes() for
759 # these arguments description
760 # \return study entry of the published shape in form of string
762 # @ingroup l1_publish_data
763 # @ref swig_all_addtostudy "Example"
764 def addToStudy(self, aShape, aName, doRestoreSubShapes=False,
765 theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False):
767 Publish in study aShape with name aName
770 aShape the shape to be published
771 aName the name for the shape
772 doRestoreSubShapes if True, finds and publishes also
773 sub-shapes of aShape, corresponding to its arguments
774 and published sub-shapes of arguments
775 theArgs,theFindMethod,theInheritFirstArg see geompy.RestoreSubShapes() for
776 these arguments description
779 study entry of the published shape in form of string
782 id_block1 = geompy.addToStudy(Block1, "Block 1")
784 # Example: see GEOM_TestAll.py
786 aSObject = self.AddInStudy(self.myStudy, aShape, aName, None)
787 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
788 if doRestoreSubShapes:
789 self.RestoreSubShapesSO(self.myStudy, aSObject, theArgs,
790 theFindMethod, theInheritFirstArg, True )
792 print "addToStudy() failed"
794 return aShape.GetStudyEntry()
796 ## Publish in study aShape with name aName as sub-object of previously published aFather
797 # \param aFather previously published object
798 # \param aShape the shape to be published as sub-object of <VAR>aFather</VAR>
799 # \param aName the name for the shape
801 # \return study entry of the published shape in form of string
803 # @ingroup l1_publish_data
804 # @ref swig_all_addtostudyInFather "Example"
805 def addToStudyInFather(self, aFather, aShape, aName):
807 Publish in study aShape with name aName as sub-object of previously published aFather
810 aFather previously published object
811 aShape the shape to be published as sub-object of aFather
812 aName the name for the shape
815 study entry of the published shape in form of string
817 # Example: see GEOM_TestAll.py
819 aSObject = self.AddInStudy(self.myStudy, aShape, aName, aFather)
820 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
822 print "addToStudyInFather() failed"
824 return aShape.GetStudyEntry()
826 ## Unpublish object in study
828 # \param obj the object to be unpublished
829 def hideInStudy(self, obj):
831 Unpublish object in study
834 obj the object to be unpublished
836 ior = salome.orb.object_to_string(obj)
837 aSObject = self.myStudy.FindObjectIOR(ior)
838 if aSObject is not None:
839 genericAttribute = self.myBuilder.FindOrCreateAttribute(aSObject, "AttributeDrawable")
840 drwAttribute = genericAttribute._narrow(SALOMEDS.AttributeDrawable)
841 drwAttribute.SetDrawable(False)
844 # end of l1_geomBuilder_auxiliary
847 ## @addtogroup l3_restore_ss
850 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
851 # To be used from python scripts out of addToStudy() (non-default usage)
852 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
853 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
854 # If this list is empty, all operation arguments will be published
855 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
856 # their sub-shapes. Value from enumeration GEOM.find_shape_method.
857 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
858 # Do not publish sub-shapes in place of arguments, but only
859 # in place of sub-shapes of the first argument,
860 # because the whole shape corresponds to the first argument.
861 # Mainly to be used after transformations, but it also can be
862 # usefull after partition with one object shape, and some other
863 # operations, where only the first argument has to be considered.
864 # If theObject has only one argument shape, this flag is automatically
865 # considered as True, not regarding really passed value.
866 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
867 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
868 # \return list of published sub-shapes
870 # @ref tui_restore_prs_params "Example"
871 def RestoreSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
872 theInheritFirstArg=False, theAddPrefix=True):
874 Publish sub-shapes, standing for arguments and sub-shapes of arguments
875 To be used from python scripts out of geompy.addToStudy (non-default usage)
878 theObject published GEOM.GEOM_Object, arguments of which will be published
879 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
880 If this list is empty, all operation arguments will be published
881 theFindMethod method to search sub-shapes, corresponding to arguments and
882 their sub-shapes. Value from enumeration GEOM.find_shape_method.
883 theInheritFirstArg set properties of the first argument for theObject.
884 Do not publish sub-shapes in place of arguments, but only
885 in place of sub-shapes of the first argument,
886 because the whole shape corresponds to the first argument.
887 Mainly to be used after transformations, but it also can be
888 usefull after partition with one object shape, and some other
889 operations, where only the first argument has to be considered.
890 If theObject has only one argument shape, this flag is automatically
891 considered as True, not regarding really passed value.
892 theAddPrefix add prefix "from_" to names of restored sub-shapes,
893 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
895 list of published sub-shapes
897 # Example: see GEOM_TestAll.py
898 return self.RestoreSubShapesO(self.myStudy, theObject, theArgs,
899 theFindMethod, theInheritFirstArg, theAddPrefix)
901 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
902 # To be used from python scripts out of addToStudy() (non-default usage)
903 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
904 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
905 # If this list is empty, all operation arguments will be published
906 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
907 # their sub-shapes. Value from enumeration GEOM::find_shape_method.
908 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
909 # Do not publish sub-shapes in place of arguments, but only
910 # in place of sub-shapes of the first argument,
911 # because the whole shape corresponds to the first argument.
912 # Mainly to be used after transformations, but it also can be
913 # usefull after partition with one object shape, and some other
914 # operations, where only the first argument has to be considered.
915 # If theObject has only one argument shape, this flag is automatically
916 # considered as True, not regarding really passed value.
917 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
918 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
919 # \return list of published sub-shapes
921 # @ref tui_restore_prs_params "Example"
922 def RestoreGivenSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
923 theInheritFirstArg=False, theAddPrefix=True):
925 Publish sub-shapes, standing for arguments and sub-shapes of arguments
926 To be used from python scripts out of geompy.addToStudy() (non-default usage)
929 theObject published GEOM.GEOM_Object, arguments of which will be published
930 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
931 If this list is empty, all operation arguments will be published
932 theFindMethod method to search sub-shapes, corresponding to arguments and
933 their sub-shapes. Value from enumeration GEOM::find_shape_method.
934 theInheritFirstArg set properties of the first argument for theObject.
935 Do not publish sub-shapes in place of arguments, but only
936 in place of sub-shapes of the first argument,
937 because the whole shape corresponds to the first argument.
938 Mainly to be used after transformations, but it also can be
939 usefull after partition with one object shape, and some other
940 operations, where only the first argument has to be considered.
941 If theObject has only one argument shape, this flag is automatically
942 considered as True, not regarding really passed value.
943 theAddPrefix add prefix "from_" to names of restored sub-shapes,
944 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
947 list of published sub-shapes
949 # Example: see GEOM_TestAll.py
950 return self.RestoreGivenSubShapesO(self.myStudy, theObject, theArgs,
951 theFindMethod, theInheritFirstArg, theAddPrefix)
953 # end of l3_restore_ss
956 ## @addtogroup l3_basic_go
959 ## Create point by three coordinates.
960 # @param theX The X coordinate of the point.
961 # @param theY The Y coordinate of the point.
962 # @param theZ The Z coordinate of the point.
963 # @param theName Object name; when specified, this parameter is used
964 # for result publication in the study. Otherwise, if automatic
965 # publication is switched on, default value is used for result name.
967 # @return New GEOM.GEOM_Object, containing the created point.
969 # @ref tui_creation_point "Example"
970 def MakeVertex(self, theX, theY, theZ, theName=None):
972 Create point by three coordinates.
975 theX The X coordinate of the point.
976 theY The Y coordinate of the point.
977 theZ The Z coordinate of the point.
978 theName Object name; when specified, this parameter is used
979 for result publication in the study. Otherwise, if automatic
980 publication is switched on, default value is used for result name.
983 New GEOM.GEOM_Object, containing the created point.
985 # Example: see GEOM_TestAll.py
986 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
987 anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
988 RaiseIfFailed("MakePointXYZ", self.BasicOp)
989 anObj.SetParameters(Parameters)
990 self._autoPublish(anObj, theName, "vertex")
993 ## Create a point, distant from the referenced point
994 # on the given distances along the coordinate axes.
995 # @param theReference The referenced point.
996 # @param theX Displacement from the referenced point along OX axis.
997 # @param theY Displacement from the referenced point along OY axis.
998 # @param theZ Displacement from the referenced point along OZ axis.
999 # @param theName Object name; when specified, this parameter is used
1000 # for result publication in the study. Otherwise, if automatic
1001 # publication is switched on, default value is used for result name.
1003 # @return New GEOM.GEOM_Object, containing the created point.
1005 # @ref tui_creation_point "Example"
1006 def MakeVertexWithRef(self, theReference, theX, theY, theZ, theName=None):
1008 Create a point, distant from the referenced point
1009 on the given distances along the coordinate axes.
1012 theReference The referenced point.
1013 theX Displacement from the referenced point along OX axis.
1014 theY Displacement from the referenced point along OY axis.
1015 theZ Displacement from the referenced point along OZ axis.
1016 theName Object name; when specified, this parameter is used
1017 for result publication in the study. Otherwise, if automatic
1018 publication is switched on, default value is used for result name.
1021 New GEOM.GEOM_Object, containing the created point.
1023 # Example: see GEOM_TestAll.py
1024 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1025 anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
1026 RaiseIfFailed("MakePointWithReference", self.BasicOp)
1027 anObj.SetParameters(Parameters)
1028 self._autoPublish(anObj, theName, "vertex")
1031 ## Create a point, corresponding to the given parameter on the given curve.
1032 # @param theRefCurve The referenced curve.
1033 # @param theParameter Value of parameter on the referenced curve.
1034 # @param theName Object name; when specified, this parameter is used
1035 # for result publication in the study. Otherwise, if automatic
1036 # publication is switched on, default value is used for result name.
1038 # @return New GEOM.GEOM_Object, containing the created point.
1040 # @ref tui_creation_point "Example"
1041 def MakeVertexOnCurve(self, theRefCurve, theParameter, theName=None):
1043 Create a point, corresponding to the given parameter on the given curve.
1046 theRefCurve The referenced curve.
1047 theParameter Value of parameter on the referenced curve.
1048 theName Object name; when specified, this parameter is used
1049 for result publication in the study. Otherwise, if automatic
1050 publication is switched on, default value is used for result name.
1053 New GEOM.GEOM_Object, containing the created point.
1056 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25)
1058 # Example: see GEOM_TestAll.py
1059 theParameter, Parameters = ParseParameters(theParameter)
1060 anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter)
1061 RaiseIfFailed("MakePointOnCurve", self.BasicOp)
1062 anObj.SetParameters(Parameters)
1063 self._autoPublish(anObj, theName, "vertex")
1066 ## Create a point by projection give coordinates on the given curve
1067 # @param theRefCurve The referenced curve.
1068 # @param theX X-coordinate in 3D space
1069 # @param theY Y-coordinate in 3D space
1070 # @param theZ Z-coordinate in 3D space
1071 # @param theName Object name; when specified, this parameter is used
1072 # for result publication in the study. Otherwise, if automatic
1073 # publication is switched on, default value is used for result name.
1075 # @return New GEOM.GEOM_Object, containing the created point.
1077 # @ref tui_creation_point "Example"
1078 def MakeVertexOnCurveByCoord(self, theRefCurve, theX, theY, theZ, theName=None):
1080 Create a point by projection give coordinates on the given curve
1083 theRefCurve The referenced curve.
1084 theX X-coordinate in 3D space
1085 theY Y-coordinate in 3D space
1086 theZ Z-coordinate in 3D space
1087 theName Object name; when specified, this parameter is used
1088 for result publication in the study. Otherwise, if automatic
1089 publication is switched on, default value is used for result name.
1092 New GEOM.GEOM_Object, containing the created point.
1095 p_on_arc3 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10)
1097 # Example: see GEOM_TestAll.py
1098 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1099 anObj = self.BasicOp.MakePointOnCurveByCoord(theRefCurve, theX, theY, theZ)
1100 RaiseIfFailed("MakeVertexOnCurveByCoord", self.BasicOp)
1101 anObj.SetParameters(Parameters)
1102 self._autoPublish(anObj, theName, "vertex")
1105 ## Create a point, corresponding to the given length on the given curve.
1106 # @param theRefCurve The referenced curve.
1107 # @param theLength Length on the referenced curve. It can be negative.
1108 # @param theStartPoint Point allowing to choose the direction for the calculation
1109 # of the length. If None, start from the first point of theRefCurve.
1110 # @param theName Object name; when specified, this parameter is used
1111 # for result publication in the study. Otherwise, if automatic
1112 # publication is switched on, default value is used for result name.
1114 # @return New GEOM.GEOM_Object, containing the created point.
1116 # @ref tui_creation_point "Example"
1117 def MakeVertexOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
1119 Create a point, corresponding to the given length on the given curve.
1122 theRefCurve The referenced curve.
1123 theLength Length on the referenced curve. It can be negative.
1124 theStartPoint Point allowing to choose the direction for the calculation
1125 of the length. If None, start from the first point of theRefCurve.
1126 theName Object name; when specified, this parameter is used
1127 for result publication in the study. Otherwise, if automatic
1128 publication is switched on, default value is used for result name.
1131 New GEOM.GEOM_Object, containing the created point.
1133 # Example: see GEOM_TestAll.py
1134 theLength, Parameters = ParseParameters(theLength)
1135 anObj = self.BasicOp.MakePointOnCurveByLength(theRefCurve, theLength, theStartPoint)
1136 RaiseIfFailed("MakePointOnCurveByLength", self.BasicOp)
1137 anObj.SetParameters(Parameters)
1138 self._autoPublish(anObj, theName, "vertex")
1141 ## Create a point, corresponding to the given parameters on the
1143 # @param theRefSurf The referenced surface.
1144 # @param theUParameter Value of U-parameter on the referenced surface.
1145 # @param theVParameter Value of V-parameter on the referenced surface.
1146 # @param theName Object name; when specified, this parameter is used
1147 # for result publication in the study. Otherwise, if automatic
1148 # publication is switched on, default value is used for result name.
1150 # @return New GEOM.GEOM_Object, containing the created point.
1152 # @ref swig_MakeVertexOnSurface "Example"
1153 def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter, theName=None):
1155 Create a point, corresponding to the given parameters on the
1159 theRefSurf The referenced surface.
1160 theUParameter Value of U-parameter on the referenced surface.
1161 theVParameter Value of V-parameter on the referenced surface.
1162 theName Object name; when specified, this parameter is used
1163 for result publication in the study. Otherwise, if automatic
1164 publication is switched on, default value is used for result name.
1167 New GEOM.GEOM_Object, containing the created point.
1170 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8)
1172 theUParameter, theVParameter, Parameters = ParseParameters(theUParameter, theVParameter)
1173 # Example: see GEOM_TestAll.py
1174 anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter)
1175 RaiseIfFailed("MakePointOnSurface", self.BasicOp)
1176 anObj.SetParameters(Parameters);
1177 self._autoPublish(anObj, theName, "vertex")
1180 ## Create a point by projection give coordinates on the given surface
1181 # @param theRefSurf The referenced surface.
1182 # @param theX X-coordinate in 3D space
1183 # @param theY Y-coordinate in 3D space
1184 # @param theZ Z-coordinate in 3D space
1185 # @param theName Object name; when specified, this parameter is used
1186 # for result publication in the study. Otherwise, if automatic
1187 # publication is switched on, default value is used for result name.
1189 # @return New GEOM.GEOM_Object, containing the created point.
1191 # @ref swig_MakeVertexOnSurfaceByCoord "Example"
1192 def MakeVertexOnSurfaceByCoord(self, theRefSurf, theX, theY, theZ, theName=None):
1194 Create a point by projection give coordinates on the given surface
1197 theRefSurf The referenced surface.
1198 theX X-coordinate in 3D space
1199 theY Y-coordinate in 3D space
1200 theZ Z-coordinate in 3D space
1201 theName Object name; when specified, this parameter is used
1202 for result publication in the study. Otherwise, if automatic
1203 publication is switched on, default value is used for result name.
1206 New GEOM.GEOM_Object, containing the created point.
1209 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.)
1211 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1212 # Example: see GEOM_TestAll.py
1213 anObj = self.BasicOp.MakePointOnSurfaceByCoord(theRefSurf, theX, theY, theZ)
1214 RaiseIfFailed("MakeVertexOnSurfaceByCoord", self.BasicOp)
1215 anObj.SetParameters(Parameters);
1216 self._autoPublish(anObj, theName, "vertex")
1219 ## Create a point, which lays on the given face.
1220 # The point will lay in arbitrary place of the face.
1221 # The only condition on it is a non-zero distance to the face boundary.
1222 # Such point can be used to uniquely identify the face inside any
1223 # shape in case, when the shape does not contain overlapped faces.
1224 # @param theFace The referenced face.
1225 # @param theName Object name; when specified, this parameter is used
1226 # for result publication in the study. Otherwise, if automatic
1227 # publication is switched on, default value is used for result name.
1229 # @return New GEOM.GEOM_Object, containing the created point.
1231 # @ref swig_MakeVertexInsideFace "Example"
1232 def MakeVertexInsideFace (self, theFace, theName=None):
1234 Create a point, which lays on the given face.
1235 The point will lay in arbitrary place of the face.
1236 The only condition on it is a non-zero distance to the face boundary.
1237 Such point can be used to uniquely identify the face inside any
1238 shape in case, when the shape does not contain overlapped faces.
1241 theFace The referenced face.
1242 theName Object name; when specified, this parameter is used
1243 for result publication in the study. Otherwise, if automatic
1244 publication is switched on, default value is used for result name.
1247 New GEOM.GEOM_Object, containing the created point.
1250 p_on_face = geompy.MakeVertexInsideFace(Face)
1252 # Example: see GEOM_TestAll.py
1253 anObj = self.BasicOp.MakePointOnFace(theFace)
1254 RaiseIfFailed("MakeVertexInsideFace", self.BasicOp)
1255 self._autoPublish(anObj, theName, "vertex")
1258 ## Create a point on intersection of two lines.
1259 # @param theRefLine1, theRefLine2 The referenced lines.
1260 # @param theName Object name; when specified, this parameter is used
1261 # for result publication in the study. Otherwise, if automatic
1262 # publication is switched on, default value is used for result name.
1264 # @return New GEOM.GEOM_Object, containing the created point.
1266 # @ref swig_MakeVertexOnLinesIntersection "Example"
1267 def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2, theName=None):
1269 Create a point on intersection of two lines.
1272 theRefLine1, theRefLine2 The referenced lines.
1273 theName Object name; when specified, this parameter is used
1274 for result publication in the study. Otherwise, if automatic
1275 publication is switched on, default value is used for result name.
1278 New GEOM.GEOM_Object, containing the created point.
1280 # Example: see GEOM_TestAll.py
1281 anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2)
1282 RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp)
1283 self._autoPublish(anObj, theName, "vertex")
1286 ## Create a tangent, corresponding to the given parameter on the given curve.
1287 # @param theRefCurve The referenced curve.
1288 # @param theParameter Value of parameter on the referenced curve.
1289 # @param theName Object name; when specified, this parameter is used
1290 # for result publication in the study. Otherwise, if automatic
1291 # publication is switched on, default value is used for result name.
1293 # @return New GEOM.GEOM_Object, containing the created tangent.
1295 # @ref swig_MakeTangentOnCurve "Example"
1296 def MakeTangentOnCurve(self, theRefCurve, theParameter, theName=None):
1298 Create a tangent, corresponding to the given parameter on the given curve.
1301 theRefCurve The referenced curve.
1302 theParameter Value of parameter on the referenced curve.
1303 theName Object name; when specified, this parameter is used
1304 for result publication in the study. Otherwise, if automatic
1305 publication is switched on, default value is used for result name.
1308 New GEOM.GEOM_Object, containing the created tangent.
1311 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7)
1313 anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter)
1314 RaiseIfFailed("MakeTangentOnCurve", self.BasicOp)
1315 self._autoPublish(anObj, theName, "tangent")
1318 ## Create a tangent plane, corresponding to the given parameter on the given face.
1319 # @param theFace The face for which tangent plane should be built.
1320 # @param theParameterV vertical value of the center point (0.0 - 1.0).
1321 # @param theParameterU horisontal value of the center point (0.0 - 1.0).
1322 # @param theTrimSize the size of plane.
1323 # @param theName Object name; when specified, this parameter is used
1324 # for result publication in the study. Otherwise, if automatic
1325 # publication is switched on, default value is used for result name.
1327 # @return New GEOM.GEOM_Object, containing the created tangent.
1329 # @ref swig_MakeTangentPlaneOnFace "Example"
1330 def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize, theName=None):
1332 Create a tangent plane, corresponding to the given parameter on the given face.
1335 theFace The face for which tangent plane should be built.
1336 theParameterV vertical value of the center point (0.0 - 1.0).
1337 theParameterU horisontal value of the center point (0.0 - 1.0).
1338 theTrimSize the size of plane.
1339 theName Object name; when specified, this parameter is used
1340 for result publication in the study. Otherwise, if automatic
1341 publication is switched on, default value is used for result name.
1344 New GEOM.GEOM_Object, containing the created tangent.
1347 an_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
1349 anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize)
1350 RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp)
1351 self._autoPublish(anObj, theName, "tangent")
1354 ## Create a vector with the given components.
1355 # @param theDX X component of the vector.
1356 # @param theDY Y component of the vector.
1357 # @param theDZ Z component of the vector.
1358 # @param theName Object name; when specified, this parameter is used
1359 # for result publication in the study. Otherwise, if automatic
1360 # publication is switched on, default value is used for result name.
1362 # @return New GEOM.GEOM_Object, containing the created vector.
1364 # @ref tui_creation_vector "Example"
1365 def MakeVectorDXDYDZ(self, theDX, theDY, theDZ, theName=None):
1367 Create a vector with the given components.
1370 theDX X component of the vector.
1371 theDY Y component of the vector.
1372 theDZ Z component of the vector.
1373 theName Object name; when specified, this parameter is used
1374 for result publication in the study. Otherwise, if automatic
1375 publication is switched on, default value is used for result name.
1378 New GEOM.GEOM_Object, containing the created vector.
1380 # Example: see GEOM_TestAll.py
1381 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
1382 anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
1383 RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp)
1384 anObj.SetParameters(Parameters)
1385 self._autoPublish(anObj, theName, "vector")
1388 ## Create a vector between two points.
1389 # @param thePnt1 Start point for the vector.
1390 # @param thePnt2 End point for the vector.
1391 # @param theName Object name; when specified, this parameter is used
1392 # for result publication in the study. Otherwise, if automatic
1393 # publication is switched on, default value is used for result name.
1395 # @return New GEOM.GEOM_Object, containing the created vector.
1397 # @ref tui_creation_vector "Example"
1398 def MakeVector(self, thePnt1, thePnt2, theName=None):
1400 Create a vector between two points.
1403 thePnt1 Start point for the vector.
1404 thePnt2 End point for the vector.
1405 theName Object name; when specified, this parameter is used
1406 for result publication in the study. Otherwise, if automatic
1407 publication is switched on, default value is used for result name.
1410 New GEOM.GEOM_Object, containing the created vector.
1412 # Example: see GEOM_TestAll.py
1413 anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2)
1414 RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp)
1415 self._autoPublish(anObj, theName, "vector")
1418 ## Create a line, passing through the given point
1419 # and parrallel to the given direction
1420 # @param thePnt Point. The resulting line will pass through it.
1421 # @param theDir Direction. The resulting line will be parallel to it.
1422 # @param theName Object name; when specified, this parameter is used
1423 # for result publication in the study. Otherwise, if automatic
1424 # publication is switched on, default value is used for result name.
1426 # @return New GEOM.GEOM_Object, containing the created line.
1428 # @ref tui_creation_line "Example"
1429 def MakeLine(self, thePnt, theDir, theName=None):
1431 Create a line, passing through the given point
1432 and parrallel to the given direction
1435 thePnt Point. The resulting line will pass through it.
1436 theDir Direction. The resulting line will be parallel to it.
1437 theName Object name; when specified, this parameter is used
1438 for result publication in the study. Otherwise, if automatic
1439 publication is switched on, default value is used for result name.
1442 New GEOM.GEOM_Object, containing the created line.
1444 # Example: see GEOM_TestAll.py
1445 anObj = self.BasicOp.MakeLine(thePnt, theDir)
1446 RaiseIfFailed("MakeLine", self.BasicOp)
1447 self._autoPublish(anObj, theName, "line")
1450 ## Create a line, passing through the given points
1451 # @param thePnt1 First of two points, defining the line.
1452 # @param thePnt2 Second of two points, defining the line.
1453 # @param theName Object name; when specified, this parameter is used
1454 # for result publication in the study. Otherwise, if automatic
1455 # publication is switched on, default value is used for result name.
1457 # @return New GEOM.GEOM_Object, containing the created line.
1459 # @ref tui_creation_line "Example"
1460 def MakeLineTwoPnt(self, thePnt1, thePnt2, theName=None):
1462 Create a line, passing through the given points
1465 thePnt1 First of two points, defining the line.
1466 thePnt2 Second of two points, defining the line.
1467 theName Object name; when specified, this parameter is used
1468 for result publication in the study. Otherwise, if automatic
1469 publication is switched on, default value is used for result name.
1472 New GEOM.GEOM_Object, containing the created line.
1474 # Example: see GEOM_TestAll.py
1475 anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
1476 RaiseIfFailed("MakeLineTwoPnt", self.BasicOp)
1477 self._autoPublish(anObj, theName, "line")
1480 ## Create a line on two faces intersection.
1481 # @param theFace1 First of two faces, defining the line.
1482 # @param theFace2 Second of two faces, defining the line.
1483 # @param theName Object name; when specified, this parameter is used
1484 # for result publication in the study. Otherwise, if automatic
1485 # publication is switched on, default value is used for result name.
1487 # @return New GEOM.GEOM_Object, containing the created line.
1489 # @ref swig_MakeLineTwoFaces "Example"
1490 def MakeLineTwoFaces(self, theFace1, theFace2, theName=None):
1492 Create a line on two faces intersection.
1495 theFace1 First of two faces, defining the line.
1496 theFace2 Second of two faces, defining the line.
1497 theName Object name; when specified, this parameter is used
1498 for result publication in the study. Otherwise, if automatic
1499 publication is switched on, default value is used for result name.
1502 New GEOM.GEOM_Object, containing the created line.
1504 # Example: see GEOM_TestAll.py
1505 anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2)
1506 RaiseIfFailed("MakeLineTwoFaces", self.BasicOp)
1507 self._autoPublish(anObj, theName, "line")
1510 ## Create a plane, passing through the given point
1511 # and normal to the given vector.
1512 # @param thePnt Point, the plane has to pass through.
1513 # @param theVec Vector, defining the plane normal direction.
1514 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1515 # @param theName Object name; when specified, this parameter is used
1516 # for result publication in the study. Otherwise, if automatic
1517 # publication is switched on, default value is used for result name.
1519 # @return New GEOM.GEOM_Object, containing the created plane.
1521 # @ref tui_creation_plane "Example"
1522 def MakePlane(self, thePnt, theVec, theTrimSize, theName=None):
1524 Create a plane, passing through the given point
1525 and normal to the given vector.
1528 thePnt Point, the plane has to pass through.
1529 theVec Vector, defining the plane normal direction.
1530 theTrimSize Half size of a side of quadrangle face, representing the plane.
1531 theName Object name; when specified, this parameter is used
1532 for result publication in the study. Otherwise, if automatic
1533 publication is switched on, default value is used for result name.
1536 New GEOM.GEOM_Object, containing the created plane.
1538 # Example: see GEOM_TestAll.py
1539 theTrimSize, Parameters = ParseParameters(theTrimSize);
1540 anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
1541 RaiseIfFailed("MakePlanePntVec", self.BasicOp)
1542 anObj.SetParameters(Parameters)
1543 self._autoPublish(anObj, theName, "plane")
1546 ## Create a plane, passing through the three given points
1547 # @param thePnt1 First of three points, defining the plane.
1548 # @param thePnt2 Second of three points, defining the plane.
1549 # @param thePnt3 Fird of three points, defining the plane.
1550 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1551 # @param theName Object name; when specified, this parameter is used
1552 # for result publication in the study. Otherwise, if automatic
1553 # publication is switched on, default value is used for result name.
1555 # @return New GEOM.GEOM_Object, containing the created plane.
1557 # @ref tui_creation_plane "Example"
1558 def MakePlaneThreePnt(self, thePnt1, thePnt2, thePnt3, theTrimSize, theName=None):
1560 Create a plane, passing through the three given points
1563 thePnt1 First of three points, defining the plane.
1564 thePnt2 Second of three points, defining the plane.
1565 thePnt3 Fird of three points, defining the plane.
1566 theTrimSize Half size of a side of quadrangle face, representing the plane.
1567 theName Object name; when specified, this parameter is used
1568 for result publication in the study. Otherwise, if automatic
1569 publication is switched on, default value is used for result name.
1572 New GEOM.GEOM_Object, containing the created plane.
1574 # Example: see GEOM_TestAll.py
1575 theTrimSize, Parameters = ParseParameters(theTrimSize);
1576 anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
1577 RaiseIfFailed("MakePlaneThreePnt", self.BasicOp)
1578 anObj.SetParameters(Parameters)
1579 self._autoPublish(anObj, theName, "plane")
1582 ## Create a plane, similar to the existing one, but with another size of representing face.
1583 # @param theFace Referenced plane or LCS(Marker).
1584 # @param theTrimSize New half size of a side of quadrangle face, representing the plane.
1585 # @param theName Object name; when specified, this parameter is used
1586 # for result publication in the study. Otherwise, if automatic
1587 # publication is switched on, default value is used for result name.
1589 # @return New GEOM.GEOM_Object, containing the created plane.
1591 # @ref tui_creation_plane "Example"
1592 def MakePlaneFace(self, theFace, theTrimSize, theName=None):
1594 Create a plane, similar to the existing one, but with another size of representing face.
1597 theFace Referenced plane or LCS(Marker).
1598 theTrimSize New half size of a side of quadrangle face, representing the plane.
1599 theName Object name; when specified, this parameter is used
1600 for result publication in the study. Otherwise, if automatic
1601 publication is switched on, default value is used for result name.
1604 New GEOM.GEOM_Object, containing the created plane.
1606 # Example: see GEOM_TestAll.py
1607 theTrimSize, Parameters = ParseParameters(theTrimSize);
1608 anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize)
1609 RaiseIfFailed("MakePlaneFace", self.BasicOp)
1610 anObj.SetParameters(Parameters)
1611 self._autoPublish(anObj, theName, "plane")
1614 ## Create a plane, passing through the 2 vectors
1615 # with center in a start point of the first vector.
1616 # @param theVec1 Vector, defining center point and plane direction.
1617 # @param theVec2 Vector, defining the plane normal direction.
1618 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1619 # @param theName Object name; when specified, this parameter is used
1620 # for result publication in the study. Otherwise, if automatic
1621 # publication is switched on, default value is used for result name.
1623 # @return New GEOM.GEOM_Object, containing the created plane.
1625 # @ref tui_creation_plane "Example"
1626 def MakePlane2Vec(self, theVec1, theVec2, theTrimSize, theName=None):
1628 Create a plane, passing through the 2 vectors
1629 with center in a start point of the first vector.
1632 theVec1 Vector, defining center point and plane direction.
1633 theVec2 Vector, defining the plane normal direction.
1634 theTrimSize Half size of a side of quadrangle face, representing the plane.
1635 theName Object name; when specified, this parameter is used
1636 for result publication in the study. Otherwise, if automatic
1637 publication is switched on, default value is used for result name.
1640 New GEOM.GEOM_Object, containing the created plane.
1642 # Example: see GEOM_TestAll.py
1643 theTrimSize, Parameters = ParseParameters(theTrimSize);
1644 anObj = self.BasicOp.MakePlane2Vec(theVec1, theVec2, theTrimSize)
1645 RaiseIfFailed("MakePlane2Vec", self.BasicOp)
1646 anObj.SetParameters(Parameters)
1647 self._autoPublish(anObj, theName, "plane")
1650 ## Create a plane, based on a Local coordinate system.
1651 # @param theLCS coordinate system, defining plane.
1652 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1653 # @param theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1654 # @param theName Object name; when specified, this parameter is used
1655 # for result publication in the study. Otherwise, if automatic
1656 # publication is switched on, default value is used for result name.
1658 # @return New GEOM.GEOM_Object, containing the created plane.
1660 # @ref tui_creation_plane "Example"
1661 def MakePlaneLCS(self, theLCS, theTrimSize, theOrientation, theName=None):
1663 Create a plane, based on a Local coordinate system.
1666 theLCS coordinate system, defining plane.
1667 theTrimSize Half size of a side of quadrangle face, representing the plane.
1668 theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1669 theName Object name; when specified, this parameter is used
1670 for result publication in the study. Otherwise, if automatic
1671 publication is switched on, default value is used for result name.
1674 New GEOM.GEOM_Object, containing the created plane.
1676 # Example: see GEOM_TestAll.py
1677 theTrimSize, Parameters = ParseParameters(theTrimSize);
1678 anObj = self.BasicOp.MakePlaneLCS(theLCS, theTrimSize, theOrientation)
1679 RaiseIfFailed("MakePlaneLCS", self.BasicOp)
1680 anObj.SetParameters(Parameters)
1681 self._autoPublish(anObj, theName, "plane")
1684 ## Create a local coordinate system.
1685 # @param OX,OY,OZ Three coordinates of coordinate system origin.
1686 # @param XDX,XDY,XDZ Three components of OX direction
1687 # @param YDX,YDY,YDZ Three components of OY direction
1688 # @param theName Object name; when specified, this parameter is used
1689 # for result publication in the study. Otherwise, if automatic
1690 # publication is switched on, default value is used for result name.
1692 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1694 # @ref swig_MakeMarker "Example"
1695 def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, theName=None):
1697 Create a local coordinate system.
1700 OX,OY,OZ Three coordinates of coordinate system origin.
1701 XDX,XDY,XDZ Three components of OX direction
1702 YDX,YDY,YDZ Three components of OY direction
1703 theName Object name; when specified, this parameter is used
1704 for result publication in the study. Otherwise, if automatic
1705 publication is switched on, default value is used for result name.
1708 New GEOM.GEOM_Object, containing the created coordinate system.
1710 # Example: see GEOM_TestAll.py
1711 OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, Parameters = ParseParameters(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ);
1712 anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ)
1713 RaiseIfFailed("MakeMarker", self.BasicOp)
1714 anObj.SetParameters(Parameters)
1715 self._autoPublish(anObj, theName, "lcs")
1718 ## Create a local coordinate system from shape.
1719 # @param theShape The initial shape to detect the coordinate system.
1720 # @param theName Object name; when specified, this parameter is used
1721 # for result publication in the study. Otherwise, if automatic
1722 # publication is switched on, default value is used for result name.
1724 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1726 # @ref tui_creation_lcs "Example"
1727 def MakeMarkerFromShape(self, theShape, theName=None):
1729 Create a local coordinate system from shape.
1732 theShape The initial shape to detect the coordinate system.
1733 theName Object name; when specified, this parameter is used
1734 for result publication in the study. Otherwise, if automatic
1735 publication is switched on, default value is used for result name.
1738 New GEOM.GEOM_Object, containing the created coordinate system.
1740 anObj = self.BasicOp.MakeMarkerFromShape(theShape)
1741 RaiseIfFailed("MakeMarkerFromShape", self.BasicOp)
1742 self._autoPublish(anObj, theName, "lcs")
1745 ## Create a local coordinate system from point and two vectors.
1746 # @param theOrigin Point of coordinate system origin.
1747 # @param theXVec Vector of X direction
1748 # @param theYVec Vector of Y direction
1749 # @param theName Object name; when specified, this parameter is used
1750 # for result publication in the study. Otherwise, if automatic
1751 # publication is switched on, default value is used for result name.
1753 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1755 # @ref tui_creation_lcs "Example"
1756 def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec, theName=None):
1758 Create a local coordinate system from point and two vectors.
1761 theOrigin Point of coordinate system origin.
1762 theXVec Vector of X direction
1763 theYVec Vector of Y direction
1764 theName Object name; when specified, this parameter is used
1765 for result publication in the study. Otherwise, if automatic
1766 publication is switched on, default value is used for result name.
1769 New GEOM.GEOM_Object, containing the created coordinate system.
1772 anObj = self.BasicOp.MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec)
1773 RaiseIfFailed("MakeMarkerPntTwoVec", self.BasicOp)
1774 self._autoPublish(anObj, theName, "lcs")
1777 # end of l3_basic_go
1780 ## @addtogroup l4_curves
1783 ## Create an arc of circle, passing through three given points.
1784 # @param thePnt1 Start point of the arc.
1785 # @param thePnt2 Middle point of the arc.
1786 # @param thePnt3 End point of the arc.
1787 # @param theName Object name; when specified, this parameter is used
1788 # for result publication in the study. Otherwise, if automatic
1789 # publication is switched on, default value is used for result name.
1791 # @return New GEOM.GEOM_Object, containing the created arc.
1793 # @ref swig_MakeArc "Example"
1794 def MakeArc(self, thePnt1, thePnt2, thePnt3, theName=None):
1796 Create an arc of circle, passing through three given points.
1799 thePnt1 Start point of the arc.
1800 thePnt2 Middle point of the arc.
1801 thePnt3 End point of the arc.
1802 theName Object name; when specified, this parameter is used
1803 for result publication in the study. Otherwise, if automatic
1804 publication is switched on, default value is used for result name.
1807 New GEOM.GEOM_Object, containing the created arc.
1809 # Example: see GEOM_TestAll.py
1810 anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3)
1811 RaiseIfFailed("MakeArc", self.CurvesOp)
1812 self._autoPublish(anObj, theName, "arc")
1815 ## Create an arc of circle from a center and 2 points.
1816 # @param thePnt1 Center of the arc
1817 # @param thePnt2 Start point of the arc. (Gives also the radius of the arc)
1818 # @param thePnt3 End point of the arc (Gives also a direction)
1819 # @param theSense Orientation of the arc
1820 # @param theName Object name; when specified, this parameter is used
1821 # for result publication in the study. Otherwise, if automatic
1822 # publication is switched on, default value is used for result name.
1824 # @return New GEOM.GEOM_Object, containing the created arc.
1826 # @ref swig_MakeArc "Example"
1827 def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False, theName=None):
1829 Create an arc of circle from a center and 2 points.
1832 thePnt1 Center of the arc
1833 thePnt2 Start point of the arc. (Gives also the radius of the arc)
1834 thePnt3 End point of the arc (Gives also a direction)
1835 theSense Orientation of the arc
1836 theName Object name; when specified, this parameter is used
1837 for result publication in the study. Otherwise, if automatic
1838 publication is switched on, default value is used for result name.
1841 New GEOM.GEOM_Object, containing the created arc.
1843 # Example: see GEOM_TestAll.py
1844 anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense)
1845 RaiseIfFailed("MakeArcCenter", self.CurvesOp)
1846 self._autoPublish(anObj, theName, "arc")
1849 ## Create an arc of ellipse, of center and two points.
1850 # @param theCenter Center of the arc.
1851 # @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
1852 # @param thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
1853 # @param theName Object name; when specified, this parameter is used
1854 # for result publication in the study. Otherwise, if automatic
1855 # publication is switched on, default value is used for result name.
1857 # @return New GEOM.GEOM_Object, containing the created arc.
1859 # @ref swig_MakeArc "Example"
1860 def MakeArcOfEllipse(self, theCenter, thePnt1, thePnt2, theName=None):
1862 Create an arc of ellipse, of center and two points.
1865 theCenter Center of the arc.
1866 thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
1867 thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
1868 theName Object name; when specified, this parameter is used
1869 for result publication in the study. Otherwise, if automatic
1870 publication is switched on, default value is used for result name.
1873 New GEOM.GEOM_Object, containing the created arc.
1875 # Example: see GEOM_TestAll.py
1876 anObj = self.CurvesOp.MakeArcOfEllipse(theCenter, thePnt1, thePnt2)
1877 RaiseIfFailed("MakeArcOfEllipse", self.CurvesOp)
1878 self._autoPublish(anObj, theName, "arc")
1881 ## Create a circle with given center, normal vector and radius.
1882 # @param thePnt Circle center.
1883 # @param theVec Vector, normal to the plane of the circle.
1884 # @param theR Circle radius.
1885 # @param theName Object name; when specified, this parameter is used
1886 # for result publication in the study. Otherwise, if automatic
1887 # publication is switched on, default value is used for result name.
1889 # @return New GEOM.GEOM_Object, containing the created circle.
1891 # @ref tui_creation_circle "Example"
1892 def MakeCircle(self, thePnt, theVec, theR, theName=None):
1894 Create a circle with given center, normal vector and radius.
1897 thePnt Circle center.
1898 theVec Vector, normal to the plane of the circle.
1900 theName Object name; when specified, this parameter is used
1901 for result publication in the study. Otherwise, if automatic
1902 publication is switched on, default value is used for result name.
1905 New GEOM.GEOM_Object, containing the created circle.
1907 # Example: see GEOM_TestAll.py
1908 theR, Parameters = ParseParameters(theR)
1909 anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR)
1910 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
1911 anObj.SetParameters(Parameters)
1912 self._autoPublish(anObj, theName, "circle")
1915 ## Create a circle with given radius.
1916 # Center of the circle will be in the origin of global
1917 # coordinate system and normal vector will be codirected with Z axis
1918 # @param theR Circle radius.
1919 # @param theName Object name; when specified, this parameter is used
1920 # for result publication in the study. Otherwise, if automatic
1921 # publication is switched on, default value is used for result name.
1923 # @return New GEOM.GEOM_Object, containing the created circle.
1924 def MakeCircleR(self, theR, theName=None):
1926 Create a circle with given radius.
1927 Center of the circle will be in the origin of global
1928 coordinate system and normal vector will be codirected with Z axis
1932 theName Object name; when specified, this parameter is used
1933 for result publication in the study. Otherwise, if automatic
1934 publication is switched on, default value is used for result name.
1937 New GEOM.GEOM_Object, containing the created circle.
1939 anObj = self.CurvesOp.MakeCirclePntVecR(None, None, theR)
1940 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
1941 self._autoPublish(anObj, theName, "circle")
1944 ## Create a circle, passing through three given points
1945 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
1946 # @param theName Object name; when specified, this parameter is used
1947 # for result publication in the study. Otherwise, if automatic
1948 # publication is switched on, default value is used for result name.
1950 # @return New GEOM.GEOM_Object, containing the created circle.
1952 # @ref tui_creation_circle "Example"
1953 def MakeCircleThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
1955 Create a circle, passing through three given points
1958 thePnt1,thePnt2,thePnt3 Points, defining the circle.
1959 theName Object name; when specified, this parameter is used
1960 for result publication in the study. Otherwise, if automatic
1961 publication is switched on, default value is used for result name.
1964 New GEOM.GEOM_Object, containing the created circle.
1966 # Example: see GEOM_TestAll.py
1967 anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
1968 RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp)
1969 self._autoPublish(anObj, theName, "circle")
1972 ## Create a circle, with given point1 as center,
1973 # passing through the point2 as radius and laying in the plane,
1974 # defined by all three given points.
1975 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
1976 # @param theName Object name; when specified, this parameter is used
1977 # for result publication in the study. Otherwise, if automatic
1978 # publication is switched on, default value is used for result name.
1980 # @return New GEOM.GEOM_Object, containing the created circle.
1982 # @ref swig_MakeCircle "Example"
1983 def MakeCircleCenter2Pnt(self, thePnt1, thePnt2, thePnt3, theName=None):
1985 Create a circle, with given point1 as center,
1986 passing through the point2 as radius and laying in the plane,
1987 defined by all three given points.
1990 thePnt1,thePnt2,thePnt3 Points, defining the circle.
1991 theName Object name; when specified, this parameter is used
1992 for result publication in the study. Otherwise, if automatic
1993 publication is switched on, default value is used for result name.
1996 New GEOM.GEOM_Object, containing the created circle.
1998 # Example: see GEOM_example6.py
1999 anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3)
2000 RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp)
2001 self._autoPublish(anObj, theName, "circle")
2004 ## Create an ellipse with given center, normal vector and radiuses.
2005 # @param thePnt Ellipse center.
2006 # @param theVec Vector, normal to the plane of the ellipse.
2007 # @param theRMajor Major ellipse radius.
2008 # @param theRMinor Minor ellipse radius.
2009 # @param theVecMaj Vector, direction of the ellipse's main axis.
2010 # @param theName Object name; when specified, this parameter is used
2011 # for result publication in the study. Otherwise, if automatic
2012 # publication is switched on, default value is used for result name.
2014 # @return New GEOM.GEOM_Object, containing the created ellipse.
2016 # @ref tui_creation_ellipse "Example"
2017 def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor, theVecMaj=None, theName=None):
2019 Create an ellipse with given center, normal vector and radiuses.
2022 thePnt Ellipse center.
2023 theVec Vector, normal to the plane of the ellipse.
2024 theRMajor Major ellipse radius.
2025 theRMinor Minor ellipse radius.
2026 theVecMaj Vector, direction of the ellipse's main axis.
2027 theName Object name; when specified, this parameter is used
2028 for result publication in the study. Otherwise, if automatic
2029 publication is switched on, default value is used for result name.
2032 New GEOM.GEOM_Object, containing the created ellipse.
2034 # Example: see GEOM_TestAll.py
2035 theRMajor, theRMinor, Parameters = ParseParameters(theRMajor, theRMinor)
2036 if theVecMaj is not None:
2037 anObj = self.CurvesOp.MakeEllipseVec(thePnt, theVec, theRMajor, theRMinor, theVecMaj)
2039 anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor)
2041 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2042 anObj.SetParameters(Parameters)
2043 self._autoPublish(anObj, theName, "ellipse")
2046 ## Create an ellipse with given radiuses.
2047 # Center of the ellipse will be in the origin of global
2048 # coordinate system and normal vector will be codirected with Z axis
2049 # @param theRMajor Major ellipse radius.
2050 # @param theRMinor Minor ellipse radius.
2051 # @param theName Object name; when specified, this parameter is used
2052 # for result publication in the study. Otherwise, if automatic
2053 # publication is switched on, default value is used for result name.
2055 # @return New GEOM.GEOM_Object, containing the created ellipse.
2056 def MakeEllipseRR(self, theRMajor, theRMinor, theName=None):
2058 Create an ellipse with given radiuses.
2059 Center of the ellipse will be in the origin of global
2060 coordinate system and normal vector will be codirected with Z axis
2063 theRMajor Major ellipse radius.
2064 theRMinor Minor ellipse radius.
2065 theName Object name; when specified, this parameter is used
2066 for result publication in the study. Otherwise, if automatic
2067 publication is switched on, default value is used for result name.
2070 New GEOM.GEOM_Object, containing the created ellipse.
2072 anObj = self.CurvesOp.MakeEllipse(None, None, theRMajor, theRMinor)
2073 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2074 self._autoPublish(anObj, theName, "ellipse")
2077 ## Create a polyline on the set of points.
2078 # @param thePoints Sequence of points for the polyline.
2079 # @param theIsClosed If True, build a closed wire.
2080 # @param theName Object name; when specified, this parameter is used
2081 # for result publication in the study. Otherwise, if automatic
2082 # publication is switched on, default value is used for result name.
2084 # @return New GEOM.GEOM_Object, containing the created polyline.
2086 # @ref tui_creation_curve "Example"
2087 def MakePolyline(self, thePoints, theIsClosed=False, theName=None):
2089 Create a polyline on the set of points.
2092 thePoints Sequence of points for the polyline.
2093 theIsClosed If True, build a closed wire.
2094 theName Object name; when specified, this parameter is used
2095 for result publication in the study. Otherwise, if automatic
2096 publication is switched on, default value is used for result name.
2099 New GEOM.GEOM_Object, containing the created polyline.
2101 # Example: see GEOM_TestAll.py
2102 anObj = self.CurvesOp.MakePolyline(thePoints, theIsClosed)
2103 RaiseIfFailed("MakePolyline", self.CurvesOp)
2104 self._autoPublish(anObj, theName, "polyline")
2107 ## Create bezier curve on the set of points.
2108 # @param thePoints Sequence of points for the bezier curve.
2109 # @param theIsClosed If True, build a closed curve.
2110 # @param theName Object name; when specified, this parameter is used
2111 # for result publication in the study. Otherwise, if automatic
2112 # publication is switched on, default value is used for result name.
2114 # @return New GEOM.GEOM_Object, containing the created bezier curve.
2116 # @ref tui_creation_curve "Example"
2117 def MakeBezier(self, thePoints, theIsClosed=False, theName=None):
2119 Create bezier curve on the set of points.
2122 thePoints Sequence of points for the bezier curve.
2123 theIsClosed If True, build a closed curve.
2124 theName Object name; when specified, this parameter is used
2125 for result publication in the study. Otherwise, if automatic
2126 publication is switched on, default value is used for result name.
2129 New GEOM.GEOM_Object, containing the created bezier curve.
2131 # Example: see GEOM_TestAll.py
2132 anObj = self.CurvesOp.MakeSplineBezier(thePoints, theIsClosed)
2133 RaiseIfFailed("MakeSplineBezier", self.CurvesOp)
2134 self._autoPublish(anObj, theName, "bezier")
2137 ## Create B-Spline curve on the set of points.
2138 # @param thePoints Sequence of points for the B-Spline curve.
2139 # @param theIsClosed If True, build a closed curve.
2140 # @param theDoReordering If TRUE, the algo does not follow the order of
2141 # \a thePoints but searches for the closest vertex.
2142 # @param theName Object name; when specified, this parameter is used
2143 # for result publication in the study. Otherwise, if automatic
2144 # publication is switched on, default value is used for result name.
2146 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2148 # @ref tui_creation_curve "Example"
2149 def MakeInterpol(self, thePoints, theIsClosed=False, theDoReordering=False, theName=None):
2151 Create B-Spline curve on the set of points.
2154 thePoints Sequence of points for the B-Spline curve.
2155 theIsClosed If True, build a closed curve.
2156 theDoReordering If True, the algo does not follow the order of
2157 thePoints but searches for the closest vertex.
2158 theName Object name; when specified, this parameter is used
2159 for result publication in the study. Otherwise, if automatic
2160 publication is switched on, default value is used for result name.
2163 New GEOM.GEOM_Object, containing the created B-Spline curve.
2165 # Example: see GEOM_TestAll.py
2166 anObj = self.CurvesOp.MakeSplineInterpolation(thePoints, theIsClosed, theDoReordering)
2167 RaiseIfFailed("MakeInterpol", self.CurvesOp)
2168 self._autoPublish(anObj, theName, "bspline")
2171 ## Create B-Spline curve on the set of points.
2172 # @param thePoints Sequence of points for the B-Spline curve.
2173 # @param theFirstVec Vector object, defining the curve direction at its first point.
2174 # @param theLastVec Vector object, defining the curve direction at its last point.
2175 # @param theName Object name; when specified, this parameter is used
2176 # for result publication in the study. Otherwise, if automatic
2177 # publication is switched on, default value is used for result name.
2179 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2181 # @ref tui_creation_curve "Example"
2182 def MakeInterpolWithTangents(self, thePoints, theFirstVec, theLastVec, theName=None):
2184 Create B-Spline curve on the set of points.
2187 thePoints Sequence of points for the B-Spline curve.
2188 theFirstVec Vector object, defining the curve direction at its first point.
2189 theLastVec Vector object, defining the curve direction at its last point.
2190 theName Object name; when specified, this parameter is used
2191 for result publication in the study. Otherwise, if automatic
2192 publication is switched on, default value is used for result name.
2195 New GEOM.GEOM_Object, containing the created B-Spline curve.
2197 # Example: see GEOM_TestAll.py
2198 anObj = self.CurvesOp.MakeSplineInterpolWithTangents(thePoints, theFirstVec, theLastVec)
2199 RaiseIfFailed("MakeInterpolWithTangents", self.CurvesOp)
2200 self._autoPublish(anObj, theName, "bspline")
2203 ## Creates a curve using the parametric definition of the basic points.
2204 # @param thexExpr parametric equation of the coordinates X.
2205 # @param theyExpr parametric equation of the coordinates Y.
2206 # @param thezExpr parametric equation of the coordinates Z.
2207 # @param theParamMin the minimal value of the parameter.
2208 # @param theParamMax the maximum value of the parameter.
2209 # @param theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2210 # @param theCurveType the type of the curve.
2211 # @param theNewMethod flag for switching to the new method if the flag is set to false a deprecated method is used which can lead to a bug.
2212 # @param theName Object name; when specified, this parameter is used
2213 # for result publication in the study. Otherwise, if automatic
2214 # publication is switched on, default value is used for result name.
2216 # @return New GEOM.GEOM_Object, containing the created curve.
2218 # @ref tui_creation_curve "Example"
2219 def MakeCurveParametric(self, thexExpr, theyExpr, thezExpr,
2220 theParamMin, theParamMax, theParamStep, theCurveType, theNewMethod=False, theName=None ):
2222 Creates a curve using the parametric definition of the basic points.
2225 thexExpr parametric equation of the coordinates X.
2226 theyExpr parametric equation of the coordinates Y.
2227 thezExpr parametric equation of the coordinates Z.
2228 theParamMin the minimal value of the parameter.
2229 theParamMax the maximum value of the parameter.
2230 theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2231 theCurveType the type of the curve.
2232 theNewMethod flag for switching to the new method if the flag is set to false a deprecated
2233 method is used which can lead to a bug.
2234 theName Object name; when specified, this parameter is used
2235 for result publication in the study. Otherwise, if automatic
2236 publication is switched on, default value is used for result name.
2239 New GEOM.GEOM_Object, containing the created curve.
2241 theParamMin,theParamMax,theParamStep,Parameters = ParseParameters(theParamMin,theParamMax,theParamStep)
2243 anObj = self.CurvesOp.MakeCurveParametricNew(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2245 anObj = self.CurvesOp.MakeCurveParametric(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2246 RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp)
2247 anObj.SetParameters(Parameters)
2248 self._autoPublish(anObj, theName, "curve")
2254 ## @addtogroup l3_sketcher
2257 ## Create a sketcher (wire or face), following the textual description,
2258 # passed through <VAR>theCommand</VAR> argument. \n
2259 # Edges of the resulting wire or face will be arcs of circles and/or linear segments. \n
2260 # Format of the description string have to be the following:
2262 # "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2265 # - x1, y1 are coordinates of the first sketcher point (zero by default),
2267 # - "R angle" : Set the direction by angle
2268 # - "D dx dy" : Set the direction by DX & DY
2271 # - "TT x y" : Create segment by point at X & Y
2272 # - "T dx dy" : Create segment by point with DX & DY
2273 # - "L length" : Create segment by direction & Length
2274 # - "IX x" : Create segment by direction & Intersect. X
2275 # - "IY y" : Create segment by direction & Intersect. Y
2278 # - "C radius length" : Create arc by direction, radius and length(in degree)
2279 # - "AA x y": Create arc by point at X & Y
2280 # - "A dx dy" : Create arc by point with DX & DY
2281 # - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2282 # - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2283 # - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2284 # - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2287 # - "WW" : Close Wire (to finish)
2288 # - "WF" : Close Wire and build face (to finish)
2291 # - Flag1 (= reverse) is 0 or 2 ...
2292 # - if 0 the drawn arc is the one of lower angle (< Pi)
2293 # - if 2 the drawn arc ius the one of greater angle (> Pi)
2296 # - Flag2 (= control tolerance) is 0 or 1 ...
2297 # - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2298 # - if 1 the wire is built only if the end point is on the arc
2299 # with a tolerance of 10^-7 on the distance else the creation fails
2301 # @param theCommand String, defining the sketcher in local
2302 # coordinates of the working plane.
2303 # @param theWorkingPlane Nine double values, defining origin,
2304 # OZ and OX directions of the working plane.
2305 # @param theName Object name; when specified, this parameter is used
2306 # for result publication in the study. Otherwise, if automatic
2307 # publication is switched on, default value is used for result name.
2309 # @return New GEOM.GEOM_Object, containing the created wire.
2311 # @ref tui_sketcher_page "Example"
2312 def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0], theName=None):
2314 Create a sketcher (wire or face), following the textual description, passed
2315 through theCommand argument.
2316 Edges of the resulting wire or face will be arcs of circles and/or linear segments.
2317 Format of the description string have to be the following:
2318 "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2320 - x1, y1 are coordinates of the first sketcher point (zero by default),
2322 - "R angle" : Set the direction by angle
2323 - "D dx dy" : Set the direction by DX & DY
2325 - "TT x y" : Create segment by point at X & Y
2326 - "T dx dy" : Create segment by point with DX & DY
2327 - "L length" : Create segment by direction & Length
2328 - "IX x" : Create segment by direction & Intersect. X
2329 - "IY y" : Create segment by direction & Intersect. Y
2331 - "C radius length" : Create arc by direction, radius and length(in degree)
2332 - "AA x y": Create arc by point at X & Y
2333 - "A dx dy" : Create arc by point with DX & DY
2334 - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2335 - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2336 - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2337 - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2339 - "WW" : Close Wire (to finish)
2340 - "WF" : Close Wire and build face (to finish)
2342 - Flag1 (= reverse) is 0 or 2 ...
2343 - if 0 the drawn arc is the one of lower angle (< Pi)
2344 - if 2 the drawn arc ius the one of greater angle (> Pi)
2346 - Flag2 (= control tolerance) is 0 or 1 ...
2347 - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2348 - if 1 the wire is built only if the end point is on the arc
2349 with a tolerance of 10^-7 on the distance else the creation fails
2352 theCommand String, defining the sketcher in local
2353 coordinates of the working plane.
2354 theWorkingPlane Nine double values, defining origin,
2355 OZ and OX directions of the working plane.
2356 theName Object name; when specified, this parameter is used
2357 for result publication in the study. Otherwise, if automatic
2358 publication is switched on, default value is used for result name.
2361 New GEOM.GEOM_Object, containing the created wire.
2363 # Example: see GEOM_TestAll.py
2364 theCommand,Parameters = ParseSketcherCommand(theCommand)
2365 anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
2366 RaiseIfFailed("MakeSketcher", self.CurvesOp)
2367 anObj.SetParameters(Parameters)
2368 self._autoPublish(anObj, theName, "wire")
2371 ## Create a sketcher (wire or face), following the textual description,
2372 # passed through <VAR>theCommand</VAR> argument. \n
2373 # For format of the description string see MakeSketcher() method.\n
2374 # @param theCommand String, defining the sketcher in local
2375 # coordinates of the working plane.
2376 # @param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2377 # @param theName Object name; when specified, this parameter is used
2378 # for result publication in the study. Otherwise, if automatic
2379 # publication is switched on, default value is used for result name.
2381 # @return New GEOM.GEOM_Object, containing the created wire.
2383 # @ref tui_sketcher_page "Example"
2384 def MakeSketcherOnPlane(self, theCommand, theWorkingPlane, theName=None):
2386 Create a sketcher (wire or face), following the textual description,
2387 passed through theCommand argument.
2388 For format of the description string see geompy.MakeSketcher() method.
2391 theCommand String, defining the sketcher in local
2392 coordinates of the working plane.
2393 theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2394 theName Object name; when specified, this parameter is used
2395 for result publication in the study. Otherwise, if automatic
2396 publication is switched on, default value is used for result name.
2399 New GEOM.GEOM_Object, containing the created wire.
2401 theCommand,Parameters = ParseSketcherCommand(theCommand)
2402 anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
2403 RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp)
2404 anObj.SetParameters(Parameters)
2405 self._autoPublish(anObj, theName, "wire")
2408 ## Create a sketcher wire, following the numerical description,
2409 # passed through <VAR>theCoordinates</VAR> argument. \n
2410 # @param theCoordinates double values, defining points to create a wire,
2412 # @param theName Object name; when specified, this parameter is used
2413 # for result publication in the study. Otherwise, if automatic
2414 # publication is switched on, default value is used for result name.
2416 # @return New GEOM.GEOM_Object, containing the created wire.
2418 # @ref tui_3dsketcher_page "Example"
2419 def Make3DSketcher(self, theCoordinates, theName=None):
2421 Create a sketcher wire, following the numerical description,
2422 passed through theCoordinates argument.
2425 theCoordinates double values, defining points to create a wire,
2427 theName Object name; when specified, this parameter is used
2428 for result publication in the study. Otherwise, if automatic
2429 publication is switched on, default value is used for result name.
2432 New GEOM_Object, containing the created wire.
2434 theCoordinates,Parameters = ParseParameters(theCoordinates)
2435 anObj = self.CurvesOp.Make3DSketcher(theCoordinates)
2436 RaiseIfFailed("Make3DSketcher", self.CurvesOp)
2437 anObj.SetParameters(Parameters)
2438 self._autoPublish(anObj, theName, "wire")
2441 ## Obtain a 3D sketcher interface
2442 # @return An instance of @ref gsketcher.Sketcher3D "Sketcher3D" interface
2444 # @ref tui_3dsketcher_page "Example"
2445 def Sketcher3D (self):
2447 Obtain a 3D sketcher interface.
2450 sk = geompy.Sketcher3D()
2451 sk.addPointsAbsolute(0,0,0, 70,0,0)
2452 sk.addPointsRelative(0, 0, 130)
2453 sk.addPointAnglesLength("OXY", 50, 0, 100)
2454 sk.addPointAnglesLength("OXZ", 30, 80, 130)
2456 a3D_Sketcher_1 = sk.wire()
2458 sk = Sketcher3D (self)
2461 # end of l3_sketcher
2464 ## @addtogroup l3_3d_primitives
2467 ## Create a box by coordinates of two opposite vertices.
2469 # @param x1,y1,z1 double values, defining first point it.
2470 # @param x2,y2,z2 double values, defining first point it.
2471 # @param theName Object name; when specified, this parameter is used
2472 # for result publication in the study. Otherwise, if automatic
2473 # publication is switched on, default value is used for result name.
2475 # @return New GEOM.GEOM_Object, containing the created box.
2477 # @ref tui_creation_box "Example"
2478 def MakeBox(self, x1, y1, z1, x2, y2, z2, theName=None):
2480 Create a box by coordinates of two opposite vertices.
2483 x1,y1,z1 double values, defining first point.
2484 x2,y2,z2 double values, defining second point.
2485 theName Object name; when specified, this parameter is used
2486 for result publication in the study. Otherwise, if automatic
2487 publication is switched on, default value is used for result name.
2490 New GEOM.GEOM_Object, containing the created box.
2492 # Example: see GEOM_TestAll.py
2493 pnt1 = self.MakeVertex(x1,y1,z1)
2494 pnt2 = self.MakeVertex(x2,y2,z2)
2495 # note: auto-publishing is done in self.MakeBoxTwoPnt()
2496 return self.MakeBoxTwoPnt(pnt1, pnt2, theName)
2498 ## Create a box with specified dimensions along the coordinate axes
2499 # and with edges, parallel to the coordinate axes.
2500 # Center of the box will be at point (DX/2, DY/2, DZ/2).
2501 # @param theDX Length of Box edges, parallel to OX axis.
2502 # @param theDY Length of Box edges, parallel to OY axis.
2503 # @param theDZ Length of Box edges, parallel to OZ axis.
2504 # @param theName Object name; when specified, this parameter is used
2505 # for result publication in the study. Otherwise, if automatic
2506 # publication is switched on, default value is used for result name.
2508 # @return New GEOM.GEOM_Object, containing the created box.
2510 # @ref tui_creation_box "Example"
2511 def MakeBoxDXDYDZ(self, theDX, theDY, theDZ, theName=None):
2513 Create a box with specified dimensions along the coordinate axes
2514 and with edges, parallel to the coordinate axes.
2515 Center of the box will be at point (DX/2, DY/2, DZ/2).
2518 theDX Length of Box edges, parallel to OX axis.
2519 theDY Length of Box edges, parallel to OY axis.
2520 theDZ Length of Box edges, parallel to OZ axis.
2521 theName Object name; when specified, this parameter is used
2522 for result publication in the study. Otherwise, if automatic
2523 publication is switched on, default value is used for result name.
2526 New GEOM.GEOM_Object, containing the created box.
2528 # Example: see GEOM_TestAll.py
2529 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
2530 anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
2531 RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp)
2532 anObj.SetParameters(Parameters)
2533 self._autoPublish(anObj, theName, "box")
2536 ## Create a box with two specified opposite vertices,
2537 # and with edges, parallel to the coordinate axes
2538 # @param thePnt1 First of two opposite vertices.
2539 # @param thePnt2 Second of two opposite vertices.
2540 # @param theName Object name; when specified, this parameter is used
2541 # for result publication in the study. Otherwise, if automatic
2542 # publication is switched on, default value is used for result name.
2544 # @return New GEOM.GEOM_Object, containing the created box.
2546 # @ref tui_creation_box "Example"
2547 def MakeBoxTwoPnt(self, thePnt1, thePnt2, theName=None):
2549 Create a box with two specified opposite vertices,
2550 and with edges, parallel to the coordinate axes
2553 thePnt1 First of two opposite vertices.
2554 thePnt2 Second of two opposite vertices.
2555 theName Object name; when specified, this parameter is used
2556 for result publication in the study. Otherwise, if automatic
2557 publication is switched on, default value is used for result name.
2560 New GEOM.GEOM_Object, containing the created box.
2562 # Example: see GEOM_TestAll.py
2563 anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
2564 RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp)
2565 self._autoPublish(anObj, theName, "box")
2568 ## Create a face with specified dimensions with edges parallel to coordinate axes.
2569 # @param theH height of Face.
2570 # @param theW width of Face.
2571 # @param theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
2572 # @param theName Object name; when specified, this parameter is used
2573 # for result publication in the study. Otherwise, if automatic
2574 # publication is switched on, default value is used for result name.
2576 # @return New GEOM.GEOM_Object, containing the created face.
2578 # @ref tui_creation_face "Example"
2579 def MakeFaceHW(self, theH, theW, theOrientation, theName=None):
2581 Create a face with specified dimensions with edges parallel to coordinate axes.
2584 theH height of Face.
2586 theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
2587 theName Object name; when specified, this parameter is used
2588 for result publication in the study. Otherwise, if automatic
2589 publication is switched on, default value is used for result name.
2592 New GEOM.GEOM_Object, containing the created face.
2594 # Example: see GEOM_TestAll.py
2595 theH,theW,Parameters = ParseParameters(theH, theW)
2596 anObj = self.PrimOp.MakeFaceHW(theH, theW, theOrientation)
2597 RaiseIfFailed("MakeFaceHW", self.PrimOp)
2598 anObj.SetParameters(Parameters)
2599 self._autoPublish(anObj, theName, "rectangle")
2602 ## Create a face from another plane and two sizes,
2603 # vertical size and horisontal size.
2604 # @param theObj Normale vector to the creating face or
2606 # @param theH Height (vertical size).
2607 # @param theW Width (horisontal size).
2608 # @param theName Object name; when specified, this parameter is used
2609 # for result publication in the study. Otherwise, if automatic
2610 # publication is switched on, default value is used for result name.
2612 # @return New GEOM.GEOM_Object, containing the created face.
2614 # @ref tui_creation_face "Example"
2615 def MakeFaceObjHW(self, theObj, theH, theW, theName=None):
2617 Create a face from another plane and two sizes,
2618 vertical size and horisontal size.
2621 theObj Normale vector to the creating face or
2623 theH Height (vertical size).
2624 theW Width (horisontal size).
2625 theName Object name; when specified, this parameter is used
2626 for result publication in the study. Otherwise, if automatic
2627 publication is switched on, default value is used for result name.
2630 New GEOM_Object, containing the created face.
2632 # Example: see GEOM_TestAll.py
2633 theH,theW,Parameters = ParseParameters(theH, theW)
2634 anObj = self.PrimOp.MakeFaceObjHW(theObj, theH, theW)
2635 RaiseIfFailed("MakeFaceObjHW", self.PrimOp)
2636 anObj.SetParameters(Parameters)
2637 self._autoPublish(anObj, theName, "rectangle")
2640 ## Create a disk with given center, normal vector and radius.
2641 # @param thePnt Disk center.
2642 # @param theVec Vector, normal to the plane of the disk.
2643 # @param theR Disk radius.
2644 # @param theName Object name; when specified, this parameter is used
2645 # for result publication in the study. Otherwise, if automatic
2646 # publication is switched on, default value is used for result name.
2648 # @return New GEOM.GEOM_Object, containing the created disk.
2650 # @ref tui_creation_disk "Example"
2651 def MakeDiskPntVecR(self, thePnt, theVec, theR, theName=None):
2653 Create a disk with given center, normal vector and radius.
2657 theVec Vector, normal to the plane of the disk.
2659 theName Object name; when specified, this parameter is used
2660 for result publication in the study. Otherwise, if automatic
2661 publication is switched on, default value is used for result name.
2664 New GEOM.GEOM_Object, containing the created disk.
2666 # Example: see GEOM_TestAll.py
2667 theR,Parameters = ParseParameters(theR)
2668 anObj = self.PrimOp.MakeDiskPntVecR(thePnt, theVec, theR)
2669 RaiseIfFailed("MakeDiskPntVecR", self.PrimOp)
2670 anObj.SetParameters(Parameters)
2671 self._autoPublish(anObj, theName, "disk")
2674 ## Create a disk, passing through three given points
2675 # @param thePnt1,thePnt2,thePnt3 Points, defining the disk.
2676 # @param theName Object name; when specified, this parameter is used
2677 # for result publication in the study. Otherwise, if automatic
2678 # publication is switched on, default value is used for result name.
2680 # @return New GEOM.GEOM_Object, containing the created disk.
2682 # @ref tui_creation_disk "Example"
2683 def MakeDiskThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2685 Create a disk, passing through three given points
2688 thePnt1,thePnt2,thePnt3 Points, defining the disk.
2689 theName Object name; when specified, this parameter is used
2690 for result publication in the study. Otherwise, if automatic
2691 publication is switched on, default value is used for result name.
2694 New GEOM.GEOM_Object, containing the created disk.
2696 # Example: see GEOM_TestAll.py
2697 anObj = self.PrimOp.MakeDiskThreePnt(thePnt1, thePnt2, thePnt3)
2698 RaiseIfFailed("MakeDiskThreePnt", self.PrimOp)
2699 self._autoPublish(anObj, theName, "disk")
2702 ## Create a disk with specified dimensions along OX-OY coordinate axes.
2703 # @param theR Radius of Face.
2704 # @param theOrientation set the orientation belong axis OXY or OYZ or OZX
2705 # @param theName Object name; when specified, this parameter is used
2706 # for result publication in the study. Otherwise, if automatic
2707 # publication is switched on, default value is used for result name.
2709 # @return New GEOM.GEOM_Object, containing the created disk.
2711 # @ref tui_creation_face "Example"
2712 def MakeDiskR(self, theR, theOrientation, theName=None):
2714 Create a disk with specified dimensions along OX-OY coordinate axes.
2717 theR Radius of Face.
2718 theOrientation set the orientation belong axis OXY or OYZ or OZX
2719 theName Object name; when specified, this parameter is used
2720 for result publication in the study. Otherwise, if automatic
2721 publication is switched on, default value is used for result name.
2724 New GEOM.GEOM_Object, containing the created disk.
2727 Disk3 = geompy.MakeDiskR(100., 1)
2729 # Example: see GEOM_TestAll.py
2730 theR,Parameters = ParseParameters(theR)
2731 anObj = self.PrimOp.MakeDiskR(theR, theOrientation)
2732 RaiseIfFailed("MakeDiskR", self.PrimOp)
2733 anObj.SetParameters(Parameters)
2734 self._autoPublish(anObj, theName, "disk")
2737 ## Create a cylinder with given base point, axis, radius and height.
2738 # @param thePnt Central point of cylinder base.
2739 # @param theAxis Cylinder axis.
2740 # @param theR Cylinder radius.
2741 # @param theH Cylinder height.
2742 # @param theName Object name; when specified, this parameter is used
2743 # for result publication in the study. Otherwise, if automatic
2744 # publication is switched on, default value is used for result name.
2746 # @return New GEOM.GEOM_Object, containing the created cylinder.
2748 # @ref tui_creation_cylinder "Example"
2749 def MakeCylinder(self, thePnt, theAxis, theR, theH, theName=None):
2751 Create a cylinder with given base point, axis, radius and height.
2754 thePnt Central point of cylinder base.
2755 theAxis Cylinder axis.
2756 theR Cylinder radius.
2757 theH Cylinder height.
2758 theName Object name; when specified, this parameter is used
2759 for result publication in the study. Otherwise, if automatic
2760 publication is switched on, default value is used for result name.
2763 New GEOM.GEOM_Object, containing the created cylinder.
2765 # Example: see GEOM_TestAll.py
2766 theR,theH,Parameters = ParseParameters(theR, theH)
2767 anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
2768 RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp)
2769 anObj.SetParameters(Parameters)
2770 self._autoPublish(anObj, theName, "cylinder")
2773 ## Create a cylinder with given radius and height at
2774 # the origin of coordinate system. Axis of the cylinder
2775 # will be collinear to the OZ axis of the coordinate system.
2776 # @param theR Cylinder radius.
2777 # @param theH Cylinder height.
2778 # @param theName Object name; when specified, this parameter is used
2779 # for result publication in the study. Otherwise, if automatic
2780 # publication is switched on, default value is used for result name.
2782 # @return New GEOM.GEOM_Object, containing the created cylinder.
2784 # @ref tui_creation_cylinder "Example"
2785 def MakeCylinderRH(self, theR, theH, theName=None):
2787 Create a cylinder with given radius and height at
2788 the origin of coordinate system. Axis of the cylinder
2789 will be collinear to the OZ axis of the coordinate system.
2792 theR Cylinder radius.
2793 theH Cylinder height.
2794 theName Object name; when specified, this parameter is used
2795 for result publication in the study. Otherwise, if automatic
2796 publication is switched on, default value is used for result name.
2799 New GEOM.GEOM_Object, containing the created cylinder.
2801 # Example: see GEOM_TestAll.py
2802 theR,theH,Parameters = ParseParameters(theR, theH)
2803 anObj = self.PrimOp.MakeCylinderRH(theR, theH)
2804 RaiseIfFailed("MakeCylinderRH", self.PrimOp)
2805 anObj.SetParameters(Parameters)
2806 self._autoPublish(anObj, theName, "cylinder")
2809 ## Create a sphere with given center and radius.
2810 # @param thePnt Sphere center.
2811 # @param theR Sphere radius.
2812 # @param theName Object name; when specified, this parameter is used
2813 # for result publication in the study. Otherwise, if automatic
2814 # publication is switched on, default value is used for result name.
2816 # @return New GEOM.GEOM_Object, containing the created sphere.
2818 # @ref tui_creation_sphere "Example"
2819 def MakeSpherePntR(self, thePnt, theR, theName=None):
2821 Create a sphere with given center and radius.
2824 thePnt Sphere center.
2826 theName Object name; when specified, this parameter is used
2827 for result publication in the study. Otherwise, if automatic
2828 publication is switched on, default value is used for result name.
2831 New GEOM.GEOM_Object, containing the created sphere.
2833 # Example: see GEOM_TestAll.py
2834 theR,Parameters = ParseParameters(theR)
2835 anObj = self.PrimOp.MakeSpherePntR(thePnt, theR)
2836 RaiseIfFailed("MakeSpherePntR", self.PrimOp)
2837 anObj.SetParameters(Parameters)
2838 self._autoPublish(anObj, theName, "sphere")
2841 ## Create a sphere with given center and radius.
2842 # @param x,y,z Coordinates of sphere center.
2843 # @param theR Sphere radius.
2844 # @param theName Object name; when specified, this parameter is used
2845 # for result publication in the study. Otherwise, if automatic
2846 # publication is switched on, default value is used for result name.
2848 # @return New GEOM.GEOM_Object, containing the created sphere.
2850 # @ref tui_creation_sphere "Example"
2851 def MakeSphere(self, x, y, z, theR, theName=None):
2853 Create a sphere with given center and radius.
2856 x,y,z Coordinates of sphere center.
2858 theName Object name; when specified, this parameter is used
2859 for result publication in the study. Otherwise, if automatic
2860 publication is switched on, default value is used for result name.
2863 New GEOM.GEOM_Object, containing the created sphere.
2865 # Example: see GEOM_TestAll.py
2866 point = self.MakeVertex(x, y, z)
2867 # note: auto-publishing is done in self.MakeSpherePntR()
2868 anObj = self.MakeSpherePntR(point, theR, theName)
2871 ## Create a sphere with given radius at the origin of coordinate system.
2872 # @param theR Sphere radius.
2873 # @param theName Object name; when specified, this parameter is used
2874 # for result publication in the study. Otherwise, if automatic
2875 # publication is switched on, default value is used for result name.
2877 # @return New GEOM.GEOM_Object, containing the created sphere.
2879 # @ref tui_creation_sphere "Example"
2880 def MakeSphereR(self, theR, theName=None):
2882 Create a sphere with given radius at the origin of coordinate system.
2886 theName Object name; when specified, this parameter is used
2887 for result publication in the study. Otherwise, if automatic
2888 publication is switched on, default value is used for result name.
2891 New GEOM.GEOM_Object, containing the created sphere.
2893 # Example: see GEOM_TestAll.py
2894 theR,Parameters = ParseParameters(theR)
2895 anObj = self.PrimOp.MakeSphereR(theR)
2896 RaiseIfFailed("MakeSphereR", self.PrimOp)
2897 anObj.SetParameters(Parameters)
2898 self._autoPublish(anObj, theName, "sphere")
2901 ## Create a cone with given base point, axis, height and radiuses.
2902 # @param thePnt Central point of the first cone base.
2903 # @param theAxis Cone axis.
2904 # @param theR1 Radius of the first cone base.
2905 # @param theR2 Radius of the second cone base.
2906 # \note If both radiuses are non-zero, the cone will be truncated.
2907 # \note If the radiuses are equal, a cylinder will be created instead.
2908 # @param theH Cone height.
2909 # @param theName Object name; when specified, this parameter is used
2910 # for result publication in the study. Otherwise, if automatic
2911 # publication is switched on, default value is used for result name.
2913 # @return New GEOM.GEOM_Object, containing the created cone.
2915 # @ref tui_creation_cone "Example"
2916 def MakeCone(self, thePnt, theAxis, theR1, theR2, theH, theName=None):
2918 Create a cone with given base point, axis, height and radiuses.
2921 thePnt Central point of the first cone base.
2923 theR1 Radius of the first cone base.
2924 theR2 Radius of the second cone base.
2926 theName Object name; when specified, this parameter is used
2927 for result publication in the study. Otherwise, if automatic
2928 publication is switched on, default value is used for result name.
2931 If both radiuses are non-zero, the cone will be truncated.
2932 If the radiuses are equal, a cylinder will be created instead.
2935 New GEOM.GEOM_Object, containing the created cone.
2937 # Example: see GEOM_TestAll.py
2938 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
2939 anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
2940 RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp)
2941 anObj.SetParameters(Parameters)
2942 self._autoPublish(anObj, theName, "cone")
2945 ## Create a cone with given height and radiuses at
2946 # the origin of coordinate system. Axis of the cone will
2947 # be collinear to the OZ axis of the coordinate system.
2948 # @param theR1 Radius of the first cone base.
2949 # @param theR2 Radius of the second cone base.
2950 # \note If both radiuses are non-zero, the cone will be truncated.
2951 # \note If the radiuses are equal, a cylinder will be created instead.
2952 # @param theH Cone height.
2953 # @param theName Object name; when specified, this parameter is used
2954 # for result publication in the study. Otherwise, if automatic
2955 # publication is switched on, default value is used for result name.
2957 # @return New GEOM.GEOM_Object, containing the created cone.
2959 # @ref tui_creation_cone "Example"
2960 def MakeConeR1R2H(self, theR1, theR2, theH, theName=None):
2962 Create a cone with given height and radiuses at
2963 the origin of coordinate system. Axis of the cone will
2964 be collinear to the OZ axis of the coordinate system.
2967 theR1 Radius of the first cone base.
2968 theR2 Radius of the second cone base.
2970 theName Object name; when specified, this parameter is used
2971 for result publication in the study. Otherwise, if automatic
2972 publication is switched on, default value is used for result name.
2975 If both radiuses are non-zero, the cone will be truncated.
2976 If the radiuses are equal, a cylinder will be created instead.
2979 New GEOM.GEOM_Object, containing the created cone.
2981 # Example: see GEOM_TestAll.py
2982 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
2983 anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH)
2984 RaiseIfFailed("MakeConeR1R2H", self.PrimOp)
2985 anObj.SetParameters(Parameters)
2986 self._autoPublish(anObj, theName, "cone")
2989 ## Create a torus with given center, normal vector and radiuses.
2990 # @param thePnt Torus central point.
2991 # @param theVec Torus axis of symmetry.
2992 # @param theRMajor Torus major radius.
2993 # @param theRMinor Torus minor radius.
2994 # @param theName Object name; when specified, this parameter is used
2995 # for result publication in the study. Otherwise, if automatic
2996 # publication is switched on, default value is used for result name.
2998 # @return New GEOM.GEOM_Object, containing the created torus.
3000 # @ref tui_creation_torus "Example"
3001 def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor, theName=None):
3003 Create a torus with given center, normal vector and radiuses.
3006 thePnt Torus central point.
3007 theVec Torus axis of symmetry.
3008 theRMajor Torus major radius.
3009 theRMinor Torus minor radius.
3010 theName Object name; when specified, this parameter is used
3011 for result publication in the study. Otherwise, if automatic
3012 publication is switched on, default value is used for result name.
3015 New GEOM.GEOM_Object, containing the created torus.
3017 # Example: see GEOM_TestAll.py
3018 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3019 anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
3020 RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp)
3021 anObj.SetParameters(Parameters)
3022 self._autoPublish(anObj, theName, "torus")
3025 ## Create a torus with given radiuses at the origin of coordinate system.
3026 # @param theRMajor Torus major radius.
3027 # @param theRMinor Torus minor radius.
3028 # @param theName Object name; when specified, this parameter is used
3029 # for result publication in the study. Otherwise, if automatic
3030 # publication is switched on, default value is used for result name.
3032 # @return New GEOM.GEOM_Object, containing the created torus.
3034 # @ref tui_creation_torus "Example"
3035 def MakeTorusRR(self, theRMajor, theRMinor, theName=None):
3037 Create a torus with given radiuses at the origin of coordinate system.
3040 theRMajor Torus major radius.
3041 theRMinor Torus minor radius.
3042 theName Object name; when specified, this parameter is used
3043 for result publication in the study. Otherwise, if automatic
3044 publication is switched on, default value is used for result name.
3047 New GEOM.GEOM_Object, containing the created torus.
3049 # Example: see GEOM_TestAll.py
3050 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3051 anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor)
3052 RaiseIfFailed("MakeTorusRR", self.PrimOp)
3053 anObj.SetParameters(Parameters)
3054 self._autoPublish(anObj, theName, "torus")
3057 # end of l3_3d_primitives
3060 ## @addtogroup l3_complex
3063 ## Create a shape by extrusion of the base shape along a vector, defined by two points.
3064 # @param theBase Base shape to be extruded.
3065 # @param thePoint1 First end of extrusion vector.
3066 # @param thePoint2 Second end of extrusion vector.
3067 # @param theScaleFactor Use it to make prism with scaled second base.
3068 # Nagative value means not scaled second base.
3069 # @param theName Object name; when specified, this parameter is used
3070 # for result publication in the study. Otherwise, if automatic
3071 # publication is switched on, default value is used for result name.
3073 # @return New GEOM.GEOM_Object, containing the created prism.
3075 # @ref tui_creation_prism "Example"
3076 def MakePrism(self, theBase, thePoint1, thePoint2, theScaleFactor = -1.0, theName=None):
3078 Create a shape by extrusion of the base shape along a vector, defined by two points.
3081 theBase Base shape to be extruded.
3082 thePoint1 First end of extrusion vector.
3083 thePoint2 Second end of extrusion vector.
3084 theScaleFactor Use it to make prism with scaled second base.
3085 Nagative value means not scaled second base.
3086 theName Object name; when specified, this parameter is used
3087 for result publication in the study. Otherwise, if automatic
3088 publication is switched on, default value is used for result name.
3091 New GEOM.GEOM_Object, containing the created prism.
3093 # Example: see GEOM_TestAll.py
3096 if theScaleFactor > 0:
3097 theScaleFactor,Parameters = ParseParameters(theScaleFactor)
3098 anObj = self.PrimOp.MakePrismTwoPntWithScaling(theBase, thePoint1, thePoint2, theScaleFactor)
3100 anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2)
3101 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3102 anObj.SetParameters(Parameters)
3103 self._autoPublish(anObj, theName, "prism")
3106 ## Create a shape by extrusion of the base shape along a
3107 # vector, defined by two points, in 2 Ways (forward/backward).
3108 # @param theBase Base shape to be extruded.
3109 # @param thePoint1 First end of extrusion vector.
3110 # @param thePoint2 Second end of extrusion vector.
3111 # @param theName Object name; when specified, this parameter is used
3112 # for result publication in the study. Otherwise, if automatic
3113 # publication is switched on, default value is used for result name.
3115 # @return New GEOM.GEOM_Object, containing the created prism.
3117 # @ref tui_creation_prism "Example"
3118 def MakePrism2Ways(self, theBase, thePoint1, thePoint2, theName=None):
3120 Create a shape by extrusion of the base shape along a
3121 vector, defined by two points, in 2 Ways (forward/backward).
3124 theBase Base shape to be extruded.
3125 thePoint1 First end of extrusion vector.
3126 thePoint2 Second end of extrusion vector.
3127 theName Object name; when specified, this parameter is used
3128 for result publication in the study. Otherwise, if automatic
3129 publication is switched on, default value is used for result name.
3132 New GEOM.GEOM_Object, containing the created prism.
3134 # Example: see GEOM_TestAll.py
3135 anObj = self.PrimOp.MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2)
3136 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3137 self._autoPublish(anObj, theName, "prism")
3140 ## Create a shape by extrusion of the base shape along the vector,
3141 # i.e. all the space, transfixed by the base shape during its translation
3142 # along the vector on the given distance.
3143 # @param theBase Base shape to be extruded.
3144 # @param theVec Direction of extrusion.
3145 # @param theH Prism dimension along theVec.
3146 # @param theScaleFactor Use it to make prism with scaled second base.
3147 # Negative value means not scaled second base.
3148 # @param theName Object name; when specified, this parameter is used
3149 # for result publication in the study. Otherwise, if automatic
3150 # publication is switched on, default value is used for result name.
3152 # @return New GEOM.GEOM_Object, containing the created prism.
3154 # @ref tui_creation_prism "Example"
3155 def MakePrismVecH(self, theBase, theVec, theH, theScaleFactor = -1.0, theName=None):
3157 Create a shape by extrusion of the base shape along the vector,
3158 i.e. all the space, transfixed by the base shape during its translation
3159 along the vector on the given distance.
3162 theBase Base shape to be extruded.
3163 theVec Direction of extrusion.
3164 theH Prism dimension along theVec.
3165 theScaleFactor Use it to make prism with scaled second base.
3166 Negative value means not scaled second base.
3167 theName Object name; when specified, this parameter is used
3168 for result publication in the study. Otherwise, if automatic
3169 publication is switched on, default value is used for result name.
3172 New GEOM.GEOM_Object, containing the created prism.
3174 # Example: see GEOM_TestAll.py
3177 if theScaleFactor > 0:
3178 theH,theScaleFactor,Parameters = ParseParameters(theH,theScaleFactor)
3179 anObj = self.PrimOp.MakePrismVecHWithScaling(theBase, theVec, theH, theScaleFactor)
3181 theH,Parameters = ParseParameters(theH)
3182 anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
3183 RaiseIfFailed("MakePrismVecH", self.PrimOp)
3184 anObj.SetParameters(Parameters)
3185 self._autoPublish(anObj, theName, "prism")
3188 ## Create a shape by extrusion of the base shape along the vector,
3189 # i.e. all the space, transfixed by the base shape during its translation
3190 # along the vector on the given distance in 2 Ways (forward/backward).
3191 # @param theBase Base shape to be extruded.
3192 # @param theVec Direction of extrusion.
3193 # @param theH Prism dimension along theVec in forward direction.
3194 # @param theName Object name; when specified, this parameter is used
3195 # for result publication in the study. Otherwise, if automatic
3196 # publication is switched on, default value is used for result name.
3198 # @return New GEOM.GEOM_Object, containing the created prism.
3200 # @ref tui_creation_prism "Example"
3201 def MakePrismVecH2Ways(self, theBase, theVec, theH, theName=None):
3203 Create a shape by extrusion of the base shape along the vector,
3204 i.e. all the space, transfixed by the base shape during its translation
3205 along the vector on the given distance in 2 Ways (forward/backward).
3208 theBase Base shape to be extruded.
3209 theVec Direction of extrusion.
3210 theH Prism dimension along theVec in forward direction.
3211 theName Object name; when specified, this parameter is used
3212 for result publication in the study. Otherwise, if automatic
3213 publication is switched on, default value is used for result name.
3216 New GEOM.GEOM_Object, containing the created prism.
3218 # Example: see GEOM_TestAll.py
3219 theH,Parameters = ParseParameters(theH)
3220 anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH)
3221 RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp)
3222 anObj.SetParameters(Parameters)
3223 self._autoPublish(anObj, theName, "prism")
3226 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3227 # @param theBase Base shape to be extruded.
3228 # @param theDX, theDY, theDZ Directions of extrusion.
3229 # @param theScaleFactor Use it to make prism with scaled second base.
3230 # Nagative value means not scaled second base.
3231 # @param theName Object name; when specified, this parameter is used
3232 # for result publication in the study. Otherwise, if automatic
3233 # publication is switched on, default value is used for result name.
3235 # @return New GEOM.GEOM_Object, containing the created prism.
3237 # @ref tui_creation_prism "Example"
3238 def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ, theScaleFactor = -1.0, theName=None):
3240 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3243 theBase Base shape to be extruded.
3244 theDX, theDY, theDZ Directions of extrusion.
3245 theScaleFactor Use it to make prism with scaled second base.
3246 Nagative value means not scaled second base.
3247 theName Object name; when specified, this parameter is used
3248 for result publication in the study. Otherwise, if automatic
3249 publication is switched on, default value is used for result name.
3252 New GEOM.GEOM_Object, containing the created prism.
3254 # Example: see GEOM_TestAll.py
3257 if theScaleFactor > 0:
3258 theDX,theDY,theDZ,theScaleFactor,Parameters = ParseParameters(theDX, theDY, theDZ, theScaleFactor)
3259 anObj = self.PrimOp.MakePrismDXDYDZWithScaling(theBase, theDX, theDY, theDZ, theScaleFactor)
3261 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3262 anObj = self.PrimOp.MakePrismDXDYDZ(theBase, theDX, theDY, theDZ)
3263 RaiseIfFailed("MakePrismDXDYDZ", self.PrimOp)
3264 anObj.SetParameters(Parameters)
3265 self._autoPublish(anObj, theName, "prism")
3268 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3269 # i.e. all the space, transfixed by the base shape during its translation
3270 # along the vector on the given distance in 2 Ways (forward/backward).
3271 # @param theBase Base shape to be extruded.
3272 # @param theDX, theDY, theDZ Directions of extrusion.
3273 # @param theName Object name; when specified, this parameter is used
3274 # for result publication in the study. Otherwise, if automatic
3275 # publication is switched on, default value is used for result name.
3277 # @return New GEOM.GEOM_Object, containing the created prism.
3279 # @ref tui_creation_prism "Example"
3280 def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ, theName=None):
3282 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3283 i.e. all the space, transfixed by the base shape during its translation
3284 along the vector on the given distance in 2 Ways (forward/backward).
3287 theBase Base shape to be extruded.
3288 theDX, theDY, theDZ Directions of extrusion.
3289 theName Object name; when specified, this parameter is used
3290 for result publication in the study. Otherwise, if automatic
3291 publication is switched on, default value is used for result name.
3294 New GEOM.GEOM_Object, containing the created prism.
3296 # Example: see GEOM_TestAll.py
3297 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3298 anObj = self.PrimOp.MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ)
3299 RaiseIfFailed("MakePrismDXDYDZ2Ways", self.PrimOp)
3300 anObj.SetParameters(Parameters)
3301 self._autoPublish(anObj, theName, "prism")
3304 ## Create a shape by revolution of the base shape around the axis
3305 # on the given angle, i.e. all the space, transfixed by the base
3306 # shape during its rotation around the axis on the given angle.
3307 # @param theBase Base shape to be rotated.
3308 # @param theAxis Rotation axis.
3309 # @param theAngle Rotation angle in radians.
3310 # @param theName Object name; when specified, this parameter is used
3311 # for result publication in the study. Otherwise, if automatic
3312 # publication is switched on, default value is used for result name.
3314 # @return New GEOM.GEOM_Object, containing the created revolution.
3316 # @ref tui_creation_revolution "Example"
3317 def MakeRevolution(self, theBase, theAxis, theAngle, theName=None):
3319 Create a shape by revolution of the base shape around the axis
3320 on the given angle, i.e. all the space, transfixed by the base
3321 shape during its rotation around the axis on the given angle.
3324 theBase Base shape to be rotated.
3325 theAxis Rotation axis.
3326 theAngle Rotation angle in radians.
3327 theName Object name; when specified, this parameter is used
3328 for result publication in the study. Otherwise, if automatic
3329 publication is switched on, default value is used for result name.
3332 New GEOM.GEOM_Object, containing the created revolution.
3334 # Example: see GEOM_TestAll.py
3335 theAngle,Parameters = ParseParameters(theAngle)
3336 anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
3337 RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
3338 anObj.SetParameters(Parameters)
3339 self._autoPublish(anObj, theName, "revolution")
3342 ## Create a shape by revolution of the base shape around the axis
3343 # on the given angle, i.e. all the space, transfixed by the base
3344 # shape during its rotation around the axis on the given angle in
3345 # both directions (forward/backward)
3346 # @param theBase Base shape to be rotated.
3347 # @param theAxis Rotation axis.
3348 # @param theAngle Rotation angle in radians.
3349 # @param theName Object name; when specified, this parameter is used
3350 # for result publication in the study. Otherwise, if automatic
3351 # publication is switched on, default value is used for result name.
3353 # @return New GEOM.GEOM_Object, containing the created revolution.
3355 # @ref tui_creation_revolution "Example"
3356 def MakeRevolution2Ways(self, theBase, theAxis, theAngle, theName=None):
3358 Create a shape by revolution of the base shape around the axis
3359 on the given angle, i.e. all the space, transfixed by the base
3360 shape during its rotation around the axis on the given angle in
3361 both directions (forward/backward).
3364 theBase Base shape to be rotated.
3365 theAxis Rotation axis.
3366 theAngle Rotation angle in radians.
3367 theName Object name; when specified, this parameter is used
3368 for result publication in the study. Otherwise, if automatic
3369 publication is switched on, default value is used for result name.
3372 New GEOM.GEOM_Object, containing the created revolution.
3374 theAngle,Parameters = ParseParameters(theAngle)
3375 anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle)
3376 RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp)
3377 anObj.SetParameters(Parameters)
3378 self._autoPublish(anObj, theName, "revolution")
3381 ## Create a filling from the given compound of contours.
3382 # @param theShape the compound of contours
3383 # @param theMinDeg a minimal degree of BSpline surface to create
3384 # @param theMaxDeg a maximal degree of BSpline surface to create
3385 # @param theTol2D a 2d tolerance to be reached
3386 # @param theTol3D a 3d tolerance to be reached
3387 # @param theNbIter a number of iteration of approximation algorithm
3388 # @param theMethod Kind of method to perform filling operation(see GEOM::filling_oper_method())
3389 # @param isApprox if True, BSpline curves are generated in the process
3390 # of surface construction. By default it is False, that means
3391 # the surface is created using given curves. The usage of
3392 # Approximation makes the algorithm work slower, but allows
3393 # building the surface for rather complex cases.
3394 # @param theName Object name; when specified, this parameter is used
3395 # for result publication in the study. Otherwise, if automatic
3396 # publication is switched on, default value is used for result name.
3398 # @return New GEOM.GEOM_Object, containing the created filling surface.
3400 # @ref tui_creation_filling "Example"
3401 def MakeFilling(self, theShape, theMinDeg=2, theMaxDeg=5, theTol2D=0.0001,
3402 theTol3D=0.0001, theNbIter=0, theMethod=GEOM.FOM_Default, isApprox=0, theName=None):
3404 Create a filling from the given compound of contours.
3407 theShape the compound of contours
3408 theMinDeg a minimal degree of BSpline surface to create
3409 theMaxDeg a maximal degree of BSpline surface to create
3410 theTol2D a 2d tolerance to be reached
3411 theTol3D a 3d tolerance to be reached
3412 theNbIter a number of iteration of approximation algorithm
3413 theMethod Kind of method to perform filling operation(see GEOM::filling_oper_method())
3414 isApprox if True, BSpline curves are generated in the process
3415 of surface construction. By default it is False, that means
3416 the surface is created using given curves. The usage of
3417 Approximation makes the algorithm work slower, but allows
3418 building the surface for rather complex cases
3419 theName Object name; when specified, this parameter is used
3420 for result publication in the study. Otherwise, if automatic
3421 publication is switched on, default value is used for result name.
3424 New GEOM.GEOM_Object, containing the created filling surface.
3427 filling = geompy.MakeFilling(compound, 2, 5, 0.0001, 0.0001, 5)
3429 # Example: see GEOM_TestAll.py
3430 theMinDeg,theMaxDeg,theTol2D,theTol3D,theNbIter,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter)
3431 anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg,
3432 theTol2D, theTol3D, theNbIter,
3433 theMethod, isApprox)
3434 RaiseIfFailed("MakeFilling", self.PrimOp)
3435 anObj.SetParameters(Parameters)
3436 self._autoPublish(anObj, theName, "filling")
3440 ## Create a filling from the given compound of contours.
3441 # This method corresponds to MakeFilling with isApprox=True
3442 # @param theShape the compound of contours
3443 # @param theMinDeg a minimal degree of BSpline surface to create
3444 # @param theMaxDeg a maximal degree of BSpline surface to create
3445 # @param theTol3D a 3d tolerance to be reached
3446 # @param theName Object name; when specified, this parameter is used
3447 # for result publication in the study. Otherwise, if automatic
3448 # publication is switched on, default value is used for result name.
3450 # @return New GEOM.GEOM_Object, containing the created filling surface.
3452 # @ref tui_creation_filling "Example"
3453 def MakeFillingNew(self, theShape, theMinDeg=2, theMaxDeg=5, theTol3D=0.0001, theName=None):
3455 Create a filling from the given compound of contours.
3456 This method corresponds to MakeFilling with isApprox=True
3459 theShape the compound of contours
3460 theMinDeg a minimal degree of BSpline surface to create
3461 theMaxDeg a maximal degree of BSpline surface to create
3462 theTol3D a 3d tolerance to be reached
3463 theName Object name; when specified, this parameter is used
3464 for result publication in the study. Otherwise, if automatic
3465 publication is switched on, default value is used for result name.
3468 New GEOM.GEOM_Object, containing the created filling surface.
3471 filling = geompy.MakeFillingNew(compound, 2, 5, 0.0001)
3473 # Example: see GEOM_TestAll.py
3474 theMinDeg,theMaxDeg,theTol3D,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol3D)
3475 anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg,
3476 0, theTol3D, 0, GEOM.FOM_Default, True)
3477 RaiseIfFailed("MakeFillingNew", self.PrimOp)
3478 anObj.SetParameters(Parameters)
3479 self._autoPublish(anObj, theName, "filling")
3482 ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3483 # @param theSeqSections - set of specified sections.
3484 # @param theModeSolid - mode defining building solid or shell
3485 # @param thePreci - precision 3D used for smoothing
3486 # @param theRuled - mode defining type of the result surfaces (ruled or smoothed).
3487 # @param theName Object name; when specified, this parameter is used
3488 # for result publication in the study. Otherwise, if automatic
3489 # publication is switched on, default value is used for result name.
3491 # @return New GEOM.GEOM_Object, containing the created shell or solid.
3493 # @ref swig_todo "Example"
3494 def MakeThruSections(self, theSeqSections, theModeSolid, thePreci, theRuled, theName=None):
3496 Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3499 theSeqSections - set of specified sections.
3500 theModeSolid - mode defining building solid or shell
3501 thePreci - precision 3D used for smoothing
3502 theRuled - mode defining type of the result surfaces (ruled or smoothed).
3503 theName Object name; when specified, this parameter is used
3504 for result publication in the study. Otherwise, if automatic
3505 publication is switched on, default value is used for result name.
3508 New GEOM.GEOM_Object, containing the created shell or solid.
3510 # Example: see GEOM_TestAll.py
3511 anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
3512 RaiseIfFailed("MakeThruSections", self.PrimOp)
3513 self._autoPublish(anObj, theName, "filling")
3516 ## Create a shape by extrusion of the base shape along
3517 # the path shape. The path shape can be a wire or an edge.
3518 # @param theBase Base shape to be extruded.
3519 # @param thePath Path shape to extrude the base shape along it.
3520 # @param theName Object name; when specified, this parameter is used
3521 # for result publication in the study. Otherwise, if automatic
3522 # publication is switched on, default value is used for result name.
3524 # @return New GEOM.GEOM_Object, containing the created pipe.
3526 # @ref tui_creation_pipe "Example"
3527 def MakePipe(self, theBase, thePath, theName=None):
3529 Create a shape by extrusion of the base shape along
3530 the path shape. The path shape can be a wire or an edge.
3533 theBase Base shape to be extruded.
3534 thePath Path shape to extrude the base shape along it.
3535 theName Object name; when specified, this parameter is used
3536 for result publication in the study. Otherwise, if automatic
3537 publication is switched on, default value is used for result name.
3540 New GEOM.GEOM_Object, containing the created pipe.
3542 # Example: see GEOM_TestAll.py
3543 anObj = self.PrimOp.MakePipe(theBase, thePath)
3544 RaiseIfFailed("MakePipe", self.PrimOp)
3545 self._autoPublish(anObj, theName, "pipe")
3548 ## Create a shape by extrusion of the profile shape along
3549 # the path shape. The path shape can be a wire or an edge.
3550 # the several profiles can be specified in the several locations of path.
3551 # @param theSeqBases - list of Bases shape to be extruded.
3552 # @param theLocations - list of locations on the path corresponding
3553 # specified list of the Bases shapes. Number of locations
3554 # should be equal to number of bases or list of locations can be empty.
3555 # @param thePath - Path shape to extrude the base shape along it.
3556 # @param theWithContact - the mode defining that the section is translated to be in
3557 # contact with the spine.
3558 # @param theWithCorrection - defining that the section is rotated to be
3559 # orthogonal to the spine tangent in the correspondent point
3560 # @param theName Object name; when specified, this parameter is used
3561 # for result publication in the study. Otherwise, if automatic
3562 # publication is switched on, default value is used for result name.
3564 # @return New GEOM.GEOM_Object, containing the created pipe.
3566 # @ref tui_creation_pipe_with_diff_sec "Example"
3567 def MakePipeWithDifferentSections(self, theSeqBases,
3568 theLocations, thePath,
3569 theWithContact, theWithCorrection, theName=None):
3571 Create a shape by extrusion of the profile shape along
3572 the path shape. The path shape can be a wire or an edge.
3573 the several profiles can be specified in the several locations of path.
3576 theSeqBases - list of Bases shape to be extruded.
3577 theLocations - list of locations on the path corresponding
3578 specified list of the Bases shapes. Number of locations
3579 should be equal to number of bases or list of locations can be empty.
3580 thePath - Path shape to extrude the base shape along it.
3581 theWithContact - the mode defining that the section is translated to be in
3582 contact with the spine(0/1)
3583 theWithCorrection - defining that the section is rotated to be
3584 orthogonal to the spine tangent in the correspondent point (0/1)
3585 theName Object name; when specified, this parameter is used
3586 for result publication in the study. Otherwise, if automatic
3587 publication is switched on, default value is used for result name.
3590 New GEOM.GEOM_Object, containing the created pipe.
3592 anObj = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
3593 theLocations, thePath,
3594 theWithContact, theWithCorrection)
3595 RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp)
3596 self._autoPublish(anObj, theName, "pipe")
3599 ## Create a shape by extrusion of the profile shape along
3600 # the path shape. The path shape can be a wire or a edge.
3601 # the several profiles can be specified in the several locations of path.
3602 # @param theSeqBases - list of Bases shape to be extruded. Base shape must be
3603 # shell or face. If number of faces in neighbour sections
3604 # aren't coincided result solid between such sections will
3605 # be created using external boundaries of this shells.
3606 # @param theSeqSubBases - list of corresponding sub-shapes of section shapes.
3607 # This list is used for searching correspondences between
3608 # faces in the sections. Size of this list must be equal
3609 # to size of list of base shapes.
3610 # @param theLocations - list of locations on the path corresponding
3611 # specified list of the Bases shapes. Number of locations
3612 # should be equal to number of bases. First and last
3613 # locations must be coincided with first and last vertexes
3614 # of path correspondingly.
3615 # @param thePath - Path shape to extrude the base shape along it.
3616 # @param theWithContact - the mode defining that the section is translated to be in
3617 # contact with the spine.
3618 # @param theWithCorrection - defining that the section is rotated to be
3619 # orthogonal to the spine tangent in the correspondent point
3620 # @param theName Object name; when specified, this parameter is used
3621 # for result publication in the study. Otherwise, if automatic
3622 # publication is switched on, default value is used for result name.
3624 # @return New GEOM.GEOM_Object, containing the created solids.
3626 # @ref tui_creation_pipe_with_shell_sec "Example"
3627 def MakePipeWithShellSections(self, theSeqBases, theSeqSubBases,
3628 theLocations, thePath,
3629 theWithContact, theWithCorrection, theName=None):
3631 Create a shape by extrusion of the profile shape along
3632 the path shape. The path shape can be a wire or a edge.
3633 the several profiles can be specified in the several locations of path.
3636 theSeqBases - list of Bases shape to be extruded. Base shape must be
3637 shell or face. If number of faces in neighbour sections
3638 aren't coincided result solid between such sections will
3639 be created using external boundaries of this shells.
3640 theSeqSubBases - list of corresponding sub-shapes of section shapes.
3641 This list is used for searching correspondences between
3642 faces in the sections. Size of this list must be equal
3643 to size of list of base shapes.
3644 theLocations - list of locations on the path corresponding
3645 specified list of the Bases shapes. Number of locations
3646 should be equal to number of bases. First and last
3647 locations must be coincided with first and last vertexes
3648 of path correspondingly.
3649 thePath - Path shape to extrude the base shape along it.
3650 theWithContact - the mode defining that the section is translated to be in
3651 contact with the spine (0/1)
3652 theWithCorrection - defining that the section is rotated to be
3653 orthogonal to the spine tangent in the correspondent point (0/1)
3654 theName Object name; when specified, this parameter is used
3655 for result publication in the study. Otherwise, if automatic
3656 publication is switched on, default value is used for result name.
3659 New GEOM.GEOM_Object, containing the created solids.
3661 anObj = self.PrimOp.MakePipeWithShellSections(theSeqBases, theSeqSubBases,
3662 theLocations, thePath,
3663 theWithContact, theWithCorrection)
3664 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
3665 self._autoPublish(anObj, theName, "pipe")
3668 ## Create a shape by extrusion of the profile shape along
3669 # the path shape. This function is used only for debug pipe
3670 # functionality - it is a version of function MakePipeWithShellSections()
3671 # which give a possibility to recieve information about
3672 # creating pipe between each pair of sections step by step.
3673 def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases,
3674 theLocations, thePath,
3675 theWithContact, theWithCorrection, theName=None):
3677 Create a shape by extrusion of the profile shape along
3678 the path shape. This function is used only for debug pipe
3679 functionality - it is a version of previous function
3680 geompy.MakePipeWithShellSections() which give a possibility to
3681 recieve information about creating pipe between each pair of
3682 sections step by step.
3685 nbsect = len(theSeqBases)
3686 nbsubsect = len(theSeqSubBases)
3687 #print "nbsect = ",nbsect
3688 for i in range(1,nbsect):
3690 tmpSeqBases = [ theSeqBases[i-1], theSeqBases[i] ]
3691 tmpLocations = [ theLocations[i-1], theLocations[i] ]
3693 if nbsubsect>0: tmpSeqSubBases = [ theSeqSubBases[i-1], theSeqSubBases[i] ]
3694 anObj = self.PrimOp.MakePipeWithShellSections(tmpSeqBases, tmpSeqSubBases,
3695 tmpLocations, thePath,
3696 theWithContact, theWithCorrection)
3697 if self.PrimOp.IsDone() == 0:
3698 print "Problems with pipe creation between ",i," and ",i+1," sections"
3699 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
3702 print "Pipe between ",i," and ",i+1," sections is OK"
3707 resc = self.MakeCompound(res)
3708 #resc = self.MakeSewing(res, 0.001)
3709 #print "resc: ",resc
3710 self._autoPublish(resc, theName, "pipe")
3713 ## Create solids between given sections
3714 # @param theSeqBases - list of sections (shell or face).
3715 # @param theLocations - list of corresponding vertexes
3716 # @param theName Object name; when specified, this parameter is used
3717 # for result publication in the study. Otherwise, if automatic
3718 # publication is switched on, default value is used for result name.
3720 # @return New GEOM.GEOM_Object, containing the created solids.
3722 # @ref tui_creation_pipe_without_path "Example"
3723 def MakePipeShellsWithoutPath(self, theSeqBases, theLocations, theName=None):
3725 Create solids between given sections
3728 theSeqBases - list of sections (shell or face).
3729 theLocations - list of corresponding vertexes
3730 theName Object name; when specified, this parameter is used
3731 for result publication in the study. Otherwise, if automatic
3732 publication is switched on, default value is used for result name.
3735 New GEOM.GEOM_Object, containing the created solids.
3737 anObj = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations)
3738 RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp)
3739 self._autoPublish(anObj, theName, "pipe")
3742 ## Create a shape by extrusion of the base shape along
3743 # the path shape with constant bi-normal direction along the given vector.
3744 # The path shape can be a wire or an edge.
3745 # @param theBase Base shape to be extruded.
3746 # @param thePath Path shape to extrude the base shape along it.
3747 # @param theVec Vector defines a constant binormal direction to keep the
3748 # same angle beetween the direction and the sections
3749 # along the sweep surface.
3750 # @param theName Object name; when specified, this parameter is used
3751 # for result publication in the study. Otherwise, if automatic
3752 # publication is switched on, default value is used for result name.
3754 # @return New GEOM.GEOM_Object, containing the created pipe.
3756 # @ref tui_creation_pipe "Example"
3757 def MakePipeBiNormalAlongVector(self, theBase, thePath, theVec, theName=None):
3759 Create a shape by extrusion of the base shape along
3760 the path shape with constant bi-normal direction along the given vector.
3761 The path shape can be a wire or an edge.
3764 theBase Base shape to be extruded.
3765 thePath Path shape to extrude the base shape along it.
3766 theVec Vector defines a constant binormal direction to keep the
3767 same angle beetween the direction and the sections
3768 along the sweep surface.
3769 theName Object name; when specified, this parameter is used
3770 for result publication in the study. Otherwise, if automatic
3771 publication is switched on, default value is used for result name.
3774 New GEOM.GEOM_Object, containing the created pipe.
3776 # Example: see GEOM_TestAll.py
3777 anObj = self.PrimOp.MakePipeBiNormalAlongVector(theBase, thePath, theVec)
3778 RaiseIfFailed("MakePipeBiNormalAlongVector", self.PrimOp)
3779 self._autoPublish(anObj, theName, "pipe")
3782 ## Makes a thick solid from a face or a shell
3783 # @param theShape Face or Shell to be thicken
3784 # @param theThickness Thickness of the resulting solid
3785 # @param theName Object name; when specified, this parameter is used
3786 # for result publication in the study. Otherwise, if automatic
3787 # publication is switched on, default value is used for result name.
3789 # @return New GEOM.GEOM_Object, containing the created solid
3791 def MakeThickSolid(self, theShape, theThickness, theName=None):
3793 Make a thick solid from a face or a shell
3796 theShape Face or Shell to be thicken
3797 theThickness Thickness of the resulting solid
3798 theName Object name; when specified, this parameter is used
3799 for result publication in the study. Otherwise, if automatic
3800 publication is switched on, default value is used for result name.
3803 New GEOM.GEOM_Object, containing the created solid
3805 # Example: see GEOM_TestAll.py
3806 anObj = self.PrimOp.MakeThickening(theShape, theThickness, True)
3807 RaiseIfFailed("MakeThickening", self.PrimOp)
3808 self._autoPublish(anObj, theName, "pipe")
3812 ## Modifies a face or a shell to make it a thick solid
3813 # @param theShape Face or Shell to be thicken
3814 # @param theThickness Thickness of the resulting solid
3816 # @return The modified shape
3818 def Thicken(self, theShape, theThickness):
3820 Modifies a face or a shell to make it a thick solid
3823 theBase Base shape to be extruded.
3824 thePath Path shape to extrude the base shape along it.
3825 theName Object name; when specified, this parameter is used
3826 for result publication in the study. Otherwise, if automatic
3827 publication is switched on, default value is used for result name.
3832 # Example: see GEOM_TestAll.py
3833 anObj = self.PrimOp.MakeThickening(theShape, theThickness, False)
3834 RaiseIfFailed("MakeThickening", self.PrimOp)
3837 ## Build a middle path of a pipe-like shape.
3838 # The path shape can be a wire or an edge.
3839 # @param theShape It can be closed or unclosed pipe-like shell
3840 # or a pipe-like solid.
3841 # @param theBase1, theBase2 Two bases of the supposed pipe. This
3842 # should be wires or faces of theShape.
3843 # @param theName Object name; when specified, this parameter is used
3844 # for result publication in the study. Otherwise, if automatic
3845 # publication is switched on, default value is used for result name.
3847 # @note It is not assumed that exact or approximate copy of theShape
3848 # can be obtained by applying existing Pipe operation on the
3849 # resulting "Path" wire taking theBase1 as the base - it is not
3850 # always possible; though in some particular cases it might work
3851 # it is not guaranteed. Thus, RestorePath function should not be
3852 # considered as an exact reverse operation of the Pipe.
3854 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
3855 # source pipe's "path".
3857 # @ref tui_creation_pipe_path "Example"
3858 def RestorePath (self, theShape, theBase1, theBase2, theName=None):
3860 Build a middle path of a pipe-like shape.
3861 The path shape can be a wire or an edge.
3864 theShape It can be closed or unclosed pipe-like shell
3865 or a pipe-like solid.
3866 theBase1, theBase2 Two bases of the supposed pipe. This
3867 should be wires or faces of theShape.
3868 theName Object name; when specified, this parameter is used
3869 for result publication in the study. Otherwise, if automatic
3870 publication is switched on, default value is used for result name.
3873 New GEOM_Object, containing an edge or wire that represent
3876 anObj = self.PrimOp.RestorePath(theShape, theBase1, theBase2)
3877 RaiseIfFailed("RestorePath", self.PrimOp)
3878 self._autoPublish(anObj, theName, "path")
3881 ## Build a middle path of a pipe-like shape.
3882 # The path shape can be a wire or an edge.
3883 # @param theShape It can be closed or unclosed pipe-like shell
3884 # or a pipe-like solid.
3885 # @param listEdges1, listEdges2 Two bases of the supposed pipe. This
3886 # should be lists of edges of theShape.
3887 # @param theName Object name; when specified, this parameter is used
3888 # for result publication in the study. Otherwise, if automatic
3889 # publication is switched on, default value is used for result name.
3891 # @note It is not assumed that exact or approximate copy of theShape
3892 # can be obtained by applying existing Pipe operation on the
3893 # resulting "Path" wire taking theBase1 as the base - it is not
3894 # always possible; though in some particular cases it might work
3895 # it is not guaranteed. Thus, RestorePath function should not be
3896 # considered as an exact reverse operation of the Pipe.
3898 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
3899 # source pipe's "path".
3901 # @ref tui_creation_pipe_path "Example"
3902 def RestorePathEdges (self, theShape, listEdges1, listEdges2, theName=None):
3904 Build a middle path of a pipe-like shape.
3905 The path shape can be a wire or an edge.
3908 theShape It can be closed or unclosed pipe-like shell
3909 or a pipe-like solid.
3910 listEdges1, listEdges2 Two bases of the supposed pipe. This
3911 should be lists of edges of theShape.
3912 theName Object name; when specified, this parameter is used
3913 for result publication in the study. Otherwise, if automatic
3914 publication is switched on, default value is used for result name.
3917 New GEOM_Object, containing an edge or wire that represent
3920 anObj = self.PrimOp.RestorePathEdges(theShape, listEdges1, listEdges2)
3921 RaiseIfFailed("RestorePath", self.PrimOp)
3922 self._autoPublish(anObj, theName, "path")
3928 ## @addtogroup l3_advanced
3931 ## Create a linear edge with specified ends.
3932 # @param thePnt1 Point for the first end of edge.
3933 # @param thePnt2 Point for the second end of edge.
3934 # @param theName Object name; when specified, this parameter is used
3935 # for result publication in the study. Otherwise, if automatic
3936 # publication is switched on, default value is used for result name.
3938 # @return New GEOM.GEOM_Object, containing the created edge.
3940 # @ref tui_creation_edge "Example"
3941 def MakeEdge(self, thePnt1, thePnt2, theName=None):
3943 Create a linear edge with specified ends.
3946 thePnt1 Point for the first end of edge.
3947 thePnt2 Point for the second end of edge.
3948 theName Object name; when specified, this parameter is used
3949 for result publication in the study. Otherwise, if automatic
3950 publication is switched on, default value is used for result name.
3953 New GEOM.GEOM_Object, containing the created edge.
3955 # Example: see GEOM_TestAll.py
3956 anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2)
3957 RaiseIfFailed("MakeEdge", self.ShapesOp)
3958 self._autoPublish(anObj, theName, "edge")
3961 ## Create a new edge, corresponding to the given length on the given curve.
3962 # @param theRefCurve The referenced curve (edge).
3963 # @param theLength Length on the referenced curve. It can be negative.
3964 # @param theStartPoint Any point can be selected for it, the new edge will begin
3965 # at the end of \a theRefCurve, close to the selected point.
3966 # If None, start from the first point of \a theRefCurve.
3967 # @param theName Object name; when specified, this parameter is used
3968 # for result publication in the study. Otherwise, if automatic
3969 # publication is switched on, default value is used for result name.
3971 # @return New GEOM.GEOM_Object, containing the created edge.
3973 # @ref tui_creation_edge "Example"
3974 def MakeEdgeOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
3976 Create a new edge, corresponding to the given length on the given curve.
3979 theRefCurve The referenced curve (edge).
3980 theLength Length on the referenced curve. It can be negative.
3981 theStartPoint Any point can be selected for it, the new edge will begin
3982 at the end of theRefCurve, close to the selected point.
3983 If None, start from the first point of theRefCurve.
3984 theName Object name; when specified, this parameter is used
3985 for result publication in the study. Otherwise, if automatic
3986 publication is switched on, default value is used for result name.
3989 New GEOM.GEOM_Object, containing the created edge.
3991 # Example: see GEOM_TestAll.py
3992 theLength, Parameters = ParseParameters(theLength)
3993 anObj = self.ShapesOp.MakeEdgeOnCurveByLength(theRefCurve, theLength, theStartPoint)
3994 RaiseIfFailed("MakeEdgeOnCurveByLength", self.ShapesOp)
3995 anObj.SetParameters(Parameters)
3996 self._autoPublish(anObj, theName, "edge")
3999 ## Create an edge from specified wire.
4000 # @param theWire source Wire
4001 # @param theLinearTolerance linear tolerance value (default = 1e-07)
4002 # @param theAngularTolerance angular tolerance value (default = 1e-12)
4003 # @param theName Object name; when specified, this parameter is used
4004 # for result publication in the study. Otherwise, if automatic
4005 # publication is switched on, default value is used for result name.
4007 # @return New GEOM.GEOM_Object, containing the created edge.
4009 # @ref tui_creation_edge "Example"
4010 def MakeEdgeWire(self, theWire, theLinearTolerance = 1e-07, theAngularTolerance = 1e-12, theName=None):
4012 Create an edge from specified wire.
4016 theLinearTolerance linear tolerance value (default = 1e-07)
4017 theAngularTolerance angular tolerance value (default = 1e-12)
4018 theName Object name; when specified, this parameter is used
4019 for result publication in the study. Otherwise, if automatic
4020 publication is switched on, default value is used for result name.
4023 New GEOM.GEOM_Object, containing the created edge.
4025 # Example: see GEOM_TestAll.py
4026 anObj = self.ShapesOp.MakeEdgeWire(theWire, theLinearTolerance, theAngularTolerance)
4027 RaiseIfFailed("MakeEdgeWire", self.ShapesOp)
4028 self._autoPublish(anObj, theName, "edge")
4031 ## Create a wire from the set of edges and wires.
4032 # @param theEdgesAndWires List of edges and/or wires.
4033 # @param theTolerance Maximum distance between vertices, that will be merged.
4034 # Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion())
4035 # @param theName Object name; when specified, this parameter is used
4036 # for result publication in the study. Otherwise, if automatic
4037 # publication is switched on, default value is used for result name.
4039 # @return New GEOM.GEOM_Object, containing the created wire.
4041 # @ref tui_creation_wire "Example"
4042 def MakeWire(self, theEdgesAndWires, theTolerance = 1e-07, theName=None):
4044 Create a wire from the set of edges and wires.
4047 theEdgesAndWires List of edges and/or wires.
4048 theTolerance Maximum distance between vertices, that will be merged.
4049 Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion()).
4050 theName Object name; when specified, this parameter is used
4051 for result publication in the study. Otherwise, if automatic
4052 publication is switched on, default value is used for result name.
4055 New GEOM.GEOM_Object, containing the created wire.
4057 # Example: see GEOM_TestAll.py
4058 anObj = self.ShapesOp.MakeWire(theEdgesAndWires, theTolerance)
4059 RaiseIfFailed("MakeWire", self.ShapesOp)
4060 self._autoPublish(anObj, theName, "wire")
4063 ## Create a face on the given wire.
4064 # @param theWire closed Wire or Edge to build the face on.
4065 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4066 # If the tolerance of the obtained planar face is less
4067 # than 1e-06, this face will be returned, otherwise the
4068 # algorithm tries to build any suitable face on the given
4069 # wire and prints a warning message.
4070 # @param theName Object name; when specified, this parameter is used
4071 # for result publication in the study. Otherwise, if automatic
4072 # publication is switched on, default value is used for result name.
4074 # @return New GEOM.GEOM_Object, containing the created face.
4076 # @ref tui_creation_face "Example"
4077 def MakeFace(self, theWire, isPlanarWanted, theName=None):
4079 Create a face on the given wire.
4082 theWire closed Wire or Edge to build the face on.
4083 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4084 If the tolerance of the obtained planar face is less
4085 than 1e-06, this face will be returned, otherwise the
4086 algorithm tries to build any suitable face on the given
4087 wire and prints a warning message.
4088 theName Object name; when specified, this parameter is used
4089 for result publication in the study. Otherwise, if automatic
4090 publication is switched on, default value is used for result name.
4093 New GEOM.GEOM_Object, containing the created face.
4095 # Example: see GEOM_TestAll.py
4096 anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted)
4097 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4098 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4100 RaiseIfFailed("MakeFace", self.ShapesOp)
4101 self._autoPublish(anObj, theName, "face")
4104 ## Create a face on the given wires set.
4105 # @param theWires List of closed wires or edges to build the face on.
4106 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4107 # If the tolerance of the obtained planar face is less
4108 # than 1e-06, this face will be returned, otherwise the
4109 # algorithm tries to build any suitable face on the given
4110 # wire and prints a warning message.
4111 # @param theName Object name; when specified, this parameter is used
4112 # for result publication in the study. Otherwise, if automatic
4113 # publication is switched on, default value is used for result name.
4115 # @return New GEOM.GEOM_Object, containing the created face.
4117 # @ref tui_creation_face "Example"
4118 def MakeFaceWires(self, theWires, isPlanarWanted, theName=None):
4120 Create a face on the given wires set.
4123 theWires List of closed wires or edges to build the face on.
4124 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4125 If the tolerance of the obtained planar face is less
4126 than 1e-06, this face will be returned, otherwise the
4127 algorithm tries to build any suitable face on the given
4128 wire and prints a warning message.
4129 theName Object name; when specified, this parameter is used
4130 for result publication in the study. Otherwise, if automatic
4131 publication is switched on, default value is used for result name.
4134 New GEOM.GEOM_Object, containing the created face.
4136 # Example: see GEOM_TestAll.py
4137 anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted)
4138 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4139 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4141 RaiseIfFailed("MakeFaceWires", self.ShapesOp)
4142 self._autoPublish(anObj, theName, "face")
4145 ## See MakeFaceWires() method for details.
4147 # @ref tui_creation_face "Example 1"
4148 # \n @ref swig_MakeFaces "Example 2"
4149 def MakeFaces(self, theWires, isPlanarWanted, theName=None):
4151 See geompy.MakeFaceWires() method for details.
4153 # Example: see GEOM_TestOthers.py
4154 # note: auto-publishing is done in self.MakeFaceWires()
4155 anObj = self.MakeFaceWires(theWires, isPlanarWanted, theName)
4158 ## Create a shell from the set of faces and shells.
4159 # @param theFacesAndShells List of faces and/or shells.
4160 # @param theName Object name; when specified, this parameter is used
4161 # for result publication in the study. Otherwise, if automatic
4162 # publication is switched on, default value is used for result name.
4164 # @return New GEOM.GEOM_Object, containing the created shell.
4166 # @ref tui_creation_shell "Example"
4167 def MakeShell(self, theFacesAndShells, theName=None):
4169 Create a shell from the set of faces and shells.
4172 theFacesAndShells List of faces and/or shells.
4173 theName Object name; when specified, this parameter is used
4174 for result publication in the study. Otherwise, if automatic
4175 publication is switched on, default value is used for result name.
4178 New GEOM.GEOM_Object, containing the created shell.
4180 # Example: see GEOM_TestAll.py
4181 anObj = self.ShapesOp.MakeShell(theFacesAndShells)
4182 RaiseIfFailed("MakeShell", self.ShapesOp)
4183 self._autoPublish(anObj, theName, "shell")
4186 ## Create a solid, bounded by the given shells.
4187 # @param theShells Sequence of bounding shells.
4188 # @param theName Object name; when specified, this parameter is used
4189 # for result publication in the study. Otherwise, if automatic
4190 # publication is switched on, default value is used for result name.
4192 # @return New GEOM.GEOM_Object, containing the created solid.
4194 # @ref tui_creation_solid "Example"
4195 def MakeSolid(self, theShells, theName=None):
4197 Create a solid, bounded by the given shells.
4200 theShells Sequence of bounding shells.
4201 theName Object name; when specified, this parameter is used
4202 for result publication in the study. Otherwise, if automatic
4203 publication is switched on, default value is used for result name.
4206 New GEOM.GEOM_Object, containing the created solid.
4208 # Example: see GEOM_TestAll.py
4209 if len(theShells) == 1:
4210 descr = self.MeasuOp.IsGoodForSolid(theShells[0])
4212 # raise RuntimeError, "MakeSolidShells : " + descr
4213 if descr == "WRN_SHAPE_UNCLOSED":
4214 raise RuntimeError, "MakeSolidShells : Unable to create solid from unclosed shape"
4215 anObj = self.ShapesOp.MakeSolidShells(theShells)
4216 RaiseIfFailed("MakeSolidShells", self.ShapesOp)
4217 self._autoPublish(anObj, theName, "solid")
4220 ## Create a compound of the given shapes.
4221 # @param theShapes List of shapes to put in compound.
4222 # @param theName Object name; when specified, this parameter is used
4223 # for result publication in the study. Otherwise, if automatic
4224 # publication is switched on, default value is used for result name.
4226 # @return New GEOM.GEOM_Object, containing the created compound.
4228 # @ref tui_creation_compound "Example"
4229 def MakeCompound(self, theShapes, theName=None):
4231 Create a compound of the given shapes.
4234 theShapes List of shapes to put in compound.
4235 theName Object name; when specified, this parameter is used
4236 for result publication in the study. Otherwise, if automatic
4237 publication is switched on, default value is used for result name.
4240 New GEOM.GEOM_Object, containing the created compound.
4242 # Example: see GEOM_TestAll.py
4243 anObj = self.ShapesOp.MakeCompound(theShapes)
4244 RaiseIfFailed("MakeCompound", self.ShapesOp)
4245 self._autoPublish(anObj, theName, "compound")
4248 # end of l3_advanced
4251 ## @addtogroup l2_measure
4254 ## Gives quantity of faces in the given shape.
4255 # @param theShape Shape to count faces of.
4256 # @return Quantity of faces.
4258 # @ref swig_NumberOf "Example"
4259 def NumberOfFaces(self, theShape):
4261 Gives quantity of faces in the given shape.
4264 theShape Shape to count faces of.
4269 # Example: see GEOM_TestOthers.py
4270 nb_faces = self.ShapesOp.NumberOfFaces(theShape)
4271 RaiseIfFailed("NumberOfFaces", self.ShapesOp)
4274 ## Gives quantity of edges in the given shape.
4275 # @param theShape Shape to count edges of.
4276 # @return Quantity of edges.
4278 # @ref swig_NumberOf "Example"
4279 def NumberOfEdges(self, theShape):
4281 Gives quantity of edges in the given shape.
4284 theShape Shape to count edges of.
4289 # Example: see GEOM_TestOthers.py
4290 nb_edges = self.ShapesOp.NumberOfEdges(theShape)
4291 RaiseIfFailed("NumberOfEdges", self.ShapesOp)
4294 ## Gives quantity of sub-shapes of type theShapeType in the given shape.
4295 # @param theShape Shape to count sub-shapes of.
4296 # @param theShapeType Type of sub-shapes to count (see ShapeType())
4297 # @return Quantity of sub-shapes of given type.
4299 # @ref swig_NumberOf "Example"
4300 def NumberOfSubShapes(self, theShape, theShapeType):
4302 Gives quantity of sub-shapes of type theShapeType in the given shape.
4305 theShape Shape to count sub-shapes of.
4306 theShapeType Type of sub-shapes to count (see geompy.ShapeType)
4309 Quantity of sub-shapes of given type.
4311 # Example: see GEOM_TestOthers.py
4312 nb_ss = self.ShapesOp.NumberOfSubShapes(theShape, theShapeType)
4313 RaiseIfFailed("NumberOfSubShapes", self.ShapesOp)
4316 ## Gives quantity of solids in the given shape.
4317 # @param theShape Shape to count solids in.
4318 # @return Quantity of solids.
4320 # @ref swig_NumberOf "Example"
4321 def NumberOfSolids(self, theShape):
4323 Gives quantity of solids in the given shape.
4326 theShape Shape to count solids in.
4331 # Example: see GEOM_TestOthers.py
4332 nb_solids = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["SOLID"])
4333 RaiseIfFailed("NumberOfSolids", self.ShapesOp)
4339 ## @addtogroup l3_healing
4342 ## Reverses an orientation the given shape.
4343 # @param theShape Shape to be reversed.
4344 # @param theName Object name; when specified, this parameter is used
4345 # for result publication in the study. Otherwise, if automatic
4346 # publication is switched on, default value is used for result name.
4348 # @return The reversed copy of theShape.
4350 # @ref swig_ChangeOrientation "Example"
4351 def ChangeOrientation(self, theShape, theName=None):
4353 Reverses an orientation the given shape.
4356 theShape Shape to be reversed.
4357 theName Object name; when specified, this parameter is used
4358 for result publication in the study. Otherwise, if automatic
4359 publication is switched on, default value is used for result name.
4362 The reversed copy of theShape.
4364 # Example: see GEOM_TestAll.py
4365 anObj = self.ShapesOp.ChangeOrientation(theShape)
4366 RaiseIfFailed("ChangeOrientation", self.ShapesOp)
4367 self._autoPublish(anObj, theName, "reversed")
4370 ## See ChangeOrientation() method for details.
4372 # @ref swig_OrientationChange "Example"
4373 def OrientationChange(self, theShape, theName=None):
4375 See geompy.ChangeOrientation method for details.
4377 # Example: see GEOM_TestOthers.py
4378 # note: auto-publishing is done in self.ChangeOrientation()
4379 anObj = self.ChangeOrientation(theShape, theName)
4385 ## @addtogroup l4_obtain
4388 ## Retrieve all free faces from the given shape.
4389 # Free face is a face, which is not shared between two shells of the shape.
4390 # @param theShape Shape to find free faces in.
4391 # @return List of IDs of all free faces, contained in theShape.
4393 # @ref tui_measurement_tools_page "Example"
4394 def GetFreeFacesIDs(self,theShape):
4396 Retrieve all free faces from the given shape.
4397 Free face is a face, which is not shared between two shells of the shape.
4400 theShape Shape to find free faces in.
4403 List of IDs of all free faces, contained in theShape.
4405 # Example: see GEOM_TestOthers.py
4406 anIDs = self.ShapesOp.GetFreeFacesIDs(theShape)
4407 RaiseIfFailed("GetFreeFacesIDs", self.ShapesOp)
4410 ## Get all sub-shapes of theShape1 of the given type, shared with theShape2.
4411 # @param theShape1 Shape to find sub-shapes in.
4412 # @param theShape2 Shape to find shared sub-shapes with.
4413 # @param theShapeType Type of sub-shapes to be retrieved.
4414 # @param theName Object name; when specified, this parameter is used
4415 # for result publication in the study. Otherwise, if automatic
4416 # publication is switched on, default value is used for result name.
4418 # @return List of sub-shapes of theShape1, shared with theShape2.
4420 # @ref swig_GetSharedShapes "Example"
4421 def GetSharedShapes(self, theShape1, theShape2, theShapeType, theName=None):
4423 Get all sub-shapes of theShape1 of the given type, shared with theShape2.
4426 theShape1 Shape to find sub-shapes in.
4427 theShape2 Shape to find shared sub-shapes with.
4428 theShapeType Type of sub-shapes to be retrieved.
4429 theName Object name; when specified, this parameter is used
4430 for result publication in the study. Otherwise, if automatic
4431 publication is switched on, default value is used for result name.
4434 List of sub-shapes of theShape1, shared with theShape2.
4436 # Example: see GEOM_TestOthers.py
4437 aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType)
4438 RaiseIfFailed("GetSharedShapes", self.ShapesOp)
4439 self._autoPublish(aList, theName, "shared")
4442 ## Get all sub-shapes, shared by all shapes in the list <VAR>theShapes</VAR>.
4443 # @param theShapes Shapes to find common sub-shapes of.
4444 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4445 # @param theName Object name; when specified, this parameter is used
4446 # for result publication in the study. Otherwise, if automatic
4447 # publication is switched on, default value is used for result name.
4449 # @return List of objects, that are sub-shapes of all given shapes.
4451 # @ref swig_GetSharedShapes "Example"
4452 def GetSharedShapesMulti(self, theShapes, theShapeType, theName=None):
4454 Get all sub-shapes, shared by all shapes in the list theShapes.
4457 theShapes Shapes to find common sub-shapes of.
4458 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4459 theName Object name; when specified, this parameter is used
4460 for result publication in the study. Otherwise, if automatic
4461 publication is switched on, default value is used for result name.
4464 List of GEOM.GEOM_Object, that are sub-shapes of all given shapes.
4466 # Example: see GEOM_TestOthers.py
4467 aList = self.ShapesOp.GetSharedShapesMulti(theShapes, theShapeType)
4468 RaiseIfFailed("GetSharedShapesMulti", self.ShapesOp)
4469 self._autoPublish(aList, theName, "shared")
4472 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4473 # situated relatively the specified plane by the certain way,
4474 # defined through <VAR>theState</VAR> parameter.
4475 # @param theShape Shape to find sub-shapes of.
4476 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4477 # @param theAx1 Vector (or line, or linear edge), specifying normal
4478 # direction and location of the plane to find shapes on.
4479 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4480 # @param theName Object name; when specified, this parameter is used
4481 # for result publication in the study. Otherwise, if automatic
4482 # publication is switched on, default value is used for result name.
4484 # @return List of all found sub-shapes.
4486 # @ref swig_GetShapesOnPlane "Example"
4487 def GetShapesOnPlane(self, theShape, theShapeType, theAx1, theState, theName=None):
4489 Find in theShape all sub-shapes of type theShapeType,
4490 situated relatively the specified plane by the certain way,
4491 defined through theState parameter.
4494 theShape Shape to find sub-shapes of.
4495 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4496 theAx1 Vector (or line, or linear edge), specifying normal
4497 direction and location of the plane to find shapes on.
4498 theState The state of the sub-shapes to find (see GEOM::shape_state)
4499 theName Object name; when specified, this parameter is used
4500 for result publication in the study. Otherwise, if automatic
4501 publication is switched on, default value is used for result name.
4504 List of all found sub-shapes.
4506 # Example: see GEOM_TestOthers.py
4507 aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState)
4508 RaiseIfFailed("GetShapesOnPlane", self.ShapesOp)
4509 self._autoPublish(aList, theName, "shapeOnPlane")
4512 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4513 # situated relatively the specified plane by the certain way,
4514 # defined through <VAR>theState</VAR> parameter.
4515 # @param theShape Shape to find sub-shapes of.
4516 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4517 # @param theAx1 Vector (or line, or linear edge), specifying normal
4518 # direction and location of the plane to find shapes on.
4519 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4521 # @return List of all found sub-shapes indices.
4523 # @ref swig_GetShapesOnPlaneIDs "Example"
4524 def GetShapesOnPlaneIDs(self, theShape, theShapeType, theAx1, theState):
4526 Find in theShape all sub-shapes of type theShapeType,
4527 situated relatively the specified plane by the certain way,
4528 defined through theState parameter.
4531 theShape Shape to find sub-shapes of.
4532 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4533 theAx1 Vector (or line, or linear edge), specifying normal
4534 direction and location of the plane to find shapes on.
4535 theState The state of the sub-shapes to find (see GEOM::shape_state)
4538 List of all found sub-shapes indices.
4540 # Example: see GEOM_TestOthers.py
4541 aList = self.ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState)
4542 RaiseIfFailed("GetShapesOnPlaneIDs", self.ShapesOp)
4545 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4546 # situated relatively the specified plane by the certain way,
4547 # defined through <VAR>theState</VAR> parameter.
4548 # @param theShape Shape to find sub-shapes of.
4549 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4550 # @param theAx1 Vector (or line, or linear edge), specifying normal
4551 # direction of the plane to find shapes on.
4552 # @param thePnt Point specifying location of the plane to find shapes on.
4553 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4554 # @param theName Object name; when specified, this parameter is used
4555 # for result publication in the study. Otherwise, if automatic
4556 # publication is switched on, default value is used for result name.
4558 # @return List of all found sub-shapes.
4560 # @ref swig_GetShapesOnPlaneWithLocation "Example"
4561 def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState, theName=None):
4563 Find in theShape all sub-shapes of type theShapeType,
4564 situated relatively the specified plane by the certain way,
4565 defined through theState parameter.
4568 theShape Shape to find sub-shapes of.
4569 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4570 theAx1 Vector (or line, or linear edge), specifying normal
4571 direction and location of the plane to find shapes on.
4572 thePnt Point specifying location of the plane to find shapes on.
4573 theState The state of the sub-shapes to find (see GEOM::shape_state)
4574 theName Object name; when specified, this parameter is used
4575 for result publication in the study. Otherwise, if automatic
4576 publication is switched on, default value is used for result name.
4579 List of all found sub-shapes.
4581 # Example: see GEOM_TestOthers.py
4582 aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType,
4583 theAx1, thePnt, theState)
4584 RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp)
4585 self._autoPublish(aList, theName, "shapeOnPlane")
4588 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4589 # situated relatively the specified plane by the certain way,
4590 # defined through <VAR>theState</VAR> parameter.
4591 # @param theShape Shape to find sub-shapes of.
4592 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4593 # @param theAx1 Vector (or line, or linear edge), specifying normal
4594 # direction of the plane to find shapes on.
4595 # @param thePnt Point specifying location of the plane to find shapes on.
4596 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4598 # @return List of all found sub-shapes indices.
4600 # @ref swig_GetShapesOnPlaneWithLocationIDs "Example"
4601 def GetShapesOnPlaneWithLocationIDs(self, theShape, theShapeType, theAx1, thePnt, theState):
4603 Find in theShape all sub-shapes of type theShapeType,
4604 situated relatively the specified plane by the certain way,
4605 defined through theState parameter.
4608 theShape Shape to find sub-shapes of.
4609 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4610 theAx1 Vector (or line, or linear edge), specifying normal
4611 direction and location of the plane to find shapes on.
4612 thePnt Point specifying location of the plane to find shapes on.
4613 theState The state of the sub-shapes to find (see GEOM::shape_state)
4616 List of all found sub-shapes indices.
4618 # Example: see GEOM_TestOthers.py
4619 aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType,
4620 theAx1, thePnt, theState)
4621 RaiseIfFailed("GetShapesOnPlaneWithLocationIDs", self.ShapesOp)
4624 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4625 # the specified cylinder by the certain way, defined through \a theState parameter.
4626 # @param theShape Shape to find sub-shapes of.
4627 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4628 # @param theAxis Vector (or line, or linear edge), specifying
4629 # axis of the cylinder to find shapes on.
4630 # @param theRadius Radius of the cylinder to find shapes on.
4631 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4632 # @param theName Object name; when specified, this parameter is used
4633 # for result publication in the study. Otherwise, if automatic
4634 # publication is switched on, default value is used for result name.
4636 # @return List of all found sub-shapes.
4638 # @ref swig_GetShapesOnCylinder "Example"
4639 def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState, theName=None):
4641 Find in theShape all sub-shapes of type theShapeType, situated relatively
4642 the specified cylinder by the certain way, defined through theState parameter.
4645 theShape Shape to find sub-shapes of.
4646 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4647 theAxis Vector (or line, or linear edge), specifying
4648 axis of the cylinder to find shapes on.
4649 theRadius Radius of the cylinder to find shapes on.
4650 theState The state of the sub-shapes to find (see GEOM::shape_state)
4651 theName Object name; when specified, this parameter is used
4652 for result publication in the study. Otherwise, if automatic
4653 publication is switched on, default value is used for result name.
4656 List of all found sub-shapes.
4658 # Example: see GEOM_TestOthers.py
4659 aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState)
4660 RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp)
4661 self._autoPublish(aList, theName, "shapeOnCylinder")
4664 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4665 # the specified cylinder by the certain way, defined through \a theState parameter.
4666 # @param theShape Shape to find sub-shapes of.
4667 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4668 # @param theAxis Vector (or line, or linear edge), specifying
4669 # axis of the cylinder to find shapes on.
4670 # @param theRadius Radius of the cylinder to find shapes on.
4671 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4673 # @return List of all found sub-shapes indices.
4675 # @ref swig_GetShapesOnCylinderIDs "Example"
4676 def GetShapesOnCylinderIDs(self, theShape, theShapeType, theAxis, theRadius, theState):
4678 Find in theShape all sub-shapes of type theShapeType, situated relatively
4679 the specified cylinder by the certain way, defined through theState parameter.
4682 theShape Shape to find sub-shapes of.
4683 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4684 theAxis Vector (or line, or linear edge), specifying
4685 axis of the cylinder to find shapes on.
4686 theRadius Radius of the cylinder to find shapes on.
4687 theState The state of the sub-shapes to find (see GEOM::shape_state)
4690 List of all found sub-shapes indices.
4692 # Example: see GEOM_TestOthers.py
4693 aList = self.ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState)
4694 RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp)
4697 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4698 # the specified cylinder by the certain way, defined through \a theState parameter.
4699 # @param theShape Shape to find sub-shapes of.
4700 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4701 # @param theAxis Vector (or line, or linear edge), specifying
4702 # axis of the cylinder to find shapes on.
4703 # @param thePnt Point specifying location of the bottom of the cylinder.
4704 # @param theRadius Radius of the cylinder to find shapes on.
4705 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4706 # @param theName Object name; when specified, this parameter is used
4707 # for result publication in the study. Otherwise, if automatic
4708 # publication is switched on, default value is used for result name.
4710 # @return List of all found sub-shapes.
4712 # @ref swig_GetShapesOnCylinderWithLocation "Example"
4713 def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState, theName=None):
4715 Find in theShape all sub-shapes of type theShapeType, situated relatively
4716 the specified cylinder by the certain way, defined through theState parameter.
4719 theShape Shape to find sub-shapes of.
4720 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4721 theAxis Vector (or line, or linear edge), specifying
4722 axis of the cylinder to find shapes on.
4723 theRadius Radius of the cylinder to find shapes on.
4724 theState The state of the sub-shapes to find (see GEOM::shape_state)
4725 theName Object name; when specified, this parameter is used
4726 for result publication in the study. Otherwise, if automatic
4727 publication is switched on, default value is used for result name.
4730 List of all found sub-shapes.
4732 # Example: see GEOM_TestOthers.py
4733 aList = self.ShapesOp.GetShapesOnCylinderWithLocation(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
4734 RaiseIfFailed("GetShapesOnCylinderWithLocation", self.ShapesOp)
4735 self._autoPublish(aList, theName, "shapeOnCylinder")
4738 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4739 # the specified cylinder by the certain way, defined through \a theState parameter.
4740 # @param theShape Shape to find sub-shapes of.
4741 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4742 # @param theAxis Vector (or line, or linear edge), specifying
4743 # axis of the cylinder to find shapes on.
4744 # @param thePnt Point specifying location of the bottom of the cylinder.
4745 # @param theRadius Radius of the cylinder to find shapes on.
4746 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4748 # @return List of all found sub-shapes indices
4750 # @ref swig_GetShapesOnCylinderWithLocationIDs "Example"
4751 def GetShapesOnCylinderWithLocationIDs(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
4753 Find in theShape all sub-shapes of type theShapeType, situated relatively
4754 the specified cylinder by the certain way, defined through theState parameter.
4757 theShape Shape to find sub-shapes of.
4758 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4759 theAxis Vector (or line, or linear edge), specifying
4760 axis of the cylinder to find shapes on.
4761 theRadius Radius of the cylinder to find shapes on.
4762 theState The state of the sub-shapes to find (see GEOM::shape_state)
4765 List of all found sub-shapes indices.
4767 # Example: see GEOM_TestOthers.py
4768 aList = self.ShapesOp.GetShapesOnCylinderWithLocationIDs(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
4769 RaiseIfFailed("GetShapesOnCylinderWithLocationIDs", self.ShapesOp)
4772 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4773 # the specified sphere by the certain way, defined through \a theState parameter.
4774 # @param theShape Shape to find sub-shapes of.
4775 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4776 # @param theCenter Point, specifying center of the sphere to find shapes on.
4777 # @param theRadius Radius of the sphere to find shapes on.
4778 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4779 # @param theName Object name; when specified, this parameter is used
4780 # for result publication in the study. Otherwise, if automatic
4781 # publication is switched on, default value is used for result name.
4783 # @return List of all found sub-shapes.
4785 # @ref swig_GetShapesOnSphere "Example"
4786 def GetShapesOnSphere(self, theShape, theShapeType, theCenter, theRadius, theState, theName=None):
4788 Find in theShape all sub-shapes of type theShapeType, situated relatively
4789 the specified sphere by the certain way, defined through theState parameter.
4792 theShape Shape to find sub-shapes of.
4793 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4794 theCenter Point, specifying center of the sphere to find shapes on.
4795 theRadius Radius of the sphere to find shapes on.
4796 theState The state of the sub-shapes to find (see GEOM::shape_state)
4797 theName Object name; when specified, this parameter is used
4798 for result publication in the study. Otherwise, if automatic
4799 publication is switched on, default value is used for result name.
4802 List of all found sub-shapes.
4804 # Example: see GEOM_TestOthers.py
4805 aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState)
4806 RaiseIfFailed("GetShapesOnSphere", self.ShapesOp)
4807 self._autoPublish(aList, theName, "shapeOnSphere")
4810 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4811 # the specified sphere by the certain way, defined through \a theState parameter.
4812 # @param theShape Shape to find sub-shapes of.
4813 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4814 # @param theCenter Point, specifying center of the sphere to find shapes on.
4815 # @param theRadius Radius of the sphere to find shapes on.
4816 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4818 # @return List of all found sub-shapes indices.
4820 # @ref swig_GetShapesOnSphereIDs "Example"
4821 def GetShapesOnSphereIDs(self, theShape, theShapeType, theCenter, theRadius, theState):
4823 Find in theShape all sub-shapes of type theShapeType, situated relatively
4824 the specified sphere by the certain way, defined through theState parameter.
4827 theShape Shape to find sub-shapes of.
4828 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4829 theCenter Point, specifying center of the sphere to find shapes on.
4830 theRadius Radius of the sphere to find shapes on.
4831 theState The state of the sub-shapes to find (see GEOM::shape_state)
4834 List of all found sub-shapes indices.
4836 # Example: see GEOM_TestOthers.py
4837 aList = self.ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState)
4838 RaiseIfFailed("GetShapesOnSphereIDs", self.ShapesOp)
4841 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4842 # the specified quadrangle by the certain way, defined through \a theState parameter.
4843 # @param theShape Shape to find sub-shapes of.
4844 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4845 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
4846 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
4847 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4848 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4849 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4850 # @param theName Object name; when specified, this parameter is used
4851 # for result publication in the study. Otherwise, if automatic
4852 # publication is switched on, default value is used for result name.
4854 # @return List of all found sub-shapes.
4856 # @ref swig_GetShapesOnQuadrangle "Example"
4857 def GetShapesOnQuadrangle(self, theShape, theShapeType,
4858 theTopLeftPoint, theTopRigthPoint,
4859 theBottomLeftPoint, theBottomRigthPoint, theState, theName=None):
4861 Find in theShape all sub-shapes of type theShapeType, situated relatively
4862 the specified quadrangle by the certain way, defined through theState parameter.
4865 theShape Shape to find sub-shapes of.
4866 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4867 theTopLeftPoint Point, specifying top left corner of a quadrangle
4868 theTopRigthPoint Point, specifying top right corner of a quadrangle
4869 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4870 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4871 theState The state of the sub-shapes to find (see GEOM::shape_state)
4872 theName Object name; when specified, this parameter is used
4873 for result publication in the study. Otherwise, if automatic
4874 publication is switched on, default value is used for result name.
4877 List of all found sub-shapes.
4879 # Example: see GEOM_TestOthers.py
4880 aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType,
4881 theTopLeftPoint, theTopRigthPoint,
4882 theBottomLeftPoint, theBottomRigthPoint, theState)
4883 RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp)
4884 self._autoPublish(aList, theName, "shapeOnQuadrangle")
4887 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4888 # the specified quadrangle by the certain way, defined through \a theState parameter.
4889 # @param theShape Shape to find sub-shapes of.
4890 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4891 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
4892 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
4893 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4894 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4895 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4897 # @return List of all found sub-shapes indices.
4899 # @ref swig_GetShapesOnQuadrangleIDs "Example"
4900 def GetShapesOnQuadrangleIDs(self, theShape, theShapeType,
4901 theTopLeftPoint, theTopRigthPoint,
4902 theBottomLeftPoint, theBottomRigthPoint, theState):
4904 Find in theShape all sub-shapes of type theShapeType, situated relatively
4905 the specified quadrangle by the certain way, defined through theState parameter.
4908 theShape Shape to find sub-shapes of.
4909 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4910 theTopLeftPoint Point, specifying top left corner of a quadrangle
4911 theTopRigthPoint Point, specifying top right corner of a quadrangle
4912 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4913 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4914 theState The state of the sub-shapes to find (see GEOM::shape_state)
4917 List of all found sub-shapes indices.
4920 # Example: see GEOM_TestOthers.py
4921 aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType,
4922 theTopLeftPoint, theTopRigthPoint,
4923 theBottomLeftPoint, theBottomRigthPoint, theState)
4924 RaiseIfFailed("GetShapesOnQuadrangleIDs", self.ShapesOp)
4927 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4928 # the specified \a theBox by the certain way, defined through \a theState parameter.
4929 # @param theBox Shape for relative comparing.
4930 # @param theShape Shape to find sub-shapes of.
4931 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4932 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4933 # @param theName Object name; when specified, this parameter is used
4934 # for result publication in the study. Otherwise, if automatic
4935 # publication is switched on, default value is used for result name.
4937 # @return List of all found sub-shapes.
4939 # @ref swig_GetShapesOnBox "Example"
4940 def GetShapesOnBox(self, theBox, theShape, theShapeType, theState, theName=None):
4942 Find in theShape all sub-shapes of type theShapeType, situated relatively
4943 the specified theBox by the certain way, defined through theState parameter.
4946 theBox Shape for relative comparing.
4947 theShape Shape to find sub-shapes of.
4948 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4949 theState The state of the sub-shapes to find (see GEOM::shape_state)
4950 theName Object name; when specified, this parameter is used
4951 for result publication in the study. Otherwise, if automatic
4952 publication is switched on, default value is used for result name.
4955 List of all found sub-shapes.
4957 # Example: see GEOM_TestOthers.py
4958 aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState)
4959 RaiseIfFailed("GetShapesOnBox", self.ShapesOp)
4960 self._autoPublish(aList, theName, "shapeOnBox")
4963 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4964 # the specified \a theBox by the certain way, defined through \a theState parameter.
4965 # @param theBox Shape for relative comparing.
4966 # @param theShape Shape to find sub-shapes of.
4967 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4968 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4970 # @return List of all found sub-shapes indices.
4972 # @ref swig_GetShapesOnBoxIDs "Example"
4973 def GetShapesOnBoxIDs(self, theBox, theShape, theShapeType, theState):
4975 Find in theShape all sub-shapes of type theShapeType, situated relatively
4976 the specified theBox by the certain way, defined through theState parameter.
4979 theBox Shape for relative comparing.
4980 theShape Shape to find sub-shapes of.
4981 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4982 theState The state of the sub-shapes to find (see GEOM::shape_state)
4985 List of all found sub-shapes indices.
4987 # Example: see GEOM_TestOthers.py
4988 aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState)
4989 RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp)
4992 ## Find in \a theShape all sub-shapes of type \a theShapeType,
4993 # situated relatively the specified \a theCheckShape by the
4994 # certain way, defined through \a theState parameter.
4995 # @param theCheckShape Shape for relative comparing. It must be a solid.
4996 # @param theShape Shape to find sub-shapes of.
4997 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4998 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4999 # @param theName Object name; when specified, this parameter is used
5000 # for result publication in the study. Otherwise, if automatic
5001 # publication is switched on, default value is used for result name.
5003 # @return List of all found sub-shapes.
5005 # @ref swig_GetShapesOnShape "Example"
5006 def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5008 Find in theShape all sub-shapes of type theShapeType,
5009 situated relatively the specified theCheckShape by the
5010 certain way, defined through theState parameter.
5013 theCheckShape Shape for relative comparing. It must be a solid.
5014 theShape Shape to find sub-shapes of.
5015 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5016 theState The state of the sub-shapes to find (see GEOM::shape_state)
5017 theName Object name; when specified, this parameter is used
5018 for result publication in the study. Otherwise, if automatic
5019 publication is switched on, default value is used for result name.
5022 List of all found sub-shapes.
5024 # Example: see GEOM_TestOthers.py
5025 aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape,
5026 theShapeType, theState)
5027 RaiseIfFailed("GetShapesOnShape", self.ShapesOp)
5028 self._autoPublish(aList, theName, "shapeOnShape")
5031 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5032 # situated relatively the specified \a theCheckShape by the
5033 # certain way, defined through \a theState parameter.
5034 # @param theCheckShape Shape for relative comparing. It must be a solid.
5035 # @param theShape Shape to find sub-shapes of.
5036 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5037 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5038 # @param theName Object name; when specified, this parameter is used
5039 # for result publication in the study. Otherwise, if automatic
5040 # publication is switched on, default value is used for result name.
5042 # @return All found sub-shapes as compound.
5044 # @ref swig_GetShapesOnShapeAsCompound "Example"
5045 def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5047 Find in theShape all sub-shapes of type theShapeType,
5048 situated relatively the specified theCheckShape by the
5049 certain way, defined through theState parameter.
5052 theCheckShape Shape for relative comparing. It must be a solid.
5053 theShape Shape to find sub-shapes of.
5054 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5055 theState The state of the sub-shapes to find (see GEOM::shape_state)
5056 theName Object name; when specified, this parameter is used
5057 for result publication in the study. Otherwise, if automatic
5058 publication is switched on, default value is used for result name.
5061 All found sub-shapes as compound.
5063 # Example: see GEOM_TestOthers.py
5064 anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape,
5065 theShapeType, theState)
5066 RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp)
5067 self._autoPublish(anObj, theName, "shapeOnShape")
5070 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5071 # situated relatively the specified \a theCheckShape by the
5072 # certain way, defined through \a theState parameter.
5073 # @param theCheckShape Shape for relative comparing. It must be a solid.
5074 # @param theShape Shape to find sub-shapes of.
5075 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5076 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5078 # @return List of all found sub-shapes indices.
5080 # @ref swig_GetShapesOnShapeIDs "Example"
5081 def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState):
5083 Find in theShape all sub-shapes of type theShapeType,
5084 situated relatively the specified theCheckShape by the
5085 certain way, defined through theState parameter.
5088 theCheckShape Shape for relative comparing. It must be a solid.
5089 theShape Shape to find sub-shapes of.
5090 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5091 theState The state of the sub-shapes to find (see GEOM::shape_state)
5094 List of all found sub-shapes indices.
5096 # Example: see GEOM_TestOthers.py
5097 aList = self.ShapesOp.GetShapesOnShapeIDs(theCheckShape, theShape,
5098 theShapeType, theState)
5099 RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp)
5102 ## Get sub-shape(s) of theShapeWhere, which are
5103 # coincident with \a theShapeWhat or could be a part of it.
5104 # @param theShapeWhere Shape to find sub-shapes of.
5105 # @param theShapeWhat Shape, specifying what to find.
5106 # @param isNewImplementation implementation of GetInPlace functionality
5107 # (default = False, old alghorithm based on shape properties)
5108 # @param theName Object name; when specified, this parameter is used
5109 # for result publication in the study. Otherwise, if automatic
5110 # publication is switched on, default value is used for result name.
5112 # @return Group of all found sub-shapes or a single found sub-shape.
5114 # @note This function has a restriction on argument shapes.
5115 # If \a theShapeWhere has curved parts with significantly
5116 # outstanding centres (i.e. the mass centre of a part is closer to
5117 # \a theShapeWhat than to the part), such parts will not be found.
5118 # @image html get_in_place_lost_part.png
5120 # @ref swig_GetInPlace "Example"
5121 def GetInPlace(self, theShapeWhere, theShapeWhat, isNewImplementation = False, theName=None):
5123 Get sub-shape(s) of theShapeWhere, which are
5124 coincident with theShapeWhat or could be a part of it.
5127 theShapeWhere Shape to find sub-shapes of.
5128 theShapeWhat Shape, specifying what to find.
5129 isNewImplementation Implementation of GetInPlace functionality
5130 (default = False, old alghorithm based on shape properties)
5131 theName Object name; when specified, this parameter is used
5132 for result publication in the study. Otherwise, if automatic
5133 publication is switched on, default value is used for result name.
5136 Group of all found sub-shapes or a single found sub-shape.
5140 This function has a restriction on argument shapes.
5141 If theShapeWhere has curved parts with significantly
5142 outstanding centres (i.e. the mass centre of a part is closer to
5143 theShapeWhat than to the part), such parts will not be found.
5145 # Example: see GEOM_TestOthers.py
5147 if isNewImplementation:
5148 anObj = self.ShapesOp.GetInPlace(theShapeWhere, theShapeWhat)
5150 anObj = self.ShapesOp.GetInPlaceOld(theShapeWhere, theShapeWhat)
5152 RaiseIfFailed("GetInPlace", self.ShapesOp)
5153 self._autoPublish(anObj, theName, "inplace")
5156 ## Get sub-shape(s) of \a theShapeWhere, which are
5157 # coincident with \a theShapeWhat or could be a part of it.
5159 # Implementation of this method is based on a saved history of an operation,
5160 # produced \a theShapeWhere. The \a theShapeWhat must be among this operation's
5161 # arguments (an argument shape or a sub-shape of an argument shape).
5162 # The operation could be the Partition or one of boolean operations,
5163 # performed on simple shapes (not on compounds).
5165 # @param theShapeWhere Shape to find sub-shapes of.
5166 # @param theShapeWhat Shape, specifying what to find (must be in the
5167 # building history of the ShapeWhere).
5168 # @param theName Object name; when specified, this parameter is used
5169 # for result publication in the study. Otherwise, if automatic
5170 # publication is switched on, default value is used for result name.
5172 # @return Group of all found sub-shapes or a single found sub-shape.
5174 # @ref swig_GetInPlace "Example"
5175 def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat, theName=None):
5177 Implementation of this method is based on a saved history of an operation,
5178 produced theShapeWhere. The theShapeWhat must be among this operation's
5179 arguments (an argument shape or a sub-shape of an argument shape).
5180 The operation could be the Partition or one of boolean operations,
5181 performed on simple shapes (not on compounds).
5184 theShapeWhere Shape to find sub-shapes of.
5185 theShapeWhat Shape, specifying what to find (must be in the
5186 building history of the ShapeWhere).
5187 theName Object name; when specified, this parameter is used
5188 for result publication in the study. Otherwise, if automatic
5189 publication is switched on, default value is used for result name.
5192 Group of all found sub-shapes or a single found sub-shape.
5194 # Example: see GEOM_TestOthers.py
5195 anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)
5196 RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp)
5197 self._autoPublish(anObj, theName, "inplace")
5200 ## Get sub-shape of theShapeWhere, which is
5201 # equal to \a theShapeWhat.
5202 # @param theShapeWhere Shape to find sub-shape of.
5203 # @param theShapeWhat Shape, specifying what to find.
5204 # @param theName Object name; when specified, this parameter is used
5205 # for result publication in the study. Otherwise, if automatic
5206 # publication is switched on, default value is used for result name.
5208 # @return New GEOM.GEOM_Object for found sub-shape.
5210 # @ref swig_GetSame "Example"
5211 def GetSame(self, theShapeWhere, theShapeWhat, theName=None):
5213 Get sub-shape of theShapeWhere, which is
5214 equal to theShapeWhat.
5217 theShapeWhere Shape to find sub-shape of.
5218 theShapeWhat Shape, specifying what to find.
5219 theName Object name; when specified, this parameter is used
5220 for result publication in the study. Otherwise, if automatic
5221 publication is switched on, default value is used for result name.
5224 New GEOM.GEOM_Object for found sub-shape.
5226 anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat)
5227 RaiseIfFailed("GetSame", self.ShapesOp)
5228 self._autoPublish(anObj, theName, "sameShape")
5232 ## Get sub-shape indices of theShapeWhere, which is
5233 # equal to \a theShapeWhat.
5234 # @param theShapeWhere Shape to find sub-shape of.
5235 # @param theShapeWhat Shape, specifying what to find.
5236 # @return List of all found sub-shapes indices.
5238 # @ref swig_GetSame "Example"
5239 def GetSameIDs(self, theShapeWhere, theShapeWhat):
5241 Get sub-shape indices of theShapeWhere, which is
5242 equal to theShapeWhat.
5245 theShapeWhere Shape to find sub-shape of.
5246 theShapeWhat Shape, specifying what to find.
5249 List of all found sub-shapes indices.
5251 anObj = self.ShapesOp.GetSameIDs(theShapeWhere, theShapeWhat)
5252 RaiseIfFailed("GetSameIDs", self.ShapesOp)
5259 ## @addtogroup l4_access
5262 ## Obtain a composite sub-shape of <VAR>aShape</VAR>, composed from sub-shapes
5263 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
5264 # @param aShape Shape to get sub-shape of.
5265 # @param ListOfID List of sub-shapes indices.
5266 # @param theName Object name; when specified, this parameter is used
5267 # for result publication in the study. Otherwise, if automatic
5268 # publication is switched on, default value is used for result name.
5270 # @return Found sub-shape.
5272 # @ref swig_all_decompose "Example"
5273 def GetSubShape(self, aShape, ListOfID, theName=None):
5275 Obtain a composite sub-shape of aShape, composed from sub-shapes
5276 of aShape, selected by their unique IDs inside aShape
5279 aShape Shape to get sub-shape of.
5280 ListOfID List of sub-shapes indices.
5281 theName Object name; when specified, this parameter is used
5282 for result publication in the study. Otherwise, if automatic
5283 publication is switched on, default value is used for result name.
5288 # Example: see GEOM_TestAll.py
5289 anObj = self.AddSubShape(aShape,ListOfID)
5290 self._autoPublish(anObj, theName, "subshape")
5293 ## Obtain unique ID of sub-shape <VAR>aSubShape</VAR> inside <VAR>aShape</VAR>
5294 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
5295 # @param aShape Shape to get sub-shape of.
5296 # @param aSubShape Sub-shapes of aShape.
5297 # @return ID of found sub-shape.
5299 # @ref swig_all_decompose "Example"
5300 def GetSubShapeID(self, aShape, aSubShape):
5302 Obtain unique ID of sub-shape aSubShape inside aShape
5303 of aShape, selected by their unique IDs inside aShape
5306 aShape Shape to get sub-shape of.
5307 aSubShape Sub-shapes of aShape.
5310 ID of found sub-shape.
5312 # Example: see GEOM_TestAll.py
5313 anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape)
5314 RaiseIfFailed("GetSubShapeIndex", self.LocalOp)
5317 ## Obtain unique IDs of sub-shapes <VAR>aSubShapes</VAR> inside <VAR>aShape</VAR>
5318 # This function is provided for performance purpose. The complexity is O(n) with n
5319 # the number of subobjects of aShape
5320 # @param aShape Shape to get sub-shape of.
5321 # @param aSubShapes Sub-shapes of aShape.
5322 # @return list of IDs of found sub-shapes.
5324 # @ref swig_all_decompose "Example"
5325 def GetSubShapesIDs(self, aShape, aSubShapes):
5327 Obtain a list of IDs of sub-shapes aSubShapes inside aShape
5328 This function is provided for performance purpose. The complexity is O(n) with n
5329 the number of subobjects of aShape
5332 aShape Shape to get sub-shape of.
5333 aSubShapes Sub-shapes of aShape.
5336 List of IDs of found sub-shape.
5338 # Example: see GEOM_TestAll.py
5339 anIDs = self.ShapesOp.GetSubShapesIndices(aShape, aSubShapes)
5340 RaiseIfFailed("GetSubShapesIndices", self.ShapesOp)
5346 ## @addtogroup l4_decompose
5349 ## Get all sub-shapes and groups of \a theShape,
5350 # that were created already by any other methods.
5351 # @param theShape Any shape.
5352 # @param theGroupsOnly If this parameter is TRUE, only groups will be
5353 # returned, else all found sub-shapes and groups.
5354 # @return List of existing sub-objects of \a theShape.
5356 # @ref swig_all_decompose "Example"
5357 def GetExistingSubObjects(self, theShape, theGroupsOnly = False):
5359 Get all sub-shapes and groups of theShape,
5360 that were created already by any other methods.
5364 theGroupsOnly If this parameter is TRUE, only groups will be
5365 returned, else all found sub-shapes and groups.
5368 List of existing sub-objects of theShape.
5370 # Example: see GEOM_TestAll.py
5371 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, theGroupsOnly)
5372 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
5375 ## Get all groups of \a theShape,
5376 # that were created already by any other methods.
5377 # @param theShape Any shape.
5378 # @return List of existing groups of \a theShape.
5380 # @ref swig_all_decompose "Example"
5381 def GetGroups(self, theShape):
5383 Get all groups of theShape,
5384 that were created already by any other methods.
5390 List of existing groups of theShape.
5392 # Example: see GEOM_TestAll.py
5393 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, True)
5394 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
5397 ## Explode a shape on sub-shapes of a given type.
5398 # If the shape itself matches the type, it is also returned.
5399 # @param aShape Shape to be exploded.
5400 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5401 # @param theName Object name; when specified, this parameter is used
5402 # for result publication in the study. Otherwise, if automatic
5403 # publication is switched on, default value is used for result name.
5405 # @return List of sub-shapes of type theShapeType, contained in theShape.
5407 # @ref swig_all_decompose "Example"
5408 def SubShapeAll(self, aShape, aType, theName=None):
5410 Explode a shape on sub-shapes of a given type.
5411 If the shape itself matches the type, it is also returned.
5414 aShape Shape to be exploded.
5415 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5416 theName Object name; when specified, this parameter is used
5417 for result publication in the study. Otherwise, if automatic
5418 publication is switched on, default value is used for result name.
5421 List of sub-shapes of type theShapeType, contained in theShape.
5423 # Example: see GEOM_TestAll.py
5424 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), False)
5425 RaiseIfFailed("SubShapeAll", self.ShapesOp)
5426 self._autoPublish(ListObj, theName, "subshape")
5429 ## Explode a shape on sub-shapes of a given type.
5430 # @param aShape Shape to be exploded.
5431 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5432 # @return List of IDs of sub-shapes.
5434 # @ref swig_all_decompose "Example"
5435 def SubShapeAllIDs(self, aShape, aType):
5437 Explode a shape on sub-shapes of a given type.
5440 aShape Shape to be exploded (see geompy.ShapeType)
5441 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5444 List of IDs of sub-shapes.
5446 ListObj = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), False)
5447 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
5450 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
5451 # selected by they indices in list of all sub-shapes of type <VAR>aType</VAR>.
5452 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5453 # @param aShape Shape to get sub-shape of.
5454 # @param ListOfInd List of sub-shapes indices.
5455 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5456 # @param theName Object name; when specified, this parameter is used
5457 # for result publication in the study. Otherwise, if automatic
5458 # publication is switched on, default value is used for result name.
5460 # @return A compound of sub-shapes of aShape.
5462 # @ref swig_all_decompose "Example"
5463 def SubShape(self, aShape, aType, ListOfInd, theName=None):
5465 Obtain a compound of sub-shapes of aShape,
5466 selected by they indices in list of all sub-shapes of type aType.
5467 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5470 aShape Shape to get sub-shape of.
5471 ListOfID List of sub-shapes indices.
5472 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5473 theName Object name; when specified, this parameter is used
5474 for result publication in the study. Otherwise, if automatic
5475 publication is switched on, default value is used for result name.
5478 A compound of sub-shapes of aShape.
5480 # Example: see GEOM_TestAll.py
5482 AllShapeIDsList = self.SubShapeAllIDs(aShape, EnumToLong( aType ))
5483 for ind in ListOfInd:
5484 ListOfIDs.append(AllShapeIDsList[ind - 1])
5485 # note: auto-publishing is done in self.GetSubShape()
5486 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
5489 ## Explode a shape on sub-shapes of a given type.
5490 # Sub-shapes will be sorted by coordinates of their gravity centers.
5491 # If the shape itself matches the type, it is also returned.
5492 # @param aShape Shape to be exploded.
5493 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5494 # @param theName Object name; when specified, this parameter is used
5495 # for result publication in the study. Otherwise, if automatic
5496 # publication is switched on, default value is used for result name.
5498 # @return List of sub-shapes of type theShapeType, contained in theShape.
5500 # @ref swig_SubShapeAllSorted "Example"
5501 def SubShapeAllSortedCentres(self, aShape, aType, theName=None):
5503 Explode a shape on sub-shapes of a given type.
5504 Sub-shapes will be sorted by coordinates of their gravity centers.
5505 If the shape itself matches the type, it is also returned.
5508 aShape Shape to be exploded.
5509 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5510 theName Object name; when specified, this parameter is used
5511 for result publication in the study. Otherwise, if automatic
5512 publication is switched on, default value is used for result name.
5515 List of sub-shapes of type theShapeType, contained in theShape.
5517 # Example: see GEOM_TestAll.py
5518 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), True)
5519 RaiseIfFailed("SubShapeAllSortedCentres", self.ShapesOp)
5520 self._autoPublish(ListObj, theName, "subshape")
5523 ## Explode a shape on sub-shapes of a given type.
5524 # Sub-shapes will be sorted by coordinates of their gravity centers.
5525 # @param aShape Shape to be exploded.
5526 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5527 # @return List of IDs of sub-shapes.
5529 # @ref swig_all_decompose "Example"
5530 def SubShapeAllSortedCentresIDs(self, aShape, aType):
5532 Explode a shape on sub-shapes of a given type.
5533 Sub-shapes will be sorted by coordinates of their gravity centers.
5536 aShape Shape to be exploded.
5537 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5540 List of IDs of sub-shapes.
5542 ListIDs = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), True)
5543 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
5546 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
5547 # selected by they indices in sorted list of all sub-shapes of type <VAR>aType</VAR>.
5548 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5549 # @param aShape Shape to get sub-shape of.
5550 # @param ListOfInd List of sub-shapes indices.
5551 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5552 # @param theName Object name; when specified, this parameter is used
5553 # for result publication in the study. Otherwise, if automatic
5554 # publication is switched on, default value is used for result name.
5556 # @return A compound of sub-shapes of aShape.
5558 # @ref swig_all_decompose "Example"
5559 def SubShapeSortedCentres(self, aShape, aType, ListOfInd, theName=None):
5561 Obtain a compound of sub-shapes of aShape,
5562 selected by they indices in sorted list of all sub-shapes of type aType.
5563 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5566 aShape Shape to get sub-shape of.
5567 ListOfID List of sub-shapes indices.
5568 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5569 theName Object name; when specified, this parameter is used
5570 for result publication in the study. Otherwise, if automatic
5571 publication is switched on, default value is used for result name.
5574 A compound of sub-shapes of aShape.
5576 # Example: see GEOM_TestAll.py
5578 AllShapeIDsList = self.SubShapeAllSortedCentresIDs(aShape, EnumToLong( aType ))
5579 for ind in ListOfInd:
5580 ListOfIDs.append(AllShapeIDsList[ind - 1])
5581 # note: auto-publishing is done in self.GetSubShape()
5582 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
5585 ## Extract shapes (excluding the main shape) of given type.
5586 # @param aShape The shape.
5587 # @param aType The shape type (see ShapeType())
5588 # @param isSorted Boolean flag to switch sorting on/off.
5589 # @param theName Object name; when specified, this parameter is used
5590 # for result publication in the study. Otherwise, if automatic
5591 # publication is switched on, default value is used for result name.
5593 # @return List of sub-shapes of type aType, contained in aShape.
5595 # @ref swig_FilletChamfer "Example"
5596 def ExtractShapes(self, aShape, aType, isSorted = False, theName=None):
5598 Extract shapes (excluding the main shape) of given type.
5602 aType The shape type (see geompy.ShapeType)
5603 isSorted Boolean flag to switch sorting on/off.
5604 theName Object name; when specified, this parameter is used
5605 for result publication in the study. Otherwise, if automatic
5606 publication is switched on, default value is used for result name.
5609 List of sub-shapes of type aType, contained in aShape.
5611 # Example: see GEOM_TestAll.py
5612 ListObj = self.ShapesOp.ExtractSubShapes(aShape, EnumToLong( aType ), isSorted)
5613 RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
5614 self._autoPublish(ListObj, theName, "subshape")
5617 ## Get a set of sub-shapes defined by their unique IDs inside <VAR>aShape</VAR>
5618 # @param aShape Main shape.
5619 # @param anIDs List of unique IDs of sub-shapes inside <VAR>aShape</VAR>.
5620 # @param theName Object name; when specified, this parameter is used
5621 # for result publication in the study. Otherwise, if automatic
5622 # publication is switched on, default value is used for result name.
5623 # @return List of GEOM.GEOM_Object, corresponding to found sub-shapes.
5625 # @ref swig_all_decompose "Example"
5626 def SubShapes(self, aShape, anIDs, theName=None):
5628 Get a set of sub-shapes defined by their unique IDs inside theMainShape
5632 anIDs List of unique IDs of sub-shapes inside theMainShape.
5633 theName Object name; when specified, this parameter is used
5634 for result publication in the study. Otherwise, if automatic
5635 publication is switched on, default value is used for result name.
5638 List of GEOM.GEOM_Object, corresponding to found sub-shapes.
5640 # Example: see GEOM_TestAll.py
5641 ListObj = self.ShapesOp.MakeSubShapes(aShape, anIDs)
5642 RaiseIfFailed("SubShapes", self.ShapesOp)
5643 self._autoPublish(ListObj, theName, "subshape")
5646 # end of l4_decompose
5649 ## @addtogroup l4_decompose_d
5652 ## Deprecated method
5653 # It works like SubShapeAllSortedCentres(), but wrongly
5654 # defines centres of faces, shells and solids.
5655 def SubShapeAllSorted(self, aShape, aType, theName=None):
5658 It works like geompy.SubShapeAllSortedCentres, but wrongly
5659 defines centres of faces, shells and solids.
5661 ListObj = self.ShapesOp.MakeExplode(aShape, EnumToLong( aType ), True)
5662 RaiseIfFailed("MakeExplode", self.ShapesOp)
5663 self._autoPublish(ListObj, theName, "subshape")
5666 ## Deprecated method
5667 # It works like SubShapeAllSortedCentresIDs(), but wrongly
5668 # defines centres of faces, shells and solids.
5669 def SubShapeAllSortedIDs(self, aShape, aType):
5672 It works like geompy.SubShapeAllSortedCentresIDs, but wrongly
5673 defines centres of faces, shells and solids.
5675 ListIDs = self.ShapesOp.SubShapeAllIDs(aShape, EnumToLong( aType ), True)
5676 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
5679 ## Deprecated method
5680 # It works like SubShapeSortedCentres(), but has a bug
5681 # (wrongly defines centres of faces, shells and solids).
5682 def SubShapeSorted(self, aShape, aType, ListOfInd, theName=None):
5685 It works like geompy.SubShapeSortedCentres, but has a bug
5686 (wrongly defines centres of faces, shells and solids).
5689 AllShapeIDsList = self.SubShapeAllSortedIDs(aShape, EnumToLong( aType ))
5690 for ind in ListOfInd:
5691 ListOfIDs.append(AllShapeIDsList[ind - 1])
5692 # note: auto-publishing is done in self.GetSubShape()
5693 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
5696 # end of l4_decompose_d
5699 ## @addtogroup l3_healing
5702 ## Apply a sequence of Shape Healing operators to the given object.
5703 # @param theShape Shape to be processed.
5704 # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
5705 # @param theParameters List of names of parameters
5706 # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
5707 # @param theValues List of values of parameters, in the same order
5708 # as parameters are listed in <VAR>theParameters</VAR> list.
5709 # @param theName Object name; when specified, this parameter is used
5710 # for result publication in the study. Otherwise, if automatic
5711 # publication is switched on, default value is used for result name.
5713 # <b> Operators and Parameters: </b> \n
5715 # * \b FixShape - corrects invalid shapes. \n
5716 # - \b FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them. \n
5717 # - \b FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction. \n
5719 # * \b FixFaceSize - removes small faces, such as spots and strips.\n
5720 # - \b FixFaceSize.Tolerance - defines minimum possible face size. \n
5721 # - \b DropSmallEdges - removes edges, which merge with neighbouring edges. \n
5722 # - \b DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.\n
5724 # * \b SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical
5725 # surfaces in segments using a certain angle. \n
5726 # - \b SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
5727 # if Angle=180, four if Angle=90, etc). \n
5728 # - \b SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.\n
5730 # * \b SplitClosedFaces - splits closed faces in segments.
5731 # The number of segments depends on the number of splitting points.\n
5732 # - \b SplitClosedFaces.NbSplitPoints - the number of splitting points.\n
5734 # * \b SplitContinuity - splits shapes to reduce continuities of curves and surfaces.\n
5735 # - \b SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.\n
5736 # - \b SplitContinuity.SurfaceContinuity - required continuity for surfaces.\n
5737 # - \b SplitContinuity.CurveContinuity - required continuity for curves.\n
5738 # This and the previous parameters can take the following values:\n
5739 # \b Parametric \b Continuity \n
5740 # \b C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces
5741 # are coincidental. The curves or surfaces may still meet at an angle, giving rise to a sharp corner or edge).\n
5742 # \b C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces are parallel,
5743 # ruling out sharp edges).\n
5744 # \b C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves or surfaces
5745 # are of the same magnitude).\n
5746 # \b CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of curves
5747 # or surfaces (d/du C(u)) are the same at junction. \n
5748 # \b Geometric \b Continuity \n
5749 # \b G1: first derivatives are proportional at junction.\n
5750 # The curve tangents thus have the same direction, but not necessarily the same magnitude.
5751 # i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).\n
5752 # \b G2: first and second derivatives are proportional at junction.
5753 # As the names imply, geometric continuity requires the geometry to be continuous, while parametric
5754 # continuity requires that the underlying parameterization was continuous as well.
5755 # Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.\n
5757 # * \b BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:\n
5758 # - \b BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.\n
5759 # - \b BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.\n
5760 # - \b BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.\n
5761 # - \b BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation
5762 # with the specified parameters.\n
5763 # - \b BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation
5764 # with the specified parameters.\n
5765 # - \b BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.\n
5766 # - \b BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.\n
5767 # - \b BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.\n
5768 # - \b BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.\n
5770 # * \b ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.\n
5771 # - \b ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.\n
5772 # - \b ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.\n
5773 # - \b ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.\n
5774 # - \b ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.\n
5776 # * \b SameParameter - fixes edges of 2D and 3D curves not having the same parameter.\n
5777 # - \b SameParameter.Tolerance3d - defines tolerance for fixing of edges.\n
5780 # @return New GEOM.GEOM_Object, containing processed shape.
5782 # \n @ref tui_shape_processing "Example"
5783 def ProcessShape(self, theShape, theOperators, theParameters, theValues, theName=None):
5785 Apply a sequence of Shape Healing operators to the given object.
5788 theShape Shape to be processed.
5789 theValues List of values of parameters, in the same order
5790 as parameters are listed in theParameters list.
5791 theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
5792 theParameters List of names of parameters
5793 ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
5794 theName Object name; when specified, this parameter is used
5795 for result publication in the study. Otherwise, if automatic
5796 publication is switched on, default value is used for result name.
5798 Operators and Parameters:
5800 * FixShape - corrects invalid shapes.
5801 * FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them.
5802 * FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction.
5803 * FixFaceSize - removes small faces, such as spots and strips.
5804 * FixFaceSize.Tolerance - defines minimum possible face size.
5805 * DropSmallEdges - removes edges, which merge with neighbouring edges.
5806 * DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.
5807 * SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical surfaces
5808 in segments using a certain angle.
5809 * SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
5810 if Angle=180, four if Angle=90, etc).
5811 * SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.
5812 * SplitClosedFaces - splits closed faces in segments. The number of segments depends on the number of
5814 * SplitClosedFaces.NbSplitPoints - the number of splitting points.
5815 * SplitContinuity - splits shapes to reduce continuities of curves and surfaces.
5816 * SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.
5817 * SplitContinuity.SurfaceContinuity - required continuity for surfaces.
5818 * SplitContinuity.CurveContinuity - required continuity for curves.
5819 This and the previous parameters can take the following values:
5821 Parametric Continuity:
5822 C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces are
5823 coincidental. The curves or surfaces may still meet at an angle,
5824 giving rise to a sharp corner or edge).
5825 C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces
5826 are parallel, ruling out sharp edges).
5827 C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves
5828 or surfaces are of the same magnitude).
5829 CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of
5830 curves or surfaces (d/du C(u)) are the same at junction.
5832 Geometric Continuity:
5833 G1: first derivatives are proportional at junction.
5834 The curve tangents thus have the same direction, but not necessarily the same magnitude.
5835 i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).
5836 G2: first and second derivatives are proportional at junction. As the names imply,
5837 geometric continuity requires the geometry to be continuous, while parametric continuity requires
5838 that the underlying parameterization was continuous as well. Parametric continuity of order n implies
5839 geometric continuity of order n, but not vice-versa.
5840 * BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:
5841 * BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.
5842 * BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.
5843 * BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.
5844 * BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation with
5845 the specified parameters.
5846 * BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation with
5847 the specified parameters.
5848 * BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.
5849 * BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.
5850 * BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.
5851 * BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.
5852 * ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.
5853 * ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.
5854 * ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.
5855 * ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.
5856 * ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.
5857 * SameParameter - fixes edges of 2D and 3D curves not having the same parameter.
5858 * SameParameter.Tolerance3d - defines tolerance for fixing of edges.
5861 New GEOM.GEOM_Object, containing processed shape.
5863 Note: For more information look through SALOME Geometry User's Guide->
5864 -> Introduction to Geometry-> Repairing Operations-> Shape Processing
5866 # Example: see GEOM_TestHealing.py
5867 theValues,Parameters = ParseList(theValues)
5868 anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
5869 # To avoid script failure in case of good argument shape
5870 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
5872 RaiseIfFailed("ProcessShape", self.HealOp)
5873 for string in (theOperators + theParameters):
5874 Parameters = ":" + Parameters
5876 anObj.SetParameters(Parameters)
5877 self._autoPublish(anObj, theName, "healed")
5880 ## Remove faces from the given object (shape).
5881 # @param theObject Shape to be processed.
5882 # @param theFaces Indices of faces to be removed, if EMPTY then the method
5883 # removes ALL faces of the given object.
5884 # @param theName Object name; when specified, this parameter is used
5885 # for result publication in the study. Otherwise, if automatic
5886 # publication is switched on, default value is used for result name.
5888 # @return New GEOM.GEOM_Object, containing processed shape.
5890 # @ref tui_suppress_faces "Example"
5891 def SuppressFaces(self, theObject, theFaces, theName=None):
5893 Remove faces from the given object (shape).
5896 theObject Shape to be processed.
5897 theFaces Indices of faces to be removed, if EMPTY then the method
5898 removes ALL faces of the given object.
5899 theName Object name; when specified, this parameter is used
5900 for result publication in the study. Otherwise, if automatic
5901 publication is switched on, default value is used for result name.
5904 New GEOM.GEOM_Object, containing processed shape.
5906 # Example: see GEOM_TestHealing.py
5907 anObj = self.HealOp.SuppressFaces(theObject, theFaces)
5908 RaiseIfFailed("SuppressFaces", self.HealOp)
5909 self._autoPublish(anObj, theName, "suppressFaces")
5912 ## Sewing of some shapes into single shape.
5913 # @param ListShape Shapes to be processed.
5914 # @param theTolerance Required tolerance value.
5915 # @param theName Object name; when specified, this parameter is used
5916 # for result publication in the study. Otherwise, if automatic
5917 # publication is switched on, default value is used for result name.
5919 # @return New GEOM.GEOM_Object, containing processed shape.
5921 # @ref tui_sewing "Example"
5922 def MakeSewing(self, ListShape, theTolerance, theName=None):
5924 Sewing of some shapes into single shape.
5927 ListShape Shapes to be processed.
5928 theTolerance Required tolerance value.
5929 theName Object name; when specified, this parameter is used
5930 for result publication in the study. Otherwise, if automatic
5931 publication is switched on, default value is used for result name.
5934 New GEOM.GEOM_Object, containing processed shape.
5936 # Example: see GEOM_TestHealing.py
5937 comp = self.MakeCompound(ListShape)
5938 # note: auto-publishing is done in self.Sew()
5939 anObj = self.Sew(comp, theTolerance, theName)
5942 ## Sewing of the given object.
5943 # @param theObject Shape to be processed.
5944 # @param theTolerance Required tolerance value.
5945 # @param theName Object name; when specified, this parameter is used
5946 # for result publication in the study. Otherwise, if automatic
5947 # publication is switched on, default value is used for result name.
5949 # @return New GEOM.GEOM_Object, containing processed shape.
5950 def Sew(self, theObject, theTolerance, theName=None):
5952 Sewing of the given object.
5955 theObject Shape to be processed.
5956 theTolerance Required tolerance value.
5957 theName Object name; when specified, this parameter is used
5958 for result publication in the study. Otherwise, if automatic
5959 publication is switched on, default value is used for result name.
5962 New GEOM.GEOM_Object, containing processed shape.
5964 # Example: see MakeSewing() above
5965 theTolerance,Parameters = ParseParameters(theTolerance)
5966 anObj = self.HealOp.Sew(theObject, theTolerance)
5967 RaiseIfFailed("Sew", self.HealOp)
5968 anObj.SetParameters(Parameters)
5969 self._autoPublish(anObj, theName, "sewed")
5972 ## Remove internal wires and edges from the given object (face).
5973 # @param theObject Shape to be processed.
5974 # @param theWires Indices of wires to be removed, if EMPTY then the method
5975 # removes ALL internal wires of the given object.
5976 # @param theName Object name; when specified, this parameter is used
5977 # for result publication in the study. Otherwise, if automatic
5978 # publication is switched on, default value is used for result name.
5980 # @return New GEOM.GEOM_Object, containing processed shape.
5982 # @ref tui_suppress_internal_wires "Example"
5983 def SuppressInternalWires(self, theObject, theWires, theName=None):
5985 Remove internal wires and edges from the given object (face).
5988 theObject Shape to be processed.
5989 theWires Indices of wires to be removed, if EMPTY then the method
5990 removes ALL internal wires of the given object.
5991 theName Object name; when specified, this parameter is used
5992 for result publication in the study. Otherwise, if automatic
5993 publication is switched on, default value is used for result name.
5996 New GEOM.GEOM_Object, containing processed shape.
5998 # Example: see GEOM_TestHealing.py
5999 anObj = self.HealOp.RemoveIntWires(theObject, theWires)
6000 RaiseIfFailed("RemoveIntWires", self.HealOp)
6001 self._autoPublish(anObj, theName, "suppressWires")
6004 ## Remove internal closed contours (holes) from the given object.
6005 # @param theObject Shape to be processed.
6006 # @param theWires Indices of wires to be removed, if EMPTY then the method
6007 # removes ALL internal holes of the given object
6008 # @param theName Object name; when specified, this parameter is used
6009 # for result publication in the study. Otherwise, if automatic
6010 # publication is switched on, default value is used for result name.
6012 # @return New GEOM.GEOM_Object, containing processed shape.
6014 # @ref tui_suppress_holes "Example"
6015 def SuppressHoles(self, theObject, theWires, theName=None):
6017 Remove internal closed contours (holes) from the given object.
6020 theObject Shape to be processed.
6021 theWires Indices of wires to be removed, if EMPTY then the method
6022 removes ALL internal holes of the given object
6023 theName Object name; when specified, this parameter is used
6024 for result publication in the study. Otherwise, if automatic
6025 publication is switched on, default value is used for result name.
6028 New GEOM.GEOM_Object, containing processed shape.
6030 # Example: see GEOM_TestHealing.py
6031 anObj = self.HealOp.FillHoles(theObject, theWires)
6032 RaiseIfFailed("FillHoles", self.HealOp)
6033 self._autoPublish(anObj, theName, "suppressHoles")
6036 ## Close an open wire.
6037 # @param theObject Shape to be processed.
6038 # @param theWires Indexes of edge(s) and wire(s) to be closed within <VAR>theObject</VAR>'s shape,
6039 # if [ ], then <VAR>theObject</VAR> itself is a wire.
6040 # @param isCommonVertex If True : closure by creation of a common vertex,
6041 # If False : closure by creation of an edge between ends.
6042 # @param theName Object name; when specified, this parameter is used
6043 # for result publication in the study. Otherwise, if automatic
6044 # publication is switched on, default value is used for result name.
6046 # @return New GEOM.GEOM_Object, containing processed shape.
6048 # @ref tui_close_contour "Example"
6049 def CloseContour(self,theObject, theWires, isCommonVertex, theName=None):
6054 theObject Shape to be processed.
6055 theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape,
6056 if [ ], then theObject itself is a wire.
6057 isCommonVertex If True : closure by creation of a common vertex,
6058 If False : closure by creation of an edge between ends.
6059 theName Object name; when specified, this parameter is used
6060 for result publication in the study. Otherwise, if automatic
6061 publication is switched on, default value is used for result name.
6064 New GEOM.GEOM_Object, containing processed shape.
6066 # Example: see GEOM_TestHealing.py
6067 anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex)
6068 RaiseIfFailed("CloseContour", self.HealOp)
6069 self._autoPublish(anObj, theName, "closeContour")
6072 ## Addition of a point to a given edge object.
6073 # @param theObject Shape to be processed.
6074 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
6075 # if -1, then theObject itself is the edge.
6076 # @param theValue Value of parameter on edge or length parameter,
6077 # depending on \a isByParameter.
6078 # @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1], \n
6079 # if FALSE : \a theValue is treated as a length parameter [0..1]
6080 # @param theName Object name; when specified, this parameter is used
6081 # for result publication in the study. Otherwise, if automatic
6082 # publication is switched on, default value is used for result name.
6084 # @return New GEOM.GEOM_Object, containing processed shape.
6086 # @ref tui_add_point_on_edge "Example"
6087 def DivideEdge(self, theObject, theEdgeIndex, theValue, isByParameter, theName=None):
6089 Addition of a point to a given edge object.
6092 theObject Shape to be processed.
6093 theEdgeIndex Index of edge to be divided within theObject's shape,
6094 if -1, then theObject itself is the edge.
6095 theValue Value of parameter on edge or length parameter,
6096 depending on isByParameter.
6097 isByParameter If TRUE : theValue is treated as a curve parameter [0..1],
6098 if FALSE : theValue is treated as a length parameter [0..1]
6099 theName Object name; when specified, this parameter is used
6100 for result publication in the study. Otherwise, if automatic
6101 publication is switched on, default value is used for result name.
6104 New GEOM.GEOM_Object, containing processed shape.
6106 # Example: see GEOM_TestHealing.py
6107 theEdgeIndex,theValue,isByParameter,Parameters = ParseParameters(theEdgeIndex,theValue,isByParameter)
6108 anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
6109 RaiseIfFailed("DivideEdge", self.HealOp)
6110 anObj.SetParameters(Parameters)
6111 self._autoPublish(anObj, theName, "divideEdge")
6114 ## Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
6115 # @param theWire Wire to minimize the number of C1 continuous edges in.
6116 # @param theVertices A list of vertices to suppress. If the list
6117 # is empty, all vertices in a wire will be assumed.
6118 # @param theName Object name; when specified, this parameter is used
6119 # for result publication in the study. Otherwise, if automatic
6120 # publication is switched on, default value is used for result name.
6122 # @return New GEOM.GEOM_Object with modified wire.
6124 # @ref tui_fuse_collinear_edges "Example"
6125 def FuseCollinearEdgesWithinWire(self, theWire, theVertices = [], theName=None):
6127 Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
6130 theWire Wire to minimize the number of C1 continuous edges in.
6131 theVertices A list of vertices to suppress. If the list
6132 is empty, all vertices in a wire will be assumed.
6133 theName Object name; when specified, this parameter is used
6134 for result publication in the study. Otherwise, if automatic
6135 publication is switched on, default value is used for result name.
6138 New GEOM.GEOM_Object with modified wire.
6140 anObj = self.HealOp.FuseCollinearEdgesWithinWire(theWire, theVertices)
6141 RaiseIfFailed("FuseCollinearEdgesWithinWire", self.HealOp)
6142 self._autoPublish(anObj, theName, "fuseEdges")
6145 ## Change orientation of the given object. Updates given shape.
6146 # @param theObject Shape to be processed.
6147 # @return Updated <var>theObject</var>
6149 # @ref swig_todo "Example"
6150 def ChangeOrientationShell(self,theObject):
6152 Change orientation of the given object. Updates given shape.
6155 theObject Shape to be processed.
6160 theObject = self.HealOp.ChangeOrientation(theObject)
6161 RaiseIfFailed("ChangeOrientation", self.HealOp)
6164 ## Change orientation of the given object.
6165 # @param theObject Shape to be processed.
6166 # @param theName Object name; when specified, this parameter is used
6167 # for result publication in the study. Otherwise, if automatic
6168 # publication is switched on, default value is used for result name.
6170 # @return New GEOM.GEOM_Object, containing processed shape.
6172 # @ref swig_todo "Example"
6173 def ChangeOrientationShellCopy(self, theObject, theName=None):
6175 Change orientation of the given object.
6178 theObject Shape to be processed.
6179 theName Object name; when specified, this parameter is used
6180 for result publication in the study. Otherwise, if automatic
6181 publication is switched on, default value is used for result name.
6184 New GEOM.GEOM_Object, containing processed shape.
6186 anObj = self.HealOp.ChangeOrientationCopy(theObject)
6187 RaiseIfFailed("ChangeOrientationCopy", self.HealOp)
6188 self._autoPublish(anObj, theName, "reversed")
6191 ## Try to limit tolerance of the given object by value \a theTolerance.
6192 # @param theObject Shape to be processed.
6193 # @param theTolerance Required tolerance value.
6194 # @param theName Object name; when specified, this parameter is used
6195 # for result publication in the study. Otherwise, if automatic
6196 # publication is switched on, default value is used for result name.
6198 # @return New GEOM.GEOM_Object, containing processed shape.
6200 # @ref tui_limit_tolerance "Example"
6201 def LimitTolerance(self, theObject, theTolerance = 1e-07, theName=None):
6203 Try to limit tolerance of the given object by value theTolerance.
6206 theObject Shape to be processed.
6207 theTolerance Required tolerance value.
6208 theName Object name; when specified, this parameter is used
6209 for result publication in the study. Otherwise, if automatic
6210 publication is switched on, default value is used for result name.
6213 New GEOM.GEOM_Object, containing processed shape.
6215 anObj = self.HealOp.LimitTolerance(theObject, theTolerance)
6216 RaiseIfFailed("LimitTolerance", self.HealOp)
6217 self._autoPublish(anObj, theName, "limitTolerance")
6220 ## Get a list of wires (wrapped in GEOM.GEOM_Object-s),
6221 # that constitute a free boundary of the given shape.
6222 # @param theObject Shape to get free boundary of.
6223 # @param theName Object name; when specified, this parameter is used
6224 # for result publication in the study. Otherwise, if automatic
6225 # publication is switched on, default value is used for result name.
6227 # @return [\a status, \a theClosedWires, \a theOpenWires]
6228 # \n \a status: FALSE, if an error(s) occured during the method execution.
6229 # \n \a theClosedWires: Closed wires on the free boundary of the given shape.
6230 # \n \a theOpenWires: Open wires on the free boundary of the given shape.
6232 # @ref tui_measurement_tools_page "Example"
6233 def GetFreeBoundary(self, theObject, theName=None):
6235 Get a list of wires (wrapped in GEOM.GEOM_Object-s),
6236 that constitute a free boundary of the given shape.
6239 theObject Shape to get free boundary of.
6240 theName Object name; when specified, this parameter is used
6241 for result publication in the study. Otherwise, if automatic
6242 publication is switched on, default value is used for result name.
6245 [status, theClosedWires, theOpenWires]
6246 status: FALSE, if an error(s) occured during the method execution.
6247 theClosedWires: Closed wires on the free boundary of the given shape.
6248 theOpenWires: Open wires on the free boundary of the given shape.
6250 # Example: see GEOM_TestHealing.py
6251 anObj = self.HealOp.GetFreeBoundary(theObject)
6252 RaiseIfFailed("GetFreeBoundary", self.HealOp)
6253 self._autoPublish(anObj[1], theName, "closedWire")
6254 self._autoPublish(anObj[2], theName, "openWire")
6257 ## Replace coincident faces in theShape by one face.
6258 # @param theShape Initial shape.
6259 # @param theTolerance Maximum distance between faces, which can be considered as coincident.
6260 # @param doKeepNonSolids If FALSE, only solids will present in the result,
6261 # otherwise all initial shapes.
6262 # @param theName Object name; when specified, this parameter is used
6263 # for result publication in the study. Otherwise, if automatic
6264 # publication is switched on, default value is used for result name.
6266 # @return New GEOM.GEOM_Object, containing a copy of theShape without coincident faces.
6268 # @ref tui_glue_faces "Example"
6269 def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True, theName=None):
6271 Replace coincident faces in theShape by one face.
6274 theShape Initial shape.
6275 theTolerance Maximum distance between faces, which can be considered as coincident.
6276 doKeepNonSolids If FALSE, only solids will present in the result,
6277 otherwise all initial shapes.
6278 theName Object name; when specified, this parameter is used
6279 for result publication in the study. Otherwise, if automatic
6280 publication is switched on, default value is used for result name.
6283 New GEOM.GEOM_Object, containing a copy of theShape without coincident faces.
6285 # Example: see GEOM_Spanner.py
6286 theTolerance,Parameters = ParseParameters(theTolerance)
6287 anObj = self.ShapesOp.MakeGlueFaces(theShape, theTolerance, doKeepNonSolids)
6289 raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
6290 anObj.SetParameters(Parameters)
6291 self._autoPublish(anObj, theName, "glueFaces")
6294 ## Find coincident faces in theShape for possible gluing.
6295 # @param theShape Initial shape.
6296 # @param theTolerance Maximum distance between faces,
6297 # which can be considered as coincident.
6298 # @param theName Object name; when specified, this parameter is used
6299 # for result publication in the study. Otherwise, if automatic
6300 # publication is switched on, default value is used for result name.
6302 # @return GEOM.ListOfGO
6304 # @ref tui_glue_faces "Example"
6305 def GetGlueFaces(self, theShape, theTolerance, theName=None):
6307 Find coincident faces in theShape for possible gluing.
6310 theShape Initial shape.
6311 theTolerance Maximum distance between faces,
6312 which can be considered as coincident.
6313 theName Object name; when specified, this parameter is used
6314 for result publication in the study. Otherwise, if automatic
6315 publication is switched on, default value is used for result name.
6320 anObj = self.ShapesOp.GetGlueFaces(theShape, theTolerance)
6321 RaiseIfFailed("GetGlueFaces", self.ShapesOp)
6322 self._autoPublish(anObj, theName, "facesToGlue")
6325 ## Replace coincident faces in theShape by one face
6326 # in compliance with given list of faces
6327 # @param theShape Initial shape.
6328 # @param theTolerance Maximum distance between faces,
6329 # which can be considered as coincident.
6330 # @param theFaces List of faces for gluing.
6331 # @param doKeepNonSolids If FALSE, only solids will present in the result,
6332 # otherwise all initial shapes.
6333 # @param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
6334 # will be glued, otherwise only the edges,
6335 # belonging to <VAR>theFaces</VAR>.
6336 # @param theName Object name; when specified, this parameter is used
6337 # for result publication in the study. Otherwise, if automatic
6338 # publication is switched on, default value is used for result name.
6340 # @return New GEOM.GEOM_Object, containing a copy of theShape
6341 # without some faces.
6343 # @ref tui_glue_faces "Example"
6344 def MakeGlueFacesByList(self, theShape, theTolerance, theFaces,
6345 doKeepNonSolids=True, doGlueAllEdges=True, theName=None):
6347 Replace coincident faces in theShape by one face
6348 in compliance with given list of faces
6351 theShape Initial shape.
6352 theTolerance Maximum distance between faces,
6353 which can be considered as coincident.
6354 theFaces List of faces for gluing.
6355 doKeepNonSolids If FALSE, only solids will present in the result,
6356 otherwise all initial shapes.
6357 doGlueAllEdges If TRUE, all coincident edges of theShape
6358 will be glued, otherwise only the edges,
6359 belonging to theFaces.
6360 theName Object name; when specified, this parameter is used
6361 for result publication in the study. Otherwise, if automatic
6362 publication is switched on, default value is used for result name.
6365 New GEOM.GEOM_Object, containing a copy of theShape
6368 anObj = self.ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces,
6369 doKeepNonSolids, doGlueAllEdges)
6371 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
6372 self._autoPublish(anObj, theName, "glueFaces")
6375 ## Replace coincident edges in theShape by one edge.
6376 # @param theShape Initial shape.
6377 # @param theTolerance Maximum distance between edges, which can be considered as coincident.
6378 # @param theName Object name; when specified, this parameter is used
6379 # for result publication in the study. Otherwise, if automatic
6380 # publication is switched on, default value is used for result name.
6382 # @return New GEOM.GEOM_Object, containing a copy of theShape without coincident edges.
6384 # @ref tui_glue_edges "Example"
6385 def MakeGlueEdges(self, theShape, theTolerance, theName=None):
6387 Replace coincident edges in theShape by one edge.
6390 theShape Initial shape.
6391 theTolerance Maximum distance between edges, which can be considered as coincident.
6392 theName Object name; when specified, this parameter is used
6393 for result publication in the study. Otherwise, if automatic
6394 publication is switched on, default value is used for result name.
6397 New GEOM.GEOM_Object, containing a copy of theShape without coincident edges.
6399 theTolerance,Parameters = ParseParameters(theTolerance)
6400 anObj = self.ShapesOp.MakeGlueEdges(theShape, theTolerance)
6402 raise RuntimeError, "MakeGlueEdges : " + self.ShapesOp.GetErrorCode()
6403 anObj.SetParameters(Parameters)
6404 self._autoPublish(anObj, theName, "glueEdges")
6407 ## Find coincident edges in theShape for possible gluing.
6408 # @param theShape Initial shape.
6409 # @param theTolerance Maximum distance between edges,
6410 # which can be considered as coincident.
6411 # @param theName Object name; when specified, this parameter is used
6412 # for result publication in the study. Otherwise, if automatic
6413 # publication is switched on, default value is used for result name.
6415 # @return GEOM.ListOfGO
6417 # @ref tui_glue_edges "Example"
6418 def GetGlueEdges(self, theShape, theTolerance, theName=None):
6420 Find coincident edges in theShape for possible gluing.
6423 theShape Initial shape.
6424 theTolerance Maximum distance between edges,
6425 which can be considered as coincident.
6426 theName Object name; when specified, this parameter is used
6427 for result publication in the study. Otherwise, if automatic
6428 publication is switched on, default value is used for result name.
6433 anObj = self.ShapesOp.GetGlueEdges(theShape, theTolerance)
6434 RaiseIfFailed("GetGlueEdges", self.ShapesOp)
6435 self._autoPublish(anObj, theName, "edgesToGlue")
6438 ## Replace coincident edges in theShape by one edge
6439 # in compliance with given list of edges.
6440 # @param theShape Initial shape.
6441 # @param theTolerance Maximum distance between edges,
6442 # which can be considered as coincident.
6443 # @param theEdges List of edges for gluing.
6444 # @param theName Object name; when specified, this parameter is used
6445 # for result publication in the study. Otherwise, if automatic
6446 # publication is switched on, default value is used for result name.
6448 # @return New GEOM.GEOM_Object, containing a copy of theShape
6449 # without some edges.
6451 # @ref tui_glue_edges "Example"
6452 def MakeGlueEdgesByList(self, theShape, theTolerance, theEdges, theName=None):
6454 Replace coincident edges in theShape by one edge
6455 in compliance with given list of edges.
6458 theShape Initial shape.
6459 theTolerance Maximum distance between edges,
6460 which can be considered as coincident.
6461 theEdges List of edges for gluing.
6462 theName Object name; when specified, this parameter is used
6463 for result publication in the study. Otherwise, if automatic
6464 publication is switched on, default value is used for result name.
6467 New GEOM.GEOM_Object, containing a copy of theShape
6470 anObj = self.ShapesOp.MakeGlueEdgesByList(theShape, theTolerance, theEdges)
6472 raise RuntimeError, "MakeGlueEdgesByList : " + self.ShapesOp.GetErrorCode()
6473 self._autoPublish(anObj, theName, "glueEdges")
6479 ## @addtogroup l3_boolean Boolean Operations
6482 # -----------------------------------------------------------------------------
6483 # Boolean (Common, Cut, Fuse, Section)
6484 # -----------------------------------------------------------------------------
6486 ## Perform one of boolean operations on two given shapes.
6487 # @param theShape1 First argument for boolean operation.
6488 # @param theShape2 Second argument for boolean operation.
6489 # @param theOperation Indicates the operation to be done:\n
6490 # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
6491 # @param theName Object name; when specified, this parameter is used
6492 # for result publication in the study. Otherwise, if automatic
6493 # publication is switched on, default value is used for result name.
6495 # @return New GEOM.GEOM_Object, containing the result shape.
6497 # @ref tui_fuse "Example"
6498 def MakeBoolean(self, theShape1, theShape2, theOperation, theName=None):
6500 Perform one of boolean operations on two given shapes.
6503 theShape1 First argument for boolean operation.
6504 theShape2 Second argument for boolean operation.
6505 theOperation Indicates the operation to be done:
6506 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
6507 theName Object name; when specified, this parameter is used
6508 for result publication in the study. Otherwise, if automatic
6509 publication is switched on, default value is used for result name.
6512 New GEOM.GEOM_Object, containing the result shape.
6514 # Example: see GEOM_TestAll.py
6515 anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation)
6516 RaiseIfFailed("MakeBoolean", self.BoolOp)
6517 def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
6518 self._autoPublish(anObj, theName, def_names[theOperation])
6521 ## Perform Common boolean operation on two given shapes.
6522 # @param theShape1 First argument for boolean operation.
6523 # @param theShape2 Second argument for boolean operation.
6524 # @param theName Object name; when specified, this parameter is used
6525 # for result publication in the study. Otherwise, if automatic
6526 # publication is switched on, default value is used for result name.
6528 # @return New GEOM.GEOM_Object, containing the result shape.
6530 # @ref tui_common "Example 1"
6531 # \n @ref swig_MakeCommon "Example 2"
6532 def MakeCommon(self, theShape1, theShape2, theName=None):
6534 Perform Common boolean operation on two given shapes.
6537 theShape1 First argument for boolean operation.
6538 theShape2 Second argument for boolean operation.
6539 theName Object name; when specified, this parameter is used
6540 for result publication in the study. Otherwise, if automatic
6541 publication is switched on, default value is used for result name.
6544 New GEOM.GEOM_Object, containing the result shape.
6546 # Example: see GEOM_TestOthers.py
6547 # note: auto-publishing is done in self.MakeBoolean()
6548 return self.MakeBoolean(theShape1, theShape2, 1, theName)
6550 ## Perform Cut boolean operation on two given shapes.
6551 # @param theShape1 First argument for boolean operation.
6552 # @param theShape2 Second argument for boolean operation.
6553 # @param theName Object name; when specified, this parameter is used
6554 # for result publication in the study. Otherwise, if automatic
6555 # publication is switched on, default value is used for result name.
6557 # @return New GEOM.GEOM_Object, containing the result shape.
6559 # @ref tui_cut "Example 1"
6560 # \n @ref swig_MakeCommon "Example 2"
6561 def MakeCut(self, theShape1, theShape2, theName=None):
6563 Perform Cut boolean operation on two given shapes.
6566 theShape1 First argument for boolean operation.
6567 theShape2 Second argument for boolean operation.
6568 theName Object name; when specified, this parameter is used
6569 for result publication in the study. Otherwise, if automatic
6570 publication is switched on, default value is used for result name.
6573 New GEOM.GEOM_Object, containing the result shape.
6576 # Example: see GEOM_TestOthers.py
6577 # note: auto-publishing is done in self.MakeBoolean()
6578 return self.MakeBoolean(theShape1, theShape2, 2, theName)
6580 ## Perform Fuse boolean operation on two given shapes.
6581 # @param theShape1 First argument for boolean operation.
6582 # @param theShape2 Second argument for boolean operation.
6583 # @param theName Object name; when specified, this parameter is used
6584 # for result publication in the study. Otherwise, if automatic
6585 # publication is switched on, default value is used for result name.
6587 # @return New GEOM.GEOM_Object, containing the result shape.
6589 # @ref tui_fuse "Example 1"
6590 # \n @ref swig_MakeCommon "Example 2"
6591 def MakeFuse(self, theShape1, theShape2, theName=None):
6593 Perform Fuse boolean operation on two given shapes.
6596 theShape1 First argument for boolean operation.
6597 theShape2 Second argument for boolean operation.
6598 theName Object name; when specified, this parameter is used
6599 for result publication in the study. Otherwise, if automatic
6600 publication is switched on, default value is used for result name.
6603 New GEOM.GEOM_Object, containing the result shape.
6606 # Example: see GEOM_TestOthers.py
6607 # note: auto-publishing is done in self.MakeBoolean()
6608 return self.MakeBoolean(theShape1, theShape2, 3, theName)
6610 ## Perform Section boolean operation on two given shapes.
6611 # @param theShape1 First argument for boolean operation.
6612 # @param theShape2 Second argument for boolean operation.
6613 # @param theName Object name; when specified, this parameter is used
6614 # for result publication in the study. Otherwise, if automatic
6615 # publication is switched on, default value is used for result name.
6617 # @return New GEOM.GEOM_Object, containing the result shape.
6619 # @ref tui_section "Example 1"
6620 # \n @ref swig_MakeCommon "Example 2"
6621 def MakeSection(self, theShape1, theShape2, theName=None):
6623 Perform Section boolean operation on two given shapes.
6626 theShape1 First argument for boolean operation.
6627 theShape2 Second argument for boolean operation.
6628 theName Object name; when specified, this parameter is used
6629 for result publication in the study. Otherwise, if automatic
6630 publication is switched on, default value is used for result name.
6633 New GEOM.GEOM_Object, containing the result shape.
6636 # Example: see GEOM_TestOthers.py
6637 # note: auto-publishing is done in self.MakeBoolean()
6638 return self.MakeBoolean(theShape1, theShape2, 4, theName)
6640 ## Perform Fuse boolean operation on the list of shapes.
6641 # @param theShapesList Shapes to be fused.
6642 # @param theName Object name; when specified, this parameter is used
6643 # for result publication in the study. Otherwise, if automatic
6644 # publication is switched on, default value is used for result name.
6646 # @return New GEOM.GEOM_Object, containing the result shape.
6648 # @ref tui_fuse "Example 1"
6649 # \n @ref swig_MakeCommon "Example 2"
6650 def MakeFuseList(self, theShapesList, theName=None):
6652 Perform Fuse boolean operation on the list of shapes.
6655 theShapesList Shapes to be fused.
6656 theName Object name; when specified, this parameter is used
6657 for result publication in the study. Otherwise, if automatic
6658 publication is switched on, default value is used for result name.
6661 New GEOM.GEOM_Object, containing the result shape.
6664 # Example: see GEOM_TestOthers.py
6665 anObj = self.BoolOp.MakeFuseList(theShapesList)
6666 RaiseIfFailed("MakeFuseList", self.BoolOp)
6667 self._autoPublish(anObj, theName, "fuse")
6670 ## Perform Common boolean operation on the list of shapes.
6671 # @param theShapesList Shapes for Common operation.
6672 # @param theName Object name; when specified, this parameter is used
6673 # for result publication in the study. Otherwise, if automatic
6674 # publication is switched on, default value is used for result name.
6676 # @return New GEOM.GEOM_Object, containing the result shape.
6678 # @ref tui_common "Example 1"
6679 # \n @ref swig_MakeCommon "Example 2"
6680 def MakeCommonList(self, theShapesList, theName=None):
6682 Perform Common boolean operation on the list of shapes.
6685 theShapesList Shapes for Common operation.
6686 theName Object name; when specified, this parameter is used
6687 for result publication in the study. Otherwise, if automatic
6688 publication is switched on, default value is used for result name.
6691 New GEOM.GEOM_Object, containing the result shape.
6694 # Example: see GEOM_TestOthers.py
6695 anObj = self.BoolOp.MakeCommonList(theShapesList)
6696 RaiseIfFailed("MakeCommonList", self.BoolOp)
6697 self._autoPublish(anObj, theName, "common")
6700 ## Perform Cut boolean operation on one object and the list of tools.
6701 # @param theMainShape The object of the operation.
6702 # @param theShapesList The list of tools of the operation.
6703 # @param theName Object name; when specified, this parameter is used
6704 # for result publication in the study. Otherwise, if automatic
6705 # publication is switched on, default value is used for result name.
6707 # @return New GEOM.GEOM_Object, containing the result shape.
6709 # @ref tui_cut "Example 1"
6710 # \n @ref swig_MakeCommon "Example 2"
6711 def MakeCutList(self, theMainShape, theShapesList, theName=None):
6713 Perform Cut boolean operation on one object and the list of tools.
6716 theMainShape The object of the operation.
6717 theShapesList The list of tools of the operation.
6718 theName Object name; when specified, this parameter is used
6719 for result publication in the study. Otherwise, if automatic
6720 publication is switched on, default value is used for result name.
6723 New GEOM.GEOM_Object, containing the result shape.
6726 # Example: see GEOM_TestOthers.py
6727 anObj = self.BoolOp.MakeCutList(theMainShape, theShapesList)
6728 RaiseIfFailed("MakeCutList", self.BoolOp)
6729 self._autoPublish(anObj, theName, "cut")
6735 ## @addtogroup l3_basic_op
6738 ## Perform partition operation.
6739 # @param ListShapes Shapes to be intersected.
6740 # @param ListTools Shapes to intersect theShapes.
6741 # @param Limit Type of resulting shapes (see ShapeType()).\n
6742 # If this parameter is set to -1 ("Auto"), most appropriate shape limit
6743 # type will be detected automatically.
6744 # @param KeepNonlimitShapes if this parameter == 0, then only shapes of
6745 # target type (equal to Limit) are kept in the result,
6746 # else standalone shapes of lower dimension
6747 # are kept also (if they exist).
6748 # @param theName Object name; when specified, this parameter is used
6749 # for result publication in the study. Otherwise, if automatic
6750 # publication is switched on, default value is used for result name.
6752 # @note Each compound from ListShapes and ListTools will be exploded
6753 # in order to avoid possible intersection between shapes from this compound.
6755 # After implementation new version of PartitionAlgo (October 2006)
6756 # other parameters are ignored by current functionality. They are kept
6757 # in this function only for support old versions.
6758 # @param ListKeepInside Shapes, outside which the results will be deleted.
6759 # Each shape from theKeepInside must belong to theShapes also.
6760 # @param ListRemoveInside Shapes, inside which the results will be deleted.
6761 # Each shape from theRemoveInside must belong to theShapes also.
6762 # @param RemoveWebs If TRUE, perform Glue 3D algorithm.
6763 # @param ListMaterials Material indices for each shape. Make sence,
6764 # only if theRemoveWebs is TRUE.
6766 # @return New GEOM.GEOM_Object, containing the result shapes.
6768 # @ref tui_partition "Example"
6769 def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
6770 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
6771 KeepNonlimitShapes=0, theName=None):
6773 Perform partition operation.
6776 ListShapes Shapes to be intersected.
6777 ListTools Shapes to intersect theShapes.
6778 Limit Type of resulting shapes (see geompy.ShapeType)
6779 If this parameter is set to -1 ("Auto"), most appropriate shape limit
6780 type will be detected automatically.
6781 KeepNonlimitShapes if this parameter == 0, then only shapes of
6782 target type (equal to Limit) are kept in the result,
6783 else standalone shapes of lower dimension
6784 are kept also (if they exist).
6785 theName Object name; when specified, this parameter is used
6786 for result publication in the study. Otherwise, if automatic
6787 publication is switched on, default value is used for result name.
6789 Each compound from ListShapes and ListTools will be exploded
6790 in order to avoid possible intersection between shapes from
6793 After implementation new version of PartitionAlgo (October 2006) other
6794 parameters are ignored by current functionality. They are kept in this
6795 function only for support old versions.
6798 ListKeepInside Shapes, outside which the results will be deleted.
6799 Each shape from theKeepInside must belong to theShapes also.
6800 ListRemoveInside Shapes, inside which the results will be deleted.
6801 Each shape from theRemoveInside must belong to theShapes also.
6802 RemoveWebs If TRUE, perform Glue 3D algorithm.
6803 ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
6806 New GEOM.GEOM_Object, containing the result shapes.
6808 # Example: see GEOM_TestAll.py
6809 if Limit == self.ShapeType["AUTO"]:
6810 # automatic detection of the most appropriate shape limit type
6812 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
6813 Limit = EnumToLong(lim)
6815 anObj = self.BoolOp.MakePartition(ListShapes, ListTools,
6816 ListKeepInside, ListRemoveInside,
6817 Limit, RemoveWebs, ListMaterials,
6818 KeepNonlimitShapes);
6819 RaiseIfFailed("MakePartition", self.BoolOp)
6820 self._autoPublish(anObj, theName, "partition")
6823 ## Perform partition operation.
6824 # This method may be useful if it is needed to make a partition for
6825 # compound contains nonintersected shapes. Performance will be better
6826 # since intersection between shapes from compound is not performed.
6828 # Description of all parameters as in previous method MakePartition()
6830 # @note Passed compounds (via ListShapes or via ListTools)
6831 # have to consist of nonintersecting shapes.
6833 # @return New GEOM.GEOM_Object, containing the result shapes.
6835 # @ref swig_todo "Example"
6836 def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
6837 ListKeepInside=[], ListRemoveInside=[],
6838 Limit=ShapeType["AUTO"], RemoveWebs=0,
6839 ListMaterials=[], KeepNonlimitShapes=0,
6842 Perform partition operation.
6843 This method may be useful if it is needed to make a partition for
6844 compound contains nonintersected shapes. Performance will be better
6845 since intersection between shapes from compound is not performed.
6848 Description of all parameters as in method geompy.MakePartition
6851 Passed compounds (via ListShapes or via ListTools)
6852 have to consist of nonintersecting shapes.
6855 New GEOM.GEOM_Object, containing the result shapes.
6857 if Limit == self.ShapeType["AUTO"]:
6858 # automatic detection of the most appropriate shape limit type
6860 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
6861 Limit = EnumToLong(lim)
6863 anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
6864 ListKeepInside, ListRemoveInside,
6865 Limit, RemoveWebs, ListMaterials,
6866 KeepNonlimitShapes);
6867 RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
6868 self._autoPublish(anObj, theName, "partition")
6871 ## See method MakePartition() for more information.
6873 # @ref tui_partition "Example 1"
6874 # \n @ref swig_Partition "Example 2"
6875 def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
6876 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
6877 KeepNonlimitShapes=0, theName=None):
6879 See method geompy.MakePartition for more information.
6881 # Example: see GEOM_TestOthers.py
6882 # note: auto-publishing is done in self.MakePartition()
6883 anObj = self.MakePartition(ListShapes, ListTools,
6884 ListKeepInside, ListRemoveInside,
6885 Limit, RemoveWebs, ListMaterials,
6886 KeepNonlimitShapes, theName);
6889 ## Perform partition of the Shape with the Plane
6890 # @param theShape Shape to be intersected.
6891 # @param thePlane Tool shape, to intersect theShape.
6892 # @param theName Object name; when specified, this parameter is used
6893 # for result publication in the study. Otherwise, if automatic
6894 # publication is switched on, default value is used for result name.
6896 # @return New GEOM.GEOM_Object, containing the result shape.
6898 # @ref tui_partition "Example"
6899 def MakeHalfPartition(self, theShape, thePlane, theName=None):
6901 Perform partition of the Shape with the Plane
6904 theShape Shape to be intersected.
6905 thePlane Tool shape, to intersect theShape.
6906 theName Object name; when specified, this parameter is used
6907 for result publication in the study. Otherwise, if automatic
6908 publication is switched on, default value is used for result name.
6911 New GEOM.GEOM_Object, containing the result shape.
6913 # Example: see GEOM_TestAll.py
6914 anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
6915 RaiseIfFailed("MakeHalfPartition", self.BoolOp)
6916 self._autoPublish(anObj, theName, "partition")
6919 # end of l3_basic_op
6922 ## @addtogroup l3_transform
6925 ## Translate the given object along the vector, specified
6926 # by its end points.
6927 # @param theObject The object to be translated.
6928 # @param thePoint1 Start point of translation vector.
6929 # @param thePoint2 End point of translation vector.
6930 # @param theCopy Flag used to translate object itself or create a copy.
6931 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
6932 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
6933 def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
6935 Translate the given object along the vector, specified by its end points.
6938 theObject The object to be translated.
6939 thePoint1 Start point of translation vector.
6940 thePoint2 End point of translation vector.
6941 theCopy Flag used to translate object itself or create a copy.
6944 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
6945 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
6948 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
6950 anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
6951 RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
6954 ## Translate the given object along the vector, specified
6955 # by its end points, creating its copy before the translation.
6956 # @param theObject The object to be translated.
6957 # @param thePoint1 Start point of translation vector.
6958 # @param thePoint2 End point of translation vector.
6959 # @param theName Object name; when specified, this parameter is used
6960 # for result publication in the study. Otherwise, if automatic
6961 # publication is switched on, default value is used for result name.
6963 # @return New GEOM.GEOM_Object, containing the translated object.
6965 # @ref tui_translation "Example 1"
6966 # \n @ref swig_MakeTranslationTwoPoints "Example 2"
6967 def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
6969 Translate the given object along the vector, specified
6970 by its end points, creating its copy before the translation.
6973 theObject The object to be translated.
6974 thePoint1 Start point of translation vector.
6975 thePoint2 End point of translation vector.
6976 theName Object name; when specified, this parameter is used
6977 for result publication in the study. Otherwise, if automatic
6978 publication is switched on, default value is used for result name.
6981 New GEOM.GEOM_Object, containing the translated object.
6983 # Example: see GEOM_TestAll.py
6984 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
6985 RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
6986 self._autoPublish(anObj, theName, "translated")
6989 ## Translate the given object along the vector, specified by its components.
6990 # @param theObject The object to be translated.
6991 # @param theDX,theDY,theDZ Components of translation vector.
6992 # @param theCopy Flag used to translate object itself or create a copy.
6993 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
6994 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
6996 # @ref tui_translation "Example"
6997 def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
6999 Translate the given object along the vector, specified by its components.
7002 theObject The object to be translated.
7003 theDX,theDY,theDZ Components of translation vector.
7004 theCopy Flag used to translate object itself or create a copy.
7007 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7008 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7010 # Example: see GEOM_TestAll.py
7011 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
7013 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
7015 anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
7016 anObj.SetParameters(Parameters)
7017 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
7020 ## Translate the given object along the vector, specified
7021 # by its components, creating its copy before the translation.
7022 # @param theObject The object to be translated.
7023 # @param theDX,theDY,theDZ Components of translation vector.
7024 # @param theName Object name; when specified, this parameter is used
7025 # for result publication in the study. Otherwise, if automatic
7026 # publication is switched on, default value is used for result name.
7028 # @return New GEOM.GEOM_Object, containing the translated object.
7030 # @ref tui_translation "Example"
7031 def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
7033 Translate the given object along the vector, specified
7034 by its components, creating its copy before the translation.
7037 theObject The object to be translated.
7038 theDX,theDY,theDZ Components of translation vector.
7039 theName Object name; when specified, this parameter is used
7040 for result publication in the study. Otherwise, if automatic
7041 publication is switched on, default value is used for result name.
7044 New GEOM.GEOM_Object, containing the translated object.
7046 # Example: see GEOM_TestAll.py
7047 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
7048 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
7049 anObj.SetParameters(Parameters)
7050 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
7051 self._autoPublish(anObj, theName, "translated")
7054 ## Translate the given object along the given vector.
7055 # @param theObject The object to be translated.
7056 # @param theVector The translation vector.
7057 # @param theCopy Flag used to translate object itself or create a copy.
7058 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7059 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7060 def TranslateVector(self, theObject, theVector, theCopy=False):
7062 Translate the given object along the given vector.
7065 theObject The object to be translated.
7066 theVector The translation vector.
7067 theCopy Flag used to translate object itself or create a copy.
7070 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7071 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7074 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
7076 anObj = self.TrsfOp.TranslateVector(theObject, theVector)
7077 RaiseIfFailed("TranslateVector", self.TrsfOp)
7080 ## Translate the given object along the given vector,
7081 # creating its copy before the translation.
7082 # @param theObject The object to be translated.
7083 # @param theVector The translation vector.
7084 # @param theName Object name; when specified, this parameter is used
7085 # for result publication in the study. Otherwise, if automatic
7086 # publication is switched on, default value is used for result name.
7088 # @return New GEOM.GEOM_Object, containing the translated object.
7090 # @ref tui_translation "Example"
7091 def MakeTranslationVector(self, theObject, theVector, theName=None):
7093 Translate the given object along the given vector,
7094 creating its copy before the translation.
7097 theObject The object to be translated.
7098 theVector The translation vector.
7099 theName Object name; when specified, this parameter is used
7100 for result publication in the study. Otherwise, if automatic
7101 publication is switched on, default value is used for result name.
7104 New GEOM.GEOM_Object, containing the translated object.
7106 # Example: see GEOM_TestAll.py
7107 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
7108 RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
7109 self._autoPublish(anObj, theName, "translated")
7112 ## Translate the given object along the given vector on given distance.
7113 # @param theObject The object to be translated.
7114 # @param theVector The translation vector.
7115 # @param theDistance The translation distance.
7116 # @param theCopy Flag used to translate object itself or create a copy.
7117 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7118 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7120 # @ref tui_translation "Example"
7121 def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
7123 Translate the given object along the given vector on given distance.
7126 theObject The object to be translated.
7127 theVector The translation vector.
7128 theDistance The translation distance.
7129 theCopy Flag used to translate object itself or create a copy.
7132 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7133 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7135 # Example: see GEOM_TestAll.py
7136 theDistance,Parameters = ParseParameters(theDistance)
7137 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy)
7138 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
7139 anObj.SetParameters(Parameters)
7142 ## Translate the given object along the given vector on given distance,
7143 # creating its copy before the translation.
7144 # @param theObject The object to be translated.
7145 # @param theVector The translation vector.
7146 # @param theDistance The translation distance.
7147 # @param theName Object name; when specified, this parameter is used
7148 # for result publication in the study. Otherwise, if automatic
7149 # publication is switched on, default value is used for result name.
7151 # @return New GEOM.GEOM_Object, containing the translated object.
7153 # @ref tui_translation "Example"
7154 def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
7156 Translate the given object along the given vector on given distance,
7157 creating its copy before the translation.
7160 theObject The object to be translated.
7161 theVector The translation vector.
7162 theDistance The translation distance.
7163 theName Object name; when specified, this parameter is used
7164 for result publication in the study. Otherwise, if automatic
7165 publication is switched on, default value is used for result name.
7168 New GEOM.GEOM_Object, containing the translated object.
7170 # Example: see GEOM_TestAll.py
7171 theDistance,Parameters = ParseParameters(theDistance)
7172 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
7173 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
7174 anObj.SetParameters(Parameters)
7175 self._autoPublish(anObj, theName, "translated")
7178 ## Rotate the given object around the given axis on the given angle.
7179 # @param theObject The object to be rotated.
7180 # @param theAxis Rotation axis.
7181 # @param theAngle Rotation angle in radians.
7182 # @param theCopy Flag used to rotate object itself or create a copy.
7184 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7185 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
7187 # @ref tui_rotation "Example"
7188 def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
7190 Rotate the given object around the given axis on the given angle.
7193 theObject The object to be rotated.
7194 theAxis Rotation axis.
7195 theAngle Rotation angle in radians.
7196 theCopy Flag used to rotate object itself or create a copy.
7199 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7200 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
7202 # Example: see GEOM_TestAll.py
7204 if isinstance(theAngle,str):
7206 theAngle, Parameters = ParseParameters(theAngle)
7208 theAngle = theAngle*math.pi/180.0
7210 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
7212 anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
7213 RaiseIfFailed("Rotate", self.TrsfOp)
7214 anObj.SetParameters(Parameters)
7217 ## Rotate the given object around the given axis
7218 # on the given angle, creating its copy before the rotatation.
7219 # @param theObject The object to be rotated.
7220 # @param theAxis Rotation axis.
7221 # @param theAngle Rotation angle in radians.
7222 # @param theName Object name; when specified, this parameter is used
7223 # for result publication in the study. Otherwise, if automatic
7224 # publication is switched on, default value is used for result name.
7226 # @return New GEOM.GEOM_Object, containing the rotated object.
7228 # @ref tui_rotation "Example"
7229 def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
7231 Rotate the given object around the given axis
7232 on the given angle, creating its copy before the rotatation.
7235 theObject The object to be rotated.
7236 theAxis Rotation axis.
7237 theAngle Rotation angle in radians.
7238 theName Object name; when specified, this parameter is used
7239 for result publication in the study. Otherwise, if automatic
7240 publication is switched on, default value is used for result name.
7243 New GEOM.GEOM_Object, containing the rotated object.
7245 # Example: see GEOM_TestAll.py
7247 if isinstance(theAngle,str):
7249 theAngle, Parameters = ParseParameters(theAngle)
7251 theAngle = theAngle*math.pi/180.0
7252 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
7253 RaiseIfFailed("RotateCopy", self.TrsfOp)
7254 anObj.SetParameters(Parameters)
7255 self._autoPublish(anObj, theName, "rotated")
7258 ## Rotate given object around vector perpendicular to plane
7259 # containing three points.
7260 # @param theObject The object to be rotated.
7261 # @param theCentPoint central point the axis is the vector perpendicular to the plane
7262 # containing the three points.
7263 # @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
7264 # @param theCopy Flag used to rotate object itself or create a copy.
7265 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7266 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
7267 def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
7269 Rotate given object around vector perpendicular to plane
7270 containing three points.
7273 theObject The object to be rotated.
7274 theCentPoint central point the axis is the vector perpendicular to the plane
7275 containing the three points.
7276 thePoint1,thePoint2 points in a perpendicular plane of the axis.
7277 theCopy Flag used to rotate object itself or create a copy.
7280 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7281 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
7284 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
7286 anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
7287 RaiseIfFailed("RotateThreePoints", self.TrsfOp)
7290 ## Rotate given object around vector perpendicular to plane
7291 # containing three points, creating its copy before the rotatation.
7292 # @param theObject The object to be rotated.
7293 # @param theCentPoint central point the axis is the vector perpendicular to the plane
7294 # containing the three points.
7295 # @param thePoint1,thePoint2 in a perpendicular plane of the axis.
7296 # @param theName Object name; when specified, this parameter is used
7297 # for result publication in the study. Otherwise, if automatic
7298 # publication is switched on, default value is used for result name.
7300 # @return New GEOM.GEOM_Object, containing the rotated object.
7302 # @ref tui_rotation "Example"
7303 def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
7305 Rotate given object around vector perpendicular to plane
7306 containing three points, creating its copy before the rotatation.
7309 theObject The object to be rotated.
7310 theCentPoint central point the axis is the vector perpendicular to the plane
7311 containing the three points.
7312 thePoint1,thePoint2 in a perpendicular plane of the axis.
7313 theName Object name; when specified, this parameter is used
7314 for result publication in the study. Otherwise, if automatic
7315 publication is switched on, default value is used for result name.
7318 New GEOM.GEOM_Object, containing the rotated object.
7320 # Example: see GEOM_TestAll.py
7321 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
7322 RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
7323 self._autoPublish(anObj, theName, "rotated")
7326 ## Scale the given object by the specified factor.
7327 # @param theObject The object to be scaled.
7328 # @param thePoint Center point for scaling.
7329 # Passing None for it means scaling relatively the origin of global CS.
7330 # @param theFactor Scaling factor value.
7331 # @param theCopy Flag used to scale object itself or create a copy.
7332 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7333 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
7334 def Scale(self, theObject, thePoint, theFactor, theCopy=False):
7336 Scale the given object by the specified factor.
7339 theObject The object to be scaled.
7340 thePoint Center point for scaling.
7341 Passing None for it means scaling relatively the origin of global CS.
7342 theFactor Scaling factor value.
7343 theCopy Flag used to scale object itself or create a copy.
7346 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7347 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
7349 # Example: see GEOM_TestAll.py
7350 theFactor, Parameters = ParseParameters(theFactor)
7352 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
7354 anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
7355 RaiseIfFailed("Scale", self.TrsfOp)
7356 anObj.SetParameters(Parameters)
7359 ## Scale the given object by the factor, creating its copy before the scaling.
7360 # @param theObject The object to be scaled.
7361 # @param thePoint Center point for scaling.
7362 # Passing None for it means scaling relatively the origin of global CS.
7363 # @param theFactor Scaling factor value.
7364 # @param theName Object name; when specified, this parameter is used
7365 # for result publication in the study. Otherwise, if automatic
7366 # publication is switched on, default value is used for result name.
7368 # @return New GEOM.GEOM_Object, containing the scaled shape.
7370 # @ref tui_scale "Example"
7371 def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
7373 Scale the given object by the factor, creating its copy before the scaling.
7376 theObject The object to be scaled.
7377 thePoint Center point for scaling.
7378 Passing None for it means scaling relatively the origin of global CS.
7379 theFactor Scaling factor value.
7380 theName Object name; when specified, this parameter is used
7381 for result publication in the study. Otherwise, if automatic
7382 publication is switched on, default value is used for result name.
7385 New GEOM.GEOM_Object, containing the scaled shape.
7387 # Example: see GEOM_TestAll.py
7388 theFactor, Parameters = ParseParameters(theFactor)
7389 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
7390 RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
7391 anObj.SetParameters(Parameters)
7392 self._autoPublish(anObj, theName, "scaled")
7395 ## Scale the given object by different factors along coordinate axes.
7396 # @param theObject The object to be scaled.
7397 # @param thePoint Center point for scaling.
7398 # Passing None for it means scaling relatively the origin of global CS.
7399 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7400 # @param theCopy Flag used to scale object itself or create a copy.
7401 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7402 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
7403 def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
7405 Scale the given object by different factors along coordinate axes.
7408 theObject The object to be scaled.
7409 thePoint Center point for scaling.
7410 Passing None for it means scaling relatively the origin of global CS.
7411 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7412 theCopy Flag used to scale object itself or create a copy.
7415 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7416 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
7418 # Example: see GEOM_TestAll.py
7419 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
7421 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
7422 theFactorX, theFactorY, theFactorZ)
7424 anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
7425 theFactorX, theFactorY, theFactorZ)
7426 RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
7427 anObj.SetParameters(Parameters)
7430 ## Scale the given object by different factors along coordinate axes,
7431 # creating its copy before the scaling.
7432 # @param theObject The object to be scaled.
7433 # @param thePoint Center point for scaling.
7434 # Passing None for it means scaling relatively the origin of global CS.
7435 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7436 # @param theName Object name; when specified, this parameter is used
7437 # for result publication in the study. Otherwise, if automatic
7438 # publication is switched on, default value is used for result name.
7440 # @return New GEOM.GEOM_Object, containing the scaled shape.
7442 # @ref swig_scale "Example"
7443 def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
7445 Scale the given object by different factors along coordinate axes,
7446 creating its copy before the scaling.
7449 theObject The object to be scaled.
7450 thePoint Center point for scaling.
7451 Passing None for it means scaling relatively the origin of global CS.
7452 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7453 theName Object name; when specified, this parameter is used
7454 for result publication in the study. Otherwise, if automatic
7455 publication is switched on, default value is used for result name.
7458 New GEOM.GEOM_Object, containing the scaled shape.
7460 # Example: see GEOM_TestAll.py
7461 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
7462 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
7463 theFactorX, theFactorY, theFactorZ)
7464 RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
7465 anObj.SetParameters(Parameters)
7466 self._autoPublish(anObj, theName, "scaled")
7469 ## Mirror an object relatively the given plane.
7470 # @param theObject The object to be mirrored.
7471 # @param thePlane Plane of symmetry.
7472 # @param theCopy Flag used to mirror object itself or create a copy.
7473 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7474 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7475 def MirrorByPlane(self, theObject, thePlane, theCopy=False):
7477 Mirror an object relatively the given plane.
7480 theObject The object to be mirrored.
7481 thePlane Plane of symmetry.
7482 theCopy Flag used to mirror object itself or create a copy.
7485 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7486 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7489 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
7491 anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
7492 RaiseIfFailed("MirrorByPlane", self.TrsfOp)
7495 ## Create an object, symmetrical
7496 # to the given one relatively the given plane.
7497 # @param theObject The object to be mirrored.
7498 # @param thePlane Plane of symmetry.
7499 # @param theName Object name; when specified, this parameter is used
7500 # for result publication in the study. Otherwise, if automatic
7501 # publication is switched on, default value is used for result name.
7503 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7505 # @ref tui_mirror "Example"
7506 def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
7508 Create an object, symmetrical to the given one relatively the given plane.
7511 theObject The object to be mirrored.
7512 thePlane Plane of symmetry.
7513 theName Object name; when specified, this parameter is used
7514 for result publication in the study. Otherwise, if automatic
7515 publication is switched on, default value is used for result name.
7518 New GEOM.GEOM_Object, containing the mirrored shape.
7520 # Example: see GEOM_TestAll.py
7521 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
7522 RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
7523 self._autoPublish(anObj, theName, "mirrored")
7526 ## Mirror an object relatively the given axis.
7527 # @param theObject The object to be mirrored.
7528 # @param theAxis Axis of symmetry.
7529 # @param theCopy Flag used to mirror object itself or create a copy.
7530 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7531 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7532 def MirrorByAxis(self, theObject, theAxis, theCopy=False):
7534 Mirror an object relatively the given axis.
7537 theObject The object to be mirrored.
7538 theAxis Axis of symmetry.
7539 theCopy Flag used to mirror object itself or create a copy.
7542 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7543 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7546 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
7548 anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
7549 RaiseIfFailed("MirrorByAxis", self.TrsfOp)
7552 ## Create an object, symmetrical
7553 # to the given one relatively the given axis.
7554 # @param theObject The object to be mirrored.
7555 # @param theAxis Axis of symmetry.
7556 # @param theName Object name; when specified, this parameter is used
7557 # for result publication in the study. Otherwise, if automatic
7558 # publication is switched on, default value is used for result name.
7560 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7562 # @ref tui_mirror "Example"
7563 def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
7565 Create an object, symmetrical to the given one relatively the given axis.
7568 theObject The object to be mirrored.
7569 theAxis Axis of symmetry.
7570 theName Object name; when specified, this parameter is used
7571 for result publication in the study. Otherwise, if automatic
7572 publication is switched on, default value is used for result name.
7575 New GEOM.GEOM_Object, containing the mirrored shape.
7577 # Example: see GEOM_TestAll.py
7578 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
7579 RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
7580 self._autoPublish(anObj, theName, "mirrored")
7583 ## Mirror an object relatively the given point.
7584 # @param theObject The object to be mirrored.
7585 # @param thePoint Point of symmetry.
7586 # @param theCopy Flag used to mirror object itself or create a copy.
7587 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7588 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7589 def MirrorByPoint(self, theObject, thePoint, theCopy=False):
7591 Mirror an object relatively the given point.
7594 theObject The object to be mirrored.
7595 thePoint Point of symmetry.
7596 theCopy Flag used to mirror object itself or create a copy.
7599 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7600 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7602 # Example: see GEOM_TestAll.py
7604 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
7606 anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
7607 RaiseIfFailed("MirrorByPoint", self.TrsfOp)
7610 ## Create an object, symmetrical
7611 # to the given one relatively the given point.
7612 # @param theObject The object to be mirrored.
7613 # @param thePoint Point of symmetry.
7614 # @param theName Object name; when specified, this parameter is used
7615 # for result publication in the study. Otherwise, if automatic
7616 # publication is switched on, default value is used for result name.
7618 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7620 # @ref tui_mirror "Example"
7621 def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
7623 Create an object, symmetrical
7624 to the given one relatively the given point.
7627 theObject The object to be mirrored.
7628 thePoint Point of symmetry.
7629 theName Object name; when specified, this parameter is used
7630 for result publication in the study. Otherwise, if automatic
7631 publication is switched on, default value is used for result name.
7634 New GEOM.GEOM_Object, containing the mirrored shape.
7636 # Example: see GEOM_TestAll.py
7637 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
7638 RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
7639 self._autoPublish(anObj, theName, "mirrored")
7642 ## Modify the location of the given object.
7643 # @param theObject The object to be displaced.
7644 # @param theStartLCS Coordinate system to perform displacement from it.\n
7645 # If \a theStartLCS is NULL, displacement
7646 # will be performed from global CS.\n
7647 # If \a theObject itself is used as \a theStartLCS,
7648 # its location will be changed to \a theEndLCS.
7649 # @param theEndLCS Coordinate system to perform displacement to it.
7650 # @param theCopy Flag used to displace object itself or create a copy.
7651 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7652 # new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
7653 def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
7655 Modify the Location of the given object by LCS, creating its copy before the setting.
7658 theObject The object to be displaced.
7659 theStartLCS Coordinate system to perform displacement from it.
7660 If theStartLCS is NULL, displacement
7661 will be performed from global CS.
7662 If theObject itself is used as theStartLCS,
7663 its location will be changed to theEndLCS.
7664 theEndLCS Coordinate system to perform displacement to it.
7665 theCopy Flag used to displace object itself or create a copy.
7668 Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7669 new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
7671 # Example: see GEOM_TestAll.py
7673 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
7675 anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
7676 RaiseIfFailed("Displace", self.TrsfOp)
7679 ## Modify the Location of the given object by LCS,
7680 # creating its copy before the setting.
7681 # @param theObject The object to be displaced.
7682 # @param theStartLCS Coordinate system to perform displacement from it.\n
7683 # If \a theStartLCS is NULL, displacement
7684 # will be performed from global CS.\n
7685 # If \a theObject itself is used as \a theStartLCS,
7686 # its location will be changed to \a theEndLCS.
7687 # @param theEndLCS Coordinate system to perform displacement to it.
7688 # @param theName Object name; when specified, this parameter is used
7689 # for result publication in the study. Otherwise, if automatic
7690 # publication is switched on, default value is used for result name.
7692 # @return New GEOM.GEOM_Object, containing the displaced shape.
7694 # @ref tui_modify_location "Example"
7695 def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
7697 Modify the Location of the given object by LCS, creating its copy before the setting.
7700 theObject The object to be displaced.
7701 theStartLCS Coordinate system to perform displacement from it.
7702 If theStartLCS is NULL, displacement
7703 will be performed from global CS.
7704 If theObject itself is used as theStartLCS,
7705 its location will be changed to theEndLCS.
7706 theEndLCS Coordinate system to perform displacement to it.
7707 theName Object name; when specified, this parameter is used
7708 for result publication in the study. Otherwise, if automatic
7709 publication is switched on, default value is used for result name.
7712 New GEOM.GEOM_Object, containing the displaced shape.
7715 # create local coordinate systems
7716 cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
7717 cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0)
7718 # modify the location of the given object
7719 position = geompy.MakePosition(cylinder, cs1, cs2)
7721 # Example: see GEOM_TestAll.py
7722 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
7723 RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
7724 self._autoPublish(anObj, theName, "displaced")
7727 ## Modify the Location of the given object by Path.
7728 # @param theObject The object to be displaced.
7729 # @param thePath Wire or Edge along that the object will be translated.
7730 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
7731 # @param theCopy is to create a copy objects if true.
7732 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
7733 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
7734 # new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
7736 # @ref tui_modify_location "Example"
7737 def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
7739 Modify the Location of the given object by Path.
7742 theObject The object to be displaced.
7743 thePath Wire or Edge along that the object will be translated.
7744 theDistance progress of Path (0 = start location, 1 = end of path location).
7745 theCopy is to create a copy objects if true.
7746 theReverse 0 - for usual direction, 1 - to reverse path direction.
7749 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
7750 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
7753 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
7755 # Example: see GEOM_TestAll.py
7756 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse)
7757 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
7760 ## Modify the Location of the given object by Path, creating its copy before the operation.
7761 # @param theObject The object to be displaced.
7762 # @param thePath Wire or Edge along that the object will be translated.
7763 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
7764 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
7765 # @param theName Object name; when specified, this parameter is used
7766 # for result publication in the study. Otherwise, if automatic
7767 # publication is switched on, default value is used for result name.
7769 # @return New GEOM.GEOM_Object, containing the displaced shape.
7770 def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
7772 Modify the Location of the given object by Path, creating its copy before the operation.
7775 theObject The object to be displaced.
7776 thePath Wire or Edge along that the object will be translated.
7777 theDistance progress of Path (0 = start location, 1 = end of path location).
7778 theReverse 0 - for usual direction, 1 - to reverse path direction.
7779 theName Object name; when specified, this parameter is used
7780 for result publication in the study. Otherwise, if automatic
7781 publication is switched on, default value is used for result name.
7784 New GEOM.GEOM_Object, containing the displaced shape.
7786 # Example: see GEOM_TestAll.py
7787 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
7788 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
7789 self._autoPublish(anObj, theName, "displaced")
7792 ## Offset given shape.
7793 # @param theObject The base object for the offset.
7794 # @param theOffset Offset value.
7795 # @param theCopy Flag used to offset object itself or create a copy.
7796 # @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7797 # new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
7798 def Offset(self, theObject, theOffset, theCopy=False):
7803 theObject The base object for the offset.
7804 theOffset Offset value.
7805 theCopy Flag used to offset object itself or create a copy.
7808 Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7809 new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
7811 theOffset, Parameters = ParseParameters(theOffset)
7813 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
7815 anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
7816 RaiseIfFailed("Offset", self.TrsfOp)
7817 anObj.SetParameters(Parameters)
7820 ## Create new object as offset of the given one.
7821 # @param theObject The base object for the offset.
7822 # @param theOffset Offset value.
7823 # @param theName Object name; when specified, this parameter is used
7824 # for result publication in the study. Otherwise, if automatic
7825 # publication is switched on, default value is used for result name.
7827 # @return New GEOM.GEOM_Object, containing the offset object.
7829 # @ref tui_offset "Example"
7830 def MakeOffset(self, theObject, theOffset, theName=None):
7832 Create new object as offset of the given one.
7835 theObject The base object for the offset.
7836 theOffset Offset value.
7837 theName Object name; when specified, this parameter is used
7838 for result publication in the study. Otherwise, if automatic
7839 publication is switched on, default value is used for result name.
7842 New GEOM.GEOM_Object, containing the offset object.
7845 box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
7846 # create a new object as offset of the given object
7847 offset = geompy.MakeOffset(box, 70.)
7849 # Example: see GEOM_TestAll.py
7850 theOffset, Parameters = ParseParameters(theOffset)
7851 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
7852 RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
7853 anObj.SetParameters(Parameters)
7854 self._autoPublish(anObj, theName, "offset")
7857 ## Create new object as projection of the given one on a 2D surface.
7858 # @param theSource The source object for the projection. It can be a point, edge or wire.
7859 # @param theTarget The target object. It can be planar or cylindrical face.
7860 # @param theName Object name; when specified, this parameter is used
7861 # for result publication in the study. Otherwise, if automatic
7862 # publication is switched on, default value is used for result name.
7864 # @return New GEOM.GEOM_Object, containing the projection.
7866 # @ref tui_projection "Example"
7867 def MakeProjection(self, theSource, theTarget, theName=None):
7869 Create new object as projection of the given one on a 2D surface.
7872 theSource The source object for the projection. It can be a point, edge or wire.
7873 theTarget The target object. It can be planar or cylindrical face.
7874 theName Object name; when specified, this parameter is used
7875 for result publication in the study. Otherwise, if automatic
7876 publication is switched on, default value is used for result name.
7879 New GEOM.GEOM_Object, containing the projection.
7881 # Example: see GEOM_TestAll.py
7882 anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
7883 RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
7884 self._autoPublish(anObj, theName, "projection")
7887 # -----------------------------------------------------------------------------
7889 # -----------------------------------------------------------------------------
7891 ## Translate the given object along the given vector a given number times
7892 # @param theObject The object to be translated.
7893 # @param theVector Direction of the translation. DX if None.
7894 # @param theStep Distance to translate on.
7895 # @param theNbTimes Quantity of translations to be done.
7896 # @param theName Object name; when specified, this parameter is used
7897 # for result publication in the study. Otherwise, if automatic
7898 # publication is switched on, default value is used for result name.
7900 # @return New GEOM.GEOM_Object, containing compound of all
7901 # the shapes, obtained after each translation.
7903 # @ref tui_multi_translation "Example"
7904 def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
7906 Translate the given object along the given vector a given number times
7909 theObject The object to be translated.
7910 theVector Direction of the translation. DX if None.
7911 theStep Distance to translate on.
7912 theNbTimes Quantity of translations to be done.
7913 theName Object name; when specified, this parameter is used
7914 for result publication in the study. Otherwise, if automatic
7915 publication is switched on, default value is used for result name.
7918 New GEOM.GEOM_Object, containing compound of all
7919 the shapes, obtained after each translation.
7922 r1d = geompy.MakeMultiTranslation1D(prism, vect, 20, 4)
7924 # Example: see GEOM_TestAll.py
7925 theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes)
7926 anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
7927 RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
7928 anObj.SetParameters(Parameters)
7929 self._autoPublish(anObj, theName, "multitranslation")
7932 ## Conseqently apply two specified translations to theObject specified number of times.
7933 # @param theObject The object to be translated.
7934 # @param theVector1 Direction of the first translation. DX if None.
7935 # @param theStep1 Step of the first translation.
7936 # @param theNbTimes1 Quantity of translations to be done along theVector1.
7937 # @param theVector2 Direction of the second translation. DY if None.
7938 # @param theStep2 Step of the second translation.
7939 # @param theNbTimes2 Quantity of translations to be done along theVector2.
7940 # @param theName Object name; when specified, this parameter is used
7941 # for result publication in the study. Otherwise, if automatic
7942 # publication is switched on, default value is used for result name.
7944 # @return New GEOM.GEOM_Object, containing compound of all
7945 # the shapes, obtained after each translation.
7947 # @ref tui_multi_translation "Example"
7948 def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
7949 theVector2, theStep2, theNbTimes2, theName=None):
7951 Conseqently apply two specified translations to theObject specified number of times.
7954 theObject The object to be translated.
7955 theVector1 Direction of the first translation. DX if None.
7956 theStep1 Step of the first translation.
7957 theNbTimes1 Quantity of translations to be done along theVector1.
7958 theVector2 Direction of the second translation. DY if None.
7959 theStep2 Step of the second translation.
7960 theNbTimes2 Quantity of translations to be done along theVector2.
7961 theName Object name; when specified, this parameter is used
7962 for result publication in the study. Otherwise, if automatic
7963 publication is switched on, default value is used for result name.
7966 New GEOM.GEOM_Object, containing compound of all
7967 the shapes, obtained after each translation.
7970 tr2d = geompy.MakeMultiTranslation2D(prism, vect1, 20, 4, vect2, 80, 3)
7972 # Example: see GEOM_TestAll.py
7973 theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2)
7974 anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
7975 theVector2, theStep2, theNbTimes2)
7976 RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
7977 anObj.SetParameters(Parameters)
7978 self._autoPublish(anObj, theName, "multitranslation")
7981 ## Rotate the given object around the given axis a given number times.
7982 # Rotation angle will be 2*PI/theNbTimes.
7983 # @param theObject The object to be rotated.
7984 # @param theAxis The rotation axis. DZ if None.
7985 # @param theNbTimes Quantity of rotations to be done.
7986 # @param theName Object name; when specified, this parameter is used
7987 # for result publication in the study. Otherwise, if automatic
7988 # publication is switched on, default value is used for result name.
7990 # @return New GEOM.GEOM_Object, containing compound of all the
7991 # shapes, obtained after each rotation.
7993 # @ref tui_multi_rotation "Example"
7994 def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
7996 Rotate the given object around the given axis a given number times.
7997 Rotation angle will be 2*PI/theNbTimes.
8000 theObject The object to be rotated.
8001 theAxis The rotation axis. DZ if None.
8002 theNbTimes Quantity of rotations to be done.
8003 theName Object name; when specified, this parameter is used
8004 for result publication in the study. Otherwise, if automatic
8005 publication is switched on, default value is used for result name.
8008 New GEOM.GEOM_Object, containing compound of all the
8009 shapes, obtained after each rotation.
8012 rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
8014 # Example: see GEOM_TestAll.py
8015 theNbTimes, Parameters = ParseParameters(theNbTimes)
8016 anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
8017 RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
8018 anObj.SetParameters(Parameters)
8019 self._autoPublish(anObj, theName, "multirotation")
8022 ## Rotate the given object around the given axis
8023 # a given number times on the given angle.
8024 # @param theObject The object to be rotated.
8025 # @param theAxis The rotation axis. DZ if None.
8026 # @param theAngleStep Rotation angle in radians.
8027 # @param theNbTimes Quantity of rotations to be done.
8028 # @param theName Object name; when specified, this parameter is used
8029 # for result publication in the study. Otherwise, if automatic
8030 # publication is switched on, default value is used for result name.
8032 # @return New GEOM.GEOM_Object, containing compound of all the
8033 # shapes, obtained after each rotation.
8035 # @ref tui_multi_rotation "Example"
8036 def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
8038 Rotate the given object around the given axis
8039 a given number times on the given angle.
8042 theObject The object to be rotated.
8043 theAxis The rotation axis. DZ if None.
8044 theAngleStep Rotation angle in radians.
8045 theNbTimes Quantity of rotations to be done.
8046 theName Object name; when specified, this parameter is used
8047 for result publication in the study. Otherwise, if automatic
8048 publication is switched on, default value is used for result name.
8051 New GEOM.GEOM_Object, containing compound of all the
8052 shapes, obtained after each rotation.
8055 rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
8057 # Example: see GEOM_TestAll.py
8058 theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
8059 anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
8060 RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
8061 anObj.SetParameters(Parameters)
8062 self._autoPublish(anObj, theName, "multirotation")
8065 ## Rotate the given object around the given axis a given
8066 # number times and multi-translate each rotation result.
8067 # Rotation angle will be 2*PI/theNbTimes1.
8068 # Translation direction passes through center of gravity
8069 # of rotated shape and its projection on the rotation axis.
8070 # @param theObject The object to be rotated.
8071 # @param theAxis Rotation axis. DZ if None.
8072 # @param theNbTimes1 Quantity of rotations to be done.
8073 # @param theRadialStep Translation distance.
8074 # @param theNbTimes2 Quantity of translations to be done.
8075 # @param theName Object name; when specified, this parameter is used
8076 # for result publication in the study. Otherwise, if automatic
8077 # publication is switched on, default value is used for result name.
8079 # @return New GEOM.GEOM_Object, containing compound of all the
8080 # shapes, obtained after each transformation.
8082 # @ref tui_multi_rotation "Example"
8083 def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
8085 Rotate the given object around the
8086 given axis on the given angle a given number
8087 times and multi-translate each rotation result.
8088 Translation direction passes through center of gravity
8089 of rotated shape and its projection on the rotation axis.
8092 theObject The object to be rotated.
8093 theAxis Rotation axis. DZ if None.
8094 theNbTimes1 Quantity of rotations to be done.
8095 theRadialStep Translation distance.
8096 theNbTimes2 Quantity of translations to be done.
8097 theName Object name; when specified, this parameter is used
8098 for result publication in the study. Otherwise, if automatic
8099 publication is switched on, default value is used for result name.
8102 New GEOM.GEOM_Object, containing compound of all the
8103 shapes, obtained after each transformation.
8106 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
8108 # Example: see GEOM_TestAll.py
8109 theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
8110 anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
8111 RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
8112 anObj.SetParameters(Parameters)
8113 self._autoPublish(anObj, theName, "multirotation")
8116 ## Rotate the given object around the
8117 # given axis on the given angle a given number
8118 # times and multi-translate each rotation result.
8119 # Translation direction passes through center of gravity
8120 # of rotated shape and its projection on the rotation axis.
8121 # @param theObject The object to be rotated.
8122 # @param theAxis Rotation axis. DZ if None.
8123 # @param theAngleStep Rotation angle in radians.
8124 # @param theNbTimes1 Quantity of rotations to be done.
8125 # @param theRadialStep Translation distance.
8126 # @param theNbTimes2 Quantity of translations to be done.
8127 # @param theName Object name; when specified, this parameter is used
8128 # for result publication in the study. Otherwise, if automatic
8129 # publication is switched on, default value is used for result name.
8131 # @return New GEOM.GEOM_Object, containing compound of all the
8132 # shapes, obtained after each transformation.
8134 # @ref tui_multi_rotation "Example"
8135 def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
8137 Rotate the given object around the
8138 given axis on the given angle a given number
8139 times and multi-translate each rotation result.
8140 Translation direction passes through center of gravity
8141 of rotated shape and its projection on the rotation axis.
8144 theObject The object to be rotated.
8145 theAxis Rotation axis. DZ if None.
8146 theAngleStep Rotation angle in radians.
8147 theNbTimes1 Quantity of rotations to be done.
8148 theRadialStep Translation distance.
8149 theNbTimes2 Quantity of translations to be done.
8150 theName Object name; when specified, this parameter is used
8151 for result publication in the study. Otherwise, if automatic
8152 publication is switched on, default value is used for result name.
8155 New GEOM.GEOM_Object, containing compound of all the
8156 shapes, obtained after each transformation.
8159 rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
8161 # Example: see GEOM_TestAll.py
8162 theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
8163 anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
8164 RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
8165 anObj.SetParameters(Parameters)
8166 self._autoPublish(anObj, theName, "multirotation")
8169 ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
8171 # @ref swig_MakeMultiRotation "Example"
8172 def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
8174 The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
8177 pz = geompy.MakeVertex(0, 0, 100)
8178 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8179 MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
8181 # Example: see GEOM_TestOthers.py
8182 aVec = self.MakeLine(aPoint,aDir)
8183 # note: auto-publishing is done in self.MultiRotate1D()
8184 anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
8187 ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
8189 # @ref swig_MakeMultiRotation "Example"
8190 def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
8192 The same, as geompy.MultiRotate1D, but axis is given by direction and point
8195 pz = geompy.MakeVertex(0, 0, 100)
8196 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8197 MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
8199 # Example: see GEOM_TestOthers.py
8200 aVec = self.MakeLine(aPoint,aDir)
8201 # note: auto-publishing is done in self.MultiRotate1D()
8202 anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
8205 ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
8207 # @ref swig_MakeMultiRotation "Example"
8208 def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
8210 The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
8213 pz = geompy.MakeVertex(0, 0, 100)
8214 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8215 MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
8217 # Example: see GEOM_TestOthers.py
8218 aVec = self.MakeLine(aPoint,aDir)
8219 # note: auto-publishing is done in self.MultiRotate2DNbTimes()
8220 anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
8223 ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
8225 # @ref swig_MakeMultiRotation "Example"
8226 def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
8228 The same, as MultiRotate2DByStep(), but axis is given by direction and point
8231 pz = geompy.MakeVertex(0, 0, 100)
8232 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8233 MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
8235 # Example: see GEOM_TestOthers.py
8236 aVec = self.MakeLine(aPoint,aDir)
8237 # note: auto-publishing is done in self.MultiRotate2D()
8238 anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
8241 # end of l3_transform
8244 ## @addtogroup l3_transform_d
8247 ## Deprecated method. Use MultiRotate1DNbTimes instead.
8248 def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
8250 Deprecated method. Use MultiRotate1DNbTimes instead.
8252 print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
8253 return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
8255 ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
8256 # This method is DEPRECATED. Use MultiRotate2DByStep() instead.
8257 def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
8259 The same, as MultiRotate2DByStep(), but theAngle is in degrees.
8260 This method is DEPRECATED. Use MultiRotate2DByStep() instead.
8263 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
8265 print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
8266 theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
8267 anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
8268 RaiseIfFailed("MultiRotate2D", self.TrsfOp)
8269 anObj.SetParameters(Parameters)
8270 self._autoPublish(anObj, theName, "multirotation")
8273 ## The same, as MultiRotate1D(), but axis is given by direction and point
8274 # This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
8275 def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
8277 The same, as geompy.MultiRotate1D, but axis is given by direction and point.
8278 This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
8281 pz = geompy.MakeVertex(0, 0, 100)
8282 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8283 MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
8285 print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
8286 aVec = self.MakeLine(aPoint,aDir)
8287 # note: auto-publishing is done in self.MultiRotate1D()
8288 anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
8291 ## The same, as MultiRotate2D(), but axis is given by direction and point
8292 # This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
8293 def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
8295 The same, as MultiRotate2D(), but axis is given by direction and point
8296 This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
8299 pz = geompy.MakeVertex(0, 0, 100)
8300 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8301 MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
8303 print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
8304 aVec = self.MakeLine(aPoint,aDir)
8305 # note: auto-publishing is done in self.MultiRotate2D()
8306 anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
8309 # end of l3_transform_d
8312 ## @addtogroup l3_local
8315 ## Perform a fillet on all edges of the given shape.
8316 # @param theShape Shape, to perform fillet on.
8317 # @param theR Fillet radius.
8318 # @param theName Object name; when specified, this parameter is used
8319 # for result publication in the study. Otherwise, if automatic
8320 # publication is switched on, default value is used for result name.
8322 # @return New GEOM.GEOM_Object, containing the result shape.
8324 # @ref tui_fillet "Example 1"
8325 # \n @ref swig_MakeFilletAll "Example 2"
8326 def MakeFilletAll(self, theShape, theR, theName=None):
8328 Perform a fillet on all edges of the given shape.
8331 theShape Shape, to perform fillet on.
8333 theName Object name; when specified, this parameter is used
8334 for result publication in the study. Otherwise, if automatic
8335 publication is switched on, default value is used for result name.
8338 New GEOM.GEOM_Object, containing the result shape.
8341 filletall = geompy.MakeFilletAll(prism, 10.)
8343 # Example: see GEOM_TestOthers.py
8344 theR,Parameters = ParseParameters(theR)
8345 anObj = self.LocalOp.MakeFilletAll(theShape, theR)
8346 RaiseIfFailed("MakeFilletAll", self.LocalOp)
8347 anObj.SetParameters(Parameters)
8348 self._autoPublish(anObj, theName, "fillet")
8351 ## Perform a fillet on the specified edges/faces of the given shape
8352 # @param theShape Shape, to perform fillet on.
8353 # @param theR Fillet radius.
8354 # @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
8355 # @param theListShapes Global indices of edges/faces to perform fillet on.
8356 # @param theName Object name; when specified, this parameter is used
8357 # for result publication in the study. Otherwise, if automatic
8358 # publication is switched on, default value is used for result name.
8360 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8362 # @return New GEOM.GEOM_Object, containing the result shape.
8364 # @ref tui_fillet "Example"
8365 def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
8367 Perform a fillet on the specified edges/faces of the given shape
8370 theShape Shape, to perform fillet on.
8372 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
8373 theListShapes Global indices of edges/faces to perform fillet on.
8374 theName Object name; when specified, this parameter is used
8375 for result publication in the study. Otherwise, if automatic
8376 publication is switched on, default value is used for result name.
8379 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8382 New GEOM.GEOM_Object, containing the result shape.
8385 # get the list of IDs (IDList) for the fillet
8386 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
8388 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
8389 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
8390 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
8391 # make a fillet on the specified edges of the given shape
8392 fillet = geompy.MakeFillet(prism, 10., geompy.ShapeType["EDGE"], IDlist_e)
8394 # Example: see GEOM_TestAll.py
8395 theR,Parameters = ParseParameters(theR)
8397 if theShapeType == self.ShapeType["EDGE"]:
8398 anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
8399 RaiseIfFailed("MakeFilletEdges", self.LocalOp)
8401 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
8402 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
8403 anObj.SetParameters(Parameters)
8404 self._autoPublish(anObj, theName, "fillet")
8407 ## The same that MakeFillet() but with two Fillet Radius R1 and R2
8408 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
8410 The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
8413 # get the list of IDs (IDList) for the fillet
8414 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
8416 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
8417 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
8418 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
8419 # make a fillet on the specified edges of the given shape
8420 fillet = geompy.MakeFillet(prism, 10., 15., geompy.ShapeType["EDGE"], IDlist_e)
8422 theR1,theR2,Parameters = ParseParameters(theR1,theR2)
8424 if theShapeType == self.ShapeType["EDGE"]:
8425 anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
8426 RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
8428 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
8429 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
8430 anObj.SetParameters(Parameters)
8431 self._autoPublish(anObj, theName, "fillet")
8434 ## Perform a fillet on the specified edges of the given shape
8435 # @param theShape Wire Shape to perform fillet on.
8436 # @param theR Fillet radius.
8437 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
8438 # \note Global index of sub-shape can be obtained, using method GetSubShapeID()
8439 # \note The list of vertices could be empty,
8440 # in this case fillet will done done at all vertices in wire
8441 # @param doIgnoreSecantVertices If FALSE, fillet radius is always limited
8442 # by the length of the edges, nearest to the fillet vertex.
8443 # But sometimes the next edge is C1 continuous with the one, nearest to
8444 # the fillet point, and such two (or more) edges can be united to allow
8445 # bigger radius. Set this flag to TRUE to allow collinear edges union,
8446 # thus ignoring the secant vertex (vertices).
8447 # @param theName Object name; when specified, this parameter is used
8448 # for result publication in the study. Otherwise, if automatic
8449 # publication is switched on, default value is used for result name.
8451 # @return New GEOM.GEOM_Object, containing the result shape.
8453 # @ref tui_fillet2d "Example"
8454 def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
8456 Perform a fillet on the specified edges of the given shape
8459 theShape Wire Shape to perform fillet on.
8461 theListOfVertexes Global indices of vertexes to perform fillet on.
8462 doIgnoreSecantVertices If FALSE, fillet radius is always limited
8463 by the length of the edges, nearest to the fillet vertex.
8464 But sometimes the next edge is C1 continuous with the one, nearest to
8465 the fillet point, and such two (or more) edges can be united to allow
8466 bigger radius. Set this flag to TRUE to allow collinear edges union,
8467 thus ignoring the secant vertex (vertices).
8468 theName Object name; when specified, this parameter is used
8469 for result publication in the study. Otherwise, if automatic
8470 publication is switched on, default value is used for result name.
8472 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8474 The list of vertices could be empty,in this case fillet will done done at all vertices in wire
8477 New GEOM.GEOM_Object, containing the result shape.
8481 Wire_1 = geompy.MakeWire([Edge_12, Edge_7, Edge_11, Edge_6, Edge_1,Edge_4])
8482 # make fillet at given wire vertices with giver radius
8483 Fillet_1D_1 = geompy.MakeFillet1D(Wire_1, 55, [3, 4, 6, 8, 10])
8485 # Example: see GEOM_TestAll.py
8486 theR,doIgnoreSecantVertices,Parameters = ParseParameters(theR,doIgnoreSecantVertices)
8487 anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
8488 RaiseIfFailed("MakeFillet1D", self.LocalOp)
8489 anObj.SetParameters(Parameters)
8490 self._autoPublish(anObj, theName, "fillet")
8493 ## Perform a fillet at the specified vertices of the given face/shell.
8494 # @param theShape Face or Shell shape to perform fillet on.
8495 # @param theR Fillet radius.
8496 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
8497 # @param theName Object name; when specified, this parameter is used
8498 # for result publication in the study. Otherwise, if automatic
8499 # publication is switched on, default value is used for result name.
8501 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8503 # @return New GEOM.GEOM_Object, containing the result shape.
8505 # @ref tui_fillet2d "Example"
8506 def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
8508 Perform a fillet at the specified vertices of the given face/shell.
8511 theShape Face or Shell shape to perform fillet on.
8513 theListOfVertexes Global indices of vertexes to perform fillet on.
8514 theName Object name; when specified, this parameter is used
8515 for result publication in the study. Otherwise, if automatic
8516 publication is switched on, default value is used for result name.
8518 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8521 New GEOM.GEOM_Object, containing the result shape.
8524 face = geompy.MakeFaceHW(100, 100, 1)
8525 fillet2d = geompy.MakeFillet2D(face, 30, [7, 9])
8527 # Example: see GEOM_TestAll.py
8528 theR,Parameters = ParseParameters(theR)
8529 anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
8530 RaiseIfFailed("MakeFillet2D", self.LocalOp)
8531 anObj.SetParameters(Parameters)
8532 self._autoPublish(anObj, theName, "fillet")
8535 ## Perform a symmetric chamfer on all edges of the given shape.
8536 # @param theShape Shape, to perform chamfer on.
8537 # @param theD Chamfer size along each face.
8538 # @param theName Object name; when specified, this parameter is used
8539 # for result publication in the study. Otherwise, if automatic
8540 # publication is switched on, default value is used for result name.
8542 # @return New GEOM.GEOM_Object, containing the result shape.
8544 # @ref tui_chamfer "Example 1"
8545 # \n @ref swig_MakeChamferAll "Example 2"
8546 def MakeChamferAll(self, theShape, theD, theName=None):
8548 Perform a symmetric chamfer on all edges of the given shape.
8551 theShape Shape, to perform chamfer on.
8552 theD Chamfer size along each face.
8553 theName Object name; when specified, this parameter is used
8554 for result publication in the study. Otherwise, if automatic
8555 publication is switched on, default value is used for result name.
8558 New GEOM.GEOM_Object, containing the result shape.
8561 chamfer_all = geompy.MakeChamferAll(prism, 10.)
8563 # Example: see GEOM_TestOthers.py
8564 theD,Parameters = ParseParameters(theD)
8565 anObj = self.LocalOp.MakeChamferAll(theShape, theD)
8566 RaiseIfFailed("MakeChamferAll", self.LocalOp)
8567 anObj.SetParameters(Parameters)
8568 self._autoPublish(anObj, theName, "chamfer")
8571 ## Perform a chamfer on edges, common to the specified faces,
8572 # with distance D1 on the Face1
8573 # @param theShape Shape, to perform chamfer on.
8574 # @param theD1 Chamfer size along \a theFace1.
8575 # @param theD2 Chamfer size along \a theFace2.
8576 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
8577 # @param theName Object name; when specified, this parameter is used
8578 # for result publication in the study. Otherwise, if automatic
8579 # publication is switched on, default value is used for result name.
8581 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8583 # @return New GEOM.GEOM_Object, containing the result shape.
8585 # @ref tui_chamfer "Example"
8586 def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
8588 Perform a chamfer on edges, common to the specified faces,
8589 with distance D1 on the Face1
8592 theShape Shape, to perform chamfer on.
8593 theD1 Chamfer size along theFace1.
8594 theD2 Chamfer size along theFace2.
8595 theFace1,theFace2 Global indices of two faces of theShape.
8596 theName Object name; when specified, this parameter is used
8597 for result publication in the study. Otherwise, if automatic
8598 publication is switched on, default value is used for result name.
8601 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8604 New GEOM.GEOM_Object, containing the result shape.
8607 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
8608 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
8609 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
8610 chamfer_e = geompy.MakeChamferEdge(prism, 10., 10., f_ind_1, f_ind_2)
8612 # Example: see GEOM_TestAll.py
8613 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8614 anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
8615 RaiseIfFailed("MakeChamferEdge", self.LocalOp)
8616 anObj.SetParameters(Parameters)
8617 self._autoPublish(anObj, theName, "chamfer")
8620 ## Perform a chamfer on edges
8621 # @param theShape Shape, to perform chamfer on.
8622 # @param theD Chamfer length
8623 # @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8624 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
8625 # @param theName Object name; when specified, this parameter is used
8626 # for result publication in the study. Otherwise, if automatic
8627 # publication is switched on, default value is used for result name.
8629 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8631 # @return New GEOM.GEOM_Object, containing the result shape.
8632 def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
8634 Perform a chamfer on edges
8637 theShape Shape, to perform chamfer on.
8638 theD1 Chamfer size along theFace1.
8639 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
8640 theFace1,theFace2 Global indices of two faces of theShape.
8641 theName Object name; when specified, this parameter is used
8642 for result publication in the study. Otherwise, if automatic
8643 publication is switched on, default value is used for result name.
8646 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8649 New GEOM.GEOM_Object, containing the result shape.
8652 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
8653 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
8654 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
8656 chamfer_e = geompy.MakeChamferEdge(prism, 10., ang, f_ind_1, f_ind_2)
8659 if isinstance(theAngle,str):
8661 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8663 theAngle = theAngle*math.pi/180.0
8664 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
8665 RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
8666 anObj.SetParameters(Parameters)
8667 self._autoPublish(anObj, theName, "chamfer")
8670 ## Perform a chamfer on all edges of the specified faces,
8671 # with distance D1 on the first specified face (if several for one edge)
8672 # @param theShape Shape, to perform chamfer on.
8673 # @param theD1 Chamfer size along face from \a theFaces. If both faces,
8674 # connected to the edge, are in \a theFaces, \a theD1
8675 # will be get along face, which is nearer to \a theFaces beginning.
8676 # @param theD2 Chamfer size along another of two faces, connected to the edge.
8677 # @param theFaces Sequence of global indices of faces of \a theShape.
8678 # @param theName Object name; when specified, this parameter is used
8679 # for result publication in the study. Otherwise, if automatic
8680 # publication is switched on, default value is used for result name.
8682 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8684 # @return New GEOM.GEOM_Object, containing the result shape.
8686 # @ref tui_chamfer "Example"
8687 def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
8689 Perform a chamfer on all edges of the specified faces,
8690 with distance D1 on the first specified face (if several for one edge)
8693 theShape Shape, to perform chamfer on.
8694 theD1 Chamfer size along face from theFaces. If both faces,
8695 connected to the edge, are in theFaces, theD1
8696 will be get along face, which is nearer to theFaces beginning.
8697 theD2 Chamfer size along another of two faces, connected to the edge.
8698 theFaces Sequence of global indices of faces of theShape.
8699 theName Object name; when specified, this parameter is used
8700 for result publication in the study. Otherwise, if automatic
8701 publication is switched on, default value is used for result name.
8703 Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
8706 New GEOM.GEOM_Object, containing the result shape.
8708 # Example: see GEOM_TestAll.py
8709 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8710 anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
8711 RaiseIfFailed("MakeChamferFaces", self.LocalOp)
8712 anObj.SetParameters(Parameters)
8713 self._autoPublish(anObj, theName, "chamfer")
8716 ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
8717 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8719 # @ref swig_FilletChamfer "Example"
8720 def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
8722 The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
8723 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8726 if isinstance(theAngle,str):
8728 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8730 theAngle = theAngle*math.pi/180.0
8731 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
8732 RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
8733 anObj.SetParameters(Parameters)
8734 self._autoPublish(anObj, theName, "chamfer")
8737 ## Perform a chamfer on edges,
8738 # with distance D1 on the first specified face (if several for one edge)
8739 # @param theShape Shape, to perform chamfer on.
8740 # @param theD1,theD2 Chamfer size
8741 # @param theEdges Sequence of edges of \a theShape.
8742 # @param theName Object name; when specified, this parameter is used
8743 # for result publication in the study. Otherwise, if automatic
8744 # publication is switched on, default value is used for result name.
8746 # @return New GEOM.GEOM_Object, containing the result shape.
8748 # @ref swig_FilletChamfer "Example"
8749 def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
8751 Perform a chamfer on edges,
8752 with distance D1 on the first specified face (if several for one edge)
8755 theShape Shape, to perform chamfer on.
8756 theD1,theD2 Chamfer size
8757 theEdges Sequence of edges of theShape.
8758 theName Object name; when specified, this parameter is used
8759 for result publication in the study. Otherwise, if automatic
8760 publication is switched on, default value is used for result name.
8763 New GEOM.GEOM_Object, containing the result shape.
8765 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8766 anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
8767 RaiseIfFailed("MakeChamferEdges", self.LocalOp)
8768 anObj.SetParameters(Parameters)
8769 self._autoPublish(anObj, theName, "chamfer")
8772 ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
8773 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8774 def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
8776 The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
8777 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8780 if isinstance(theAngle,str):
8782 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8784 theAngle = theAngle*math.pi/180.0
8785 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
8786 RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
8787 anObj.SetParameters(Parameters)
8788 self._autoPublish(anObj, theName, "chamfer")
8791 ## @sa MakeChamferEdge(), MakeChamferFaces()
8793 # @ref swig_MakeChamfer "Example"
8794 def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
8796 See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
8798 # Example: see GEOM_TestOthers.py
8800 # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
8801 if aShapeType == self.ShapeType["EDGE"]:
8802 anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
8804 anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
8807 ## Remove material from a solid by extrusion of the base shape on the given distance.
8808 # @param theInit Shape to remove material from. It must be a solid or
8809 # a compound made of a single solid.
8810 # @param theBase Closed edge or wire defining the base shape to be extruded.
8811 # @param theH Prism dimension along the normal to theBase
8812 # @param theAngle Draft angle in degrees.
8813 # @param theName Object name; when specified, this parameter is used
8814 # for result publication in the study. Otherwise, if automatic
8815 # publication is switched on, default value is used for result name.
8817 # @return New GEOM.GEOM_Object, containing the initial shape with removed material
8819 # @ref tui_creation_prism "Example"
8820 def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theName=None):
8822 Add material to a solid by extrusion of the base shape on the given distance.
8825 theInit Shape to remove material from. It must be a solid or a compound made of a single solid.
8826 theBase Closed edge or wire defining the base shape to be extruded.
8827 theH Prism dimension along the normal to theBase
8828 theAngle Draft angle in degrees.
8829 theName Object name; when specified, this parameter is used
8830 for result publication in the study. Otherwise, if automatic
8831 publication is switched on, default value is used for result name.
8834 New GEOM.GEOM_Object, containing the initial shape with removed material.
8836 # Example: see GEOM_TestAll.py
8837 #theH,Parameters = ParseParameters(theH)
8838 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False)
8839 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
8840 #anObj.SetParameters(Parameters)
8841 self._autoPublish(anObj, theName, "extrudedCut")
8844 ## Add material to a solid by extrusion of the base shape on the given distance.
8845 # @param theInit Shape to add material to. It must be a solid or
8846 # a compound made of a single solid.
8847 # @param theBase Closed edge or wire defining the base shape to be extruded.
8848 # @param theH Prism dimension along the normal to theBase
8849 # @param theAngle Draft angle in degrees.
8850 # @param theName Object name; when specified, this parameter is used
8851 # for result publication in the study. Otherwise, if automatic
8852 # publication is switched on, default value is used for result name.
8854 # @return New GEOM.GEOM_Object, containing the initial shape with added material
8856 # @ref tui_creation_prism "Example"
8857 def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theName=None):
8859 Add material to a solid by extrusion of the base shape on the given distance.
8862 theInit Shape to add material to. It must be a solid or a compound made of a single solid.
8863 theBase Closed edge or wire defining the base shape to be extruded.
8864 theH Prism dimension along the normal to theBase
8865 theAngle Draft angle in degrees.
8866 theName Object name; when specified, this parameter is used
8867 for result publication in the study. Otherwise, if automatic
8868 publication is switched on, default value is used for result name.
8871 New GEOM.GEOM_Object, containing the initial shape with added material.
8873 # Example: see GEOM_TestAll.py
8874 #theH,Parameters = ParseParameters(theH)
8875 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True)
8876 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
8877 #anObj.SetParameters(Parameters)
8878 self._autoPublish(anObj, theName, "extrudedBoss")
8884 ## @addtogroup l3_basic_op
8887 ## Perform an Archimde operation on the given shape with given parameters.
8888 # The object presenting the resulting face is returned.
8889 # @param theShape Shape to be put in water.
8890 # @param theWeight Weight og the shape.
8891 # @param theWaterDensity Density of the water.
8892 # @param theMeshDeflection Deflection of the mesh, using to compute the section.
8893 # @param theName Object name; when specified, this parameter is used
8894 # for result publication in the study. Otherwise, if automatic
8895 # publication is switched on, default value is used for result name.
8897 # @return New GEOM.GEOM_Object, containing a section of \a theShape
8898 # by a plane, corresponding to water level.
8900 # @ref tui_archimede "Example"
8901 def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
8903 Perform an Archimde operation on the given shape with given parameters.
8904 The object presenting the resulting face is returned.
8907 theShape Shape to be put in water.
8908 theWeight Weight og the shape.
8909 theWaterDensity Density of the water.
8910 theMeshDeflection Deflection of the mesh, using to compute the section.
8911 theName Object name; when specified, this parameter is used
8912 for result publication in the study. Otherwise, if automatic
8913 publication is switched on, default value is used for result name.
8916 New GEOM.GEOM_Object, containing a section of theShape
8917 by a plane, corresponding to water level.
8919 # Example: see GEOM_TestAll.py
8920 theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters(
8921 theWeight,theWaterDensity,theMeshDeflection)
8922 anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
8923 RaiseIfFailed("MakeArchimede", self.LocalOp)
8924 anObj.SetParameters(Parameters)
8925 self._autoPublish(anObj, theName, "archimede")
8928 # end of l3_basic_op
8931 ## @addtogroup l2_measure
8934 ## Get point coordinates
8937 # @ref tui_measurement_tools_page "Example"
8938 def PointCoordinates(self,Point):
8940 Get point coordinates
8945 # Example: see GEOM_TestMeasures.py
8946 aTuple = self.MeasuOp.PointCoordinates(Point)
8947 RaiseIfFailed("PointCoordinates", self.MeasuOp)
8950 ## Get vector coordinates
8953 # @ref tui_measurement_tools_page "Example"
8954 def VectorCoordinates(self,Vector):
8956 Get vector coordinates
8962 p1=self.GetFirstVertex(Vector)
8963 p2=self.GetLastVertex(Vector)
8965 X1=self.PointCoordinates(p1)
8966 X2=self.PointCoordinates(p2)
8968 return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
8971 ## Compute cross product
8972 # @return vector w=u^v
8974 # @ref tui_measurement_tools_page "Example"
8975 def CrossProduct(self, Vector1, Vector2):
8977 Compute cross product
8979 Returns: vector w=u^v
8981 u=self.VectorCoordinates(Vector1)
8982 v=self.VectorCoordinates(Vector2)
8983 w=self.MakeVectorDXDYDZ(u[1]*v[2]-u[2]*v[1], u[2]*v[0]-u[0]*v[2], u[0]*v[1]-u[1]*v[0])
8987 ## Compute cross product
8988 # @return dot product p=u.v
8990 # @ref tui_measurement_tools_page "Example"
8991 def DotProduct(self, Vector1, Vector2):
8993 Compute cross product
8995 Returns: dot product p=u.v
8997 u=self.VectorCoordinates(Vector1)
8998 v=self.VectorCoordinates(Vector2)
8999 p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
9004 ## Get summarized length of all wires,
9005 # area of surface and volume of the given shape.
9006 # @param theShape Shape to define properties of.
9007 # @return [theLength, theSurfArea, theVolume]\n
9008 # theLength: Summarized length of all wires of the given shape.\n
9009 # theSurfArea: Area of surface of the given shape.\n
9010 # theVolume: Volume of the given shape.
9012 # @ref tui_measurement_tools_page "Example"
9013 def BasicProperties(self,theShape):
9015 Get summarized length of all wires,
9016 area of surface and volume of the given shape.
9019 theShape Shape to define properties of.
9022 [theLength, theSurfArea, theVolume]
9023 theLength: Summarized length of all wires of the given shape.
9024 theSurfArea: Area of surface of the given shape.
9025 theVolume: Volume of the given shape.
9027 # Example: see GEOM_TestMeasures.py
9028 aTuple = self.MeasuOp.GetBasicProperties(theShape)
9029 RaiseIfFailed("GetBasicProperties", self.MeasuOp)
9032 ## Get parameters of bounding box of the given shape
9033 # @param theShape Shape to obtain bounding box of.
9034 # @param precise TRUE for precise computation; FALSE for fast one.
9035 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9036 # Xmin,Xmax: Limits of shape along OX axis.
9037 # Ymin,Ymax: Limits of shape along OY axis.
9038 # Zmin,Zmax: Limits of shape along OZ axis.
9040 # @ref tui_measurement_tools_page "Example"
9041 def BoundingBox (self, theShape, precise=False):
9043 Get parameters of bounding box of the given shape
9046 theShape Shape to obtain bounding box of.
9047 precise TRUE for precise computation; FALSE for fast one.
9050 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9051 Xmin,Xmax: Limits of shape along OX axis.
9052 Ymin,Ymax: Limits of shape along OY axis.
9053 Zmin,Zmax: Limits of shape along OZ axis.
9055 # Example: see GEOM_TestMeasures.py
9056 aTuple = self.MeasuOp.GetBoundingBox(theShape, precise)
9057 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
9060 ## Get bounding box of the given shape
9061 # @param theShape Shape to obtain bounding box of.
9062 # @param precise TRUE for precise computation; FALSE for fast one.
9063 # @param theName Object name; when specified, this parameter is used
9064 # for result publication in the study. Otherwise, if automatic
9065 # publication is switched on, default value is used for result name.
9067 # @return New GEOM.GEOM_Object, containing the created box.
9069 # @ref tui_measurement_tools_page "Example"
9070 def MakeBoundingBox (self, theShape, precise=False, theName=None):
9072 Get bounding box of the given shape
9075 theShape Shape to obtain bounding box of.
9076 precise TRUE for precise computation; FALSE for fast one.
9077 theName Object name; when specified, this parameter is used
9078 for result publication in the study. Otherwise, if automatic
9079 publication is switched on, default value is used for result name.
9082 New GEOM.GEOM_Object, containing the created box.
9084 # Example: see GEOM_TestMeasures.py
9085 anObj = self.MeasuOp.MakeBoundingBox(theShape, precise)
9086 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
9087 self._autoPublish(anObj, theName, "bndbox")
9090 ## Get inertia matrix and moments of inertia of theShape.
9091 # @param theShape Shape to calculate inertia of.
9092 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9093 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
9094 # Ix,Iy,Iz: Moments of inertia of the given shape.
9096 # @ref tui_measurement_tools_page "Example"
9097 def Inertia(self,theShape):
9099 Get inertia matrix and moments of inertia of theShape.
9102 theShape Shape to calculate inertia of.
9105 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9106 I(1-3)(1-3): Components of the inertia matrix of the given shape.
9107 Ix,Iy,Iz: Moments of inertia of the given shape.
9109 # Example: see GEOM_TestMeasures.py
9110 aTuple = self.MeasuOp.GetInertia(theShape)
9111 RaiseIfFailed("GetInertia", self.MeasuOp)
9114 ## Get if coords are included in the shape (ST_IN or ST_ON)
9115 # @param theShape Shape
9116 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9117 # @param tolerance to be used (default is 1.0e-7)
9118 # @return list_of_boolean = [res1, res2, ...]
9119 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
9121 Get if coords are included in the shape (ST_IN or ST_ON)
9125 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9126 tolerance to be used (default is 1.0e-7)
9129 list_of_boolean = [res1, res2, ...]
9131 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
9133 ## Get minimal distance between the given shapes.
9134 # @param theShape1,theShape2 Shapes to find minimal distance between.
9135 # @return Value of the minimal distance between the given shapes.
9137 # @ref tui_measurement_tools_page "Example"
9138 def MinDistance(self, theShape1, theShape2):
9140 Get minimal distance between the given shapes.
9143 theShape1,theShape2 Shapes to find minimal distance between.
9146 Value of the minimal distance between the given shapes.
9148 # Example: see GEOM_TestMeasures.py
9149 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9150 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9153 ## Get minimal distance between the given shapes.
9154 # @param theShape1,theShape2 Shapes to find minimal distance between.
9155 # @return Value of the minimal distance between the given shapes, in form of list
9156 # [Distance, DX, DY, DZ].
9158 # @ref swig_all_measure "Example"
9159 def MinDistanceComponents(self, theShape1, theShape2):
9161 Get minimal distance between the given shapes.
9164 theShape1,theShape2 Shapes to find minimal distance between.
9167 Value of the minimal distance between the given shapes, in form of list
9168 [Distance, DX, DY, DZ]
9170 # Example: see GEOM_TestMeasures.py
9171 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9172 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9173 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
9176 ## Get closest points of the given shapes.
9177 # @param theShape1,theShape2 Shapes to find closest points of.
9178 # @return The number of found solutions (-1 in case of infinite number of
9179 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9181 # @ref tui_measurement_tools_page "Example"
9182 def ClosestPoints (self, theShape1, theShape2):
9184 Get closest points of the given shapes.
9187 theShape1,theShape2 Shapes to find closest points of.
9190 The number of found solutions (-1 in case of infinite number of
9191 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9193 # Example: see GEOM_TestMeasures.py
9194 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
9195 RaiseIfFailed("ClosestPoints", self.MeasuOp)
9198 ## Get angle between the given shapes in degrees.
9199 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9200 # @note If both arguments are vectors, the angle is computed in accordance
9201 # with their orientations, otherwise the minimum angle is computed.
9202 # @return Value of the angle between the given shapes in degrees.
9204 # @ref tui_measurement_tools_page "Example"
9205 def GetAngle(self, theShape1, theShape2):
9207 Get angle between the given shapes in degrees.
9210 theShape1,theShape2 Lines or linear edges to find angle between.
9213 If both arguments are vectors, the angle is computed in accordance
9214 with their orientations, otherwise the minimum angle is computed.
9217 Value of the angle between the given shapes in degrees.
9219 # Example: see GEOM_TestMeasures.py
9220 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
9221 RaiseIfFailed("GetAngle", self.MeasuOp)
9224 ## Get angle between the given shapes in radians.
9225 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9226 # @note If both arguments are vectors, the angle is computed in accordance
9227 # with their orientations, otherwise the minimum angle is computed.
9228 # @return Value of the angle between the given shapes in radians.
9230 # @ref tui_measurement_tools_page "Example"
9231 def GetAngleRadians(self, theShape1, theShape2):
9233 Get angle between the given shapes in radians.
9236 theShape1,theShape2 Lines or linear edges to find angle between.
9240 If both arguments are vectors, the angle is computed in accordance
9241 with their orientations, otherwise the minimum angle is computed.
9244 Value of the angle between the given shapes in radians.
9246 # Example: see GEOM_TestMeasures.py
9247 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
9248 RaiseIfFailed("GetAngle", self.MeasuOp)
9251 ## Get angle between the given vectors in degrees.
9252 # @param theShape1,theShape2 Vectors to find angle between.
9253 # @param theFlag If True, the normal vector is defined by the two vectors cross,
9254 # if False, the opposite vector to the normal vector is used.
9255 # @return Value of the angle between the given vectors in degrees.
9257 # @ref tui_measurement_tools_page "Example"
9258 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
9260 Get angle between the given vectors in degrees.
9263 theShape1,theShape2 Vectors to find angle between.
9264 theFlag If True, the normal vector is defined by the two vectors cross,
9265 if False, the opposite vector to the normal vector is used.
9268 Value of the angle between the given vectors in degrees.
9270 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
9272 anAngle = 360. - anAngle
9273 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
9276 ## The same as GetAngleVectors, but the result is in radians.
9277 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
9279 Get angle between the given vectors in radians.
9282 theShape1,theShape2 Vectors to find angle between.
9283 theFlag If True, the normal vector is defined by the two vectors cross,
9284 if False, the opposite vector to the normal vector is used.
9287 Value of the angle between the given vectors in radians.
9289 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
9292 ## @name Curve Curvature Measurement
9293 # Methods for receiving radius of curvature of curves
9294 # in the given point
9297 ## Measure curvature of a curve at a point, set by parameter.
9298 # @param theCurve a curve.
9299 # @param theParam parameter.
9300 # @return radius of curvature of \a theCurve.
9302 # @ref swig_todo "Example"
9303 def CurveCurvatureByParam(self, theCurve, theParam):
9305 Measure curvature of a curve at a point, set by parameter.
9312 radius of curvature of theCurve.
9314 # Example: see GEOM_TestMeasures.py
9315 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
9316 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
9319 ## Measure curvature of a curve at a point.
9320 # @param theCurve a curve.
9321 # @param thePoint given point.
9322 # @return radius of curvature of \a theCurve.
9324 # @ref swig_todo "Example"
9325 def CurveCurvatureByPoint(self, theCurve, thePoint):
9327 Measure curvature of a curve at a point.
9331 thePoint given point.
9334 radius of curvature of theCurve.
9336 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
9337 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
9341 ## @name Surface Curvature Measurement
9342 # Methods for receiving max and min radius of curvature of surfaces
9343 # in the given point
9346 ## Measure max radius of curvature of surface.
9347 # @param theSurf the given surface.
9348 # @param theUParam Value of U-parameter on the referenced surface.
9349 # @param theVParam Value of V-parameter on the referenced surface.
9350 # @return max radius of curvature of theSurf.
9352 ## @ref swig_todo "Example"
9353 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9355 Measure max radius of curvature of surface.
9358 theSurf the given surface.
9359 theUParam Value of U-parameter on the referenced surface.
9360 theVParam Value of V-parameter on the referenced surface.
9363 max radius of curvature of theSurf.
9365 # Example: see GEOM_TestMeasures.py
9366 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9367 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
9370 ## Measure max radius of curvature of surface in the given point
9371 # @param theSurf the given surface.
9372 # @param thePoint given point.
9373 # @return max radius of curvature of theSurf.
9375 ## @ref swig_todo "Example"
9376 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
9378 Measure max radius of curvature of surface in the given point.
9381 theSurf the given surface.
9382 thePoint given point.
9385 max radius of curvature of theSurf.
9387 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
9388 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
9391 ## Measure min radius of curvature of surface.
9392 # @param theSurf the given surface.
9393 # @param theUParam Value of U-parameter on the referenced surface.
9394 # @param theVParam Value of V-parameter on the referenced surface.
9395 # @return min radius of curvature of theSurf.
9397 ## @ref swig_todo "Example"
9398 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9400 Measure min radius of curvature of surface.
9403 theSurf the given surface.
9404 theUParam Value of U-parameter on the referenced surface.
9405 theVParam Value of V-parameter on the referenced surface.
9408 Min radius of curvature of theSurf.
9410 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9411 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
9414 ## Measure min radius of curvature of surface in the given point
9415 # @param theSurf the given surface.
9416 # @param thePoint given point.
9417 # @return min radius of curvature of theSurf.
9419 ## @ref swig_todo "Example"
9420 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
9422 Measure min radius of curvature of surface in the given point.
9425 theSurf the given surface.
9426 thePoint given point.
9429 Min radius of curvature of theSurf.
9431 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
9432 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
9436 ## Get min and max tolerances of sub-shapes of theShape
9437 # @param theShape Shape, to get tolerances of.
9438 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
9439 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
9440 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
9441 # VertMin,VertMax: Min and max tolerances of the vertices.
9443 # @ref tui_measurement_tools_page "Example"
9444 def Tolerance(self,theShape):
9446 Get min and max tolerances of sub-shapes of theShape
9449 theShape Shape, to get tolerances of.
9452 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
9453 FaceMin,FaceMax: Min and max tolerances of the faces.
9454 EdgeMin,EdgeMax: Min and max tolerances of the edges.
9455 VertMin,VertMax: Min and max tolerances of the vertices.
9457 # Example: see GEOM_TestMeasures.py
9458 aTuple = self.MeasuOp.GetTolerance(theShape)
9459 RaiseIfFailed("GetTolerance", self.MeasuOp)
9462 ## Obtain description of the given shape (number of sub-shapes of each type)
9463 # @param theShape Shape to be described.
9464 # @return Description of the given shape.
9466 # @ref tui_measurement_tools_page "Example"
9467 def WhatIs(self,theShape):
9469 Obtain description of the given shape (number of sub-shapes of each type)
9472 theShape Shape to be described.
9475 Description of the given shape.
9477 # Example: see GEOM_TestMeasures.py
9478 aDescr = self.MeasuOp.WhatIs(theShape)
9479 RaiseIfFailed("WhatIs", self.MeasuOp)
9482 ## Obtain quantity of shapes of the given type in \a theShape.
9483 # If \a theShape is of type \a theType, it is also counted.
9484 # @param theShape Shape to be described.
9485 # @param theType the given ShapeType().
9486 # @return Quantity of shapes of type \a theType in \a theShape.
9488 # @ref tui_measurement_tools_page "Example"
9489 def NbShapes (self, theShape, theType):
9491 Obtain quantity of shapes of the given type in theShape.
9492 If theShape is of type theType, it is also counted.
9495 theShape Shape to be described.
9496 theType the given geompy.ShapeType
9499 Quantity of shapes of type theType in theShape.
9501 # Example: see GEOM_TestMeasures.py
9502 listSh = self.SubShapeAllIDs(theShape, theType)
9504 t = EnumToLong(theShape.GetShapeType())
9505 theType = EnumToLong(theType)
9511 ## Obtain quantity of shapes of each type in \a theShape.
9512 # The \a theShape is also counted.
9513 # @param theShape Shape to be described.
9514 # @return Dictionary of ShapeType() with bound quantities of shapes.
9516 # @ref tui_measurement_tools_page "Example"
9517 def ShapeInfo (self, theShape):
9519 Obtain quantity of shapes of each type in theShape.
9520 The theShape is also counted.
9523 theShape Shape to be described.
9526 Dictionary of geompy.ShapeType with bound quantities of shapes.
9528 # Example: see GEOM_TestMeasures.py
9530 for typeSh in self.ShapeType:
9531 if typeSh in ( "AUTO", "SHAPE" ): continue
9532 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
9534 if EnumToLong(theShape.GetShapeType()) == self.ShapeType[typeSh]:
9541 ## Get a point, situated at the centre of mass of theShape.
9542 # @param theShape Shape to define centre of mass of.
9543 # @param theName Object name; when specified, this parameter is used
9544 # for result publication in the study. Otherwise, if automatic
9545 # publication is switched on, default value is used for result name.
9547 # @return New GEOM.GEOM_Object, containing the created point.
9549 # @ref tui_measurement_tools_page "Example"
9550 def MakeCDG(self, theShape, theName=None):
9552 Get a point, situated at the centre of mass of theShape.
9555 theShape Shape to define centre of mass of.
9556 theName Object name; when specified, this parameter is used
9557 for result publication in the study. Otherwise, if automatic
9558 publication is switched on, default value is used for result name.
9561 New GEOM.GEOM_Object, containing the created point.
9563 # Example: see GEOM_TestMeasures.py
9564 anObj = self.MeasuOp.GetCentreOfMass(theShape)
9565 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
9566 self._autoPublish(anObj, theName, "centerOfMass")
9569 ## Get a vertex sub-shape by index depended with orientation.
9570 # @param theShape Shape to find sub-shape.
9571 # @param theIndex Index to find vertex by this index (starting from zero)
9572 # @param theName Object name; when specified, this parameter is used
9573 # for result publication in the study. Otherwise, if automatic
9574 # publication is switched on, default value is used for result name.
9576 # @return New GEOM.GEOM_Object, containing the created vertex.
9578 # @ref tui_measurement_tools_page "Example"
9579 def GetVertexByIndex(self, theShape, theIndex, theName=None):
9581 Get a vertex sub-shape by index depended with orientation.
9584 theShape Shape to find sub-shape.
9585 theIndex Index to find vertex by this index (starting from zero)
9586 theName Object name; when specified, this parameter is used
9587 for result publication in the study. Otherwise, if automatic
9588 publication is switched on, default value is used for result name.
9591 New GEOM.GEOM_Object, containing the created vertex.
9593 # Example: see GEOM_TestMeasures.py
9594 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
9595 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
9596 self._autoPublish(anObj, theName, "vertex")
9599 ## Get the first vertex of wire/edge depended orientation.
9600 # @param theShape Shape to find first vertex.
9601 # @param theName Object name; when specified, this parameter is used
9602 # for result publication in the study. Otherwise, if automatic
9603 # publication is switched on, default value is used for result name.
9605 # @return New GEOM.GEOM_Object, containing the created vertex.
9607 # @ref tui_measurement_tools_page "Example"
9608 def GetFirstVertex(self, theShape, theName=None):
9610 Get the first vertex of wire/edge depended orientation.
9613 theShape Shape to find first vertex.
9614 theName Object name; when specified, this parameter is used
9615 for result publication in the study. Otherwise, if automatic
9616 publication is switched on, default value is used for result name.
9619 New GEOM.GEOM_Object, containing the created vertex.
9621 # Example: see GEOM_TestMeasures.py
9622 # note: auto-publishing is done in self.GetVertexByIndex()
9623 anObj = self.GetVertexByIndex(theShape, 0, theName)
9624 RaiseIfFailed("GetFirstVertex", self.MeasuOp)
9627 ## Get the last vertex of wire/edge depended orientation.
9628 # @param theShape Shape to find last vertex.
9629 # @param theName Object name; when specified, this parameter is used
9630 # for result publication in the study. Otherwise, if automatic
9631 # publication is switched on, default value is used for result name.
9633 # @return New GEOM.GEOM_Object, containing the created vertex.
9635 # @ref tui_measurement_tools_page "Example"
9636 def GetLastVertex(self, theShape, theName=None):
9638 Get the last vertex of wire/edge depended orientation.
9641 theShape Shape to find last vertex.
9642 theName Object name; when specified, this parameter is used
9643 for result publication in the study. Otherwise, if automatic
9644 publication is switched on, default value is used for result name.
9647 New GEOM.GEOM_Object, containing the created vertex.
9649 # Example: see GEOM_TestMeasures.py
9650 nb_vert = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
9651 # note: auto-publishing is done in self.GetVertexByIndex()
9652 anObj = self.GetVertexByIndex(theShape, (nb_vert-1), theName)
9653 RaiseIfFailed("GetLastVertex", self.MeasuOp)
9656 ## Get a normale to the given face. If the point is not given,
9657 # the normale is calculated at the center of mass.
9658 # @param theFace Face to define normale of.
9659 # @param theOptionalPoint Point to compute the normale at.
9660 # @param theName Object name; when specified, this parameter is used
9661 # for result publication in the study. Otherwise, if automatic
9662 # publication is switched on, default value is used for result name.
9664 # @return New GEOM.GEOM_Object, containing the created vector.
9666 # @ref swig_todo "Example"
9667 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
9669 Get a normale to the given face. If the point is not given,
9670 the normale is calculated at the center of mass.
9673 theFace Face to define normale of.
9674 theOptionalPoint Point to compute the normale at.
9675 theName Object name; when specified, this parameter is used
9676 for result publication in the study. Otherwise, if automatic
9677 publication is switched on, default value is used for result name.
9680 New GEOM.GEOM_Object, containing the created vector.
9682 # Example: see GEOM_TestMeasures.py
9683 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
9684 RaiseIfFailed("GetNormal", self.MeasuOp)
9685 self._autoPublish(anObj, theName, "normal")
9688 ## Check a topology of the given shape.
9689 # @param theShape Shape to check validity of.
9690 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
9691 # if TRUE, the shape's geometry will be checked also.
9692 # @param theReturnStatus If FALSE and if theShape is invalid, a description \n
9693 # of problem is printed.
9694 # if TRUE and if theShape is invalid, the description
9695 # of problem is also returned.
9696 # @return TRUE, if the shape "seems to be valid".
9698 # @ref tui_measurement_tools_page "Example"
9699 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
9701 Check a topology of the given shape.
9704 theShape Shape to check validity of.
9705 theIsCheckGeom If FALSE, only the shape's topology will be checked,
9706 if TRUE, the shape's geometry will be checked also.
9707 theReturnStatus If FALSE and if theShape is invalid, a description
9708 of problem is printed.
9709 if TRUE and if theShape is invalid, the description
9710 of problem is returned.
9713 TRUE, if the shape "seems to be valid".
9714 If theShape is invalid, prints a description of problem.
9715 This description can also be returned.
9717 # Example: see GEOM_TestMeasures.py
9719 (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape)
9720 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
9722 (IsValid, Status) = self.MeasuOp.CheckShape(theShape)
9723 RaiseIfFailed("CheckShape", self.MeasuOp)
9725 if theReturnStatus == 0:
9727 if theReturnStatus == 1:
9728 return (IsValid, Status)
9731 ## Detect self-intersections in the given shape.
9732 # @param theShape Shape to check.
9733 # @return TRUE, if the shape contains no self-intersections.
9735 # @ref tui_measurement_tools_page "Example"
9736 def CheckSelfIntersections(self, theShape):
9738 Detect self-intersections in the given shape.
9741 theShape Shape to check.
9744 TRUE, if the shape contains no self-intersections.
9746 # Example: see GEOM_TestMeasures.py
9747 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape)
9748 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
9751 ## Get position (LCS) of theShape.
9753 # Origin of the LCS is situated at the shape's center of mass.
9754 # Axes of the LCS are obtained from shape's location or,
9755 # if the shape is a planar face, from position of its plane.
9757 # @param theShape Shape to calculate position of.
9758 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9759 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
9760 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9761 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9763 # @ref swig_todo "Example"
9764 def GetPosition(self,theShape):
9766 Get position (LCS) of theShape.
9767 Origin of the LCS is situated at the shape's center of mass.
9768 Axes of the LCS are obtained from shape's location or,
9769 if the shape is a planar face, from position of its plane.
9772 theShape Shape to calculate position of.
9775 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9776 Ox,Oy,Oz: Coordinates of shape's LCS origin.
9777 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9778 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9780 # Example: see GEOM_TestMeasures.py
9781 aTuple = self.MeasuOp.GetPosition(theShape)
9782 RaiseIfFailed("GetPosition", self.MeasuOp)
9785 ## Get kind of theShape.
9787 # @param theShape Shape to get a kind of.
9788 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
9789 # and a list of parameters, describing the shape.
9790 # @note Concrete meaning of each value, returned via \a theIntegers
9791 # or \a theDoubles list depends on the kind() of the shape.
9793 # @ref swig_todo "Example"
9794 def KindOfShape(self,theShape):
9796 Get kind of theShape.
9799 theShape Shape to get a kind of.
9802 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
9803 and a list of parameters, describing the shape.
9805 Concrete meaning of each value, returned via theIntegers
9806 or theDoubles list depends on the geompy.kind of the shape
9808 # Example: see GEOM_TestMeasures.py
9809 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
9810 RaiseIfFailed("KindOfShape", self.MeasuOp)
9812 aKind = aRoughTuple[0]
9813 anInts = aRoughTuple[1]
9814 aDbls = aRoughTuple[2]
9816 # Now there is no exception from this rule:
9817 aKindTuple = [aKind] + aDbls + anInts
9819 # If they are we will regroup parameters for such kind of shape.
9821 #if aKind == kind.SOME_KIND:
9822 # # SOME_KIND int int double int double double
9823 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
9830 ## @addtogroup l2_import_export
9833 ## Import a shape from the BREP or IGES or STEP file
9834 # (depends on given format) with given name.
9835 # @param theFileName The file, containing the shape.
9836 # @param theFormatName Specify format for the file reading.
9837 # Available formats can be obtained with InsertOp.ImportTranslators() method.
9838 # If format 'IGES_SCALE' is used instead of 'IGES' or
9839 # format 'STEP_SCALE' is used instead of 'STEP',
9840 # length unit will be set to 'meter' and result model will be scaled.
9841 # @param theName Object name; when specified, this parameter is used
9842 # for result publication in the study. Otherwise, if automatic
9843 # publication is switched on, default value is used for result name.
9845 # @return New GEOM.GEOM_Object, containing the imported shape.
9847 # @ref swig_Import_Export "Example"
9848 def ImportFile(self, theFileName, theFormatName, theName=None):
9850 Import a shape from the BREP or IGES or STEP file
9851 (depends on given format) with given name.
9854 theFileName The file, containing the shape.
9855 theFormatName Specify format for the file reading.
9856 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
9857 If format 'IGES_SCALE' is used instead of 'IGES' or
9858 format 'STEP_SCALE' is used instead of 'STEP',
9859 length unit will be set to 'meter' and result model will be scaled.
9860 theName Object name; when specified, this parameter is used
9861 for result publication in the study. Otherwise, if automatic
9862 publication is switched on, default value is used for result name.
9865 New GEOM.GEOM_Object, containing the imported shape.
9867 # Example: see GEOM_TestOthers.py
9868 anObj = self.InsertOp.ImportFile(theFileName, theFormatName)
9869 RaiseIfFailed("ImportFile", self.InsertOp)
9870 self._autoPublish(anObj, theName, "imported")
9873 ## Deprecated analog of ImportFile()
9874 def Import(self, theFileName, theFormatName, theName=None):
9876 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
9878 print "WARNING: Function Import is deprecated, use ImportFile instead"
9879 # note: auto-publishing is done in self.ImportFile()
9880 return self.ImportFile(theFileName, theFormatName, theName)
9882 ## Shortcut to ImportFile() for BREP format.
9883 # Import a shape from the BREP file with given name.
9884 # @param theFileName The file, containing the shape.
9885 # @param theName Object name; when specified, this parameter is used
9886 # for result publication in the study. Otherwise, if automatic
9887 # publication is switched on, default value is used for result name.
9889 # @return New GEOM.GEOM_Object, containing the imported shape.
9891 # @ref swig_Import_Export "Example"
9892 def ImportBREP(self, theFileName, theName=None):
9894 geompy.ImportFile(...) function for BREP format
9895 Import a shape from the BREP file with given name.
9898 theFileName The file, containing the shape.
9899 theName Object name; when specified, this parameter is used
9900 for result publication in the study. Otherwise, if automatic
9901 publication is switched on, default value is used for result name.
9904 New GEOM.GEOM_Object, containing the imported shape.
9906 # Example: see GEOM_TestOthers.py
9907 # note: auto-publishing is done in self.ImportFile()
9908 return self.ImportFile(theFileName, "BREP", theName)
9910 ## Shortcut to ImportFile() for IGES format
9911 # Import a shape from the IGES file with given name.
9912 # @param theFileName The file, containing the shape.
9913 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
9914 # and result model will be scaled, if its units are not meters.
9915 # If False (default), file length units will be taken into account.
9916 # @param theName Object name; when specified, this parameter is used
9917 # for result publication in the study. Otherwise, if automatic
9918 # publication is switched on, default value is used for result name.
9920 # @return New GEOM.GEOM_Object, containing the imported shape.
9922 # @ref swig_Import_Export "Example"
9923 def ImportIGES(self, theFileName, ignoreUnits = False, theName=None):
9925 geompy.ImportFile(...) function for IGES format
9928 theFileName The file, containing the shape.
9929 ignoreUnits If True, file length units will be ignored (set to 'meter')
9930 and result model will be scaled, if its units are not meters.
9931 If False (default), file length units will be taken into account.
9932 theName Object name; when specified, this parameter is used
9933 for result publication in the study. Otherwise, if automatic
9934 publication is switched on, default value is used for result name.
9937 New GEOM.GEOM_Object, containing the imported shape.
9939 # Example: see GEOM_TestOthers.py
9940 # note: auto-publishing is done in self.ImportFile()
9942 return self.ImportFile(theFileName, "IGES_SCALE", theName)
9943 return self.ImportFile(theFileName, "IGES", theName)
9945 ## Return length unit from given IGES file
9946 # @param theFileName The file, containing the shape.
9947 # @return String, containing the units name.
9949 # @ref swig_Import_Export "Example"
9950 def GetIGESUnit(self, theFileName):
9952 Return length units from given IGES file
9955 theFileName The file, containing the shape.
9958 String, containing the units name.
9960 # Example: see GEOM_TestOthers.py
9961 aUnitName = self.InsertOp.ReadValue(theFileName, "IGES", "LEN_UNITS")
9964 ## Shortcut to ImportFile() for STEP format
9965 # Import a shape from the STEP file with given name.
9966 # @param theFileName The file, containing the shape.
9967 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
9968 # and result model will be scaled, if its units are not meters.
9969 # If False (default), file length units will be taken into account.
9970 # @param theName Object name; when specified, this parameter is used
9971 # for result publication in the study. Otherwise, if automatic
9972 # publication is switched on, default value is used for result name.
9974 # @return New GEOM.GEOM_Object, containing the imported shape.
9976 # @ref swig_Import_Export "Example"
9977 def ImportSTEP(self, theFileName, ignoreUnits = False, theName=None):
9979 geompy.ImportFile(...) function for STEP format
9982 theFileName The file, containing the shape.
9983 ignoreUnits If True, file length units will be ignored (set to 'meter')
9984 and result model will be scaled, if its units are not meters.
9985 If False (default), file length units will be taken into account.
9986 theName Object name; when specified, this parameter is used
9987 for result publication in the study. Otherwise, if automatic
9988 publication is switched on, default value is used for result name.
9991 New GEOM.GEOM_Object, containing the imported shape.
9993 # Example: see GEOM_TestOthers.py
9994 # note: auto-publishing is done in self.ImportFile()
9996 return self.ImportFile(theFileName, "STEP_SCALE", theName)
9997 return self.ImportFile(theFileName, "STEP", theName)
9999 ## Return length unit from given IGES or STEP file
10000 # @param theFileName The file, containing the shape.
10001 # @return String, containing the units name.
10003 # @ref swig_Import_Export "Example"
10004 def GetSTEPUnit(self, theFileName):
10006 Return length units from given STEP file
10009 theFileName The file, containing the shape.
10012 String, containing the units name.
10014 # Example: see GEOM_TestOthers.py
10015 aUnitName = self.InsertOp.ReadValue(theFileName, "STEP", "LEN_UNITS")
10018 ## Read a shape from the binary stream, containing its bounding representation (BRep).
10019 # @note This method will not be dumped to the python script by DumpStudy functionality.
10020 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
10021 # @param theStream The BRep binary stream.
10022 # @param theName Object name; when specified, this parameter is used
10023 # for result publication in the study. Otherwise, if automatic
10024 # publication is switched on, default value is used for result name.
10026 # @return New GEOM_Object, containing the shape, read from theStream.
10028 # @ref swig_Import_Export "Example"
10029 def RestoreShape (self, theStream, theName=None):
10031 Read a shape from the binary stream, containing its bounding representation (BRep).
10034 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
10037 theStream The BRep binary stream.
10038 theName Object name; when specified, this parameter is used
10039 for result publication in the study. Otherwise, if automatic
10040 publication is switched on, default value is used for result name.
10043 New GEOM_Object, containing the shape, read from theStream.
10045 # Example: see GEOM_TestOthers.py
10046 anObj = self.InsertOp.RestoreShape(theStream)
10047 RaiseIfFailed("RestoreShape", self.InsertOp)
10048 self._autoPublish(anObj, theName, "restored")
10051 ## Export the given shape into a file with given name.
10052 # @param theObject Shape to be stored in the file.
10053 # @param theFileName Name of the file to store the given shape in.
10054 # @param theFormatName Specify format for the shape storage.
10055 # Available formats can be obtained with
10056 # geompy.InsertOp.ExportTranslators()[0] method.
10058 # @ref swig_Import_Export "Example"
10059 def Export(self, theObject, theFileName, theFormatName):
10061 Export the given shape into a file with given name.
10064 theObject Shape to be stored in the file.
10065 theFileName Name of the file to store the given shape in.
10066 theFormatName Specify format for the shape storage.
10067 Available formats can be obtained with
10068 geompy.InsertOp.ExportTranslators()[0] method.
10070 # Example: see GEOM_TestOthers.py
10071 self.InsertOp.Export(theObject, theFileName, theFormatName)
10072 if self.InsertOp.IsDone() == 0:
10073 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
10077 ## Shortcut to Export() for BREP format
10079 # @ref swig_Import_Export "Example"
10080 def ExportBREP(self,theObject, theFileName):
10082 geompy.Export(...) function for BREP format
10084 # Example: see GEOM_TestOthers.py
10085 return self.Export(theObject, theFileName, "BREP")
10087 ## Shortcut to Export() for IGES format
10089 # @ref swig_Import_Export "Example"
10090 def ExportIGES(self,theObject, theFileName):
10092 geompy.Export(...) function for IGES format
10094 # Example: see GEOM_TestOthers.py
10095 return self.Export(theObject, theFileName, "IGES")
10097 ## Shortcut to Export() for STEP format
10099 # @ref swig_Import_Export "Example"
10100 def ExportSTEP(self,theObject, theFileName):
10102 geompy.Export(...) function for STEP format
10104 # Example: see GEOM_TestOthers.py
10105 return self.Export(theObject, theFileName, "STEP")
10107 # end of l2_import_export
10110 ## @addtogroup l3_blocks
10113 ## Create a quadrangle face from four edges. Order of Edges is not
10114 # important. It is not necessary that edges share the same vertex.
10115 # @param E1,E2,E3,E4 Edges for the face bound.
10116 # @param theName Object name; when specified, this parameter is used
10117 # for result publication in the study. Otherwise, if automatic
10118 # publication is switched on, default value is used for result name.
10120 # @return New GEOM.GEOM_Object, containing the created face.
10122 # @ref tui_building_by_blocks_page "Example"
10123 def MakeQuad(self, E1, E2, E3, E4, theName=None):
10125 Create a quadrangle face from four edges. Order of Edges is not
10126 important. It is not necessary that edges share the same vertex.
10129 E1,E2,E3,E4 Edges for the face bound.
10130 theName Object name; when specified, this parameter is used
10131 for result publication in the study. Otherwise, if automatic
10132 publication is switched on, default value is used for result name.
10135 New GEOM.GEOM_Object, containing the created face.
10138 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
10140 # Example: see GEOM_Spanner.py
10141 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
10142 RaiseIfFailed("MakeQuad", self.BlocksOp)
10143 self._autoPublish(anObj, theName, "quad")
10146 ## Create a quadrangle face on two edges.
10147 # The missing edges will be built by creating the shortest ones.
10148 # @param E1,E2 Two opposite edges for the face.
10149 # @param theName Object name; when specified, this parameter is used
10150 # for result publication in the study. Otherwise, if automatic
10151 # publication is switched on, default value is used for result name.
10153 # @return New GEOM.GEOM_Object, containing the created face.
10155 # @ref tui_building_by_blocks_page "Example"
10156 def MakeQuad2Edges(self, E1, E2, theName=None):
10158 Create a quadrangle face on two edges.
10159 The missing edges will be built by creating the shortest ones.
10162 E1,E2 Two opposite edges for the face.
10163 theName Object name; when specified, this parameter is used
10164 for result publication in the study. Otherwise, if automatic
10165 publication is switched on, default value is used for result name.
10168 New GEOM.GEOM_Object, containing the created face.
10172 p1 = geompy.MakeVertex( 0., 0., 0.)
10173 p2 = geompy.MakeVertex(150., 30., 0.)
10174 p3 = geompy.MakeVertex( 0., 120., 50.)
10175 p4 = geompy.MakeVertex( 0., 40., 70.)
10177 edge1 = geompy.MakeEdge(p1, p2)
10178 edge2 = geompy.MakeEdge(p3, p4)
10179 # create a quadrangle face from two edges
10180 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
10182 # Example: see GEOM_Spanner.py
10183 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
10184 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
10185 self._autoPublish(anObj, theName, "quad")
10188 ## Create a quadrangle face with specified corners.
10189 # The missing edges will be built by creating the shortest ones.
10190 # @param V1,V2,V3,V4 Corner vertices for the face.
10191 # @param theName Object name; when specified, this parameter is used
10192 # for result publication in the study. Otherwise, if automatic
10193 # publication is switched on, default value is used for result name.
10195 # @return New GEOM.GEOM_Object, containing the created face.
10197 # @ref tui_building_by_blocks_page "Example 1"
10198 # \n @ref swig_MakeQuad4Vertices "Example 2"
10199 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
10201 Create a quadrangle face with specified corners.
10202 The missing edges will be built by creating the shortest ones.
10205 V1,V2,V3,V4 Corner vertices for the face.
10206 theName Object name; when specified, this parameter is used
10207 for result publication in the study. Otherwise, if automatic
10208 publication is switched on, default value is used for result name.
10211 New GEOM.GEOM_Object, containing the created face.
10215 p1 = geompy.MakeVertex( 0., 0., 0.)
10216 p2 = geompy.MakeVertex(150., 30., 0.)
10217 p3 = geompy.MakeVertex( 0., 120., 50.)
10218 p4 = geompy.MakeVertex( 0., 40., 70.)
10219 # create a quadrangle from four points in its corners
10220 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
10222 # Example: see GEOM_Spanner.py
10223 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
10224 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
10225 self._autoPublish(anObj, theName, "quad")
10228 ## Create a hexahedral solid, bounded by the six given faces. Order of
10229 # faces is not important. It is not necessary that Faces share the same edge.
10230 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10231 # @param theName Object name; when specified, this parameter is used
10232 # for result publication in the study. Otherwise, if automatic
10233 # publication is switched on, default value is used for result name.
10235 # @return New GEOM.GEOM_Object, containing the created solid.
10237 # @ref tui_building_by_blocks_page "Example 1"
10238 # \n @ref swig_MakeHexa "Example 2"
10239 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
10241 Create a hexahedral solid, bounded by the six given faces. Order of
10242 faces is not important. It is not necessary that Faces share the same edge.
10245 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10246 theName Object name; when specified, this parameter is used
10247 for result publication in the study. Otherwise, if automatic
10248 publication is switched on, default value is used for result name.
10251 New GEOM.GEOM_Object, containing the created solid.
10254 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
10256 # Example: see GEOM_Spanner.py
10257 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
10258 RaiseIfFailed("MakeHexa", self.BlocksOp)
10259 self._autoPublish(anObj, theName, "hexa")
10262 ## Create a hexahedral solid between two given faces.
10263 # The missing faces will be built by creating the smallest ones.
10264 # @param F1,F2 Two opposite faces for the hexahedral solid.
10265 # @param theName Object name; when specified, this parameter is used
10266 # for result publication in the study. Otherwise, if automatic
10267 # publication is switched on, default value is used for result name.
10269 # @return New GEOM.GEOM_Object, containing the created solid.
10271 # @ref tui_building_by_blocks_page "Example 1"
10272 # \n @ref swig_MakeHexa2Faces "Example 2"
10273 def MakeHexa2Faces(self, F1, F2, theName=None):
10275 Create a hexahedral solid between two given faces.
10276 The missing faces will be built by creating the smallest ones.
10279 F1,F2 Two opposite faces for the hexahedral solid.
10280 theName Object name; when specified, this parameter is used
10281 for result publication in the study. Otherwise, if automatic
10282 publication is switched on, default value is used for result name.
10285 New GEOM.GEOM_Object, containing the created solid.
10288 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
10290 # Example: see GEOM_Spanner.py
10291 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
10292 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
10293 self._autoPublish(anObj, theName, "hexa")
10299 ## @addtogroup l3_blocks_op
10302 ## Get a vertex, found in the given shape by its coordinates.
10303 # @param theShape Block or a compound of blocks.
10304 # @param theX,theY,theZ Coordinates of the sought vertex.
10305 # @param theEpsilon Maximum allowed distance between the resulting
10306 # vertex and point with the given coordinates.
10307 # @param theName Object name; when specified, this parameter is used
10308 # for result publication in the study. Otherwise, if automatic
10309 # publication is switched on, default value is used for result name.
10311 # @return New GEOM.GEOM_Object, containing the found vertex.
10313 # @ref swig_GetPoint "Example"
10314 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
10316 Get a vertex, found in the given shape by its coordinates.
10319 theShape Block or a compound of blocks.
10320 theX,theY,theZ Coordinates of the sought vertex.
10321 theEpsilon Maximum allowed distance between the resulting
10322 vertex and point with the given coordinates.
10323 theName Object name; when specified, this parameter is used
10324 for result publication in the study. Otherwise, if automatic
10325 publication is switched on, default value is used for result name.
10328 New GEOM.GEOM_Object, containing the found vertex.
10331 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
10333 # Example: see GEOM_TestOthers.py
10334 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
10335 RaiseIfFailed("GetPoint", self.BlocksOp)
10336 self._autoPublish(anObj, theName, "vertex")
10339 ## Find a vertex of the given shape, which has minimal distance to the given point.
10340 # @param theShape Any shape.
10341 # @param thePoint Point, close to the desired vertex.
10342 # @param theName Object name; when specified, this parameter is used
10343 # for result publication in the study. Otherwise, if automatic
10344 # publication is switched on, default value is used for result name.
10346 # @return New GEOM.GEOM_Object, containing the found vertex.
10348 # @ref swig_GetVertexNearPoint "Example"
10349 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
10351 Find a vertex of the given shape, which has minimal distance to the given point.
10354 theShape Any shape.
10355 thePoint Point, close to the desired vertex.
10356 theName Object name; when specified, this parameter is used
10357 for result publication in the study. Otherwise, if automatic
10358 publication is switched on, default value is used for result name.
10361 New GEOM.GEOM_Object, containing the found vertex.
10364 pmidle = geompy.MakeVertex(50, 0, 50)
10365 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
10367 # Example: see GEOM_TestOthers.py
10368 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
10369 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
10370 self._autoPublish(anObj, theName, "vertex")
10373 ## Get an edge, found in the given shape by two given vertices.
10374 # @param theShape Block or a compound of blocks.
10375 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
10376 # @param theName Object name; when specified, this parameter is used
10377 # for result publication in the study. Otherwise, if automatic
10378 # publication is switched on, default value is used for result name.
10380 # @return New GEOM.GEOM_Object, containing the found edge.
10382 # @ref swig_GetEdge "Example"
10383 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
10385 Get an edge, found in the given shape by two given vertices.
10388 theShape Block or a compound of blocks.
10389 thePoint1,thePoint2 Points, close to the ends of the desired edge.
10390 theName Object name; when specified, this parameter is used
10391 for result publication in the study. Otherwise, if automatic
10392 publication is switched on, default value is used for result name.
10395 New GEOM.GEOM_Object, containing the found edge.
10397 # Example: see GEOM_Spanner.py
10398 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
10399 RaiseIfFailed("GetEdge", self.BlocksOp)
10400 self._autoPublish(anObj, theName, "edge")
10403 ## Find an edge of the given shape, which has minimal distance to the given point.
10404 # @param theShape Block or a compound of blocks.
10405 # @param thePoint Point, close to the desired edge.
10406 # @param theName Object name; when specified, this parameter is used
10407 # for result publication in the study. Otherwise, if automatic
10408 # publication is switched on, default value is used for result name.
10410 # @return New GEOM.GEOM_Object, containing the found edge.
10412 # @ref swig_GetEdgeNearPoint "Example"
10413 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
10415 Find an edge of the given shape, which has minimal distance to the given point.
10418 theShape Block or a compound of blocks.
10419 thePoint Point, close to the desired edge.
10420 theName Object name; when specified, this parameter is used
10421 for result publication in the study. Otherwise, if automatic
10422 publication is switched on, default value is used for result name.
10425 New GEOM.GEOM_Object, containing the found edge.
10427 # Example: see GEOM_TestOthers.py
10428 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
10429 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
10430 self._autoPublish(anObj, theName, "edge")
10433 ## Returns a face, found in the given shape by four given corner vertices.
10434 # @param theShape Block or a compound of blocks.
10435 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
10436 # @param theName Object name; when specified, this parameter is used
10437 # for result publication in the study. Otherwise, if automatic
10438 # publication is switched on, default value is used for result name.
10440 # @return New GEOM.GEOM_Object, containing the found face.
10442 # @ref swig_todo "Example"
10443 def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
10445 Returns a face, found in the given shape by four given corner vertices.
10448 theShape Block or a compound of blocks.
10449 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
10450 theName Object name; when specified, this parameter is used
10451 for result publication in the study. Otherwise, if automatic
10452 publication is switched on, default value is used for result name.
10455 New GEOM.GEOM_Object, containing the found face.
10457 # Example: see GEOM_Spanner.py
10458 anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
10459 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
10460 self._autoPublish(anObj, theName, "face")
10463 ## Get a face of block, found in the given shape by two given edges.
10464 # @param theShape Block or a compound of blocks.
10465 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
10466 # @param theName Object name; when specified, this parameter is used
10467 # for result publication in the study. Otherwise, if automatic
10468 # publication is switched on, default value is used for result name.
10470 # @return New GEOM.GEOM_Object, containing the found face.
10472 # @ref swig_todo "Example"
10473 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
10475 Get a face of block, found in the given shape by two given edges.
10478 theShape Block or a compound of blocks.
10479 theEdge1,theEdge2 Edges, close to the edges of the desired face.
10480 theName Object name; when specified, this parameter is used
10481 for result publication in the study. Otherwise, if automatic
10482 publication is switched on, default value is used for result name.
10485 New GEOM.GEOM_Object, containing the found face.
10487 # Example: see GEOM_Spanner.py
10488 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
10489 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
10490 self._autoPublish(anObj, theName, "face")
10493 ## Find a face, opposite to the given one in the given block.
10494 # @param theBlock Must be a hexahedral solid.
10495 # @param theFace Face of \a theBlock, opposite to the desired face.
10496 # @param theName Object name; when specified, this parameter is used
10497 # for result publication in the study. Otherwise, if automatic
10498 # publication is switched on, default value is used for result name.
10500 # @return New GEOM.GEOM_Object, containing the found face.
10502 # @ref swig_GetOppositeFace "Example"
10503 def GetOppositeFace(self, theBlock, theFace, theName=None):
10505 Find a face, opposite to the given one in the given block.
10508 theBlock Must be a hexahedral solid.
10509 theFace Face of theBlock, opposite to the desired face.
10510 theName Object name; when specified, this parameter is used
10511 for result publication in the study. Otherwise, if automatic
10512 publication is switched on, default value is used for result name.
10515 New GEOM.GEOM_Object, containing the found face.
10517 # Example: see GEOM_Spanner.py
10518 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
10519 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
10520 self._autoPublish(anObj, theName, "face")
10523 ## Find a face of the given shape, which has minimal distance to the given point.
10524 # @param theShape Block or a compound of blocks.
10525 # @param thePoint Point, close to the desired face.
10526 # @param theName Object name; when specified, this parameter is used
10527 # for result publication in the study. Otherwise, if automatic
10528 # publication is switched on, default value is used for result name.
10530 # @return New GEOM.GEOM_Object, containing the found face.
10532 # @ref swig_GetFaceNearPoint "Example"
10533 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
10535 Find a face of the given shape, which has minimal distance to the given point.
10538 theShape Block or a compound of blocks.
10539 thePoint Point, close to the desired face.
10540 theName Object name; when specified, this parameter is used
10541 for result publication in the study. Otherwise, if automatic
10542 publication is switched on, default value is used for result name.
10545 New GEOM.GEOM_Object, containing the found face.
10547 # Example: see GEOM_Spanner.py
10548 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
10549 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
10550 self._autoPublish(anObj, theName, "face")
10553 ## Find a face of block, whose outside normale has minimal angle with the given vector.
10554 # @param theBlock Block or a compound of blocks.
10555 # @param theVector Vector, close to the normale of the desired face.
10556 # @param theName Object name; when specified, this parameter is used
10557 # for result publication in the study. Otherwise, if automatic
10558 # publication is switched on, default value is used for result name.
10560 # @return New GEOM.GEOM_Object, containing the found face.
10562 # @ref swig_todo "Example"
10563 def GetFaceByNormale(self, theBlock, theVector, theName=None):
10565 Find a face of block, whose outside normale has minimal angle with the given vector.
10568 theBlock Block or a compound of blocks.
10569 theVector Vector, close to the normale of the desired face.
10570 theName Object name; when specified, this parameter is used
10571 for result publication in the study. Otherwise, if automatic
10572 publication is switched on, default value is used for result name.
10575 New GEOM.GEOM_Object, containing the found face.
10577 # Example: see GEOM_Spanner.py
10578 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
10579 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
10580 self._autoPublish(anObj, theName, "face")
10583 ## Find all sub-shapes of type \a theShapeType of the given shape,
10584 # which have minimal distance to the given point.
10585 # @param theShape Any shape.
10586 # @param thePoint Point, close to the desired shape.
10587 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
10588 # @param theTolerance The tolerance for distances comparison. All shapes
10589 # with distances to the given point in interval
10590 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
10591 # @param theName Object name; when specified, this parameter is used
10592 # for result publication in the study. Otherwise, if automatic
10593 # publication is switched on, default value is used for result name.
10595 # @return New GEOM_Object, containing a group of all found shapes.
10597 # @ref swig_GetShapesNearPoint "Example"
10598 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
10600 Find all sub-shapes of type theShapeType of the given shape,
10601 which have minimal distance to the given point.
10604 theShape Any shape.
10605 thePoint Point, close to the desired shape.
10606 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
10607 theTolerance The tolerance for distances comparison. All shapes
10608 with distances to the given point in interval
10609 [minimal_distance, minimal_distance + theTolerance] will be gathered.
10610 theName Object name; when specified, this parameter is used
10611 for result publication in the study. Otherwise, if automatic
10612 publication is switched on, default value is used for result name.
10615 New GEOM_Object, containing a group of all found shapes.
10617 # Example: see GEOM_TestOthers.py
10618 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
10619 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
10620 self._autoPublish(anObj, theName, "group")
10623 # end of l3_blocks_op
10626 ## @addtogroup l4_blocks_measure
10629 ## Check, if the compound of blocks is given.
10630 # To be considered as a compound of blocks, the
10631 # given shape must satisfy the following conditions:
10632 # - Each element of the compound should be a Block (6 faces and 12 edges).
10633 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10634 # - The compound should be connexe.
10635 # - The glue between two quadrangle faces should be applied.
10636 # @param theCompound The compound to check.
10637 # @return TRUE, if the given shape is a compound of blocks.
10638 # If theCompound is not valid, prints all discovered errors.
10640 # @ref tui_measurement_tools_page "Example 1"
10641 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
10642 def CheckCompoundOfBlocks(self,theCompound):
10644 Check, if the compound of blocks is given.
10645 To be considered as a compound of blocks, the
10646 given shape must satisfy the following conditions:
10647 - Each element of the compound should be a Block (6 faces and 12 edges).
10648 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10649 - The compound should be connexe.
10650 - The glue between two quadrangle faces should be applied.
10653 theCompound The compound to check.
10656 TRUE, if the given shape is a compound of blocks.
10657 If theCompound is not valid, prints all discovered errors.
10659 # Example: see GEOM_Spanner.py
10660 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound)
10661 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
10663 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
10667 ## Retrieve all non blocks solids and faces from \a theShape.
10668 # @param theShape The shape to explore.
10669 # @param theName Object name; when specified, this parameter is used
10670 # for result publication in the study. Otherwise, if automatic
10671 # publication is switched on, default value is used for result name.
10673 # @return A tuple of two GEOM_Objects. The first object is a group of all
10674 # non block solids (= not 6 faces, or with 6 faces, but with the
10675 # presence of non-quadrangular faces). The second object is a
10676 # group of all non quadrangular faces.
10678 # @ref tui_measurement_tools_page "Example 1"
10679 # \n @ref swig_GetNonBlocks "Example 2"
10680 def GetNonBlocks (self, theShape, theName=None):
10682 Retrieve all non blocks solids and faces from theShape.
10685 theShape The shape to explore.
10686 theName Object name; when specified, this parameter is used
10687 for result publication in the study. Otherwise, if automatic
10688 publication is switched on, default value is used for result name.
10691 A tuple of two GEOM_Objects. The first object is a group of all
10692 non block solids (= not 6 faces, or with 6 faces, but with the
10693 presence of non-quadrangular faces). The second object is a
10694 group of all non quadrangular faces.
10697 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
10699 # Example: see GEOM_Spanner.py
10700 aTuple = self.BlocksOp.GetNonBlocks(theShape)
10701 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
10702 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
10705 ## Remove all seam and degenerated edges from \a theShape.
10706 # Unite faces and edges, sharing one surface. It means that
10707 # this faces must have references to one C++ surface object (handle).
10708 # @param theShape The compound or single solid to remove irregular edges from.
10709 # @param doUnionFaces If True, then unite faces. If False (the default value),
10710 # do not unite faces.
10711 # @param theName Object name; when specified, this parameter is used
10712 # for result publication in the study. Otherwise, if automatic
10713 # publication is switched on, default value is used for result name.
10715 # @return Improved shape.
10717 # @ref swig_RemoveExtraEdges "Example"
10718 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
10720 Remove all seam and degenerated edges from theShape.
10721 Unite faces and edges, sharing one surface. It means that
10722 this faces must have references to one C++ surface object (handle).
10725 theShape The compound or single solid to remove irregular edges from.
10726 doUnionFaces If True, then unite faces. If False (the default value),
10727 do not unite faces.
10728 theName Object name; when specified, this parameter is used
10729 for result publication in the study. Otherwise, if automatic
10730 publication is switched on, default value is used for result name.
10735 # Example: see GEOM_TestOthers.py
10736 nbFacesOptimum = -1 # -1 means do not unite faces
10737 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
10738 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
10739 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
10740 self._autoPublish(anObj, theName, "removeExtraEdges")
10743 ## Performs union faces of \a theShape
10744 # Unite faces sharing one surface. It means that
10745 # these faces must have references to one C++ surface object (handle).
10746 # @param theShape The compound or single solid that contains faces
10747 # to perform union.
10748 # @param theName Object name; when specified, this parameter is used
10749 # for result publication in the study. Otherwise, if automatic
10750 # publication is switched on, default value is used for result name.
10752 # @return Improved shape.
10754 # @ref swig_UnionFaces "Example"
10755 def UnionFaces(self, theShape, theName=None):
10757 Performs union faces of theShape.
10758 Unite faces sharing one surface. It means that
10759 these faces must have references to one C++ surface object (handle).
10762 theShape The compound or single solid that contains faces
10764 theName Object name; when specified, this parameter is used
10765 for result publication in the study. Otherwise, if automatic
10766 publication is switched on, default value is used for result name.
10771 # Example: see GEOM_TestOthers.py
10772 anObj = self.BlocksOp.UnionFaces(theShape)
10773 RaiseIfFailed("UnionFaces", self.BlocksOp)
10774 self._autoPublish(anObj, theName, "unionFaces")
10777 ## Check, if the given shape is a blocks compound.
10778 # Fix all detected errors.
10779 # \note Single block can be also fixed by this method.
10780 # @param theShape The compound to check and improve.
10781 # @param theName Object name; when specified, this parameter is used
10782 # for result publication in the study. Otherwise, if automatic
10783 # publication is switched on, default value is used for result name.
10785 # @return Improved compound.
10787 # @ref swig_CheckAndImprove "Example"
10788 def CheckAndImprove(self, theShape, theName=None):
10790 Check, if the given shape is a blocks compound.
10791 Fix all detected errors.
10794 Single block can be also fixed by this method.
10797 theShape The compound to check and improve.
10798 theName Object name; when specified, this parameter is used
10799 for result publication in the study. Otherwise, if automatic
10800 publication is switched on, default value is used for result name.
10805 # Example: see GEOM_TestOthers.py
10806 anObj = self.BlocksOp.CheckAndImprove(theShape)
10807 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
10808 self._autoPublish(anObj, theName, "improved")
10811 # end of l4_blocks_measure
10814 ## @addtogroup l3_blocks_op
10817 ## Get all the blocks, contained in the given compound.
10818 # @param theCompound The compound to explode.
10819 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
10820 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
10821 # @param theName Object name; when specified, this parameter is used
10822 # for result publication in the study. Otherwise, if automatic
10823 # publication is switched on, default value is used for result name.
10825 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10827 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
10829 # @ref tui_explode_on_blocks "Example 1"
10830 # \n @ref swig_MakeBlockExplode "Example 2"
10831 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
10833 Get all the blocks, contained in the given compound.
10836 theCompound The compound to explode.
10837 theMinNbFaces If solid has lower number of faces, it is not a block.
10838 theMaxNbFaces If solid has higher number of faces, it is not a block.
10839 theName Object name; when specified, this parameter is used
10840 for result publication in the study. Otherwise, if automatic
10841 publication is switched on, default value is used for result name.
10844 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10847 List of GEOM.GEOM_Object, containing the retrieved blocks.
10849 # Example: see GEOM_TestOthers.py
10850 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
10851 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
10852 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
10853 for anObj in aList:
10854 anObj.SetParameters(Parameters)
10856 self._autoPublish(aList, theName, "block")
10859 ## Find block, containing the given point inside its volume or on boundary.
10860 # @param theCompound Compound, to find block in.
10861 # @param thePoint Point, close to the desired block. If the point lays on
10862 # boundary between some blocks, we return block with nearest center.
10863 # @param theName Object name; when specified, this parameter is used
10864 # for result publication in the study. Otherwise, if automatic
10865 # publication is switched on, default value is used for result name.
10867 # @return New GEOM.GEOM_Object, containing the found block.
10869 # @ref swig_todo "Example"
10870 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
10872 Find block, containing the given point inside its volume or on boundary.
10875 theCompound Compound, to find block in.
10876 thePoint Point, close to the desired block. If the point lays on
10877 boundary between some blocks, we return block with nearest center.
10878 theName Object name; when specified, this parameter is used
10879 for result publication in the study. Otherwise, if automatic
10880 publication is switched on, default value is used for result name.
10883 New GEOM.GEOM_Object, containing the found block.
10885 # Example: see GEOM_Spanner.py
10886 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
10887 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
10888 self._autoPublish(anObj, theName, "block")
10891 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
10892 # @param theCompound Compound, to find block in.
10893 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
10894 # @param theName Object name; when specified, this parameter is used
10895 # for result publication in the study. Otherwise, if automatic
10896 # publication is switched on, default value is used for result name.
10898 # @return New GEOM.GEOM_Object, containing the found block.
10900 # @ref swig_GetBlockByParts "Example"
10901 def GetBlockByParts(self, theCompound, theParts, theName=None):
10903 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
10906 theCompound Compound, to find block in.
10907 theParts List of faces and/or edges and/or vertices to be parts of the found block.
10908 theName Object name; when specified, this parameter is used
10909 for result publication in the study. Otherwise, if automatic
10910 publication is switched on, default value is used for result name.
10913 New GEOM_Object, containing the found block.
10915 # Example: see GEOM_TestOthers.py
10916 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
10917 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
10918 self._autoPublish(anObj, theName, "block")
10921 ## Return all blocks, containing all the elements, passed as the parts.
10922 # @param theCompound Compound, to find blocks in.
10923 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
10924 # @param theName Object name; when specified, this parameter is used
10925 # for result publication in the study. Otherwise, if automatic
10926 # publication is switched on, default value is used for result name.
10928 # @return List of GEOM.GEOM_Object, containing the found blocks.
10930 # @ref swig_todo "Example"
10931 def GetBlocksByParts(self, theCompound, theParts, theName=None):
10933 Return all blocks, containing all the elements, passed as the parts.
10936 theCompound Compound, to find blocks in.
10937 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
10938 theName Object name; when specified, this parameter is used
10939 for result publication in the study. Otherwise, if automatic
10940 publication is switched on, default value is used for result name.
10943 List of GEOM.GEOM_Object, containing the found blocks.
10945 # Example: see GEOM_Spanner.py
10946 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
10947 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
10948 self._autoPublish(aList, theName, "block")
10951 ## Multi-transformate block and glue the result.
10952 # Transformation is defined so, as to superpose direction faces.
10953 # @param Block Hexahedral solid to be multi-transformed.
10954 # @param DirFace1 ID of First direction face.
10955 # @param DirFace2 ID of Second direction face.
10956 # @param NbTimes Quantity of transformations to be done.
10957 # @param theName Object name; when specified, this parameter is used
10958 # for result publication in the study. Otherwise, if automatic
10959 # publication is switched on, default value is used for result name.
10961 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
10963 # @return New GEOM.GEOM_Object, containing the result shape.
10965 # @ref tui_multi_transformation "Example"
10966 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
10968 Multi-transformate block and glue the result.
10969 Transformation is defined so, as to superpose direction faces.
10972 Block Hexahedral solid to be multi-transformed.
10973 DirFace1 ID of First direction face.
10974 DirFace2 ID of Second direction face.
10975 NbTimes Quantity of transformations to be done.
10976 theName Object name; when specified, this parameter is used
10977 for result publication in the study. Otherwise, if automatic
10978 publication is switched on, default value is used for result name.
10981 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
10984 New GEOM.GEOM_Object, containing the result shape.
10986 # Example: see GEOM_Spanner.py
10987 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
10988 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
10989 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
10990 anObj.SetParameters(Parameters)
10991 self._autoPublish(anObj, theName, "transformed")
10994 ## Multi-transformate block and glue the result.
10995 # @param Block Hexahedral solid to be multi-transformed.
10996 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
10997 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
10998 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
10999 # @param theName Object name; when specified, this parameter is used
11000 # for result publication in the study. Otherwise, if automatic
11001 # publication is switched on, default value is used for result name.
11003 # @return New GEOM.GEOM_Object, containing the result shape.
11005 # @ref tui_multi_transformation "Example"
11006 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
11007 DirFace1V, DirFace2V, NbTimesV, theName=None):
11009 Multi-transformate block and glue the result.
11012 Block Hexahedral solid to be multi-transformed.
11013 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
11014 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
11015 NbTimesU,NbTimesV Quantity of transformations to be done.
11016 theName Object name; when specified, this parameter is used
11017 for result publication in the study. Otherwise, if automatic
11018 publication is switched on, default value is used for result name.
11021 New GEOM.GEOM_Object, containing the result shape.
11023 # Example: see GEOM_Spanner.py
11024 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
11025 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
11026 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
11027 DirFace1V, DirFace2V, NbTimesV)
11028 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
11029 anObj.SetParameters(Parameters)
11030 self._autoPublish(anObj, theName, "transformed")
11033 ## Build all possible propagation groups.
11034 # Propagation group is a set of all edges, opposite to one (main)
11035 # edge of this group directly or through other opposite edges.
11036 # Notion of Opposite Edge make sence only on quadrangle face.
11037 # @param theShape Shape to build propagation groups on.
11038 # @param theName Object name; when specified, this parameter is used
11039 # for result publication in the study. Otherwise, if automatic
11040 # publication is switched on, default value is used for result name.
11042 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
11044 # @ref swig_Propagate "Example"
11045 def Propagate(self, theShape, theName=None):
11047 Build all possible propagation groups.
11048 Propagation group is a set of all edges, opposite to one (main)
11049 edge of this group directly or through other opposite edges.
11050 Notion of Opposite Edge make sence only on quadrangle face.
11053 theShape Shape to build propagation groups on.
11054 theName Object name; when specified, this parameter is used
11055 for result publication in the study. Otherwise, if automatic
11056 publication is switched on, default value is used for result name.
11059 List of GEOM.GEOM_Object, each of them is a propagation group.
11061 # Example: see GEOM_TestOthers.py
11062 listChains = self.BlocksOp.Propagate(theShape)
11063 RaiseIfFailed("Propagate", self.BlocksOp)
11064 self._autoPublish(listChains, theName, "propagate")
11067 # end of l3_blocks_op
11070 ## @addtogroup l3_groups
11073 ## Creates a new group which will store sub-shapes of theMainShape
11074 # @param theMainShape is a GEOM object on which the group is selected
11075 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
11076 # @param theName Object name; when specified, this parameter is used
11077 # for result publication in the study. Otherwise, if automatic
11078 # publication is switched on, default value is used for result name.
11080 # @return a newly created GEOM group (GEOM.GEOM_Object)
11082 # @ref tui_working_with_groups_page "Example 1"
11083 # \n @ref swig_CreateGroup "Example 2"
11084 def CreateGroup(self, theMainShape, theShapeType, theName=None):
11086 Creates a new group which will store sub-shapes of theMainShape
11089 theMainShape is a GEOM object on which the group is selected
11090 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
11091 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
11092 theName Object name; when specified, this parameter is used
11093 for result publication in the study. Otherwise, if automatic
11094 publication is switched on, default value is used for result name.
11097 a newly created GEOM group
11100 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
11103 # Example: see GEOM_TestOthers.py
11104 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
11105 RaiseIfFailed("CreateGroup", self.GroupOp)
11106 self._autoPublish(anObj, theName, "group")
11109 ## Adds a sub-object with ID theSubShapeId to the group
11110 # @param theGroup is a GEOM group to which the new sub-shape is added
11111 # @param theSubShapeID is a sub-shape ID in the main object.
11112 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11114 # @ref tui_working_with_groups_page "Example"
11115 def AddObject(self,theGroup, theSubShapeID):
11117 Adds a sub-object with ID theSubShapeId to the group
11120 theGroup is a GEOM group to which the new sub-shape is added
11121 theSubShapeID is a sub-shape ID in the main object.
11124 Use method GetSubShapeID() to get an unique ID of the sub-shape
11126 # Example: see GEOM_TestOthers.py
11127 self.GroupOp.AddObject(theGroup, theSubShapeID)
11128 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
11129 RaiseIfFailed("AddObject", self.GroupOp)
11133 ## Removes a sub-object with ID \a theSubShapeId from the group
11134 # @param theGroup is a GEOM group from which the new sub-shape is removed
11135 # @param theSubShapeID is a sub-shape ID in the main object.
11136 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11138 # @ref tui_working_with_groups_page "Example"
11139 def RemoveObject(self,theGroup, theSubShapeID):
11141 Removes a sub-object with ID theSubShapeId from the group
11144 theGroup is a GEOM group from which the new sub-shape is removed
11145 theSubShapeID is a sub-shape ID in the main object.
11148 Use method GetSubShapeID() to get an unique ID of the sub-shape
11150 # Example: see GEOM_TestOthers.py
11151 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
11152 RaiseIfFailed("RemoveObject", self.GroupOp)
11155 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11156 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11157 # @param theSubShapes is a list of sub-shapes to be added.
11159 # @ref tui_working_with_groups_page "Example"
11160 def UnionList (self,theGroup, theSubShapes):
11162 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11165 theGroup is a GEOM group to which the new sub-shapes are added.
11166 theSubShapes is a list of sub-shapes to be added.
11168 # Example: see GEOM_TestOthers.py
11169 self.GroupOp.UnionList(theGroup, theSubShapes)
11170 RaiseIfFailed("UnionList", self.GroupOp)
11173 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11174 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11175 # @param theSubShapes is a list of indices of sub-shapes to be added.
11177 # @ref swig_UnionIDs "Example"
11178 def UnionIDs(self,theGroup, theSubShapes):
11180 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11183 theGroup is a GEOM group to which the new sub-shapes are added.
11184 theSubShapes is a list of indices of sub-shapes to be added.
11186 # Example: see GEOM_TestOthers.py
11187 self.GroupOp.UnionIDs(theGroup, theSubShapes)
11188 RaiseIfFailed("UnionIDs", self.GroupOp)
11191 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11192 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11193 # @param theSubShapes is a list of sub-shapes to be removed.
11195 # @ref tui_working_with_groups_page "Example"
11196 def DifferenceList (self,theGroup, theSubShapes):
11198 Removes from the group all the given shapes. No errors, if some shapes are not included.
11201 theGroup is a GEOM group from which the sub-shapes are removed.
11202 theSubShapes is a list of sub-shapes to be removed.
11204 # Example: see GEOM_TestOthers.py
11205 self.GroupOp.DifferenceList(theGroup, theSubShapes)
11206 RaiseIfFailed("DifferenceList", self.GroupOp)
11209 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11210 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11211 # @param theSubShapes is a list of indices of sub-shapes to be removed.
11213 # @ref swig_DifferenceIDs "Example"
11214 def DifferenceIDs(self,theGroup, theSubShapes):
11216 Removes from the group all the given shapes. No errors, if some shapes are not included.
11219 theGroup is a GEOM group from which the sub-shapes are removed.
11220 theSubShapes is a list of indices of sub-shapes to be removed.
11222 # Example: see GEOM_TestOthers.py
11223 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
11224 RaiseIfFailed("DifferenceIDs", self.GroupOp)
11227 ## Union of two groups.
11228 # New group is created. It will contain all entities
11229 # which are present in groups theGroup1 and theGroup2.
11230 # @param theGroup1, theGroup2 are the initial GEOM groups
11231 # to create the united group from.
11232 # @param theName Object name; when specified, this parameter is used
11233 # for result publication in the study. Otherwise, if automatic
11234 # publication is switched on, default value is used for result name.
11236 # @return a newly created GEOM group.
11238 # @ref tui_union_groups_anchor "Example"
11239 def UnionGroups (self, theGroup1, theGroup2, theName=None):
11241 Union of two groups.
11242 New group is created. It will contain all entities
11243 which are present in groups theGroup1 and theGroup2.
11246 theGroup1, theGroup2 are the initial GEOM groups
11247 to create the united group from.
11248 theName Object name; when specified, this parameter is used
11249 for result publication in the study. Otherwise, if automatic
11250 publication is switched on, default value is used for result name.
11253 a newly created GEOM group.
11255 # Example: see GEOM_TestOthers.py
11256 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
11257 RaiseIfFailed("UnionGroups", self.GroupOp)
11258 self._autoPublish(aGroup, theName, "group")
11261 ## Intersection of two groups.
11262 # New group is created. It will contain only those entities
11263 # which are present in both groups theGroup1 and theGroup2.
11264 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11265 # @param theName Object name; when specified, this parameter is used
11266 # for result publication in the study. Otherwise, if automatic
11267 # publication is switched on, default value is used for result name.
11269 # @return a newly created GEOM group.
11271 # @ref tui_intersect_groups_anchor "Example"
11272 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
11274 Intersection of two groups.
11275 New group is created. It will contain only those entities
11276 which are present in both groups theGroup1 and theGroup2.
11279 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11280 theName Object name; when specified, this parameter is used
11281 for result publication in the study. Otherwise, if automatic
11282 publication is switched on, default value is used for result name.
11285 a newly created GEOM group.
11287 # Example: see GEOM_TestOthers.py
11288 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
11289 RaiseIfFailed("IntersectGroups", self.GroupOp)
11290 self._autoPublish(aGroup, theName, "group")
11293 ## Cut of two groups.
11294 # New group is created. It will contain entities which are
11295 # present in group theGroup1 but are not present in group theGroup2.
11296 # @param theGroup1 is a GEOM group to include elements of.
11297 # @param theGroup2 is a GEOM group to exclude elements of.
11298 # @param theName Object name; when specified, this parameter is used
11299 # for result publication in the study. Otherwise, if automatic
11300 # publication is switched on, default value is used for result name.
11302 # @return a newly created GEOM group.
11304 # @ref tui_cut_groups_anchor "Example"
11305 def CutGroups (self, theGroup1, theGroup2, theName=None):
11308 New group is created. It will contain entities which are
11309 present in group theGroup1 but are not present in group theGroup2.
11312 theGroup1 is a GEOM group to include elements of.
11313 theGroup2 is a GEOM group to exclude elements of.
11314 theName Object name; when specified, this parameter is used
11315 for result publication in the study. Otherwise, if automatic
11316 publication is switched on, default value is used for result name.
11319 a newly created GEOM group.
11321 # Example: see GEOM_TestOthers.py
11322 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
11323 RaiseIfFailed("CutGroups", self.GroupOp)
11324 self._autoPublish(aGroup, theName, "group")
11327 ## Union of list of groups.
11328 # New group is created. It will contain all entities that are
11329 # present in groups listed in theGList.
11330 # @param theGList is a list of GEOM groups to create the united group from.
11331 # @param theName Object name; when specified, this parameter is used
11332 # for result publication in the study. Otherwise, if automatic
11333 # publication is switched on, default value is used for result name.
11335 # @return a newly created GEOM group.
11337 # @ref tui_union_groups_anchor "Example"
11338 def UnionListOfGroups (self, theGList, theName=None):
11340 Union of list of groups.
11341 New group is created. It will contain all entities that are
11342 present in groups listed in theGList.
11345 theGList is a list of GEOM groups to create the united group from.
11346 theName Object name; when specified, this parameter is used
11347 for result publication in the study. Otherwise, if automatic
11348 publication is switched on, default value is used for result name.
11351 a newly created GEOM group.
11353 # Example: see GEOM_TestOthers.py
11354 aGroup = self.GroupOp.UnionListOfGroups(theGList)
11355 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
11356 self._autoPublish(aGroup, theName, "group")
11359 ## Cut of lists of groups.
11360 # New group is created. It will contain only entities
11361 # which are present in groups listed in theGList1 but
11362 # are not present in groups from theGList2.
11363 # @param theGList1 is a list of GEOM groups to include elements of.
11364 # @param theGList2 is a list of GEOM groups to exclude elements of.
11365 # @param theName Object name; when specified, this parameter is used
11366 # for result publication in the study. Otherwise, if automatic
11367 # publication is switched on, default value is used for result name.
11369 # @return a newly created GEOM group.
11371 # @ref tui_intersect_groups_anchor "Example"
11372 def IntersectListOfGroups (self, theGList, theName=None):
11374 Cut of lists of groups.
11375 New group is created. It will contain only entities
11376 which are present in groups listed in theGList1 but
11377 are not present in groups from theGList2.
11380 theGList1 is a list of GEOM groups to include elements of.
11381 theGList2 is a list of GEOM groups to exclude elements of.
11382 theName Object name; when specified, this parameter is used
11383 for result publication in the study. Otherwise, if automatic
11384 publication is switched on, default value is used for result name.
11387 a newly created GEOM group.
11389 # Example: see GEOM_TestOthers.py
11390 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
11391 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
11392 self._autoPublish(aGroup, theName, "group")
11395 ## Cut of lists of groups.
11396 # New group is created. It will contain only entities
11397 # which are present in groups listed in theGList1 but
11398 # are not present in groups from theGList2.
11399 # @param theGList1 is a list of GEOM groups to include elements of.
11400 # @param theGList2 is a list of GEOM groups to exclude elements of.
11401 # @param theName Object name; when specified, this parameter is used
11402 # for result publication in the study. Otherwise, if automatic
11403 # publication is switched on, default value is used for result name.
11405 # @return a newly created GEOM group.
11407 # @ref tui_cut_groups_anchor "Example"
11408 def CutListOfGroups (self, theGList1, theGList2, theName=None):
11410 Cut of lists of groups.
11411 New group is created. It will contain only entities
11412 which are present in groups listed in theGList1 but
11413 are not present in groups from theGList2.
11416 theGList1 is a list of GEOM groups to include elements of.
11417 theGList2 is a list of GEOM groups to exclude elements of.
11418 theName Object name; when specified, this parameter is used
11419 for result publication in the study. Otherwise, if automatic
11420 publication is switched on, default value is used for result name.
11423 a newly created GEOM group.
11425 # Example: see GEOM_TestOthers.py
11426 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
11427 RaiseIfFailed("CutListOfGroups", self.GroupOp)
11428 self._autoPublish(aGroup, theName, "group")
11431 ## Returns a list of sub-objects ID stored in the group
11432 # @param theGroup is a GEOM group for which a list of IDs is requested
11434 # @ref swig_GetObjectIDs "Example"
11435 def GetObjectIDs(self,theGroup):
11437 Returns a list of sub-objects ID stored in the group
11440 theGroup is a GEOM group for which a list of IDs is requested
11442 # Example: see GEOM_TestOthers.py
11443 ListIDs = self.GroupOp.GetObjects(theGroup)
11444 RaiseIfFailed("GetObjects", self.GroupOp)
11447 ## Returns a type of sub-objects stored in the group
11448 # @param theGroup is a GEOM group which type is returned.
11450 # @ref swig_GetType "Example"
11451 def GetType(self,theGroup):
11453 Returns a type of sub-objects stored in the group
11456 theGroup is a GEOM group which type is returned.
11458 # Example: see GEOM_TestOthers.py
11459 aType = self.GroupOp.GetType(theGroup)
11460 RaiseIfFailed("GetType", self.GroupOp)
11463 ## Convert a type of geom object from id to string value
11464 # @param theId is a GEOM obect type id.
11465 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11466 # @ref swig_GetType "Example"
11467 def ShapeIdToType(self, theId):
11469 Convert a type of geom object from id to string value
11472 theId is a GEOM obect type id.
11475 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11502 return "REVOLUTION"
11550 return "FREE_BOUNDS"
11558 return "THRUSECTIONS"
11560 return "COMPOUNDFILTER"
11562 return "SHAPES_ON_SHAPE"
11564 return "ELLIPSE_ARC"
11566 return "3DSKETCHER"
11572 return "PIPETSHAPE"
11573 return "Shape Id not exist."
11575 ## Returns a main shape associated with the group
11576 # @param theGroup is a GEOM group for which a main shape object is requested
11577 # @return a GEOM object which is a main shape for theGroup
11579 # @ref swig_GetMainShape "Example"
11580 def GetMainShape(self,theGroup):
11582 Returns a main shape associated with the group
11585 theGroup is a GEOM group for which a main shape object is requested
11588 a GEOM object which is a main shape for theGroup
11590 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
11592 # Example: see GEOM_TestOthers.py
11593 anObj = self.GroupOp.GetMainShape(theGroup)
11594 RaiseIfFailed("GetMainShape", self.GroupOp)
11597 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
11598 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11599 # @param theShape given shape (see GEOM.GEOM_Object)
11600 # @param min_length minimum length of edges of theShape
11601 # @param max_length maximum length of edges of theShape
11602 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11603 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11604 # @param theName Object name; when specified, this parameter is used
11605 # for result publication in the study. Otherwise, if automatic
11606 # publication is switched on, default value is used for result name.
11608 # @return a newly created GEOM group of edges
11610 # @@ref swig_todo "Example"
11611 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
11613 Create group of edges of theShape, whose length is in range [min_length, max_length].
11614 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11617 theShape given shape
11618 min_length minimum length of edges of theShape
11619 max_length maximum length of edges of theShape
11620 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11621 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11622 theName Object name; when specified, this parameter is used
11623 for result publication in the study. Otherwise, if automatic
11624 publication is switched on, default value is used for result name.
11627 a newly created GEOM group of edges.
11629 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
11630 edges_in_range = []
11632 Props = self.BasicProperties(edge)
11633 if min_length <= Props[0] and Props[0] <= max_length:
11634 if (not include_min) and (min_length == Props[0]):
11637 if (not include_max) and (Props[0] == max_length):
11640 edges_in_range.append(edge)
11642 if len(edges_in_range) <= 0:
11643 print "No edges found by given criteria"
11646 # note: auto-publishing is done in self.CreateGroup()
11647 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
11648 self.UnionList(group_edges, edges_in_range)
11652 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
11653 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11654 # @param min_length minimum length of edges of selected shape
11655 # @param max_length maximum length of edges of selected shape
11656 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11657 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11658 # @return a newly created GEOM group of edges
11659 # @ref swig_todo "Example"
11660 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
11662 Create group of edges of selected shape, whose length is in range [min_length, max_length].
11663 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11666 min_length minimum length of edges of selected shape
11667 max_length maximum length of edges of selected shape
11668 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11669 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11672 a newly created GEOM group of edges.
11674 nb_selected = sg.SelectedCount()
11675 if nb_selected < 1:
11676 print "Select a shape before calling this function, please."
11678 if nb_selected > 1:
11679 print "Only one shape must be selected"
11682 id_shape = sg.getSelected(0)
11683 shape = IDToObject( id_shape )
11685 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
11689 if include_min: left_str = " <= "
11690 if include_max: right_str = " <= "
11692 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
11693 + left_str + "length" + right_str + `max_length`)
11695 sg.updateObjBrowser(1)
11702 ## @addtogroup l4_advanced
11705 ## Create a T-shape object with specified caracteristics for the main
11706 # and the incident pipes (radius, width, half-length).
11707 # The extremities of the main pipe are located on junctions points P1 and P2.
11708 # The extremity of the incident pipe is located on junction point P3.
11709 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11710 # the main plane of the T-shape is XOY.
11712 # @param theR1 Internal radius of main pipe
11713 # @param theW1 Width of main pipe
11714 # @param theL1 Half-length of main pipe
11715 # @param theR2 Internal radius of incident pipe (R2 < R1)
11716 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11717 # @param theL2 Half-length of incident pipe
11719 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11720 # @param theP1 1st junction point of main pipe
11721 # @param theP2 2nd junction point of main pipe
11722 # @param theP3 Junction point of incident pipe
11724 # @param theRL Internal radius of left thickness reduction
11725 # @param theWL Width of left thickness reduction
11726 # @param theLtransL Length of left transition part
11727 # @param theLthinL Length of left thin part
11729 # @param theRR Internal radius of right thickness reduction
11730 # @param theWR Width of right thickness reduction
11731 # @param theLtransR Length of right transition part
11732 # @param theLthinR Length of right thin part
11734 # @param theRI Internal radius of incident thickness reduction
11735 # @param theWI Width of incident thickness reduction
11736 # @param theLtransI Length of incident transition part
11737 # @param theLthinI Length of incident thin part
11739 # @param theName Object name; when specified, this parameter is used
11740 # for result publication in the study. Otherwise, if automatic
11741 # publication is switched on, default value is used for result name.
11743 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11745 # @ref tui_creation_pipetshape "Example"
11746 def MakePipeTShape (self, theR1, theW1, theL1, theR2, theW2, theL2,
11747 theHexMesh=True, theP1=None, theP2=None, theP3=None,
11748 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11749 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11750 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11753 Create a T-shape object with specified caracteristics for the main
11754 and the incident pipes (radius, width, half-length).
11755 The extremities of the main pipe are located on junctions points P1 and P2.
11756 The extremity of the incident pipe is located on junction point P3.
11757 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11758 the main plane of the T-shape is XOY.
11761 theR1 Internal radius of main pipe
11762 theW1 Width of main pipe
11763 theL1 Half-length of main pipe
11764 theR2 Internal radius of incident pipe (R2 < R1)
11765 theW2 Width of incident pipe (R2+W2 < R1+W1)
11766 theL2 Half-length of incident pipe
11767 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11768 theP1 1st junction point of main pipe
11769 theP2 2nd junction point of main pipe
11770 theP3 Junction point of incident pipe
11772 theRL Internal radius of left thickness reduction
11773 theWL Width of left thickness reduction
11774 theLtransL Length of left transition part
11775 theLthinL Length of left thin part
11777 theRR Internal radius of right thickness reduction
11778 theWR Width of right thickness reduction
11779 theLtransR Length of right transition part
11780 theLthinR Length of right thin part
11782 theRI Internal radius of incident thickness reduction
11783 theWI Width of incident thickness reduction
11784 theLtransI Length of incident transition part
11785 theLthinI Length of incident thin part
11787 theName Object name; when specified, this parameter is used
11788 for result publication in the study. Otherwise, if automatic
11789 publication is switched on, default value is used for result name.
11792 List of GEOM_Object, containing the created shape and propagation groups.
11795 # create PipeTShape object
11796 pipetshape = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0)
11797 # create PipeTShape object with position
11798 pipetshape_position = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, True, P1, P2, P3)
11799 # create PipeTShape object with left thickness reduction
11800 pipetshape_thr = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
11802 theR1, theW1, theL1, theR2, theW2, theL2, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI)
11803 if (theP1 and theP2 and theP3):
11804 anObj = self.AdvOp.MakePipeTShapeTRWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
11805 theRL, theWL, theLtransL, theLthinL,
11806 theRR, theWR, theLtransR, theLthinR,
11807 theRI, theWI, theLtransI, theLthinI,
11808 theHexMesh, theP1, theP2, theP3)
11810 anObj = self.AdvOp.MakePipeTShapeTR(theR1, theW1, theL1, theR2, theW2, theL2,
11811 theRL, theWL, theLtransL, theLthinL,
11812 theRR, theWR, theLtransR, theLthinR,
11813 theRI, theWI, theLtransI, theLthinI,
11815 RaiseIfFailed("MakePipeTShape", self.AdvOp)
11816 if Parameters: anObj[0].SetParameters(Parameters)
11817 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
11818 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
11821 ## Create a T-shape object with chamfer and with specified caracteristics for the main
11822 # and the incident pipes (radius, width, half-length). The chamfer is
11823 # created on the junction of the pipes.
11824 # The extremities of the main pipe are located on junctions points P1 and P2.
11825 # The extremity of the incident pipe is located on junction point P3.
11826 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11827 # the main plane of the T-shape is XOY.
11828 # @param theR1 Internal radius of main pipe
11829 # @param theW1 Width of main pipe
11830 # @param theL1 Half-length of main pipe
11831 # @param theR2 Internal radius of incident pipe (R2 < R1)
11832 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11833 # @param theL2 Half-length of incident pipe
11834 # @param theH Height of the chamfer.
11835 # @param theW Width of the chamfer.
11836 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11837 # @param theP1 1st junction point of main pipe
11838 # @param theP2 2nd junction point of main pipe
11839 # @param theP3 Junction point of incident pipe
11841 # @param theRL Internal radius of left thickness reduction
11842 # @param theWL Width of left thickness reduction
11843 # @param theLtransL Length of left transition part
11844 # @param theLthinL Length of left thin part
11846 # @param theRR Internal radius of right thickness reduction
11847 # @param theWR Width of right thickness reduction
11848 # @param theLtransR Length of right transition part
11849 # @param theLthinR Length of right thin part
11851 # @param theRI Internal radius of incident thickness reduction
11852 # @param theWI Width of incident thickness reduction
11853 # @param theLtransI Length of incident transition part
11854 # @param theLthinI Length of incident thin part
11856 # @param theName Object name; when specified, this parameter is used
11857 # for result publication in the study. Otherwise, if automatic
11858 # publication is switched on, default value is used for result name.
11860 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11862 # @ref tui_creation_pipetshape "Example"
11863 def MakePipeTShapeChamfer (self, theR1, theW1, theL1, theR2, theW2, theL2,
11864 theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None,
11865 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11866 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11867 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11870 Create a T-shape object with chamfer and with specified caracteristics for the main
11871 and the incident pipes (radius, width, half-length). The chamfer is
11872 created on the junction of the pipes.
11873 The extremities of the main pipe are located on junctions points P1 and P2.
11874 The extremity of the incident pipe is located on junction point P3.
11875 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11876 the main plane of the T-shape is XOY.
11879 theR1 Internal radius of main pipe
11880 theW1 Width of main pipe
11881 theL1 Half-length of main pipe
11882 theR2 Internal radius of incident pipe (R2 < R1)
11883 theW2 Width of incident pipe (R2+W2 < R1+W1)
11884 theL2 Half-length of incident pipe
11885 theH Height of the chamfer.
11886 theW Width of the chamfer.
11887 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11888 theP1 1st junction point of main pipe
11889 theP2 2nd junction point of main pipe
11890 theP3 Junction point of incident pipe
11892 theRL Internal radius of left thickness reduction
11893 theWL Width of left thickness reduction
11894 theLtransL Length of left transition part
11895 theLthinL Length of left thin part
11897 theRR Internal radius of right thickness reduction
11898 theWR Width of right thickness reduction
11899 theLtransR Length of right transition part
11900 theLthinR Length of right thin part
11902 theRI Internal radius of incident thickness reduction
11903 theWI Width of incident thickness reduction
11904 theLtransI Length of incident transition part
11905 theLthinI Length of incident thin part
11907 theName Object name; when specified, this parameter is used
11908 for result publication in the study. Otherwise, if automatic
11909 publication is switched on, default value is used for result name.
11912 List of GEOM_Object, containing the created shape and propagation groups.
11915 # create PipeTShape with chamfer object
11916 pipetshapechamfer = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0)
11917 # create PipeTShape with chamfer object with position
11918 pipetshapechamfer_position = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, True, P1, P2, P3)
11919 # create PipeTShape with chamfer object with left thickness reduction
11920 pipetshapechamfer_thr = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
11922 theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI)
11923 if (theP1 and theP2 and theP3):
11924 anObj = self.AdvOp.MakePipeTShapeTRChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
11925 theRL, theWL, theLtransL, theLthinL,
11926 theRR, theWR, theLtransR, theLthinR,
11927 theRI, theWI, theLtransI, theLthinI,
11928 theH, theW, theHexMesh, theP1, theP2, theP3)
11930 anObj = self.AdvOp.MakePipeTShapeTRChamfer(theR1, theW1, theL1, theR2, theW2, theL2,
11931 theRL, theWL, theLtransL, theLthinL,
11932 theRR, theWR, theLtransR, theLthinR,
11933 theRI, theWI, theLtransI, theLthinI,
11934 theH, theW, theHexMesh)
11935 RaiseIfFailed("MakePipeTShapeChamfer", self.AdvOp)
11936 if Parameters: anObj[0].SetParameters(Parameters)
11937 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
11938 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
11941 ## Create a T-shape object with fillet and with specified caracteristics for the main
11942 # and the incident pipes (radius, width, half-length). The fillet is
11943 # created on the junction of the pipes.
11944 # The extremities of the main pipe are located on junctions points P1 and P2.
11945 # The extremity of the incident pipe is located on junction point P3.
11946 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11947 # the main plane of the T-shape is XOY.
11948 # @param theR1 Internal radius of main pipe
11949 # @param theW1 Width of main pipe
11950 # @param theL1 Half-length of main pipe
11951 # @param theR2 Internal radius of incident pipe (R2 < R1)
11952 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11953 # @param theL2 Half-length of incident pipe
11954 # @param theRF Radius of curvature of fillet.
11955 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11956 # @param theP1 1st junction point of main pipe
11957 # @param theP2 2nd junction point of main pipe
11958 # @param theP3 Junction point of incident pipe
11960 # @param theRL Internal radius of left thickness reduction
11961 # @param theWL Width of left thickness reduction
11962 # @param theLtransL Length of left transition part
11963 # @param theLthinL Length of left thin part
11965 # @param theRR Internal radius of right thickness reduction
11966 # @param theWR Width of right thickness reduction
11967 # @param theLtransR Length of right transition part
11968 # @param theLthinR Length of right thin part
11970 # @param theRI Internal radius of incident thickness reduction
11971 # @param theWI Width of incident thickness reduction
11972 # @param theLtransI Length of incident transition part
11973 # @param theLthinI Length of incident thin part
11975 # @param theName Object name; when specified, this parameter is used
11976 # for result publication in the study. Otherwise, if automatic
11977 # publication is switched on, default value is used for result name.
11979 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11981 # @ref tui_creation_pipetshape "Example"
11982 def MakePipeTShapeFillet (self, theR1, theW1, theL1, theR2, theW2, theL2,
11983 theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None,
11984 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11985 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11986 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11989 Create a T-shape object with fillet and with specified caracteristics for the main
11990 and the incident pipes (radius, width, half-length). The fillet is
11991 created on the junction of the pipes.
11992 The extremities of the main pipe are located on junctions points P1 and P2.
11993 The extremity of the incident pipe is located on junction point P3.
11996 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11997 the main plane of the T-shape is XOY.
11998 theR1 Internal radius of main pipe
11999 theW1 Width of main pipe
12000 heL1 Half-length of main pipe
12001 theR2 Internal radius of incident pipe (R2 < R1)
12002 theW2 Width of incident pipe (R2+W2 < R1+W1)
12003 theL2 Half-length of incident pipe
12004 theRF Radius of curvature of fillet.
12005 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12006 theP1 1st junction point of main pipe
12007 theP2 2nd junction point of main pipe
12008 theP3 Junction point of incident pipe
12010 theRL Internal radius of left thickness reduction
12011 theWL Width of left thickness reduction
12012 theLtransL Length of left transition part
12013 theLthinL Length of left thin part
12015 theRR Internal radius of right thickness reduction
12016 theWR Width of right thickness reduction
12017 theLtransR Length of right transition part
12018 theLthinR Length of right thin part
12020 theRI Internal radius of incident thickness reduction
12021 theWI Width of incident thickness reduction
12022 theLtransI Length of incident transition part
12023 theLthinI Length of incident thin part
12025 theName Object name; when specified, this parameter is used
12026 for result publication in the study. Otherwise, if automatic
12027 publication is switched on, default value is used for result name.
12030 List of GEOM_Object, containing the created shape and propagation groups.
12033 # create PipeTShape with fillet object
12034 pipetshapefillet = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0)
12035 # create PipeTShape with fillet object with position
12036 pipetshapefillet_position = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, True, P1, P2, P3)
12037 # create PipeTShape with fillet object with left thickness reduction
12038 pipetshapefillet_thr = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
12040 theR1, theW1, theL1, theR2, theW2, theL2, theRF, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI)
12041 if (theP1 and theP2 and theP3):
12042 anObj = self.AdvOp.MakePipeTShapeTRFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
12043 theRL, theWL, theLtransL, theLthinL,
12044 theRR, theWR, theLtransR, theLthinR,
12045 theRI, theWI, theLtransI, theLthinI,
12046 theRF, theHexMesh, theP1, theP2, theP3)
12048 anObj = self.AdvOp.MakePipeTShapeTRFillet(theR1, theW1, theL1, theR2, theW2, theL2,
12049 theRL, theWL, theLtransL, theLthinL,
12050 theRR, theWR, theLtransR, theLthinR,
12051 theRI, theWI, theLtransI, theLthinI,
12053 RaiseIfFailed("MakePipeTShapeFillet", self.AdvOp)
12054 if Parameters: anObj[0].SetParameters(Parameters)
12055 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
12056 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
12059 ## This function allows creating a disk already divided into blocks. It
12060 # can be used to create divided pipes for later meshing in hexaedra.
12061 # @param theR Radius of the disk
12062 # @param theOrientation Orientation of the plane on which the disk will be built
12063 # 1 = XOY, 2 = OYZ, 3 = OZX
12064 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12065 # @param theName Object name; when specified, this parameter is used
12066 # for result publication in the study. Otherwise, if automatic
12067 # publication is switched on, default value is used for result name.
12069 # @return New GEOM_Object, containing the created shape.
12071 # @ref tui_creation_divideddisk "Example"
12072 def MakeDividedDisk(self, theR, theOrientation, thePattern, theName=None):
12074 Creates a disk, divided into blocks. It can be used to create divided pipes
12075 for later meshing in hexaedra.
12078 theR Radius of the disk
12079 theOrientation Orientation of the plane on which the disk will be built:
12080 1 = XOY, 2 = OYZ, 3 = OZX
12081 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12082 theName Object name; when specified, this parameter is used
12083 for result publication in the study. Otherwise, if automatic
12084 publication is switched on, default value is used for result name.
12087 New GEOM_Object, containing the created shape.
12089 theR, Parameters = ParseParameters(theR)
12090 anObj = self.AdvOp.MakeDividedDisk(theR, 67.0, theOrientation, thePattern)
12091 RaiseIfFailed("MakeDividedDisk", self.AdvOp)
12092 if Parameters: anObj.SetParameters(Parameters)
12093 self._autoPublish(anObj, theName, "dividedDisk")
12096 ## This function allows creating a disk already divided into blocks. It
12097 # can be used to create divided pipes for later meshing in hexaedra.
12098 # @param theCenter Center of the disk
12099 # @param theVector Normal vector to the plane of the created disk
12100 # @param theRadius Radius of the disk
12101 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12102 # @param theName Object name; when specified, this parameter is used
12103 # for result publication in the study. Otherwise, if automatic
12104 # publication is switched on, default value is used for result name.
12106 # @return New GEOM_Object, containing the created shape.
12108 # @ref tui_creation_divideddisk "Example"
12109 def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern, theName=None):
12111 Creates a disk already divided into blocks. It can be used to create divided pipes
12112 for later meshing in hexaedra.
12115 theCenter Center of the disk
12116 theVector Normal vector to the plane of the created disk
12117 theRadius Radius of the disk
12118 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12119 theName Object name; when specified, this parameter is used
12120 for result publication in the study. Otherwise, if automatic
12121 publication is switched on, default value is used for result name.
12124 New GEOM_Object, containing the created shape.
12126 theRadius, Parameters = ParseParameters(theRadius)
12127 anObj = self.AdvOp.MakeDividedDiskPntVecR(theCenter, theVector, theRadius, 67.0, thePattern)
12128 RaiseIfFailed("MakeDividedDiskPntVecR", self.AdvOp)
12129 if Parameters: anObj.SetParameters(Parameters)
12130 self._autoPublish(anObj, theName, "dividedDisk")
12133 ## Builds a cylinder prepared for hexa meshes
12134 # @param theR Radius of the cylinder
12135 # @param theH Height of the cylinder
12136 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12137 # @param theName Object name; when specified, this parameter is used
12138 # for result publication in the study. Otherwise, if automatic
12139 # publication is switched on, default value is used for result name.
12141 # @return New GEOM_Object, containing the created shape.
12143 # @ref tui_creation_dividedcylinder "Example"
12144 def MakeDividedCylinder(self, theR, theH, thePattern, theName=None):
12146 Builds a cylinder prepared for hexa meshes
12149 theR Radius of the cylinder
12150 theH Height of the cylinder
12151 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12152 theName Object name; when specified, this parameter is used
12153 for result publication in the study. Otherwise, if automatic
12154 publication is switched on, default value is used for result name.
12157 New GEOM_Object, containing the created shape.
12159 theR, theH, Parameters = ParseParameters(theR, theH)
12160 anObj = self.AdvOp.MakeDividedCylinder(theR, theH, thePattern)
12161 RaiseIfFailed("MakeDividedCylinder", self.AdvOp)
12162 if Parameters: anObj.SetParameters(Parameters)
12163 self._autoPublish(anObj, theName, "dividedCylinder")
12166 #@@ insert new functions before this line @@ do not remove this line @@#
12168 # end of l4_advanced
12171 ## Create a copy of the given object
12173 # @param theOriginal geometry object for copy
12174 # @param theName Object name; when specified, this parameter is used
12175 # for result publication in the study. Otherwise, if automatic
12176 # publication is switched on, default value is used for result name.
12178 # @return New GEOM_Object, containing the copied shape.
12180 # @ingroup l1_geomBuilder_auxiliary
12181 # @ref swig_MakeCopy "Example"
12182 def MakeCopy(self, theOriginal, theName=None):
12184 Create a copy of the given object
12187 theOriginal geometry object for copy
12188 theName Object name; when specified, this parameter is used
12189 for result publication in the study. Otherwise, if automatic
12190 publication is switched on, default value is used for result name.
12193 New GEOM_Object, containing the copied shape.
12195 Example of usage: Copy = geompy.MakeCopy(Box)
12197 # Example: see GEOM_TestAll.py
12198 anObj = self.InsertOp.MakeCopy(theOriginal)
12199 RaiseIfFailed("MakeCopy", self.InsertOp)
12200 self._autoPublish(anObj, theName, "copy")
12203 ## Add Path to load python scripts from
12204 # @param Path a path to load python scripts from
12205 # @ingroup l1_geomBuilder_auxiliary
12206 def addPath(self,Path):
12208 Add Path to load python scripts from
12211 Path a path to load python scripts from
12213 if (sys.path.count(Path) < 1):
12214 sys.path.append(Path)
12218 ## Load marker texture from the file
12219 # @param Path a path to the texture file
12220 # @return unique texture identifier
12221 # @ingroup l1_geomBuilder_auxiliary
12222 def LoadTexture(self, Path):
12224 Load marker texture from the file
12227 Path a path to the texture file
12230 unique texture identifier
12232 # Example: see GEOM_TestAll.py
12233 ID = self.InsertOp.LoadTexture(Path)
12234 RaiseIfFailed("LoadTexture", self.InsertOp)
12237 ## Get internal name of the object based on its study entry
12238 # @note This method does not provide an unique identifier of the geometry object.
12239 # @note This is internal function of GEOM component, though it can be used outside it for
12240 # appropriate reason (e.g. for identification of geometry object).
12241 # @param obj geometry object
12242 # @return unique object identifier
12243 # @ingroup l1_geomBuilder_auxiliary
12244 def getObjectID(self, obj):
12246 Get internal name of the object based on its study entry.
12247 Note: this method does not provide an unique identifier of the geometry object.
12248 It is an internal function of GEOM component, though it can be used outside GEOM for
12249 appropriate reason (e.g. for identification of geometry object).
12252 obj geometry object
12255 unique object identifier
12258 entry = salome.ObjectToID(obj)
12259 if entry is not None:
12260 lst = entry.split(":")
12262 ID = lst[-1] # -1 means last item in the list
12263 return "GEOM_" + ID
12268 ## Add marker texture. @a Width and @a Height parameters
12269 # specify width and height of the texture in pixels.
12270 # If @a RowData is @c True, @a Texture parameter should represent texture data
12271 # packed into the byte array. If @a RowData is @c False (default), @a Texture
12272 # parameter should be unpacked string, in which '1' symbols represent opaque
12273 # pixels and '0' represent transparent pixels of the texture bitmap.
12275 # @param Width texture width in pixels
12276 # @param Height texture height in pixels
12277 # @param Texture texture data
12278 # @param RowData if @c True, @a Texture data are packed in the byte stream
12279 # @return unique texture identifier
12280 # @ingroup l1_geomBuilder_auxiliary
12281 def AddTexture(self, Width, Height, Texture, RowData=False):
12283 Add marker texture. Width and Height parameters
12284 specify width and height of the texture in pixels.
12285 If RowData is True, Texture parameter should represent texture data
12286 packed into the byte array. If RowData is False (default), Texture
12287 parameter should be unpacked string, in which '1' symbols represent opaque
12288 pixels and '0' represent transparent pixels of the texture bitmap.
12291 Width texture width in pixels
12292 Height texture height in pixels
12293 Texture texture data
12294 RowData if True, Texture data are packed in the byte stream
12297 return unique texture identifier
12299 if not RowData: Texture = PackData(Texture)
12300 ID = self.InsertOp.AddTexture(Width, Height, Texture)
12301 RaiseIfFailed("AddTexture", self.InsertOp)
12305 # Register the new proxy for GEOM_Gen
12306 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
12308 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
12309 # interface to GEOM operations.
12314 # salome.salome_init()
12315 # from salome.geom import geomBuilder
12316 # geompy = geomBuilder.New(salome.myStudy)
12318 # @param study SALOME study, generally obtained by salome.myStudy.
12319 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12320 # @return geomBuilder instance
12321 def New( study, instance=None):
12323 Create a new geomBuilder instance.The geomBuilder class provides the Python
12324 interface to GEOM operations.
12328 salome.salome_init()
12329 from salome.geom import geomBuilder
12330 geompy = geomBuilder.New(salome.myStudy)
12333 study SALOME study, generally obtained by salome.myStudy.
12334 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12336 geomBuilder instance
12338 #print "New geomBuilder ", study, instance
12345 geom = geomBuilder()
12346 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
12347 geom.init_geom(study)