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 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9035 # Xmin,Xmax: Limits of shape along OX axis.
9036 # Ymin,Ymax: Limits of shape along OY axis.
9037 # Zmin,Zmax: Limits of shape along OZ axis.
9039 # @ref tui_measurement_tools_page "Example"
9040 def BoundingBox (self, theShape):
9042 Get parameters of bounding box of the given shape
9045 theShape Shape to obtain bounding box of.
9048 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9049 Xmin,Xmax: Limits of shape along OX axis.
9050 Ymin,Ymax: Limits of shape along OY axis.
9051 Zmin,Zmax: Limits of shape along OZ axis.
9053 # Example: see GEOM_TestMeasures.py
9054 aTuple = self.MeasuOp.GetBoundingBox(theShape)
9055 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
9058 ## Get bounding box of the given shape
9059 # @param theShape Shape to obtain bounding box of.
9060 # @param theName Object name; when specified, this parameter is used
9061 # for result publication in the study. Otherwise, if automatic
9062 # publication is switched on, default value is used for result name.
9064 # @return New GEOM.GEOM_Object, containing the created box.
9066 # @ref tui_measurement_tools_page "Example"
9067 def MakeBoundingBox (self, theShape, theName=None):
9069 Get bounding box of the given shape
9072 theShape Shape to obtain bounding box of.
9073 theName Object name; when specified, this parameter is used
9074 for result publication in the study. Otherwise, if automatic
9075 publication is switched on, default value is used for result name.
9078 New GEOM.GEOM_Object, containing the created box.
9080 # Example: see GEOM_TestMeasures.py
9081 anObj = self.MeasuOp.MakeBoundingBox(theShape)
9082 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
9083 self._autoPublish(anObj, theName, "bndbox")
9086 ## Get inertia matrix and moments of inertia of theShape.
9087 # @param theShape Shape to calculate inertia of.
9088 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9089 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
9090 # Ix,Iy,Iz: Moments of inertia of the given shape.
9092 # @ref tui_measurement_tools_page "Example"
9093 def Inertia(self,theShape):
9095 Get inertia matrix and moments of inertia of theShape.
9098 theShape Shape to calculate inertia of.
9101 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9102 I(1-3)(1-3): Components of the inertia matrix of the given shape.
9103 Ix,Iy,Iz: Moments of inertia of the given shape.
9105 # Example: see GEOM_TestMeasures.py
9106 aTuple = self.MeasuOp.GetInertia(theShape)
9107 RaiseIfFailed("GetInertia", self.MeasuOp)
9110 ## Get if coords are included in the shape (ST_IN or ST_ON)
9111 # @param theShape Shape
9112 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9113 # @param tolerance to be used (default is 1.0e-7)
9114 # @return list_of_boolean = [res1, res2, ...]
9115 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
9117 Get if coords are included in the shape (ST_IN or ST_ON)
9121 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9122 tolerance to be used (default is 1.0e-7)
9125 list_of_boolean = [res1, res2, ...]
9127 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
9129 ## Get minimal distance between the given shapes.
9130 # @param theShape1,theShape2 Shapes to find minimal distance between.
9131 # @return Value of the minimal distance between the given shapes.
9133 # @ref tui_measurement_tools_page "Example"
9134 def MinDistance(self, theShape1, theShape2):
9136 Get minimal distance between the given shapes.
9139 theShape1,theShape2 Shapes to find minimal distance between.
9142 Value of the minimal distance between the given shapes.
9144 # Example: see GEOM_TestMeasures.py
9145 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9146 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9149 ## Get minimal distance between the given shapes.
9150 # @param theShape1,theShape2 Shapes to find minimal distance between.
9151 # @return Value of the minimal distance between the given shapes, in form of list
9152 # [Distance, DX, DY, DZ].
9154 # @ref swig_all_measure "Example"
9155 def MinDistanceComponents(self, theShape1, theShape2):
9157 Get minimal distance between the given shapes.
9160 theShape1,theShape2 Shapes to find minimal distance between.
9163 Value of the minimal distance between the given shapes, in form of list
9164 [Distance, DX, DY, DZ]
9166 # Example: see GEOM_TestMeasures.py
9167 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9168 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9169 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
9172 ## Get closest points of the given shapes.
9173 # @param theShape1,theShape2 Shapes to find closest points of.
9174 # @return The number of found solutions (-1 in case of infinite number of
9175 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9177 # @ref tui_measurement_tools_page "Example"
9178 def ClosestPoints (self, theShape1, theShape2):
9180 Get closest points of the given shapes.
9183 theShape1,theShape2 Shapes to find closest points of.
9186 The number of found solutions (-1 in case of infinite number of
9187 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9189 # Example: see GEOM_TestMeasures.py
9190 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
9191 RaiseIfFailed("ClosestPoints", self.MeasuOp)
9194 ## Get angle between the given shapes in degrees.
9195 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9196 # @note If both arguments are vectors, the angle is computed in accordance
9197 # with their orientations, otherwise the minimum angle is computed.
9198 # @return Value of the angle between the given shapes in degrees.
9200 # @ref tui_measurement_tools_page "Example"
9201 def GetAngle(self, theShape1, theShape2):
9203 Get angle between the given shapes in degrees.
9206 theShape1,theShape2 Lines or linear edges to find angle between.
9209 If both arguments are vectors, the angle is computed in accordance
9210 with their orientations, otherwise the minimum angle is computed.
9213 Value of the angle between the given shapes in degrees.
9215 # Example: see GEOM_TestMeasures.py
9216 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
9217 RaiseIfFailed("GetAngle", self.MeasuOp)
9220 ## Get angle between the given shapes in radians.
9221 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9222 # @note If both arguments are vectors, the angle is computed in accordance
9223 # with their orientations, otherwise the minimum angle is computed.
9224 # @return Value of the angle between the given shapes in radians.
9226 # @ref tui_measurement_tools_page "Example"
9227 def GetAngleRadians(self, theShape1, theShape2):
9229 Get angle between the given shapes in radians.
9232 theShape1,theShape2 Lines or linear edges to find angle between.
9236 If both arguments are vectors, the angle is computed in accordance
9237 with their orientations, otherwise the minimum angle is computed.
9240 Value of the angle between the given shapes in radians.
9242 # Example: see GEOM_TestMeasures.py
9243 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
9244 RaiseIfFailed("GetAngle", self.MeasuOp)
9247 ## Get angle between the given vectors in degrees.
9248 # @param theShape1,theShape2 Vectors to find angle between.
9249 # @param theFlag If True, the normal vector is defined by the two vectors cross,
9250 # if False, the opposite vector to the normal vector is used.
9251 # @return Value of the angle between the given vectors in degrees.
9253 # @ref tui_measurement_tools_page "Example"
9254 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
9256 Get angle between the given vectors in degrees.
9259 theShape1,theShape2 Vectors to find angle between.
9260 theFlag If True, the normal vector is defined by the two vectors cross,
9261 if False, the opposite vector to the normal vector is used.
9264 Value of the angle between the given vectors in degrees.
9266 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
9268 anAngle = 360. - anAngle
9269 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
9272 ## The same as GetAngleVectors, but the result is in radians.
9273 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
9275 Get angle between the given vectors in radians.
9278 theShape1,theShape2 Vectors to find angle between.
9279 theFlag If True, the normal vector is defined by the two vectors cross,
9280 if False, the opposite vector to the normal vector is used.
9283 Value of the angle between the given vectors in radians.
9285 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
9288 ## @name Curve Curvature Measurement
9289 # Methods for receiving radius of curvature of curves
9290 # in the given point
9293 ## Measure curvature of a curve at a point, set by parameter.
9294 # @param theCurve a curve.
9295 # @param theParam parameter.
9296 # @return radius of curvature of \a theCurve.
9298 # @ref swig_todo "Example"
9299 def CurveCurvatureByParam(self, theCurve, theParam):
9301 Measure curvature of a curve at a point, set by parameter.
9308 radius of curvature of theCurve.
9310 # Example: see GEOM_TestMeasures.py
9311 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
9312 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
9315 ## Measure curvature of a curve at a point.
9316 # @param theCurve a curve.
9317 # @param thePoint given point.
9318 # @return radius of curvature of \a theCurve.
9320 # @ref swig_todo "Example"
9321 def CurveCurvatureByPoint(self, theCurve, thePoint):
9323 Measure curvature of a curve at a point.
9327 thePoint given point.
9330 radius of curvature of theCurve.
9332 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
9333 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
9337 ## @name Surface Curvature Measurement
9338 # Methods for receiving max and min radius of curvature of surfaces
9339 # in the given point
9342 ## Measure max radius of curvature of surface.
9343 # @param theSurf the given surface.
9344 # @param theUParam Value of U-parameter on the referenced surface.
9345 # @param theVParam Value of V-parameter on the referenced surface.
9346 # @return max radius of curvature of theSurf.
9348 ## @ref swig_todo "Example"
9349 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9351 Measure max radius of curvature of surface.
9354 theSurf the given surface.
9355 theUParam Value of U-parameter on the referenced surface.
9356 theVParam Value of V-parameter on the referenced surface.
9359 max radius of curvature of theSurf.
9361 # Example: see GEOM_TestMeasures.py
9362 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9363 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
9366 ## Measure max radius of curvature of surface in the given point
9367 # @param theSurf the given surface.
9368 # @param thePoint given point.
9369 # @return max radius of curvature of theSurf.
9371 ## @ref swig_todo "Example"
9372 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
9374 Measure max radius of curvature of surface in the given point.
9377 theSurf the given surface.
9378 thePoint given point.
9381 max radius of curvature of theSurf.
9383 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
9384 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
9387 ## Measure min radius of curvature of surface.
9388 # @param theSurf the given surface.
9389 # @param theUParam Value of U-parameter on the referenced surface.
9390 # @param theVParam Value of V-parameter on the referenced surface.
9391 # @return min radius of curvature of theSurf.
9393 ## @ref swig_todo "Example"
9394 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9396 Measure min radius of curvature of surface.
9399 theSurf the given surface.
9400 theUParam Value of U-parameter on the referenced surface.
9401 theVParam Value of V-parameter on the referenced surface.
9404 Min radius of curvature of theSurf.
9406 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9407 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
9410 ## Measure min radius of curvature of surface in the given point
9411 # @param theSurf the given surface.
9412 # @param thePoint given point.
9413 # @return min radius of curvature of theSurf.
9415 ## @ref swig_todo "Example"
9416 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
9418 Measure min radius of curvature of surface in the given point.
9421 theSurf the given surface.
9422 thePoint given point.
9425 Min radius of curvature of theSurf.
9427 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
9428 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
9432 ## Get min and max tolerances of sub-shapes of theShape
9433 # @param theShape Shape, to get tolerances of.
9434 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
9435 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
9436 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
9437 # VertMin,VertMax: Min and max tolerances of the vertices.
9439 # @ref tui_measurement_tools_page "Example"
9440 def Tolerance(self,theShape):
9442 Get min and max tolerances of sub-shapes of theShape
9445 theShape Shape, to get tolerances of.
9448 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
9449 FaceMin,FaceMax: Min and max tolerances of the faces.
9450 EdgeMin,EdgeMax: Min and max tolerances of the edges.
9451 VertMin,VertMax: Min and max tolerances of the vertices.
9453 # Example: see GEOM_TestMeasures.py
9454 aTuple = self.MeasuOp.GetTolerance(theShape)
9455 RaiseIfFailed("GetTolerance", self.MeasuOp)
9458 ## Obtain description of the given shape (number of sub-shapes of each type)
9459 # @param theShape Shape to be described.
9460 # @return Description of the given shape.
9462 # @ref tui_measurement_tools_page "Example"
9463 def WhatIs(self,theShape):
9465 Obtain description of the given shape (number of sub-shapes of each type)
9468 theShape Shape to be described.
9471 Description of the given shape.
9473 # Example: see GEOM_TestMeasures.py
9474 aDescr = self.MeasuOp.WhatIs(theShape)
9475 RaiseIfFailed("WhatIs", self.MeasuOp)
9478 ## Obtain quantity of shapes of the given type in \a theShape.
9479 # If \a theShape is of type \a theType, it is also counted.
9480 # @param theShape Shape to be described.
9481 # @param theType the given ShapeType().
9482 # @return Quantity of shapes of type \a theType in \a theShape.
9484 # @ref tui_measurement_tools_page "Example"
9485 def NbShapes (self, theShape, theType):
9487 Obtain quantity of shapes of the given type in theShape.
9488 If theShape is of type theType, it is also counted.
9491 theShape Shape to be described.
9492 theType the given geompy.ShapeType
9495 Quantity of shapes of type theType in theShape.
9497 # Example: see GEOM_TestMeasures.py
9498 listSh = self.SubShapeAllIDs(theShape, theType)
9500 t = EnumToLong(theShape.GetShapeType())
9501 theType = EnumToLong(theType)
9507 ## Obtain quantity of shapes of each type in \a theShape.
9508 # The \a theShape is also counted.
9509 # @param theShape Shape to be described.
9510 # @return Dictionary of ShapeType() with bound quantities of shapes.
9512 # @ref tui_measurement_tools_page "Example"
9513 def ShapeInfo (self, theShape):
9515 Obtain quantity of shapes of each type in theShape.
9516 The theShape is also counted.
9519 theShape Shape to be described.
9522 Dictionary of geompy.ShapeType with bound quantities of shapes.
9524 # Example: see GEOM_TestMeasures.py
9526 for typeSh in self.ShapeType:
9527 if typeSh in ( "AUTO", "SHAPE" ): continue
9528 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
9530 if EnumToLong(theShape.GetShapeType()) == self.ShapeType[typeSh]:
9537 ## Get a point, situated at the centre of mass of theShape.
9538 # @param theShape Shape to define centre of mass of.
9539 # @param theName Object name; when specified, this parameter is used
9540 # for result publication in the study. Otherwise, if automatic
9541 # publication is switched on, default value is used for result name.
9543 # @return New GEOM.GEOM_Object, containing the created point.
9545 # @ref tui_measurement_tools_page "Example"
9546 def MakeCDG(self, theShape, theName=None):
9548 Get a point, situated at the centre of mass of theShape.
9551 theShape Shape to define centre of mass of.
9552 theName Object name; when specified, this parameter is used
9553 for result publication in the study. Otherwise, if automatic
9554 publication is switched on, default value is used for result name.
9557 New GEOM.GEOM_Object, containing the created point.
9559 # Example: see GEOM_TestMeasures.py
9560 anObj = self.MeasuOp.GetCentreOfMass(theShape)
9561 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
9562 self._autoPublish(anObj, theName, "centerOfMass")
9565 ## Get a vertex sub-shape by index depended with orientation.
9566 # @param theShape Shape to find sub-shape.
9567 # @param theIndex Index to find vertex by this index (starting from zero)
9568 # @param theName Object name; when specified, this parameter is used
9569 # for result publication in the study. Otherwise, if automatic
9570 # publication is switched on, default value is used for result name.
9572 # @return New GEOM.GEOM_Object, containing the created vertex.
9574 # @ref tui_measurement_tools_page "Example"
9575 def GetVertexByIndex(self, theShape, theIndex, theName=None):
9577 Get a vertex sub-shape by index depended with orientation.
9580 theShape Shape to find sub-shape.
9581 theIndex Index to find vertex by this index (starting from zero)
9582 theName Object name; when specified, this parameter is used
9583 for result publication in the study. Otherwise, if automatic
9584 publication is switched on, default value is used for result name.
9587 New GEOM.GEOM_Object, containing the created vertex.
9589 # Example: see GEOM_TestMeasures.py
9590 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
9591 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
9592 self._autoPublish(anObj, theName, "vertex")
9595 ## Get the first vertex of wire/edge depended orientation.
9596 # @param theShape Shape to find first vertex.
9597 # @param theName Object name; when specified, this parameter is used
9598 # for result publication in the study. Otherwise, if automatic
9599 # publication is switched on, default value is used for result name.
9601 # @return New GEOM.GEOM_Object, containing the created vertex.
9603 # @ref tui_measurement_tools_page "Example"
9604 def GetFirstVertex(self, theShape, theName=None):
9606 Get the first vertex of wire/edge depended orientation.
9609 theShape Shape to find first vertex.
9610 theName Object name; when specified, this parameter is used
9611 for result publication in the study. Otherwise, if automatic
9612 publication is switched on, default value is used for result name.
9615 New GEOM.GEOM_Object, containing the created vertex.
9617 # Example: see GEOM_TestMeasures.py
9618 # note: auto-publishing is done in self.GetVertexByIndex()
9619 anObj = self.GetVertexByIndex(theShape, 0, theName)
9620 RaiseIfFailed("GetFirstVertex", self.MeasuOp)
9623 ## Get the last vertex of wire/edge depended orientation.
9624 # @param theShape Shape to find last vertex.
9625 # @param theName Object name; when specified, this parameter is used
9626 # for result publication in the study. Otherwise, if automatic
9627 # publication is switched on, default value is used for result name.
9629 # @return New GEOM.GEOM_Object, containing the created vertex.
9631 # @ref tui_measurement_tools_page "Example"
9632 def GetLastVertex(self, theShape, theName=None):
9634 Get the last vertex of wire/edge depended orientation.
9637 theShape Shape to find last vertex.
9638 theName Object name; when specified, this parameter is used
9639 for result publication in the study. Otherwise, if automatic
9640 publication is switched on, default value is used for result name.
9643 New GEOM.GEOM_Object, containing the created vertex.
9645 # Example: see GEOM_TestMeasures.py
9646 nb_vert = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
9647 # note: auto-publishing is done in self.GetVertexByIndex()
9648 anObj = self.GetVertexByIndex(theShape, (nb_vert-1), theName)
9649 RaiseIfFailed("GetLastVertex", self.MeasuOp)
9652 ## Get a normale to the given face. If the point is not given,
9653 # the normale is calculated at the center of mass.
9654 # @param theFace Face to define normale of.
9655 # @param theOptionalPoint Point to compute the normale at.
9656 # @param theName Object name; when specified, this parameter is used
9657 # for result publication in the study. Otherwise, if automatic
9658 # publication is switched on, default value is used for result name.
9660 # @return New GEOM.GEOM_Object, containing the created vector.
9662 # @ref swig_todo "Example"
9663 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
9665 Get a normale to the given face. If the point is not given,
9666 the normale is calculated at the center of mass.
9669 theFace Face to define normale of.
9670 theOptionalPoint Point to compute the normale at.
9671 theName Object name; when specified, this parameter is used
9672 for result publication in the study. Otherwise, if automatic
9673 publication is switched on, default value is used for result name.
9676 New GEOM.GEOM_Object, containing the created vector.
9678 # Example: see GEOM_TestMeasures.py
9679 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
9680 RaiseIfFailed("GetNormal", self.MeasuOp)
9681 self._autoPublish(anObj, theName, "normal")
9684 ## Check a topology of the given shape.
9685 # @param theShape Shape to check validity of.
9686 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
9687 # if TRUE, the shape's geometry will be checked also.
9688 # @param theReturnStatus If FALSE and if theShape is invalid, a description \n
9689 # of problem is printed.
9690 # if TRUE and if theShape is invalid, the description
9691 # of problem is also returned.
9692 # @return TRUE, if the shape "seems to be valid".
9694 # @ref tui_measurement_tools_page "Example"
9695 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
9697 Check a topology of the given shape.
9700 theShape Shape to check validity of.
9701 theIsCheckGeom If FALSE, only the shape's topology will be checked,
9702 if TRUE, the shape's geometry will be checked also.
9703 theReturnStatus If FALSE and if theShape is invalid, a description
9704 of problem is printed.
9705 if TRUE and if theShape is invalid, the description
9706 of problem is returned.
9709 TRUE, if the shape "seems to be valid".
9710 If theShape is invalid, prints a description of problem.
9711 This description can also be returned.
9713 # Example: see GEOM_TestMeasures.py
9715 (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape)
9716 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
9718 (IsValid, Status) = self.MeasuOp.CheckShape(theShape)
9719 RaiseIfFailed("CheckShape", self.MeasuOp)
9721 if theReturnStatus == 0:
9723 if theReturnStatus == 1:
9724 return (IsValid, Status)
9727 ## Detect self-intersections in the given shape.
9728 # @param theShape Shape to check.
9729 # @return TRUE, if the shape contains no self-intersections.
9731 # @ref tui_measurement_tools_page "Example"
9732 def CheckSelfIntersections(self, theShape):
9734 Detect self-intersections in the given shape.
9737 theShape Shape to check.
9740 TRUE, if the shape contains no self-intersections.
9742 # Example: see GEOM_TestMeasures.py
9743 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape)
9744 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
9747 ## Get position (LCS) of theShape.
9749 # Origin of the LCS is situated at the shape's center of mass.
9750 # Axes of the LCS are obtained from shape's location or,
9751 # if the shape is a planar face, from position of its plane.
9753 # @param theShape Shape to calculate position of.
9754 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9755 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
9756 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9757 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9759 # @ref swig_todo "Example"
9760 def GetPosition(self,theShape):
9762 Get position (LCS) of theShape.
9763 Origin of the LCS is situated at the shape's center of mass.
9764 Axes of the LCS are obtained from shape's location or,
9765 if the shape is a planar face, from position of its plane.
9768 theShape Shape to calculate position of.
9771 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9772 Ox,Oy,Oz: Coordinates of shape's LCS origin.
9773 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9774 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9776 # Example: see GEOM_TestMeasures.py
9777 aTuple = self.MeasuOp.GetPosition(theShape)
9778 RaiseIfFailed("GetPosition", self.MeasuOp)
9781 ## Get kind of theShape.
9783 # @param theShape Shape to get a kind of.
9784 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
9785 # and a list of parameters, describing the shape.
9786 # @note Concrete meaning of each value, returned via \a theIntegers
9787 # or \a theDoubles list depends on the kind() of the shape.
9789 # @ref swig_todo "Example"
9790 def KindOfShape(self,theShape):
9792 Get kind of theShape.
9795 theShape Shape to get a kind of.
9798 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
9799 and a list of parameters, describing the shape.
9801 Concrete meaning of each value, returned via theIntegers
9802 or theDoubles list depends on the geompy.kind of the shape
9804 # Example: see GEOM_TestMeasures.py
9805 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
9806 RaiseIfFailed("KindOfShape", self.MeasuOp)
9808 aKind = aRoughTuple[0]
9809 anInts = aRoughTuple[1]
9810 aDbls = aRoughTuple[2]
9812 # Now there is no exception from this rule:
9813 aKindTuple = [aKind] + aDbls + anInts
9815 # If they are we will regroup parameters for such kind of shape.
9817 #if aKind == kind.SOME_KIND:
9818 # # SOME_KIND int int double int double double
9819 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
9826 ## @addtogroup l2_import_export
9829 ## Import a shape from the BREP or IGES or STEP file
9830 # (depends on given format) with given name.
9831 # @param theFileName The file, containing the shape.
9832 # @param theFormatName Specify format for the file reading.
9833 # Available formats can be obtained with InsertOp.ImportTranslators() method.
9834 # If format 'IGES_SCALE' is used instead of 'IGES' or
9835 # format 'STEP_SCALE' is used instead of 'STEP',
9836 # length unit will be set to 'meter' and result model will be scaled.
9837 # @param theName Object name; when specified, this parameter is used
9838 # for result publication in the study. Otherwise, if automatic
9839 # publication is switched on, default value is used for result name.
9841 # @return New GEOM.GEOM_Object, containing the imported shape.
9843 # @ref swig_Import_Export "Example"
9844 def ImportFile(self, theFileName, theFormatName, theName=None):
9846 Import a shape from the BREP or IGES or STEP file
9847 (depends on given format) with given name.
9850 theFileName The file, containing the shape.
9851 theFormatName Specify format for the file reading.
9852 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
9853 If format 'IGES_SCALE' is used instead of 'IGES' or
9854 format 'STEP_SCALE' is used instead of 'STEP',
9855 length unit will be set to 'meter' and result model will be scaled.
9856 theName Object name; when specified, this parameter is used
9857 for result publication in the study. Otherwise, if automatic
9858 publication is switched on, default value is used for result name.
9861 New GEOM.GEOM_Object, containing the imported shape.
9863 # Example: see GEOM_TestOthers.py
9864 anObj = self.InsertOp.ImportFile(theFileName, theFormatName)
9865 RaiseIfFailed("ImportFile", self.InsertOp)
9866 self._autoPublish(anObj, theName, "imported")
9869 ## Deprecated analog of ImportFile()
9870 def Import(self, theFileName, theFormatName, theName=None):
9872 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
9874 print "WARNING: Function Import is deprecated, use ImportFile instead"
9875 # note: auto-publishing is done in self.ImportFile()
9876 return self.ImportFile(theFileName, theFormatName, theName)
9878 ## Shortcut to ImportFile() for BREP format.
9879 # Import a shape from the BREP file with given name.
9880 # @param theFileName The file, containing the shape.
9881 # @param theName Object name; when specified, this parameter is used
9882 # for result publication in the study. Otherwise, if automatic
9883 # publication is switched on, default value is used for result name.
9885 # @return New GEOM.GEOM_Object, containing the imported shape.
9887 # @ref swig_Import_Export "Example"
9888 def ImportBREP(self, theFileName, theName=None):
9890 geompy.ImportFile(...) function for BREP format
9891 Import a shape from the BREP file with given name.
9894 theFileName The file, containing the shape.
9895 theName Object name; when specified, this parameter is used
9896 for result publication in the study. Otherwise, if automatic
9897 publication is switched on, default value is used for result name.
9900 New GEOM.GEOM_Object, containing the imported shape.
9902 # Example: see GEOM_TestOthers.py
9903 # note: auto-publishing is done in self.ImportFile()
9904 return self.ImportFile(theFileName, "BREP", theName)
9906 ## Shortcut to ImportFile() for IGES format
9907 # Import a shape from the IGES file with given name.
9908 # @param theFileName The file, containing the shape.
9909 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
9910 # and result model will be scaled, if its units are not meters.
9911 # If False (default), file length units will be taken into account.
9912 # @param theName Object name; when specified, this parameter is used
9913 # for result publication in the study. Otherwise, if automatic
9914 # publication is switched on, default value is used for result name.
9916 # @return New GEOM.GEOM_Object, containing the imported shape.
9918 # @ref swig_Import_Export "Example"
9919 def ImportIGES(self, theFileName, ignoreUnits = False, theName=None):
9921 geompy.ImportFile(...) function for IGES format
9924 theFileName The file, containing the shape.
9925 ignoreUnits If True, file length units will be ignored (set to 'meter')
9926 and result model will be scaled, if its units are not meters.
9927 If False (default), file length units will be taken into account.
9928 theName Object name; when specified, this parameter is used
9929 for result publication in the study. Otherwise, if automatic
9930 publication is switched on, default value is used for result name.
9933 New GEOM.GEOM_Object, containing the imported shape.
9935 # Example: see GEOM_TestOthers.py
9936 # note: auto-publishing is done in self.ImportFile()
9938 return self.ImportFile(theFileName, "IGES_SCALE", theName)
9939 return self.ImportFile(theFileName, "IGES", theName)
9941 ## Return length unit from given IGES file
9942 # @param theFileName The file, containing the shape.
9943 # @return String, containing the units name.
9945 # @ref swig_Import_Export "Example"
9946 def GetIGESUnit(self, theFileName):
9948 Return length units from given IGES file
9951 theFileName The file, containing the shape.
9954 String, containing the units name.
9956 # Example: see GEOM_TestOthers.py
9957 aUnitName = self.InsertOp.ReadValue(theFileName, "IGES", "LEN_UNITS")
9960 ## Shortcut to ImportFile() for STEP format
9961 # Import a shape from the STEP file with given name.
9962 # @param theFileName The file, containing the shape.
9963 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
9964 # and result model will be scaled, if its units are not meters.
9965 # If False (default), file length units will be taken into account.
9966 # @param theName Object name; when specified, this parameter is used
9967 # for result publication in the study. Otherwise, if automatic
9968 # publication is switched on, default value is used for result name.
9970 # @return New GEOM.GEOM_Object, containing the imported shape.
9972 # @ref swig_Import_Export "Example"
9973 def ImportSTEP(self, theFileName, ignoreUnits = False, theName=None):
9975 geompy.ImportFile(...) function for STEP format
9978 theFileName The file, containing the shape.
9979 ignoreUnits If True, file length units will be ignored (set to 'meter')
9980 and result model will be scaled, if its units are not meters.
9981 If False (default), file length units will be taken into account.
9982 theName Object name; when specified, this parameter is used
9983 for result publication in the study. Otherwise, if automatic
9984 publication is switched on, default value is used for result name.
9987 New GEOM.GEOM_Object, containing the imported shape.
9989 # Example: see GEOM_TestOthers.py
9990 # note: auto-publishing is done in self.ImportFile()
9992 return self.ImportFile(theFileName, "STEP_SCALE", theName)
9993 return self.ImportFile(theFileName, "STEP", theName)
9995 ## Return length unit from given IGES or STEP file
9996 # @param theFileName The file, containing the shape.
9997 # @return String, containing the units name.
9999 # @ref swig_Import_Export "Example"
10000 def GetSTEPUnit(self, theFileName):
10002 Return length units from given STEP file
10005 theFileName The file, containing the shape.
10008 String, containing the units name.
10010 # Example: see GEOM_TestOthers.py
10011 aUnitName = self.InsertOp.ReadValue(theFileName, "STEP", "LEN_UNITS")
10014 ## Read a shape from the binary stream, containing its bounding representation (BRep).
10015 # @note This method will not be dumped to the python script by DumpStudy functionality.
10016 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
10017 # @param theStream The BRep binary stream.
10018 # @param theName Object name; when specified, this parameter is used
10019 # for result publication in the study. Otherwise, if automatic
10020 # publication is switched on, default value is used for result name.
10022 # @return New GEOM_Object, containing the shape, read from theStream.
10024 # @ref swig_Import_Export "Example"
10025 def RestoreShape (self, theStream, theName=None):
10027 Read a shape from the binary stream, containing its bounding representation (BRep).
10030 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
10033 theStream The BRep binary stream.
10034 theName Object name; when specified, this parameter is used
10035 for result publication in the study. Otherwise, if automatic
10036 publication is switched on, default value is used for result name.
10039 New GEOM_Object, containing the shape, read from theStream.
10041 # Example: see GEOM_TestOthers.py
10042 anObj = self.InsertOp.RestoreShape(theStream)
10043 RaiseIfFailed("RestoreShape", self.InsertOp)
10044 self._autoPublish(anObj, theName, "restored")
10047 ## Export the given shape into a file with given name.
10048 # @param theObject Shape to be stored in the file.
10049 # @param theFileName Name of the file to store the given shape in.
10050 # @param theFormatName Specify format for the shape storage.
10051 # Available formats can be obtained with
10052 # geompy.InsertOp.ExportTranslators()[0] method.
10054 # @ref swig_Import_Export "Example"
10055 def Export(self, theObject, theFileName, theFormatName):
10057 Export the given shape into a file with given name.
10060 theObject Shape to be stored in the file.
10061 theFileName Name of the file to store the given shape in.
10062 theFormatName Specify format for the shape storage.
10063 Available formats can be obtained with
10064 geompy.InsertOp.ExportTranslators()[0] method.
10066 # Example: see GEOM_TestOthers.py
10067 self.InsertOp.Export(theObject, theFileName, theFormatName)
10068 if self.InsertOp.IsDone() == 0:
10069 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
10073 ## Shortcut to Export() for BREP format
10075 # @ref swig_Import_Export "Example"
10076 def ExportBREP(self,theObject, theFileName):
10078 geompy.Export(...) function for BREP format
10080 # Example: see GEOM_TestOthers.py
10081 return self.Export(theObject, theFileName, "BREP")
10083 ## Shortcut to Export() for IGES format
10085 # @ref swig_Import_Export "Example"
10086 def ExportIGES(self,theObject, theFileName):
10088 geompy.Export(...) function for IGES format
10090 # Example: see GEOM_TestOthers.py
10091 return self.Export(theObject, theFileName, "IGES")
10093 ## Shortcut to Export() for STEP format
10095 # @ref swig_Import_Export "Example"
10096 def ExportSTEP(self,theObject, theFileName):
10098 geompy.Export(...) function for STEP format
10100 # Example: see GEOM_TestOthers.py
10101 return self.Export(theObject, theFileName, "STEP")
10103 # end of l2_import_export
10106 ## @addtogroup l3_blocks
10109 ## Create a quadrangle face from four edges. Order of Edges is not
10110 # important. It is not necessary that edges share the same vertex.
10111 # @param E1,E2,E3,E4 Edges for the face bound.
10112 # @param theName Object name; when specified, this parameter is used
10113 # for result publication in the study. Otherwise, if automatic
10114 # publication is switched on, default value is used for result name.
10116 # @return New GEOM.GEOM_Object, containing the created face.
10118 # @ref tui_building_by_blocks_page "Example"
10119 def MakeQuad(self, E1, E2, E3, E4, theName=None):
10121 Create a quadrangle face from four edges. Order of Edges is not
10122 important. It is not necessary that edges share the same vertex.
10125 E1,E2,E3,E4 Edges for the face bound.
10126 theName Object name; when specified, this parameter is used
10127 for result publication in the study. Otherwise, if automatic
10128 publication is switched on, default value is used for result name.
10131 New GEOM.GEOM_Object, containing the created face.
10134 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
10136 # Example: see GEOM_Spanner.py
10137 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
10138 RaiseIfFailed("MakeQuad", self.BlocksOp)
10139 self._autoPublish(anObj, theName, "quad")
10142 ## Create a quadrangle face on two edges.
10143 # The missing edges will be built by creating the shortest ones.
10144 # @param E1,E2 Two opposite edges for the face.
10145 # @param theName Object name; when specified, this parameter is used
10146 # for result publication in the study. Otherwise, if automatic
10147 # publication is switched on, default value is used for result name.
10149 # @return New GEOM.GEOM_Object, containing the created face.
10151 # @ref tui_building_by_blocks_page "Example"
10152 def MakeQuad2Edges(self, E1, E2, theName=None):
10154 Create a quadrangle face on two edges.
10155 The missing edges will be built by creating the shortest ones.
10158 E1,E2 Two opposite edges for the face.
10159 theName Object name; when specified, this parameter is used
10160 for result publication in the study. Otherwise, if automatic
10161 publication is switched on, default value is used for result name.
10164 New GEOM.GEOM_Object, containing the created face.
10168 p1 = geompy.MakeVertex( 0., 0., 0.)
10169 p2 = geompy.MakeVertex(150., 30., 0.)
10170 p3 = geompy.MakeVertex( 0., 120., 50.)
10171 p4 = geompy.MakeVertex( 0., 40., 70.)
10173 edge1 = geompy.MakeEdge(p1, p2)
10174 edge2 = geompy.MakeEdge(p3, p4)
10175 # create a quadrangle face from two edges
10176 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
10178 # Example: see GEOM_Spanner.py
10179 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
10180 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
10181 self._autoPublish(anObj, theName, "quad")
10184 ## Create a quadrangle face with specified corners.
10185 # The missing edges will be built by creating the shortest ones.
10186 # @param V1,V2,V3,V4 Corner vertices for the face.
10187 # @param theName Object name; when specified, this parameter is used
10188 # for result publication in the study. Otherwise, if automatic
10189 # publication is switched on, default value is used for result name.
10191 # @return New GEOM.GEOM_Object, containing the created face.
10193 # @ref tui_building_by_blocks_page "Example 1"
10194 # \n @ref swig_MakeQuad4Vertices "Example 2"
10195 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
10197 Create a quadrangle face with specified corners.
10198 The missing edges will be built by creating the shortest ones.
10201 V1,V2,V3,V4 Corner vertices for the face.
10202 theName Object name; when specified, this parameter is used
10203 for result publication in the study. Otherwise, if automatic
10204 publication is switched on, default value is used for result name.
10207 New GEOM.GEOM_Object, containing the created face.
10211 p1 = geompy.MakeVertex( 0., 0., 0.)
10212 p2 = geompy.MakeVertex(150., 30., 0.)
10213 p3 = geompy.MakeVertex( 0., 120., 50.)
10214 p4 = geompy.MakeVertex( 0., 40., 70.)
10215 # create a quadrangle from four points in its corners
10216 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
10218 # Example: see GEOM_Spanner.py
10219 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
10220 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
10221 self._autoPublish(anObj, theName, "quad")
10224 ## Create a hexahedral solid, bounded by the six given faces. Order of
10225 # faces is not important. It is not necessary that Faces share the same edge.
10226 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10227 # @param theName Object name; when specified, this parameter is used
10228 # for result publication in the study. Otherwise, if automatic
10229 # publication is switched on, default value is used for result name.
10231 # @return New GEOM.GEOM_Object, containing the created solid.
10233 # @ref tui_building_by_blocks_page "Example 1"
10234 # \n @ref swig_MakeHexa "Example 2"
10235 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
10237 Create a hexahedral solid, bounded by the six given faces. Order of
10238 faces is not important. It is not necessary that Faces share the same edge.
10241 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10242 theName Object name; when specified, this parameter is used
10243 for result publication in the study. Otherwise, if automatic
10244 publication is switched on, default value is used for result name.
10247 New GEOM.GEOM_Object, containing the created solid.
10250 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
10252 # Example: see GEOM_Spanner.py
10253 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
10254 RaiseIfFailed("MakeHexa", self.BlocksOp)
10255 self._autoPublish(anObj, theName, "hexa")
10258 ## Create a hexahedral solid between two given faces.
10259 # The missing faces will be built by creating the smallest ones.
10260 # @param F1,F2 Two opposite faces for the hexahedral solid.
10261 # @param theName Object name; when specified, this parameter is used
10262 # for result publication in the study. Otherwise, if automatic
10263 # publication is switched on, default value is used for result name.
10265 # @return New GEOM.GEOM_Object, containing the created solid.
10267 # @ref tui_building_by_blocks_page "Example 1"
10268 # \n @ref swig_MakeHexa2Faces "Example 2"
10269 def MakeHexa2Faces(self, F1, F2, theName=None):
10271 Create a hexahedral solid between two given faces.
10272 The missing faces will be built by creating the smallest ones.
10275 F1,F2 Two opposite faces for the hexahedral solid.
10276 theName Object name; when specified, this parameter is used
10277 for result publication in the study. Otherwise, if automatic
10278 publication is switched on, default value is used for result name.
10281 New GEOM.GEOM_Object, containing the created solid.
10284 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
10286 # Example: see GEOM_Spanner.py
10287 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
10288 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
10289 self._autoPublish(anObj, theName, "hexa")
10295 ## @addtogroup l3_blocks_op
10298 ## Get a vertex, found in the given shape by its coordinates.
10299 # @param theShape Block or a compound of blocks.
10300 # @param theX,theY,theZ Coordinates of the sought vertex.
10301 # @param theEpsilon Maximum allowed distance between the resulting
10302 # vertex and point with the given coordinates.
10303 # @param theName Object name; when specified, this parameter is used
10304 # for result publication in the study. Otherwise, if automatic
10305 # publication is switched on, default value is used for result name.
10307 # @return New GEOM.GEOM_Object, containing the found vertex.
10309 # @ref swig_GetPoint "Example"
10310 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
10312 Get a vertex, found in the given shape by its coordinates.
10315 theShape Block or a compound of blocks.
10316 theX,theY,theZ Coordinates of the sought vertex.
10317 theEpsilon Maximum allowed distance between the resulting
10318 vertex and point with the given coordinates.
10319 theName Object name; when specified, this parameter is used
10320 for result publication in the study. Otherwise, if automatic
10321 publication is switched on, default value is used for result name.
10324 New GEOM.GEOM_Object, containing the found vertex.
10327 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
10329 # Example: see GEOM_TestOthers.py
10330 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
10331 RaiseIfFailed("GetPoint", self.BlocksOp)
10332 self._autoPublish(anObj, theName, "vertex")
10335 ## Find a vertex of the given shape, which has minimal distance to the given point.
10336 # @param theShape Any shape.
10337 # @param thePoint Point, close to the desired vertex.
10338 # @param theName Object name; when specified, this parameter is used
10339 # for result publication in the study. Otherwise, if automatic
10340 # publication is switched on, default value is used for result name.
10342 # @return New GEOM.GEOM_Object, containing the found vertex.
10344 # @ref swig_GetVertexNearPoint "Example"
10345 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
10347 Find a vertex of the given shape, which has minimal distance to the given point.
10350 theShape Any shape.
10351 thePoint Point, close to the desired vertex.
10352 theName Object name; when specified, this parameter is used
10353 for result publication in the study. Otherwise, if automatic
10354 publication is switched on, default value is used for result name.
10357 New GEOM.GEOM_Object, containing the found vertex.
10360 pmidle = geompy.MakeVertex(50, 0, 50)
10361 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
10363 # Example: see GEOM_TestOthers.py
10364 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
10365 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
10366 self._autoPublish(anObj, theName, "vertex")
10369 ## Get an edge, found in the given shape by two given vertices.
10370 # @param theShape Block or a compound of blocks.
10371 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
10372 # @param theName Object name; when specified, this parameter is used
10373 # for result publication in the study. Otherwise, if automatic
10374 # publication is switched on, default value is used for result name.
10376 # @return New GEOM.GEOM_Object, containing the found edge.
10378 # @ref swig_GetEdge "Example"
10379 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
10381 Get an edge, found in the given shape by two given vertices.
10384 theShape Block or a compound of blocks.
10385 thePoint1,thePoint2 Points, close to the ends of the desired edge.
10386 theName Object name; when specified, this parameter is used
10387 for result publication in the study. Otherwise, if automatic
10388 publication is switched on, default value is used for result name.
10391 New GEOM.GEOM_Object, containing the found edge.
10393 # Example: see GEOM_Spanner.py
10394 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
10395 RaiseIfFailed("GetEdge", self.BlocksOp)
10396 self._autoPublish(anObj, theName, "edge")
10399 ## Find an edge of the given shape, which has minimal distance to the given point.
10400 # @param theShape Block or a compound of blocks.
10401 # @param thePoint Point, close to the desired edge.
10402 # @param theName Object name; when specified, this parameter is used
10403 # for result publication in the study. Otherwise, if automatic
10404 # publication is switched on, default value is used for result name.
10406 # @return New GEOM.GEOM_Object, containing the found edge.
10408 # @ref swig_GetEdgeNearPoint "Example"
10409 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
10411 Find an edge of the given shape, which has minimal distance to the given point.
10414 theShape Block or a compound of blocks.
10415 thePoint Point, close to the desired edge.
10416 theName Object name; when specified, this parameter is used
10417 for result publication in the study. Otherwise, if automatic
10418 publication is switched on, default value is used for result name.
10421 New GEOM.GEOM_Object, containing the found edge.
10423 # Example: see GEOM_TestOthers.py
10424 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
10425 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
10426 self._autoPublish(anObj, theName, "edge")
10429 ## Returns a face, found in the given shape by four given corner vertices.
10430 # @param theShape Block or a compound of blocks.
10431 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
10432 # @param theName Object name; when specified, this parameter is used
10433 # for result publication in the study. Otherwise, if automatic
10434 # publication is switched on, default value is used for result name.
10436 # @return New GEOM.GEOM_Object, containing the found face.
10438 # @ref swig_todo "Example"
10439 def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
10441 Returns a face, found in the given shape by four given corner vertices.
10444 theShape Block or a compound of blocks.
10445 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
10446 theName Object name; when specified, this parameter is used
10447 for result publication in the study. Otherwise, if automatic
10448 publication is switched on, default value is used for result name.
10451 New GEOM.GEOM_Object, containing the found face.
10453 # Example: see GEOM_Spanner.py
10454 anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
10455 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
10456 self._autoPublish(anObj, theName, "face")
10459 ## Get a face of block, found in the given shape by two given edges.
10460 # @param theShape Block or a compound of blocks.
10461 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
10462 # @param theName Object name; when specified, this parameter is used
10463 # for result publication in the study. Otherwise, if automatic
10464 # publication is switched on, default value is used for result name.
10466 # @return New GEOM.GEOM_Object, containing the found face.
10468 # @ref swig_todo "Example"
10469 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
10471 Get a face of block, found in the given shape by two given edges.
10474 theShape Block or a compound of blocks.
10475 theEdge1,theEdge2 Edges, close to the edges of the desired face.
10476 theName Object name; when specified, this parameter is used
10477 for result publication in the study. Otherwise, if automatic
10478 publication is switched on, default value is used for result name.
10481 New GEOM.GEOM_Object, containing the found face.
10483 # Example: see GEOM_Spanner.py
10484 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
10485 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
10486 self._autoPublish(anObj, theName, "face")
10489 ## Find a face, opposite to the given one in the given block.
10490 # @param theBlock Must be a hexahedral solid.
10491 # @param theFace Face of \a theBlock, opposite to the desired face.
10492 # @param theName Object name; when specified, this parameter is used
10493 # for result publication in the study. Otherwise, if automatic
10494 # publication is switched on, default value is used for result name.
10496 # @return New GEOM.GEOM_Object, containing the found face.
10498 # @ref swig_GetOppositeFace "Example"
10499 def GetOppositeFace(self, theBlock, theFace, theName=None):
10501 Find a face, opposite to the given one in the given block.
10504 theBlock Must be a hexahedral solid.
10505 theFace Face of theBlock, opposite to the desired face.
10506 theName Object name; when specified, this parameter is used
10507 for result publication in the study. Otherwise, if automatic
10508 publication is switched on, default value is used for result name.
10511 New GEOM.GEOM_Object, containing the found face.
10513 # Example: see GEOM_Spanner.py
10514 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
10515 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
10516 self._autoPublish(anObj, theName, "face")
10519 ## Find a face of the given shape, which has minimal distance to the given point.
10520 # @param theShape Block or a compound of blocks.
10521 # @param thePoint Point, close to the desired face.
10522 # @param theName Object name; when specified, this parameter is used
10523 # for result publication in the study. Otherwise, if automatic
10524 # publication is switched on, default value is used for result name.
10526 # @return New GEOM.GEOM_Object, containing the found face.
10528 # @ref swig_GetFaceNearPoint "Example"
10529 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
10531 Find a face of the given shape, which has minimal distance to the given point.
10534 theShape Block or a compound of blocks.
10535 thePoint Point, close to the desired face.
10536 theName Object name; when specified, this parameter is used
10537 for result publication in the study. Otherwise, if automatic
10538 publication is switched on, default value is used for result name.
10541 New GEOM.GEOM_Object, containing the found face.
10543 # Example: see GEOM_Spanner.py
10544 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
10545 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
10546 self._autoPublish(anObj, theName, "face")
10549 ## Find a face of block, whose outside normale has minimal angle with the given vector.
10550 # @param theBlock Block or a compound of blocks.
10551 # @param theVector Vector, close to the normale of the desired face.
10552 # @param theName Object name; when specified, this parameter is used
10553 # for result publication in the study. Otherwise, if automatic
10554 # publication is switched on, default value is used for result name.
10556 # @return New GEOM.GEOM_Object, containing the found face.
10558 # @ref swig_todo "Example"
10559 def GetFaceByNormale(self, theBlock, theVector, theName=None):
10561 Find a face of block, whose outside normale has minimal angle with the given vector.
10564 theBlock Block or a compound of blocks.
10565 theVector Vector, close to the normale of the desired face.
10566 theName Object name; when specified, this parameter is used
10567 for result publication in the study. Otherwise, if automatic
10568 publication is switched on, default value is used for result name.
10571 New GEOM.GEOM_Object, containing the found face.
10573 # Example: see GEOM_Spanner.py
10574 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
10575 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
10576 self._autoPublish(anObj, theName, "face")
10579 ## Find all sub-shapes of type \a theShapeType of the given shape,
10580 # which have minimal distance to the given point.
10581 # @param theShape Any shape.
10582 # @param thePoint Point, close to the desired shape.
10583 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
10584 # @param theTolerance The tolerance for distances comparison. All shapes
10585 # with distances to the given point in interval
10586 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
10587 # @param theName Object name; when specified, this parameter is used
10588 # for result publication in the study. Otherwise, if automatic
10589 # publication is switched on, default value is used for result name.
10591 # @return New GEOM_Object, containing a group of all found shapes.
10593 # @ref swig_GetShapesNearPoint "Example"
10594 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
10596 Find all sub-shapes of type theShapeType of the given shape,
10597 which have minimal distance to the given point.
10600 theShape Any shape.
10601 thePoint Point, close to the desired shape.
10602 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
10603 theTolerance The tolerance for distances comparison. All shapes
10604 with distances to the given point in interval
10605 [minimal_distance, minimal_distance + theTolerance] will be gathered.
10606 theName Object name; when specified, this parameter is used
10607 for result publication in the study. Otherwise, if automatic
10608 publication is switched on, default value is used for result name.
10611 New GEOM_Object, containing a group of all found shapes.
10613 # Example: see GEOM_TestOthers.py
10614 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
10615 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
10616 self._autoPublish(anObj, theName, "group")
10619 # end of l3_blocks_op
10622 ## @addtogroup l4_blocks_measure
10625 ## Check, if the compound of blocks is given.
10626 # To be considered as a compound of blocks, the
10627 # given shape must satisfy the following conditions:
10628 # - Each element of the compound should be a Block (6 faces and 12 edges).
10629 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10630 # - The compound should be connexe.
10631 # - The glue between two quadrangle faces should be applied.
10632 # @param theCompound The compound to check.
10633 # @return TRUE, if the given shape is a compound of blocks.
10634 # If theCompound is not valid, prints all discovered errors.
10636 # @ref tui_measurement_tools_page "Example 1"
10637 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
10638 def CheckCompoundOfBlocks(self,theCompound):
10640 Check, if the compound of blocks is given.
10641 To be considered as a compound of blocks, the
10642 given shape must satisfy the following conditions:
10643 - Each element of the compound should be a Block (6 faces and 12 edges).
10644 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10645 - The compound should be connexe.
10646 - The glue between two quadrangle faces should be applied.
10649 theCompound The compound to check.
10652 TRUE, if the given shape is a compound of blocks.
10653 If theCompound is not valid, prints all discovered errors.
10655 # Example: see GEOM_Spanner.py
10656 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound)
10657 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
10659 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
10663 ## Retrieve all non blocks solids and faces from \a theShape.
10664 # @param theShape The shape to explore.
10665 # @param theName Object name; when specified, this parameter is used
10666 # for result publication in the study. Otherwise, if automatic
10667 # publication is switched on, default value is used for result name.
10669 # @return A tuple of two GEOM_Objects. The first object is a group of all
10670 # non block solids (= not 6 faces, or with 6 faces, but with the
10671 # presence of non-quadrangular faces). The second object is a
10672 # group of all non quadrangular faces.
10674 # @ref tui_measurement_tools_page "Example 1"
10675 # \n @ref swig_GetNonBlocks "Example 2"
10676 def GetNonBlocks (self, theShape, theName=None):
10678 Retrieve all non blocks solids and faces from theShape.
10681 theShape The shape to explore.
10682 theName Object name; when specified, this parameter is used
10683 for result publication in the study. Otherwise, if automatic
10684 publication is switched on, default value is used for result name.
10687 A tuple of two GEOM_Objects. The first object is a group of all
10688 non block solids (= not 6 faces, or with 6 faces, but with the
10689 presence of non-quadrangular faces). The second object is a
10690 group of all non quadrangular faces.
10693 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
10695 # Example: see GEOM_Spanner.py
10696 aTuple = self.BlocksOp.GetNonBlocks(theShape)
10697 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
10698 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
10701 ## Remove all seam and degenerated edges from \a theShape.
10702 # Unite faces and edges, sharing one surface. It means that
10703 # this faces must have references to one C++ surface object (handle).
10704 # @param theShape The compound or single solid to remove irregular edges from.
10705 # @param doUnionFaces If True, then unite faces. If False (the default value),
10706 # do not unite faces.
10707 # @param theName Object name; when specified, this parameter is used
10708 # for result publication in the study. Otherwise, if automatic
10709 # publication is switched on, default value is used for result name.
10711 # @return Improved shape.
10713 # @ref swig_RemoveExtraEdges "Example"
10714 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
10716 Remove all seam and degenerated edges from theShape.
10717 Unite faces and edges, sharing one surface. It means that
10718 this faces must have references to one C++ surface object (handle).
10721 theShape The compound or single solid to remove irregular edges from.
10722 doUnionFaces If True, then unite faces. If False (the default value),
10723 do not unite faces.
10724 theName Object name; when specified, this parameter is used
10725 for result publication in the study. Otherwise, if automatic
10726 publication is switched on, default value is used for result name.
10731 # Example: see GEOM_TestOthers.py
10732 nbFacesOptimum = -1 # -1 means do not unite faces
10733 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
10734 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
10735 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
10736 self._autoPublish(anObj, theName, "removeExtraEdges")
10739 ## Check, if the given shape is a blocks compound.
10740 # Fix all detected errors.
10741 # \note Single block can be also fixed by this method.
10742 # @param theShape The compound to check and improve.
10743 # @param theName Object name; when specified, this parameter is used
10744 # for result publication in the study. Otherwise, if automatic
10745 # publication is switched on, default value is used for result name.
10747 # @return Improved compound.
10749 # @ref swig_CheckAndImprove "Example"
10750 def CheckAndImprove(self, theShape, theName=None):
10752 Check, if the given shape is a blocks compound.
10753 Fix all detected errors.
10756 Single block can be also fixed by this method.
10759 theShape The compound to check and improve.
10760 theName Object name; when specified, this parameter is used
10761 for result publication in the study. Otherwise, if automatic
10762 publication is switched on, default value is used for result name.
10767 # Example: see GEOM_TestOthers.py
10768 anObj = self.BlocksOp.CheckAndImprove(theShape)
10769 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
10770 self._autoPublish(anObj, theName, "improved")
10773 # end of l4_blocks_measure
10776 ## @addtogroup l3_blocks_op
10779 ## Get all the blocks, contained in the given compound.
10780 # @param theCompound The compound to explode.
10781 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
10782 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
10783 # @param theName Object name; when specified, this parameter is used
10784 # for result publication in the study. Otherwise, if automatic
10785 # publication is switched on, default value is used for result name.
10787 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10789 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
10791 # @ref tui_explode_on_blocks "Example 1"
10792 # \n @ref swig_MakeBlockExplode "Example 2"
10793 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
10795 Get all the blocks, contained in the given compound.
10798 theCompound The compound to explode.
10799 theMinNbFaces If solid has lower number of faces, it is not a block.
10800 theMaxNbFaces If solid has higher number of faces, it is not a block.
10801 theName Object name; when specified, this parameter is used
10802 for result publication in the study. Otherwise, if automatic
10803 publication is switched on, default value is used for result name.
10806 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10809 List of GEOM.GEOM_Object, containing the retrieved blocks.
10811 # Example: see GEOM_TestOthers.py
10812 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
10813 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
10814 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
10815 for anObj in aList:
10816 anObj.SetParameters(Parameters)
10818 self._autoPublish(aList, theName, "block")
10821 ## Find block, containing the given point inside its volume or on boundary.
10822 # @param theCompound Compound, to find block in.
10823 # @param thePoint Point, close to the desired block. If the point lays on
10824 # boundary between some blocks, we return block with nearest center.
10825 # @param theName Object name; when specified, this parameter is used
10826 # for result publication in the study. Otherwise, if automatic
10827 # publication is switched on, default value is used for result name.
10829 # @return New GEOM.GEOM_Object, containing the found block.
10831 # @ref swig_todo "Example"
10832 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
10834 Find block, containing the given point inside its volume or on boundary.
10837 theCompound Compound, to find block in.
10838 thePoint Point, close to the desired block. If the point lays on
10839 boundary between some blocks, we return block with nearest center.
10840 theName Object name; when specified, this parameter is used
10841 for result publication in the study. Otherwise, if automatic
10842 publication is switched on, default value is used for result name.
10845 New GEOM.GEOM_Object, containing the found block.
10847 # Example: see GEOM_Spanner.py
10848 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
10849 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
10850 self._autoPublish(anObj, theName, "block")
10853 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
10854 # @param theCompound Compound, to find block in.
10855 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
10856 # @param theName Object name; when specified, this parameter is used
10857 # for result publication in the study. Otherwise, if automatic
10858 # publication is switched on, default value is used for result name.
10860 # @return New GEOM.GEOM_Object, containing the found block.
10862 # @ref swig_GetBlockByParts "Example"
10863 def GetBlockByParts(self, theCompound, theParts, theName=None):
10865 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
10868 theCompound Compound, to find block in.
10869 theParts List of faces and/or edges and/or vertices to be parts of the found block.
10870 theName Object name; when specified, this parameter is used
10871 for result publication in the study. Otherwise, if automatic
10872 publication is switched on, default value is used for result name.
10875 New GEOM_Object, containing the found block.
10877 # Example: see GEOM_TestOthers.py
10878 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
10879 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
10880 self._autoPublish(anObj, theName, "block")
10883 ## Return all blocks, containing all the elements, passed as the parts.
10884 # @param theCompound Compound, to find blocks in.
10885 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
10886 # @param theName Object name; when specified, this parameter is used
10887 # for result publication in the study. Otherwise, if automatic
10888 # publication is switched on, default value is used for result name.
10890 # @return List of GEOM.GEOM_Object, containing the found blocks.
10892 # @ref swig_todo "Example"
10893 def GetBlocksByParts(self, theCompound, theParts, theName=None):
10895 Return all blocks, containing all the elements, passed as the parts.
10898 theCompound Compound, to find blocks in.
10899 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
10900 theName Object name; when specified, this parameter is used
10901 for result publication in the study. Otherwise, if automatic
10902 publication is switched on, default value is used for result name.
10905 List of GEOM.GEOM_Object, containing the found blocks.
10907 # Example: see GEOM_Spanner.py
10908 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
10909 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
10910 self._autoPublish(aList, theName, "block")
10913 ## Multi-transformate block and glue the result.
10914 # Transformation is defined so, as to superpose direction faces.
10915 # @param Block Hexahedral solid to be multi-transformed.
10916 # @param DirFace1 ID of First direction face.
10917 # @param DirFace2 ID of Second direction face.
10918 # @param NbTimes Quantity of transformations to be done.
10919 # @param theName Object name; when specified, this parameter is used
10920 # for result publication in the study. Otherwise, if automatic
10921 # publication is switched on, default value is used for result name.
10923 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
10925 # @return New GEOM.GEOM_Object, containing the result shape.
10927 # @ref tui_multi_transformation "Example"
10928 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
10930 Multi-transformate block and glue the result.
10931 Transformation is defined so, as to superpose direction faces.
10934 Block Hexahedral solid to be multi-transformed.
10935 DirFace1 ID of First direction face.
10936 DirFace2 ID of Second direction face.
10937 NbTimes Quantity of transformations to be done.
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 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
10946 New GEOM.GEOM_Object, containing the result shape.
10948 # Example: see GEOM_Spanner.py
10949 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
10950 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
10951 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
10952 anObj.SetParameters(Parameters)
10953 self._autoPublish(anObj, theName, "transformed")
10956 ## Multi-transformate block and glue the result.
10957 # @param Block Hexahedral solid to be multi-transformed.
10958 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
10959 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
10960 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
10961 # @param theName Object name; when specified, this parameter is used
10962 # for result publication in the study. Otherwise, if automatic
10963 # publication is switched on, default value is used for result name.
10965 # @return New GEOM.GEOM_Object, containing the result shape.
10967 # @ref tui_multi_transformation "Example"
10968 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
10969 DirFace1V, DirFace2V, NbTimesV, theName=None):
10971 Multi-transformate block and glue the result.
10974 Block Hexahedral solid to be multi-transformed.
10975 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
10976 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
10977 NbTimesU,NbTimesV Quantity of transformations to be done.
10978 theName Object name; when specified, this parameter is used
10979 for result publication in the study. Otherwise, if automatic
10980 publication is switched on, default value is used for result name.
10983 New GEOM.GEOM_Object, containing the result shape.
10985 # Example: see GEOM_Spanner.py
10986 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
10987 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
10988 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
10989 DirFace1V, DirFace2V, NbTimesV)
10990 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
10991 anObj.SetParameters(Parameters)
10992 self._autoPublish(anObj, theName, "transformed")
10995 ## Build all possible propagation groups.
10996 # Propagation group is a set of all edges, opposite to one (main)
10997 # edge of this group directly or through other opposite edges.
10998 # Notion of Opposite Edge make sence only on quadrangle face.
10999 # @param theShape Shape to build propagation groups on.
11000 # @param theName Object name; when specified, this parameter is used
11001 # for result publication in the study. Otherwise, if automatic
11002 # publication is switched on, default value is used for result name.
11004 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
11006 # @ref swig_Propagate "Example"
11007 def Propagate(self, theShape, theName=None):
11009 Build all possible propagation groups.
11010 Propagation group is a set of all edges, opposite to one (main)
11011 edge of this group directly or through other opposite edges.
11012 Notion of Opposite Edge make sence only on quadrangle face.
11015 theShape Shape to build propagation groups on.
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 List of GEOM.GEOM_Object, each of them is a propagation group.
11023 # Example: see GEOM_TestOthers.py
11024 listChains = self.BlocksOp.Propagate(theShape)
11025 RaiseIfFailed("Propagate", self.BlocksOp)
11026 self._autoPublish(listChains, theName, "propagate")
11029 # end of l3_blocks_op
11032 ## @addtogroup l3_groups
11035 ## Creates a new group which will store sub-shapes of theMainShape
11036 # @param theMainShape is a GEOM object on which the group is selected
11037 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
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 a newly created GEOM group (GEOM.GEOM_Object)
11044 # @ref tui_working_with_groups_page "Example 1"
11045 # \n @ref swig_CreateGroup "Example 2"
11046 def CreateGroup(self, theMainShape, theShapeType, theName=None):
11048 Creates a new group which will store sub-shapes of theMainShape
11051 theMainShape is a GEOM object on which the group is selected
11052 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
11053 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
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 a newly created GEOM group
11062 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
11065 # Example: see GEOM_TestOthers.py
11066 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
11067 RaiseIfFailed("CreateGroup", self.GroupOp)
11068 self._autoPublish(anObj, theName, "group")
11071 ## Adds a sub-object with ID theSubShapeId to the group
11072 # @param theGroup is a GEOM group to which the new sub-shape is added
11073 # @param theSubShapeID is a sub-shape ID in the main object.
11074 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11076 # @ref tui_working_with_groups_page "Example"
11077 def AddObject(self,theGroup, theSubShapeID):
11079 Adds a sub-object with ID theSubShapeId to the group
11082 theGroup is a GEOM group to which the new sub-shape is added
11083 theSubShapeID is a sub-shape ID in the main object.
11086 Use method GetSubShapeID() to get an unique ID of the sub-shape
11088 # Example: see GEOM_TestOthers.py
11089 self.GroupOp.AddObject(theGroup, theSubShapeID)
11090 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
11091 RaiseIfFailed("AddObject", self.GroupOp)
11095 ## Removes a sub-object with ID \a theSubShapeId from the group
11096 # @param theGroup is a GEOM group from which the new sub-shape is removed
11097 # @param theSubShapeID is a sub-shape ID in the main object.
11098 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11100 # @ref tui_working_with_groups_page "Example"
11101 def RemoveObject(self,theGroup, theSubShapeID):
11103 Removes a sub-object with ID theSubShapeId from the group
11106 theGroup is a GEOM group from which the new sub-shape is removed
11107 theSubShapeID is a sub-shape ID in the main object.
11110 Use method GetSubShapeID() to get an unique ID of the sub-shape
11112 # Example: see GEOM_TestOthers.py
11113 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
11114 RaiseIfFailed("RemoveObject", self.GroupOp)
11117 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11118 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11119 # @param theSubShapes is a list of sub-shapes to be added.
11121 # @ref tui_working_with_groups_page "Example"
11122 def UnionList (self,theGroup, theSubShapes):
11124 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11127 theGroup is a GEOM group to which the new sub-shapes are added.
11128 theSubShapes is a list of sub-shapes to be added.
11130 # Example: see GEOM_TestOthers.py
11131 self.GroupOp.UnionList(theGroup, theSubShapes)
11132 RaiseIfFailed("UnionList", self.GroupOp)
11135 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11136 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11137 # @param theSubShapes is a list of indices of sub-shapes to be added.
11139 # @ref swig_UnionIDs "Example"
11140 def UnionIDs(self,theGroup, theSubShapes):
11142 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11145 theGroup is a GEOM group to which the new sub-shapes are added.
11146 theSubShapes is a list of indices of sub-shapes to be added.
11148 # Example: see GEOM_TestOthers.py
11149 self.GroupOp.UnionIDs(theGroup, theSubShapes)
11150 RaiseIfFailed("UnionIDs", self.GroupOp)
11153 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11154 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11155 # @param theSubShapes is a list of sub-shapes to be removed.
11157 # @ref tui_working_with_groups_page "Example"
11158 def DifferenceList (self,theGroup, theSubShapes):
11160 Removes from the group all the given shapes. No errors, if some shapes are not included.
11163 theGroup is a GEOM group from which the sub-shapes are removed.
11164 theSubShapes is a list of sub-shapes to be removed.
11166 # Example: see GEOM_TestOthers.py
11167 self.GroupOp.DifferenceList(theGroup, theSubShapes)
11168 RaiseIfFailed("DifferenceList", self.GroupOp)
11171 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11172 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11173 # @param theSubShapes is a list of indices of sub-shapes to be removed.
11175 # @ref swig_DifferenceIDs "Example"
11176 def DifferenceIDs(self,theGroup, theSubShapes):
11178 Removes from the group all the given shapes. No errors, if some shapes are not included.
11181 theGroup is a GEOM group from which the sub-shapes are removed.
11182 theSubShapes is a list of indices of sub-shapes to be removed.
11184 # Example: see GEOM_TestOthers.py
11185 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
11186 RaiseIfFailed("DifferenceIDs", self.GroupOp)
11189 ## Union of two groups.
11190 # New group is created. It will contain all entities
11191 # which are present in groups theGroup1 and theGroup2.
11192 # @param theGroup1, theGroup2 are the initial GEOM groups
11193 # to create the united group from.
11194 # @param theName Object name; when specified, this parameter is used
11195 # for result publication in the study. Otherwise, if automatic
11196 # publication is switched on, default value is used for result name.
11198 # @return a newly created GEOM group.
11200 # @ref tui_union_groups_anchor "Example"
11201 def UnionGroups (self, theGroup1, theGroup2, theName=None):
11203 Union of two groups.
11204 New group is created. It will contain all entities
11205 which are present in groups theGroup1 and theGroup2.
11208 theGroup1, theGroup2 are the initial GEOM groups
11209 to create the united group from.
11210 theName Object name; when specified, this parameter is used
11211 for result publication in the study. Otherwise, if automatic
11212 publication is switched on, default value is used for result name.
11215 a newly created GEOM group.
11217 # Example: see GEOM_TestOthers.py
11218 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
11219 RaiseIfFailed("UnionGroups", self.GroupOp)
11220 self._autoPublish(aGroup, theName, "group")
11223 ## Intersection of two groups.
11224 # New group is created. It will contain only those entities
11225 # which are present in both groups theGroup1 and theGroup2.
11226 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11227 # @param theName Object name; when specified, this parameter is used
11228 # for result publication in the study. Otherwise, if automatic
11229 # publication is switched on, default value is used for result name.
11231 # @return a newly created GEOM group.
11233 # @ref tui_intersect_groups_anchor "Example"
11234 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
11236 Intersection of two groups.
11237 New group is created. It will contain only those entities
11238 which are present in both groups theGroup1 and theGroup2.
11241 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11242 theName Object name; when specified, this parameter is used
11243 for result publication in the study. Otherwise, if automatic
11244 publication is switched on, default value is used for result name.
11247 a newly created GEOM group.
11249 # Example: see GEOM_TestOthers.py
11250 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
11251 RaiseIfFailed("IntersectGroups", self.GroupOp)
11252 self._autoPublish(aGroup, theName, "group")
11255 ## Cut of two groups.
11256 # New group is created. It will contain entities which are
11257 # present in group theGroup1 but are not present in group theGroup2.
11258 # @param theGroup1 is a GEOM group to include elements of.
11259 # @param theGroup2 is a GEOM group to exclude elements of.
11260 # @param theName Object name; when specified, this parameter is used
11261 # for result publication in the study. Otherwise, if automatic
11262 # publication is switched on, default value is used for result name.
11264 # @return a newly created GEOM group.
11266 # @ref tui_cut_groups_anchor "Example"
11267 def CutGroups (self, theGroup1, theGroup2, theName=None):
11270 New group is created. It will contain entities which are
11271 present in group theGroup1 but are not present in group theGroup2.
11274 theGroup1 is a GEOM group to include elements of.
11275 theGroup2 is a GEOM group to exclude elements of.
11276 theName Object name; when specified, this parameter is used
11277 for result publication in the study. Otherwise, if automatic
11278 publication is switched on, default value is used for result name.
11281 a newly created GEOM group.
11283 # Example: see GEOM_TestOthers.py
11284 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
11285 RaiseIfFailed("CutGroups", self.GroupOp)
11286 self._autoPublish(aGroup, theName, "group")
11289 ## Union of list of groups.
11290 # New group is created. It will contain all entities that are
11291 # present in groups listed in theGList.
11292 # @param theGList is a list of GEOM groups to create the united group from.
11293 # @param theName Object name; when specified, this parameter is used
11294 # for result publication in the study. Otherwise, if automatic
11295 # publication is switched on, default value is used for result name.
11297 # @return a newly created GEOM group.
11299 # @ref tui_union_groups_anchor "Example"
11300 def UnionListOfGroups (self, theGList, theName=None):
11302 Union of list of groups.
11303 New group is created. It will contain all entities that are
11304 present in groups listed in theGList.
11307 theGList is a list of GEOM groups to create the united group from.
11308 theName Object name; when specified, this parameter is used
11309 for result publication in the study. Otherwise, if automatic
11310 publication is switched on, default value is used for result name.
11313 a newly created GEOM group.
11315 # Example: see GEOM_TestOthers.py
11316 aGroup = self.GroupOp.UnionListOfGroups(theGList)
11317 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
11318 self._autoPublish(aGroup, theName, "group")
11321 ## Cut of lists of groups.
11322 # New group is created. It will contain only entities
11323 # which are present in groups listed in theGList1 but
11324 # are not present in groups from theGList2.
11325 # @param theGList1 is a list of GEOM groups to include elements of.
11326 # @param theGList2 is a list of GEOM groups to exclude elements of.
11327 # @param theName Object name; when specified, this parameter is used
11328 # for result publication in the study. Otherwise, if automatic
11329 # publication is switched on, default value is used for result name.
11331 # @return a newly created GEOM group.
11333 # @ref tui_intersect_groups_anchor "Example"
11334 def IntersectListOfGroups (self, theGList, theName=None):
11336 Cut of lists of groups.
11337 New group is created. It will contain only entities
11338 which are present in groups listed in theGList1 but
11339 are not present in groups from theGList2.
11342 theGList1 is a list of GEOM groups to include elements of.
11343 theGList2 is a list of GEOM groups to exclude elements of.
11344 theName Object name; when specified, this parameter is used
11345 for result publication in the study. Otherwise, if automatic
11346 publication is switched on, default value is used for result name.
11349 a newly created GEOM group.
11351 # Example: see GEOM_TestOthers.py
11352 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
11353 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
11354 self._autoPublish(aGroup, theName, "group")
11357 ## Cut of lists of groups.
11358 # New group is created. It will contain only entities
11359 # which are present in groups listed in theGList1 but
11360 # are not present in groups from theGList2.
11361 # @param theGList1 is a list of GEOM groups to include elements of.
11362 # @param theGList2 is a list of GEOM groups to exclude elements of.
11363 # @param theName Object name; when specified, this parameter is used
11364 # for result publication in the study. Otherwise, if automatic
11365 # publication is switched on, default value is used for result name.
11367 # @return a newly created GEOM group.
11369 # @ref tui_cut_groups_anchor "Example"
11370 def CutListOfGroups (self, theGList1, theGList2, theName=None):
11372 Cut of lists of groups.
11373 New group is created. It will contain only entities
11374 which are present in groups listed in theGList1 but
11375 are not present in groups from theGList2.
11378 theGList1 is a list of GEOM groups to include elements of.
11379 theGList2 is a list of GEOM groups to exclude elements of.
11380 theName Object name; when specified, this parameter is used
11381 for result publication in the study. Otherwise, if automatic
11382 publication is switched on, default value is used for result name.
11385 a newly created GEOM group.
11387 # Example: see GEOM_TestOthers.py
11388 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
11389 RaiseIfFailed("CutListOfGroups", self.GroupOp)
11390 self._autoPublish(aGroup, theName, "group")
11393 ## Returns a list of sub-objects ID stored in the group
11394 # @param theGroup is a GEOM group for which a list of IDs is requested
11396 # @ref swig_GetObjectIDs "Example"
11397 def GetObjectIDs(self,theGroup):
11399 Returns a list of sub-objects ID stored in the group
11402 theGroup is a GEOM group for which a list of IDs is requested
11404 # Example: see GEOM_TestOthers.py
11405 ListIDs = self.GroupOp.GetObjects(theGroup)
11406 RaiseIfFailed("GetObjects", self.GroupOp)
11409 ## Returns a type of sub-objects stored in the group
11410 # @param theGroup is a GEOM group which type is returned.
11412 # @ref swig_GetType "Example"
11413 def GetType(self,theGroup):
11415 Returns a type of sub-objects stored in the group
11418 theGroup is a GEOM group which type is returned.
11420 # Example: see GEOM_TestOthers.py
11421 aType = self.GroupOp.GetType(theGroup)
11422 RaiseIfFailed("GetType", self.GroupOp)
11425 ## Convert a type of geom object from id to string value
11426 # @param theId is a GEOM obect type id.
11427 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11428 # @ref swig_GetType "Example"
11429 def ShapeIdToType(self, theId):
11431 Convert a type of geom object from id to string value
11434 theId is a GEOM obect type id.
11437 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11464 return "REVOLUTION"
11512 return "FREE_BOUNDS"
11520 return "THRUSECTIONS"
11522 return "COMPOUNDFILTER"
11524 return "SHAPES_ON_SHAPE"
11526 return "ELLIPSE_ARC"
11528 return "3DSKETCHER"
11534 return "PIPETSHAPE"
11535 return "Shape Id not exist."
11537 ## Returns a main shape associated with the group
11538 # @param theGroup is a GEOM group for which a main shape object is requested
11539 # @return a GEOM object which is a main shape for theGroup
11541 # @ref swig_GetMainShape "Example"
11542 def GetMainShape(self,theGroup):
11544 Returns a main shape associated with the group
11547 theGroup is a GEOM group for which a main shape object is requested
11550 a GEOM object which is a main shape for theGroup
11552 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
11554 # Example: see GEOM_TestOthers.py
11555 anObj = self.GroupOp.GetMainShape(theGroup)
11556 RaiseIfFailed("GetMainShape", self.GroupOp)
11559 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
11560 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11561 # @param theShape given shape (see GEOM.GEOM_Object)
11562 # @param min_length minimum length of edges of theShape
11563 # @param max_length maximum length of edges of theShape
11564 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11565 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11566 # @param theName Object name; when specified, this parameter is used
11567 # for result publication in the study. Otherwise, if automatic
11568 # publication is switched on, default value is used for result name.
11570 # @return a newly created GEOM group of edges
11572 # @@ref swig_todo "Example"
11573 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
11575 Create group of edges of theShape, whose length is in range [min_length, max_length].
11576 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11579 theShape given shape
11580 min_length minimum length of edges of theShape
11581 max_length maximum length of edges of theShape
11582 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11583 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11584 theName Object name; when specified, this parameter is used
11585 for result publication in the study. Otherwise, if automatic
11586 publication is switched on, default value is used for result name.
11589 a newly created GEOM group of edges.
11591 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
11592 edges_in_range = []
11594 Props = self.BasicProperties(edge)
11595 if min_length <= Props[0] and Props[0] <= max_length:
11596 if (not include_min) and (min_length == Props[0]):
11599 if (not include_max) and (Props[0] == max_length):
11602 edges_in_range.append(edge)
11604 if len(edges_in_range) <= 0:
11605 print "No edges found by given criteria"
11608 # note: auto-publishing is done in self.CreateGroup()
11609 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
11610 self.UnionList(group_edges, edges_in_range)
11614 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
11615 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11616 # @param min_length minimum length of edges of selected shape
11617 # @param max_length maximum length of edges of selected shape
11618 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11619 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11620 # @return a newly created GEOM group of edges
11621 # @ref swig_todo "Example"
11622 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
11624 Create group of edges of selected shape, whose length is in range [min_length, max_length].
11625 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11628 min_length minimum length of edges of selected shape
11629 max_length maximum length of edges of selected shape
11630 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11631 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11634 a newly created GEOM group of edges.
11636 nb_selected = sg.SelectedCount()
11637 if nb_selected < 1:
11638 print "Select a shape before calling this function, please."
11640 if nb_selected > 1:
11641 print "Only one shape must be selected"
11644 id_shape = sg.getSelected(0)
11645 shape = IDToObject( id_shape )
11647 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
11651 if include_min: left_str = " <= "
11652 if include_max: right_str = " <= "
11654 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
11655 + left_str + "length" + right_str + `max_length`)
11657 sg.updateObjBrowser(1)
11664 ## @addtogroup l4_advanced
11667 ## Create a T-shape object with specified caracteristics for the main
11668 # and the incident pipes (radius, width, half-length).
11669 # The extremities of the main pipe are located on junctions points P1 and P2.
11670 # The extremity of the incident pipe is located on junction point P3.
11671 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11672 # the main plane of the T-shape is XOY.
11674 # @param theR1 Internal radius of main pipe
11675 # @param theW1 Width of main pipe
11676 # @param theL1 Half-length of main pipe
11677 # @param theR2 Internal radius of incident pipe (R2 < R1)
11678 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11679 # @param theL2 Half-length of incident pipe
11681 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11682 # @param theP1 1st junction point of main pipe
11683 # @param theP2 2nd junction point of main pipe
11684 # @param theP3 Junction point of incident pipe
11686 # @param theRL Internal radius of left thickness reduction
11687 # @param theWL Width of left thickness reduction
11688 # @param theLtransL Length of left transition part
11689 # @param theLthinL Length of left thin part
11691 # @param theRR Internal radius of right thickness reduction
11692 # @param theWR Width of right thickness reduction
11693 # @param theLtransR Length of right transition part
11694 # @param theLthinR Length of right thin part
11696 # @param theRI Internal radius of incident thickness reduction
11697 # @param theWI Width of incident thickness reduction
11698 # @param theLtransI Length of incident transition part
11699 # @param theLthinI Length of incident thin part
11701 # @param theName Object name; when specified, this parameter is used
11702 # for result publication in the study. Otherwise, if automatic
11703 # publication is switched on, default value is used for result name.
11705 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11707 # @ref tui_creation_pipetshape "Example"
11708 def MakePipeTShape (self, theR1, theW1, theL1, theR2, theW2, theL2,
11709 theHexMesh=True, theP1=None, theP2=None, theP3=None,
11710 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11711 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11712 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11715 Create a T-shape object with specified caracteristics for the main
11716 and the incident pipes (radius, width, half-length).
11717 The extremities of the main pipe are located on junctions points P1 and P2.
11718 The extremity of the incident pipe is located on junction point P3.
11719 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11720 the main plane of the T-shape is XOY.
11723 theR1 Internal radius of main pipe
11724 theW1 Width of main pipe
11725 theL1 Half-length of main pipe
11726 theR2 Internal radius of incident pipe (R2 < R1)
11727 theW2 Width of incident pipe (R2+W2 < R1+W1)
11728 theL2 Half-length of incident pipe
11729 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11730 theP1 1st junction point of main pipe
11731 theP2 2nd junction point of main pipe
11732 theP3 Junction point of incident pipe
11734 theRL Internal radius of left thickness reduction
11735 theWL Width of left thickness reduction
11736 theLtransL Length of left transition part
11737 theLthinL Length of left thin part
11739 theRR Internal radius of right thickness reduction
11740 theWR Width of right thickness reduction
11741 theLtransR Length of right transition part
11742 theLthinR Length of right thin part
11744 theRI Internal radius of incident thickness reduction
11745 theWI Width of incident thickness reduction
11746 theLtransI Length of incident transition part
11747 theLthinI Length of incident thin part
11749 theName Object name; when specified, this parameter is used
11750 for result publication in the study. Otherwise, if automatic
11751 publication is switched on, default value is used for result name.
11754 List of GEOM_Object, containing the created shape and propagation groups.
11757 # create PipeTShape object
11758 pipetshape = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0)
11759 # create PipeTShape object with position
11760 pipetshape_position = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, True, P1, P2, P3)
11761 # create PipeTShape object with left thickness reduction
11762 pipetshape_thr = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
11764 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)
11765 if (theP1 and theP2 and theP3):
11766 anObj = self.AdvOp.MakePipeTShapeTRWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
11767 theRL, theWL, theLtransL, theLthinL,
11768 theRR, theWR, theLtransR, theLthinR,
11769 theRI, theWI, theLtransI, theLthinI,
11770 theHexMesh, theP1, theP2, theP3)
11772 anObj = self.AdvOp.MakePipeTShapeTR(theR1, theW1, theL1, theR2, theW2, theL2,
11773 theRL, theWL, theLtransL, theLthinL,
11774 theRR, theWR, theLtransR, theLthinR,
11775 theRI, theWI, theLtransI, theLthinI,
11777 RaiseIfFailed("MakePipeTShape", self.AdvOp)
11778 if Parameters: anObj[0].SetParameters(Parameters)
11779 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
11780 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
11783 ## Create a T-shape object with chamfer and with specified caracteristics for the main
11784 # and the incident pipes (radius, width, half-length). The chamfer is
11785 # created on the junction of the pipes.
11786 # The extremities of the main pipe are located on junctions points P1 and P2.
11787 # The extremity of the incident pipe is located on junction point P3.
11788 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11789 # the main plane of the T-shape is XOY.
11790 # @param theR1 Internal radius of main pipe
11791 # @param theW1 Width of main pipe
11792 # @param theL1 Half-length of main pipe
11793 # @param theR2 Internal radius of incident pipe (R2 < R1)
11794 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11795 # @param theL2 Half-length of incident pipe
11796 # @param theH Height of the chamfer.
11797 # @param theW Width of the chamfer.
11798 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11799 # @param theP1 1st junction point of main pipe
11800 # @param theP2 2nd junction point of main pipe
11801 # @param theP3 Junction point of incident pipe
11803 # @param theRL Internal radius of left thickness reduction
11804 # @param theWL Width of left thickness reduction
11805 # @param theLtransL Length of left transition part
11806 # @param theLthinL Length of left thin part
11808 # @param theRR Internal radius of right thickness reduction
11809 # @param theWR Width of right thickness reduction
11810 # @param theLtransR Length of right transition part
11811 # @param theLthinR Length of right thin part
11813 # @param theRI Internal radius of incident thickness reduction
11814 # @param theWI Width of incident thickness reduction
11815 # @param theLtransI Length of incident transition part
11816 # @param theLthinI Length of incident thin part
11818 # @param theName Object name; when specified, this parameter is used
11819 # for result publication in the study. Otherwise, if automatic
11820 # publication is switched on, default value is used for result name.
11822 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11824 # @ref tui_creation_pipetshape "Example"
11825 def MakePipeTShapeChamfer (self, theR1, theW1, theL1, theR2, theW2, theL2,
11826 theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None,
11827 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11828 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11829 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11832 Create a T-shape object with chamfer and with specified caracteristics for the main
11833 and the incident pipes (radius, width, half-length). The chamfer is
11834 created on the junction of the pipes.
11835 The extremities of the main pipe are located on junctions points P1 and P2.
11836 The extremity of the incident pipe is located on junction point P3.
11837 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11838 the main plane of the T-shape is XOY.
11841 theR1 Internal radius of main pipe
11842 theW1 Width of main pipe
11843 theL1 Half-length of main pipe
11844 theR2 Internal radius of incident pipe (R2 < R1)
11845 theW2 Width of incident pipe (R2+W2 < R1+W1)
11846 theL2 Half-length of incident pipe
11847 theH Height of the chamfer.
11848 theW Width of the chamfer.
11849 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11850 theP1 1st junction point of main pipe
11851 theP2 2nd junction point of main pipe
11852 theP3 Junction point of incident pipe
11854 theRL Internal radius of left thickness reduction
11855 theWL Width of left thickness reduction
11856 theLtransL Length of left transition part
11857 theLthinL Length of left thin part
11859 theRR Internal radius of right thickness reduction
11860 theWR Width of right thickness reduction
11861 theLtransR Length of right transition part
11862 theLthinR Length of right thin part
11864 theRI Internal radius of incident thickness reduction
11865 theWI Width of incident thickness reduction
11866 theLtransI Length of incident transition part
11867 theLthinI Length of incident thin part
11869 theName Object name; when specified, this parameter is used
11870 for result publication in the study. Otherwise, if automatic
11871 publication is switched on, default value is used for result name.
11874 List of GEOM_Object, containing the created shape and propagation groups.
11877 # create PipeTShape with chamfer object
11878 pipetshapechamfer = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0)
11879 # create PipeTShape with chamfer object with position
11880 pipetshapechamfer_position = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, True, P1, P2, P3)
11881 # create PipeTShape with chamfer object with left thickness reduction
11882 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)
11884 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)
11885 if (theP1 and theP2 and theP3):
11886 anObj = self.AdvOp.MakePipeTShapeTRChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
11887 theRL, theWL, theLtransL, theLthinL,
11888 theRR, theWR, theLtransR, theLthinR,
11889 theRI, theWI, theLtransI, theLthinI,
11890 theH, theW, theHexMesh, theP1, theP2, theP3)
11892 anObj = self.AdvOp.MakePipeTShapeTRChamfer(theR1, theW1, theL1, theR2, theW2, theL2,
11893 theRL, theWL, theLtransL, theLthinL,
11894 theRR, theWR, theLtransR, theLthinR,
11895 theRI, theWI, theLtransI, theLthinI,
11896 theH, theW, theHexMesh)
11897 RaiseIfFailed("MakePipeTShapeChamfer", self.AdvOp)
11898 if Parameters: anObj[0].SetParameters(Parameters)
11899 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
11900 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
11903 ## Create a T-shape object with fillet and with specified caracteristics for the main
11904 # and the incident pipes (radius, width, half-length). The fillet is
11905 # created on the junction of the pipes.
11906 # The extremities of the main pipe are located on junctions points P1 and P2.
11907 # The extremity of the incident pipe is located on junction point P3.
11908 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11909 # the main plane of the T-shape is XOY.
11910 # @param theR1 Internal radius of main pipe
11911 # @param theW1 Width of main pipe
11912 # @param theL1 Half-length of main pipe
11913 # @param theR2 Internal radius of incident pipe (R2 < R1)
11914 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11915 # @param theL2 Half-length of incident pipe
11916 # @param theRF Radius of curvature of fillet.
11917 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11918 # @param theP1 1st junction point of main pipe
11919 # @param theP2 2nd junction point of main pipe
11920 # @param theP3 Junction point of incident pipe
11922 # @param theRL Internal radius of left thickness reduction
11923 # @param theWL Width of left thickness reduction
11924 # @param theLtransL Length of left transition part
11925 # @param theLthinL Length of left thin part
11927 # @param theRR Internal radius of right thickness reduction
11928 # @param theWR Width of right thickness reduction
11929 # @param theLtransR Length of right transition part
11930 # @param theLthinR Length of right thin part
11932 # @param theRI Internal radius of incident thickness reduction
11933 # @param theWI Width of incident thickness reduction
11934 # @param theLtransI Length of incident transition part
11935 # @param theLthinI Length of incident thin part
11937 # @param theName Object name; when specified, this parameter is used
11938 # for result publication in the study. Otherwise, if automatic
11939 # publication is switched on, default value is used for result name.
11941 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11943 # @ref tui_creation_pipetshape "Example"
11944 def MakePipeTShapeFillet (self, theR1, theW1, theL1, theR2, theW2, theL2,
11945 theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None,
11946 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11947 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11948 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11951 Create a T-shape object with fillet and with specified caracteristics for the main
11952 and the incident pipes (radius, width, half-length). The fillet is
11953 created on the junction of the pipes.
11954 The extremities of the main pipe are located on junctions points P1 and P2.
11955 The extremity of the incident pipe is located on junction point P3.
11958 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11959 the main plane of the T-shape is XOY.
11960 theR1 Internal radius of main pipe
11961 theW1 Width of main pipe
11962 heL1 Half-length of main pipe
11963 theR2 Internal radius of incident pipe (R2 < R1)
11964 theW2 Width of incident pipe (R2+W2 < R1+W1)
11965 theL2 Half-length of incident pipe
11966 theRF Radius of curvature of fillet.
11967 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11968 theP1 1st junction point of main pipe
11969 theP2 2nd junction point of main pipe
11970 theP3 Junction point of incident pipe
11972 theRL Internal radius of left thickness reduction
11973 theWL Width of left thickness reduction
11974 theLtransL Length of left transition part
11975 theLthinL Length of left thin part
11977 theRR Internal radius of right thickness reduction
11978 theWR Width of right thickness reduction
11979 theLtransR Length of right transition part
11980 theLthinR Length of right thin part
11982 theRI Internal radius of incident thickness reduction
11983 theWI Width of incident thickness reduction
11984 theLtransI Length of incident transition part
11985 theLthinI Length of incident thin part
11987 theName Object name; when specified, this parameter is used
11988 for result publication in the study. Otherwise, if automatic
11989 publication is switched on, default value is used for result name.
11992 List of GEOM_Object, containing the created shape and propagation groups.
11995 # create PipeTShape with fillet object
11996 pipetshapefillet = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0)
11997 # create PipeTShape with fillet object with position
11998 pipetshapefillet_position = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, True, P1, P2, P3)
11999 # create PipeTShape with fillet object with left thickness reduction
12000 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)
12002 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)
12003 if (theP1 and theP2 and theP3):
12004 anObj = self.AdvOp.MakePipeTShapeTRFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
12005 theRL, theWL, theLtransL, theLthinL,
12006 theRR, theWR, theLtransR, theLthinR,
12007 theRI, theWI, theLtransI, theLthinI,
12008 theRF, theHexMesh, theP1, theP2, theP3)
12010 anObj = self.AdvOp.MakePipeTShapeTRFillet(theR1, theW1, theL1, theR2, theW2, theL2,
12011 theRL, theWL, theLtransL, theLthinL,
12012 theRR, theWR, theLtransR, theLthinR,
12013 theRI, theWI, theLtransI, theLthinI,
12015 RaiseIfFailed("MakePipeTShapeFillet", self.AdvOp)
12016 if Parameters: anObj[0].SetParameters(Parameters)
12017 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
12018 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
12021 ## This function allows creating a disk already divided into blocks. It
12022 # can be used to create divided pipes for later meshing in hexaedra.
12023 # @param theR Radius of the disk
12024 # @param theOrientation Orientation of the plane on which the disk will be built
12025 # 1 = XOY, 2 = OYZ, 3 = OZX
12026 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12027 # @param theName Object name; when specified, this parameter is used
12028 # for result publication in the study. Otherwise, if automatic
12029 # publication is switched on, default value is used for result name.
12031 # @return New GEOM_Object, containing the created shape.
12033 # @ref tui_creation_divideddisk "Example"
12034 def MakeDividedDisk(self, theR, theOrientation, thePattern, theName=None):
12036 Creates a disk, divided into blocks. It can be used to create divided pipes
12037 for later meshing in hexaedra.
12040 theR Radius of the disk
12041 theOrientation Orientation of the plane on which the disk will be built:
12042 1 = XOY, 2 = OYZ, 3 = OZX
12043 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12044 theName Object name; when specified, this parameter is used
12045 for result publication in the study. Otherwise, if automatic
12046 publication is switched on, default value is used for result name.
12049 New GEOM_Object, containing the created shape.
12051 theR, Parameters = ParseParameters(theR)
12052 anObj = self.AdvOp.MakeDividedDisk(theR, 67.0, theOrientation, thePattern)
12053 RaiseIfFailed("MakeDividedDisk", self.AdvOp)
12054 if Parameters: anObj.SetParameters(Parameters)
12055 self._autoPublish(anObj, theName, "dividedDisk")
12058 ## This function allows creating a disk already divided into blocks. It
12059 # can be used to create divided pipes for later meshing in hexaedra.
12060 # @param theCenter Center of the disk
12061 # @param theVector Normal vector to the plane of the created disk
12062 # @param theRadius Radius of the disk
12063 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12064 # @param theName Object name; when specified, this parameter is used
12065 # for result publication in the study. Otherwise, if automatic
12066 # publication is switched on, default value is used for result name.
12068 # @return New GEOM_Object, containing the created shape.
12070 # @ref tui_creation_divideddisk "Example"
12071 def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern, theName=None):
12073 Creates a disk already divided into blocks. It can be used to create divided pipes
12074 for later meshing in hexaedra.
12077 theCenter Center of the disk
12078 theVector Normal vector to the plane of the created disk
12079 theRadius Radius of the disk
12080 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12081 theName Object name; when specified, this parameter is used
12082 for result publication in the study. Otherwise, if automatic
12083 publication is switched on, default value is used for result name.
12086 New GEOM_Object, containing the created shape.
12088 theRadius, Parameters = ParseParameters(theRadius)
12089 anObj = self.AdvOp.MakeDividedDiskPntVecR(theCenter, theVector, theRadius, 67.0, thePattern)
12090 RaiseIfFailed("MakeDividedDiskPntVecR", self.AdvOp)
12091 if Parameters: anObj.SetParameters(Parameters)
12092 self._autoPublish(anObj, theName, "dividedDisk")
12095 ## Builds a cylinder prepared for hexa meshes
12096 # @param theR Radius of the cylinder
12097 # @param theH Height of the cylinder
12098 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12099 # @param theName Object name; when specified, this parameter is used
12100 # for result publication in the study. Otherwise, if automatic
12101 # publication is switched on, default value is used for result name.
12103 # @return New GEOM_Object, containing the created shape.
12105 # @ref tui_creation_dividedcylinder "Example"
12106 def MakeDividedCylinder(self, theR, theH, thePattern, theName=None):
12108 Builds a cylinder prepared for hexa meshes
12111 theR Radius of the cylinder
12112 theH Height of the cylinder
12113 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12114 theName Object name; when specified, this parameter is used
12115 for result publication in the study. Otherwise, if automatic
12116 publication is switched on, default value is used for result name.
12119 New GEOM_Object, containing the created shape.
12121 theR, theH, Parameters = ParseParameters(theR, theH)
12122 anObj = self.AdvOp.MakeDividedCylinder(theR, theH, thePattern)
12123 RaiseIfFailed("MakeDividedCylinder", self.AdvOp)
12124 if Parameters: anObj.SetParameters(Parameters)
12125 self._autoPublish(anObj, theName, "dividedCylinder")
12128 #@@ insert new functions before this line @@ do not remove this line @@#
12130 # end of l4_advanced
12133 ## Create a copy of the given object
12135 # @param theOriginal geometry object for copy
12136 # @param theName Object name; when specified, this parameter is used
12137 # for result publication in the study. Otherwise, if automatic
12138 # publication is switched on, default value is used for result name.
12140 # @return New GEOM_Object, containing the copied shape.
12142 # @ingroup l1_geomBuilder_auxiliary
12143 # @ref swig_MakeCopy "Example"
12144 def MakeCopy(self, theOriginal, theName=None):
12146 Create a copy of the given object
12149 theOriginal geometry object for copy
12150 theName Object name; when specified, this parameter is used
12151 for result publication in the study. Otherwise, if automatic
12152 publication is switched on, default value is used for result name.
12155 New GEOM_Object, containing the copied shape.
12157 Example of usage: Copy = geompy.MakeCopy(Box)
12159 # Example: see GEOM_TestAll.py
12160 anObj = self.InsertOp.MakeCopy(theOriginal)
12161 RaiseIfFailed("MakeCopy", self.InsertOp)
12162 self._autoPublish(anObj, theName, "copy")
12165 ## Add Path to load python scripts from
12166 # @param Path a path to load python scripts from
12167 # @ingroup l1_geomBuilder_auxiliary
12168 def addPath(self,Path):
12170 Add Path to load python scripts from
12173 Path a path to load python scripts from
12175 if (sys.path.count(Path) < 1):
12176 sys.path.append(Path)
12180 ## Load marker texture from the file
12181 # @param Path a path to the texture file
12182 # @return unique texture identifier
12183 # @ingroup l1_geomBuilder_auxiliary
12184 def LoadTexture(self, Path):
12186 Load marker texture from the file
12189 Path a path to the texture file
12192 unique texture identifier
12194 # Example: see GEOM_TestAll.py
12195 ID = self.InsertOp.LoadTexture(Path)
12196 RaiseIfFailed("LoadTexture", self.InsertOp)
12199 ## Get internal name of the object based on its study entry
12200 # @note This method does not provide an unique identifier of the geometry object.
12201 # @note This is internal function of GEOM component, though it can be used outside it for
12202 # appropriate reason (e.g. for identification of geometry object).
12203 # @param obj geometry object
12204 # @return unique object identifier
12205 # @ingroup l1_geomBuilder_auxiliary
12206 def getObjectID(self, obj):
12208 Get internal name of the object based on its study entry.
12209 Note: this method does not provide an unique identifier of the geometry object.
12210 It is an internal function of GEOM component, though it can be used outside GEOM for
12211 appropriate reason (e.g. for identification of geometry object).
12214 obj geometry object
12217 unique object identifier
12220 entry = salome.ObjectToID(obj)
12221 if entry is not None:
12222 lst = entry.split(":")
12224 ID = lst[-1] # -1 means last item in the list
12225 return "GEOM_" + ID
12230 ## Add marker texture. @a Width and @a Height parameters
12231 # specify width and height of the texture in pixels.
12232 # If @a RowData is @c True, @a Texture parameter should represent texture data
12233 # packed into the byte array. If @a RowData is @c False (default), @a Texture
12234 # parameter should be unpacked string, in which '1' symbols represent opaque
12235 # pixels and '0' represent transparent pixels of the texture bitmap.
12237 # @param Width texture width in pixels
12238 # @param Height texture height in pixels
12239 # @param Texture texture data
12240 # @param RowData if @c True, @a Texture data are packed in the byte stream
12241 # @return unique texture identifier
12242 # @ingroup l1_geomBuilder_auxiliary
12243 def AddTexture(self, Width, Height, Texture, RowData=False):
12245 Add marker texture. Width and Height parameters
12246 specify width and height of the texture in pixels.
12247 If RowData is True, Texture parameter should represent texture data
12248 packed into the byte array. If RowData is False (default), Texture
12249 parameter should be unpacked string, in which '1' symbols represent opaque
12250 pixels and '0' represent transparent pixels of the texture bitmap.
12253 Width texture width in pixels
12254 Height texture height in pixels
12255 Texture texture data
12256 RowData if True, Texture data are packed in the byte stream
12259 return unique texture identifier
12261 if not RowData: Texture = PackData(Texture)
12262 ID = self.InsertOp.AddTexture(Width, Height, Texture)
12263 RaiseIfFailed("AddTexture", self.InsertOp)
12267 # Register the new proxy for GEOM_Gen
12268 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
12270 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
12271 # interface to GEOM operations.
12276 # salome.salome_init()
12277 # from salome.geom import geomBuilder
12278 # geompy = geomBuilder.New(salome.myStudy)
12280 # @param study SALOME study, generally obtained by salome.myStudy.
12281 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12282 # @return geomBuilder instance
12283 def New( study, instance=None):
12285 Create a new geomBuilder instance.The geomBuilder class provides the Python
12286 interface to GEOM operations.
12290 salome.salome_init()
12291 from salome.geom import geomBuilder
12292 geompy = geomBuilder.New(salome.myStudy)
12295 study SALOME study, generally obtained by salome.myStudy.
12296 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12298 geomBuilder instance
12300 #print "New geomBuilder ", study, instance
12307 geom = geomBuilder()
12308 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
12309 geom.init_geom(study)