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 ## \a 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
195 ## @defgroup l2_field Field on Geometry
199 # initialize SALOME session in try/except block
200 # to avoid problems in some cases, e.g. when generating documentation
208 from salome_notebook import *
214 from salome.geom.gsketcher import Sketcher3D, Sketcher2D
217 def _toListOfNames(_names, _size=-1):
220 if type(_names) in [types.ListType, types.TupleType]:
221 for i in _names: l.append(i)
224 if l and len(l) < _size:
225 for i in range(len(l), _size): l.append("%s_%d"%(l[0],i))
228 ## Raise an Error, containing the Method_name, if Operation is Failed
229 ## @ingroup l1_geomBuilder_auxiliary
230 def RaiseIfFailed (Method_name, Operation):
231 if Operation.IsDone() == 0 and Operation.GetErrorCode() != "NOT_FOUND_ANY":
232 Operation.AbortOperation()
233 raise RuntimeError, Method_name + " : " + Operation.GetErrorCode()
235 Operation.FinishOperation()
238 ## Return list of variables value from salome notebook
239 ## @ingroup l1_geomBuilder_auxiliary
240 def ParseParameters(*parameters):
243 for parameter in parameters:
244 if isinstance(parameter, list):
245 lResults = ParseParameters(*parameter)
246 if len(lResults) > 0:
247 Result.append(lResults[:-1])
248 StringResult += lResults[-1].split(":")
252 if isinstance(parameter,str):
253 if notebook.isVariable(parameter):
254 Result.append(notebook.get(parameter))
256 raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!"
259 Result.append(parameter)
261 StringResult.append(str(parameter))
265 Result.append(":".join(StringResult))
267 Result = ":".join(StringResult)
270 ## Return list of variables value from salome notebook
271 ## @ingroup l1_geomBuilder_auxiliary
275 for parameter in list:
276 if isinstance(parameter,str) and notebook.isVariable(parameter):
277 Result.append(str(notebook.get(parameter)))
280 Result.append(str(parameter))
283 StringResult = StringResult + str(parameter)
284 StringResult = StringResult + ":"
286 StringResult = StringResult[:len(StringResult)-1]
287 return Result, StringResult
289 ## Return list of variables value from salome notebook
290 ## @ingroup l1_geomBuilder_auxiliary
291 def ParseSketcherCommand(command):
294 sections = command.split(":")
295 for section in sections:
296 parameters = section.split(" ")
298 for parameter in parameters:
299 if paramIndex > 1 and parameter.find("'") != -1:
300 parameter = parameter.replace("'","")
301 if notebook.isVariable(parameter):
302 Result = Result + str(notebook.get(parameter)) + " "
305 raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!"
309 Result = Result + str(parameter) + " "
312 StringResult = StringResult + parameter
313 StringResult = StringResult + ":"
315 paramIndex = paramIndex + 1
317 Result = Result[:len(Result)-1] + ":"
319 Result = Result[:len(Result)-1]
320 return Result, StringResult
322 ## Helper function which can be used to pack the passed string to the byte data.
323 ## Only '1' an '0' symbols are valid for the string. The missing bits are replaced by zeroes.
324 ## If the string contains invalid symbol (neither '1' nor '0'), the function raises an exception.
327 ## val = PackData("10001110") # val = 0xAE
328 ## val = PackData("1") # val = 0x80
330 ## @param data unpacked data - a string containing '1' and '0' symbols
331 ## @return data packed to the byte stream
332 ## @ingroup l1_geomBuilder_auxiliary
335 Helper function which can be used to pack the passed string to the byte data.
336 Only '1' an '0' symbols are valid for the string. The missing bits are replaced by zeroes.
337 If the string contains invalid symbol (neither '1' nor '0'), the function raises an exception.
340 data unpacked data - a string containing '1' and '0' symbols
343 data packed to the byte stream
346 val = PackData("10001110") # val = 0xAE
347 val = PackData("1") # val = 0x80
350 if len(data)%8: bytes += 1
352 for b in range(bytes):
353 d = data[b*8:(b+1)*8]
358 if d[i] == "1": val += 1
360 raise "Invalid symbol %s" % d[i]
367 ## Read bitmap texture from the text file.
368 ## In that file, any non-zero symbol represents '1' opaque pixel of the bitmap.
369 ## A zero symbol ('0') represents transparent pixel of the texture bitmap.
370 ## The function returns width and height of the pixmap in pixels and byte stream representing
371 ## texture bitmap itself.
373 ## This function can be used to read the texture to the byte stream in order to pass it to
374 ## the AddTexture() function of geomBuilder class.
377 ## from salome.geom import geomBuilder
378 ## geompy = geomBuilder.New(salome.myStudy)
379 ## texture = geompy.readtexture('mytexture.dat')
380 ## texture = geompy.AddTexture(*texture)
381 ## obj.SetMarkerTexture(texture)
383 ## @param fname texture file name
384 ## @return sequence of tree values: texture's width, height in pixels and its byte stream
385 ## @ingroup l1_geomBuilder_auxiliary
386 def ReadTexture(fname):
388 Read bitmap texture from the text file.
389 In that file, any non-zero symbol represents '1' opaque pixel of the bitmap.
390 A zero symbol ('0') represents transparent pixel of the texture bitmap.
391 The function returns width and height of the pixmap in pixels and byte stream representing
392 texture bitmap itself.
393 This function can be used to read the texture to the byte stream in order to pass it to
394 the AddTexture() function of geomBuilder class.
397 fname texture file name
400 sequence of tree values: texture's width, height in pixels and its byte stream
403 from salome.geom import geomBuilder
404 geompy = geomBuilder.New(salome.myStudy)
405 texture = geompy.readtexture('mytexture.dat')
406 texture = geompy.AddTexture(*texture)
407 obj.SetMarkerTexture(texture)
411 lines = [ l.strip() for l in f.readlines()]
414 if lines: maxlen = max([len(x) for x in lines])
416 if maxlen%8: lenbytes += 1
420 lenline = (len(line)/8+1)*8
423 lenline = (len(line)/8)*8
425 for i in range(lenline/8):
428 if i*8+j < len(line) and line[i*8+j] != "0": byte += "1"
431 bytedata += PackData(byte)
433 for i in range(lenline/8, lenbytes):
434 bytedata += PackData("0")
436 return lenbytes*8, len(lines), bytedata
441 ## Returns a long value from enumeration type
442 # Can be used for CORBA enumerator types like GEOM.shape_type
443 # @param theItem enumeration type
444 # @ingroup l1_geomBuilder_auxiliary
445 def EnumToLong(theItem):
447 Returns a long value from enumeration type
448 Can be used for CORBA enumerator types like geomBuilder.ShapeType
451 theItem enumeration type
454 if hasattr(theItem, "_v"): ret = theItem._v
457 ## Information about closed/unclosed state of shell or wire
458 # @ingroup l1_geomBuilder_auxiliary
461 Information about closed/unclosed state of shell or wire
467 ##! Private class used to bind calls of plugin operations to geomBuilder
468 class PluginOperation:
469 def __init__(self, operation, function):
470 self.operation = operation
471 self.function = function
474 def __call__(self, *args):
475 res = self.function(self.operation, *args)
476 RaiseIfFailed(self.function.__name__, self.operation)
479 # Warning: geom is a singleton
485 class geomBuilder(object, GEOM._objref_GEOM_Gen):
487 ## Enumeration ShapeType as a dictionary. \n
488 ## Topological types of shapes (like Open Cascade types). See GEOM::shape_type for details.
489 # @ingroup l1_geomBuilder_auxiliary
490 ShapeType = {"AUTO":-1, "COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
492 ## Kinds of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
493 # and a list of parameters, describing the shape.
494 # List of parameters, describing the shape:
495 # - COMPOUND: [nb_solids nb_faces nb_edges nb_vertices]
496 # - COMPSOLID: [nb_solids nb_faces nb_edges nb_vertices]
498 # - SHELL: [info.CLOSED / info.UNCLOSED nb_faces nb_edges nb_vertices]
500 # - WIRE: [info.CLOSED / info.UNCLOSED nb_edges nb_vertices]
502 # - SPHERE: [xc yc zc R]
503 # - CYLINDER: [xb yb zb dx dy dz R H]
504 # - BOX: [xc yc zc ax ay az]
505 # - ROTATED_BOX: [xc yc zc zx zy zz xx xy xz ax ay az]
506 # - TORUS: [xc yc zc dx dy dz R_1 R_2]
507 # - CONE: [xb yb zb dx dy dz R_1 R_2 H]
508 # - POLYHEDRON: [nb_faces nb_edges nb_vertices]
509 # - SOLID: [nb_faces nb_edges nb_vertices]
511 # - SPHERE2D: [xc yc zc R]
512 # - CYLINDER2D: [xb yb zb dx dy dz R H]
513 # - TORUS2D: [xc yc zc dx dy dz R_1 R_2]
514 # - CONE2D: [xc yc zc dx dy dz R_1 R_2 H]
515 # - DISK_CIRCLE: [xc yc zc dx dy dz R]
516 # - DISK_ELLIPSE: [xc yc zc dx dy dz R_1 R_2]
517 # - POLYGON: [xo yo zo dx dy dz nb_edges nb_vertices]
518 # - PLANE: [xo yo zo dx dy dz]
519 # - PLANAR: [xo yo zo dx dy dz nb_edges nb_vertices]
520 # - FACE: [nb_edges nb_vertices]
522 # - CIRCLE: [xc yc zc dx dy dz R]
523 # - ARC_CIRCLE: [xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2]
524 # - ELLIPSE: [xc yc zc dx dy dz R_1 R_2]
525 # - ARC_ELLIPSE: [xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2]
526 # - LINE: [xo yo zo dx dy dz]
527 # - SEGMENT: [x1 y1 z1 x2 y2 z2]
528 # - EDGE: [nb_vertices]
531 # @ingroup l1_geomBuilder_auxiliary
532 kind = GEOM.GEOM_IKindOfShape
539 #print "==== __new__ ", engine, geom, doLcc, created
541 # geom engine is either retrieved from engine, or created
543 # Following test avoids a recursive loop
546 # geom engine not created: existing engine found
548 if doLcc and not created:
550 # FindOrLoadComponent called:
551 # 1. CORBA resolution of server
552 # 2. the __new__ method is called again
553 #print "==== FindOrLoadComponent ", engine, geom, doLcc, created
554 geom = lcc.FindOrLoadComponent( "FactoryServer", "GEOM" )
557 # FindOrLoadComponent not called
559 # geomBuilder instance is created from lcc.FindOrLoadComponent
560 #print "==== super ", engine, geom, doLcc, created
561 geom = super(geomBuilder,cls).__new__(cls)
564 # geom engine not created: existing engine found
565 #print "==== existing ", engine, geom, doLcc, created
567 #print "return geom 1 ", geom
570 #print "return geom 2 ", geom
575 #print "-------- geomBuilder __init__ --- ", created, self
578 GEOM._objref_GEOM_Gen.__init__(self)
579 self.myMaxNbSubShapesAllowed = 0 # auto-publishing is disabled by default
580 self.myBuilder = None
600 ## Process object publication in the study, as follows:
601 # - if @a theName is specified (not None), the object is published in the study
602 # with this name, not taking into account "auto-publishing" option;
603 # - if @a theName is NOT specified, the object is published in the study
604 # (using default name, which can be customized using @a theDefaultName parameter)
605 # only if auto-publishing is switched on.
607 # @param theObj object, a subject for publishing
608 # @param theName object name for study
609 # @param theDefaultName default name for the auto-publishing
611 # @sa addToStudyAuto()
612 def _autoPublish(self, theObj, theName, theDefaultName="noname"):
614 def _item_name(_names, _defname, _idx=-1):
615 if not _names: _names = _defname
616 if type(_names) in [types.ListType, types.TupleType]:
618 if _idx >= len(_names) or not _names[_idx]:
619 if type(_defname) not in [types.ListType, types.TupleType]:
620 _name = "%s_%d"%(_defname, _idx+1)
621 elif len(_defname) > 0 and _idx >= 0 and _idx < len(_defname):
622 _name = _defname[_idx]
624 _name = "%noname_%d"%(dn, _idx+1)
630 # must be wrong usage
635 _name = "%s_%d"%(_names, _idx+1)
641 def _publish( _name, _obj ):
643 if isinstance( _obj, GEOM._objref_GEOM_Field ):
644 fatherObj = _obj.GetShape()
645 elif isinstance( _obj, GEOM._objref_GEOM_FieldStep ):
646 fatherObj = _obj.GetField()
647 elif not _obj.IsMainShape():
648 fatherObj = _obj.GetMainShape()
650 if fatherObj and fatherObj.GetStudyEntry():
651 self.addToStudyInFather(fatherObj, _obj, _name)
653 self.addToStudy(_obj, _name)
659 if not theName and not self.myMaxNbSubShapesAllowed:
660 return # nothing to do: auto-publishing is disabled
661 if not theName and not theDefaultName:
662 return # neither theName nor theDefaultName is given
664 if type(theObj) in [types.ListType, types.TupleType]:
665 # list of objects is being published
668 if not obj: continue # bad object
669 name = _item_name(theName, theDefaultName, idx)
670 _publish( name, obj )
672 if not theName and idx == self.myMaxNbSubShapesAllowed: break
676 # single object is published
677 name = _item_name(theName, theDefaultName)
678 _publish( name, theObj )
681 ## @addtogroup l1_geomBuilder_auxiliary
683 def init_geom(self,theStudy):
684 self.myStudy = theStudy
685 self.myStudyId = self.myStudy._get_StudyId()
686 self.myBuilder = self.myStudy.NewBuilder()
687 self.father = self.myStudy.FindComponent("GEOM")
688 if self.father is None:
689 self.father = self.myBuilder.NewComponent("GEOM")
690 A1 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributeName")
691 FName = A1._narrow(SALOMEDS.AttributeName)
692 FName.SetValue("Geometry")
693 A2 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributePixMap")
694 aPixmap = A2._narrow(SALOMEDS.AttributePixMap)
695 aPixmap.SetPixMap("ICON_OBJBROWSER_Geometry")
696 self.myBuilder.DefineComponentInstance(self.father,self)
698 self.BasicOp = self.GetIBasicOperations (self.myStudyId)
699 self.CurvesOp = self.GetICurvesOperations (self.myStudyId)
700 self.PrimOp = self.GetI3DPrimOperations (self.myStudyId)
701 self.ShapesOp = self.GetIShapesOperations (self.myStudyId)
702 self.HealOp = self.GetIHealingOperations (self.myStudyId)
703 self.InsertOp = self.GetIInsertOperations (self.myStudyId)
704 self.BoolOp = self.GetIBooleanOperations (self.myStudyId)
705 self.TrsfOp = self.GetITransformOperations(self.myStudyId)
706 self.LocalOp = self.GetILocalOperations (self.myStudyId)
707 self.MeasuOp = self.GetIMeasureOperations (self.myStudyId)
708 self.BlocksOp = self.GetIBlocksOperations (self.myStudyId)
709 self.GroupOp = self.GetIGroupOperations (self.myStudyId)
710 self.FieldOp = self.GetIFieldOperations (self.myStudyId)
712 # The below line is a right way to map all plugin functions to geomBuilder,
713 # but AdvancedOperations are already mapped, that is why this line is commented
714 # and presents here only as an axample
715 #self.AdvOp = self.GetPluginOperations (self.myStudyId, "AdvancedEngine")
717 # self.AdvOp is used by functions MakePipeTShape*, MakeDividedDisk, etc.
718 self.AdvOp = GEOM._objref_GEOM_Gen.GetPluginOperations (self, self.myStudyId, "AdvancedEngine")
720 # set GEOM as root in the use case tree
721 self.myUseCaseBuilder = self.myStudy.GetUseCaseBuilder()
722 self.myUseCaseBuilder.SetRootCurrent()
723 self.myUseCaseBuilder.Append(self.father)
726 def GetPluginOperations(self, studyID, libraryName):
727 op = GEOM._objref_GEOM_Gen.GetPluginOperations(self, studyID, libraryName)
729 # bind methods of operations to self
730 methods = op.__class__.__dict__['__methods__']
731 avoid_methods = self.BasicOp.__class__.__dict__['__methods__']
732 for meth_name in methods:
733 if not meth_name in avoid_methods: # avoid basic methods
734 function = getattr(op.__class__, meth_name)
735 if callable(function):
736 #self.__dict__[meth_name] = self.__PluginOperation(op, function)
737 self.__dict__[meth_name] = PluginOperation(op, function)
740 ## Enable / disable results auto-publishing
742 # The automatic publishing is managed in the following way:
743 # - if @a maxNbSubShapes = 0, automatic publishing is disabled.
744 # - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
745 # maximum number of sub-shapes allowed for publishing is unlimited; any negative
746 # value passed as parameter has the same effect.
747 # - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
748 # maximum number of sub-shapes allowed for publishing is set to specified value.
750 # @param maxNbSubShapes maximum number of sub-shapes allowed for publishing.
751 # @ingroup l1_publish_data
752 def addToStudyAuto(self, maxNbSubShapes=-1):
754 Enable / disable results auto-publishing
756 The automatic publishing is managed in the following way:
757 - if @a maxNbSubShapes = 0, automatic publishing is disabled;
758 - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
759 maximum number of sub-shapes allowed for publishing is unlimited; any negative
760 value passed as parameter has the same effect.
761 - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
762 maximum number of sub-shapes allowed for publishing is set to this value.
765 maxNbSubShapes maximum number of sub-shapes allowed for publishing.
768 geompy.addToStudyAuto() # enable auto-publishing
769 geompy.MakeBoxDXDYDZ(100) # box is created and published with default name
770 geompy.addToStudyAuto(0) # disable auto-publishing
772 self.myMaxNbSubShapesAllowed = max(-1, maxNbSubShapes)
775 ## Dump component to the Python script
776 # This method overrides IDL function to allow default values for the parameters.
777 def DumpPython(self, theStudy, theIsPublished=True, theIsMultiFile=True):
779 Dump component to the Python script
780 This method overrides IDL function to allow default values for the parameters.
782 return GEOM._objref_GEOM_Gen.DumpPython(self, theStudy, theIsPublished, theIsMultiFile)
784 ## Get name for sub-shape aSubObj of shape aMainObj
786 # @ref swig_SubShapeName "Example"
787 def SubShapeName(self,aSubObj, aMainObj):
789 Get name for sub-shape aSubObj of shape aMainObj
791 # Example: see GEOM_TestAll.py
793 #aSubId = orb.object_to_string(aSubObj)
794 #aMainId = orb.object_to_string(aMainObj)
795 #index = gg.getIndexTopology(aSubId, aMainId)
796 #name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
797 index = self.ShapesOp.GetTopologyIndex(aMainObj, aSubObj)
798 name = self.ShapesOp.GetShapeTypeString(aSubObj) + "_%d"%(index)
801 ## Publish in study aShape with name aName
803 # \param aShape the shape to be published
804 # \param aName the name for the shape
805 # \param doRestoreSubShapes if True, finds and publishes also
806 # sub-shapes of <VAR>aShape</VAR>, corresponding to its arguments
807 # and published sub-shapes of arguments
808 # \param theArgs,theFindMethod,theInheritFirstArg see RestoreSubShapes() for
809 # these arguments description
810 # \return study entry of the published shape in form of string
812 # @ingroup l1_publish_data
813 # @ref swig_all_addtostudy "Example"
814 def addToStudy(self, aShape, aName, doRestoreSubShapes=False,
815 theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False):
817 Publish in study aShape with name aName
820 aShape the shape to be published
821 aName the name for the shape
822 doRestoreSubShapes if True, finds and publishes also
823 sub-shapes of aShape, corresponding to its arguments
824 and published sub-shapes of arguments
825 theArgs,theFindMethod,theInheritFirstArg see geompy.RestoreSubShapes() for
826 these arguments description
829 study entry of the published shape in form of string
832 id_block1 = geompy.addToStudy(Block1, "Block 1")
834 # Example: see GEOM_TestAll.py
836 aSObject = self.AddInStudy(self.myStudy, aShape, aName, None)
837 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
838 if doRestoreSubShapes:
839 self.RestoreSubShapesSO(self.myStudy, aSObject, theArgs,
840 theFindMethod, theInheritFirstArg, True )
842 print "addToStudy() failed"
844 return aShape.GetStudyEntry()
846 ## Publish in study aShape with name aName as sub-object of previously published aFather
847 # \param aFather previously published object
848 # \param aShape the shape to be published as sub-object of <VAR>aFather</VAR>
849 # \param aName the name for the shape
851 # \return study entry of the published shape in form of string
853 # @ingroup l1_publish_data
854 # @ref swig_all_addtostudyInFather "Example"
855 def addToStudyInFather(self, aFather, aShape, aName):
857 Publish in study aShape with name aName as sub-object of previously published aFather
860 aFather previously published object
861 aShape the shape to be published as sub-object of aFather
862 aName the name for the shape
865 study entry of the published shape in form of string
867 # Example: see GEOM_TestAll.py
869 aSObject = self.AddInStudy(self.myStudy, aShape, aName, aFather)
870 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
872 print "addToStudyInFather() failed"
874 return aShape.GetStudyEntry()
876 ## Unpublish object in study
878 # \param obj the object to be unpublished
879 def hideInStudy(self, obj):
881 Unpublish object in study
884 obj the object to be unpublished
886 ior = salome.orb.object_to_string(obj)
887 aSObject = self.myStudy.FindObjectIOR(ior)
888 if aSObject is not None:
889 genericAttribute = self.myBuilder.FindOrCreateAttribute(aSObject, "AttributeDrawable")
890 drwAttribute = genericAttribute._narrow(SALOMEDS.AttributeDrawable)
891 drwAttribute.SetDrawable(False)
894 # end of l1_geomBuilder_auxiliary
897 ## @addtogroup l3_restore_ss
900 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
901 # To be used from python scripts out of addToStudy() (non-default usage)
902 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
903 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
904 # If this list is empty, all operation arguments will be published
905 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
906 # their sub-shapes. Value from enumeration GEOM.find_shape_method.
907 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
908 # Do not publish sub-shapes in place of arguments, but only
909 # in place of sub-shapes of the first argument,
910 # because the whole shape corresponds to the first argument.
911 # Mainly to be used after transformations, but it also can be
912 # usefull after partition with one object shape, and some other
913 # operations, where only the first argument has to be considered.
914 # If theObject has only one argument shape, this flag is automatically
915 # considered as True, not regarding really passed value.
916 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
917 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
918 # \return list of published sub-shapes
920 # @ref tui_restore_prs_params "Example"
921 def RestoreSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
922 theInheritFirstArg=False, theAddPrefix=True):
924 Publish sub-shapes, standing for arguments and sub-shapes of arguments
925 To be used from python scripts out of geompy.addToStudy (non-default usage)
928 theObject published GEOM.GEOM_Object, arguments of which will be published
929 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
930 If this list is empty, all operation arguments will be published
931 theFindMethod method to search sub-shapes, corresponding to arguments and
932 their sub-shapes. Value from enumeration GEOM.find_shape_method.
933 theInheritFirstArg set properties of the first argument for theObject.
934 Do not publish sub-shapes in place of arguments, but only
935 in place of sub-shapes of the first argument,
936 because the whole shape corresponds to the first argument.
937 Mainly to be used after transformations, but it also can be
938 usefull after partition with one object shape, and some other
939 operations, where only the first argument has to be considered.
940 If theObject has only one argument shape, this flag is automatically
941 considered as True, not regarding really passed value.
942 theAddPrefix add prefix "from_" to names of restored sub-shapes,
943 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
945 list of published sub-shapes
947 # Example: see GEOM_TestAll.py
948 return self.RestoreSubShapesO(self.myStudy, theObject, theArgs,
949 theFindMethod, theInheritFirstArg, theAddPrefix)
951 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
952 # To be used from python scripts out of addToStudy() (non-default usage)
953 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
954 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
955 # If this list is empty, all operation arguments will be published
956 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
957 # their sub-shapes. Value from enumeration GEOM::find_shape_method.
958 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
959 # Do not publish sub-shapes in place of arguments, but only
960 # in place of sub-shapes of the first argument,
961 # because the whole shape corresponds to the first argument.
962 # Mainly to be used after transformations, but it also can be
963 # usefull after partition with one object shape, and some other
964 # operations, where only the first argument has to be considered.
965 # If theObject has only one argument shape, this flag is automatically
966 # considered as True, not regarding really passed value.
967 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
968 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
969 # \return list of published sub-shapes
971 # @ref tui_restore_prs_params "Example"
972 def RestoreGivenSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
973 theInheritFirstArg=False, theAddPrefix=True):
975 Publish sub-shapes, standing for arguments and sub-shapes of arguments
976 To be used from python scripts out of geompy.addToStudy() (non-default usage)
979 theObject published GEOM.GEOM_Object, arguments of which will be published
980 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
981 If this list is empty, all operation arguments will be published
982 theFindMethod method to search sub-shapes, corresponding to arguments and
983 their sub-shapes. Value from enumeration GEOM::find_shape_method.
984 theInheritFirstArg set properties of the first argument for theObject.
985 Do not publish sub-shapes in place of arguments, but only
986 in place of sub-shapes of the first argument,
987 because the whole shape corresponds to the first argument.
988 Mainly to be used after transformations, but it also can be
989 usefull after partition with one object shape, and some other
990 operations, where only the first argument has to be considered.
991 If theObject has only one argument shape, this flag is automatically
992 considered as True, not regarding really passed value.
993 theAddPrefix add prefix "from_" to names of restored sub-shapes,
994 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
997 list of published sub-shapes
999 # Example: see GEOM_TestAll.py
1000 return self.RestoreGivenSubShapesO(self.myStudy, theObject, theArgs,
1001 theFindMethod, theInheritFirstArg, theAddPrefix)
1003 # end of l3_restore_ss
1006 ## @addtogroup l3_basic_go
1009 ## Create point by three coordinates.
1010 # @param theX The X coordinate of the point.
1011 # @param theY The Y coordinate of the point.
1012 # @param theZ The Z coordinate of the point.
1013 # @param theName Object name; when specified, this parameter is used
1014 # for result publication in the study. Otherwise, if automatic
1015 # publication is switched on, default value is used for result name.
1017 # @return New GEOM.GEOM_Object, containing the created point.
1019 # @ref tui_creation_point "Example"
1020 def MakeVertex(self, theX, theY, theZ, theName=None):
1022 Create point by three coordinates.
1025 theX The X coordinate of the point.
1026 theY The Y coordinate of the point.
1027 theZ The Z coordinate of the point.
1028 theName Object name; when specified, this parameter is used
1029 for result publication in the study. Otherwise, if automatic
1030 publication is switched on, default value is used for result name.
1033 New GEOM.GEOM_Object, containing the created point.
1035 # Example: see GEOM_TestAll.py
1036 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1037 anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
1038 RaiseIfFailed("MakePointXYZ", self.BasicOp)
1039 anObj.SetParameters(Parameters)
1040 self._autoPublish(anObj, theName, "vertex")
1043 ## Create a point, distant from the referenced point
1044 # on the given distances along the coordinate axes.
1045 # @param theReference The referenced point.
1046 # @param theX Displacement from the referenced point along OX axis.
1047 # @param theY Displacement from the referenced point along OY axis.
1048 # @param theZ Displacement from the referenced point along OZ axis.
1049 # @param theName Object name; when specified, this parameter is used
1050 # for result publication in the study. Otherwise, if automatic
1051 # publication is switched on, default value is used for result name.
1053 # @return New GEOM.GEOM_Object, containing the created point.
1055 # @ref tui_creation_point "Example"
1056 def MakeVertexWithRef(self, theReference, theX, theY, theZ, theName=None):
1058 Create a point, distant from the referenced point
1059 on the given distances along the coordinate axes.
1062 theReference The referenced point.
1063 theX Displacement from the referenced point along OX axis.
1064 theY Displacement from the referenced point along OY axis.
1065 theZ Displacement from the referenced point along OZ axis.
1066 theName Object name; when specified, this parameter is used
1067 for result publication in the study. Otherwise, if automatic
1068 publication is switched on, default value is used for result name.
1071 New GEOM.GEOM_Object, containing the created point.
1073 # Example: see GEOM_TestAll.py
1074 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1075 anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
1076 RaiseIfFailed("MakePointWithReference", self.BasicOp)
1077 anObj.SetParameters(Parameters)
1078 self._autoPublish(anObj, theName, "vertex")
1081 ## Create a point, corresponding to the given parameter on the given curve.
1082 # @param theRefCurve The referenced curve.
1083 # @param theParameter Value of parameter on the referenced curve.
1084 # @param theName Object name; when specified, this parameter is used
1085 # for result publication in the study. Otherwise, if automatic
1086 # publication is switched on, default value is used for result name.
1088 # @return New GEOM.GEOM_Object, containing the created point.
1090 # @ref tui_creation_point "Example"
1091 def MakeVertexOnCurve(self, theRefCurve, theParameter, theName=None):
1093 Create a point, corresponding to the given parameter on the given curve.
1096 theRefCurve The referenced curve.
1097 theParameter Value of parameter on the referenced curve.
1098 theName Object name; when specified, this parameter is used
1099 for result publication in the study. Otherwise, if automatic
1100 publication is switched on, default value is used for result name.
1103 New GEOM.GEOM_Object, containing the created point.
1106 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25)
1108 # Example: see GEOM_TestAll.py
1109 theParameter, Parameters = ParseParameters(theParameter)
1110 anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter)
1111 RaiseIfFailed("MakePointOnCurve", self.BasicOp)
1112 anObj.SetParameters(Parameters)
1113 self._autoPublish(anObj, theName, "vertex")
1116 ## Create a point by projection give coordinates on the given curve
1117 # @param theRefCurve The referenced curve.
1118 # @param theX X-coordinate in 3D space
1119 # @param theY Y-coordinate in 3D space
1120 # @param theZ Z-coordinate in 3D space
1121 # @param theName Object name; when specified, this parameter is used
1122 # for result publication in the study. Otherwise, if automatic
1123 # publication is switched on, default value is used for result name.
1125 # @return New GEOM.GEOM_Object, containing the created point.
1127 # @ref tui_creation_point "Example"
1128 def MakeVertexOnCurveByCoord(self, theRefCurve, theX, theY, theZ, theName=None):
1130 Create a point by projection give coordinates on the given curve
1133 theRefCurve The referenced curve.
1134 theX X-coordinate in 3D space
1135 theY Y-coordinate in 3D space
1136 theZ Z-coordinate in 3D space
1137 theName Object name; when specified, this parameter is used
1138 for result publication in the study. Otherwise, if automatic
1139 publication is switched on, default value is used for result name.
1142 New GEOM.GEOM_Object, containing the created point.
1145 p_on_arc3 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10)
1147 # Example: see GEOM_TestAll.py
1148 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1149 anObj = self.BasicOp.MakePointOnCurveByCoord(theRefCurve, theX, theY, theZ)
1150 RaiseIfFailed("MakeVertexOnCurveByCoord", self.BasicOp)
1151 anObj.SetParameters(Parameters)
1152 self._autoPublish(anObj, theName, "vertex")
1155 ## Create a point, corresponding to the given length on the given curve.
1156 # @param theRefCurve The referenced curve.
1157 # @param theLength Length on the referenced curve. It can be negative.
1158 # @param theStartPoint Point allowing to choose the direction for the calculation
1159 # of the length. If None, start from the first point of theRefCurve.
1160 # @param theName Object name; when specified, this parameter is used
1161 # for result publication in the study. Otherwise, if automatic
1162 # publication is switched on, default value is used for result name.
1164 # @return New GEOM.GEOM_Object, containing the created point.
1166 # @ref tui_creation_point "Example"
1167 def MakeVertexOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
1169 Create a point, corresponding to the given length on the given curve.
1172 theRefCurve The referenced curve.
1173 theLength Length on the referenced curve. It can be negative.
1174 theStartPoint Point allowing to choose the direction for the calculation
1175 of the length. If None, start from the first point of theRefCurve.
1176 theName Object name; when specified, this parameter is used
1177 for result publication in the study. Otherwise, if automatic
1178 publication is switched on, default value is used for result name.
1181 New GEOM.GEOM_Object, containing the created point.
1183 # Example: see GEOM_TestAll.py
1184 theLength, Parameters = ParseParameters(theLength)
1185 anObj = self.BasicOp.MakePointOnCurveByLength(theRefCurve, theLength, theStartPoint)
1186 RaiseIfFailed("MakePointOnCurveByLength", self.BasicOp)
1187 anObj.SetParameters(Parameters)
1188 self._autoPublish(anObj, theName, "vertex")
1191 ## Create a point, corresponding to the given parameters on the
1193 # @param theRefSurf The referenced surface.
1194 # @param theUParameter Value of U-parameter on the referenced surface.
1195 # @param theVParameter Value of V-parameter on the referenced surface.
1196 # @param theName Object name; when specified, this parameter is used
1197 # for result publication in the study. Otherwise, if automatic
1198 # publication is switched on, default value is used for result name.
1200 # @return New GEOM.GEOM_Object, containing the created point.
1202 # @ref swig_MakeVertexOnSurface "Example"
1203 def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter, theName=None):
1205 Create a point, corresponding to the given parameters on the
1209 theRefSurf The referenced surface.
1210 theUParameter Value of U-parameter on the referenced surface.
1211 theVParameter Value of V-parameter on the referenced surface.
1212 theName Object name; when specified, this parameter is used
1213 for result publication in the study. Otherwise, if automatic
1214 publication is switched on, default value is used for result name.
1217 New GEOM.GEOM_Object, containing the created point.
1220 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8)
1222 theUParameter, theVParameter, Parameters = ParseParameters(theUParameter, theVParameter)
1223 # Example: see GEOM_TestAll.py
1224 anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter)
1225 RaiseIfFailed("MakePointOnSurface", self.BasicOp)
1226 anObj.SetParameters(Parameters);
1227 self._autoPublish(anObj, theName, "vertex")
1230 ## Create a point by projection give coordinates on the given surface
1231 # @param theRefSurf The referenced surface.
1232 # @param theX X-coordinate in 3D space
1233 # @param theY Y-coordinate in 3D space
1234 # @param theZ Z-coordinate in 3D space
1235 # @param theName Object name; when specified, this parameter is used
1236 # for result publication in the study. Otherwise, if automatic
1237 # publication is switched on, default value is used for result name.
1239 # @return New GEOM.GEOM_Object, containing the created point.
1241 # @ref swig_MakeVertexOnSurfaceByCoord "Example"
1242 def MakeVertexOnSurfaceByCoord(self, theRefSurf, theX, theY, theZ, theName=None):
1244 Create a point by projection give coordinates on the given surface
1247 theRefSurf The referenced surface.
1248 theX X-coordinate in 3D space
1249 theY Y-coordinate in 3D space
1250 theZ Z-coordinate in 3D space
1251 theName Object name; when specified, this parameter is used
1252 for result publication in the study. Otherwise, if automatic
1253 publication is switched on, default value is used for result name.
1256 New GEOM.GEOM_Object, containing the created point.
1259 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.)
1261 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1262 # Example: see GEOM_TestAll.py
1263 anObj = self.BasicOp.MakePointOnSurfaceByCoord(theRefSurf, theX, theY, theZ)
1264 RaiseIfFailed("MakeVertexOnSurfaceByCoord", self.BasicOp)
1265 anObj.SetParameters(Parameters);
1266 self._autoPublish(anObj, theName, "vertex")
1269 ## Create a point, which lays on the given face.
1270 # The point will lay in arbitrary place of the face.
1271 # The only condition on it is a non-zero distance to the face boundary.
1272 # Such point can be used to uniquely identify the face inside any
1273 # shape in case, when the shape does not contain overlapped faces.
1274 # @param theFace The referenced face.
1275 # @param theName Object name; when specified, this parameter is used
1276 # for result publication in the study. Otherwise, if automatic
1277 # publication is switched on, default value is used for result name.
1279 # @return New GEOM.GEOM_Object, containing the created point.
1281 # @ref swig_MakeVertexInsideFace "Example"
1282 def MakeVertexInsideFace (self, theFace, theName=None):
1284 Create a point, which lays on the given face.
1285 The point will lay in arbitrary place of the face.
1286 The only condition on it is a non-zero distance to the face boundary.
1287 Such point can be used to uniquely identify the face inside any
1288 shape in case, when the shape does not contain overlapped faces.
1291 theFace The referenced face.
1292 theName Object name; when specified, this parameter is used
1293 for result publication in the study. Otherwise, if automatic
1294 publication is switched on, default value is used for result name.
1297 New GEOM.GEOM_Object, containing the created point.
1300 p_on_face = geompy.MakeVertexInsideFace(Face)
1302 # Example: see GEOM_TestAll.py
1303 anObj = self.BasicOp.MakePointOnFace(theFace)
1304 RaiseIfFailed("MakeVertexInsideFace", self.BasicOp)
1305 self._autoPublish(anObj, theName, "vertex")
1308 ## Create a point on intersection of two lines.
1309 # @param theRefLine1, theRefLine2 The referenced lines.
1310 # @param theName Object name; when specified, this parameter is used
1311 # for result publication in the study. Otherwise, if automatic
1312 # publication is switched on, default value is used for result name.
1314 # @return New GEOM.GEOM_Object, containing the created point.
1316 # @ref swig_MakeVertexOnLinesIntersection "Example"
1317 def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2, theName=None):
1319 Create a point on intersection of two lines.
1322 theRefLine1, theRefLine2 The referenced lines.
1323 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.
1328 New GEOM.GEOM_Object, containing the created point.
1330 # Example: see GEOM_TestAll.py
1331 anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2)
1332 RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp)
1333 self._autoPublish(anObj, theName, "vertex")
1336 ## Create a tangent, corresponding to the given parameter on the given curve.
1337 # @param theRefCurve The referenced curve.
1338 # @param theParameter Value of parameter on the referenced curve.
1339 # @param 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.
1343 # @return New GEOM.GEOM_Object, containing the created tangent.
1345 # @ref swig_MakeTangentOnCurve "Example"
1346 def MakeTangentOnCurve(self, theRefCurve, theParameter, theName=None):
1348 Create a tangent, corresponding to the given parameter on the given curve.
1351 theRefCurve The referenced curve.
1352 theParameter Value of parameter on the referenced curve.
1353 theName Object name; when specified, this parameter is used
1354 for result publication in the study. Otherwise, if automatic
1355 publication is switched on, default value is used for result name.
1358 New GEOM.GEOM_Object, containing the created tangent.
1361 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7)
1363 anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter)
1364 RaiseIfFailed("MakeTangentOnCurve", self.BasicOp)
1365 self._autoPublish(anObj, theName, "tangent")
1368 ## Create a tangent plane, corresponding to the given parameter on the given face.
1369 # @param theFace The face for which tangent plane should be built.
1370 # @param theParameterV vertical value of the center point (0.0 - 1.0).
1371 # @param theParameterU horisontal value of the center point (0.0 - 1.0).
1372 # @param theTrimSize the size of plane.
1373 # @param 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.
1377 # @return New GEOM.GEOM_Object, containing the created tangent.
1379 # @ref swig_MakeTangentPlaneOnFace "Example"
1380 def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize, theName=None):
1382 Create a tangent plane, corresponding to the given parameter on the given face.
1385 theFace The face for which tangent plane should be built.
1386 theParameterV vertical value of the center point (0.0 - 1.0).
1387 theParameterU horisontal value of the center point (0.0 - 1.0).
1388 theTrimSize the size of plane.
1389 theName Object name; when specified, this parameter is used
1390 for result publication in the study. Otherwise, if automatic
1391 publication is switched on, default value is used for result name.
1394 New GEOM.GEOM_Object, containing the created tangent.
1397 an_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
1399 anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize)
1400 RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp)
1401 self._autoPublish(anObj, theName, "tangent")
1404 ## Create a vector with the given components.
1405 # @param theDX X component of the vector.
1406 # @param theDY Y component of the vector.
1407 # @param theDZ Z component of the vector.
1408 # @param theName Object name; when specified, this parameter is used
1409 # for result publication in the study. Otherwise, if automatic
1410 # publication is switched on, default value is used for result name.
1412 # @return New GEOM.GEOM_Object, containing the created vector.
1414 # @ref tui_creation_vector "Example"
1415 def MakeVectorDXDYDZ(self, theDX, theDY, theDZ, theName=None):
1417 Create a vector with the given components.
1420 theDX X component of the vector.
1421 theDY Y component of the vector.
1422 theDZ Z component of the vector.
1423 theName Object name; when specified, this parameter is used
1424 for result publication in the study. Otherwise, if automatic
1425 publication is switched on, default value is used for result name.
1428 New GEOM.GEOM_Object, containing the created vector.
1430 # Example: see GEOM_TestAll.py
1431 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
1432 anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
1433 RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp)
1434 anObj.SetParameters(Parameters)
1435 self._autoPublish(anObj, theName, "vector")
1438 ## Create a vector between two points.
1439 # @param thePnt1 Start point for the vector.
1440 # @param thePnt2 End point for the vector.
1441 # @param theName Object name; when specified, this parameter is used
1442 # for result publication in the study. Otherwise, if automatic
1443 # publication is switched on, default value is used for result name.
1445 # @return New GEOM.GEOM_Object, containing the created vector.
1447 # @ref tui_creation_vector "Example"
1448 def MakeVector(self, thePnt1, thePnt2, theName=None):
1450 Create a vector between two points.
1453 thePnt1 Start point for the vector.
1454 thePnt2 End point for the vector.
1455 theName Object name; when specified, this parameter is used
1456 for result publication in the study. Otherwise, if automatic
1457 publication is switched on, default value is used for result name.
1460 New GEOM.GEOM_Object, containing the created vector.
1462 # Example: see GEOM_TestAll.py
1463 anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2)
1464 RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp)
1465 self._autoPublish(anObj, theName, "vector")
1468 ## Create a line, passing through the given point
1469 # and parrallel to the given direction
1470 # @param thePnt Point. The resulting line will pass through it.
1471 # @param theDir Direction. The resulting line will be parallel to it.
1472 # @param theName Object name; when specified, this parameter is used
1473 # for result publication in the study. Otherwise, if automatic
1474 # publication is switched on, default value is used for result name.
1476 # @return New GEOM.GEOM_Object, containing the created line.
1478 # @ref tui_creation_line "Example"
1479 def MakeLine(self, thePnt, theDir, theName=None):
1481 Create a line, passing through the given point
1482 and parrallel to the given direction
1485 thePnt Point. The resulting line will pass through it.
1486 theDir Direction. The resulting line will be parallel to it.
1487 theName Object name; when specified, this parameter is used
1488 for result publication in the study. Otherwise, if automatic
1489 publication is switched on, default value is used for result name.
1492 New GEOM.GEOM_Object, containing the created line.
1494 # Example: see GEOM_TestAll.py
1495 anObj = self.BasicOp.MakeLine(thePnt, theDir)
1496 RaiseIfFailed("MakeLine", self.BasicOp)
1497 self._autoPublish(anObj, theName, "line")
1500 ## Create a line, passing through the given points
1501 # @param thePnt1 First of two points, defining the line.
1502 # @param thePnt2 Second of two points, defining the line.
1503 # @param theName Object name; when specified, this parameter is used
1504 # for result publication in the study. Otherwise, if automatic
1505 # publication is switched on, default value is used for result name.
1507 # @return New GEOM.GEOM_Object, containing the created line.
1509 # @ref tui_creation_line "Example"
1510 def MakeLineTwoPnt(self, thePnt1, thePnt2, theName=None):
1512 Create a line, passing through the given points
1515 thePnt1 First of two points, defining the line.
1516 thePnt2 Second of two points, defining the line.
1517 theName Object name; when specified, this parameter is used
1518 for result publication in the study. Otherwise, if automatic
1519 publication is switched on, default value is used for result name.
1522 New GEOM.GEOM_Object, containing the created line.
1524 # Example: see GEOM_TestAll.py
1525 anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
1526 RaiseIfFailed("MakeLineTwoPnt", self.BasicOp)
1527 self._autoPublish(anObj, theName, "line")
1530 ## Create a line on two faces intersection.
1531 # @param theFace1 First of two faces, defining the line.
1532 # @param theFace2 Second of two faces, defining the line.
1533 # @param theName Object name; when specified, this parameter is used
1534 # for result publication in the study. Otherwise, if automatic
1535 # publication is switched on, default value is used for result name.
1537 # @return New GEOM.GEOM_Object, containing the created line.
1539 # @ref swig_MakeLineTwoFaces "Example"
1540 def MakeLineTwoFaces(self, theFace1, theFace2, theName=None):
1542 Create a line on two faces intersection.
1545 theFace1 First of two faces, defining the line.
1546 theFace2 Second of two faces, defining the line.
1547 theName Object name; when specified, this parameter is used
1548 for result publication in the study. Otherwise, if automatic
1549 publication is switched on, default value is used for result name.
1552 New GEOM.GEOM_Object, containing the created line.
1554 # Example: see GEOM_TestAll.py
1555 anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2)
1556 RaiseIfFailed("MakeLineTwoFaces", self.BasicOp)
1557 self._autoPublish(anObj, theName, "line")
1560 ## Create a plane, passing through the given point
1561 # and normal to the given vector.
1562 # @param thePnt Point, the plane has to pass through.
1563 # @param theVec Vector, defining the plane normal direction.
1564 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1565 # @param theName Object name; when specified, this parameter is used
1566 # for result publication in the study. Otherwise, if automatic
1567 # publication is switched on, default value is used for result name.
1569 # @return New GEOM.GEOM_Object, containing the created plane.
1571 # @ref tui_creation_plane "Example"
1572 def MakePlane(self, thePnt, theVec, theTrimSize, theName=None):
1574 Create a plane, passing through the given point
1575 and normal to the given vector.
1578 thePnt Point, the plane has to pass through.
1579 theVec Vector, defining the plane normal direction.
1580 theTrimSize Half size of a side of quadrangle face, representing the plane.
1581 theName Object name; when specified, this parameter is used
1582 for result publication in the study. Otherwise, if automatic
1583 publication is switched on, default value is used for result name.
1586 New GEOM.GEOM_Object, containing the created plane.
1588 # Example: see GEOM_TestAll.py
1589 theTrimSize, Parameters = ParseParameters(theTrimSize);
1590 anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
1591 RaiseIfFailed("MakePlanePntVec", self.BasicOp)
1592 anObj.SetParameters(Parameters)
1593 self._autoPublish(anObj, theName, "plane")
1596 ## Create a plane, passing through the three given points
1597 # @param thePnt1 First of three points, defining the plane.
1598 # @param thePnt2 Second of three points, defining the plane.
1599 # @param thePnt3 Fird of three points, defining the plane.
1600 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1601 # @param theName Object name; when specified, this parameter is used
1602 # for result publication in the study. Otherwise, if automatic
1603 # publication is switched on, default value is used for result name.
1605 # @return New GEOM.GEOM_Object, containing the created plane.
1607 # @ref tui_creation_plane "Example"
1608 def MakePlaneThreePnt(self, thePnt1, thePnt2, thePnt3, theTrimSize, theName=None):
1610 Create a plane, passing through the three given points
1613 thePnt1 First of three points, defining the plane.
1614 thePnt2 Second of three points, defining the plane.
1615 thePnt3 Fird of three points, defining the plane.
1616 theTrimSize Half size of a side of quadrangle face, representing the plane.
1617 theName Object name; when specified, this parameter is used
1618 for result publication in the study. Otherwise, if automatic
1619 publication is switched on, default value is used for result name.
1622 New GEOM.GEOM_Object, containing the created plane.
1624 # Example: see GEOM_TestAll.py
1625 theTrimSize, Parameters = ParseParameters(theTrimSize);
1626 anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
1627 RaiseIfFailed("MakePlaneThreePnt", self.BasicOp)
1628 anObj.SetParameters(Parameters)
1629 self._autoPublish(anObj, theName, "plane")
1632 ## Create a plane, similar to the existing one, but with another size of representing face.
1633 # @param theFace Referenced plane or LCS(Marker).
1634 # @param theTrimSize New half size of a side of quadrangle face, representing the plane.
1635 # @param 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.
1639 # @return New GEOM.GEOM_Object, containing the created plane.
1641 # @ref tui_creation_plane "Example"
1642 def MakePlaneFace(self, theFace, theTrimSize, theName=None):
1644 Create a plane, similar to the existing one, but with another size of representing face.
1647 theFace Referenced plane or LCS(Marker).
1648 theTrimSize New half size of a side of quadrangle face, representing the plane.
1649 theName Object name; when specified, this parameter is used
1650 for result publication in the study. Otherwise, if automatic
1651 publication is switched on, default value is used for result name.
1654 New GEOM.GEOM_Object, containing the created plane.
1656 # Example: see GEOM_TestAll.py
1657 theTrimSize, Parameters = ParseParameters(theTrimSize);
1658 anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize)
1659 RaiseIfFailed("MakePlaneFace", self.BasicOp)
1660 anObj.SetParameters(Parameters)
1661 self._autoPublish(anObj, theName, "plane")
1664 ## Create a plane, passing through the 2 vectors
1665 # with center in a start point of the first vector.
1666 # @param theVec1 Vector, defining center point and plane direction.
1667 # @param theVec2 Vector, defining the plane normal direction.
1668 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1669 # @param 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.
1673 # @return New GEOM.GEOM_Object, containing the created plane.
1675 # @ref tui_creation_plane "Example"
1676 def MakePlane2Vec(self, theVec1, theVec2, theTrimSize, theName=None):
1678 Create a plane, passing through the 2 vectors
1679 with center in a start point of the first vector.
1682 theVec1 Vector, defining center point and plane direction.
1683 theVec2 Vector, defining the plane normal direction.
1684 theTrimSize Half size of a side of quadrangle face, representing the plane.
1685 theName Object name; when specified, this parameter is used
1686 for result publication in the study. Otherwise, if automatic
1687 publication is switched on, default value is used for result name.
1690 New GEOM.GEOM_Object, containing the created plane.
1692 # Example: see GEOM_TestAll.py
1693 theTrimSize, Parameters = ParseParameters(theTrimSize);
1694 anObj = self.BasicOp.MakePlane2Vec(theVec1, theVec2, theTrimSize)
1695 RaiseIfFailed("MakePlane2Vec", self.BasicOp)
1696 anObj.SetParameters(Parameters)
1697 self._autoPublish(anObj, theName, "plane")
1700 ## Create a plane, based on a Local coordinate system.
1701 # @param theLCS coordinate system, defining plane.
1702 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1703 # @param theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1704 # @param theName Object name; when specified, this parameter is used
1705 # for result publication in the study. Otherwise, if automatic
1706 # publication is switched on, default value is used for result name.
1708 # @return New GEOM.GEOM_Object, containing the created plane.
1710 # @ref tui_creation_plane "Example"
1711 def MakePlaneLCS(self, theLCS, theTrimSize, theOrientation, theName=None):
1713 Create a plane, based on a Local coordinate system.
1716 theLCS coordinate system, defining plane.
1717 theTrimSize Half size of a side of quadrangle face, representing the plane.
1718 theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1719 theName Object name; when specified, this parameter is used
1720 for result publication in the study. Otherwise, if automatic
1721 publication is switched on, default value is used for result name.
1724 New GEOM.GEOM_Object, containing the created plane.
1726 # Example: see GEOM_TestAll.py
1727 theTrimSize, Parameters = ParseParameters(theTrimSize);
1728 anObj = self.BasicOp.MakePlaneLCS(theLCS, theTrimSize, theOrientation)
1729 RaiseIfFailed("MakePlaneLCS", self.BasicOp)
1730 anObj.SetParameters(Parameters)
1731 self._autoPublish(anObj, theName, "plane")
1734 ## Create a local coordinate system.
1735 # @param OX,OY,OZ Three coordinates of coordinate system origin.
1736 # @param XDX,XDY,XDZ Three components of OX direction
1737 # @param YDX,YDY,YDZ Three components of OY direction
1738 # @param theName Object name; when specified, this parameter is used
1739 # for result publication in the study. Otherwise, if automatic
1740 # publication is switched on, default value is used for result name.
1742 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1744 # @ref swig_MakeMarker "Example"
1745 def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, theName=None):
1747 Create a local coordinate system.
1750 OX,OY,OZ Three coordinates of coordinate system origin.
1751 XDX,XDY,XDZ Three components of OX direction
1752 YDX,YDY,YDZ Three components of OY direction
1753 theName Object name; when specified, this parameter is used
1754 for result publication in the study. Otherwise, if automatic
1755 publication is switched on, default value is used for result name.
1758 New GEOM.GEOM_Object, containing the created coordinate system.
1760 # Example: see GEOM_TestAll.py
1761 OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, Parameters = ParseParameters(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ);
1762 anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ)
1763 RaiseIfFailed("MakeMarker", self.BasicOp)
1764 anObj.SetParameters(Parameters)
1765 self._autoPublish(anObj, theName, "lcs")
1768 ## Create a local coordinate system from shape.
1769 # @param theShape The initial shape to detect the coordinate system.
1770 # @param theName Object name; when specified, this parameter is used
1771 # for result publication in the study. Otherwise, if automatic
1772 # publication is switched on, default value is used for result name.
1774 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1776 # @ref tui_creation_lcs "Example"
1777 def MakeMarkerFromShape(self, theShape, theName=None):
1779 Create a local coordinate system from shape.
1782 theShape The initial shape to detect the coordinate system.
1783 theName Object name; when specified, this parameter is used
1784 for result publication in the study. Otherwise, if automatic
1785 publication is switched on, default value is used for result name.
1788 New GEOM.GEOM_Object, containing the created coordinate system.
1790 anObj = self.BasicOp.MakeMarkerFromShape(theShape)
1791 RaiseIfFailed("MakeMarkerFromShape", self.BasicOp)
1792 self._autoPublish(anObj, theName, "lcs")
1795 ## Create a local coordinate system from point and two vectors.
1796 # @param theOrigin Point of coordinate system origin.
1797 # @param theXVec Vector of X direction
1798 # @param theYVec Vector of Y direction
1799 # @param theName Object name; when specified, this parameter is used
1800 # for result publication in the study. Otherwise, if automatic
1801 # publication is switched on, default value is used for result name.
1803 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1805 # @ref tui_creation_lcs "Example"
1806 def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec, theName=None):
1808 Create a local coordinate system from point and two vectors.
1811 theOrigin Point of coordinate system origin.
1812 theXVec Vector of X direction
1813 theYVec Vector of Y direction
1814 theName Object name; when specified, this parameter is used
1815 for result publication in the study. Otherwise, if automatic
1816 publication is switched on, default value is used for result name.
1819 New GEOM.GEOM_Object, containing the created coordinate system.
1822 anObj = self.BasicOp.MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec)
1823 RaiseIfFailed("MakeMarkerPntTwoVec", self.BasicOp)
1824 self._autoPublish(anObj, theName, "lcs")
1827 # end of l3_basic_go
1830 ## @addtogroup l4_curves
1833 ## Create an arc of circle, passing through three given points.
1834 # @param thePnt1 Start point of the arc.
1835 # @param thePnt2 Middle point of the arc.
1836 # @param thePnt3 End point of the arc.
1837 # @param theName Object name; when specified, this parameter is used
1838 # for result publication in the study. Otherwise, if automatic
1839 # publication is switched on, default value is used for result name.
1841 # @return New GEOM.GEOM_Object, containing the created arc.
1843 # @ref swig_MakeArc "Example"
1844 def MakeArc(self, thePnt1, thePnt2, thePnt3, theName=None):
1846 Create an arc of circle, passing through three given points.
1849 thePnt1 Start point of the arc.
1850 thePnt2 Middle point of the arc.
1851 thePnt3 End point of the arc.
1852 theName Object name; when specified, this parameter is used
1853 for result publication in the study. Otherwise, if automatic
1854 publication is switched on, default value is used for result name.
1857 New GEOM.GEOM_Object, containing the created arc.
1859 # Example: see GEOM_TestAll.py
1860 anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3)
1861 RaiseIfFailed("MakeArc", self.CurvesOp)
1862 self._autoPublish(anObj, theName, "arc")
1865 ## Create an arc of circle from a center and 2 points.
1866 # @param thePnt1 Center of the arc
1867 # @param thePnt2 Start point of the arc. (Gives also the radius of the arc)
1868 # @param thePnt3 End point of the arc (Gives also a direction)
1869 # @param theSense Orientation of the arc
1870 # @param theName Object name; when specified, this parameter is used
1871 # for result publication in the study. Otherwise, if automatic
1872 # publication is switched on, default value is used for result name.
1874 # @return New GEOM.GEOM_Object, containing the created arc.
1876 # @ref swig_MakeArc "Example"
1877 def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False, theName=None):
1879 Create an arc of circle from a center and 2 points.
1882 thePnt1 Center of the arc
1883 thePnt2 Start point of the arc. (Gives also the radius of the arc)
1884 thePnt3 End point of the arc (Gives also a direction)
1885 theSense Orientation of the arc
1886 theName Object name; when specified, this parameter is used
1887 for result publication in the study. Otherwise, if automatic
1888 publication is switched on, default value is used for result name.
1891 New GEOM.GEOM_Object, containing the created arc.
1893 # Example: see GEOM_TestAll.py
1894 anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense)
1895 RaiseIfFailed("MakeArcCenter", self.CurvesOp)
1896 self._autoPublish(anObj, theName, "arc")
1899 ## Create an arc of ellipse, of center and two points.
1900 # @param theCenter Center of the arc.
1901 # @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
1902 # @param thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
1903 # @param theName Object name; when specified, this parameter is used
1904 # for result publication in the study. Otherwise, if automatic
1905 # publication is switched on, default value is used for result name.
1907 # @return New GEOM.GEOM_Object, containing the created arc.
1909 # @ref swig_MakeArc "Example"
1910 def MakeArcOfEllipse(self, theCenter, thePnt1, thePnt2, theName=None):
1912 Create an arc of ellipse, of center and two points.
1915 theCenter Center of the arc.
1916 thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
1917 thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
1918 theName Object name; when specified, this parameter is used
1919 for result publication in the study. Otherwise, if automatic
1920 publication is switched on, default value is used for result name.
1923 New GEOM.GEOM_Object, containing the created arc.
1925 # Example: see GEOM_TestAll.py
1926 anObj = self.CurvesOp.MakeArcOfEllipse(theCenter, thePnt1, thePnt2)
1927 RaiseIfFailed("MakeArcOfEllipse", self.CurvesOp)
1928 self._autoPublish(anObj, theName, "arc")
1931 ## Create a circle with given center, normal vector and radius.
1932 # @param thePnt Circle center.
1933 # @param theVec Vector, normal to the plane of the circle.
1934 # @param theR Circle radius.
1935 # @param theName Object name; when specified, this parameter is used
1936 # for result publication in the study. Otherwise, if automatic
1937 # publication is switched on, default value is used for result name.
1939 # @return New GEOM.GEOM_Object, containing the created circle.
1941 # @ref tui_creation_circle "Example"
1942 def MakeCircle(self, thePnt, theVec, theR, theName=None):
1944 Create a circle with given center, normal vector and radius.
1947 thePnt Circle center.
1948 theVec Vector, normal to the plane of the circle.
1950 theName Object name; when specified, this parameter is used
1951 for result publication in the study. Otherwise, if automatic
1952 publication is switched on, default value is used for result name.
1955 New GEOM.GEOM_Object, containing the created circle.
1957 # Example: see GEOM_TestAll.py
1958 theR, Parameters = ParseParameters(theR)
1959 anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR)
1960 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
1961 anObj.SetParameters(Parameters)
1962 self._autoPublish(anObj, theName, "circle")
1965 ## Create a circle with given radius.
1966 # Center of the circle will be in the origin of global
1967 # coordinate system and normal vector will be codirected with Z axis
1968 # @param theR Circle radius.
1969 # @param theName Object name; when specified, this parameter is used
1970 # for result publication in the study. Otherwise, if automatic
1971 # publication is switched on, default value is used for result name.
1973 # @return New GEOM.GEOM_Object, containing the created circle.
1974 def MakeCircleR(self, theR, theName=None):
1976 Create a circle with given radius.
1977 Center of the circle will be in the origin of global
1978 coordinate system and normal vector will be codirected with Z axis
1982 theName Object name; when specified, this parameter is used
1983 for result publication in the study. Otherwise, if automatic
1984 publication is switched on, default value is used for result name.
1987 New GEOM.GEOM_Object, containing the created circle.
1989 anObj = self.CurvesOp.MakeCirclePntVecR(None, None, theR)
1990 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
1991 self._autoPublish(anObj, theName, "circle")
1994 ## Create a circle, passing through three given points
1995 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
1996 # @param theName Object name; when specified, this parameter is used
1997 # for result publication in the study. Otherwise, if automatic
1998 # publication is switched on, default value is used for result name.
2000 # @return New GEOM.GEOM_Object, containing the created circle.
2002 # @ref tui_creation_circle "Example"
2003 def MakeCircleThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2005 Create a circle, passing through three given points
2008 thePnt1,thePnt2,thePnt3 Points, defining the circle.
2009 theName Object name; when specified, this parameter is used
2010 for result publication in the study. Otherwise, if automatic
2011 publication is switched on, default value is used for result name.
2014 New GEOM.GEOM_Object, containing the created circle.
2016 # Example: see GEOM_TestAll.py
2017 anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
2018 RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp)
2019 self._autoPublish(anObj, theName, "circle")
2022 ## Create a circle, with given point1 as center,
2023 # passing through the point2 as radius and laying in the plane,
2024 # defined by all three given points.
2025 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
2026 # @param theName Object name; when specified, this parameter is used
2027 # for result publication in the study. Otherwise, if automatic
2028 # publication is switched on, default value is used for result name.
2030 # @return New GEOM.GEOM_Object, containing the created circle.
2032 # @ref swig_MakeCircle "Example"
2033 def MakeCircleCenter2Pnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2035 Create a circle, with given point1 as center,
2036 passing through the point2 as radius and laying in the plane,
2037 defined by all three given points.
2040 thePnt1,thePnt2,thePnt3 Points, defining the circle.
2041 theName Object name; when specified, this parameter is used
2042 for result publication in the study. Otherwise, if automatic
2043 publication is switched on, default value is used for result name.
2046 New GEOM.GEOM_Object, containing the created circle.
2048 # Example: see GEOM_example6.py
2049 anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3)
2050 RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp)
2051 self._autoPublish(anObj, theName, "circle")
2054 ## Create an ellipse with given center, normal vector and radiuses.
2055 # @param thePnt Ellipse center.
2056 # @param theVec Vector, normal to the plane of the ellipse.
2057 # @param theRMajor Major ellipse radius.
2058 # @param theRMinor Minor ellipse radius.
2059 # @param theVecMaj Vector, direction of the ellipse's main axis.
2060 # @param theName Object name; when specified, this parameter is used
2061 # for result publication in the study. Otherwise, if automatic
2062 # publication is switched on, default value is used for result name.
2064 # @return New GEOM.GEOM_Object, containing the created ellipse.
2066 # @ref tui_creation_ellipse "Example"
2067 def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor, theVecMaj=None, theName=None):
2069 Create an ellipse with given center, normal vector and radiuses.
2072 thePnt Ellipse center.
2073 theVec Vector, normal to the plane of the ellipse.
2074 theRMajor Major ellipse radius.
2075 theRMinor Minor ellipse radius.
2076 theVecMaj Vector, direction of the ellipse's main axis.
2077 theName Object name; when specified, this parameter is used
2078 for result publication in the study. Otherwise, if automatic
2079 publication is switched on, default value is used for result name.
2082 New GEOM.GEOM_Object, containing the created ellipse.
2084 # Example: see GEOM_TestAll.py
2085 theRMajor, theRMinor, Parameters = ParseParameters(theRMajor, theRMinor)
2086 if theVecMaj is not None:
2087 anObj = self.CurvesOp.MakeEllipseVec(thePnt, theVec, theRMajor, theRMinor, theVecMaj)
2089 anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor)
2091 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2092 anObj.SetParameters(Parameters)
2093 self._autoPublish(anObj, theName, "ellipse")
2096 ## Create an ellipse with given radiuses.
2097 # Center of the ellipse will be in the origin of global
2098 # coordinate system and normal vector will be codirected with Z axis
2099 # @param theRMajor Major ellipse radius.
2100 # @param theRMinor Minor ellipse radius.
2101 # @param theName Object name; when specified, this parameter is used
2102 # for result publication in the study. Otherwise, if automatic
2103 # publication is switched on, default value is used for result name.
2105 # @return New GEOM.GEOM_Object, containing the created ellipse.
2106 def MakeEllipseRR(self, theRMajor, theRMinor, theName=None):
2108 Create an ellipse with given radiuses.
2109 Center of the ellipse will be in the origin of global
2110 coordinate system and normal vector will be codirected with Z axis
2113 theRMajor Major ellipse radius.
2114 theRMinor Minor ellipse radius.
2115 theName Object name; when specified, this parameter is used
2116 for result publication in the study. Otherwise, if automatic
2117 publication is switched on, default value is used for result name.
2120 New GEOM.GEOM_Object, containing the created ellipse.
2122 anObj = self.CurvesOp.MakeEllipse(None, None, theRMajor, theRMinor)
2123 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2124 self._autoPublish(anObj, theName, "ellipse")
2127 ## Create a polyline on the set of points.
2128 # @param thePoints Sequence of points for the polyline.
2129 # @param theIsClosed If True, build a closed wire.
2130 # @param theName Object name; when specified, this parameter is used
2131 # for result publication in the study. Otherwise, if automatic
2132 # publication is switched on, default value is used for result name.
2134 # @return New GEOM.GEOM_Object, containing the created polyline.
2136 # @ref tui_creation_curve "Example"
2137 def MakePolyline(self, thePoints, theIsClosed=False, theName=None):
2139 Create a polyline on the set of points.
2142 thePoints Sequence of points for the polyline.
2143 theIsClosed If True, build a closed wire.
2144 theName Object name; when specified, this parameter is used
2145 for result publication in the study. Otherwise, if automatic
2146 publication is switched on, default value is used for result name.
2149 New GEOM.GEOM_Object, containing the created polyline.
2151 # Example: see GEOM_TestAll.py
2152 anObj = self.CurvesOp.MakePolyline(thePoints, theIsClosed)
2153 RaiseIfFailed("MakePolyline", self.CurvesOp)
2154 self._autoPublish(anObj, theName, "polyline")
2157 ## Create bezier curve on the set of points.
2158 # @param thePoints Sequence of points for the bezier curve.
2159 # @param theIsClosed If True, build a closed curve.
2160 # @param theName Object name; when specified, this parameter is used
2161 # for result publication in the study. Otherwise, if automatic
2162 # publication is switched on, default value is used for result name.
2164 # @return New GEOM.GEOM_Object, containing the created bezier curve.
2166 # @ref tui_creation_curve "Example"
2167 def MakeBezier(self, thePoints, theIsClosed=False, theName=None):
2169 Create bezier curve on the set of points.
2172 thePoints Sequence of points for the bezier curve.
2173 theIsClosed If True, build a closed curve.
2174 theName Object name; when specified, this parameter is used
2175 for result publication in the study. Otherwise, if automatic
2176 publication is switched on, default value is used for result name.
2179 New GEOM.GEOM_Object, containing the created bezier curve.
2181 # Example: see GEOM_TestAll.py
2182 anObj = self.CurvesOp.MakeSplineBezier(thePoints, theIsClosed)
2183 RaiseIfFailed("MakeSplineBezier", self.CurvesOp)
2184 self._autoPublish(anObj, theName, "bezier")
2187 ## Create B-Spline curve on the set of points.
2188 # @param thePoints Sequence of points for the B-Spline curve.
2189 # @param theIsClosed If True, build a closed curve.
2190 # @param theDoReordering If TRUE, the algo does not follow the order of
2191 # \a thePoints but searches for the closest vertex.
2192 # @param theName Object name; when specified, this parameter is used
2193 # for result publication in the study. Otherwise, if automatic
2194 # publication is switched on, default value is used for result name.
2196 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2198 # @ref tui_creation_curve "Example"
2199 def MakeInterpol(self, thePoints, theIsClosed=False, theDoReordering=False, theName=None):
2201 Create B-Spline curve on the set of points.
2204 thePoints Sequence of points for the B-Spline curve.
2205 theIsClosed If True, build a closed curve.
2206 theDoReordering If True, the algo does not follow the order of
2207 thePoints but searches for the closest vertex.
2208 theName Object name; when specified, this parameter is used
2209 for result publication in the study. Otherwise, if automatic
2210 publication is switched on, default value is used for result name.
2213 New GEOM.GEOM_Object, containing the created B-Spline curve.
2215 # Example: see GEOM_TestAll.py
2216 anObj = self.CurvesOp.MakeSplineInterpolation(thePoints, theIsClosed, theDoReordering)
2217 RaiseIfFailed("MakeInterpol", self.CurvesOp)
2218 self._autoPublish(anObj, theName, "bspline")
2221 ## Create B-Spline curve on the set of points.
2222 # @param thePoints Sequence of points for the B-Spline curve.
2223 # @param theFirstVec Vector object, defining the curve direction at its first point.
2224 # @param theLastVec Vector object, defining the curve direction at its last point.
2225 # @param theName Object name; when specified, this parameter is used
2226 # for result publication in the study. Otherwise, if automatic
2227 # publication is switched on, default value is used for result name.
2229 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2231 # @ref tui_creation_curve "Example"
2232 def MakeInterpolWithTangents(self, thePoints, theFirstVec, theLastVec, theName=None):
2234 Create B-Spline curve on the set of points.
2237 thePoints Sequence of points for the B-Spline curve.
2238 theFirstVec Vector object, defining the curve direction at its first point.
2239 theLastVec Vector object, defining the curve direction at its last point.
2240 theName Object name; when specified, this parameter is used
2241 for result publication in the study. Otherwise, if automatic
2242 publication is switched on, default value is used for result name.
2245 New GEOM.GEOM_Object, containing the created B-Spline curve.
2247 # Example: see GEOM_TestAll.py
2248 anObj = self.CurvesOp.MakeSplineInterpolWithTangents(thePoints, theFirstVec, theLastVec)
2249 RaiseIfFailed("MakeInterpolWithTangents", self.CurvesOp)
2250 self._autoPublish(anObj, theName, "bspline")
2253 ## Creates a curve using the parametric definition of the basic points.
2254 # @param thexExpr parametric equation of the coordinates X.
2255 # @param theyExpr parametric equation of the coordinates Y.
2256 # @param thezExpr parametric equation of the coordinates Z.
2257 # @param theParamMin the minimal value of the parameter.
2258 # @param theParamMax the maximum value of the parameter.
2259 # @param theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2260 # @param theCurveType the type of the curve,
2261 # one of GEOM.Polyline, GEOM.Bezier, GEOM.Interpolation.
2262 # @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.
2263 # @param theName Object name; when specified, this parameter is used
2264 # for result publication in the study. Otherwise, if automatic
2265 # publication is switched on, default value is used for result name.
2267 # @return New GEOM.GEOM_Object, containing the created curve.
2269 # @ref tui_creation_curve "Example"
2270 def MakeCurveParametric(self, thexExpr, theyExpr, thezExpr,
2271 theParamMin, theParamMax, theParamStep, theCurveType, theNewMethod=False, theName=None ):
2273 Creates a curve using the parametric definition of the basic points.
2276 thexExpr parametric equation of the coordinates X.
2277 theyExpr parametric equation of the coordinates Y.
2278 thezExpr parametric equation of the coordinates Z.
2279 theParamMin the minimal value of the parameter.
2280 theParamMax the maximum value of the parameter.
2281 theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2282 theCurveType the type of the curve,
2283 one of GEOM.Polyline, GEOM.Bezier, GEOM.Interpolation.
2284 theNewMethod flag for switching to the new method if the flag is set to false a deprecated
2285 method is used which can lead to a bug.
2286 theName Object name; when specified, this parameter is used
2287 for result publication in the study. Otherwise, if automatic
2288 publication is switched on, default value is used for result name.
2291 New GEOM.GEOM_Object, containing the created curve.
2293 theParamMin,theParamMax,theParamStep,Parameters = ParseParameters(theParamMin,theParamMax,theParamStep)
2295 anObj = self.CurvesOp.MakeCurveParametricNew(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2297 anObj = self.CurvesOp.MakeCurveParametric(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2298 RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp)
2299 anObj.SetParameters(Parameters)
2300 self._autoPublish(anObj, theName, "curve")
2306 ## @addtogroup l3_sketcher
2309 ## Create a sketcher (wire or face), following the textual description,
2310 # passed through <VAR>theCommand</VAR> argument. \n
2311 # Edges of the resulting wire or face will be arcs of circles and/or linear segments. \n
2312 # Format of the description string have to be the following:
2314 # "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2317 # - x1, y1 are coordinates of the first sketcher point (zero by default),
2319 # - "R angle" : Set the direction by angle
2320 # - "D dx dy" : Set the direction by DX & DY
2323 # - "TT x y" : Create segment by point at X & Y
2324 # - "T dx dy" : Create segment by point with DX & DY
2325 # - "L length" : Create segment by direction & Length
2326 # - "IX x" : Create segment by direction & Intersect. X
2327 # - "IY y" : Create segment by direction & Intersect. Y
2330 # - "C radius length" : Create arc by direction, radius and length(in degree)
2331 # - "AA x y": Create arc by point at X & Y
2332 # - "A dx dy" : Create arc by point with DX & DY
2333 # - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2334 # - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2335 # - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2336 # - "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)
2343 # - Flag1 (= reverse) is 0 or 2 ...
2344 # - if 0 the drawn arc is the one of lower angle (< Pi)
2345 # - if 2 the drawn arc ius the one of greater angle (> Pi)
2348 # - Flag2 (= control tolerance) is 0 or 1 ...
2349 # - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2350 # - if 1 the wire is built only if the end point is on the arc
2351 # with a tolerance of 10^-7 on the distance else the creation fails
2353 # @param theCommand String, defining the sketcher in local
2354 # coordinates of the working plane.
2355 # @param theWorkingPlane Nine double values, defining origin,
2356 # OZ and OX directions of the working plane.
2357 # @param theName Object name; when specified, this parameter is used
2358 # for result publication in the study. Otherwise, if automatic
2359 # publication is switched on, default value is used for result name.
2361 # @return New GEOM.GEOM_Object, containing the created wire.
2363 # @ref tui_sketcher_page "Example"
2364 def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0], theName=None):
2366 Create a sketcher (wire or face), following the textual description, passed
2367 through theCommand argument.
2368 Edges of the resulting wire or face will be arcs of circles and/or linear segments.
2369 Format of the description string have to be the following:
2370 "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2372 - x1, y1 are coordinates of the first sketcher point (zero by default),
2374 - "R angle" : Set the direction by angle
2375 - "D dx dy" : Set the direction by DX & DY
2377 - "TT x y" : Create segment by point at X & Y
2378 - "T dx dy" : Create segment by point with DX & DY
2379 - "L length" : Create segment by direction & Length
2380 - "IX x" : Create segment by direction & Intersect. X
2381 - "IY y" : Create segment by direction & Intersect. Y
2383 - "C radius length" : Create arc by direction, radius and length(in degree)
2384 - "AA x y": Create arc by point at X & Y
2385 - "A dx dy" : Create arc by point with DX & DY
2386 - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2387 - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2388 - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2389 - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2391 - "WW" : Close Wire (to finish)
2392 - "WF" : Close Wire and build face (to finish)
2394 - Flag1 (= reverse) is 0 or 2 ...
2395 - if 0 the drawn arc is the one of lower angle (< Pi)
2396 - if 2 the drawn arc ius the one of greater angle (> Pi)
2398 - Flag2 (= control tolerance) is 0 or 1 ...
2399 - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2400 - if 1 the wire is built only if the end point is on the arc
2401 with a tolerance of 10^-7 on the distance else the creation fails
2404 theCommand String, defining the sketcher in local
2405 coordinates of the working plane.
2406 theWorkingPlane Nine double values, defining origin,
2407 OZ and OX directions of the working plane.
2408 theName Object name; when specified, this parameter is used
2409 for result publication in the study. Otherwise, if automatic
2410 publication is switched on, default value is used for result name.
2413 New GEOM.GEOM_Object, containing the created wire.
2415 # Example: see GEOM_TestAll.py
2416 theCommand,Parameters = ParseSketcherCommand(theCommand)
2417 anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
2418 RaiseIfFailed("MakeSketcher", self.CurvesOp)
2419 anObj.SetParameters(Parameters)
2420 self._autoPublish(anObj, theName, "wire")
2423 ## Create a sketcher (wire or face), following the textual description,
2424 # passed through <VAR>theCommand</VAR> argument. \n
2425 # For format of the description string see MakeSketcher() method.\n
2426 # @param theCommand String, defining the sketcher in local
2427 # coordinates of the working plane.
2428 # @param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2429 # @param theName Object name; when specified, this parameter is used
2430 # for result publication in the study. Otherwise, if automatic
2431 # publication is switched on, default value is used for result name.
2433 # @return New GEOM.GEOM_Object, containing the created wire.
2435 # @ref tui_sketcher_page "Example"
2436 def MakeSketcherOnPlane(self, theCommand, theWorkingPlane, theName=None):
2438 Create a sketcher (wire or face), following the textual description,
2439 passed through theCommand argument.
2440 For format of the description string see geompy.MakeSketcher() method.
2443 theCommand String, defining the sketcher in local
2444 coordinates of the working plane.
2445 theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2446 theName Object name; when specified, this parameter is used
2447 for result publication in the study. Otherwise, if automatic
2448 publication is switched on, default value is used for result name.
2451 New GEOM.GEOM_Object, containing the created wire.
2453 theCommand,Parameters = ParseSketcherCommand(theCommand)
2454 anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
2455 RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp)
2456 anObj.SetParameters(Parameters)
2457 self._autoPublish(anObj, theName, "wire")
2460 ## Obtain a 2D sketcher interface
2461 # @return An instance of @ref gsketcher.Sketcher2D "Sketcher2D" interface
2462 def Sketcher2D (self):
2464 Obtain a 2D sketcher interface.
2467 sk = geompy.Sketcher2D()
2469 sk.addSegmentRelative(15, 70)
2470 sk.addSegmentPerpY(50)
2471 sk.addArcRadiusRelative(25, 15, 14.5, 0)
2472 sk.addArcCenterAbsolute(1, 1, 50, 50, 0, 0)
2473 sk.addArcDirectionRadiusLength(20, 20, 101, 162.13)
2475 Sketch_1 = sk.wire(geomObj_1)
2477 sk = Sketcher2D (self)
2480 ## Create a sketcher wire, following the numerical description,
2481 # passed through <VAR>theCoordinates</VAR> argument. \n
2482 # @param theCoordinates double values, defining points to create a wire,
2484 # @param theName Object name; when specified, this parameter is used
2485 # for result publication in the study. Otherwise, if automatic
2486 # publication is switched on, default value is used for result name.
2488 # @return New GEOM.GEOM_Object, containing the created wire.
2490 # @ref tui_3dsketcher_page "Example"
2491 def Make3DSketcher(self, theCoordinates, theName=None):
2493 Create a sketcher wire, following the numerical description,
2494 passed through theCoordinates argument.
2497 theCoordinates double values, defining points to create a wire,
2499 theName Object name; when specified, this parameter is used
2500 for result publication in the study. Otherwise, if automatic
2501 publication is switched on, default value is used for result name.
2504 New GEOM_Object, containing the created wire.
2506 theCoordinates,Parameters = ParseParameters(theCoordinates)
2507 anObj = self.CurvesOp.Make3DSketcher(theCoordinates)
2508 RaiseIfFailed("Make3DSketcher", self.CurvesOp)
2509 anObj.SetParameters(Parameters)
2510 self._autoPublish(anObj, theName, "wire")
2513 ## Obtain a 3D sketcher interface
2514 # @return An instance of @ref gsketcher.Sketcher3D "Sketcher3D" interface
2516 # @ref tui_3dsketcher_page "Example"
2517 def Sketcher3D (self):
2519 Obtain a 3D sketcher interface.
2522 sk = geompy.Sketcher3D()
2523 sk.addPointsAbsolute(0,0,0, 70,0,0)
2524 sk.addPointsRelative(0, 0, 130)
2525 sk.addPointAnglesLength("OXY", 50, 0, 100)
2526 sk.addPointAnglesLength("OXZ", 30, 80, 130)
2528 a3D_Sketcher_1 = sk.wire()
2530 sk = Sketcher3D (self)
2533 # end of l3_sketcher
2536 ## @addtogroup l3_3d_primitives
2539 ## Create a box by coordinates of two opposite vertices.
2541 # @param x1,y1,z1 double values, defining first point it.
2542 # @param x2,y2,z2 double values, defining first point it.
2543 # @param theName Object name; when specified, this parameter is used
2544 # for result publication in the study. Otherwise, if automatic
2545 # publication is switched on, default value is used for result name.
2547 # @return New GEOM.GEOM_Object, containing the created box.
2549 # @ref tui_creation_box "Example"
2550 def MakeBox(self, x1, y1, z1, x2, y2, z2, theName=None):
2552 Create a box by coordinates of two opposite vertices.
2555 x1,y1,z1 double values, defining first point.
2556 x2,y2,z2 double values, defining second point.
2557 theName Object name; when specified, this parameter is used
2558 for result publication in the study. Otherwise, if automatic
2559 publication is switched on, default value is used for result name.
2562 New GEOM.GEOM_Object, containing the created box.
2564 # Example: see GEOM_TestAll.py
2565 pnt1 = self.MakeVertex(x1,y1,z1)
2566 pnt2 = self.MakeVertex(x2,y2,z2)
2567 # note: auto-publishing is done in self.MakeBoxTwoPnt()
2568 return self.MakeBoxTwoPnt(pnt1, pnt2, theName)
2570 ## Create a box with specified dimensions along the coordinate axes
2571 # and with edges, parallel to the coordinate axes.
2572 # Center of the box will be at point (DX/2, DY/2, DZ/2).
2573 # @param theDX Length of Box edges, parallel to OX axis.
2574 # @param theDY Length of Box edges, parallel to OY axis.
2575 # @param theDZ Length of Box edges, parallel to OZ axis.
2576 # @param theName Object name; when specified, this parameter is used
2577 # for result publication in the study. Otherwise, if automatic
2578 # publication is switched on, default value is used for result name.
2580 # @return New GEOM.GEOM_Object, containing the created box.
2582 # @ref tui_creation_box "Example"
2583 def MakeBoxDXDYDZ(self, theDX, theDY, theDZ, theName=None):
2585 Create a box with specified dimensions along the coordinate axes
2586 and with edges, parallel to the coordinate axes.
2587 Center of the box will be at point (DX/2, DY/2, DZ/2).
2590 theDX Length of Box edges, parallel to OX axis.
2591 theDY Length of Box edges, parallel to OY axis.
2592 theDZ Length of Box edges, parallel to OZ axis.
2593 theName Object name; when specified, this parameter is used
2594 for result publication in the study. Otherwise, if automatic
2595 publication is switched on, default value is used for result name.
2598 New GEOM.GEOM_Object, containing the created box.
2600 # Example: see GEOM_TestAll.py
2601 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
2602 anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
2603 RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp)
2604 anObj.SetParameters(Parameters)
2605 self._autoPublish(anObj, theName, "box")
2608 ## Create a box with two specified opposite vertices,
2609 # and with edges, parallel to the coordinate axes
2610 # @param thePnt1 First of two opposite vertices.
2611 # @param thePnt2 Second of two opposite vertices.
2612 # @param theName Object name; when specified, this parameter is used
2613 # for result publication in the study. Otherwise, if automatic
2614 # publication is switched on, default value is used for result name.
2616 # @return New GEOM.GEOM_Object, containing the created box.
2618 # @ref tui_creation_box "Example"
2619 def MakeBoxTwoPnt(self, thePnt1, thePnt2, theName=None):
2621 Create a box with two specified opposite vertices,
2622 and with edges, parallel to the coordinate axes
2625 thePnt1 First of two opposite vertices.
2626 thePnt2 Second of two opposite vertices.
2627 theName Object name; when specified, this parameter is used
2628 for result publication in the study. Otherwise, if automatic
2629 publication is switched on, default value is used for result name.
2632 New GEOM.GEOM_Object, containing the created box.
2634 # Example: see GEOM_TestAll.py
2635 anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
2636 RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp)
2637 self._autoPublish(anObj, theName, "box")
2640 ## Create a face with specified dimensions with edges parallel to coordinate axes.
2641 # @param theH height of Face.
2642 # @param theW width of Face.
2643 # @param theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
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 face.
2650 # @ref tui_creation_face "Example"
2651 def MakeFaceHW(self, theH, theW, theOrientation, theName=None):
2653 Create a face with specified dimensions with edges parallel to coordinate axes.
2656 theH height of Face.
2658 theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
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 face.
2666 # Example: see GEOM_TestAll.py
2667 theH,theW,Parameters = ParseParameters(theH, theW)
2668 anObj = self.PrimOp.MakeFaceHW(theH, theW, theOrientation)
2669 RaiseIfFailed("MakeFaceHW", self.PrimOp)
2670 anObj.SetParameters(Parameters)
2671 self._autoPublish(anObj, theName, "rectangle")
2674 ## Create a face from another plane and two sizes,
2675 # vertical size and horisontal size.
2676 # @param theObj Normale vector to the creating face or
2678 # @param theH Height (vertical size).
2679 # @param theW Width (horisontal size).
2680 # @param theName Object name; when specified, this parameter is used
2681 # for result publication in the study. Otherwise, if automatic
2682 # publication is switched on, default value is used for result name.
2684 # @return New GEOM.GEOM_Object, containing the created face.
2686 # @ref tui_creation_face "Example"
2687 def MakeFaceObjHW(self, theObj, theH, theW, theName=None):
2689 Create a face from another plane and two sizes,
2690 vertical size and horisontal size.
2693 theObj Normale vector to the creating face or
2695 theH Height (vertical size).
2696 theW Width (horisontal size).
2697 theName Object name; when specified, this parameter is used
2698 for result publication in the study. Otherwise, if automatic
2699 publication is switched on, default value is used for result name.
2702 New GEOM_Object, containing the created face.
2704 # Example: see GEOM_TestAll.py
2705 theH,theW,Parameters = ParseParameters(theH, theW)
2706 anObj = self.PrimOp.MakeFaceObjHW(theObj, theH, theW)
2707 RaiseIfFailed("MakeFaceObjHW", self.PrimOp)
2708 anObj.SetParameters(Parameters)
2709 self._autoPublish(anObj, theName, "rectangle")
2712 ## Create a disk with given center, normal vector and radius.
2713 # @param thePnt Disk center.
2714 # @param theVec Vector, normal to the plane of the disk.
2715 # @param theR Disk radius.
2716 # @param theName Object name; when specified, this parameter is used
2717 # for result publication in the study. Otherwise, if automatic
2718 # publication is switched on, default value is used for result name.
2720 # @return New GEOM.GEOM_Object, containing the created disk.
2722 # @ref tui_creation_disk "Example"
2723 def MakeDiskPntVecR(self, thePnt, theVec, theR, theName=None):
2725 Create a disk with given center, normal vector and radius.
2729 theVec Vector, normal to the plane of the disk.
2731 theName Object name; when specified, this parameter is used
2732 for result publication in the study. Otherwise, if automatic
2733 publication is switched on, default value is used for result name.
2736 New GEOM.GEOM_Object, containing the created disk.
2738 # Example: see GEOM_TestAll.py
2739 theR,Parameters = ParseParameters(theR)
2740 anObj = self.PrimOp.MakeDiskPntVecR(thePnt, theVec, theR)
2741 RaiseIfFailed("MakeDiskPntVecR", self.PrimOp)
2742 anObj.SetParameters(Parameters)
2743 self._autoPublish(anObj, theName, "disk")
2746 ## Create a disk, passing through three given points
2747 # @param thePnt1,thePnt2,thePnt3 Points, defining the disk.
2748 # @param theName Object name; when specified, this parameter is used
2749 # for result publication in the study. Otherwise, if automatic
2750 # publication is switched on, default value is used for result name.
2752 # @return New GEOM.GEOM_Object, containing the created disk.
2754 # @ref tui_creation_disk "Example"
2755 def MakeDiskThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2757 Create a disk, passing through three given points
2760 thePnt1,thePnt2,thePnt3 Points, defining the disk.
2761 theName Object name; when specified, this parameter is used
2762 for result publication in the study. Otherwise, if automatic
2763 publication is switched on, default value is used for result name.
2766 New GEOM.GEOM_Object, containing the created disk.
2768 # Example: see GEOM_TestAll.py
2769 anObj = self.PrimOp.MakeDiskThreePnt(thePnt1, thePnt2, thePnt3)
2770 RaiseIfFailed("MakeDiskThreePnt", self.PrimOp)
2771 self._autoPublish(anObj, theName, "disk")
2774 ## Create a disk with specified dimensions along OX-OY coordinate axes.
2775 # @param theR Radius of Face.
2776 # @param theOrientation set the orientation belong axis OXY or OYZ or OZX
2777 # @param theName Object name; when specified, this parameter is used
2778 # for result publication in the study. Otherwise, if automatic
2779 # publication is switched on, default value is used for result name.
2781 # @return New GEOM.GEOM_Object, containing the created disk.
2783 # @ref tui_creation_face "Example"
2784 def MakeDiskR(self, theR, theOrientation, theName=None):
2786 Create a disk with specified dimensions along OX-OY coordinate axes.
2789 theR Radius of Face.
2790 theOrientation set the orientation belong axis OXY or OYZ or OZX
2791 theName Object name; when specified, this parameter is used
2792 for result publication in the study. Otherwise, if automatic
2793 publication is switched on, default value is used for result name.
2796 New GEOM.GEOM_Object, containing the created disk.
2799 Disk3 = geompy.MakeDiskR(100., 1)
2801 # Example: see GEOM_TestAll.py
2802 theR,Parameters = ParseParameters(theR)
2803 anObj = self.PrimOp.MakeDiskR(theR, theOrientation)
2804 RaiseIfFailed("MakeDiskR", self.PrimOp)
2805 anObj.SetParameters(Parameters)
2806 self._autoPublish(anObj, theName, "disk")
2809 ## Create a cylinder with given base point, axis, radius and height.
2810 # @param thePnt Central point of cylinder base.
2811 # @param theAxis Cylinder axis.
2812 # @param theR Cylinder radius.
2813 # @param theH Cylinder height.
2814 # @param theName Object name; when specified, this parameter is used
2815 # for result publication in the study. Otherwise, if automatic
2816 # publication is switched on, default value is used for result name.
2818 # @return New GEOM.GEOM_Object, containing the created cylinder.
2820 # @ref tui_creation_cylinder "Example"
2821 def MakeCylinder(self, thePnt, theAxis, theR, theH, theName=None):
2823 Create a cylinder with given base point, axis, radius and height.
2826 thePnt Central point of cylinder base.
2827 theAxis Cylinder axis.
2828 theR Cylinder radius.
2829 theH Cylinder height.
2830 theName Object name; when specified, this parameter is used
2831 for result publication in the study. Otherwise, if automatic
2832 publication is switched on, default value is used for result name.
2835 New GEOM.GEOM_Object, containing the created cylinder.
2837 # Example: see GEOM_TestAll.py
2838 theR,theH,Parameters = ParseParameters(theR, theH)
2839 anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
2840 RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp)
2841 anObj.SetParameters(Parameters)
2842 self._autoPublish(anObj, theName, "cylinder")
2845 ## Create a cylinder with given radius and height at
2846 # the origin of coordinate system. Axis of the cylinder
2847 # will be collinear to the OZ axis of the coordinate system.
2848 # @param theR Cylinder radius.
2849 # @param theH Cylinder height.
2850 # @param theName Object name; when specified, this parameter is used
2851 # for result publication in the study. Otherwise, if automatic
2852 # publication is switched on, default value is used for result name.
2854 # @return New GEOM.GEOM_Object, containing the created cylinder.
2856 # @ref tui_creation_cylinder "Example"
2857 def MakeCylinderRH(self, theR, theH, theName=None):
2859 Create a cylinder with given radius and height at
2860 the origin of coordinate system. Axis of the cylinder
2861 will be collinear to the OZ axis of the coordinate system.
2864 theR Cylinder radius.
2865 theH Cylinder height.
2866 theName Object name; when specified, this parameter is used
2867 for result publication in the study. Otherwise, if automatic
2868 publication is switched on, default value is used for result name.
2871 New GEOM.GEOM_Object, containing the created cylinder.
2873 # Example: see GEOM_TestAll.py
2874 theR,theH,Parameters = ParseParameters(theR, theH)
2875 anObj = self.PrimOp.MakeCylinderRH(theR, theH)
2876 RaiseIfFailed("MakeCylinderRH", self.PrimOp)
2877 anObj.SetParameters(Parameters)
2878 self._autoPublish(anObj, theName, "cylinder")
2881 ## Create a sphere with given center and radius.
2882 # @param thePnt Sphere center.
2883 # @param theR Sphere radius.
2884 # @param theName Object name; when specified, this parameter is used
2885 # for result publication in the study. Otherwise, if automatic
2886 # publication is switched on, default value is used for result name.
2888 # @return New GEOM.GEOM_Object, containing the created sphere.
2890 # @ref tui_creation_sphere "Example"
2891 def MakeSpherePntR(self, thePnt, theR, theName=None):
2893 Create a sphere with given center and radius.
2896 thePnt Sphere center.
2898 theName Object name; when specified, this parameter is used
2899 for result publication in the study. Otherwise, if automatic
2900 publication is switched on, default value is used for result name.
2903 New GEOM.GEOM_Object, containing the created sphere.
2905 # Example: see GEOM_TestAll.py
2906 theR,Parameters = ParseParameters(theR)
2907 anObj = self.PrimOp.MakeSpherePntR(thePnt, theR)
2908 RaiseIfFailed("MakeSpherePntR", self.PrimOp)
2909 anObj.SetParameters(Parameters)
2910 self._autoPublish(anObj, theName, "sphere")
2913 ## Create a sphere with given center and radius.
2914 # @param x,y,z Coordinates of sphere center.
2915 # @param theR Sphere radius.
2916 # @param theName Object name; when specified, this parameter is used
2917 # for result publication in the study. Otherwise, if automatic
2918 # publication is switched on, default value is used for result name.
2920 # @return New GEOM.GEOM_Object, containing the created sphere.
2922 # @ref tui_creation_sphere "Example"
2923 def MakeSphere(self, x, y, z, theR, theName=None):
2925 Create a sphere with given center and radius.
2928 x,y,z Coordinates of sphere center.
2930 theName Object name; when specified, this parameter is used
2931 for result publication in the study. Otherwise, if automatic
2932 publication is switched on, default value is used for result name.
2935 New GEOM.GEOM_Object, containing the created sphere.
2937 # Example: see GEOM_TestAll.py
2938 point = self.MakeVertex(x, y, z)
2939 # note: auto-publishing is done in self.MakeSpherePntR()
2940 anObj = self.MakeSpherePntR(point, theR, theName)
2943 ## Create a sphere with given radius at the origin of coordinate system.
2944 # @param theR Sphere radius.
2945 # @param theName Object name; when specified, this parameter is used
2946 # for result publication in the study. Otherwise, if automatic
2947 # publication is switched on, default value is used for result name.
2949 # @return New GEOM.GEOM_Object, containing the created sphere.
2951 # @ref tui_creation_sphere "Example"
2952 def MakeSphereR(self, theR, theName=None):
2954 Create a sphere with given radius at the origin of coordinate system.
2958 theName Object name; when specified, this parameter is used
2959 for result publication in the study. Otherwise, if automatic
2960 publication is switched on, default value is used for result name.
2963 New GEOM.GEOM_Object, containing the created sphere.
2965 # Example: see GEOM_TestAll.py
2966 theR,Parameters = ParseParameters(theR)
2967 anObj = self.PrimOp.MakeSphereR(theR)
2968 RaiseIfFailed("MakeSphereR", self.PrimOp)
2969 anObj.SetParameters(Parameters)
2970 self._autoPublish(anObj, theName, "sphere")
2973 ## Create a cone with given base point, axis, height and radiuses.
2974 # @param thePnt Central point of the first cone base.
2975 # @param theAxis Cone axis.
2976 # @param theR1 Radius of the first cone base.
2977 # @param theR2 Radius of the second cone base.
2978 # \note If both radiuses are non-zero, the cone will be truncated.
2979 # \note If the radiuses are equal, a cylinder will be created instead.
2980 # @param theH Cone height.
2981 # @param theName Object name; when specified, this parameter is used
2982 # for result publication in the study. Otherwise, if automatic
2983 # publication is switched on, default value is used for result name.
2985 # @return New GEOM.GEOM_Object, containing the created cone.
2987 # @ref tui_creation_cone "Example"
2988 def MakeCone(self, thePnt, theAxis, theR1, theR2, theH, theName=None):
2990 Create a cone with given base point, axis, height and radiuses.
2993 thePnt Central point of the first cone base.
2995 theR1 Radius of the first cone base.
2996 theR2 Radius of the second cone base.
2998 theName Object name; when specified, this parameter is used
2999 for result publication in the study. Otherwise, if automatic
3000 publication is switched on, default value is used for result name.
3003 If both radiuses are non-zero, the cone will be truncated.
3004 If the radiuses are equal, a cylinder will be created instead.
3007 New GEOM.GEOM_Object, containing the created cone.
3009 # Example: see GEOM_TestAll.py
3010 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
3011 anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
3012 RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp)
3013 anObj.SetParameters(Parameters)
3014 self._autoPublish(anObj, theName, "cone")
3017 ## Create a cone with given height and radiuses at
3018 # the origin of coordinate system. Axis of the cone will
3019 # be collinear to the OZ axis of the coordinate system.
3020 # @param theR1 Radius of the first cone base.
3021 # @param theR2 Radius of the second cone base.
3022 # \note If both radiuses are non-zero, the cone will be truncated.
3023 # \note If the radiuses are equal, a cylinder will be created instead.
3024 # @param theH Cone height.
3025 # @param theName Object name; when specified, this parameter is used
3026 # for result publication in the study. Otherwise, if automatic
3027 # publication is switched on, default value is used for result name.
3029 # @return New GEOM.GEOM_Object, containing the created cone.
3031 # @ref tui_creation_cone "Example"
3032 def MakeConeR1R2H(self, theR1, theR2, theH, theName=None):
3034 Create a cone with given height and radiuses at
3035 the origin of coordinate system. Axis of the cone will
3036 be collinear to the OZ axis of the coordinate system.
3039 theR1 Radius of the first cone base.
3040 theR2 Radius of the second cone base.
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 If both radiuses are non-zero, the cone will be truncated.
3048 If the radiuses are equal, a cylinder will be created instead.
3051 New GEOM.GEOM_Object, containing the created cone.
3053 # Example: see GEOM_TestAll.py
3054 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
3055 anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH)
3056 RaiseIfFailed("MakeConeR1R2H", self.PrimOp)
3057 anObj.SetParameters(Parameters)
3058 self._autoPublish(anObj, theName, "cone")
3061 ## Create a torus with given center, normal vector and radiuses.
3062 # @param thePnt Torus central point.
3063 # @param theVec Torus axis of symmetry.
3064 # @param theRMajor Torus major radius.
3065 # @param theRMinor Torus minor radius.
3066 # @param theName Object name; when specified, this parameter is used
3067 # for result publication in the study. Otherwise, if automatic
3068 # publication is switched on, default value is used for result name.
3070 # @return New GEOM.GEOM_Object, containing the created torus.
3072 # @ref tui_creation_torus "Example"
3073 def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor, theName=None):
3075 Create a torus with given center, normal vector and radiuses.
3078 thePnt Torus central point.
3079 theVec Torus axis of symmetry.
3080 theRMajor Torus major radius.
3081 theRMinor Torus minor radius.
3082 theName Object name; when specified, this parameter is used
3083 for result publication in the study. Otherwise, if automatic
3084 publication is switched on, default value is used for result name.
3087 New GEOM.GEOM_Object, containing the created torus.
3089 # Example: see GEOM_TestAll.py
3090 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3091 anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
3092 RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp)
3093 anObj.SetParameters(Parameters)
3094 self._autoPublish(anObj, theName, "torus")
3097 ## Create a torus with given radiuses at the origin of coordinate system.
3098 # @param theRMajor Torus major radius.
3099 # @param theRMinor Torus minor radius.
3100 # @param theName Object name; when specified, this parameter is used
3101 # for result publication in the study. Otherwise, if automatic
3102 # publication is switched on, default value is used for result name.
3104 # @return New GEOM.GEOM_Object, containing the created torus.
3106 # @ref tui_creation_torus "Example"
3107 def MakeTorusRR(self, theRMajor, theRMinor, theName=None):
3109 Create a torus with given radiuses at the origin of coordinate system.
3112 theRMajor Torus major radius.
3113 theRMinor Torus minor radius.
3114 theName Object name; when specified, this parameter is used
3115 for result publication in the study. Otherwise, if automatic
3116 publication is switched on, default value is used for result name.
3119 New GEOM.GEOM_Object, containing the created torus.
3121 # Example: see GEOM_TestAll.py
3122 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3123 anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor)
3124 RaiseIfFailed("MakeTorusRR", self.PrimOp)
3125 anObj.SetParameters(Parameters)
3126 self._autoPublish(anObj, theName, "torus")
3129 # end of l3_3d_primitives
3132 ## @addtogroup l3_complex
3135 ## Create a shape by extrusion of the base shape along a vector, defined by two points.
3136 # @param theBase Base shape to be extruded.
3137 # @param thePoint1 First end of extrusion vector.
3138 # @param thePoint2 Second end of extrusion vector.
3139 # @param theScaleFactor Use it to make prism with scaled second base.
3140 # Nagative value means not scaled second base.
3141 # @param theName Object name; when specified, this parameter is used
3142 # for result publication in the study. Otherwise, if automatic
3143 # publication is switched on, default value is used for result name.
3145 # @return New GEOM.GEOM_Object, containing the created prism.
3147 # @ref tui_creation_prism "Example"
3148 def MakePrism(self, theBase, thePoint1, thePoint2, theScaleFactor = -1.0, theName=None):
3150 Create a shape by extrusion of the base shape along a vector, defined by two points.
3153 theBase Base shape to be extruded.
3154 thePoint1 First end of extrusion vector.
3155 thePoint2 Second end of extrusion vector.
3156 theScaleFactor Use it to make prism with scaled second base.
3157 Nagative value means not scaled second base.
3158 theName Object name; when specified, this parameter is used
3159 for result publication in the study. Otherwise, if automatic
3160 publication is switched on, default value is used for result name.
3163 New GEOM.GEOM_Object, containing the created prism.
3165 # Example: see GEOM_TestAll.py
3168 if theScaleFactor > 0:
3169 theScaleFactor,Parameters = ParseParameters(theScaleFactor)
3170 anObj = self.PrimOp.MakePrismTwoPntWithScaling(theBase, thePoint1, thePoint2, theScaleFactor)
3172 anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2)
3173 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3174 anObj.SetParameters(Parameters)
3175 self._autoPublish(anObj, theName, "prism")
3178 ## Create a shape by extrusion of the base shape along a
3179 # vector, defined by two points, in 2 Ways (forward/backward).
3180 # @param theBase Base shape to be extruded.
3181 # @param thePoint1 First end of extrusion vector.
3182 # @param thePoint2 Second end of extrusion vector.
3183 # @param theName Object name; when specified, this parameter is used
3184 # for result publication in the study. Otherwise, if automatic
3185 # publication is switched on, default value is used for result name.
3187 # @return New GEOM.GEOM_Object, containing the created prism.
3189 # @ref tui_creation_prism "Example"
3190 def MakePrism2Ways(self, theBase, thePoint1, thePoint2, theName=None):
3192 Create a shape by extrusion of the base shape along a
3193 vector, defined by two points, in 2 Ways (forward/backward).
3196 theBase Base shape to be extruded.
3197 thePoint1 First end of extrusion vector.
3198 thePoint2 Second end of extrusion vector.
3199 theName Object name; when specified, this parameter is used
3200 for result publication in the study. Otherwise, if automatic
3201 publication is switched on, default value is used for result name.
3204 New GEOM.GEOM_Object, containing the created prism.
3206 # Example: see GEOM_TestAll.py
3207 anObj = self.PrimOp.MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2)
3208 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3209 self._autoPublish(anObj, theName, "prism")
3212 ## Create a shape by extrusion of the base shape along the vector,
3213 # i.e. all the space, transfixed by the base shape during its translation
3214 # along the vector on the given distance.
3215 # @param theBase Base shape to be extruded.
3216 # @param theVec Direction of extrusion.
3217 # @param theH Prism dimension along theVec.
3218 # @param theScaleFactor Use it to make prism with scaled second base.
3219 # Negative value means not scaled second base.
3220 # @param theName Object name; when specified, this parameter is used
3221 # for result publication in the study. Otherwise, if automatic
3222 # publication is switched on, default value is used for result name.
3224 # @return New GEOM.GEOM_Object, containing the created prism.
3226 # @ref tui_creation_prism "Example"
3227 def MakePrismVecH(self, theBase, theVec, theH, theScaleFactor = -1.0, theName=None):
3229 Create a shape by extrusion of the base shape along the vector,
3230 i.e. all the space, transfixed by the base shape during its translation
3231 along the vector on the given distance.
3234 theBase Base shape to be extruded.
3235 theVec Direction of extrusion.
3236 theH Prism dimension along theVec.
3237 theScaleFactor Use it to make prism with scaled second base.
3238 Negative value means not scaled second base.
3239 theName Object name; when specified, this parameter is used
3240 for result publication in the study. Otherwise, if automatic
3241 publication is switched on, default value is used for result name.
3244 New GEOM.GEOM_Object, containing the created prism.
3246 # Example: see GEOM_TestAll.py
3249 if theScaleFactor > 0:
3250 theH,theScaleFactor,Parameters = ParseParameters(theH,theScaleFactor)
3251 anObj = self.PrimOp.MakePrismVecHWithScaling(theBase, theVec, theH, theScaleFactor)
3253 theH,Parameters = ParseParameters(theH)
3254 anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
3255 RaiseIfFailed("MakePrismVecH", self.PrimOp)
3256 anObj.SetParameters(Parameters)
3257 self._autoPublish(anObj, theName, "prism")
3260 ## Create a shape by extrusion of the base shape along the vector,
3261 # i.e. all the space, transfixed by the base shape during its translation
3262 # along the vector on the given distance in 2 Ways (forward/backward).
3263 # @param theBase Base shape to be extruded.
3264 # @param theVec Direction of extrusion.
3265 # @param theH Prism dimension along theVec in forward direction.
3266 # @param theName Object name; when specified, this parameter is used
3267 # for result publication in the study. Otherwise, if automatic
3268 # publication is switched on, default value is used for result name.
3270 # @return New GEOM.GEOM_Object, containing the created prism.
3272 # @ref tui_creation_prism "Example"
3273 def MakePrismVecH2Ways(self, theBase, theVec, theH, theName=None):
3275 Create a shape by extrusion of the base shape along the vector,
3276 i.e. all the space, transfixed by the base shape during its translation
3277 along the vector on the given distance in 2 Ways (forward/backward).
3280 theBase Base shape to be extruded.
3281 theVec Direction of extrusion.
3282 theH Prism dimension along theVec in forward direction.
3283 theName Object name; when specified, this parameter is used
3284 for result publication in the study. Otherwise, if automatic
3285 publication is switched on, default value is used for result name.
3288 New GEOM.GEOM_Object, containing the created prism.
3290 # Example: see GEOM_TestAll.py
3291 theH,Parameters = ParseParameters(theH)
3292 anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH)
3293 RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp)
3294 anObj.SetParameters(Parameters)
3295 self._autoPublish(anObj, theName, "prism")
3298 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3299 # @param theBase Base shape to be extruded.
3300 # @param theDX, theDY, theDZ Directions of extrusion.
3301 # @param theScaleFactor Use it to make prism with scaled second base.
3302 # Nagative value means not scaled second base.
3303 # @param theName Object name; when specified, this parameter is used
3304 # for result publication in the study. Otherwise, if automatic
3305 # publication is switched on, default value is used for result name.
3307 # @return New GEOM.GEOM_Object, containing the created prism.
3309 # @ref tui_creation_prism "Example"
3310 def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ, theScaleFactor = -1.0, theName=None):
3312 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3315 theBase Base shape to be extruded.
3316 theDX, theDY, theDZ Directions of extrusion.
3317 theScaleFactor Use it to make prism with scaled second base.
3318 Nagative value means not scaled second base.
3319 theName Object name; when specified, this parameter is used
3320 for result publication in the study. Otherwise, if automatic
3321 publication is switched on, default value is used for result name.
3324 New GEOM.GEOM_Object, containing the created prism.
3326 # Example: see GEOM_TestAll.py
3329 if theScaleFactor > 0:
3330 theDX,theDY,theDZ,theScaleFactor,Parameters = ParseParameters(theDX, theDY, theDZ, theScaleFactor)
3331 anObj = self.PrimOp.MakePrismDXDYDZWithScaling(theBase, theDX, theDY, theDZ, theScaleFactor)
3333 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3334 anObj = self.PrimOp.MakePrismDXDYDZ(theBase, theDX, theDY, theDZ)
3335 RaiseIfFailed("MakePrismDXDYDZ", self.PrimOp)
3336 anObj.SetParameters(Parameters)
3337 self._autoPublish(anObj, theName, "prism")
3340 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3341 # i.e. all the space, transfixed by the base shape during its translation
3342 # along the vector on the given distance in 2 Ways (forward/backward).
3343 # @param theBase Base shape to be extruded.
3344 # @param theDX, theDY, theDZ Directions of extrusion.
3345 # @param theName Object name; when specified, this parameter is used
3346 # for result publication in the study. Otherwise, if automatic
3347 # publication is switched on, default value is used for result name.
3349 # @return New GEOM.GEOM_Object, containing the created prism.
3351 # @ref tui_creation_prism "Example"
3352 def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ, theName=None):
3354 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3355 i.e. all the space, transfixed by the base shape during its translation
3356 along the vector on the given distance in 2 Ways (forward/backward).
3359 theBase Base shape to be extruded.
3360 theDX, theDY, theDZ Directions of extrusion.
3361 theName Object name; when specified, this parameter is used
3362 for result publication in the study. Otherwise, if automatic
3363 publication is switched on, default value is used for result name.
3366 New GEOM.GEOM_Object, containing the created prism.
3368 # Example: see GEOM_TestAll.py
3369 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3370 anObj = self.PrimOp.MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ)
3371 RaiseIfFailed("MakePrismDXDYDZ2Ways", self.PrimOp)
3372 anObj.SetParameters(Parameters)
3373 self._autoPublish(anObj, theName, "prism")
3376 ## Create a shape by revolution of the base shape around the axis
3377 # on the given angle, i.e. all the space, transfixed by the base
3378 # shape during its rotation around the axis on the given angle.
3379 # @param theBase Base shape to be rotated.
3380 # @param theAxis Rotation axis.
3381 # @param theAngle Rotation angle in radians.
3382 # @param theName Object name; when specified, this parameter is used
3383 # for result publication in the study. Otherwise, if automatic
3384 # publication is switched on, default value is used for result name.
3386 # @return New GEOM.GEOM_Object, containing the created revolution.
3388 # @ref tui_creation_revolution "Example"
3389 def MakeRevolution(self, theBase, theAxis, theAngle, theName=None):
3391 Create a shape by revolution of the base shape around the axis
3392 on the given angle, i.e. all the space, transfixed by the base
3393 shape during its rotation around the axis on the given angle.
3396 theBase Base shape to be rotated.
3397 theAxis Rotation axis.
3398 theAngle Rotation angle in radians.
3399 theName Object name; when specified, this parameter is used
3400 for result publication in the study. Otherwise, if automatic
3401 publication is switched on, default value is used for result name.
3404 New GEOM.GEOM_Object, containing the created revolution.
3406 # Example: see GEOM_TestAll.py
3407 theAngle,Parameters = ParseParameters(theAngle)
3408 anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
3409 RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
3410 anObj.SetParameters(Parameters)
3411 self._autoPublish(anObj, theName, "revolution")
3414 ## Create a shape by revolution of the base shape around the axis
3415 # on the given angle, i.e. all the space, transfixed by the base
3416 # shape during its rotation around the axis on the given angle in
3417 # both directions (forward/backward)
3418 # @param theBase Base shape to be rotated.
3419 # @param theAxis Rotation axis.
3420 # @param theAngle Rotation angle in radians.
3421 # @param theName Object name; when specified, this parameter is used
3422 # for result publication in the study. Otherwise, if automatic
3423 # publication is switched on, default value is used for result name.
3425 # @return New GEOM.GEOM_Object, containing the created revolution.
3427 # @ref tui_creation_revolution "Example"
3428 def MakeRevolution2Ways(self, theBase, theAxis, theAngle, theName=None):
3430 Create a shape by revolution of the base shape around the axis
3431 on the given angle, i.e. all the space, transfixed by the base
3432 shape during its rotation around the axis on the given angle in
3433 both directions (forward/backward).
3436 theBase Base shape to be rotated.
3437 theAxis Rotation axis.
3438 theAngle Rotation angle in radians.
3439 theName Object name; when specified, this parameter is used
3440 for result publication in the study. Otherwise, if automatic
3441 publication is switched on, default value is used for result name.
3444 New GEOM.GEOM_Object, containing the created revolution.
3446 theAngle,Parameters = ParseParameters(theAngle)
3447 anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle)
3448 RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp)
3449 anObj.SetParameters(Parameters)
3450 self._autoPublish(anObj, theName, "revolution")
3453 ## Create a filling from the given compound of contours.
3454 # @param theShape the compound of contours
3455 # @param theMinDeg a minimal degree of BSpline surface to create
3456 # @param theMaxDeg a maximal degree of BSpline surface to create
3457 # @param theTol2D a 2d tolerance to be reached
3458 # @param theTol3D a 3d tolerance to be reached
3459 # @param theNbIter a number of iteration of approximation algorithm
3460 # @param theMethod Kind of method to perform filling operation(see GEOM::filling_oper_method())
3461 # @param isApprox if True, BSpline curves are generated in the process
3462 # of surface construction. By default it is False, that means
3463 # the surface is created using given curves. The usage of
3464 # Approximation makes the algorithm work slower, but allows
3465 # building the surface for rather complex cases.
3466 # @param theName Object name; when specified, this parameter is used
3467 # for result publication in the study. Otherwise, if automatic
3468 # publication is switched on, default value is used for result name.
3470 # @return New GEOM.GEOM_Object, containing the created filling surface.
3472 # @ref tui_creation_filling "Example"
3473 def MakeFilling(self, theShape, theMinDeg=2, theMaxDeg=5, theTol2D=0.0001,
3474 theTol3D=0.0001, theNbIter=0, theMethod=GEOM.FOM_Default, isApprox=0, theName=None):
3476 Create a filling from the given compound of contours.
3479 theShape the compound of contours
3480 theMinDeg a minimal degree of BSpline surface to create
3481 theMaxDeg a maximal degree of BSpline surface to create
3482 theTol2D a 2d tolerance to be reached
3483 theTol3D a 3d tolerance to be reached
3484 theNbIter a number of iteration of approximation algorithm
3485 theMethod Kind of method to perform filling operation(see GEOM::filling_oper_method())
3486 isApprox if True, BSpline curves are generated in the process
3487 of surface construction. By default it is False, that means
3488 the surface is created using given curves. The usage of
3489 Approximation makes the algorithm work slower, but allows
3490 building the surface for rather complex cases
3491 theName Object name; when specified, this parameter is used
3492 for result publication in the study. Otherwise, if automatic
3493 publication is switched on, default value is used for result name.
3496 New GEOM.GEOM_Object, containing the created filling surface.
3499 filling = geompy.MakeFilling(compound, 2, 5, 0.0001, 0.0001, 5)
3501 # Example: see GEOM_TestAll.py
3502 theMinDeg,theMaxDeg,theTol2D,theTol3D,theNbIter,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter)
3503 anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg,
3504 theTol2D, theTol3D, theNbIter,
3505 theMethod, isApprox)
3506 RaiseIfFailed("MakeFilling", self.PrimOp)
3507 anObj.SetParameters(Parameters)
3508 self._autoPublish(anObj, theName, "filling")
3512 ## Create a filling from the given compound of contours.
3513 # This method corresponds to MakeFilling with isApprox=True
3514 # @param theShape the compound of contours
3515 # @param theMinDeg a minimal degree of BSpline surface to create
3516 # @param theMaxDeg a maximal degree of BSpline surface to create
3517 # @param theTol3D a 3d tolerance to be reached
3518 # @param theName Object name; when specified, this parameter is used
3519 # for result publication in the study. Otherwise, if automatic
3520 # publication is switched on, default value is used for result name.
3522 # @return New GEOM.GEOM_Object, containing the created filling surface.
3524 # @ref tui_creation_filling "Example"
3525 def MakeFillingNew(self, theShape, theMinDeg=2, theMaxDeg=5, theTol3D=0.0001, theName=None):
3527 Create a filling from the given compound of contours.
3528 This method corresponds to MakeFilling with isApprox=True
3531 theShape the compound of contours
3532 theMinDeg a minimal degree of BSpline surface to create
3533 theMaxDeg a maximal degree of BSpline surface to create
3534 theTol3D a 3d tolerance to be reached
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 filling surface.
3543 filling = geompy.MakeFillingNew(compound, 2, 5, 0.0001)
3545 # Example: see GEOM_TestAll.py
3546 theMinDeg,theMaxDeg,theTol3D,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol3D)
3547 anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg,
3548 0, theTol3D, 0, GEOM.FOM_Default, True)
3549 RaiseIfFailed("MakeFillingNew", self.PrimOp)
3550 anObj.SetParameters(Parameters)
3551 self._autoPublish(anObj, theName, "filling")
3554 ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3555 # @param theSeqSections - set of specified sections.
3556 # @param theModeSolid - mode defining building solid or shell
3557 # @param thePreci - precision 3D used for smoothing
3558 # @param theRuled - mode defining type of the result surfaces (ruled or smoothed).
3559 # @param theName Object name; when specified, this parameter is used
3560 # for result publication in the study. Otherwise, if automatic
3561 # publication is switched on, default value is used for result name.
3563 # @return New GEOM.GEOM_Object, containing the created shell or solid.
3565 # @ref swig_todo "Example"
3566 def MakeThruSections(self, theSeqSections, theModeSolid, thePreci, theRuled, theName=None):
3568 Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3571 theSeqSections - set of specified sections.
3572 theModeSolid - mode defining building solid or shell
3573 thePreci - precision 3D used for smoothing
3574 theRuled - mode defining type of the result surfaces (ruled or smoothed).
3575 theName Object name; when specified, this parameter is used
3576 for result publication in the study. Otherwise, if automatic
3577 publication is switched on, default value is used for result name.
3580 New GEOM.GEOM_Object, containing the created shell or solid.
3582 # Example: see GEOM_TestAll.py
3583 anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
3584 RaiseIfFailed("MakeThruSections", self.PrimOp)
3585 self._autoPublish(anObj, theName, "filling")
3588 ## Create a shape by extrusion of the base shape along
3589 # the path shape. The path shape can be a wire or an edge.
3590 # @param theBase Base shape to be extruded.
3591 # @param thePath Path shape to extrude the base shape along it.
3592 # @param theName Object name; when specified, this parameter is used
3593 # for result publication in the study. Otherwise, if automatic
3594 # publication is switched on, default value is used for result name.
3596 # @return New GEOM.GEOM_Object, containing the created pipe.
3598 # @ref tui_creation_pipe "Example"
3599 def MakePipe(self, theBase, thePath, theName=None):
3601 Create a shape by extrusion of the base shape along
3602 the path shape. The path shape can be a wire or an edge.
3605 theBase Base shape to be extruded.
3606 thePath Path shape to extrude the base shape along it.
3607 theName Object name; when specified, this parameter is used
3608 for result publication in the study. Otherwise, if automatic
3609 publication is switched on, default value is used for result name.
3612 New GEOM.GEOM_Object, containing the created pipe.
3614 # Example: see GEOM_TestAll.py
3615 anObj = self.PrimOp.MakePipe(theBase, thePath)
3616 RaiseIfFailed("MakePipe", self.PrimOp)
3617 self._autoPublish(anObj, theName, "pipe")
3620 ## Create a shape by extrusion of the profile shape along
3621 # the path shape. The path shape can be a wire or an edge.
3622 # the several profiles can be specified in the several locations of path.
3623 # @param theSeqBases - list of Bases shape to be extruded.
3624 # @param theLocations - list of locations on the path corresponding
3625 # specified list of the Bases shapes. Number of locations
3626 # should be equal to number of bases or list of locations can be empty.
3627 # @param thePath - Path shape to extrude the base shape along it.
3628 # @param theWithContact - the mode defining that the section is translated to be in
3629 # contact with the spine.
3630 # @param theWithCorrection - defining that the section is rotated to be
3631 # orthogonal to the spine tangent in the correspondent point
3632 # @param theName Object name; when specified, this parameter is used
3633 # for result publication in the study. Otherwise, if automatic
3634 # publication is switched on, default value is used for result name.
3636 # @return New GEOM.GEOM_Object, containing the created pipe.
3638 # @ref tui_creation_pipe_with_diff_sec "Example"
3639 def MakePipeWithDifferentSections(self, theSeqBases,
3640 theLocations, thePath,
3641 theWithContact, theWithCorrection, theName=None):
3643 Create a shape by extrusion of the profile shape along
3644 the path shape. The path shape can be a wire or an edge.
3645 the several profiles can be specified in the several locations of path.
3648 theSeqBases - list of Bases shape to be extruded.
3649 theLocations - list of locations on the path corresponding
3650 specified list of the Bases shapes. Number of locations
3651 should be equal to number of bases or list of locations can be empty.
3652 thePath - Path shape to extrude the base shape along it.
3653 theWithContact - the mode defining that the section is translated to be in
3654 contact with the spine(0/1)
3655 theWithCorrection - defining that the section is rotated to be
3656 orthogonal to the spine tangent in the correspondent point (0/1)
3657 theName Object name; when specified, this parameter is used
3658 for result publication in the study. Otherwise, if automatic
3659 publication is switched on, default value is used for result name.
3662 New GEOM.GEOM_Object, containing the created pipe.
3664 anObj = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
3665 theLocations, thePath,
3666 theWithContact, theWithCorrection)
3667 RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp)
3668 self._autoPublish(anObj, theName, "pipe")
3671 ## Create a shape by extrusion of the profile shape along
3672 # the path shape. The path shape can be a wire or a edge.
3673 # the several profiles can be specified in the several locations of path.
3674 # @param theSeqBases - list of Bases shape to be extruded. Base shape must be
3675 # shell or face. If number of faces in neighbour sections
3676 # aren't coincided result solid between such sections will
3677 # be created using external boundaries of this shells.
3678 # @param theSeqSubBases - list of corresponding sub-shapes of section shapes.
3679 # This list is used for searching correspondences between
3680 # faces in the sections. Size of this list must be equal
3681 # to size of list of base shapes.
3682 # @param theLocations - list of locations on the path corresponding
3683 # specified list of the Bases shapes. Number of locations
3684 # should be equal to number of bases. First and last
3685 # locations must be coincided with first and last vertexes
3686 # of path correspondingly.
3687 # @param thePath - Path shape to extrude the base shape along it.
3688 # @param theWithContact - the mode defining that the section is translated to be in
3689 # contact with the spine.
3690 # @param theWithCorrection - defining that the section is rotated to be
3691 # orthogonal to the spine tangent in the correspondent point
3692 # @param theName Object name; when specified, this parameter is used
3693 # for result publication in the study. Otherwise, if automatic
3694 # publication is switched on, default value is used for result name.
3696 # @return New GEOM.GEOM_Object, containing the created solids.
3698 # @ref tui_creation_pipe_with_shell_sec "Example"
3699 def MakePipeWithShellSections(self, theSeqBases, theSeqSubBases,
3700 theLocations, thePath,
3701 theWithContact, theWithCorrection, theName=None):
3703 Create a shape by extrusion of the profile shape along
3704 the path shape. The path shape can be a wire or a edge.
3705 the several profiles can be specified in the several locations of path.
3708 theSeqBases - list of Bases shape to be extruded. Base shape must be
3709 shell or face. If number of faces in neighbour sections
3710 aren't coincided result solid between such sections will
3711 be created using external boundaries of this shells.
3712 theSeqSubBases - list of corresponding sub-shapes of section shapes.
3713 This list is used for searching correspondences between
3714 faces in the sections. Size of this list must be equal
3715 to size of list of base shapes.
3716 theLocations - list of locations on the path corresponding
3717 specified list of the Bases shapes. Number of locations
3718 should be equal to number of bases. First and last
3719 locations must be coincided with first and last vertexes
3720 of path correspondingly.
3721 thePath - Path shape to extrude the base shape along it.
3722 theWithContact - the mode defining that the section is translated to be in
3723 contact with the spine (0/1)
3724 theWithCorrection - defining that the section is rotated to be
3725 orthogonal to the spine tangent in the correspondent point (0/1)
3726 theName Object name; when specified, this parameter is used
3727 for result publication in the study. Otherwise, if automatic
3728 publication is switched on, default value is used for result name.
3731 New GEOM.GEOM_Object, containing the created solids.
3733 anObj = self.PrimOp.MakePipeWithShellSections(theSeqBases, theSeqSubBases,
3734 theLocations, thePath,
3735 theWithContact, theWithCorrection)
3736 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
3737 self._autoPublish(anObj, theName, "pipe")
3740 ## Create a shape by extrusion of the profile shape along
3741 # the path shape. This function is used only for debug pipe
3742 # functionality - it is a version of function MakePipeWithShellSections()
3743 # which give a possibility to recieve information about
3744 # creating pipe between each pair of sections step by step.
3745 def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases,
3746 theLocations, thePath,
3747 theWithContact, theWithCorrection, theName=None):
3749 Create a shape by extrusion of the profile shape along
3750 the path shape. This function is used only for debug pipe
3751 functionality - it is a version of previous function
3752 geompy.MakePipeWithShellSections() which give a possibility to
3753 recieve information about creating pipe between each pair of
3754 sections step by step.
3757 nbsect = len(theSeqBases)
3758 nbsubsect = len(theSeqSubBases)
3759 #print "nbsect = ",nbsect
3760 for i in range(1,nbsect):
3762 tmpSeqBases = [ theSeqBases[i-1], theSeqBases[i] ]
3763 tmpLocations = [ theLocations[i-1], theLocations[i] ]
3765 if nbsubsect>0: tmpSeqSubBases = [ theSeqSubBases[i-1], theSeqSubBases[i] ]
3766 anObj = self.PrimOp.MakePipeWithShellSections(tmpSeqBases, tmpSeqSubBases,
3767 tmpLocations, thePath,
3768 theWithContact, theWithCorrection)
3769 if self.PrimOp.IsDone() == 0:
3770 print "Problems with pipe creation between ",i," and ",i+1," sections"
3771 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
3774 print "Pipe between ",i," and ",i+1," sections is OK"
3779 resc = self.MakeCompound(res)
3780 #resc = self.MakeSewing(res, 0.001)
3781 #print "resc: ",resc
3782 self._autoPublish(resc, theName, "pipe")
3785 ## Create solids between given sections
3786 # @param theSeqBases - list of sections (shell or face).
3787 # @param theLocations - list of corresponding vertexes
3788 # @param theName Object name; when specified, this parameter is used
3789 # for result publication in the study. Otherwise, if automatic
3790 # publication is switched on, default value is used for result name.
3792 # @return New GEOM.GEOM_Object, containing the created solids.
3794 # @ref tui_creation_pipe_without_path "Example"
3795 def MakePipeShellsWithoutPath(self, theSeqBases, theLocations, theName=None):
3797 Create solids between given sections
3800 theSeqBases - list of sections (shell or face).
3801 theLocations - list of corresponding vertexes
3802 theName Object name; when specified, this parameter is used
3803 for result publication in the study. Otherwise, if automatic
3804 publication is switched on, default value is used for result name.
3807 New GEOM.GEOM_Object, containing the created solids.
3809 anObj = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations)
3810 RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp)
3811 self._autoPublish(anObj, theName, "pipe")
3814 ## Create a shape by extrusion of the base shape along
3815 # the path shape with constant bi-normal direction along the given vector.
3816 # The path shape can be a wire or an edge.
3817 # @param theBase Base shape to be extruded.
3818 # @param thePath Path shape to extrude the base shape along it.
3819 # @param theVec Vector defines a constant binormal direction to keep the
3820 # same angle beetween the direction and the sections
3821 # along the sweep surface.
3822 # @param theName Object name; when specified, this parameter is used
3823 # for result publication in the study. Otherwise, if automatic
3824 # publication is switched on, default value is used for result name.
3826 # @return New GEOM.GEOM_Object, containing the created pipe.
3828 # @ref tui_creation_pipe "Example"
3829 def MakePipeBiNormalAlongVector(self, theBase, thePath, theVec, theName=None):
3831 Create a shape by extrusion of the base shape along
3832 the path shape with constant bi-normal direction along the given vector.
3833 The path shape can be a wire or an edge.
3836 theBase Base shape to be extruded.
3837 thePath Path shape to extrude the base shape along it.
3838 theVec Vector defines a constant binormal direction to keep the
3839 same angle beetween the direction and the sections
3840 along the sweep surface.
3841 theName Object name; when specified, this parameter is used
3842 for result publication in the study. Otherwise, if automatic
3843 publication is switched on, default value is used for result name.
3846 New GEOM.GEOM_Object, containing the created pipe.
3848 # Example: see GEOM_TestAll.py
3849 anObj = self.PrimOp.MakePipeBiNormalAlongVector(theBase, thePath, theVec)
3850 RaiseIfFailed("MakePipeBiNormalAlongVector", self.PrimOp)
3851 self._autoPublish(anObj, theName, "pipe")
3854 ## Makes a thick solid from a face or a shell
3855 # @param theShape Face or Shell to be thicken
3856 # @param theThickness Thickness of the resulting solid
3857 # @param theName Object name; when specified, this parameter is used
3858 # for result publication in the study. Otherwise, if automatic
3859 # publication is switched on, default value is used for result name.
3861 # @return New GEOM.GEOM_Object, containing the created solid
3863 def MakeThickSolid(self, theShape, theThickness, theName=None):
3865 Make a thick solid from a face or a shell
3868 theShape Face or Shell to be thicken
3869 theThickness Thickness of the resulting solid
3870 theName Object name; when specified, this parameter is used
3871 for result publication in the study. Otherwise, if automatic
3872 publication is switched on, default value is used for result name.
3875 New GEOM.GEOM_Object, containing the created solid
3877 # Example: see GEOM_TestAll.py
3878 anObj = self.PrimOp.MakeThickening(theShape, theThickness, True)
3879 RaiseIfFailed("MakeThickening", self.PrimOp)
3880 self._autoPublish(anObj, theName, "pipe")
3884 ## Modifies a face or a shell to make it a thick solid
3885 # @param theShape Face or Shell to be thicken
3886 # @param theThickness Thickness of the resulting solid
3888 # @return The modified shape
3890 def Thicken(self, theShape, theThickness):
3892 Modifies a face or a shell to make it a thick solid
3895 theBase Base shape to be extruded.
3896 thePath Path shape to extrude the base shape along it.
3897 theName Object name; when specified, this parameter is used
3898 for result publication in the study. Otherwise, if automatic
3899 publication is switched on, default value is used for result name.
3904 # Example: see GEOM_TestAll.py
3905 anObj = self.PrimOp.MakeThickening(theShape, theThickness, False)
3906 RaiseIfFailed("MakeThickening", self.PrimOp)
3909 ## Build a middle path of a pipe-like shape.
3910 # The path shape can be a wire or an edge.
3911 # @param theShape It can be closed or unclosed pipe-like shell
3912 # or a pipe-like solid.
3913 # @param theBase1, theBase2 Two bases of the supposed pipe. This
3914 # should be wires or faces of theShape.
3915 # @param theName Object name; when specified, this parameter is used
3916 # for result publication in the study. Otherwise, if automatic
3917 # publication is switched on, default value is used for result name.
3919 # @note It is not assumed that exact or approximate copy of theShape
3920 # can be obtained by applying existing Pipe operation on the
3921 # resulting "Path" wire taking theBase1 as the base - it is not
3922 # always possible; though in some particular cases it might work
3923 # it is not guaranteed. Thus, RestorePath function should not be
3924 # considered as an exact reverse operation of the Pipe.
3926 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
3927 # source pipe's "path".
3929 # @ref tui_creation_pipe_path "Example"
3930 def RestorePath (self, theShape, theBase1, theBase2, theName=None):
3932 Build a middle path of a pipe-like shape.
3933 The path shape can be a wire or an edge.
3936 theShape It can be closed or unclosed pipe-like shell
3937 or a pipe-like solid.
3938 theBase1, theBase2 Two bases of the supposed pipe. This
3939 should be wires or faces of theShape.
3940 theName Object name; when specified, this parameter is used
3941 for result publication in the study. Otherwise, if automatic
3942 publication is switched on, default value is used for result name.
3945 New GEOM_Object, containing an edge or wire that represent
3948 anObj = self.PrimOp.RestorePath(theShape, theBase1, theBase2)
3949 RaiseIfFailed("RestorePath", self.PrimOp)
3950 self._autoPublish(anObj, theName, "path")
3953 ## Build a middle path of a pipe-like shape.
3954 # The path shape can be a wire or an edge.
3955 # @param theShape It can be closed or unclosed pipe-like shell
3956 # or a pipe-like solid.
3957 # @param listEdges1, listEdges2 Two bases of the supposed pipe. This
3958 # should be lists of edges of theShape.
3959 # @param theName Object name; when specified, this parameter is used
3960 # for result publication in the study. Otherwise, if automatic
3961 # publication is switched on, default value is used for result name.
3963 # @note It is not assumed that exact or approximate copy of theShape
3964 # can be obtained by applying existing Pipe operation on the
3965 # resulting "Path" wire taking theBase1 as the base - it is not
3966 # always possible; though in some particular cases it might work
3967 # it is not guaranteed. Thus, RestorePath function should not be
3968 # considered as an exact reverse operation of the Pipe.
3970 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
3971 # source pipe's "path".
3973 # @ref tui_creation_pipe_path "Example"
3974 def RestorePathEdges (self, theShape, listEdges1, listEdges2, theName=None):
3976 Build a middle path of a pipe-like shape.
3977 The path shape can be a wire or an edge.
3980 theShape It can be closed or unclosed pipe-like shell
3981 or a pipe-like solid.
3982 listEdges1, listEdges2 Two bases of the supposed pipe. This
3983 should be lists of edges of theShape.
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_Object, containing an edge or wire that represent
3992 anObj = self.PrimOp.RestorePathEdges(theShape, listEdges1, listEdges2)
3993 RaiseIfFailed("RestorePath", self.PrimOp)
3994 self._autoPublish(anObj, theName, "path")
4000 ## @addtogroup l3_advanced
4003 ## Create a linear edge with specified ends.
4004 # @param thePnt1 Point for the first end of edge.
4005 # @param thePnt2 Point for the second end of edge.
4006 # @param theName Object name; when specified, this parameter is used
4007 # for result publication in the study. Otherwise, if automatic
4008 # publication is switched on, default value is used for result name.
4010 # @return New GEOM.GEOM_Object, containing the created edge.
4012 # @ref tui_creation_edge "Example"
4013 def MakeEdge(self, thePnt1, thePnt2, theName=None):
4015 Create a linear edge with specified ends.
4018 thePnt1 Point for the first end of edge.
4019 thePnt2 Point for the second end of edge.
4020 theName Object name; when specified, this parameter is used
4021 for result publication in the study. Otherwise, if automatic
4022 publication is switched on, default value is used for result name.
4025 New GEOM.GEOM_Object, containing the created edge.
4027 # Example: see GEOM_TestAll.py
4028 anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2)
4029 RaiseIfFailed("MakeEdge", self.ShapesOp)
4030 self._autoPublish(anObj, theName, "edge")
4033 ## Create a new edge, corresponding to the given length on the given curve.
4034 # @param theRefCurve The referenced curve (edge).
4035 # @param theLength Length on the referenced curve. It can be negative.
4036 # @param theStartPoint Any point can be selected for it, the new edge will begin
4037 # at the end of \a theRefCurve, close to the selected point.
4038 # If None, start from the first point of \a theRefCurve.
4039 # @param theName Object name; when specified, this parameter is used
4040 # for result publication in the study. Otherwise, if automatic
4041 # publication is switched on, default value is used for result name.
4043 # @return New GEOM.GEOM_Object, containing the created edge.
4045 # @ref tui_creation_edge "Example"
4046 def MakeEdgeOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
4048 Create a new edge, corresponding to the given length on the given curve.
4051 theRefCurve The referenced curve (edge).
4052 theLength Length on the referenced curve. It can be negative.
4053 theStartPoint Any point can be selected for it, the new edge will begin
4054 at the end of theRefCurve, close to the selected point.
4055 If None, start from the first point of theRefCurve.
4056 theName Object name; when specified, this parameter is used
4057 for result publication in the study. Otherwise, if automatic
4058 publication is switched on, default value is used for result name.
4061 New GEOM.GEOM_Object, containing the created edge.
4063 # Example: see GEOM_TestAll.py
4064 theLength, Parameters = ParseParameters(theLength)
4065 anObj = self.ShapesOp.MakeEdgeOnCurveByLength(theRefCurve, theLength, theStartPoint)
4066 RaiseIfFailed("MakeEdgeOnCurveByLength", self.ShapesOp)
4067 anObj.SetParameters(Parameters)
4068 self._autoPublish(anObj, theName, "edge")
4071 ## Create an edge from specified wire.
4072 # @param theWire source Wire
4073 # @param theLinearTolerance linear tolerance value (default = 1e-07)
4074 # @param theAngularTolerance angular tolerance value (default = 1e-12)
4075 # @param theName Object name; when specified, this parameter is used
4076 # for result publication in the study. Otherwise, if automatic
4077 # publication is switched on, default value is used for result name.
4079 # @return New GEOM.GEOM_Object, containing the created edge.
4081 # @ref tui_creation_edge "Example"
4082 def MakeEdgeWire(self, theWire, theLinearTolerance = 1e-07, theAngularTolerance = 1e-12, theName=None):
4084 Create an edge from specified wire.
4088 theLinearTolerance linear tolerance value (default = 1e-07)
4089 theAngularTolerance angular tolerance value (default = 1e-12)
4090 theName Object name; when specified, this parameter is used
4091 for result publication in the study. Otherwise, if automatic
4092 publication is switched on, default value is used for result name.
4095 New GEOM.GEOM_Object, containing the created edge.
4097 # Example: see GEOM_TestAll.py
4098 anObj = self.ShapesOp.MakeEdgeWire(theWire, theLinearTolerance, theAngularTolerance)
4099 RaiseIfFailed("MakeEdgeWire", self.ShapesOp)
4100 self._autoPublish(anObj, theName, "edge")
4103 ## Create a wire from the set of edges and wires.
4104 # @param theEdgesAndWires List of edges and/or wires.
4105 # @param theTolerance Maximum distance between vertices, that will be merged.
4106 # Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion())
4107 # @param theName Object name; when specified, this parameter is used
4108 # for result publication in the study. Otherwise, if automatic
4109 # publication is switched on, default value is used for result name.
4111 # @return New GEOM.GEOM_Object, containing the created wire.
4113 # @ref tui_creation_wire "Example"
4114 def MakeWire(self, theEdgesAndWires, theTolerance = 1e-07, theName=None):
4116 Create a wire from the set of edges and wires.
4119 theEdgesAndWires List of edges and/or wires.
4120 theTolerance Maximum distance between vertices, that will be merged.
4121 Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion()).
4122 theName Object name; when specified, this parameter is used
4123 for result publication in the study. Otherwise, if automatic
4124 publication is switched on, default value is used for result name.
4127 New GEOM.GEOM_Object, containing the created wire.
4129 # Example: see GEOM_TestAll.py
4130 anObj = self.ShapesOp.MakeWire(theEdgesAndWires, theTolerance)
4131 RaiseIfFailed("MakeWire", self.ShapesOp)
4132 self._autoPublish(anObj, theName, "wire")
4135 ## Create a face on the given wire.
4136 # @param theWire closed Wire or Edge to build the face on.
4137 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4138 # If the tolerance of the obtained planar face is less
4139 # than 1e-06, this face will be returned, otherwise the
4140 # algorithm tries to build any suitable face on the given
4141 # wire and prints a warning message.
4142 # @param theName Object name; when specified, this parameter is used
4143 # for result publication in the study. Otherwise, if automatic
4144 # publication is switched on, default value is used for result name.
4146 # @return New GEOM.GEOM_Object, containing the created face.
4148 # @ref tui_creation_face "Example"
4149 def MakeFace(self, theWire, isPlanarWanted, theName=None):
4151 Create a face on the given wire.
4154 theWire closed Wire or Edge to build the face on.
4155 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4156 If the tolerance of the obtained planar face is less
4157 than 1e-06, this face will be returned, otherwise the
4158 algorithm tries to build any suitable face on the given
4159 wire and prints a warning message.
4160 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.
4165 New GEOM.GEOM_Object, containing the created face.
4167 # Example: see GEOM_TestAll.py
4168 anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted)
4169 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4170 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4172 RaiseIfFailed("MakeFace", self.ShapesOp)
4173 self._autoPublish(anObj, theName, "face")
4176 ## Create a face on the given wires set.
4177 # @param theWires List of closed wires or edges to build the face on.
4178 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4179 # If the tolerance of the obtained planar face is less
4180 # than 1e-06, this face will be returned, otherwise the
4181 # algorithm tries to build any suitable face on the given
4182 # wire and prints a warning message.
4183 # @param theName Object name; when specified, this parameter is used
4184 # for result publication in the study. Otherwise, if automatic
4185 # publication is switched on, default value is used for result name.
4187 # @return New GEOM.GEOM_Object, containing the created face.
4189 # @ref tui_creation_face "Example"
4190 def MakeFaceWires(self, theWires, isPlanarWanted, theName=None):
4192 Create a face on the given wires set.
4195 theWires List of closed wires or edges to build the face on.
4196 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4197 If the tolerance of the obtained planar face is less
4198 than 1e-06, this face will be returned, otherwise the
4199 algorithm tries to build any suitable face on the given
4200 wire and prints a warning message.
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 face.
4208 # Example: see GEOM_TestAll.py
4209 anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted)
4210 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4211 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4213 RaiseIfFailed("MakeFaceWires", self.ShapesOp)
4214 self._autoPublish(anObj, theName, "face")
4217 ## See MakeFaceWires() method for details.
4219 # @ref tui_creation_face "Example 1"
4220 # \n @ref swig_MakeFaces "Example 2"
4221 def MakeFaces(self, theWires, isPlanarWanted, theName=None):
4223 See geompy.MakeFaceWires() method for details.
4225 # Example: see GEOM_TestOthers.py
4226 # note: auto-publishing is done in self.MakeFaceWires()
4227 anObj = self.MakeFaceWires(theWires, isPlanarWanted, theName)
4230 ## Create a shell from the set of faces and shells.
4231 # @param theFacesAndShells List of faces and/or shells.
4232 # @param theName Object name; when specified, this parameter is used
4233 # for result publication in the study. Otherwise, if automatic
4234 # publication is switched on, default value is used for result name.
4236 # @return New GEOM.GEOM_Object, containing the created shell.
4238 # @ref tui_creation_shell "Example"
4239 def MakeShell(self, theFacesAndShells, theName=None):
4241 Create a shell from the set of faces and shells.
4244 theFacesAndShells List of faces and/or shells.
4245 theName Object name; when specified, this parameter is used
4246 for result publication in the study. Otherwise, if automatic
4247 publication is switched on, default value is used for result name.
4250 New GEOM.GEOM_Object, containing the created shell.
4252 # Example: see GEOM_TestAll.py
4253 anObj = self.ShapesOp.MakeShell(theFacesAndShells)
4254 RaiseIfFailed("MakeShell", self.ShapesOp)
4255 self._autoPublish(anObj, theName, "shell")
4258 ## Create a solid, bounded by the given shells.
4259 # @param theShells Sequence of bounding shells.
4260 # @param theName Object name; when specified, this parameter is used
4261 # for result publication in the study. Otherwise, if automatic
4262 # publication is switched on, default value is used for result name.
4264 # @return New GEOM.GEOM_Object, containing the created solid.
4266 # @ref tui_creation_solid "Example"
4267 def MakeSolid(self, theShells, theName=None):
4269 Create a solid, bounded by the given shells.
4272 theShells Sequence of bounding shells.
4273 theName Object name; when specified, this parameter is used
4274 for result publication in the study. Otherwise, if automatic
4275 publication is switched on, default value is used for result name.
4278 New GEOM.GEOM_Object, containing the created solid.
4280 # Example: see GEOM_TestAll.py
4281 if len(theShells) == 1:
4282 descr = self.MeasuOp.IsGoodForSolid(theShells[0])
4284 # raise RuntimeError, "MakeSolidShells : " + descr
4285 if descr == "WRN_SHAPE_UNCLOSED":
4286 raise RuntimeError, "MakeSolidShells : Unable to create solid from unclosed shape"
4287 anObj = self.ShapesOp.MakeSolidShells(theShells)
4288 RaiseIfFailed("MakeSolidShells", self.ShapesOp)
4289 self._autoPublish(anObj, theName, "solid")
4292 ## Create a compound of the given shapes.
4293 # @param theShapes List of shapes to put in compound.
4294 # @param theName Object name; when specified, this parameter is used
4295 # for result publication in the study. Otherwise, if automatic
4296 # publication is switched on, default value is used for result name.
4298 # @return New GEOM.GEOM_Object, containing the created compound.
4300 # @ref tui_creation_compound "Example"
4301 def MakeCompound(self, theShapes, theName=None):
4303 Create a compound of the given shapes.
4306 theShapes List of shapes to put in compound.
4307 theName Object name; when specified, this parameter is used
4308 for result publication in the study. Otherwise, if automatic
4309 publication is switched on, default value is used for result name.
4312 New GEOM.GEOM_Object, containing the created compound.
4314 # Example: see GEOM_TestAll.py
4315 self.ShapesOp.StartOperation()
4316 anObj = self.ShapesOp.MakeCompound(theShapes)
4317 RaiseIfFailed("MakeCompound", self.ShapesOp)
4318 self._autoPublish(anObj, theName, "compound")
4321 # end of l3_advanced
4324 ## @addtogroup l2_measure
4327 ## Gives quantity of faces in the given shape.
4328 # @param theShape Shape to count faces of.
4329 # @return Quantity of faces.
4331 # @ref swig_NumberOf "Example"
4332 def NumberOfFaces(self, theShape):
4334 Gives quantity of faces in the given shape.
4337 theShape Shape to count faces of.
4342 # Example: see GEOM_TestOthers.py
4343 nb_faces = self.ShapesOp.NumberOfFaces(theShape)
4344 RaiseIfFailed("NumberOfFaces", self.ShapesOp)
4347 ## Gives quantity of edges in the given shape.
4348 # @param theShape Shape to count edges of.
4349 # @return Quantity of edges.
4351 # @ref swig_NumberOf "Example"
4352 def NumberOfEdges(self, theShape):
4354 Gives quantity of edges in the given shape.
4357 theShape Shape to count edges of.
4362 # Example: see GEOM_TestOthers.py
4363 nb_edges = self.ShapesOp.NumberOfEdges(theShape)
4364 RaiseIfFailed("NumberOfEdges", self.ShapesOp)
4367 ## Gives quantity of sub-shapes of type theShapeType in the given shape.
4368 # @param theShape Shape to count sub-shapes of.
4369 # @param theShapeType Type of sub-shapes to count (see ShapeType())
4370 # @return Quantity of sub-shapes of given type.
4372 # @ref swig_NumberOf "Example"
4373 def NumberOfSubShapes(self, theShape, theShapeType):
4375 Gives quantity of sub-shapes of type theShapeType in the given shape.
4378 theShape Shape to count sub-shapes of.
4379 theShapeType Type of sub-shapes to count (see geompy.ShapeType)
4382 Quantity of sub-shapes of given type.
4384 # Example: see GEOM_TestOthers.py
4385 nb_ss = self.ShapesOp.NumberOfSubShapes(theShape, theShapeType)
4386 RaiseIfFailed("NumberOfSubShapes", self.ShapesOp)
4389 ## Gives quantity of solids in the given shape.
4390 # @param theShape Shape to count solids in.
4391 # @return Quantity of solids.
4393 # @ref swig_NumberOf "Example"
4394 def NumberOfSolids(self, theShape):
4396 Gives quantity of solids in the given shape.
4399 theShape Shape to count solids in.
4404 # Example: see GEOM_TestOthers.py
4405 nb_solids = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["SOLID"])
4406 RaiseIfFailed("NumberOfSolids", self.ShapesOp)
4412 ## @addtogroup l3_healing
4415 ## Reverses an orientation the given shape.
4416 # @param theShape Shape to be reversed.
4417 # @param theName Object name; when specified, this parameter is used
4418 # for result publication in the study. Otherwise, if automatic
4419 # publication is switched on, default value is used for result name.
4421 # @return The reversed copy of theShape.
4423 # @ref swig_ChangeOrientation "Example"
4424 def ChangeOrientation(self, theShape, theName=None):
4426 Reverses an orientation the given shape.
4429 theShape Shape to be reversed.
4430 theName Object name; when specified, this parameter is used
4431 for result publication in the study. Otherwise, if automatic
4432 publication is switched on, default value is used for result name.
4435 The reversed copy of theShape.
4437 # Example: see GEOM_TestAll.py
4438 anObj = self.ShapesOp.ChangeOrientation(theShape)
4439 RaiseIfFailed("ChangeOrientation", self.ShapesOp)
4440 self._autoPublish(anObj, theName, "reversed")
4443 ## See ChangeOrientation() method for details.
4445 # @ref swig_OrientationChange "Example"
4446 def OrientationChange(self, theShape, theName=None):
4448 See geompy.ChangeOrientation method for details.
4450 # Example: see GEOM_TestOthers.py
4451 # note: auto-publishing is done in self.ChangeOrientation()
4452 anObj = self.ChangeOrientation(theShape, theName)
4458 ## @addtogroup l4_obtain
4461 ## Retrieve all free faces from the given shape.
4462 # Free face is a face, which is not shared between two shells of the shape.
4463 # @param theShape Shape to find free faces in.
4464 # @return List of IDs of all free faces, contained in theShape.
4466 # @ref tui_measurement_tools_page "Example"
4467 def GetFreeFacesIDs(self,theShape):
4469 Retrieve all free faces from the given shape.
4470 Free face is a face, which is not shared between two shells of the shape.
4473 theShape Shape to find free faces in.
4476 List of IDs of all free faces, contained in theShape.
4478 # Example: see GEOM_TestOthers.py
4479 anIDs = self.ShapesOp.GetFreeFacesIDs(theShape)
4480 RaiseIfFailed("GetFreeFacesIDs", self.ShapesOp)
4483 ## Get all sub-shapes of theShape1 of the given type, shared with theShape2.
4484 # @param theShape1 Shape to find sub-shapes in.
4485 # @param theShape2 Shape to find shared sub-shapes with.
4486 # @param theShapeType Type of sub-shapes to be retrieved.
4487 # @param theName Object name; when specified, this parameter is used
4488 # for result publication in the study. Otherwise, if automatic
4489 # publication is switched on, default value is used for result name.
4491 # @return List of sub-shapes of theShape1, shared with theShape2.
4493 # @ref swig_GetSharedShapes "Example"
4494 def GetSharedShapes(self, theShape1, theShape2, theShapeType, theName=None):
4496 Get all sub-shapes of theShape1 of the given type, shared with theShape2.
4499 theShape1 Shape to find sub-shapes in.
4500 theShape2 Shape to find shared sub-shapes with.
4501 theShapeType Type of sub-shapes to be retrieved.
4502 theName Object name; when specified, this parameter is used
4503 for result publication in the study. Otherwise, if automatic
4504 publication is switched on, default value is used for result name.
4507 List of sub-shapes of theShape1, shared with theShape2.
4509 # Example: see GEOM_TestOthers.py
4510 aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType)
4511 RaiseIfFailed("GetSharedShapes", self.ShapesOp)
4512 self._autoPublish(aList, theName, "shared")
4515 ## Get all sub-shapes, shared by all shapes in the list <VAR>theShapes</VAR>.
4516 # @param theShapes Shapes to find common sub-shapes of.
4517 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4518 # @param theName Object name; when specified, this parameter is used
4519 # for result publication in the study. Otherwise, if automatic
4520 # publication is switched on, default value is used for result name.
4522 # @return List of objects, that are sub-shapes of all given shapes.
4524 # @ref swig_GetSharedShapes "Example"
4525 def GetSharedShapesMulti(self, theShapes, theShapeType, theName=None):
4527 Get all sub-shapes, shared by all shapes in the list theShapes.
4530 theShapes Shapes to find common sub-shapes of.
4531 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4532 theName Object name; when specified, this parameter is used
4533 for result publication in the study. Otherwise, if automatic
4534 publication is switched on, default value is used for result name.
4537 List of GEOM.GEOM_Object, that are sub-shapes of all given shapes.
4539 # Example: see GEOM_TestOthers.py
4540 aList = self.ShapesOp.GetSharedShapesMulti(theShapes, theShapeType)
4541 RaiseIfFailed("GetSharedShapesMulti", self.ShapesOp)
4542 self._autoPublish(aList, theName, "shared")
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 and location of the plane to find shapes on.
4552 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4553 # @param theName Object name; when specified, this parameter is used
4554 # for result publication in the study. Otherwise, if automatic
4555 # publication is switched on, default value is used for result name.
4557 # @return List of all found sub-shapes.
4559 # @ref swig_GetShapesOnPlane "Example"
4560 def GetShapesOnPlane(self, theShape, theShapeType, theAx1, theState, theName=None):
4562 Find in theShape all sub-shapes of type theShapeType,
4563 situated relatively the specified plane by the certain way,
4564 defined through theState parameter.
4567 theShape Shape to find sub-shapes of.
4568 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4569 theAx1 Vector (or line, or linear edge), specifying normal
4570 direction and location of the plane to find shapes on.
4571 theState The state of the sub-shapes to find (see GEOM::shape_state)
4572 theName Object name; when specified, this parameter is used
4573 for result publication in the study. Otherwise, if automatic
4574 publication is switched on, default value is used for result name.
4577 List of all found sub-shapes.
4579 # Example: see GEOM_TestOthers.py
4580 aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState)
4581 RaiseIfFailed("GetShapesOnPlane", self.ShapesOp)
4582 self._autoPublish(aList, theName, "shapeOnPlane")
4585 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4586 # situated relatively the specified plane by the certain way,
4587 # defined through <VAR>theState</VAR> parameter.
4588 # @param theShape Shape to find sub-shapes of.
4589 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4590 # @param theAx1 Vector (or line, or linear edge), specifying normal
4591 # direction and location of the plane to find shapes on.
4592 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4594 # @return List of all found sub-shapes indices.
4596 # @ref swig_GetShapesOnPlaneIDs "Example"
4597 def GetShapesOnPlaneIDs(self, theShape, theShapeType, theAx1, theState):
4599 Find in theShape all sub-shapes of type theShapeType,
4600 situated relatively the specified plane by the certain way,
4601 defined through theState parameter.
4604 theShape Shape to find sub-shapes of.
4605 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4606 theAx1 Vector (or line, or linear edge), specifying normal
4607 direction and location of the plane to find shapes on.
4608 theState The state of the sub-shapes to find (see GEOM::shape_state)
4611 List of all found sub-shapes indices.
4613 # Example: see GEOM_TestOthers.py
4614 aList = self.ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState)
4615 RaiseIfFailed("GetShapesOnPlaneIDs", self.ShapesOp)
4618 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4619 # situated relatively the specified plane by the certain way,
4620 # defined through <VAR>theState</VAR> parameter.
4621 # @param theShape Shape to find sub-shapes of.
4622 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4623 # @param theAx1 Vector (or line, or linear edge), specifying normal
4624 # direction of the plane to find shapes on.
4625 # @param thePnt Point specifying location of the plane to find shapes on.
4626 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4627 # @param theName Object name; when specified, this parameter is used
4628 # for result publication in the study. Otherwise, if automatic
4629 # publication is switched on, default value is used for result name.
4631 # @return List of all found sub-shapes.
4633 # @ref swig_GetShapesOnPlaneWithLocation "Example"
4634 def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState, theName=None):
4636 Find in theShape all sub-shapes of type theShapeType,
4637 situated relatively the specified plane by the certain way,
4638 defined through theState parameter.
4641 theShape Shape to find sub-shapes of.
4642 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4643 theAx1 Vector (or line, or linear edge), specifying normal
4644 direction and location of the plane to find shapes on.
4645 thePnt Point specifying location of the plane to find shapes on.
4646 theState The state of the sub-shapes to find (see GEOM::shape_state)
4647 theName Object name; when specified, this parameter is used
4648 for result publication in the study. Otherwise, if automatic
4649 publication is switched on, default value is used for result name.
4652 List of all found sub-shapes.
4654 # Example: see GEOM_TestOthers.py
4655 aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType,
4656 theAx1, thePnt, theState)
4657 RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp)
4658 self._autoPublish(aList, theName, "shapeOnPlane")
4661 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
4662 # situated relatively the specified plane by the certain way,
4663 # defined through <VAR>theState</VAR> parameter.
4664 # @param theShape Shape to find sub-shapes of.
4665 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4666 # @param theAx1 Vector (or line, or linear edge), specifying normal
4667 # direction of the plane to find shapes on.
4668 # @param thePnt Point specifying location of the plane to find shapes on.
4669 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4671 # @return List of all found sub-shapes indices.
4673 # @ref swig_GetShapesOnPlaneWithLocationIDs "Example"
4674 def GetShapesOnPlaneWithLocationIDs(self, theShape, theShapeType, theAx1, thePnt, theState):
4676 Find in theShape all sub-shapes of type theShapeType,
4677 situated relatively the specified plane by the certain way,
4678 defined through theState parameter.
4681 theShape Shape to find sub-shapes of.
4682 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4683 theAx1 Vector (or line, or linear edge), specifying normal
4684 direction and location of the plane to find shapes on.
4685 thePnt Point specifying location of the plane to find shapes on.
4686 theState The state of the sub-shapes to find (see GEOM::shape_state)
4689 List of all found sub-shapes indices.
4691 # Example: see GEOM_TestOthers.py
4692 aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType,
4693 theAx1, thePnt, theState)
4694 RaiseIfFailed("GetShapesOnPlaneWithLocationIDs", 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 theRadius Radius of the cylinder to find shapes on.
4704 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4705 # @param theName Object name; when specified, this parameter is used
4706 # for result publication in the study. Otherwise, if automatic
4707 # publication is switched on, default value is used for result name.
4709 # @return List of all found sub-shapes.
4711 # @ref swig_GetShapesOnCylinder "Example"
4712 def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState, theName=None):
4714 Find in theShape all sub-shapes of type theShapeType, situated relatively
4715 the specified cylinder by the certain way, defined through theState parameter.
4718 theShape Shape to find sub-shapes of.
4719 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4720 theAxis Vector (or line, or linear edge), specifying
4721 axis of the cylinder to find shapes on.
4722 theRadius Radius of the cylinder to find shapes on.
4723 theState The state of the sub-shapes to find (see GEOM::shape_state)
4724 theName Object name; when specified, this parameter is used
4725 for result publication in the study. Otherwise, if automatic
4726 publication is switched on, default value is used for result name.
4729 List of all found sub-shapes.
4731 # Example: see GEOM_TestOthers.py
4732 aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState)
4733 RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp)
4734 self._autoPublish(aList, theName, "shapeOnCylinder")
4737 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4738 # the specified cylinder by the certain way, defined through \a theState parameter.
4739 # @param theShape Shape to find sub-shapes of.
4740 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4741 # @param theAxis Vector (or line, or linear edge), specifying
4742 # axis of the cylinder to find shapes on.
4743 # @param theRadius Radius of the cylinder to find shapes on.
4744 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4746 # @return List of all found sub-shapes indices.
4748 # @ref swig_GetShapesOnCylinderIDs "Example"
4749 def GetShapesOnCylinderIDs(self, theShape, theShapeType, theAxis, theRadius, theState):
4751 Find in theShape all sub-shapes of type theShapeType, situated relatively
4752 the specified cylinder by the certain way, defined through theState parameter.
4755 theShape Shape to find sub-shapes of.
4756 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4757 theAxis Vector (or line, or linear edge), specifying
4758 axis of the cylinder to find shapes on.
4759 theRadius Radius of the cylinder to find shapes on.
4760 theState The state of the sub-shapes to find (see GEOM::shape_state)
4763 List of all found sub-shapes indices.
4765 # Example: see GEOM_TestOthers.py
4766 aList = self.ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState)
4767 RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp)
4770 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4771 # the specified cylinder by the certain way, defined through \a theState parameter.
4772 # @param theShape Shape to find sub-shapes of.
4773 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4774 # @param theAxis Vector (or line, or linear edge), specifying
4775 # axis of the cylinder to find shapes on.
4776 # @param thePnt Point specifying location of the bottom of the cylinder.
4777 # @param theRadius Radius of the cylinder 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_GetShapesOnCylinderWithLocation "Example"
4786 def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState, theName=None):
4788 Find in theShape all sub-shapes of type theShapeType, situated relatively
4789 the specified cylinder 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 theAxis Vector (or line, or linear edge), specifying
4795 axis of the cylinder to find shapes on.
4796 theRadius Radius of the cylinder to find shapes on.
4797 theState The state of the sub-shapes to find (see GEOM::shape_state)
4798 theName Object name; when specified, this parameter is used
4799 for result publication in the study. Otherwise, if automatic
4800 publication is switched on, default value is used for result name.
4803 List of all found sub-shapes.
4805 # Example: see GEOM_TestOthers.py
4806 aList = self.ShapesOp.GetShapesOnCylinderWithLocation(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
4807 RaiseIfFailed("GetShapesOnCylinderWithLocation", self.ShapesOp)
4808 self._autoPublish(aList, theName, "shapeOnCylinder")
4811 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4812 # the specified cylinder by the certain way, defined through \a theState parameter.
4813 # @param theShape Shape to find sub-shapes of.
4814 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4815 # @param theAxis Vector (or line, or linear edge), specifying
4816 # axis of the cylinder to find shapes on.
4817 # @param thePnt Point specifying location of the bottom of the cylinder.
4818 # @param theRadius Radius of the cylinder to find shapes on.
4819 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4821 # @return List of all found sub-shapes indices
4823 # @ref swig_GetShapesOnCylinderWithLocationIDs "Example"
4824 def GetShapesOnCylinderWithLocationIDs(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
4826 Find in theShape all sub-shapes of type theShapeType, situated relatively
4827 the specified cylinder by the certain way, defined through theState parameter.
4830 theShape Shape to find sub-shapes of.
4831 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4832 theAxis Vector (or line, or linear edge), specifying
4833 axis of the cylinder to find shapes on.
4834 theRadius Radius of the cylinder to find shapes on.
4835 theState The state of the sub-shapes to find (see GEOM::shape_state)
4838 List of all found sub-shapes indices.
4840 # Example: see GEOM_TestOthers.py
4841 aList = self.ShapesOp.GetShapesOnCylinderWithLocationIDs(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
4842 RaiseIfFailed("GetShapesOnCylinderWithLocationIDs", self.ShapesOp)
4845 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4846 # the specified sphere by the certain way, defined through \a theState parameter.
4847 # @param theShape Shape to find sub-shapes of.
4848 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4849 # @param theCenter Point, specifying center of the sphere to find shapes on.
4850 # @param theRadius Radius of the sphere to find shapes on.
4851 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4852 # @param theName Object name; when specified, this parameter is used
4853 # for result publication in the study. Otherwise, if automatic
4854 # publication is switched on, default value is used for result name.
4856 # @return List of all found sub-shapes.
4858 # @ref swig_GetShapesOnSphere "Example"
4859 def GetShapesOnSphere(self, theShape, theShapeType, theCenter, theRadius, theState, theName=None):
4861 Find in theShape all sub-shapes of type theShapeType, situated relatively
4862 the specified sphere 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 theCenter Point, specifying center of the sphere to find shapes on.
4868 theRadius Radius of the sphere to find shapes on.
4869 theState The state of the sub-shapes to find (see GEOM::shape_state)
4870 theName Object name; when specified, this parameter is used
4871 for result publication in the study. Otherwise, if automatic
4872 publication is switched on, default value is used for result name.
4875 List of all found sub-shapes.
4877 # Example: see GEOM_TestOthers.py
4878 aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState)
4879 RaiseIfFailed("GetShapesOnSphere", self.ShapesOp)
4880 self._autoPublish(aList, theName, "shapeOnSphere")
4883 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4884 # the specified sphere by the certain way, defined through \a theState parameter.
4885 # @param theShape Shape to find sub-shapes of.
4886 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4887 # @param theCenter Point, specifying center of the sphere to find shapes on.
4888 # @param theRadius Radius of the sphere to find shapes on.
4889 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4891 # @return List of all found sub-shapes indices.
4893 # @ref swig_GetShapesOnSphereIDs "Example"
4894 def GetShapesOnSphereIDs(self, theShape, theShapeType, theCenter, theRadius, theState):
4896 Find in theShape all sub-shapes of type theShapeType, situated relatively
4897 the specified sphere by the certain way, defined through theState parameter.
4900 theShape Shape to find sub-shapes of.
4901 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4902 theCenter Point, specifying center of the sphere to find shapes on.
4903 theRadius Radius of the sphere to find shapes on.
4904 theState The state of the sub-shapes to find (see GEOM::shape_state)
4907 List of all found sub-shapes indices.
4909 # Example: see GEOM_TestOthers.py
4910 aList = self.ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState)
4911 RaiseIfFailed("GetShapesOnSphereIDs", self.ShapesOp)
4914 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4915 # the specified quadrangle by the certain way, defined through \a theState parameter.
4916 # @param theShape Shape to find sub-shapes of.
4917 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4918 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
4919 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
4920 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4921 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4922 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
4923 # @param theName Object name; when specified, this parameter is used
4924 # for result publication in the study. Otherwise, if automatic
4925 # publication is switched on, default value is used for result name.
4927 # @return List of all found sub-shapes.
4929 # @ref swig_GetShapesOnQuadrangle "Example"
4930 def GetShapesOnQuadrangle(self, theShape, theShapeType,
4931 theTopLeftPoint, theTopRigthPoint,
4932 theBottomLeftPoint, theBottomRigthPoint, theState, theName=None):
4934 Find in theShape all sub-shapes of type theShapeType, situated relatively
4935 the specified quadrangle by the certain way, defined through theState parameter.
4938 theShape Shape to find sub-shapes of.
4939 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4940 theTopLeftPoint Point, specifying top left corner of a quadrangle
4941 theTopRigthPoint Point, specifying top right corner of a quadrangle
4942 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4943 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4944 theState The state of the sub-shapes to find (see GEOM::shape_state)
4945 theName Object name; when specified, this parameter is used
4946 for result publication in the study. Otherwise, if automatic
4947 publication is switched on, default value is used for result name.
4950 List of all found sub-shapes.
4952 # Example: see GEOM_TestOthers.py
4953 aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType,
4954 theTopLeftPoint, theTopRigthPoint,
4955 theBottomLeftPoint, theBottomRigthPoint, theState)
4956 RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp)
4957 self._autoPublish(aList, theName, "shapeOnQuadrangle")
4960 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
4961 # the specified quadrangle by the certain way, defined through \a theState parameter.
4962 # @param theShape Shape to find sub-shapes of.
4963 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
4964 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
4965 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
4966 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4967 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
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_GetShapesOnQuadrangleIDs "Example"
4973 def GetShapesOnQuadrangleIDs(self, theShape, theShapeType,
4974 theTopLeftPoint, theTopRigthPoint,
4975 theBottomLeftPoint, theBottomRigthPoint, theState):
4977 Find in theShape all sub-shapes of type theShapeType, situated relatively
4978 the specified quadrangle by the certain way, defined through theState parameter.
4981 theShape Shape to find sub-shapes of.
4982 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
4983 theTopLeftPoint Point, specifying top left corner of a quadrangle
4984 theTopRigthPoint Point, specifying top right corner of a quadrangle
4985 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
4986 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
4987 theState The state of the sub-shapes to find (see GEOM::shape_state)
4990 List of all found sub-shapes indices.
4993 # Example: see GEOM_TestOthers.py
4994 aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType,
4995 theTopLeftPoint, theTopRigthPoint,
4996 theBottomLeftPoint, theBottomRigthPoint, theState)
4997 RaiseIfFailed("GetShapesOnQuadrangleIDs", self.ShapesOp)
5000 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5001 # the specified \a theBox by the certain way, defined through \a theState parameter.
5002 # @param theBox Shape for relative comparing.
5003 # @param theShape Shape to find sub-shapes of.
5004 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5005 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5006 # @param theName Object name; when specified, this parameter is used
5007 # for result publication in the study. Otherwise, if automatic
5008 # publication is switched on, default value is used for result name.
5010 # @return List of all found sub-shapes.
5012 # @ref swig_GetShapesOnBox "Example"
5013 def GetShapesOnBox(self, theBox, theShape, theShapeType, theState, theName=None):
5015 Find in theShape all sub-shapes of type theShapeType, situated relatively
5016 the specified theBox by the certain way, defined through theState parameter.
5019 theBox Shape for relative comparing.
5020 theShape Shape to find sub-shapes of.
5021 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5022 theState The state of the sub-shapes to find (see GEOM::shape_state)
5023 theName Object name; when specified, this parameter is used
5024 for result publication in the study. Otherwise, if automatic
5025 publication is switched on, default value is used for result name.
5028 List of all found sub-shapes.
5030 # Example: see GEOM_TestOthers.py
5031 aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState)
5032 RaiseIfFailed("GetShapesOnBox", self.ShapesOp)
5033 self._autoPublish(aList, theName, "shapeOnBox")
5036 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5037 # the specified \a theBox by the certain way, defined through \a theState parameter.
5038 # @param theBox Shape for relative comparing.
5039 # @param theShape Shape to find sub-shapes of.
5040 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5041 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5043 # @return List of all found sub-shapes indices.
5045 # @ref swig_GetShapesOnBoxIDs "Example"
5046 def GetShapesOnBoxIDs(self, theBox, theShape, theShapeType, theState):
5048 Find in theShape all sub-shapes of type theShapeType, situated relatively
5049 the specified theBox by the certain way, defined through theState parameter.
5052 theBox Shape for relative comparing.
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)
5058 List of all found sub-shapes indices.
5060 # Example: see GEOM_TestOthers.py
5061 aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState)
5062 RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp)
5065 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5066 # situated relatively the specified \a theCheckShape by the
5067 # certain way, defined through \a theState parameter.
5068 # @param theCheckShape Shape for relative comparing. It must be a solid.
5069 # @param theShape Shape to find sub-shapes of.
5070 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5071 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5072 # @param theName Object name; when specified, this parameter is used
5073 # for result publication in the study. Otherwise, if automatic
5074 # publication is switched on, default value is used for result name.
5076 # @return List of all found sub-shapes.
5078 # @ref swig_GetShapesOnShape "Example"
5079 def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5081 Find in theShape all sub-shapes of type theShapeType,
5082 situated relatively the specified theCheckShape by the
5083 certain way, defined through theState parameter.
5086 theCheckShape Shape for relative comparing. It must be a solid.
5087 theShape Shape to find sub-shapes of.
5088 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5089 theState The state of the sub-shapes to find (see GEOM::shape_state)
5090 theName Object name; when specified, this parameter is used
5091 for result publication in the study. Otherwise, if automatic
5092 publication is switched on, default value is used for result name.
5095 List of all found sub-shapes.
5097 # Example: see GEOM_TestOthers.py
5098 aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape,
5099 theShapeType, theState)
5100 RaiseIfFailed("GetShapesOnShape", self.ShapesOp)
5101 self._autoPublish(aList, theName, "shapeOnShape")
5104 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5105 # situated relatively the specified \a theCheckShape by the
5106 # certain way, defined through \a theState parameter.
5107 # @param theCheckShape Shape for relative comparing. It must be a solid.
5108 # @param theShape Shape to find sub-shapes of.
5109 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5110 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5111 # @param theName Object name; when specified, this parameter is used
5112 # for result publication in the study. Otherwise, if automatic
5113 # publication is switched on, default value is used for result name.
5115 # @return All found sub-shapes as compound.
5117 # @ref swig_GetShapesOnShapeAsCompound "Example"
5118 def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5120 Find in theShape all sub-shapes of type theShapeType,
5121 situated relatively the specified theCheckShape by the
5122 certain way, defined through theState parameter.
5125 theCheckShape Shape for relative comparing. It must be a solid.
5126 theShape Shape to find sub-shapes of.
5127 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5128 theState The state of the sub-shapes to find (see GEOM::shape_state)
5129 theName Object name; when specified, this parameter is used
5130 for result publication in the study. Otherwise, if automatic
5131 publication is switched on, default value is used for result name.
5134 All found sub-shapes as compound.
5136 # Example: see GEOM_TestOthers.py
5137 anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape,
5138 theShapeType, theState)
5139 RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp)
5140 self._autoPublish(anObj, theName, "shapeOnShape")
5143 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5144 # situated relatively the specified \a theCheckShape by the
5145 # certain way, defined through \a theState parameter.
5146 # @param theCheckShape Shape for relative comparing. It must be a solid.
5147 # @param theShape Shape to find sub-shapes of.
5148 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5149 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5151 # @return List of all found sub-shapes indices.
5153 # @ref swig_GetShapesOnShapeIDs "Example"
5154 def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState):
5156 Find in theShape all sub-shapes of type theShapeType,
5157 situated relatively the specified theCheckShape by the
5158 certain way, defined through theState parameter.
5161 theCheckShape Shape for relative comparing. It must be a solid.
5162 theShape Shape to find sub-shapes of.
5163 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5164 theState The state of the sub-shapes to find (see GEOM::shape_state)
5167 List of all found sub-shapes indices.
5169 # Example: see GEOM_TestOthers.py
5170 aList = self.ShapesOp.GetShapesOnShapeIDs(theCheckShape, theShape,
5171 theShapeType, theState)
5172 RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp)
5175 ## Get sub-shape(s) of theShapeWhere, which are
5176 # coincident with \a theShapeWhat or could be a part of it.
5177 # @param theShapeWhere Shape to find sub-shapes of.
5178 # @param theShapeWhat Shape, specifying what to find.
5179 # @param isNewImplementation implementation of GetInPlace functionality
5180 # (default = False, old alghorithm based on shape properties)
5181 # @param theName Object name; when specified, this parameter is used
5182 # for result publication in the study. Otherwise, if automatic
5183 # publication is switched on, default value is used for result name.
5185 # @return Group of all found sub-shapes or a single found sub-shape.
5187 # @note This function has a restriction on argument shapes.
5188 # If \a theShapeWhere has curved parts with significantly
5189 # outstanding centres (i.e. the mass centre of a part is closer to
5190 # \a theShapeWhat than to the part), such parts will not be found.
5191 # @image html get_in_place_lost_part.png
5193 # @ref swig_GetInPlace "Example"
5194 def GetInPlace(self, theShapeWhere, theShapeWhat, isNewImplementation = False, theName=None):
5196 Get sub-shape(s) of theShapeWhere, which are
5197 coincident with theShapeWhat or could be a part of it.
5200 theShapeWhere Shape to find sub-shapes of.
5201 theShapeWhat Shape, specifying what to find.
5202 isNewImplementation Implementation of GetInPlace functionality
5203 (default = False, old alghorithm based on shape properties)
5204 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.
5209 Group of all found sub-shapes or a single found sub-shape.
5213 This function has a restriction on argument shapes.
5214 If theShapeWhere has curved parts with significantly
5215 outstanding centres (i.e. the mass centre of a part is closer to
5216 theShapeWhat than to the part), such parts will not be found.
5218 # Example: see GEOM_TestOthers.py
5220 if isNewImplementation:
5221 anObj = self.ShapesOp.GetInPlace(theShapeWhere, theShapeWhat)
5223 anObj = self.ShapesOp.GetInPlaceOld(theShapeWhere, theShapeWhat)
5225 RaiseIfFailed("GetInPlace", self.ShapesOp)
5226 self._autoPublish(anObj, theName, "inplace")
5229 ## Get sub-shape(s) of \a theShapeWhere, which are
5230 # coincident with \a theShapeWhat or could be a part of it.
5232 # Implementation of this method is based on a saved history of an operation,
5233 # produced \a theShapeWhere. The \a theShapeWhat must be among this operation's
5234 # arguments (an argument shape or a sub-shape of an argument shape).
5235 # The operation could be the Partition or one of boolean operations,
5236 # performed on simple shapes (not on compounds).
5238 # @param theShapeWhere Shape to find sub-shapes of.
5239 # @param theShapeWhat Shape, specifying what to find (must be in the
5240 # building history of the ShapeWhere).
5241 # @param theName Object name; when specified, this parameter is used
5242 # for result publication in the study. Otherwise, if automatic
5243 # publication is switched on, default value is used for result name.
5245 # @return Group of all found sub-shapes or a single found sub-shape.
5247 # @ref swig_GetInPlace "Example"
5248 def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat, theName=None):
5250 Implementation of this method is based on a saved history of an operation,
5251 produced theShapeWhere. The theShapeWhat must be among this operation's
5252 arguments (an argument shape or a sub-shape of an argument shape).
5253 The operation could be the Partition or one of boolean operations,
5254 performed on simple shapes (not on compounds).
5257 theShapeWhere Shape to find sub-shapes of.
5258 theShapeWhat Shape, specifying what to find (must be in the
5259 building history of the ShapeWhere).
5260 theName Object name; when specified, this parameter is used
5261 for result publication in the study. Otherwise, if automatic
5262 publication is switched on, default value is used for result name.
5265 Group of all found sub-shapes or a single found sub-shape.
5267 # Example: see GEOM_TestOthers.py
5268 anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)
5269 RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp)
5270 self._autoPublish(anObj, theName, "inplace")
5273 ## Get sub-shape of theShapeWhere, which is
5274 # equal to \a theShapeWhat.
5275 # @param theShapeWhere Shape to find sub-shape of.
5276 # @param theShapeWhat Shape, specifying what to find.
5277 # @param theName Object name; when specified, this parameter is used
5278 # for result publication in the study. Otherwise, if automatic
5279 # publication is switched on, default value is used for result name.
5281 # @return New GEOM.GEOM_Object for found sub-shape.
5283 # @ref swig_GetSame "Example"
5284 def GetSame(self, theShapeWhere, theShapeWhat, theName=None):
5286 Get sub-shape of theShapeWhere, which is
5287 equal to theShapeWhat.
5290 theShapeWhere Shape to find sub-shape of.
5291 theShapeWhat Shape, specifying what to find.
5292 theName Object name; when specified, this parameter is used
5293 for result publication in the study. Otherwise, if automatic
5294 publication is switched on, default value is used for result name.
5297 New GEOM.GEOM_Object for found sub-shape.
5299 anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat)
5300 RaiseIfFailed("GetSame", self.ShapesOp)
5301 self._autoPublish(anObj, theName, "sameShape")
5305 ## Get sub-shape indices of theShapeWhere, which is
5306 # equal to \a theShapeWhat.
5307 # @param theShapeWhere Shape to find sub-shape of.
5308 # @param theShapeWhat Shape, specifying what to find.
5309 # @return List of all found sub-shapes indices.
5311 # @ref swig_GetSame "Example"
5312 def GetSameIDs(self, theShapeWhere, theShapeWhat):
5314 Get sub-shape indices of theShapeWhere, which is
5315 equal to theShapeWhat.
5318 theShapeWhere Shape to find sub-shape of.
5319 theShapeWhat Shape, specifying what to find.
5322 List of all found sub-shapes indices.
5324 anObj = self.ShapesOp.GetSameIDs(theShapeWhere, theShapeWhat)
5325 RaiseIfFailed("GetSameIDs", self.ShapesOp)
5332 ## @addtogroup l4_access
5335 ## Obtain a composite sub-shape of <VAR>aShape</VAR>, composed from sub-shapes
5336 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
5337 # @param aShape Shape to get sub-shape of.
5338 # @param ListOfID List of sub-shapes indices.
5339 # @param theName Object name; when specified, this parameter is used
5340 # for result publication in the study. Otherwise, if automatic
5341 # publication is switched on, default value is used for result name.
5343 # @return Found sub-shape.
5345 # @ref swig_all_decompose "Example"
5346 def GetSubShape(self, aShape, ListOfID, theName=None):
5348 Obtain a composite sub-shape of aShape, composed from sub-shapes
5349 of aShape, selected by their unique IDs inside aShape
5352 aShape Shape to get sub-shape of.
5353 ListOfID List of sub-shapes indices.
5354 theName Object name; when specified, this parameter is used
5355 for result publication in the study. Otherwise, if automatic
5356 publication is switched on, default value is used for result name.
5361 # Example: see GEOM_TestAll.py
5362 anObj = self.AddSubShape(aShape,ListOfID)
5363 self._autoPublish(anObj, theName, "subshape")
5366 ## Obtain unique ID of sub-shape <VAR>aSubShape</VAR> inside <VAR>aShape</VAR>
5367 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
5368 # @param aShape Shape to get sub-shape of.
5369 # @param aSubShape Sub-shapes of aShape.
5370 # @return ID of found sub-shape.
5372 # @ref swig_all_decompose "Example"
5373 def GetSubShapeID(self, aShape, aSubShape):
5375 Obtain unique ID of sub-shape aSubShape inside aShape
5376 of aShape, selected by their unique IDs inside aShape
5379 aShape Shape to get sub-shape of.
5380 aSubShape Sub-shapes of aShape.
5383 ID of found sub-shape.
5385 # Example: see GEOM_TestAll.py
5386 anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape)
5387 RaiseIfFailed("GetSubShapeIndex", self.LocalOp)
5390 ## Obtain unique IDs of sub-shapes <VAR>aSubShapes</VAR> inside <VAR>aShape</VAR>
5391 # This function is provided for performance purpose. The complexity is O(n) with n
5392 # the number of subobjects of aShape
5393 # @param aShape Shape to get sub-shape of.
5394 # @param aSubShapes Sub-shapes of aShape.
5395 # @return list of IDs of found sub-shapes.
5397 # @ref swig_all_decompose "Example"
5398 def GetSubShapesIDs(self, aShape, aSubShapes):
5400 Obtain a list of IDs of sub-shapes aSubShapes inside aShape
5401 This function is provided for performance purpose. The complexity is O(n) with n
5402 the number of subobjects of aShape
5405 aShape Shape to get sub-shape of.
5406 aSubShapes Sub-shapes of aShape.
5409 List of IDs of found sub-shape.
5411 # Example: see GEOM_TestAll.py
5412 anIDs = self.ShapesOp.GetSubShapesIndices(aShape, aSubShapes)
5413 RaiseIfFailed("GetSubShapesIndices", self.ShapesOp)
5419 ## @addtogroup l4_decompose
5422 ## Get all sub-shapes and groups of \a theShape,
5423 # that were created already by any other methods.
5424 # @param theShape Any shape.
5425 # @param theGroupsOnly If this parameter is TRUE, only groups will be
5426 # returned, else all found sub-shapes and groups.
5427 # @return List of existing sub-objects of \a theShape.
5429 # @ref swig_all_decompose "Example"
5430 def GetExistingSubObjects(self, theShape, theGroupsOnly = False):
5432 Get all sub-shapes and groups of theShape,
5433 that were created already by any other methods.
5437 theGroupsOnly If this parameter is TRUE, only groups will be
5438 returned, else all found sub-shapes and groups.
5441 List of existing sub-objects of theShape.
5443 # Example: see GEOM_TestAll.py
5444 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, theGroupsOnly)
5445 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
5448 ## Get all groups of \a theShape,
5449 # that were created already by any other methods.
5450 # @param theShape Any shape.
5451 # @return List of existing groups of \a theShape.
5453 # @ref swig_all_decompose "Example"
5454 def GetGroups(self, theShape):
5456 Get all groups of theShape,
5457 that were created already by any other methods.
5463 List of existing groups of theShape.
5465 # Example: see GEOM_TestAll.py
5466 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, True)
5467 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
5470 ## Explode a shape on sub-shapes of a given type.
5471 # If the shape itself matches the type, it is also returned.
5472 # @param aShape Shape to be exploded.
5473 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5474 # @param theName Object name; when specified, this parameter is used
5475 # for result publication in the study. Otherwise, if automatic
5476 # publication is switched on, default value is used for result name.
5478 # @return List of sub-shapes of type theShapeType, contained in theShape.
5480 # @ref swig_all_decompose "Example"
5481 def SubShapeAll(self, aShape, aType, theName=None):
5483 Explode a shape on sub-shapes of a given type.
5484 If the shape itself matches the type, it is also returned.
5487 aShape Shape to be exploded.
5488 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5489 theName Object name; when specified, this parameter is used
5490 for result publication in the study. Otherwise, if automatic
5491 publication is switched on, default value is used for result name.
5494 List of sub-shapes of type theShapeType, contained in theShape.
5496 # Example: see GEOM_TestAll.py
5497 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), False)
5498 RaiseIfFailed("SubShapeAll", self.ShapesOp)
5499 self._autoPublish(ListObj, theName, "subshape")
5502 ## Explode a shape on sub-shapes of a given type.
5503 # @param aShape Shape to be exploded.
5504 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5505 # @return List of IDs of sub-shapes.
5507 # @ref swig_all_decompose "Example"
5508 def SubShapeAllIDs(self, aShape, aType):
5510 Explode a shape on sub-shapes of a given type.
5513 aShape Shape to be exploded (see geompy.ShapeType)
5514 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5517 List of IDs of sub-shapes.
5519 ListObj = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), False)
5520 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
5523 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
5524 # selected by their indices in list of all sub-shapes of type <VAR>aType</VAR>.
5525 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5526 # @param aShape Shape to get sub-shape of.
5527 # @param ListOfInd List of sub-shapes indices.
5528 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5529 # @param theName Object name; when specified, this parameter is used
5530 # for result publication in the study. Otherwise, if automatic
5531 # publication is switched on, default value is used for result name.
5533 # @return A compound of sub-shapes of aShape.
5535 # @ref swig_all_decompose "Example"
5536 def SubShape(self, aShape, aType, ListOfInd, theName=None):
5538 Obtain a compound of sub-shapes of aShape,
5539 selected by their indices in list of all sub-shapes of type aType.
5540 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5543 aShape Shape to get sub-shape of.
5544 ListOfID List of sub-shapes indices.
5545 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5546 theName Object name; when specified, this parameter is used
5547 for result publication in the study. Otherwise, if automatic
5548 publication is switched on, default value is used for result name.
5551 A compound of sub-shapes of aShape.
5553 # Example: see GEOM_TestAll.py
5555 AllShapeIDsList = self.SubShapeAllIDs(aShape, EnumToLong( aType ))
5556 for ind in ListOfInd:
5557 ListOfIDs.append(AllShapeIDsList[ind - 1])
5558 # note: auto-publishing is done in self.GetSubShape()
5559 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
5562 ## Explode a shape on sub-shapes of a given type.
5563 # Sub-shapes will be sorted by coordinates of their gravity centers.
5564 # If the shape itself matches the type, it is also returned.
5565 # @param aShape Shape to be exploded.
5566 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5567 # @param theName Object name; when specified, this parameter is used
5568 # for result publication in the study. Otherwise, if automatic
5569 # publication is switched on, default value is used for result name.
5571 # @return List of sub-shapes of type theShapeType, contained in theShape.
5573 # @ref swig_SubShapeAllSorted "Example"
5574 def SubShapeAllSortedCentres(self, aShape, aType, theName=None):
5576 Explode a shape on sub-shapes of a given type.
5577 Sub-shapes will be sorted by coordinates of their gravity centers.
5578 If the shape itself matches the type, it is also returned.
5581 aShape Shape to be exploded.
5582 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5583 theName Object name; when specified, this parameter is used
5584 for result publication in the study. Otherwise, if automatic
5585 publication is switched on, default value is used for result name.
5588 List of sub-shapes of type theShapeType, contained in theShape.
5590 # Example: see GEOM_TestAll.py
5591 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), True)
5592 RaiseIfFailed("SubShapeAllSortedCentres", self.ShapesOp)
5593 self._autoPublish(ListObj, theName, "subshape")
5596 ## Explode a shape on sub-shapes of a given type.
5597 # Sub-shapes will be sorted by coordinates of their gravity centers.
5598 # @param aShape Shape to be exploded.
5599 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5600 # @return List of IDs of sub-shapes.
5602 # @ref swig_all_decompose "Example"
5603 def SubShapeAllSortedCentresIDs(self, aShape, aType):
5605 Explode a shape on sub-shapes of a given type.
5606 Sub-shapes will be sorted by coordinates of their gravity centers.
5609 aShape Shape to be exploded.
5610 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5613 List of IDs of sub-shapes.
5615 ListIDs = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), True)
5616 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
5619 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
5620 # selected by they indices in sorted list of all sub-shapes of type <VAR>aType</VAR>.
5621 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5622 # @param aShape Shape to get sub-shape of.
5623 # @param ListOfInd List of sub-shapes indices.
5624 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
5625 # @param theName Object name; when specified, this parameter is used
5626 # for result publication in the study. Otherwise, if automatic
5627 # publication is switched on, default value is used for result name.
5629 # @return A compound of sub-shapes of aShape.
5631 # @ref swig_all_decompose "Example"
5632 def SubShapeSortedCentres(self, aShape, aType, ListOfInd, theName=None):
5634 Obtain a compound of sub-shapes of aShape,
5635 selected by they indices in sorted list of all sub-shapes of type aType.
5636 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
5639 aShape Shape to get sub-shape of.
5640 ListOfID List of sub-shapes indices.
5641 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5642 theName Object name; when specified, this parameter is used
5643 for result publication in the study. Otherwise, if automatic
5644 publication is switched on, default value is used for result name.
5647 A compound of sub-shapes of aShape.
5649 # Example: see GEOM_TestAll.py
5651 AllShapeIDsList = self.SubShapeAllSortedCentresIDs(aShape, EnumToLong( aType ))
5652 for ind in ListOfInd:
5653 ListOfIDs.append(AllShapeIDsList[ind - 1])
5654 # note: auto-publishing is done in self.GetSubShape()
5655 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
5658 ## Extract shapes (excluding the main shape) of given type.
5659 # @param aShape The shape.
5660 # @param aType The shape type (see ShapeType())
5661 # @param isSorted Boolean flag to switch sorting on/off.
5662 # @param theName Object name; when specified, this parameter is used
5663 # for result publication in the study. Otherwise, if automatic
5664 # publication is switched on, default value is used for result name.
5666 # @return List of sub-shapes of type aType, contained in aShape.
5668 # @ref swig_FilletChamfer "Example"
5669 def ExtractShapes(self, aShape, aType, isSorted = False, theName=None):
5671 Extract shapes (excluding the main shape) of given type.
5675 aType The shape type (see geompy.ShapeType)
5676 isSorted Boolean flag to switch sorting on/off.
5677 theName Object name; when specified, this parameter is used
5678 for result publication in the study. Otherwise, if automatic
5679 publication is switched on, default value is used for result name.
5682 List of sub-shapes of type aType, contained in aShape.
5684 # Example: see GEOM_TestAll.py
5685 ListObj = self.ShapesOp.ExtractSubShapes(aShape, EnumToLong( aType ), isSorted)
5686 RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
5687 self._autoPublish(ListObj, theName, "subshape")
5690 ## Get a set of sub-shapes defined by their unique IDs inside <VAR>aShape</VAR>
5691 # @param aShape Main shape.
5692 # @param anIDs List of unique IDs of sub-shapes inside <VAR>aShape</VAR>.
5693 # @param theName Object name; when specified, this parameter is used
5694 # for result publication in the study. Otherwise, if automatic
5695 # publication is switched on, default value is used for result name.
5696 # @return List of GEOM.GEOM_Object, corresponding to found sub-shapes.
5698 # @ref swig_all_decompose "Example"
5699 def SubShapes(self, aShape, anIDs, theName=None):
5701 Get a set of sub-shapes defined by their unique IDs inside theMainShape
5705 anIDs List of unique IDs of sub-shapes inside theMainShape.
5706 theName Object name; when specified, this parameter is used
5707 for result publication in the study. Otherwise, if automatic
5708 publication is switched on, default value is used for result name.
5711 List of GEOM.GEOM_Object, corresponding to found sub-shapes.
5713 # Example: see GEOM_TestAll.py
5714 ListObj = self.ShapesOp.MakeSubShapes(aShape, anIDs)
5715 RaiseIfFailed("SubShapes", self.ShapesOp)
5716 self._autoPublish(ListObj, theName, "subshape")
5719 # end of l4_decompose
5722 ## @addtogroup l4_decompose_d
5725 ## Deprecated method
5726 # It works like SubShapeAllSortedCentres(), but wrongly
5727 # defines centres of faces, shells and solids.
5728 def SubShapeAllSorted(self, aShape, aType, theName=None):
5731 It works like geompy.SubShapeAllSortedCentres, but wrongly
5732 defines centres of faces, shells and solids.
5734 ListObj = self.ShapesOp.MakeExplode(aShape, EnumToLong( aType ), True)
5735 RaiseIfFailed("MakeExplode", self.ShapesOp)
5736 self._autoPublish(ListObj, theName, "subshape")
5739 ## Deprecated method
5740 # It works like SubShapeAllSortedCentresIDs(), but wrongly
5741 # defines centres of faces, shells and solids.
5742 def SubShapeAllSortedIDs(self, aShape, aType):
5745 It works like geompy.SubShapeAllSortedCentresIDs, but wrongly
5746 defines centres of faces, shells and solids.
5748 ListIDs = self.ShapesOp.SubShapeAllIDs(aShape, EnumToLong( aType ), True)
5749 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
5752 ## Deprecated method
5753 # It works like SubShapeSortedCentres(), but has a bug
5754 # (wrongly defines centres of faces, shells and solids).
5755 def SubShapeSorted(self, aShape, aType, ListOfInd, theName=None):
5758 It works like geompy.SubShapeSortedCentres, but has a bug
5759 (wrongly defines centres of faces, shells and solids).
5762 AllShapeIDsList = self.SubShapeAllSortedIDs(aShape, EnumToLong( aType ))
5763 for ind in ListOfInd:
5764 ListOfIDs.append(AllShapeIDsList[ind - 1])
5765 # note: auto-publishing is done in self.GetSubShape()
5766 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
5769 # end of l4_decompose_d
5772 ## @addtogroup l3_healing
5775 ## Apply a sequence of Shape Healing operators to the given object.
5776 # @param theShape Shape to be processed.
5777 # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
5778 # @param theParameters List of names of parameters
5779 # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
5780 # @param theValues List of values of parameters, in the same order
5781 # as parameters are listed in <VAR>theParameters</VAR> list.
5782 # @param theName Object name; when specified, this parameter is used
5783 # for result publication in the study. Otherwise, if automatic
5784 # publication is switched on, default value is used for result name.
5786 # <b> Operators and Parameters: </b> \n
5788 # * \b FixShape - corrects invalid shapes. \n
5789 # - \b FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them. \n
5790 # - \b FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction. \n
5792 # * \b FixFaceSize - removes small faces, such as spots and strips.\n
5793 # - \b FixFaceSize.Tolerance - defines minimum possible face size. \n
5794 # - \b DropSmallEdges - removes edges, which merge with neighbouring edges. \n
5795 # - \b DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.\n
5797 # * \b SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical
5798 # surfaces in segments using a certain angle. \n
5799 # - \b SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
5800 # if Angle=180, four if Angle=90, etc). \n
5801 # - \b SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.\n
5803 # * \b SplitClosedFaces - splits closed faces in segments.
5804 # The number of segments depends on the number of splitting points.\n
5805 # - \b SplitClosedFaces.NbSplitPoints - the number of splitting points.\n
5807 # * \b SplitContinuity - splits shapes to reduce continuities of curves and surfaces.\n
5808 # - \b SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.\n
5809 # - \b SplitContinuity.SurfaceContinuity - required continuity for surfaces.\n
5810 # - \b SplitContinuity.CurveContinuity - required continuity for curves.\n
5811 # This and the previous parameters can take the following values:\n
5812 # \b Parametric \b Continuity \n
5813 # \b C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces
5814 # are coincidental. The curves or surfaces may still meet at an angle, giving rise to a sharp corner or edge).\n
5815 # \b C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces are parallel,
5816 # ruling out sharp edges).\n
5817 # \b C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves or surfaces
5818 # are of the same magnitude).\n
5819 # \b CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of curves
5820 # or surfaces (d/du C(u)) are the same at junction. \n
5821 # \b Geometric \b Continuity \n
5822 # \b G1: first derivatives are proportional at junction.\n
5823 # The curve tangents thus have the same direction, but not necessarily the same magnitude.
5824 # i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).\n
5825 # \b G2: first and second derivatives are proportional at junction.
5826 # As the names imply, geometric continuity requires the geometry to be continuous, while parametric
5827 # continuity requires that the underlying parameterization was continuous as well.
5828 # Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.\n
5830 # * \b BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:\n
5831 # - \b BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.\n
5832 # - \b BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.\n
5833 # - \b BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.\n
5834 # - \b BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation
5835 # with the specified parameters.\n
5836 # - \b BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation
5837 # with the specified parameters.\n
5838 # - \b BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.\n
5839 # - \b BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.\n
5840 # - \b BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.\n
5841 # - \b BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.\n
5843 # * \b ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.\n
5844 # - \b ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.\n
5845 # - \b ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.\n
5846 # - \b ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.\n
5847 # - \b ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.\n
5849 # * \b SameParameter - fixes edges of 2D and 3D curves not having the same parameter.\n
5850 # - \b SameParameter.Tolerance3d - defines tolerance for fixing of edges.\n
5853 # @return New GEOM.GEOM_Object, containing processed shape.
5855 # \n @ref tui_shape_processing "Example"
5856 def ProcessShape(self, theShape, theOperators, theParameters, theValues, theName=None):
5858 Apply a sequence of Shape Healing operators to the given object.
5861 theShape Shape to be processed.
5862 theValues List of values of parameters, in the same order
5863 as parameters are listed in theParameters list.
5864 theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
5865 theParameters List of names of parameters
5866 ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
5867 theName Object name; when specified, this parameter is used
5868 for result publication in the study. Otherwise, if automatic
5869 publication is switched on, default value is used for result name.
5871 Operators and Parameters:
5873 * FixShape - corrects invalid shapes.
5874 * FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them.
5875 * FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction.
5876 * FixFaceSize - removes small faces, such as spots and strips.
5877 * FixFaceSize.Tolerance - defines minimum possible face size.
5878 * DropSmallEdges - removes edges, which merge with neighbouring edges.
5879 * DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.
5880 * SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical surfaces
5881 in segments using a certain angle.
5882 * SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
5883 if Angle=180, four if Angle=90, etc).
5884 * SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.
5885 * SplitClosedFaces - splits closed faces in segments. The number of segments depends on the number of
5887 * SplitClosedFaces.NbSplitPoints - the number of splitting points.
5888 * SplitContinuity - splits shapes to reduce continuities of curves and surfaces.
5889 * SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.
5890 * SplitContinuity.SurfaceContinuity - required continuity for surfaces.
5891 * SplitContinuity.CurveContinuity - required continuity for curves.
5892 This and the previous parameters can take the following values:
5894 Parametric Continuity:
5895 C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces are
5896 coincidental. The curves or surfaces may still meet at an angle,
5897 giving rise to a sharp corner or edge).
5898 C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces
5899 are parallel, ruling out sharp edges).
5900 C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves
5901 or surfaces are of the same magnitude).
5902 CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of
5903 curves or surfaces (d/du C(u)) are the same at junction.
5905 Geometric Continuity:
5906 G1: first derivatives are proportional at junction.
5907 The curve tangents thus have the same direction, but not necessarily the same magnitude.
5908 i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).
5909 G2: first and second derivatives are proportional at junction. As the names imply,
5910 geometric continuity requires the geometry to be continuous, while parametric continuity requires
5911 that the underlying parameterization was continuous as well. Parametric continuity of order n implies
5912 geometric continuity of order n, but not vice-versa.
5913 * BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:
5914 * BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.
5915 * BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.
5916 * BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.
5917 * BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation with
5918 the specified parameters.
5919 * BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation with
5920 the specified parameters.
5921 * BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.
5922 * BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.
5923 * BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.
5924 * BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.
5925 * ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.
5926 * ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.
5927 * ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.
5928 * ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.
5929 * ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.
5930 * SameParameter - fixes edges of 2D and 3D curves not having the same parameter.
5931 * SameParameter.Tolerance3d - defines tolerance for fixing of edges.
5934 New GEOM.GEOM_Object, containing processed shape.
5936 Note: For more information look through SALOME Geometry User's Guide->
5937 -> Introduction to Geometry-> Repairing Operations-> Shape Processing
5939 # Example: see GEOM_TestHealing.py
5940 theValues,Parameters = ParseList(theValues)
5941 anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
5942 # To avoid script failure in case of good argument shape
5943 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
5945 RaiseIfFailed("ProcessShape", self.HealOp)
5946 for string in (theOperators + theParameters):
5947 Parameters = ":" + Parameters
5949 anObj.SetParameters(Parameters)
5950 self._autoPublish(anObj, theName, "healed")
5953 ## Remove faces from the given object (shape).
5954 # @param theObject Shape to be processed.
5955 # @param theFaces Indices of faces to be removed, if EMPTY then the method
5956 # removes ALL faces of the given object.
5957 # @param 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.
5961 # @return New GEOM.GEOM_Object, containing processed shape.
5963 # @ref tui_suppress_faces "Example"
5964 def SuppressFaces(self, theObject, theFaces, theName=None):
5966 Remove faces from the given object (shape).
5969 theObject Shape to be processed.
5970 theFaces Indices of faces to be removed, if EMPTY then the method
5971 removes ALL faces of the given object.
5972 theName Object name; when specified, this parameter is used
5973 for result publication in the study. Otherwise, if automatic
5974 publication is switched on, default value is used for result name.
5977 New GEOM.GEOM_Object, containing processed shape.
5979 # Example: see GEOM_TestHealing.py
5980 anObj = self.HealOp.SuppressFaces(theObject, theFaces)
5981 RaiseIfFailed("SuppressFaces", self.HealOp)
5982 self._autoPublish(anObj, theName, "suppressFaces")
5985 ## Sewing of some shapes into single shape.
5986 # @param ListShape Shapes to be processed.
5987 # @param theTolerance Required tolerance value.
5988 # @param AllowNonManifold Flag that allows non-manifold sewing.
5989 # @param theName Object name; when specified, this parameter is used
5990 # for result publication in the study. Otherwise, if automatic
5991 # publication is switched on, default value is used for result name.
5993 # @return New GEOM.GEOM_Object, containing processed shape.
5995 # @ref tui_sewing "Example"
5996 def MakeSewing(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
5998 Sewing of some shapes into single shape.
6001 ListShape Shapes to be processed.
6002 theTolerance Required tolerance value.
6003 AllowNonManifold Flag that allows non-manifold sewing.
6004 theName Object name; when specified, this parameter is used
6005 for result publication in the study. Otherwise, if automatic
6006 publication is switched on, default value is used for result name.
6009 New GEOM.GEOM_Object, containing processed shape.
6011 # Example: see GEOM_TestHealing.py
6012 comp = self.MakeCompound(ListShape)
6013 # note: auto-publishing is done in self.Sew()
6014 anObj = self.Sew(comp, theTolerance, AllowNonManifold, theName)
6017 ## Sewing of the given object.
6018 # @param theObject Shape to be processed.
6019 # @param theTolerance Required tolerance value.
6020 # @param AllowNonManifold Flag that allows non-manifold sewing.
6021 # @param theName Object name; when specified, this parameter is used
6022 # for result publication in the study. Otherwise, if automatic
6023 # publication is switched on, default value is used for result name.
6025 # @return New GEOM.GEOM_Object, containing processed shape.
6026 def Sew(self, theObject, theTolerance, AllowNonManifold=False, theName=None):
6028 Sewing of the given object.
6031 theObject Shape to be processed.
6032 theTolerance Required tolerance value.
6033 AllowNonManifold Flag that allows non-manifold sewing.
6034 theName Object name; when specified, this parameter is used
6035 for result publication in the study. Otherwise, if automatic
6036 publication is switched on, default value is used for result name.
6039 New GEOM.GEOM_Object, containing processed shape.
6041 # Example: see MakeSewing() above
6042 theTolerance,Parameters = ParseParameters(theTolerance)
6043 if AllowNonManifold:
6044 anObj = self.HealOp.SewAllowNonManifold(theObject, theTolerance)
6046 anObj = self.HealOp.Sew(theObject, theTolerance)
6047 # To avoid script failure in case of good argument shape
6048 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
6050 RaiseIfFailed("Sew", self.HealOp)
6051 anObj.SetParameters(Parameters)
6052 self._autoPublish(anObj, theName, "sewed")
6055 ## Rebuild the topology of theCompound of solids by removing
6056 # of the faces that are shared by several solids.
6057 # @param theCompound Shape to be processed.
6058 # @param theName Object name; when specified, this parameter is used
6059 # for result publication in the study. Otherwise, if automatic
6060 # publication is switched on, default value is used for result name.
6062 # @return New GEOM.GEOM_Object, containing processed shape.
6064 # @ref tui_remove_webs "Example"
6065 def RemoveInternalFaces (self, theCompound, theName=None):
6067 Rebuild the topology of theCompound of solids by removing
6068 of the faces that are shared by several solids.
6071 theCompound Shape to be processed.
6072 theName Object name; when specified, this parameter is used
6073 for result publication in the study. Otherwise, if automatic
6074 publication is switched on, default value is used for result name.
6077 New GEOM.GEOM_Object, containing processed shape.
6079 # Example: see GEOM_TestHealing.py
6080 anObj = self.HealOp.RemoveInternalFaces(theCompound)
6081 RaiseIfFailed("RemoveInternalFaces", self.HealOp)
6082 self._autoPublish(anObj, theName, "removeWebs")
6085 ## Remove internal wires and edges from the given object (face).
6086 # @param theObject Shape to be processed.
6087 # @param theWires Indices of wires to be removed, if EMPTY then the method
6088 # removes ALL internal wires of the given object.
6089 # @param theName Object name; when specified, this parameter is used
6090 # for result publication in the study. Otherwise, if automatic
6091 # publication is switched on, default value is used for result name.
6093 # @return New GEOM.GEOM_Object, containing processed shape.
6095 # @ref tui_suppress_internal_wires "Example"
6096 def SuppressInternalWires(self, theObject, theWires, theName=None):
6098 Remove internal wires and edges from the given object (face).
6101 theObject Shape to be processed.
6102 theWires Indices of wires to be removed, if EMPTY then the method
6103 removes ALL internal wires of the given object.
6104 theName Object name; when specified, this parameter is used
6105 for result publication in the study. Otherwise, if automatic
6106 publication is switched on, default value is used for result name.
6109 New GEOM.GEOM_Object, containing processed shape.
6111 # Example: see GEOM_TestHealing.py
6112 anObj = self.HealOp.RemoveIntWires(theObject, theWires)
6113 RaiseIfFailed("RemoveIntWires", self.HealOp)
6114 self._autoPublish(anObj, theName, "suppressWires")
6117 ## Remove internal closed contours (holes) from the given object.
6118 # @param theObject Shape to be processed.
6119 # @param theWires Indices of wires to be removed, if EMPTY then the method
6120 # removes ALL internal holes of the given object
6121 # @param theName Object name; when specified, this parameter is used
6122 # for result publication in the study. Otherwise, if automatic
6123 # publication is switched on, default value is used for result name.
6125 # @return New GEOM.GEOM_Object, containing processed shape.
6127 # @ref tui_suppress_holes "Example"
6128 def SuppressHoles(self, theObject, theWires, theName=None):
6130 Remove internal closed contours (holes) from the given object.
6133 theObject Shape to be processed.
6134 theWires Indices of wires to be removed, if EMPTY then the method
6135 removes ALL internal holes of the given object
6136 theName Object name; when specified, this parameter is used
6137 for result publication in the study. Otherwise, if automatic
6138 publication is switched on, default value is used for result name.
6141 New GEOM.GEOM_Object, containing processed shape.
6143 # Example: see GEOM_TestHealing.py
6144 anObj = self.HealOp.FillHoles(theObject, theWires)
6145 RaiseIfFailed("FillHoles", self.HealOp)
6146 self._autoPublish(anObj, theName, "suppressHoles")
6149 ## Close an open wire.
6150 # @param theObject Shape to be processed.
6151 # @param theWires Indexes of edge(s) and wire(s) to be closed within <VAR>theObject</VAR>'s shape,
6152 # if [ ], then <VAR>theObject</VAR> itself is a wire.
6153 # @param isCommonVertex If True : closure by creation of a common vertex,
6154 # If False : closure by creation of an edge between ends.
6155 # @param theName Object name; when specified, this parameter is used
6156 # for result publication in the study. Otherwise, if automatic
6157 # publication is switched on, default value is used for result name.
6159 # @return New GEOM.GEOM_Object, containing processed shape.
6161 # @ref tui_close_contour "Example"
6162 def CloseContour(self,theObject, theWires, isCommonVertex, theName=None):
6167 theObject Shape to be processed.
6168 theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape,
6169 if [ ], then theObject itself is a wire.
6170 isCommonVertex If True : closure by creation of a common vertex,
6171 If False : closure by creation of an edge between ends.
6172 theName Object name; when specified, this parameter is used
6173 for result publication in the study. Otherwise, if automatic
6174 publication is switched on, default value is used for result name.
6177 New GEOM.GEOM_Object, containing processed shape.
6179 # Example: see GEOM_TestHealing.py
6180 anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex)
6181 RaiseIfFailed("CloseContour", self.HealOp)
6182 self._autoPublish(anObj, theName, "closeContour")
6185 ## Addition of a point to a given edge object.
6186 # @param theObject Shape to be processed.
6187 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
6188 # if -1, then theObject itself is the edge.
6189 # @param theValue Value of parameter on edge or length parameter,
6190 # depending on \a isByParameter.
6191 # @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1], \n
6192 # if FALSE : \a theValue is treated as a length parameter [0..1]
6193 # @param theName Object name; when specified, this parameter is used
6194 # for result publication in the study. Otherwise, if automatic
6195 # publication is switched on, default value is used for result name.
6197 # @return New GEOM.GEOM_Object, containing processed shape.
6199 # @ref tui_add_point_on_edge "Example"
6200 def DivideEdge(self, theObject, theEdgeIndex, theValue, isByParameter, theName=None):
6202 Addition of a point to a given edge object.
6205 theObject Shape to be processed.
6206 theEdgeIndex Index of edge to be divided within theObject's shape,
6207 if -1, then theObject itself is the edge.
6208 theValue Value of parameter on edge or length parameter,
6209 depending on isByParameter.
6210 isByParameter If TRUE : theValue is treated as a curve parameter [0..1],
6211 if FALSE : theValue is treated as a length parameter [0..1]
6212 theName Object name; when specified, this parameter is used
6213 for result publication in the study. Otherwise, if automatic
6214 publication is switched on, default value is used for result name.
6217 New GEOM.GEOM_Object, containing processed shape.
6219 # Example: see GEOM_TestHealing.py
6220 theEdgeIndex,theValue,isByParameter,Parameters = ParseParameters(theEdgeIndex,theValue,isByParameter)
6221 anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
6222 RaiseIfFailed("DivideEdge", self.HealOp)
6223 anObj.SetParameters(Parameters)
6224 self._autoPublish(anObj, theName, "divideEdge")
6227 ## Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
6228 # @param theWire Wire to minimize the number of C1 continuous edges in.
6229 # @param theVertices A list of vertices to suppress. If the list
6230 # is empty, all vertices in a wire will be assumed.
6231 # @param theName Object name; when specified, this parameter is used
6232 # for result publication in the study. Otherwise, if automatic
6233 # publication is switched on, default value is used for result name.
6235 # @return New GEOM.GEOM_Object with modified wire.
6237 # @ref tui_fuse_collinear_edges "Example"
6238 def FuseCollinearEdgesWithinWire(self, theWire, theVertices = [], theName=None):
6240 Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
6243 theWire Wire to minimize the number of C1 continuous edges in.
6244 theVertices A list of vertices to suppress. If the list
6245 is empty, all vertices in a wire will be assumed.
6246 theName Object name; when specified, this parameter is used
6247 for result publication in the study. Otherwise, if automatic
6248 publication is switched on, default value is used for result name.
6251 New GEOM.GEOM_Object with modified wire.
6253 anObj = self.HealOp.FuseCollinearEdgesWithinWire(theWire, theVertices)
6254 RaiseIfFailed("FuseCollinearEdgesWithinWire", self.HealOp)
6255 self._autoPublish(anObj, theName, "fuseEdges")
6258 ## Change orientation of the given object. Updates given shape.
6259 # @param theObject Shape to be processed.
6260 # @return Updated <var>theObject</var>
6262 # @ref swig_todo "Example"
6263 def ChangeOrientationShell(self,theObject):
6265 Change orientation of the given object. Updates given shape.
6268 theObject Shape to be processed.
6273 theObject = self.HealOp.ChangeOrientation(theObject)
6274 RaiseIfFailed("ChangeOrientation", self.HealOp)
6277 ## Change orientation of the given object.
6278 # @param theObject Shape to be processed.
6279 # @param theName Object name; when specified, this parameter is used
6280 # for result publication in the study. Otherwise, if automatic
6281 # publication is switched on, default value is used for result name.
6283 # @return New GEOM.GEOM_Object, containing processed shape.
6285 # @ref swig_todo "Example"
6286 def ChangeOrientationShellCopy(self, theObject, theName=None):
6288 Change orientation of the given object.
6291 theObject Shape to be processed.
6292 theName Object name; when specified, this parameter is used
6293 for result publication in the study. Otherwise, if automatic
6294 publication is switched on, default value is used for result name.
6297 New GEOM.GEOM_Object, containing processed shape.
6299 anObj = self.HealOp.ChangeOrientationCopy(theObject)
6300 RaiseIfFailed("ChangeOrientationCopy", self.HealOp)
6301 self._autoPublish(anObj, theName, "reversed")
6304 ## Try to limit tolerance of the given object by value \a theTolerance.
6305 # @param theObject Shape to be processed.
6306 # @param theTolerance Required tolerance value.
6307 # @param theName Object name; when specified, this parameter is used
6308 # for result publication in the study. Otherwise, if automatic
6309 # publication is switched on, default value is used for result name.
6311 # @return New GEOM.GEOM_Object, containing processed shape.
6313 # @ref tui_limit_tolerance "Example"
6314 def LimitTolerance(self, theObject, theTolerance = 1e-07, theName=None):
6316 Try to limit tolerance of the given object by value theTolerance.
6319 theObject Shape to be processed.
6320 theTolerance Required tolerance value.
6321 theName Object name; when specified, this parameter is used
6322 for result publication in the study. Otherwise, if automatic
6323 publication is switched on, default value is used for result name.
6326 New GEOM.GEOM_Object, containing processed shape.
6328 anObj = self.HealOp.LimitTolerance(theObject, theTolerance)
6329 RaiseIfFailed("LimitTolerance", self.HealOp)
6330 self._autoPublish(anObj, theName, "limitTolerance")
6333 ## Get a list of wires (wrapped in GEOM.GEOM_Object-s),
6334 # that constitute a free boundary of the given shape.
6335 # @param theObject Shape to get free boundary of.
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 [\a status, \a theClosedWires, \a theOpenWires]
6341 # \n \a status: FALSE, if an error(s) occured during the method execution.
6342 # \n \a theClosedWires: Closed wires on the free boundary of the given shape.
6343 # \n \a theOpenWires: Open wires on the free boundary of the given shape.
6345 # @ref tui_measurement_tools_page "Example"
6346 def GetFreeBoundary(self, theObject, theName=None):
6348 Get a list of wires (wrapped in GEOM.GEOM_Object-s),
6349 that constitute a free boundary of the given shape.
6352 theObject Shape to get free boundary of.
6353 theName Object name; when specified, this parameter is used
6354 for result publication in the study. Otherwise, if automatic
6355 publication is switched on, default value is used for result name.
6358 [status, theClosedWires, theOpenWires]
6359 status: FALSE, if an error(s) occured during the method execution.
6360 theClosedWires: Closed wires on the free boundary of the given shape.
6361 theOpenWires: Open wires on the free boundary of the given shape.
6363 # Example: see GEOM_TestHealing.py
6364 anObj = self.HealOp.GetFreeBoundary(theObject)
6365 RaiseIfFailed("GetFreeBoundary", self.HealOp)
6366 self._autoPublish(anObj[1], theName, "closedWire")
6367 self._autoPublish(anObj[2], theName, "openWire")
6370 ## Replace coincident faces in theShape by one face.
6371 # @param theShape Initial shape.
6372 # @param theTolerance Maximum distance between faces, which can be considered as coincident.
6373 # @param doKeepNonSolids If FALSE, only solids will present in the result,
6374 # otherwise all initial shapes.
6375 # @param theName Object name; when specified, this parameter is used
6376 # for result publication in the study. Otherwise, if automatic
6377 # publication is switched on, default value is used for result name.
6379 # @return New GEOM.GEOM_Object, containing a copy of theShape without coincident faces.
6381 # @ref tui_glue_faces "Example"
6382 def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True, theName=None):
6384 Replace coincident faces in theShape by one face.
6387 theShape Initial shape.
6388 theTolerance Maximum distance between faces, which can be considered as coincident.
6389 doKeepNonSolids If FALSE, only solids will present in the result,
6390 otherwise all initial shapes.
6391 theName Object name; when specified, this parameter is used
6392 for result publication in the study. Otherwise, if automatic
6393 publication is switched on, default value is used for result name.
6396 New GEOM.GEOM_Object, containing a copy of theShape without coincident faces.
6398 # Example: see GEOM_Spanner.py
6399 theTolerance,Parameters = ParseParameters(theTolerance)
6400 anObj = self.ShapesOp.MakeGlueFaces(theShape, theTolerance, doKeepNonSolids)
6402 raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
6403 anObj.SetParameters(Parameters)
6404 self._autoPublish(anObj, theName, "glueFaces")
6407 ## Find coincident faces in theShape for possible gluing.
6408 # @param theShape Initial shape.
6409 # @param theTolerance Maximum distance between faces,
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_faces "Example"
6418 def GetGlueFaces(self, theShape, theTolerance, theName=None):
6420 Find coincident faces in theShape for possible gluing.
6423 theShape Initial shape.
6424 theTolerance Maximum distance between faces,
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.GetGlueFaces(theShape, theTolerance)
6434 RaiseIfFailed("GetGlueFaces", self.ShapesOp)
6435 self._autoPublish(anObj, theName, "facesToGlue")
6438 ## Replace coincident faces in theShape by one face
6439 # in compliance with given list of faces
6440 # @param theShape Initial shape.
6441 # @param theTolerance Maximum distance between faces,
6442 # which can be considered as coincident.
6443 # @param theFaces List of faces for gluing.
6444 # @param doKeepNonSolids If FALSE, only solids will present in the result,
6445 # otherwise all initial shapes.
6446 # @param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
6447 # will be glued, otherwise only the edges,
6448 # belonging to <VAR>theFaces</VAR>.
6449 # @param theName Object name; when specified, this parameter is used
6450 # for result publication in the study. Otherwise, if automatic
6451 # publication is switched on, default value is used for result name.
6453 # @return New GEOM.GEOM_Object, containing a copy of theShape
6454 # without some faces.
6456 # @ref tui_glue_faces "Example"
6457 def MakeGlueFacesByList(self, theShape, theTolerance, theFaces,
6458 doKeepNonSolids=True, doGlueAllEdges=True, theName=None):
6460 Replace coincident faces in theShape by one face
6461 in compliance with given list of faces
6464 theShape Initial shape.
6465 theTolerance Maximum distance between faces,
6466 which can be considered as coincident.
6467 theFaces List of faces for gluing.
6468 doKeepNonSolids If FALSE, only solids will present in the result,
6469 otherwise all initial shapes.
6470 doGlueAllEdges If TRUE, all coincident edges of theShape
6471 will be glued, otherwise only the edges,
6472 belonging to theFaces.
6473 theName Object name; when specified, this parameter is used
6474 for result publication in the study. Otherwise, if automatic
6475 publication is switched on, default value is used for result name.
6478 New GEOM.GEOM_Object, containing a copy of theShape
6481 anObj = self.ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces,
6482 doKeepNonSolids, doGlueAllEdges)
6484 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
6485 self._autoPublish(anObj, theName, "glueFaces")
6488 ## Replace coincident edges in theShape by one edge.
6489 # @param theShape Initial shape.
6490 # @param theTolerance Maximum distance between edges, which can be considered as coincident.
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 a copy of theShape without coincident edges.
6497 # @ref tui_glue_edges "Example"
6498 def MakeGlueEdges(self, theShape, theTolerance, theName=None):
6500 Replace coincident edges in theShape by one edge.
6503 theShape Initial shape.
6504 theTolerance Maximum distance between edges, which can be considered as coincident.
6505 theName Object name; when specified, this parameter is used
6506 for result publication in the study. Otherwise, if automatic
6507 publication is switched on, default value is used for result name.
6510 New GEOM.GEOM_Object, containing a copy of theShape without coincident edges.
6512 theTolerance,Parameters = ParseParameters(theTolerance)
6513 anObj = self.ShapesOp.MakeGlueEdges(theShape, theTolerance)
6515 raise RuntimeError, "MakeGlueEdges : " + self.ShapesOp.GetErrorCode()
6516 anObj.SetParameters(Parameters)
6517 self._autoPublish(anObj, theName, "glueEdges")
6520 ## Find coincident edges in theShape for possible gluing.
6521 # @param theShape Initial shape.
6522 # @param theTolerance Maximum distance between edges,
6523 # which can be considered as coincident.
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 GEOM.ListOfGO
6530 # @ref tui_glue_edges "Example"
6531 def GetGlueEdges(self, theShape, theTolerance, theName=None):
6533 Find coincident edges in theShape for possible gluing.
6536 theShape Initial shape.
6537 theTolerance Maximum distance between edges,
6538 which can be considered as coincident.
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.
6546 anObj = self.ShapesOp.GetGlueEdges(theShape, theTolerance)
6547 RaiseIfFailed("GetGlueEdges", self.ShapesOp)
6548 self._autoPublish(anObj, theName, "edgesToGlue")
6551 ## Replace coincident edges in theShape by one edge
6552 # in compliance with given list of edges.
6553 # @param theShape Initial shape.
6554 # @param theTolerance Maximum distance between edges,
6555 # which can be considered as coincident.
6556 # @param theEdges List of edges for gluing.
6557 # @param theName Object name; when specified, this parameter is used
6558 # for result publication in the study. Otherwise, if automatic
6559 # publication is switched on, default value is used for result name.
6561 # @return New GEOM.GEOM_Object, containing a copy of theShape
6562 # without some edges.
6564 # @ref tui_glue_edges "Example"
6565 def MakeGlueEdgesByList(self, theShape, theTolerance, theEdges, theName=None):
6567 Replace coincident edges in theShape by one edge
6568 in compliance with given list of edges.
6571 theShape Initial shape.
6572 theTolerance Maximum distance between edges,
6573 which can be considered as coincident.
6574 theEdges List of edges for gluing.
6575 theName Object name; when specified, this parameter is used
6576 for result publication in the study. Otherwise, if automatic
6577 publication is switched on, default value is used for result name.
6580 New GEOM.GEOM_Object, containing a copy of theShape
6583 anObj = self.ShapesOp.MakeGlueEdgesByList(theShape, theTolerance, theEdges)
6585 raise RuntimeError, "MakeGlueEdgesByList : " + self.ShapesOp.GetErrorCode()
6586 self._autoPublish(anObj, theName, "glueEdges")
6592 ## @addtogroup l3_boolean Boolean Operations
6595 # -----------------------------------------------------------------------------
6596 # Boolean (Common, Cut, Fuse, Section)
6597 # -----------------------------------------------------------------------------
6599 ## Perform one of boolean operations on two given shapes.
6600 # @param theShape1 First argument for boolean operation.
6601 # @param theShape2 Second argument for boolean operation.
6602 # @param theOperation Indicates the operation to be done:\n
6603 # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
6604 # @param theName Object name; when specified, this parameter is used
6605 # for result publication in the study. Otherwise, if automatic
6606 # publication is switched on, default value is used for result name.
6608 # @return New GEOM.GEOM_Object, containing the result shape.
6610 # @ref tui_fuse "Example"
6611 def MakeBoolean(self, theShape1, theShape2, theOperation, theName=None):
6613 Perform one of boolean operations on two given shapes.
6616 theShape1 First argument for boolean operation.
6617 theShape2 Second argument for boolean operation.
6618 theOperation Indicates the operation to be done:
6619 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
6620 theName Object name; when specified, this parameter is used
6621 for result publication in the study. Otherwise, if automatic
6622 publication is switched on, default value is used for result name.
6625 New GEOM.GEOM_Object, containing the result shape.
6627 # Example: see GEOM_TestAll.py
6628 anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation)
6629 RaiseIfFailed("MakeBoolean", self.BoolOp)
6630 def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
6631 self._autoPublish(anObj, theName, def_names[theOperation])
6634 ## Perform Common boolean operation on two given shapes.
6635 # @param theShape1 First argument for boolean operation.
6636 # @param theShape2 Second argument for boolean operation.
6637 # @param theName Object name; when specified, this parameter is used
6638 # for result publication in the study. Otherwise, if automatic
6639 # publication is switched on, default value is used for result name.
6641 # @return New GEOM.GEOM_Object, containing the result shape.
6643 # @ref tui_common "Example 1"
6644 # \n @ref swig_MakeCommon "Example 2"
6645 def MakeCommon(self, theShape1, theShape2, theName=None):
6647 Perform Common boolean operation on two given shapes.
6650 theShape1 First argument for boolean operation.
6651 theShape2 Second argument for boolean operation.
6652 theName Object name; when specified, this parameter is used
6653 for result publication in the study. Otherwise, if automatic
6654 publication is switched on, default value is used for result name.
6657 New GEOM.GEOM_Object, containing the result shape.
6659 # Example: see GEOM_TestOthers.py
6660 # note: auto-publishing is done in self.MakeBoolean()
6661 return self.MakeBoolean(theShape1, theShape2, 1, theName)
6663 ## Perform Cut boolean operation on two given shapes.
6664 # @param theShape1 First argument for boolean operation.
6665 # @param theShape2 Second argument for boolean operation.
6666 # @param theName Object name; when specified, this parameter is used
6667 # for result publication in the study. Otherwise, if automatic
6668 # publication is switched on, default value is used for result name.
6670 # @return New GEOM.GEOM_Object, containing the result shape.
6672 # @ref tui_cut "Example 1"
6673 # \n @ref swig_MakeCommon "Example 2"
6674 def MakeCut(self, theShape1, theShape2, theName=None):
6676 Perform Cut boolean operation on two given shapes.
6679 theShape1 First argument for boolean operation.
6680 theShape2 Second argument for boolean operation.
6681 theName Object name; when specified, this parameter is used
6682 for result publication in the study. Otherwise, if automatic
6683 publication is switched on, default value is used for result name.
6686 New GEOM.GEOM_Object, containing the result shape.
6689 # Example: see GEOM_TestOthers.py
6690 # note: auto-publishing is done in self.MakeBoolean()
6691 return self.MakeBoolean(theShape1, theShape2, 2, theName)
6693 ## Perform Fuse boolean operation on two given shapes.
6694 # @param theShape1 First argument for boolean operation.
6695 # @param theShape2 Second argument for boolean operation.
6696 # @param theName Object name; when specified, this parameter is used
6697 # for result publication in the study. Otherwise, if automatic
6698 # publication is switched on, default value is used for result name.
6700 # @return New GEOM.GEOM_Object, containing the result shape.
6702 # @ref tui_fuse "Example 1"
6703 # \n @ref swig_MakeCommon "Example 2"
6704 def MakeFuse(self, theShape1, theShape2, theName=None):
6706 Perform Fuse boolean operation on two given shapes.
6709 theShape1 First argument for boolean operation.
6710 theShape2 Second argument for boolean operation.
6711 theName Object name; when specified, this parameter is used
6712 for result publication in the study. Otherwise, if automatic
6713 publication is switched on, default value is used for result name.
6716 New GEOM.GEOM_Object, containing the result shape.
6719 # Example: see GEOM_TestOthers.py
6720 # note: auto-publishing is done in self.MakeBoolean()
6721 return self.MakeBoolean(theShape1, theShape2, 3, theName)
6723 ## Perform Section boolean operation on two given shapes.
6724 # @param theShape1 First argument for boolean operation.
6725 # @param theShape2 Second argument for boolean operation.
6726 # @param theName Object name; when specified, this parameter is used
6727 # for result publication in the study. Otherwise, if automatic
6728 # publication is switched on, default value is used for result name.
6730 # @return New GEOM.GEOM_Object, containing the result shape.
6732 # @ref tui_section "Example 1"
6733 # \n @ref swig_MakeCommon "Example 2"
6734 def MakeSection(self, theShape1, theShape2, theName=None):
6736 Perform Section boolean operation on two given shapes.
6739 theShape1 First argument for boolean operation.
6740 theShape2 Second argument for boolean operation.
6741 theName Object name; when specified, this parameter is used
6742 for result publication in the study. Otherwise, if automatic
6743 publication is switched on, default value is used for result name.
6746 New GEOM.GEOM_Object, containing the result shape.
6749 # Example: see GEOM_TestOthers.py
6750 # note: auto-publishing is done in self.MakeBoolean()
6751 return self.MakeBoolean(theShape1, theShape2, 4, theName)
6753 ## Perform Fuse boolean operation on the list of shapes.
6754 # @param theShapesList Shapes to be fused.
6755 # @param theName Object name; when specified, this parameter is used
6756 # for result publication in the study. Otherwise, if automatic
6757 # publication is switched on, default value is used for result name.
6759 # @return New GEOM.GEOM_Object, containing the result shape.
6761 # @ref tui_fuse "Example 1"
6762 # \n @ref swig_MakeCommon "Example 2"
6763 def MakeFuseList(self, theShapesList, theName=None):
6765 Perform Fuse boolean operation on the list of shapes.
6768 theShapesList Shapes to be fused.
6769 theName Object name; when specified, this parameter is used
6770 for result publication in the study. Otherwise, if automatic
6771 publication is switched on, default value is used for result name.
6774 New GEOM.GEOM_Object, containing the result shape.
6777 # Example: see GEOM_TestOthers.py
6778 anObj = self.BoolOp.MakeFuseList(theShapesList)
6779 RaiseIfFailed("MakeFuseList", self.BoolOp)
6780 self._autoPublish(anObj, theName, "fuse")
6783 ## Perform Common boolean operation on the list of shapes.
6784 # @param theShapesList Shapes for Common operation.
6785 # @param 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 # @return New GEOM.GEOM_Object, containing the result shape.
6791 # @ref tui_common "Example 1"
6792 # \n @ref swig_MakeCommon "Example 2"
6793 def MakeCommonList(self, theShapesList, theName=None):
6795 Perform Common boolean operation on the list of shapes.
6798 theShapesList Shapes for Common operation.
6799 theName Object name; when specified, this parameter is used
6800 for result publication in the study. Otherwise, if automatic
6801 publication is switched on, default value is used for result name.
6804 New GEOM.GEOM_Object, containing the result shape.
6807 # Example: see GEOM_TestOthers.py
6808 anObj = self.BoolOp.MakeCommonList(theShapesList)
6809 RaiseIfFailed("MakeCommonList", self.BoolOp)
6810 self._autoPublish(anObj, theName, "common")
6813 ## Perform Cut boolean operation on one object and the list of tools.
6814 # @param theMainShape The object of the operation.
6815 # @param theShapesList The list of tools of the operation.
6816 # @param theName Object name; when specified, this parameter is used
6817 # for result publication in the study. Otherwise, if automatic
6818 # publication is switched on, default value is used for result name.
6820 # @return New GEOM.GEOM_Object, containing the result shape.
6822 # @ref tui_cut "Example 1"
6823 # \n @ref swig_MakeCommon "Example 2"
6824 def MakeCutList(self, theMainShape, theShapesList, theName=None):
6826 Perform Cut boolean operation on one object and the list of tools.
6829 theMainShape The object of the operation.
6830 theShapesList The list of tools of the operation.
6831 theName Object name; when specified, this parameter is used
6832 for result publication in the study. Otherwise, if automatic
6833 publication is switched on, default value is used for result name.
6836 New GEOM.GEOM_Object, containing the result shape.
6839 # Example: see GEOM_TestOthers.py
6840 anObj = self.BoolOp.MakeCutList(theMainShape, theShapesList)
6841 RaiseIfFailed("MakeCutList", self.BoolOp)
6842 self._autoPublish(anObj, theName, "cut")
6848 ## @addtogroup l3_basic_op
6851 ## Perform partition operation.
6852 # @param ListShapes Shapes to be intersected.
6853 # @param ListTools Shapes to intersect theShapes.
6854 # @param Limit Type of resulting shapes (see ShapeType()).\n
6855 # If this parameter is set to -1 ("Auto"), most appropriate shape limit
6856 # type will be detected automatically.
6857 # @param KeepNonlimitShapes if this parameter == 0, then only shapes of
6858 # target type (equal to Limit) are kept in the result,
6859 # else standalone shapes of lower dimension
6860 # are kept also (if they exist).
6861 # @param theName Object name; when specified, this parameter is used
6862 # for result publication in the study. Otherwise, if automatic
6863 # publication is switched on, default value is used for result name.
6865 # @note Each compound from ListShapes and ListTools will be exploded
6866 # in order to avoid possible intersection between shapes from this compound.
6868 # After implementation new version of PartitionAlgo (October 2006)
6869 # other parameters are ignored by current functionality. They are kept
6870 # in this function only for support old versions.
6871 # @param ListKeepInside Shapes, outside which the results will be deleted.
6872 # Each shape from theKeepInside must belong to theShapes also.
6873 # @param ListRemoveInside Shapes, inside which the results will be deleted.
6874 # Each shape from theRemoveInside must belong to theShapes also.
6875 # @param RemoveWebs If TRUE, perform Glue 3D algorithm.
6876 # @param ListMaterials Material indices for each shape. Make sence,
6877 # only if theRemoveWebs is TRUE.
6879 # @return New GEOM.GEOM_Object, containing the result shapes.
6881 # @ref tui_partition "Example"
6882 def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
6883 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
6884 KeepNonlimitShapes=0, theName=None):
6886 Perform partition operation.
6889 ListShapes Shapes to be intersected.
6890 ListTools Shapes to intersect theShapes.
6891 Limit Type of resulting shapes (see geompy.ShapeType)
6892 If this parameter is set to -1 ("Auto"), most appropriate shape limit
6893 type will be detected automatically.
6894 KeepNonlimitShapes if this parameter == 0, then only shapes of
6895 target type (equal to Limit) are kept in the result,
6896 else standalone shapes of lower dimension
6897 are kept also (if they exist).
6898 theName Object name; when specified, this parameter is used
6899 for result publication in the study. Otherwise, if automatic
6900 publication is switched on, default value is used for result name.
6902 Each compound from ListShapes and ListTools will be exploded
6903 in order to avoid possible intersection between shapes from
6906 After implementation new version of PartitionAlgo (October 2006) other
6907 parameters are ignored by current functionality. They are kept in this
6908 function only for support old versions.
6911 ListKeepInside Shapes, outside which the results will be deleted.
6912 Each shape from theKeepInside must belong to theShapes also.
6913 ListRemoveInside Shapes, inside which the results will be deleted.
6914 Each shape from theRemoveInside must belong to theShapes also.
6915 RemoveWebs If TRUE, perform Glue 3D algorithm.
6916 ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
6919 New GEOM.GEOM_Object, containing the result shapes.
6921 # Example: see GEOM_TestAll.py
6922 if Limit == self.ShapeType["AUTO"]:
6923 # automatic detection of the most appropriate shape limit type
6925 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
6926 Limit = EnumToLong(lim)
6928 anObj = self.BoolOp.MakePartition(ListShapes, ListTools,
6929 ListKeepInside, ListRemoveInside,
6930 Limit, RemoveWebs, ListMaterials,
6931 KeepNonlimitShapes);
6932 RaiseIfFailed("MakePartition", self.BoolOp)
6933 self._autoPublish(anObj, theName, "partition")
6936 ## Perform partition operation.
6937 # This method may be useful if it is needed to make a partition for
6938 # compound contains nonintersected shapes. Performance will be better
6939 # since intersection between shapes from compound is not performed.
6941 # Description of all parameters as in previous method MakePartition()
6943 # @note Passed compounds (via ListShapes or via ListTools)
6944 # have to consist of nonintersecting shapes.
6946 # @return New GEOM.GEOM_Object, containing the result shapes.
6948 # @ref swig_todo "Example"
6949 def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
6950 ListKeepInside=[], ListRemoveInside=[],
6951 Limit=ShapeType["AUTO"], RemoveWebs=0,
6952 ListMaterials=[], KeepNonlimitShapes=0,
6955 Perform partition operation.
6956 This method may be useful if it is needed to make a partition for
6957 compound contains nonintersected shapes. Performance will be better
6958 since intersection between shapes from compound is not performed.
6961 Description of all parameters as in method geompy.MakePartition
6964 Passed compounds (via ListShapes or via ListTools)
6965 have to consist of nonintersecting shapes.
6968 New GEOM.GEOM_Object, containing the result shapes.
6970 if Limit == self.ShapeType["AUTO"]:
6971 # automatic detection of the most appropriate shape limit type
6973 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
6974 Limit = EnumToLong(lim)
6976 anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
6977 ListKeepInside, ListRemoveInside,
6978 Limit, RemoveWebs, ListMaterials,
6979 KeepNonlimitShapes);
6980 RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
6981 self._autoPublish(anObj, theName, "partition")
6984 ## See method MakePartition() for more information.
6986 # @ref tui_partition "Example 1"
6987 # \n @ref swig_Partition "Example 2"
6988 def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
6989 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
6990 KeepNonlimitShapes=0, theName=None):
6992 See method geompy.MakePartition for more information.
6994 # Example: see GEOM_TestOthers.py
6995 # note: auto-publishing is done in self.MakePartition()
6996 anObj = self.MakePartition(ListShapes, ListTools,
6997 ListKeepInside, ListRemoveInside,
6998 Limit, RemoveWebs, ListMaterials,
6999 KeepNonlimitShapes, theName);
7002 ## Perform partition of the Shape with the Plane
7003 # @param theShape Shape to be intersected.
7004 # @param thePlane Tool shape, to intersect theShape.
7005 # @param theName Object name; when specified, this parameter is used
7006 # for result publication in the study. Otherwise, if automatic
7007 # publication is switched on, default value is used for result name.
7009 # @return New GEOM.GEOM_Object, containing the result shape.
7011 # @ref tui_partition "Example"
7012 def MakeHalfPartition(self, theShape, thePlane, theName=None):
7014 Perform partition of the Shape with the Plane
7017 theShape Shape to be intersected.
7018 thePlane Tool shape, to intersect theShape.
7019 theName Object name; when specified, this parameter is used
7020 for result publication in the study. Otherwise, if automatic
7021 publication is switched on, default value is used for result name.
7024 New GEOM.GEOM_Object, containing the result shape.
7026 # Example: see GEOM_TestAll.py
7027 anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
7028 RaiseIfFailed("MakeHalfPartition", self.BoolOp)
7029 self._autoPublish(anObj, theName, "partition")
7032 # end of l3_basic_op
7035 ## @addtogroup l3_transform
7038 ## Translate the given object along the vector, specified
7039 # by its end points.
7040 # @param theObject The object to be translated.
7041 # @param thePoint1 Start point of translation vector.
7042 # @param thePoint2 End point of translation vector.
7043 # @param theCopy Flag used to translate object itself or create a copy.
7044 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7045 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7046 def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
7048 Translate the given object along the vector, specified by its end points.
7051 theObject The object to be translated.
7052 thePoint1 Start point of translation vector.
7053 thePoint2 End point of translation vector.
7054 theCopy Flag used to translate object itself or create a copy.
7057 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7058 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7061 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
7063 anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
7064 RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
7067 ## Translate the given object along the vector, specified
7068 # by its end points, creating its copy before the translation.
7069 # @param theObject The object to be translated.
7070 # @param thePoint1 Start point of translation vector.
7071 # @param thePoint2 End point of translation vector.
7072 # @param theName Object name; when specified, this parameter is used
7073 # for result publication in the study. Otherwise, if automatic
7074 # publication is switched on, default value is used for result name.
7076 # @return New GEOM.GEOM_Object, containing the translated object.
7078 # @ref tui_translation "Example 1"
7079 # \n @ref swig_MakeTranslationTwoPoints "Example 2"
7080 def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
7082 Translate the given object along the vector, specified
7083 by its end points, creating its copy before the translation.
7086 theObject The object to be translated.
7087 thePoint1 Start point of translation vector.
7088 thePoint2 End point of translation vector.
7089 theName Object name; when specified, this parameter is used
7090 for result publication in the study. Otherwise, if automatic
7091 publication is switched on, default value is used for result name.
7094 New GEOM.GEOM_Object, containing the translated object.
7096 # Example: see GEOM_TestAll.py
7097 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
7098 RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
7099 self._autoPublish(anObj, theName, "translated")
7102 ## Translate the given object along the vector, specified by its components.
7103 # @param theObject The object to be translated.
7104 # @param theDX,theDY,theDZ Components of translation vector.
7105 # @param theCopy Flag used to translate object itself or create a copy.
7106 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7107 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7109 # @ref tui_translation "Example"
7110 def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
7112 Translate the given object along the vector, specified by its components.
7115 theObject The object to be translated.
7116 theDX,theDY,theDZ Components of translation vector.
7117 theCopy Flag used to translate object itself or create a copy.
7120 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7121 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7123 # Example: see GEOM_TestAll.py
7124 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
7126 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
7128 anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
7129 anObj.SetParameters(Parameters)
7130 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
7133 ## Translate the given object along the vector, specified
7134 # by its components, creating its copy before the translation.
7135 # @param theObject The object to be translated.
7136 # @param theDX,theDY,theDZ Components of translation vector.
7137 # @param theName Object name; when specified, this parameter is used
7138 # for result publication in the study. Otherwise, if automatic
7139 # publication is switched on, default value is used for result name.
7141 # @return New GEOM.GEOM_Object, containing the translated object.
7143 # @ref tui_translation "Example"
7144 def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
7146 Translate the given object along the vector, specified
7147 by its components, creating its copy before the translation.
7150 theObject The object to be translated.
7151 theDX,theDY,theDZ Components of translation vector.
7152 theName Object name; when specified, this parameter is used
7153 for result publication in the study. Otherwise, if automatic
7154 publication is switched on, default value is used for result name.
7157 New GEOM.GEOM_Object, containing the translated object.
7159 # Example: see GEOM_TestAll.py
7160 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
7161 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
7162 anObj.SetParameters(Parameters)
7163 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
7164 self._autoPublish(anObj, theName, "translated")
7167 ## Translate the given object along the given vector.
7168 # @param theObject The object to be translated.
7169 # @param theVector The translation vector.
7170 # @param theCopy Flag used to translate object itself or create a copy.
7171 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7172 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7173 def TranslateVector(self, theObject, theVector, theCopy=False):
7175 Translate the given object along the given vector.
7178 theObject The object to be translated.
7179 theVector The translation vector.
7180 theCopy Flag used to translate object itself or create a copy.
7183 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7184 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7187 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
7189 anObj = self.TrsfOp.TranslateVector(theObject, theVector)
7190 RaiseIfFailed("TranslateVector", self.TrsfOp)
7193 ## Translate the given object along the given vector,
7194 # creating its copy before the translation.
7195 # @param theObject The object to be translated.
7196 # @param theVector The translation vector.
7197 # @param theName Object name; when specified, this parameter is used
7198 # for result publication in the study. Otherwise, if automatic
7199 # publication is switched on, default value is used for result name.
7201 # @return New GEOM.GEOM_Object, containing the translated object.
7203 # @ref tui_translation "Example"
7204 def MakeTranslationVector(self, theObject, theVector, theName=None):
7206 Translate the given object along the given vector,
7207 creating its copy before the translation.
7210 theObject The object to be translated.
7211 theVector The translation vector.
7212 theName Object name; when specified, this parameter is used
7213 for result publication in the study. Otherwise, if automatic
7214 publication is switched on, default value is used for result name.
7217 New GEOM.GEOM_Object, containing the translated object.
7219 # Example: see GEOM_TestAll.py
7220 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
7221 RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
7222 self._autoPublish(anObj, theName, "translated")
7225 ## Translate the given object along the given vector on given distance.
7226 # @param theObject The object to be translated.
7227 # @param theVector The translation vector.
7228 # @param theDistance The translation distance.
7229 # @param theCopy Flag used to translate object itself or create a copy.
7230 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7231 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7233 # @ref tui_translation "Example"
7234 def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
7236 Translate the given object along the given vector on given distance.
7239 theObject The object to be translated.
7240 theVector The translation vector.
7241 theDistance The translation distance.
7242 theCopy Flag used to translate object itself or create a copy.
7245 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7246 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7248 # Example: see GEOM_TestAll.py
7249 theDistance,Parameters = ParseParameters(theDistance)
7250 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy)
7251 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
7252 anObj.SetParameters(Parameters)
7255 ## Translate the given object along the given vector on given distance,
7256 # creating its copy before the translation.
7257 # @param theObject The object to be translated.
7258 # @param theVector The translation vector.
7259 # @param theDistance The translation distance.
7260 # @param theName Object name; when specified, this parameter is used
7261 # for result publication in the study. Otherwise, if automatic
7262 # publication is switched on, default value is used for result name.
7264 # @return New GEOM.GEOM_Object, containing the translated object.
7266 # @ref tui_translation "Example"
7267 def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
7269 Translate the given object along the given vector on given distance,
7270 creating its copy before the translation.
7273 theObject The object to be translated.
7274 theVector The translation vector.
7275 theDistance The translation distance.
7276 theName Object name; when specified, this parameter is used
7277 for result publication in the study. Otherwise, if automatic
7278 publication is switched on, default value is used for result name.
7281 New GEOM.GEOM_Object, containing the translated object.
7283 # Example: see GEOM_TestAll.py
7284 theDistance,Parameters = ParseParameters(theDistance)
7285 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
7286 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
7287 anObj.SetParameters(Parameters)
7288 self._autoPublish(anObj, theName, "translated")
7291 ## Rotate the given object around the given axis on the given angle.
7292 # @param theObject The object to be rotated.
7293 # @param theAxis Rotation axis.
7294 # @param theAngle Rotation angle in radians.
7295 # @param theCopy Flag used to rotate object itself or create a copy.
7297 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7298 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
7300 # @ref tui_rotation "Example"
7301 def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
7303 Rotate the given object around the given axis on the given angle.
7306 theObject The object to be rotated.
7307 theAxis Rotation axis.
7308 theAngle Rotation angle in radians.
7309 theCopy Flag used to rotate object itself or create a copy.
7312 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7313 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
7315 # Example: see GEOM_TestAll.py
7317 if isinstance(theAngle,str):
7319 theAngle, Parameters = ParseParameters(theAngle)
7321 theAngle = theAngle*math.pi/180.0
7323 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
7325 anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
7326 RaiseIfFailed("Rotate", self.TrsfOp)
7327 anObj.SetParameters(Parameters)
7330 ## Rotate the given object around the given axis
7331 # on the given angle, creating its copy before the rotatation.
7332 # @param theObject The object to be rotated.
7333 # @param theAxis Rotation axis.
7334 # @param theAngle Rotation angle in radians.
7335 # @param theName Object name; when specified, this parameter is used
7336 # for result publication in the study. Otherwise, if automatic
7337 # publication is switched on, default value is used for result name.
7339 # @return New GEOM.GEOM_Object, containing the rotated object.
7341 # @ref tui_rotation "Example"
7342 def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
7344 Rotate the given object around the given axis
7345 on the given angle, creating its copy before the rotatation.
7348 theObject The object to be rotated.
7349 theAxis Rotation axis.
7350 theAngle Rotation angle in radians.
7351 theName Object name; when specified, this parameter is used
7352 for result publication in the study. Otherwise, if automatic
7353 publication is switched on, default value is used for result name.
7356 New GEOM.GEOM_Object, containing the rotated object.
7358 # Example: see GEOM_TestAll.py
7360 if isinstance(theAngle,str):
7362 theAngle, Parameters = ParseParameters(theAngle)
7364 theAngle = theAngle*math.pi/180.0
7365 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
7366 RaiseIfFailed("RotateCopy", self.TrsfOp)
7367 anObj.SetParameters(Parameters)
7368 self._autoPublish(anObj, theName, "rotated")
7371 ## Rotate given object around vector perpendicular to plane
7372 # containing three points.
7373 # @param theObject The object to be rotated.
7374 # @param theCentPoint central point the axis is the vector perpendicular to the plane
7375 # containing the three points.
7376 # @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
7377 # @param theCopy Flag used to rotate object itself or create a copy.
7378 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7379 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
7380 def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
7382 Rotate given object around vector perpendicular to plane
7383 containing three points.
7386 theObject The object to be rotated.
7387 theCentPoint central point the axis is the vector perpendicular to the plane
7388 containing the three points.
7389 thePoint1,thePoint2 points in a perpendicular plane of the axis.
7390 theCopy Flag used to rotate object itself or create a copy.
7393 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7394 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
7397 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
7399 anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
7400 RaiseIfFailed("RotateThreePoints", self.TrsfOp)
7403 ## Rotate given object around vector perpendicular to plane
7404 # containing three points, creating its copy before the rotatation.
7405 # @param theObject The object to be rotated.
7406 # @param theCentPoint central point the axis is the vector perpendicular to the plane
7407 # containing the three points.
7408 # @param thePoint1,thePoint2 in a perpendicular plane of the axis.
7409 # @param theName Object name; when specified, this parameter is used
7410 # for result publication in the study. Otherwise, if automatic
7411 # publication is switched on, default value is used for result name.
7413 # @return New GEOM.GEOM_Object, containing the rotated object.
7415 # @ref tui_rotation "Example"
7416 def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
7418 Rotate given object around vector perpendicular to plane
7419 containing three points, creating its copy before the rotatation.
7422 theObject The object to be rotated.
7423 theCentPoint central point the axis is the vector perpendicular to the plane
7424 containing the three points.
7425 thePoint1,thePoint2 in a perpendicular plane of the axis.
7426 theName Object name; when specified, this parameter is used
7427 for result publication in the study. Otherwise, if automatic
7428 publication is switched on, default value is used for result name.
7431 New GEOM.GEOM_Object, containing the rotated object.
7433 # Example: see GEOM_TestAll.py
7434 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
7435 RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
7436 self._autoPublish(anObj, theName, "rotated")
7439 ## Scale the given object by the specified factor.
7440 # @param theObject The object to be scaled.
7441 # @param thePoint Center point for scaling.
7442 # Passing None for it means scaling relatively the origin of global CS.
7443 # @param theFactor Scaling factor value.
7444 # @param theCopy Flag used to scale object itself or create a copy.
7445 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7446 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
7447 def Scale(self, theObject, thePoint, theFactor, theCopy=False):
7449 Scale the given object by the specified factor.
7452 theObject The object to be scaled.
7453 thePoint Center point for scaling.
7454 Passing None for it means scaling relatively the origin of global CS.
7455 theFactor Scaling factor value.
7456 theCopy Flag used to scale object itself or create a copy.
7459 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7460 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
7462 # Example: see GEOM_TestAll.py
7463 theFactor, Parameters = ParseParameters(theFactor)
7465 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
7467 anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
7468 RaiseIfFailed("Scale", self.TrsfOp)
7469 anObj.SetParameters(Parameters)
7472 ## Scale the given object by the factor, creating its copy before the scaling.
7473 # @param theObject The object to be scaled.
7474 # @param thePoint Center point for scaling.
7475 # Passing None for it means scaling relatively the origin of global CS.
7476 # @param theFactor Scaling factor value.
7477 # @param theName Object name; when specified, this parameter is used
7478 # for result publication in the study. Otherwise, if automatic
7479 # publication is switched on, default value is used for result name.
7481 # @return New GEOM.GEOM_Object, containing the scaled shape.
7483 # @ref tui_scale "Example"
7484 def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
7486 Scale the given object by the factor, creating its copy before the scaling.
7489 theObject The object to be scaled.
7490 thePoint Center point for scaling.
7491 Passing None for it means scaling relatively the origin of global CS.
7492 theFactor Scaling factor value.
7493 theName Object name; when specified, this parameter is used
7494 for result publication in the study. Otherwise, if automatic
7495 publication is switched on, default value is used for result name.
7498 New GEOM.GEOM_Object, containing the scaled shape.
7500 # Example: see GEOM_TestAll.py
7501 theFactor, Parameters = ParseParameters(theFactor)
7502 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
7503 RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
7504 anObj.SetParameters(Parameters)
7505 self._autoPublish(anObj, theName, "scaled")
7508 ## Scale the given object by different factors along coordinate axes.
7509 # @param theObject The object to be scaled.
7510 # @param thePoint Center point for scaling.
7511 # Passing None for it means scaling relatively the origin of global CS.
7512 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7513 # @param theCopy Flag used to scale object itself or create a copy.
7514 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7515 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
7516 def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
7518 Scale the given object by different factors along coordinate axes.
7521 theObject The object to be scaled.
7522 thePoint Center point for scaling.
7523 Passing None for it means scaling relatively the origin of global CS.
7524 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7525 theCopy Flag used to scale object itself or create a copy.
7528 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7529 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
7531 # Example: see GEOM_TestAll.py
7532 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
7534 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
7535 theFactorX, theFactorY, theFactorZ)
7537 anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
7538 theFactorX, theFactorY, theFactorZ)
7539 RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
7540 anObj.SetParameters(Parameters)
7543 ## Scale the given object by different factors along coordinate axes,
7544 # creating its copy before the scaling.
7545 # @param theObject The object to be scaled.
7546 # @param thePoint Center point for scaling.
7547 # Passing None for it means scaling relatively the origin of global CS.
7548 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7549 # @param theName Object name; when specified, this parameter is used
7550 # for result publication in the study. Otherwise, if automatic
7551 # publication is switched on, default value is used for result name.
7553 # @return New GEOM.GEOM_Object, containing the scaled shape.
7555 # @ref swig_scale "Example"
7556 def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
7558 Scale the given object by different factors along coordinate axes,
7559 creating its copy before the scaling.
7562 theObject The object to be scaled.
7563 thePoint Center point for scaling.
7564 Passing None for it means scaling relatively the origin of global CS.
7565 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7566 theName Object name; when specified, this parameter is used
7567 for result publication in the study. Otherwise, if automatic
7568 publication is switched on, default value is used for result name.
7571 New GEOM.GEOM_Object, containing the scaled shape.
7573 # Example: see GEOM_TestAll.py
7574 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
7575 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
7576 theFactorX, theFactorY, theFactorZ)
7577 RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
7578 anObj.SetParameters(Parameters)
7579 self._autoPublish(anObj, theName, "scaled")
7582 ## Mirror an object relatively the given plane.
7583 # @param theObject The object to be mirrored.
7584 # @param thePlane Plane of symmetry.
7585 # @param theCopy Flag used to mirror object itself or create a copy.
7586 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7587 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7588 def MirrorByPlane(self, theObject, thePlane, theCopy=False):
7590 Mirror an object relatively the given plane.
7593 theObject The object to be mirrored.
7594 thePlane Plane of symmetry.
7595 theCopy Flag used to mirror object itself or create a copy.
7598 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7599 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7602 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
7604 anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
7605 RaiseIfFailed("MirrorByPlane", self.TrsfOp)
7608 ## Create an object, symmetrical
7609 # to the given one relatively the given plane.
7610 # @param theObject The object to be mirrored.
7611 # @param thePlane Plane of symmetry.
7612 # @param theName Object name; when specified, this parameter is used
7613 # for result publication in the study. Otherwise, if automatic
7614 # publication is switched on, default value is used for result name.
7616 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7618 # @ref tui_mirror "Example"
7619 def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
7621 Create an object, symmetrical to the given one relatively the given plane.
7624 theObject The object to be mirrored.
7625 thePlane Plane of symmetry.
7626 theName Object name; when specified, this parameter is used
7627 for result publication in the study. Otherwise, if automatic
7628 publication is switched on, default value is used for result name.
7631 New GEOM.GEOM_Object, containing the mirrored shape.
7633 # Example: see GEOM_TestAll.py
7634 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
7635 RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
7636 self._autoPublish(anObj, theName, "mirrored")
7639 ## Mirror an object relatively the given axis.
7640 # @param theObject The object to be mirrored.
7641 # @param theAxis Axis of symmetry.
7642 # @param theCopy Flag used to mirror object itself or create a copy.
7643 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7644 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7645 def MirrorByAxis(self, theObject, theAxis, theCopy=False):
7647 Mirror an object relatively the given axis.
7650 theObject The object to be mirrored.
7651 theAxis Axis of symmetry.
7652 theCopy Flag used to mirror object itself or create a copy.
7655 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7656 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7659 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
7661 anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
7662 RaiseIfFailed("MirrorByAxis", self.TrsfOp)
7665 ## Create an object, symmetrical
7666 # to the given one relatively the given axis.
7667 # @param theObject The object to be mirrored.
7668 # @param theAxis Axis of symmetry.
7669 # @param theName Object name; when specified, this parameter is used
7670 # for result publication in the study. Otherwise, if automatic
7671 # publication is switched on, default value is used for result name.
7673 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7675 # @ref tui_mirror "Example"
7676 def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
7678 Create an object, symmetrical to the given one relatively the given axis.
7681 theObject The object to be mirrored.
7682 theAxis Axis of symmetry.
7683 theName Object name; when specified, this parameter is used
7684 for result publication in the study. Otherwise, if automatic
7685 publication is switched on, default value is used for result name.
7688 New GEOM.GEOM_Object, containing the mirrored shape.
7690 # Example: see GEOM_TestAll.py
7691 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
7692 RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
7693 self._autoPublish(anObj, theName, "mirrored")
7696 ## Mirror an object relatively the given point.
7697 # @param theObject The object to be mirrored.
7698 # @param thePoint Point of symmetry.
7699 # @param theCopy Flag used to mirror object itself or create a copy.
7700 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7701 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7702 def MirrorByPoint(self, theObject, thePoint, theCopy=False):
7704 Mirror an object relatively the given point.
7707 theObject The object to be mirrored.
7708 thePoint Point of symmetry.
7709 theCopy Flag used to mirror object itself or create a copy.
7712 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7713 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7715 # Example: see GEOM_TestAll.py
7717 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
7719 anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
7720 RaiseIfFailed("MirrorByPoint", self.TrsfOp)
7723 ## Create an object, symmetrical
7724 # to the given one relatively the given point.
7725 # @param theObject The object to be mirrored.
7726 # @param thePoint Point of symmetry.
7727 # @param theName Object name; when specified, this parameter is used
7728 # for result publication in the study. Otherwise, if automatic
7729 # publication is switched on, default value is used for result name.
7731 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7733 # @ref tui_mirror "Example"
7734 def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
7736 Create an object, symmetrical
7737 to the given one relatively the given point.
7740 theObject The object to be mirrored.
7741 thePoint Point of symmetry.
7742 theName Object name; when specified, this parameter is used
7743 for result publication in the study. Otherwise, if automatic
7744 publication is switched on, default value is used for result name.
7747 New GEOM.GEOM_Object, containing the mirrored shape.
7749 # Example: see GEOM_TestAll.py
7750 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
7751 RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
7752 self._autoPublish(anObj, theName, "mirrored")
7755 ## Modify the location of the given object.
7756 # @param theObject The object to be displaced.
7757 # @param theStartLCS Coordinate system to perform displacement from it.\n
7758 # If \a theStartLCS is NULL, displacement
7759 # will be performed from global CS.\n
7760 # If \a theObject itself is used as \a theStartLCS,
7761 # its location will be changed to \a theEndLCS.
7762 # @param theEndLCS Coordinate system to perform displacement to it.
7763 # @param theCopy Flag used to displace object itself or create a copy.
7764 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7765 # new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
7766 def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
7768 Modify the Location of the given object by LCS, creating its copy before the setting.
7771 theObject The object to be displaced.
7772 theStartLCS Coordinate system to perform displacement from it.
7773 If theStartLCS is NULL, displacement
7774 will be performed from global CS.
7775 If theObject itself is used as theStartLCS,
7776 its location will be changed to theEndLCS.
7777 theEndLCS Coordinate system to perform displacement to it.
7778 theCopy Flag used to displace object itself or create a copy.
7781 Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7782 new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
7784 # Example: see GEOM_TestAll.py
7786 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
7788 anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
7789 RaiseIfFailed("Displace", self.TrsfOp)
7792 ## Modify the Location of the given object by LCS,
7793 # creating its copy before the setting.
7794 # @param theObject The object to be displaced.
7795 # @param theStartLCS Coordinate system to perform displacement from it.\n
7796 # If \a theStartLCS is NULL, displacement
7797 # will be performed from global CS.\n
7798 # If \a theObject itself is used as \a theStartLCS,
7799 # its location will be changed to \a theEndLCS.
7800 # @param theEndLCS Coordinate system to perform displacement to it.
7801 # @param theName Object name; when specified, this parameter is used
7802 # for result publication in the study. Otherwise, if automatic
7803 # publication is switched on, default value is used for result name.
7805 # @return New GEOM.GEOM_Object, containing the displaced shape.
7807 # @ref tui_modify_location "Example"
7808 def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
7810 Modify the Location of the given object by LCS, creating its copy before the setting.
7813 theObject The object to be displaced.
7814 theStartLCS Coordinate system to perform displacement from it.
7815 If theStartLCS is NULL, displacement
7816 will be performed from global CS.
7817 If theObject itself is used as theStartLCS,
7818 its location will be changed to theEndLCS.
7819 theEndLCS Coordinate system to perform displacement to it.
7820 theName Object name; when specified, this parameter is used
7821 for result publication in the study. Otherwise, if automatic
7822 publication is switched on, default value is used for result name.
7825 New GEOM.GEOM_Object, containing the displaced shape.
7828 # create local coordinate systems
7829 cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
7830 cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0)
7831 # modify the location of the given object
7832 position = geompy.MakePosition(cylinder, cs1, cs2)
7834 # Example: see GEOM_TestAll.py
7835 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
7836 RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
7837 self._autoPublish(anObj, theName, "displaced")
7840 ## Modify the Location of the given object by Path.
7841 # @param theObject The object to be displaced.
7842 # @param thePath Wire or Edge along that the object will be translated.
7843 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
7844 # @param theCopy is to create a copy objects if true.
7845 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
7846 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
7847 # new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
7849 # @ref tui_modify_location "Example"
7850 def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
7852 Modify the Location of the given object by Path.
7855 theObject The object to be displaced.
7856 thePath Wire or Edge along that the object will be translated.
7857 theDistance progress of Path (0 = start location, 1 = end of path location).
7858 theCopy is to create a copy objects if true.
7859 theReverse 0 - for usual direction, 1 - to reverse path direction.
7862 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
7863 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
7866 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
7868 # Example: see GEOM_TestAll.py
7869 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse)
7870 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
7873 ## Modify the Location of the given object by Path, creating its copy before the operation.
7874 # @param theObject The object to be displaced.
7875 # @param thePath Wire or Edge along that the object will be translated.
7876 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
7877 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
7878 # @param theName Object name; when specified, this parameter is used
7879 # for result publication in the study. Otherwise, if automatic
7880 # publication is switched on, default value is used for result name.
7882 # @return New GEOM.GEOM_Object, containing the displaced shape.
7883 def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
7885 Modify the Location of the given object by Path, creating its copy before the operation.
7888 theObject The object to be displaced.
7889 thePath Wire or Edge along that the object will be translated.
7890 theDistance progress of Path (0 = start location, 1 = end of path location).
7891 theReverse 0 - for usual direction, 1 - to reverse path direction.
7892 theName Object name; when specified, this parameter is used
7893 for result publication in the study. Otherwise, if automatic
7894 publication is switched on, default value is used for result name.
7897 New GEOM.GEOM_Object, containing the displaced shape.
7899 # Example: see GEOM_TestAll.py
7900 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
7901 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
7902 self._autoPublish(anObj, theName, "displaced")
7905 ## Offset given shape.
7906 # @param theObject The base object for the offset.
7907 # @param theOffset Offset value.
7908 # @param theCopy Flag used to offset object itself or create a copy.
7909 # @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7910 # new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
7911 def Offset(self, theObject, theOffset, theCopy=False):
7916 theObject The base object for the offset.
7917 theOffset Offset value.
7918 theCopy Flag used to offset object itself or create a copy.
7921 Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7922 new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
7924 theOffset, Parameters = ParseParameters(theOffset)
7926 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
7928 anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
7929 RaiseIfFailed("Offset", self.TrsfOp)
7930 anObj.SetParameters(Parameters)
7933 ## Create new object as offset of the given one.
7934 # @param theObject The base object for the offset.
7935 # @param theOffset Offset value.
7936 # @param theName Object name; when specified, this parameter is used
7937 # for result publication in the study. Otherwise, if automatic
7938 # publication is switched on, default value is used for result name.
7940 # @return New GEOM.GEOM_Object, containing the offset object.
7942 # @ref tui_offset "Example"
7943 def MakeOffset(self, theObject, theOffset, theName=None):
7945 Create new object as offset of the given one.
7948 theObject The base object for the offset.
7949 theOffset Offset value.
7950 theName Object name; when specified, this parameter is used
7951 for result publication in the study. Otherwise, if automatic
7952 publication is switched on, default value is used for result name.
7955 New GEOM.GEOM_Object, containing the offset object.
7958 box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
7959 # create a new object as offset of the given object
7960 offset = geompy.MakeOffset(box, 70.)
7962 # Example: see GEOM_TestAll.py
7963 theOffset, Parameters = ParseParameters(theOffset)
7964 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
7965 RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
7966 anObj.SetParameters(Parameters)
7967 self._autoPublish(anObj, theName, "offset")
7970 ## Create new object as projection of the given one on a 2D surface.
7971 # @param theSource The source object for the projection. It can be a point, edge or wire.
7972 # @param theTarget The target object. It can be planar or cylindrical face.
7973 # @param theName Object name; when specified, this parameter is used
7974 # for result publication in the study. Otherwise, if automatic
7975 # publication is switched on, default value is used for result name.
7977 # @return New GEOM.GEOM_Object, containing the projection.
7979 # @ref tui_projection "Example"
7980 def MakeProjection(self, theSource, theTarget, theName=None):
7982 Create new object as projection of the given one on a 2D surface.
7985 theSource The source object for the projection. It can be a point, edge or wire.
7986 theTarget The target object. It can be planar or cylindrical face.
7987 theName Object name; when specified, this parameter is used
7988 for result publication in the study. Otherwise, if automatic
7989 publication is switched on, default value is used for result name.
7992 New GEOM.GEOM_Object, containing the projection.
7994 # Example: see GEOM_TestAll.py
7995 anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
7996 RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
7997 self._autoPublish(anObj, theName, "projection")
8000 # -----------------------------------------------------------------------------
8002 # -----------------------------------------------------------------------------
8004 ## Translate the given object along the given vector a given number times
8005 # @param theObject The object to be translated.
8006 # @param theVector Direction of the translation. DX if None.
8007 # @param theStep Distance to translate on.
8008 # @param theNbTimes Quantity of translations to be done.
8009 # @param theName Object name; when specified, this parameter is used
8010 # for result publication in the study. Otherwise, if automatic
8011 # publication is switched on, default value is used for result name.
8013 # @return New GEOM.GEOM_Object, containing compound of all
8014 # the shapes, obtained after each translation.
8016 # @ref tui_multi_translation "Example"
8017 def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
8019 Translate the given object along the given vector a given number times
8022 theObject The object to be translated.
8023 theVector Direction of the translation. DX if None.
8024 theStep Distance to translate on.
8025 theNbTimes Quantity of translations to be done.
8026 theName Object name; when specified, this parameter is used
8027 for result publication in the study. Otherwise, if automatic
8028 publication is switched on, default value is used for result name.
8031 New GEOM.GEOM_Object, containing compound of all
8032 the shapes, obtained after each translation.
8035 r1d = geompy.MakeMultiTranslation1D(prism, vect, 20, 4)
8037 # Example: see GEOM_TestAll.py
8038 theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes)
8039 anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
8040 RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
8041 anObj.SetParameters(Parameters)
8042 self._autoPublish(anObj, theName, "multitranslation")
8045 ## Conseqently apply two specified translations to theObject specified number of times.
8046 # @param theObject The object to be translated.
8047 # @param theVector1 Direction of the first translation. DX if None.
8048 # @param theStep1 Step of the first translation.
8049 # @param theNbTimes1 Quantity of translations to be done along theVector1.
8050 # @param theVector2 Direction of the second translation. DY if None.
8051 # @param theStep2 Step of the second translation.
8052 # @param theNbTimes2 Quantity of translations to be done along theVector2.
8053 # @param theName Object name; when specified, this parameter is used
8054 # for result publication in the study. Otherwise, if automatic
8055 # publication is switched on, default value is used for result name.
8057 # @return New GEOM.GEOM_Object, containing compound of all
8058 # the shapes, obtained after each translation.
8060 # @ref tui_multi_translation "Example"
8061 def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
8062 theVector2, theStep2, theNbTimes2, theName=None):
8064 Conseqently apply two specified translations to theObject specified number of times.
8067 theObject The object to be translated.
8068 theVector1 Direction of the first translation. DX if None.
8069 theStep1 Step of the first translation.
8070 theNbTimes1 Quantity of translations to be done along theVector1.
8071 theVector2 Direction of the second translation. DY if None.
8072 theStep2 Step of the second translation.
8073 theNbTimes2 Quantity of translations to be done along theVector2.
8074 theName Object name; when specified, this parameter is used
8075 for result publication in the study. Otherwise, if automatic
8076 publication is switched on, default value is used for result name.
8079 New GEOM.GEOM_Object, containing compound of all
8080 the shapes, obtained after each translation.
8083 tr2d = geompy.MakeMultiTranslation2D(prism, vect1, 20, 4, vect2, 80, 3)
8085 # Example: see GEOM_TestAll.py
8086 theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2)
8087 anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
8088 theVector2, theStep2, theNbTimes2)
8089 RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
8090 anObj.SetParameters(Parameters)
8091 self._autoPublish(anObj, theName, "multitranslation")
8094 ## Rotate the given object around the given axis a given number times.
8095 # Rotation angle will be 2*PI/theNbTimes.
8096 # @param theObject The object to be rotated.
8097 # @param theAxis The rotation axis. DZ if None.
8098 # @param theNbTimes Quantity of rotations to be done.
8099 # @param theName Object name; when specified, this parameter is used
8100 # for result publication in the study. Otherwise, if automatic
8101 # publication is switched on, default value is used for result name.
8103 # @return New GEOM.GEOM_Object, containing compound of all the
8104 # shapes, obtained after each rotation.
8106 # @ref tui_multi_rotation "Example"
8107 def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
8109 Rotate the given object around the given axis a given number times.
8110 Rotation angle will be 2*PI/theNbTimes.
8113 theObject The object to be rotated.
8114 theAxis The rotation axis. DZ if None.
8115 theNbTimes Quantity of rotations to be done.
8116 theName Object name; when specified, this parameter is used
8117 for result publication in the study. Otherwise, if automatic
8118 publication is switched on, default value is used for result name.
8121 New GEOM.GEOM_Object, containing compound of all the
8122 shapes, obtained after each rotation.
8125 rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
8127 # Example: see GEOM_TestAll.py
8128 theNbTimes, Parameters = ParseParameters(theNbTimes)
8129 anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
8130 RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
8131 anObj.SetParameters(Parameters)
8132 self._autoPublish(anObj, theName, "multirotation")
8135 ## Rotate the given object around the given axis
8136 # a given number times on the given angle.
8137 # @param theObject The object to be rotated.
8138 # @param theAxis The rotation axis. DZ if None.
8139 # @param theAngleStep Rotation angle in radians.
8140 # @param theNbTimes Quantity of rotations to be done.
8141 # @param theName Object name; when specified, this parameter is used
8142 # for result publication in the study. Otherwise, if automatic
8143 # publication is switched on, default value is used for result name.
8145 # @return New GEOM.GEOM_Object, containing compound of all the
8146 # shapes, obtained after each rotation.
8148 # @ref tui_multi_rotation "Example"
8149 def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
8151 Rotate the given object around the given axis
8152 a given number times on the given angle.
8155 theObject The object to be rotated.
8156 theAxis The rotation axis. DZ if None.
8157 theAngleStep Rotation angle in radians.
8158 theNbTimes Quantity of rotations to be done.
8159 theName Object name; when specified, this parameter is used
8160 for result publication in the study. Otherwise, if automatic
8161 publication is switched on, default value is used for result name.
8164 New GEOM.GEOM_Object, containing compound of all the
8165 shapes, obtained after each rotation.
8168 rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
8170 # Example: see GEOM_TestAll.py
8171 theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
8172 anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
8173 RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
8174 anObj.SetParameters(Parameters)
8175 self._autoPublish(anObj, theName, "multirotation")
8178 ## Rotate the given object around the given axis a given
8179 # number times and multi-translate each rotation result.
8180 # Rotation angle will be 2*PI/theNbTimes1.
8181 # Translation direction passes through center of gravity
8182 # of rotated shape and its projection on the rotation axis.
8183 # @param theObject The object to be rotated.
8184 # @param theAxis Rotation axis. DZ if None.
8185 # @param theNbTimes1 Quantity of rotations to be done.
8186 # @param theRadialStep Translation distance.
8187 # @param theNbTimes2 Quantity of translations to be done.
8188 # @param theName Object name; when specified, this parameter is used
8189 # for result publication in the study. Otherwise, if automatic
8190 # publication is switched on, default value is used for result name.
8192 # @return New GEOM.GEOM_Object, containing compound of all the
8193 # shapes, obtained after each transformation.
8195 # @ref tui_multi_rotation "Example"
8196 def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
8198 Rotate the given object around the
8199 given axis on the given angle a given number
8200 times and multi-translate each rotation result.
8201 Translation direction passes through center of gravity
8202 of rotated shape and its projection on the rotation axis.
8205 theObject The object to be rotated.
8206 theAxis Rotation axis. DZ if None.
8207 theNbTimes1 Quantity of rotations to be done.
8208 theRadialStep Translation distance.
8209 theNbTimes2 Quantity of translations to be done.
8210 theName Object name; when specified, this parameter is used
8211 for result publication in the study. Otherwise, if automatic
8212 publication is switched on, default value is used for result name.
8215 New GEOM.GEOM_Object, containing compound of all the
8216 shapes, obtained after each transformation.
8219 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
8221 # Example: see GEOM_TestAll.py
8222 theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
8223 anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
8224 RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
8225 anObj.SetParameters(Parameters)
8226 self._autoPublish(anObj, theName, "multirotation")
8229 ## Rotate the given object around the
8230 # given axis on the given angle a given number
8231 # times and multi-translate each rotation result.
8232 # Translation direction passes through center of gravity
8233 # of rotated shape and its projection on the rotation axis.
8234 # @param theObject The object to be rotated.
8235 # @param theAxis Rotation axis. DZ if None.
8236 # @param theAngleStep Rotation angle in radians.
8237 # @param theNbTimes1 Quantity of rotations to be done.
8238 # @param theRadialStep Translation distance.
8239 # @param theNbTimes2 Quantity of translations to be done.
8240 # @param theName Object name; when specified, this parameter is used
8241 # for result publication in the study. Otherwise, if automatic
8242 # publication is switched on, default value is used for result name.
8244 # @return New GEOM.GEOM_Object, containing compound of all the
8245 # shapes, obtained after each transformation.
8247 # @ref tui_multi_rotation "Example"
8248 def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
8250 Rotate the given object around the
8251 given axis on the given angle a given number
8252 times and multi-translate each rotation result.
8253 Translation direction passes through center of gravity
8254 of rotated shape and its projection on the rotation axis.
8257 theObject The object to be rotated.
8258 theAxis Rotation axis. DZ if None.
8259 theAngleStep Rotation angle in radians.
8260 theNbTimes1 Quantity of rotations to be done.
8261 theRadialStep Translation distance.
8262 theNbTimes2 Quantity of translations to be done.
8263 theName Object name; when specified, this parameter is used
8264 for result publication in the study. Otherwise, if automatic
8265 publication is switched on, default value is used for result name.
8268 New GEOM.GEOM_Object, containing compound of all the
8269 shapes, obtained after each transformation.
8272 rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
8274 # Example: see GEOM_TestAll.py
8275 theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
8276 anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
8277 RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
8278 anObj.SetParameters(Parameters)
8279 self._autoPublish(anObj, theName, "multirotation")
8282 ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
8284 # @ref swig_MakeMultiRotation "Example"
8285 def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
8287 The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
8290 pz = geompy.MakeVertex(0, 0, 100)
8291 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8292 MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
8294 # Example: see GEOM_TestOthers.py
8295 aVec = self.MakeLine(aPoint,aDir)
8296 # note: auto-publishing is done in self.MultiRotate1D()
8297 anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
8300 ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
8302 # @ref swig_MakeMultiRotation "Example"
8303 def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
8305 The same, as geompy.MultiRotate1D, but axis is given by direction and point
8308 pz = geompy.MakeVertex(0, 0, 100)
8309 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8310 MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
8312 # Example: see GEOM_TestOthers.py
8313 aVec = self.MakeLine(aPoint,aDir)
8314 # note: auto-publishing is done in self.MultiRotate1D()
8315 anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
8318 ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
8320 # @ref swig_MakeMultiRotation "Example"
8321 def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
8323 The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
8326 pz = geompy.MakeVertex(0, 0, 100)
8327 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8328 MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
8330 # Example: see GEOM_TestOthers.py
8331 aVec = self.MakeLine(aPoint,aDir)
8332 # note: auto-publishing is done in self.MultiRotate2DNbTimes()
8333 anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
8336 ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
8338 # @ref swig_MakeMultiRotation "Example"
8339 def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
8341 The same, as MultiRotate2DByStep(), but axis is given by direction and point
8344 pz = geompy.MakeVertex(0, 0, 100)
8345 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8346 MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
8348 # Example: see GEOM_TestOthers.py
8349 aVec = self.MakeLine(aPoint,aDir)
8350 # note: auto-publishing is done in self.MultiRotate2D()
8351 anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
8354 # end of l3_transform
8357 ## @addtogroup l3_transform_d
8360 ## Deprecated method. Use MultiRotate1DNbTimes instead.
8361 def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
8363 Deprecated method. Use MultiRotate1DNbTimes instead.
8365 print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
8366 return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
8368 ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
8369 # This method is DEPRECATED. Use MultiRotate2DByStep() instead.
8370 def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
8372 The same, as MultiRotate2DByStep(), but theAngle is in degrees.
8373 This method is DEPRECATED. Use MultiRotate2DByStep() instead.
8376 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
8378 print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
8379 theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
8380 anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
8381 RaiseIfFailed("MultiRotate2D", self.TrsfOp)
8382 anObj.SetParameters(Parameters)
8383 self._autoPublish(anObj, theName, "multirotation")
8386 ## The same, as MultiRotate1D(), but axis is given by direction and point
8387 # This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
8388 def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
8390 The same, as geompy.MultiRotate1D, but axis is given by direction and point.
8391 This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
8394 pz = geompy.MakeVertex(0, 0, 100)
8395 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8396 MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
8398 print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
8399 aVec = self.MakeLine(aPoint,aDir)
8400 # note: auto-publishing is done in self.MultiRotate1D()
8401 anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
8404 ## The same, as MultiRotate2D(), but axis is given by direction and point
8405 # This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
8406 def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
8408 The same, as MultiRotate2D(), but axis is given by direction and point
8409 This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
8412 pz = geompy.MakeVertex(0, 0, 100)
8413 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8414 MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
8416 print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
8417 aVec = self.MakeLine(aPoint,aDir)
8418 # note: auto-publishing is done in self.MultiRotate2D()
8419 anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
8422 # end of l3_transform_d
8425 ## @addtogroup l3_local
8428 ## Perform a fillet on all edges of the given shape.
8429 # @param theShape Shape, to perform fillet on.
8430 # @param theR Fillet radius.
8431 # @param theName Object name; when specified, this parameter is used
8432 # for result publication in the study. Otherwise, if automatic
8433 # publication is switched on, default value is used for result name.
8435 # @return New GEOM.GEOM_Object, containing the result shape.
8437 # @ref tui_fillet "Example 1"
8438 # \n @ref swig_MakeFilletAll "Example 2"
8439 def MakeFilletAll(self, theShape, theR, theName=None):
8441 Perform a fillet on all edges of the given shape.
8444 theShape Shape, to perform fillet on.
8446 theName Object name; when specified, this parameter is used
8447 for result publication in the study. Otherwise, if automatic
8448 publication is switched on, default value is used for result name.
8451 New GEOM.GEOM_Object, containing the result shape.
8454 filletall = geompy.MakeFilletAll(prism, 10.)
8456 # Example: see GEOM_TestOthers.py
8457 theR,Parameters = ParseParameters(theR)
8458 anObj = self.LocalOp.MakeFilletAll(theShape, theR)
8459 RaiseIfFailed("MakeFilletAll", self.LocalOp)
8460 anObj.SetParameters(Parameters)
8461 self._autoPublish(anObj, theName, "fillet")
8464 ## Perform a fillet on the specified edges/faces of the given shape
8465 # @param theShape Shape, to perform fillet on.
8466 # @param theR Fillet radius.
8467 # @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
8468 # @param theListShapes Global indices of edges/faces to perform fillet on.
8469 # @param theName Object name; when specified, this parameter is used
8470 # for result publication in the study. Otherwise, if automatic
8471 # publication is switched on, default value is used for result name.
8473 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8475 # @return New GEOM.GEOM_Object, containing the result shape.
8477 # @ref tui_fillet "Example"
8478 def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
8480 Perform a fillet on the specified edges/faces of the given shape
8483 theShape Shape, to perform fillet on.
8485 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
8486 theListShapes Global indices of edges/faces to perform fillet on.
8487 theName Object name; when specified, this parameter is used
8488 for result publication in the study. Otherwise, if automatic
8489 publication is switched on, default value is used for result name.
8492 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8495 New GEOM.GEOM_Object, containing the result shape.
8498 # get the list of IDs (IDList) for the fillet
8499 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
8501 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
8502 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
8503 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
8504 # make a fillet on the specified edges of the given shape
8505 fillet = geompy.MakeFillet(prism, 10., geompy.ShapeType["EDGE"], IDlist_e)
8507 # Example: see GEOM_TestAll.py
8508 theR,Parameters = ParseParameters(theR)
8510 if theShapeType == self.ShapeType["EDGE"]:
8511 anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
8512 RaiseIfFailed("MakeFilletEdges", self.LocalOp)
8514 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
8515 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
8516 anObj.SetParameters(Parameters)
8517 self._autoPublish(anObj, theName, "fillet")
8520 ## The same that MakeFillet() but with two Fillet Radius R1 and R2
8521 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
8523 The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
8526 # get the list of IDs (IDList) for the fillet
8527 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
8529 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
8530 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
8531 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
8532 # make a fillet on the specified edges of the given shape
8533 fillet = geompy.MakeFillet(prism, 10., 15., geompy.ShapeType["EDGE"], IDlist_e)
8535 theR1,theR2,Parameters = ParseParameters(theR1,theR2)
8537 if theShapeType == self.ShapeType["EDGE"]:
8538 anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
8539 RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
8541 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
8542 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
8543 anObj.SetParameters(Parameters)
8544 self._autoPublish(anObj, theName, "fillet")
8547 ## Perform a fillet on the specified edges of the given shape
8548 # @param theShape Wire Shape to perform fillet on.
8549 # @param theR Fillet radius.
8550 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
8551 # \note Global index of sub-shape can be obtained, using method GetSubShapeID()
8552 # \note The list of vertices could be empty,
8553 # in this case fillet will done done at all vertices in wire
8554 # @param doIgnoreSecantVertices If FALSE, fillet radius is always limited
8555 # by the length of the edges, nearest to the fillet vertex.
8556 # But sometimes the next edge is C1 continuous with the one, nearest to
8557 # the fillet point, and such two (or more) edges can be united to allow
8558 # bigger radius. Set this flag to TRUE to allow collinear edges union,
8559 # thus ignoring the secant vertex (vertices).
8560 # @param theName Object name; when specified, this parameter is used
8561 # for result publication in the study. Otherwise, if automatic
8562 # publication is switched on, default value is used for result name.
8564 # @return New GEOM.GEOM_Object, containing the result shape.
8566 # @ref tui_fillet2d "Example"
8567 def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
8569 Perform a fillet on the specified edges of the given shape
8572 theShape Wire Shape to perform fillet on.
8574 theListOfVertexes Global indices of vertexes to perform fillet on.
8575 doIgnoreSecantVertices If FALSE, fillet radius is always limited
8576 by the length of the edges, nearest to the fillet vertex.
8577 But sometimes the next edge is C1 continuous with the one, nearest to
8578 the fillet point, and such two (or more) edges can be united to allow
8579 bigger radius. Set this flag to TRUE to allow collinear edges union,
8580 thus ignoring the secant vertex (vertices).
8581 theName Object name; when specified, this parameter is used
8582 for result publication in the study. Otherwise, if automatic
8583 publication is switched on, default value is used for result name.
8585 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8587 The list of vertices could be empty,in this case fillet will done done at all vertices in wire
8590 New GEOM.GEOM_Object, containing the result shape.
8594 Wire_1 = geompy.MakeWire([Edge_12, Edge_7, Edge_11, Edge_6, Edge_1,Edge_4])
8595 # make fillet at given wire vertices with giver radius
8596 Fillet_1D_1 = geompy.MakeFillet1D(Wire_1, 55, [3, 4, 6, 8, 10])
8598 # Example: see GEOM_TestAll.py
8599 theR,doIgnoreSecantVertices,Parameters = ParseParameters(theR,doIgnoreSecantVertices)
8600 anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
8601 RaiseIfFailed("MakeFillet1D", self.LocalOp)
8602 anObj.SetParameters(Parameters)
8603 self._autoPublish(anObj, theName, "fillet")
8606 ## Perform a fillet at the specified vertices of the given face/shell.
8607 # @param theShape Face or Shell shape to perform fillet on.
8608 # @param theR Fillet radius.
8609 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
8610 # @param theName Object name; when specified, this parameter is used
8611 # for result publication in the study. Otherwise, if automatic
8612 # publication is switched on, default value is used for result name.
8614 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8616 # @return New GEOM.GEOM_Object, containing the result shape.
8618 # @ref tui_fillet2d "Example"
8619 def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
8621 Perform a fillet at the specified vertices of the given face/shell.
8624 theShape Face or Shell shape to perform fillet on.
8626 theListOfVertexes Global indices of vertexes to perform fillet on.
8627 theName Object name; when specified, this parameter is used
8628 for result publication in the study. Otherwise, if automatic
8629 publication is switched on, default value is used for result name.
8631 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8634 New GEOM.GEOM_Object, containing the result shape.
8637 face = geompy.MakeFaceHW(100, 100, 1)
8638 fillet2d = geompy.MakeFillet2D(face, 30, [7, 9])
8640 # Example: see GEOM_TestAll.py
8641 theR,Parameters = ParseParameters(theR)
8642 anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
8643 RaiseIfFailed("MakeFillet2D", self.LocalOp)
8644 anObj.SetParameters(Parameters)
8645 self._autoPublish(anObj, theName, "fillet")
8648 ## Perform a symmetric chamfer on all edges of the given shape.
8649 # @param theShape Shape, to perform chamfer on.
8650 # @param theD Chamfer size along each face.
8651 # @param theName Object name; when specified, this parameter is used
8652 # for result publication in the study. Otherwise, if automatic
8653 # publication is switched on, default value is used for result name.
8655 # @return New GEOM.GEOM_Object, containing the result shape.
8657 # @ref tui_chamfer "Example 1"
8658 # \n @ref swig_MakeChamferAll "Example 2"
8659 def MakeChamferAll(self, theShape, theD, theName=None):
8661 Perform a symmetric chamfer on all edges of the given shape.
8664 theShape Shape, to perform chamfer on.
8665 theD Chamfer size along each face.
8666 theName Object name; when specified, this parameter is used
8667 for result publication in the study. Otherwise, if automatic
8668 publication is switched on, default value is used for result name.
8671 New GEOM.GEOM_Object, containing the result shape.
8674 chamfer_all = geompy.MakeChamferAll(prism, 10.)
8676 # Example: see GEOM_TestOthers.py
8677 theD,Parameters = ParseParameters(theD)
8678 anObj = self.LocalOp.MakeChamferAll(theShape, theD)
8679 RaiseIfFailed("MakeChamferAll", self.LocalOp)
8680 anObj.SetParameters(Parameters)
8681 self._autoPublish(anObj, theName, "chamfer")
8684 ## Perform a chamfer on edges, common to the specified faces,
8685 # with distance D1 on the Face1
8686 # @param theShape Shape, to perform chamfer on.
8687 # @param theD1 Chamfer size along \a theFace1.
8688 # @param theD2 Chamfer size along \a theFace2.
8689 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
8690 # @param theName Object name; when specified, this parameter is used
8691 # for result publication in the study. Otherwise, if automatic
8692 # publication is switched on, default value is used for result name.
8694 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8696 # @return New GEOM.GEOM_Object, containing the result shape.
8698 # @ref tui_chamfer "Example"
8699 def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
8701 Perform a chamfer on edges, common to the specified faces,
8702 with distance D1 on the Face1
8705 theShape Shape, to perform chamfer on.
8706 theD1 Chamfer size along theFace1.
8707 theD2 Chamfer size along theFace2.
8708 theFace1,theFace2 Global indices of two faces of theShape.
8709 theName Object name; when specified, this parameter is used
8710 for result publication in the study. Otherwise, if automatic
8711 publication is switched on, default value is used for result name.
8714 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8717 New GEOM.GEOM_Object, containing the result shape.
8720 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
8721 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
8722 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
8723 chamfer_e = geompy.MakeChamferEdge(prism, 10., 10., f_ind_1, f_ind_2)
8725 # Example: see GEOM_TestAll.py
8726 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8727 anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
8728 RaiseIfFailed("MakeChamferEdge", self.LocalOp)
8729 anObj.SetParameters(Parameters)
8730 self._autoPublish(anObj, theName, "chamfer")
8733 ## Perform a chamfer on edges
8734 # @param theShape Shape, to perform chamfer on.
8735 # @param theD Chamfer length
8736 # @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8737 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
8738 # @param theName Object name; when specified, this parameter is used
8739 # for result publication in the study. Otherwise, if automatic
8740 # publication is switched on, default value is used for result name.
8742 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8744 # @return New GEOM.GEOM_Object, containing the result shape.
8745 def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
8747 Perform a chamfer on edges
8750 theShape Shape, to perform chamfer on.
8751 theD1 Chamfer size along theFace1.
8752 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
8753 theFace1,theFace2 Global indices of two faces of theShape.
8754 theName Object name; when specified, this parameter is used
8755 for result publication in the study. Otherwise, if automatic
8756 publication is switched on, default value is used for result name.
8759 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8762 New GEOM.GEOM_Object, containing the result shape.
8765 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
8766 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
8767 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
8769 chamfer_e = geompy.MakeChamferEdge(prism, 10., ang, f_ind_1, f_ind_2)
8772 if isinstance(theAngle,str):
8774 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8776 theAngle = theAngle*math.pi/180.0
8777 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
8778 RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
8779 anObj.SetParameters(Parameters)
8780 self._autoPublish(anObj, theName, "chamfer")
8783 ## Perform a chamfer on all edges of the specified faces,
8784 # with distance D1 on the first specified face (if several for one edge)
8785 # @param theShape Shape, to perform chamfer on.
8786 # @param theD1 Chamfer size along face from \a theFaces. If both faces,
8787 # connected to the edge, are in \a theFaces, \a theD1
8788 # will be get along face, which is nearer to \a theFaces beginning.
8789 # @param theD2 Chamfer size along another of two faces, connected to the edge.
8790 # @param theFaces Sequence of global indices of faces of \a theShape.
8791 # @param theName Object name; when specified, this parameter is used
8792 # for result publication in the study. Otherwise, if automatic
8793 # publication is switched on, default value is used for result name.
8795 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8797 # @return New GEOM.GEOM_Object, containing the result shape.
8799 # @ref tui_chamfer "Example"
8800 def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
8802 Perform a chamfer on all edges of the specified faces,
8803 with distance D1 on the first specified face (if several for one edge)
8806 theShape Shape, to perform chamfer on.
8807 theD1 Chamfer size along face from theFaces. If both faces,
8808 connected to the edge, are in theFaces, theD1
8809 will be get along face, which is nearer to theFaces beginning.
8810 theD2 Chamfer size along another of two faces, connected to the edge.
8811 theFaces Sequence of global indices of faces of theShape.
8812 theName Object name; when specified, this parameter is used
8813 for result publication in the study. Otherwise, if automatic
8814 publication is switched on, default value is used for result name.
8816 Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
8819 New GEOM.GEOM_Object, containing the result shape.
8821 # Example: see GEOM_TestAll.py
8822 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8823 anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
8824 RaiseIfFailed("MakeChamferFaces", self.LocalOp)
8825 anObj.SetParameters(Parameters)
8826 self._autoPublish(anObj, theName, "chamfer")
8829 ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
8830 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8832 # @ref swig_FilletChamfer "Example"
8833 def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
8835 The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
8836 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8839 if isinstance(theAngle,str):
8841 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8843 theAngle = theAngle*math.pi/180.0
8844 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
8845 RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
8846 anObj.SetParameters(Parameters)
8847 self._autoPublish(anObj, theName, "chamfer")
8850 ## Perform a chamfer on edges,
8851 # with distance D1 on the first specified face (if several for one edge)
8852 # @param theShape Shape, to perform chamfer on.
8853 # @param theD1,theD2 Chamfer size
8854 # @param theEdges Sequence of edges of \a theShape.
8855 # @param theName Object name; when specified, this parameter is used
8856 # for result publication in the study. Otherwise, if automatic
8857 # publication is switched on, default value is used for result name.
8859 # @return New GEOM.GEOM_Object, containing the result shape.
8861 # @ref swig_FilletChamfer "Example"
8862 def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
8864 Perform a chamfer on edges,
8865 with distance D1 on the first specified face (if several for one edge)
8868 theShape Shape, to perform chamfer on.
8869 theD1,theD2 Chamfer size
8870 theEdges Sequence of edges of theShape.
8871 theName Object name; when specified, this parameter is used
8872 for result publication in the study. Otherwise, if automatic
8873 publication is switched on, default value is used for result name.
8876 New GEOM.GEOM_Object, containing the result shape.
8878 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8879 anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
8880 RaiseIfFailed("MakeChamferEdges", self.LocalOp)
8881 anObj.SetParameters(Parameters)
8882 self._autoPublish(anObj, theName, "chamfer")
8885 ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
8886 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8887 def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
8889 The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
8890 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8893 if isinstance(theAngle,str):
8895 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8897 theAngle = theAngle*math.pi/180.0
8898 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
8899 RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
8900 anObj.SetParameters(Parameters)
8901 self._autoPublish(anObj, theName, "chamfer")
8904 ## @sa MakeChamferEdge(), MakeChamferFaces()
8906 # @ref swig_MakeChamfer "Example"
8907 def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
8909 See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
8911 # Example: see GEOM_TestOthers.py
8913 # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
8914 if aShapeType == self.ShapeType["EDGE"]:
8915 anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
8917 anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
8920 ## Remove material from a solid by extrusion of the base shape on the given distance.
8921 # @param theInit Shape to remove material from. It must be a solid or
8922 # a compound made of a single solid.
8923 # @param theBase Closed edge or wire defining the base shape to be extruded.
8924 # @param theH Prism dimension along the normal to theBase
8925 # @param theAngle Draft angle in degrees.
8926 # @param theName Object name; when specified, this parameter is used
8927 # for result publication in the study. Otherwise, if automatic
8928 # publication is switched on, default value is used for result name.
8930 # @return New GEOM.GEOM_Object, containing the initial shape with removed material
8932 # @ref tui_creation_prism "Example"
8933 def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theName=None):
8935 Add material to a solid by extrusion of the base shape on the given distance.
8938 theInit Shape to remove material from. It must be a solid or a compound made of a single solid.
8939 theBase Closed edge or wire defining the base shape to be extruded.
8940 theH Prism dimension along the normal to theBase
8941 theAngle Draft angle in degrees.
8942 theName Object name; when specified, this parameter is used
8943 for result publication in the study. Otherwise, if automatic
8944 publication is switched on, default value is used for result name.
8947 New GEOM.GEOM_Object, containing the initial shape with removed material.
8949 # Example: see GEOM_TestAll.py
8950 #theH,Parameters = ParseParameters(theH)
8951 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False)
8952 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
8953 #anObj.SetParameters(Parameters)
8954 self._autoPublish(anObj, theName, "extrudedCut")
8957 ## Add material to a solid by extrusion of the base shape on the given distance.
8958 # @param theInit Shape to add material to. It must be a solid or
8959 # a compound made of a single solid.
8960 # @param theBase Closed edge or wire defining the base shape to be extruded.
8961 # @param theH Prism dimension along the normal to theBase
8962 # @param theAngle Draft angle in degrees.
8963 # @param theName Object name; when specified, this parameter is used
8964 # for result publication in the study. Otherwise, if automatic
8965 # publication is switched on, default value is used for result name.
8967 # @return New GEOM.GEOM_Object, containing the initial shape with added material
8969 # @ref tui_creation_prism "Example"
8970 def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theName=None):
8972 Add material to a solid by extrusion of the base shape on the given distance.
8975 theInit Shape to add material to. It must be a solid or a compound made of a single solid.
8976 theBase Closed edge or wire defining the base shape to be extruded.
8977 theH Prism dimension along the normal to theBase
8978 theAngle Draft angle in degrees.
8979 theName Object name; when specified, this parameter is used
8980 for result publication in the study. Otherwise, if automatic
8981 publication is switched on, default value is used for result name.
8984 New GEOM.GEOM_Object, containing the initial shape with added material.
8986 # Example: see GEOM_TestAll.py
8987 #theH,Parameters = ParseParameters(theH)
8988 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True)
8989 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
8990 #anObj.SetParameters(Parameters)
8991 self._autoPublish(anObj, theName, "extrudedBoss")
8997 ## @addtogroup l3_basic_op
9000 ## Perform an Archimde operation on the given shape with given parameters.
9001 # The object presenting the resulting face is returned.
9002 # @param theShape Shape to be put in water.
9003 # @param theWeight Weight og the shape.
9004 # @param theWaterDensity Density of the water.
9005 # @param theMeshDeflection Deflection of the mesh, using to compute the section.
9006 # @param theName Object name; when specified, this parameter is used
9007 # for result publication in the study. Otherwise, if automatic
9008 # publication is switched on, default value is used for result name.
9010 # @return New GEOM.GEOM_Object, containing a section of \a theShape
9011 # by a plane, corresponding to water level.
9013 # @ref tui_archimede "Example"
9014 def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
9016 Perform an Archimde operation on the given shape with given parameters.
9017 The object presenting the resulting face is returned.
9020 theShape Shape to be put in water.
9021 theWeight Weight og the shape.
9022 theWaterDensity Density of the water.
9023 theMeshDeflection Deflection of the mesh, using to compute the section.
9024 theName Object name; when specified, this parameter is used
9025 for result publication in the study. Otherwise, if automatic
9026 publication is switched on, default value is used for result name.
9029 New GEOM.GEOM_Object, containing a section of theShape
9030 by a plane, corresponding to water level.
9032 # Example: see GEOM_TestAll.py
9033 theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters(
9034 theWeight,theWaterDensity,theMeshDeflection)
9035 anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
9036 RaiseIfFailed("MakeArchimede", self.LocalOp)
9037 anObj.SetParameters(Parameters)
9038 self._autoPublish(anObj, theName, "archimede")
9041 # end of l3_basic_op
9044 ## @addtogroup l2_measure
9047 ## Get point coordinates
9050 # @ref tui_measurement_tools_page "Example"
9051 def PointCoordinates(self,Point):
9053 Get point coordinates
9058 # Example: see GEOM_TestMeasures.py
9059 aTuple = self.MeasuOp.PointCoordinates(Point)
9060 RaiseIfFailed("PointCoordinates", self.MeasuOp)
9063 ## Get vector coordinates
9066 # @ref tui_measurement_tools_page "Example"
9067 def VectorCoordinates(self,Vector):
9069 Get vector coordinates
9075 p1=self.GetFirstVertex(Vector)
9076 p2=self.GetLastVertex(Vector)
9078 X1=self.PointCoordinates(p1)
9079 X2=self.PointCoordinates(p2)
9081 return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
9084 ## Compute cross product
9085 # @return vector w=u^v
9087 # @ref tui_measurement_tools_page "Example"
9088 def CrossProduct(self, Vector1, Vector2):
9090 Compute cross product
9092 Returns: vector w=u^v
9094 u=self.VectorCoordinates(Vector1)
9095 v=self.VectorCoordinates(Vector2)
9096 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])
9100 ## Compute cross product
9101 # @return dot product p=u.v
9103 # @ref tui_measurement_tools_page "Example"
9104 def DotProduct(self, Vector1, Vector2):
9106 Compute cross product
9108 Returns: dot product p=u.v
9110 u=self.VectorCoordinates(Vector1)
9111 v=self.VectorCoordinates(Vector2)
9112 p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
9117 ## Get summarized length of all wires,
9118 # area of surface and volume of the given shape.
9119 # @param theShape Shape to define properties of.
9120 # @return [theLength, theSurfArea, theVolume]\n
9121 # theLength: Summarized length of all wires of the given shape.\n
9122 # theSurfArea: Area of surface of the given shape.\n
9123 # theVolume: Volume of the given shape.
9125 # @ref tui_measurement_tools_page "Example"
9126 def BasicProperties(self,theShape):
9128 Get summarized length of all wires,
9129 area of surface and volume of the given shape.
9132 theShape Shape to define properties of.
9135 [theLength, theSurfArea, theVolume]
9136 theLength: Summarized length of all wires of the given shape.
9137 theSurfArea: Area of surface of the given shape.
9138 theVolume: Volume of the given shape.
9140 # Example: see GEOM_TestMeasures.py
9141 aTuple = self.MeasuOp.GetBasicProperties(theShape)
9142 RaiseIfFailed("GetBasicProperties", self.MeasuOp)
9145 ## Get parameters of bounding box of the given shape
9146 # @param theShape Shape to obtain bounding box of.
9147 # @param precise TRUE for precise computation; FALSE for fast one.
9148 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9149 # Xmin,Xmax: Limits of shape along OX axis.
9150 # Ymin,Ymax: Limits of shape along OY axis.
9151 # Zmin,Zmax: Limits of shape along OZ axis.
9153 # @ref tui_measurement_tools_page "Example"
9154 def BoundingBox (self, theShape, precise=False):
9156 Get parameters of bounding box of the given shape
9159 theShape Shape to obtain bounding box of.
9160 precise TRUE for precise computation; FALSE for fast one.
9163 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9164 Xmin,Xmax: Limits of shape along OX axis.
9165 Ymin,Ymax: Limits of shape along OY axis.
9166 Zmin,Zmax: Limits of shape along OZ axis.
9168 # Example: see GEOM_TestMeasures.py
9169 aTuple = self.MeasuOp.GetBoundingBox(theShape, precise)
9170 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
9173 ## Get bounding box of the given shape
9174 # @param theShape Shape to obtain bounding box of.
9175 # @param precise TRUE for precise computation; FALSE for fast one.
9176 # @param theName Object name; when specified, this parameter is used
9177 # for result publication in the study. Otherwise, if automatic
9178 # publication is switched on, default value is used for result name.
9180 # @return New GEOM.GEOM_Object, containing the created box.
9182 # @ref tui_measurement_tools_page "Example"
9183 def MakeBoundingBox (self, theShape, precise=False, theName=None):
9185 Get bounding box of the given shape
9188 theShape Shape to obtain bounding box of.
9189 precise TRUE for precise computation; FALSE for fast one.
9190 theName Object name; when specified, this parameter is used
9191 for result publication in the study. Otherwise, if automatic
9192 publication is switched on, default value is used for result name.
9195 New GEOM.GEOM_Object, containing the created box.
9197 # Example: see GEOM_TestMeasures.py
9198 anObj = self.MeasuOp.MakeBoundingBox(theShape, precise)
9199 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
9200 self._autoPublish(anObj, theName, "bndbox")
9203 ## Get inertia matrix and moments of inertia of theShape.
9204 # @param theShape Shape to calculate inertia of.
9205 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9206 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
9207 # Ix,Iy,Iz: Moments of inertia of the given shape.
9209 # @ref tui_measurement_tools_page "Example"
9210 def Inertia(self,theShape):
9212 Get inertia matrix and moments of inertia of theShape.
9215 theShape Shape to calculate inertia of.
9218 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9219 I(1-3)(1-3): Components of the inertia matrix of the given shape.
9220 Ix,Iy,Iz: Moments of inertia of the given shape.
9222 # Example: see GEOM_TestMeasures.py
9223 aTuple = self.MeasuOp.GetInertia(theShape)
9224 RaiseIfFailed("GetInertia", self.MeasuOp)
9227 ## Get if coords are included in the shape (ST_IN or ST_ON)
9228 # @param theShape Shape
9229 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9230 # @param tolerance to be used (default is 1.0e-7)
9231 # @return list_of_boolean = [res1, res2, ...]
9232 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
9234 Get if coords are included in the shape (ST_IN or ST_ON)
9238 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9239 tolerance to be used (default is 1.0e-7)
9242 list_of_boolean = [res1, res2, ...]
9244 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
9246 ## Get minimal distance between the given shapes.
9247 # @param theShape1,theShape2 Shapes to find minimal distance between.
9248 # @return Value of the minimal distance between the given shapes.
9250 # @ref tui_measurement_tools_page "Example"
9251 def MinDistance(self, theShape1, theShape2):
9253 Get minimal distance between the given shapes.
9256 theShape1,theShape2 Shapes to find minimal distance between.
9259 Value of the minimal distance between the given shapes.
9261 # Example: see GEOM_TestMeasures.py
9262 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9263 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9266 ## Get minimal distance between the given shapes.
9267 # @param theShape1,theShape2 Shapes to find minimal distance between.
9268 # @return Value of the minimal distance between the given shapes, in form of list
9269 # [Distance, DX, DY, DZ].
9271 # @ref swig_all_measure "Example"
9272 def MinDistanceComponents(self, theShape1, theShape2):
9274 Get minimal distance between the given shapes.
9277 theShape1,theShape2 Shapes to find minimal distance between.
9280 Value of the minimal distance between the given shapes, in form of list
9281 [Distance, DX, DY, DZ]
9283 # Example: see GEOM_TestMeasures.py
9284 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9285 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9286 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
9289 ## Get closest points of the given shapes.
9290 # @param theShape1,theShape2 Shapes to find closest points of.
9291 # @return The number of found solutions (-1 in case of infinite number of
9292 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9294 # @ref tui_measurement_tools_page "Example"
9295 def ClosestPoints (self, theShape1, theShape2):
9297 Get closest points of the given shapes.
9300 theShape1,theShape2 Shapes to find closest points of.
9303 The number of found solutions (-1 in case of infinite number of
9304 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9306 # Example: see GEOM_TestMeasures.py
9307 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
9308 RaiseIfFailed("ClosestPoints", self.MeasuOp)
9311 ## Get angle between the given shapes in degrees.
9312 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9313 # @note If both arguments are vectors, the angle is computed in accordance
9314 # with their orientations, otherwise the minimum angle is computed.
9315 # @return Value of the angle between the given shapes in degrees.
9317 # @ref tui_measurement_tools_page "Example"
9318 def GetAngle(self, theShape1, theShape2):
9320 Get angle between the given shapes in degrees.
9323 theShape1,theShape2 Lines or linear edges to find angle between.
9326 If both arguments are vectors, the angle is computed in accordance
9327 with their orientations, otherwise the minimum angle is computed.
9330 Value of the angle between the given shapes in degrees.
9332 # Example: see GEOM_TestMeasures.py
9333 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
9334 RaiseIfFailed("GetAngle", self.MeasuOp)
9337 ## Get angle between the given shapes in radians.
9338 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9339 # @note If both arguments are vectors, the angle is computed in accordance
9340 # with their orientations, otherwise the minimum angle is computed.
9341 # @return Value of the angle between the given shapes in radians.
9343 # @ref tui_measurement_tools_page "Example"
9344 def GetAngleRadians(self, theShape1, theShape2):
9346 Get angle between the given shapes in radians.
9349 theShape1,theShape2 Lines or linear edges to find angle between.
9353 If both arguments are vectors, the angle is computed in accordance
9354 with their orientations, otherwise the minimum angle is computed.
9357 Value of the angle between the given shapes in radians.
9359 # Example: see GEOM_TestMeasures.py
9360 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
9361 RaiseIfFailed("GetAngle", self.MeasuOp)
9364 ## Get angle between the given vectors in degrees.
9365 # @param theShape1,theShape2 Vectors to find angle between.
9366 # @param theFlag If True, the normal vector is defined by the two vectors cross,
9367 # if False, the opposite vector to the normal vector is used.
9368 # @return Value of the angle between the given vectors in degrees.
9370 # @ref tui_measurement_tools_page "Example"
9371 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
9373 Get angle between the given vectors in degrees.
9376 theShape1,theShape2 Vectors to find angle between.
9377 theFlag If True, the normal vector is defined by the two vectors cross,
9378 if False, the opposite vector to the normal vector is used.
9381 Value of the angle between the given vectors in degrees.
9383 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
9385 anAngle = 360. - anAngle
9386 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
9389 ## The same as GetAngleVectors, but the result is in radians.
9390 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
9392 Get angle between the given vectors in radians.
9395 theShape1,theShape2 Vectors to find angle between.
9396 theFlag If True, the normal vector is defined by the two vectors cross,
9397 if False, the opposite vector to the normal vector is used.
9400 Value of the angle between the given vectors in radians.
9402 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
9405 ## @name Curve Curvature Measurement
9406 # Methods for receiving radius of curvature of curves
9407 # in the given point
9410 ## Measure curvature of a curve at a point, set by parameter.
9411 # @param theCurve a curve.
9412 # @param theParam parameter.
9413 # @return radius of curvature of \a theCurve.
9415 # @ref swig_todo "Example"
9416 def CurveCurvatureByParam(self, theCurve, theParam):
9418 Measure curvature of a curve at a point, set by parameter.
9425 radius of curvature of theCurve.
9427 # Example: see GEOM_TestMeasures.py
9428 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
9429 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
9432 ## Measure curvature of a curve at a point.
9433 # @param theCurve a curve.
9434 # @param thePoint given point.
9435 # @return radius of curvature of \a theCurve.
9437 # @ref swig_todo "Example"
9438 def CurveCurvatureByPoint(self, theCurve, thePoint):
9440 Measure curvature of a curve at a point.
9444 thePoint given point.
9447 radius of curvature of theCurve.
9449 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
9450 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
9454 ## @name Surface Curvature Measurement
9455 # Methods for receiving max and min radius of curvature of surfaces
9456 # in the given point
9459 ## Measure max radius of curvature of surface.
9460 # @param theSurf the given surface.
9461 # @param theUParam Value of U-parameter on the referenced surface.
9462 # @param theVParam Value of V-parameter on the referenced surface.
9463 # @return max radius of curvature of theSurf.
9465 ## @ref swig_todo "Example"
9466 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9468 Measure max radius of curvature of surface.
9471 theSurf the given surface.
9472 theUParam Value of U-parameter on the referenced surface.
9473 theVParam Value of V-parameter on the referenced surface.
9476 max radius of curvature of theSurf.
9478 # Example: see GEOM_TestMeasures.py
9479 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9480 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
9483 ## Measure max radius of curvature of surface in the given point
9484 # @param theSurf the given surface.
9485 # @param thePoint given point.
9486 # @return max radius of curvature of theSurf.
9488 ## @ref swig_todo "Example"
9489 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
9491 Measure max radius of curvature of surface in the given point.
9494 theSurf the given surface.
9495 thePoint given point.
9498 max radius of curvature of theSurf.
9500 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
9501 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
9504 ## Measure min radius of curvature of surface.
9505 # @param theSurf the given surface.
9506 # @param theUParam Value of U-parameter on the referenced surface.
9507 # @param theVParam Value of V-parameter on the referenced surface.
9508 # @return min radius of curvature of theSurf.
9510 ## @ref swig_todo "Example"
9511 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9513 Measure min radius of curvature of surface.
9516 theSurf the given surface.
9517 theUParam Value of U-parameter on the referenced surface.
9518 theVParam Value of V-parameter on the referenced surface.
9521 Min radius of curvature of theSurf.
9523 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9524 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
9527 ## Measure min radius of curvature of surface in the given point
9528 # @param theSurf the given surface.
9529 # @param thePoint given point.
9530 # @return min radius of curvature of theSurf.
9532 ## @ref swig_todo "Example"
9533 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
9535 Measure min radius of curvature of surface in the given point.
9538 theSurf the given surface.
9539 thePoint given point.
9542 Min radius of curvature of theSurf.
9544 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
9545 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
9549 ## Get min and max tolerances of sub-shapes of theShape
9550 # @param theShape Shape, to get tolerances of.
9551 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
9552 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
9553 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
9554 # VertMin,VertMax: Min and max tolerances of the vertices.
9556 # @ref tui_measurement_tools_page "Example"
9557 def Tolerance(self,theShape):
9559 Get min and max tolerances of sub-shapes of theShape
9562 theShape Shape, to get tolerances of.
9565 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
9566 FaceMin,FaceMax: Min and max tolerances of the faces.
9567 EdgeMin,EdgeMax: Min and max tolerances of the edges.
9568 VertMin,VertMax: Min and max tolerances of the vertices.
9570 # Example: see GEOM_TestMeasures.py
9571 aTuple = self.MeasuOp.GetTolerance(theShape)
9572 RaiseIfFailed("GetTolerance", self.MeasuOp)
9575 ## Obtain description of the given shape (number of sub-shapes of each type)
9576 # @param theShape Shape to be described.
9577 # @return Description of the given shape.
9579 # @ref tui_measurement_tools_page "Example"
9580 def WhatIs(self,theShape):
9582 Obtain description of the given shape (number of sub-shapes of each type)
9585 theShape Shape to be described.
9588 Description of the given shape.
9590 # Example: see GEOM_TestMeasures.py
9591 aDescr = self.MeasuOp.WhatIs(theShape)
9592 RaiseIfFailed("WhatIs", self.MeasuOp)
9595 ## Obtain quantity of shapes of the given type in \a theShape.
9596 # If \a theShape is of type \a theType, it is also counted.
9597 # @param theShape Shape to be described.
9598 # @param theType the given ShapeType().
9599 # @return Quantity of shapes of type \a theType in \a theShape.
9601 # @ref tui_measurement_tools_page "Example"
9602 def NbShapes (self, theShape, theType):
9604 Obtain quantity of shapes of the given type in theShape.
9605 If theShape is of type theType, it is also counted.
9608 theShape Shape to be described.
9609 theType the given geompy.ShapeType
9612 Quantity of shapes of type theType in theShape.
9614 # Example: see GEOM_TestMeasures.py
9615 listSh = self.SubShapeAllIDs(theShape, theType)
9619 ## Obtain quantity of shapes of each type in \a theShape.
9620 # The \a theShape is also counted.
9621 # @param theShape Shape to be described.
9622 # @return Dictionary of ShapeType() with bound quantities of shapes.
9624 # @ref tui_measurement_tools_page "Example"
9625 def ShapeInfo (self, theShape):
9627 Obtain quantity of shapes of each type in theShape.
9628 The theShape is also counted.
9631 theShape Shape to be described.
9634 Dictionary of geompy.ShapeType with bound quantities of shapes.
9636 # Example: see GEOM_TestMeasures.py
9638 for typeSh in self.ShapeType:
9639 if typeSh in ( "AUTO", "SHAPE" ): continue
9640 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
9646 def GetCreationInformation(self, theShape):
9647 info = theShape.GetCreationInformation()
9649 opName = info.operationName
9650 if not opName: opName = "no info available"
9651 res = "Operation: " + opName
9653 for parVal in info.params:
9654 res += " \n %s = %s" % ( parVal.name, parVal.value )
9657 ## Get a point, situated at the centre of mass of theShape.
9658 # @param theShape Shape to define centre of mass of.
9659 # @param theName Object name; when specified, this parameter is used
9660 # for result publication in the study. Otherwise, if automatic
9661 # publication is switched on, default value is used for result name.
9663 # @return New GEOM.GEOM_Object, containing the created point.
9665 # @ref tui_measurement_tools_page "Example"
9666 def MakeCDG(self, theShape, theName=None):
9668 Get a point, situated at the centre of mass of theShape.
9671 theShape Shape to define centre of mass of.
9672 theName Object name; when specified, this parameter is used
9673 for result publication in the study. Otherwise, if automatic
9674 publication is switched on, default value is used for result name.
9677 New GEOM.GEOM_Object, containing the created point.
9679 # Example: see GEOM_TestMeasures.py
9680 anObj = self.MeasuOp.GetCentreOfMass(theShape)
9681 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
9682 self._autoPublish(anObj, theName, "centerOfMass")
9685 ## Get a vertex sub-shape by index depended with orientation.
9686 # @param theShape Shape to find sub-shape.
9687 # @param theIndex Index to find vertex by this index (starting from zero)
9688 # @param theName Object name; when specified, this parameter is used
9689 # for result publication in the study. Otherwise, if automatic
9690 # publication is switched on, default value is used for result name.
9692 # @return New GEOM.GEOM_Object, containing the created vertex.
9694 # @ref tui_measurement_tools_page "Example"
9695 def GetVertexByIndex(self, theShape, theIndex, theName=None):
9697 Get a vertex sub-shape by index depended with orientation.
9700 theShape Shape to find sub-shape.
9701 theIndex Index to find vertex by this index (starting from zero)
9702 theName Object name; when specified, this parameter is used
9703 for result publication in the study. Otherwise, if automatic
9704 publication is switched on, default value is used for result name.
9707 New GEOM.GEOM_Object, containing the created vertex.
9709 # Example: see GEOM_TestMeasures.py
9710 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
9711 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
9712 self._autoPublish(anObj, theName, "vertex")
9715 ## Get the first vertex of wire/edge depended orientation.
9716 # @param theShape Shape to find first vertex.
9717 # @param theName Object name; when specified, this parameter is used
9718 # for result publication in the study. Otherwise, if automatic
9719 # publication is switched on, default value is used for result name.
9721 # @return New GEOM.GEOM_Object, containing the created vertex.
9723 # @ref tui_measurement_tools_page "Example"
9724 def GetFirstVertex(self, theShape, theName=None):
9726 Get the first vertex of wire/edge depended orientation.
9729 theShape Shape to find first vertex.
9730 theName Object name; when specified, this parameter is used
9731 for result publication in the study. Otherwise, if automatic
9732 publication is switched on, default value is used for result name.
9735 New GEOM.GEOM_Object, containing the created vertex.
9737 # Example: see GEOM_TestMeasures.py
9738 # note: auto-publishing is done in self.GetVertexByIndex()
9739 anObj = self.GetVertexByIndex(theShape, 0, theName)
9740 RaiseIfFailed("GetFirstVertex", self.MeasuOp)
9743 ## Get the last vertex of wire/edge depended orientation.
9744 # @param theShape Shape to find last vertex.
9745 # @param theName Object name; when specified, this parameter is used
9746 # for result publication in the study. Otherwise, if automatic
9747 # publication is switched on, default value is used for result name.
9749 # @return New GEOM.GEOM_Object, containing the created vertex.
9751 # @ref tui_measurement_tools_page "Example"
9752 def GetLastVertex(self, theShape, theName=None):
9754 Get the last vertex of wire/edge depended orientation.
9757 theShape Shape to find last vertex.
9758 theName Object name; when specified, this parameter is used
9759 for result publication in the study. Otherwise, if automatic
9760 publication is switched on, default value is used for result name.
9763 New GEOM.GEOM_Object, containing the created vertex.
9765 # Example: see GEOM_TestMeasures.py
9766 nb_vert = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
9767 # note: auto-publishing is done in self.GetVertexByIndex()
9768 anObj = self.GetVertexByIndex(theShape, (nb_vert-1), theName)
9769 RaiseIfFailed("GetLastVertex", self.MeasuOp)
9772 ## Get a normale to the given face. If the point is not given,
9773 # the normale is calculated at the center of mass.
9774 # @param theFace Face to define normale of.
9775 # @param theOptionalPoint Point to compute the normale at.
9776 # @param theName Object name; when specified, this parameter is used
9777 # for result publication in the study. Otherwise, if automatic
9778 # publication is switched on, default value is used for result name.
9780 # @return New GEOM.GEOM_Object, containing the created vector.
9782 # @ref swig_todo "Example"
9783 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
9785 Get a normale to the given face. If the point is not given,
9786 the normale is calculated at the center of mass.
9789 theFace Face to define normale of.
9790 theOptionalPoint Point to compute the normale at.
9791 theName Object name; when specified, this parameter is used
9792 for result publication in the study. Otherwise, if automatic
9793 publication is switched on, default value is used for result name.
9796 New GEOM.GEOM_Object, containing the created vector.
9798 # Example: see GEOM_TestMeasures.py
9799 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
9800 RaiseIfFailed("GetNormal", self.MeasuOp)
9801 self._autoPublish(anObj, theName, "normal")
9804 ## Check a topology of the given shape.
9805 # @param theShape Shape to check validity of.
9806 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
9807 # if TRUE, the shape's geometry will be checked also.
9808 # @param theReturnStatus If FALSE and if theShape is invalid, a description \n
9809 # of problem is printed.
9810 # if TRUE and if theShape is invalid, the description
9811 # of problem is also returned.
9812 # @return TRUE, if the shape "seems to be valid".
9814 # @ref tui_measurement_tools_page "Example"
9815 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
9817 Check a topology of the given shape.
9820 theShape Shape to check validity of.
9821 theIsCheckGeom If FALSE, only the shape's topology will be checked,
9822 if TRUE, the shape's geometry will be checked also.
9823 theReturnStatus If FALSE and if theShape is invalid, a description
9824 of problem is printed.
9825 if TRUE and if theShape is invalid, the description
9826 of problem is returned.
9829 TRUE, if the shape "seems to be valid".
9830 If theShape is invalid, prints a description of problem.
9831 This description can also be returned.
9833 # Example: see GEOM_TestMeasures.py
9835 (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape)
9836 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
9838 (IsValid, Status) = self.MeasuOp.CheckShape(theShape)
9839 RaiseIfFailed("CheckShape", self.MeasuOp)
9841 if theReturnStatus == 0:
9843 if theReturnStatus == 1:
9844 return (IsValid, Status)
9847 ## Detect self-intersections in the given shape.
9848 # @param theShape Shape to check.
9849 # @return TRUE, if the shape contains no self-intersections.
9851 # @ref tui_measurement_tools_page "Example"
9852 def CheckSelfIntersections(self, theShape):
9854 Detect self-intersections in the given shape.
9857 theShape Shape to check.
9860 TRUE, if the shape contains no self-intersections.
9862 # Example: see GEOM_TestMeasures.py
9863 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape)
9864 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
9867 ## Get position (LCS) of theShape.
9869 # Origin of the LCS is situated at the shape's center of mass.
9870 # Axes of the LCS are obtained from shape's location or,
9871 # if the shape is a planar face, from position of its plane.
9873 # @param theShape Shape to calculate position of.
9874 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9875 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
9876 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9877 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9879 # @ref swig_todo "Example"
9880 def GetPosition(self,theShape):
9882 Get position (LCS) of theShape.
9883 Origin of the LCS is situated at the shape's center of mass.
9884 Axes of the LCS are obtained from shape's location or,
9885 if the shape is a planar face, from position of its plane.
9888 theShape Shape to calculate position of.
9891 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9892 Ox,Oy,Oz: Coordinates of shape's LCS origin.
9893 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9894 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9896 # Example: see GEOM_TestMeasures.py
9897 aTuple = self.MeasuOp.GetPosition(theShape)
9898 RaiseIfFailed("GetPosition", self.MeasuOp)
9901 ## Get kind of theShape.
9903 # @param theShape Shape to get a kind of.
9904 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
9905 # and a list of parameters, describing the shape.
9906 # @note Concrete meaning of each value, returned via \a theIntegers
9907 # or \a theDoubles list depends on the kind() of the shape.
9909 # @ref swig_todo "Example"
9910 def KindOfShape(self,theShape):
9912 Get kind of theShape.
9915 theShape Shape to get a kind of.
9918 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
9919 and a list of parameters, describing the shape.
9921 Concrete meaning of each value, returned via theIntegers
9922 or theDoubles list depends on the geompy.kind of the shape
9924 # Example: see GEOM_TestMeasures.py
9925 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
9926 RaiseIfFailed("KindOfShape", self.MeasuOp)
9928 aKind = aRoughTuple[0]
9929 anInts = aRoughTuple[1]
9930 aDbls = aRoughTuple[2]
9932 # Now there is no exception from this rule:
9933 aKindTuple = [aKind] + aDbls + anInts
9935 # If they are we will regroup parameters for such kind of shape.
9937 #if aKind == kind.SOME_KIND:
9938 # # SOME_KIND int int double int double double
9939 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
9946 ## @addtogroup l2_import_export
9949 ## Import a shape from the BREP or IGES or STEP file
9950 # (depends on given format) with given name.
9951 # @param theFileName The file, containing the shape.
9952 # @param theFormatName Specify format for the file reading.
9953 # Available formats can be obtained with InsertOp.ImportTranslators() method.
9954 # If format 'IGES_SCALE' is used instead of 'IGES' or
9955 # format 'STEP_SCALE' is used instead of 'STEP',
9956 # length unit will be set to 'meter' and result model will be scaled.
9957 # @param theName Object name; when specified, this parameter is used
9958 # for result publication in the study. Otherwise, if automatic
9959 # publication is switched on, default value is used for result name.
9961 # @return New GEOM.GEOM_Object, containing the imported shape.
9963 # @ref swig_Import_Export "Example"
9964 def ImportFile(self, theFileName, theFormatName, theName=None):
9966 Import a shape from the BREP or IGES or STEP file
9967 (depends on given format) with given name.
9970 theFileName The file, containing the shape.
9971 theFormatName Specify format for the file reading.
9972 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
9973 If format 'IGES_SCALE' is used instead of 'IGES' or
9974 format 'STEP_SCALE' is used instead of 'STEP',
9975 length unit will be set to 'meter' and result model will be scaled.
9976 theName Object name; when specified, this parameter is used
9977 for result publication in the study. Otherwise, if automatic
9978 publication is switched on, default value is used for result name.
9981 New GEOM.GEOM_Object, containing the imported shape.
9983 # Example: see GEOM_TestOthers.py
9984 anObj = self.InsertOp.ImportFile(theFileName, theFormatName)
9985 RaiseIfFailed("ImportFile", self.InsertOp)
9986 self._autoPublish(anObj, theName, "imported")
9989 ## Deprecated analog of ImportFile()
9990 def Import(self, theFileName, theFormatName, theName=None):
9992 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
9994 print "WARNING: Function Import is deprecated, use ImportFile instead"
9995 # note: auto-publishing is done in self.ImportFile()
9996 return self.ImportFile(theFileName, theFormatName, theName)
9998 ## Shortcut to ImportFile() for BREP format.
9999 # Import a shape from the BREP file with given name.
10000 # @param theFileName The file, containing the shape.
10001 # @param theName Object name; when specified, this parameter is used
10002 # for result publication in the study. Otherwise, if automatic
10003 # publication is switched on, default value is used for result name.
10005 # @return New GEOM.GEOM_Object, containing the imported shape.
10007 # @ref swig_Import_Export "Example"
10008 def ImportBREP(self, theFileName, theName=None):
10010 geompy.ImportFile(...) function for BREP format
10011 Import a shape from the BREP file with given name.
10014 theFileName The file, containing the shape.
10015 theName Object name; when specified, this parameter is used
10016 for result publication in the study. Otherwise, if automatic
10017 publication is switched on, default value is used for result name.
10020 New GEOM.GEOM_Object, containing the imported shape.
10022 # Example: see GEOM_TestOthers.py
10023 # note: auto-publishing is done in self.ImportFile()
10024 return self.ImportFile(theFileName, "BREP", theName)
10026 ## Shortcut to ImportFile() for IGES format
10027 # Import a shape from the IGES file with given name.
10028 # @param theFileName The file, containing the shape.
10029 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
10030 # and result model will be scaled, if its units are not meters.
10031 # If False (default), file length units will be taken into account.
10032 # @param theName Object name; when specified, this parameter is used
10033 # for result publication in the study. Otherwise, if automatic
10034 # publication is switched on, default value is used for result name.
10036 # @return New GEOM.GEOM_Object, containing the imported shape.
10038 # @ref swig_Import_Export "Example"
10039 def ImportIGES(self, theFileName, ignoreUnits = False, theName=None):
10041 geompy.ImportFile(...) function for IGES format
10044 theFileName The file, containing the shape.
10045 ignoreUnits If True, file length units will be ignored (set to 'meter')
10046 and result model will be scaled, if its units are not meters.
10047 If False (default), file length units will be taken into account.
10048 theName Object name; when specified, this parameter is used
10049 for result publication in the study. Otherwise, if automatic
10050 publication is switched on, default value is used for result name.
10053 New GEOM.GEOM_Object, containing the imported shape.
10055 # Example: see GEOM_TestOthers.py
10056 # note: auto-publishing is done in self.ImportFile()
10058 return self.ImportFile(theFileName, "IGES_SCALE", theName)
10059 return self.ImportFile(theFileName, "IGES", theName)
10061 ## Return length unit from given IGES file
10062 # @param theFileName The file, containing the shape.
10063 # @return String, containing the units name.
10065 # @ref swig_Import_Export "Example"
10066 def GetIGESUnit(self, theFileName):
10068 Return length units from given IGES file
10071 theFileName The file, containing the shape.
10074 String, containing the units name.
10076 # Example: see GEOM_TestOthers.py
10077 aUnitName = self.InsertOp.ReadValue(theFileName, "IGES", "LEN_UNITS")
10080 ## Shortcut to ImportFile() for STEP format
10081 # Import a shape from the STEP file with given name.
10082 # @param theFileName The file, containing the shape.
10083 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
10084 # and result model will be scaled, if its units are not meters.
10085 # If False (default), file length units will be taken into account.
10086 # @param theName Object name; when specified, this parameter is used
10087 # for result publication in the study. Otherwise, if automatic
10088 # publication is switched on, default value is used for result name.
10090 # @return New GEOM.GEOM_Object, containing the imported shape.
10092 # @ref swig_Import_Export "Example"
10093 def ImportSTEP(self, theFileName, ignoreUnits = False, theName=None):
10095 geompy.ImportFile(...) function for STEP format
10098 theFileName The file, containing the shape.
10099 ignoreUnits If True, file length units will be ignored (set to 'meter')
10100 and result model will be scaled, if its units are not meters.
10101 If False (default), file length units will be taken into account.
10102 theName Object name; when specified, this parameter is used
10103 for result publication in the study. Otherwise, if automatic
10104 publication is switched on, default value is used for result name.
10107 New GEOM.GEOM_Object, containing the imported shape.
10109 # Example: see GEOM_TestOthers.py
10110 # note: auto-publishing is done in self.ImportFile()
10112 return self.ImportFile(theFileName, "STEP_SCALE", theName)
10113 return self.ImportFile(theFileName, "STEP", theName)
10115 ## Return length unit from given IGES or STEP file
10116 # @param theFileName The file, containing the shape.
10117 # @return String, containing the units name.
10119 # @ref swig_Import_Export "Example"
10120 def GetSTEPUnit(self, theFileName):
10122 Return length units from given STEP file
10125 theFileName The file, containing the shape.
10128 String, containing the units name.
10130 # Example: see GEOM_TestOthers.py
10131 aUnitName = self.InsertOp.ReadValue(theFileName, "STEP", "LEN_UNITS")
10134 ## Read a shape from the binary stream, containing its bounding representation (BRep).
10135 # @note This method will not be dumped to the python script by DumpStudy functionality.
10136 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
10137 # @param theStream The BRep binary stream.
10138 # @param theName Object name; when specified, this parameter is used
10139 # for result publication in the study. Otherwise, if automatic
10140 # publication is switched on, default value is used for result name.
10142 # @return New GEOM_Object, containing the shape, read from theStream.
10144 # @ref swig_Import_Export "Example"
10145 def RestoreShape (self, theStream, theName=None):
10147 Read a shape from the binary stream, containing its bounding representation (BRep).
10150 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
10153 theStream The BRep binary stream.
10154 theName Object name; when specified, this parameter is used
10155 for result publication in the study. Otherwise, if automatic
10156 publication is switched on, default value is used for result name.
10159 New GEOM_Object, containing the shape, read from theStream.
10161 # Example: see GEOM_TestOthers.py
10162 anObj = self.InsertOp.RestoreShape(theStream)
10163 RaiseIfFailed("RestoreShape", self.InsertOp)
10164 self._autoPublish(anObj, theName, "restored")
10167 ## Export the given shape into a file with given name.
10168 # @param theObject Shape to be stored in the file.
10169 # @param theFileName Name of the file to store the given shape in.
10170 # @param theFormatName Specify format for the shape storage.
10171 # Available formats can be obtained with
10172 # geompy.InsertOp.ExportTranslators()[0] method.
10174 # @ref swig_Import_Export "Example"
10175 def Export(self, theObject, theFileName, theFormatName):
10177 Export the given shape into a file with given name.
10180 theObject Shape to be stored in the file.
10181 theFileName Name of the file to store the given shape in.
10182 theFormatName Specify format for the shape storage.
10183 Available formats can be obtained with
10184 geompy.InsertOp.ExportTranslators()[0] method.
10186 # Example: see GEOM_TestOthers.py
10187 self.InsertOp.Export(theObject, theFileName, theFormatName)
10188 if self.InsertOp.IsDone() == 0:
10189 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
10193 ## Shortcut to Export() for BREP format
10195 # @ref swig_Import_Export "Example"
10196 def ExportBREP(self,theObject, theFileName):
10198 geompy.Export(...) function for BREP format
10200 # Example: see GEOM_TestOthers.py
10201 return self.Export(theObject, theFileName, "BREP")
10203 ## Shortcut to Export() for IGES format
10205 # @ref swig_Import_Export "Example"
10206 def ExportIGES(self,theObject, theFileName):
10208 geompy.Export(...) function for IGES format
10210 # Example: see GEOM_TestOthers.py
10211 return self.Export(theObject, theFileName, "IGES")
10213 ## Shortcut to Export() for STEP format
10215 # @ref swig_Import_Export "Example"
10216 def ExportSTEP(self,theObject, theFileName):
10218 geompy.Export(...) function for STEP format
10220 # Example: see GEOM_TestOthers.py
10221 return self.Export(theObject, theFileName, "STEP")
10223 # end of l2_import_export
10226 ## @addtogroup l3_blocks
10229 ## Create a quadrangle face from four edges. Order of Edges is not
10230 # important. It is not necessary that edges share the same vertex.
10231 # @param E1,E2,E3,E4 Edges for the face bound.
10232 # @param theName Object name; when specified, this parameter is used
10233 # for result publication in the study. Otherwise, if automatic
10234 # publication is switched on, default value is used for result name.
10236 # @return New GEOM.GEOM_Object, containing the created face.
10238 # @ref tui_building_by_blocks_page "Example"
10239 def MakeQuad(self, E1, E2, E3, E4, theName=None):
10241 Create a quadrangle face from four edges. Order of Edges is not
10242 important. It is not necessary that edges share the same vertex.
10245 E1,E2,E3,E4 Edges for the face bound.
10246 theName Object name; when specified, this parameter is used
10247 for result publication in the study. Otherwise, if automatic
10248 publication is switched on, default value is used for result name.
10251 New GEOM.GEOM_Object, containing the created face.
10254 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
10256 # Example: see GEOM_Spanner.py
10257 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
10258 RaiseIfFailed("MakeQuad", self.BlocksOp)
10259 self._autoPublish(anObj, theName, "quad")
10262 ## Create a quadrangle face on two edges.
10263 # The missing edges will be built by creating the shortest ones.
10264 # @param E1,E2 Two opposite edges for the face.
10265 # @param theName Object name; when specified, this parameter is used
10266 # for result publication in the study. Otherwise, if automatic
10267 # publication is switched on, default value is used for result name.
10269 # @return New GEOM.GEOM_Object, containing the created face.
10271 # @ref tui_building_by_blocks_page "Example"
10272 def MakeQuad2Edges(self, E1, E2, theName=None):
10274 Create a quadrangle face on two edges.
10275 The missing edges will be built by creating the shortest ones.
10278 E1,E2 Two opposite edges for the face.
10279 theName Object name; when specified, this parameter is used
10280 for result publication in the study. Otherwise, if automatic
10281 publication is switched on, default value is used for result name.
10284 New GEOM.GEOM_Object, containing the created face.
10288 p1 = geompy.MakeVertex( 0., 0., 0.)
10289 p2 = geompy.MakeVertex(150., 30., 0.)
10290 p3 = geompy.MakeVertex( 0., 120., 50.)
10291 p4 = geompy.MakeVertex( 0., 40., 70.)
10293 edge1 = geompy.MakeEdge(p1, p2)
10294 edge2 = geompy.MakeEdge(p3, p4)
10295 # create a quadrangle face from two edges
10296 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
10298 # Example: see GEOM_Spanner.py
10299 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
10300 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
10301 self._autoPublish(anObj, theName, "quad")
10304 ## Create a quadrangle face with specified corners.
10305 # The missing edges will be built by creating the shortest ones.
10306 # @param V1,V2,V3,V4 Corner vertices for the face.
10307 # @param theName Object name; when specified, this parameter is used
10308 # for result publication in the study. Otherwise, if automatic
10309 # publication is switched on, default value is used for result name.
10311 # @return New GEOM.GEOM_Object, containing the created face.
10313 # @ref tui_building_by_blocks_page "Example 1"
10314 # \n @ref swig_MakeQuad4Vertices "Example 2"
10315 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
10317 Create a quadrangle face with specified corners.
10318 The missing edges will be built by creating the shortest ones.
10321 V1,V2,V3,V4 Corner vertices for the face.
10322 theName Object name; when specified, this parameter is used
10323 for result publication in the study. Otherwise, if automatic
10324 publication is switched on, default value is used for result name.
10327 New GEOM.GEOM_Object, containing the created face.
10331 p1 = geompy.MakeVertex( 0., 0., 0.)
10332 p2 = geompy.MakeVertex(150., 30., 0.)
10333 p3 = geompy.MakeVertex( 0., 120., 50.)
10334 p4 = geompy.MakeVertex( 0., 40., 70.)
10335 # create a quadrangle from four points in its corners
10336 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
10338 # Example: see GEOM_Spanner.py
10339 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
10340 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
10341 self._autoPublish(anObj, theName, "quad")
10344 ## Create a hexahedral solid, bounded by the six given faces. Order of
10345 # faces is not important. It is not necessary that Faces share the same edge.
10346 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10347 # @param theName Object name; when specified, this parameter is used
10348 # for result publication in the study. Otherwise, if automatic
10349 # publication is switched on, default value is used for result name.
10351 # @return New GEOM.GEOM_Object, containing the created solid.
10353 # @ref tui_building_by_blocks_page "Example 1"
10354 # \n @ref swig_MakeHexa "Example 2"
10355 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
10357 Create a hexahedral solid, bounded by the six given faces. Order of
10358 faces is not important. It is not necessary that Faces share the same edge.
10361 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10362 theName Object name; when specified, this parameter is used
10363 for result publication in the study. Otherwise, if automatic
10364 publication is switched on, default value is used for result name.
10367 New GEOM.GEOM_Object, containing the created solid.
10370 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
10372 # Example: see GEOM_Spanner.py
10373 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
10374 RaiseIfFailed("MakeHexa", self.BlocksOp)
10375 self._autoPublish(anObj, theName, "hexa")
10378 ## Create a hexahedral solid between two given faces.
10379 # The missing faces will be built by creating the smallest ones.
10380 # @param F1,F2 Two opposite faces for the hexahedral solid.
10381 # @param theName Object name; when specified, this parameter is used
10382 # for result publication in the study. Otherwise, if automatic
10383 # publication is switched on, default value is used for result name.
10385 # @return New GEOM.GEOM_Object, containing the created solid.
10387 # @ref tui_building_by_blocks_page "Example 1"
10388 # \n @ref swig_MakeHexa2Faces "Example 2"
10389 def MakeHexa2Faces(self, F1, F2, theName=None):
10391 Create a hexahedral solid between two given faces.
10392 The missing faces will be built by creating the smallest ones.
10395 F1,F2 Two opposite faces for the hexahedral solid.
10396 theName Object name; when specified, this parameter is used
10397 for result publication in the study. Otherwise, if automatic
10398 publication is switched on, default value is used for result name.
10401 New GEOM.GEOM_Object, containing the created solid.
10404 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
10406 # Example: see GEOM_Spanner.py
10407 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
10408 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
10409 self._autoPublish(anObj, theName, "hexa")
10415 ## @addtogroup l3_blocks_op
10418 ## Get a vertex, found in the given shape by its coordinates.
10419 # @param theShape Block or a compound of blocks.
10420 # @param theX,theY,theZ Coordinates of the sought vertex.
10421 # @param theEpsilon Maximum allowed distance between the resulting
10422 # vertex and point with the given coordinates.
10423 # @param theName Object name; when specified, this parameter is used
10424 # for result publication in the study. Otherwise, if automatic
10425 # publication is switched on, default value is used for result name.
10427 # @return New GEOM.GEOM_Object, containing the found vertex.
10429 # @ref swig_GetPoint "Example"
10430 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
10432 Get a vertex, found in the given shape by its coordinates.
10435 theShape Block or a compound of blocks.
10436 theX,theY,theZ Coordinates of the sought vertex.
10437 theEpsilon Maximum allowed distance between the resulting
10438 vertex and point with the given coordinates.
10439 theName Object name; when specified, this parameter is used
10440 for result publication in the study. Otherwise, if automatic
10441 publication is switched on, default value is used for result name.
10444 New GEOM.GEOM_Object, containing the found vertex.
10447 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
10449 # Example: see GEOM_TestOthers.py
10450 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
10451 RaiseIfFailed("GetPoint", self.BlocksOp)
10452 self._autoPublish(anObj, theName, "vertex")
10455 ## Find a vertex of the given shape, which has minimal distance to the given point.
10456 # @param theShape Any shape.
10457 # @param thePoint Point, close to the desired vertex.
10458 # @param theName Object name; when specified, this parameter is used
10459 # for result publication in the study. Otherwise, if automatic
10460 # publication is switched on, default value is used for result name.
10462 # @return New GEOM.GEOM_Object, containing the found vertex.
10464 # @ref swig_GetVertexNearPoint "Example"
10465 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
10467 Find a vertex of the given shape, which has minimal distance to the given point.
10470 theShape Any shape.
10471 thePoint Point, close to the desired vertex.
10472 theName Object name; when specified, this parameter is used
10473 for result publication in the study. Otherwise, if automatic
10474 publication is switched on, default value is used for result name.
10477 New GEOM.GEOM_Object, containing the found vertex.
10480 pmidle = geompy.MakeVertex(50, 0, 50)
10481 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
10483 # Example: see GEOM_TestOthers.py
10484 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
10485 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
10486 self._autoPublish(anObj, theName, "vertex")
10489 ## Get an edge, found in the given shape by two given vertices.
10490 # @param theShape Block or a compound of blocks.
10491 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
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 edge.
10498 # @ref swig_GetEdge "Example"
10499 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
10501 Get an edge, found in the given shape by two given vertices.
10504 theShape Block or a compound of blocks.
10505 thePoint1,thePoint2 Points, close to the ends of the desired edge.
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 edge.
10513 # Example: see GEOM_Spanner.py
10514 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
10515 RaiseIfFailed("GetEdge", self.BlocksOp)
10516 self._autoPublish(anObj, theName, "edge")
10519 ## Find an edge 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 edge.
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 edge.
10528 # @ref swig_GetEdgeNearPoint "Example"
10529 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
10531 Find an edge 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 edge.
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 edge.
10543 # Example: see GEOM_TestOthers.py
10544 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
10545 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
10546 self._autoPublish(anObj, theName, "edge")
10549 ## Returns a face, found in the given shape by four given corner vertices.
10550 # @param theShape Block or a compound of blocks.
10551 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners 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 GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
10561 Returns a face, found in the given shape by four given corner vertices.
10564 theShape Block or a compound of blocks.
10565 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners 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.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
10575 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
10576 self._autoPublish(anObj, theName, "face")
10579 ## Get a face of block, found in the given shape by two given edges.
10580 # @param theShape Block or a compound of blocks.
10581 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
10582 # @param theName Object name; when specified, this parameter is used
10583 # for result publication in the study. Otherwise, if automatic
10584 # publication is switched on, default value is used for result name.
10586 # @return New GEOM.GEOM_Object, containing the found face.
10588 # @ref swig_todo "Example"
10589 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
10591 Get a face of block, found in the given shape by two given edges.
10594 theShape Block or a compound of blocks.
10595 theEdge1,theEdge2 Edges, close to the edges of the desired face.
10596 theName Object name; when specified, this parameter is used
10597 for result publication in the study. Otherwise, if automatic
10598 publication is switched on, default value is used for result name.
10601 New GEOM.GEOM_Object, containing the found face.
10603 # Example: see GEOM_Spanner.py
10604 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
10605 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
10606 self._autoPublish(anObj, theName, "face")
10609 ## Find a face, opposite to the given one in the given block.
10610 # @param theBlock Must be a hexahedral solid.
10611 # @param theFace Face of \a theBlock, opposite to the desired face.
10612 # @param theName Object name; when specified, this parameter is used
10613 # for result publication in the study. Otherwise, if automatic
10614 # publication is switched on, default value is used for result name.
10616 # @return New GEOM.GEOM_Object, containing the found face.
10618 # @ref swig_GetOppositeFace "Example"
10619 def GetOppositeFace(self, theBlock, theFace, theName=None):
10621 Find a face, opposite to the given one in the given block.
10624 theBlock Must be a hexahedral solid.
10625 theFace Face of theBlock, opposite to the desired face.
10626 theName Object name; when specified, this parameter is used
10627 for result publication in the study. Otherwise, if automatic
10628 publication is switched on, default value is used for result name.
10631 New GEOM.GEOM_Object, containing the found face.
10633 # Example: see GEOM_Spanner.py
10634 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
10635 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
10636 self._autoPublish(anObj, theName, "face")
10639 ## Find a face of the given shape, which has minimal distance to the given point.
10640 # @param theShape Block or a compound of blocks.
10641 # @param thePoint Point, close to the desired face.
10642 # @param theName Object name; when specified, this parameter is used
10643 # for result publication in the study. Otherwise, if automatic
10644 # publication is switched on, default value is used for result name.
10646 # @return New GEOM.GEOM_Object, containing the found face.
10648 # @ref swig_GetFaceNearPoint "Example"
10649 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
10651 Find a face of the given shape, which has minimal distance to the given point.
10654 theShape Block or a compound of blocks.
10655 thePoint Point, close to the desired face.
10656 theName Object name; when specified, this parameter is used
10657 for result publication in the study. Otherwise, if automatic
10658 publication is switched on, default value is used for result name.
10661 New GEOM.GEOM_Object, containing the found face.
10663 # Example: see GEOM_Spanner.py
10664 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
10665 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
10666 self._autoPublish(anObj, theName, "face")
10669 ## Find a face of block, whose outside normale has minimal angle with the given vector.
10670 # @param theBlock Block or a compound of blocks.
10671 # @param theVector Vector, close to the normale of the desired face.
10672 # @param theName Object name; when specified, this parameter is used
10673 # for result publication in the study. Otherwise, if automatic
10674 # publication is switched on, default value is used for result name.
10676 # @return New GEOM.GEOM_Object, containing the found face.
10678 # @ref swig_todo "Example"
10679 def GetFaceByNormale(self, theBlock, theVector, theName=None):
10681 Find a face of block, whose outside normale has minimal angle with the given vector.
10684 theBlock Block or a compound of blocks.
10685 theVector Vector, close to the normale of the desired face.
10686 theName Object name; when specified, this parameter is used
10687 for result publication in the study. Otherwise, if automatic
10688 publication is switched on, default value is used for result name.
10691 New GEOM.GEOM_Object, containing the found face.
10693 # Example: see GEOM_Spanner.py
10694 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
10695 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
10696 self._autoPublish(anObj, theName, "face")
10699 ## Find all sub-shapes of type \a theShapeType of the given shape,
10700 # which have minimal distance to the given point.
10701 # @param theShape Any shape.
10702 # @param thePoint Point, close to the desired shape.
10703 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
10704 # @param theTolerance The tolerance for distances comparison. All shapes
10705 # with distances to the given point in interval
10706 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
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 New GEOM_Object, containing a group of all found shapes.
10713 # @ref swig_GetShapesNearPoint "Example"
10714 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
10716 Find all sub-shapes of type theShapeType of the given shape,
10717 which have minimal distance to the given point.
10720 theShape Any shape.
10721 thePoint Point, close to the desired shape.
10722 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
10723 theTolerance The tolerance for distances comparison. All shapes
10724 with distances to the given point in interval
10725 [minimal_distance, minimal_distance + theTolerance] will be gathered.
10726 theName Object name; when specified, this parameter is used
10727 for result publication in the study. Otherwise, if automatic
10728 publication is switched on, default value is used for result name.
10731 New GEOM_Object, containing a group of all found shapes.
10733 # Example: see GEOM_TestOthers.py
10734 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
10735 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
10736 self._autoPublish(anObj, theName, "group")
10739 # end of l3_blocks_op
10742 ## @addtogroup l4_blocks_measure
10745 ## Check, if the compound of blocks is given.
10746 # To be considered as a compound of blocks, the
10747 # given shape must satisfy the following conditions:
10748 # - Each element of the compound should be a Block (6 faces and 12 edges).
10749 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10750 # - The compound should be connexe.
10751 # - The glue between two quadrangle faces should be applied.
10752 # @param theCompound The compound to check.
10753 # @return TRUE, if the given shape is a compound of blocks.
10754 # If theCompound is not valid, prints all discovered errors.
10756 # @ref tui_measurement_tools_page "Example 1"
10757 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
10758 def CheckCompoundOfBlocks(self,theCompound):
10760 Check, if the compound of blocks is given.
10761 To be considered as a compound of blocks, the
10762 given shape must satisfy the following conditions:
10763 - Each element of the compound should be a Block (6 faces and 12 edges).
10764 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10765 - The compound should be connexe.
10766 - The glue between two quadrangle faces should be applied.
10769 theCompound The compound to check.
10772 TRUE, if the given shape is a compound of blocks.
10773 If theCompound is not valid, prints all discovered errors.
10775 # Example: see GEOM_Spanner.py
10776 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound)
10777 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
10779 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
10783 ## Retrieve all non blocks solids and faces from \a theShape.
10784 # @param theShape The shape to explore.
10785 # @param theName Object name; when specified, this parameter is used
10786 # for result publication in the study. Otherwise, if automatic
10787 # publication is switched on, default value is used for result name.
10789 # @return A tuple of two GEOM_Objects. The first object is a group of all
10790 # non block solids (= not 6 faces, or with 6 faces, but with the
10791 # presence of non-quadrangular faces). The second object is a
10792 # group of all non quadrangular faces.
10794 # @ref tui_measurement_tools_page "Example 1"
10795 # \n @ref swig_GetNonBlocks "Example 2"
10796 def GetNonBlocks (self, theShape, theName=None):
10798 Retrieve all non blocks solids and faces from theShape.
10801 theShape The shape to explore.
10802 theName Object name; when specified, this parameter is used
10803 for result publication in the study. Otherwise, if automatic
10804 publication is switched on, default value is used for result name.
10807 A tuple of two GEOM_Objects. The first object is a group of all
10808 non block solids (= not 6 faces, or with 6 faces, but with the
10809 presence of non-quadrangular faces). The second object is a
10810 group of all non quadrangular faces.
10813 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
10815 # Example: see GEOM_Spanner.py
10816 aTuple = self.BlocksOp.GetNonBlocks(theShape)
10817 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
10818 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
10821 ## Remove all seam and degenerated edges from \a theShape.
10822 # Unite faces and edges, sharing one surface. It means that
10823 # this faces must have references to one C++ surface object (handle).
10824 # @param theShape The compound or single solid to remove irregular edges from.
10825 # @param doUnionFaces If True, then unite faces. If False (the default value),
10826 # do not unite faces.
10827 # @param theName Object name; when specified, this parameter is used
10828 # for result publication in the study. Otherwise, if automatic
10829 # publication is switched on, default value is used for result name.
10831 # @return Improved shape.
10833 # @ref swig_RemoveExtraEdges "Example"
10834 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
10836 Remove all seam and degenerated edges from theShape.
10837 Unite faces and edges, sharing one surface. It means that
10838 this faces must have references to one C++ surface object (handle).
10841 theShape The compound or single solid to remove irregular edges from.
10842 doUnionFaces If True, then unite faces. If False (the default value),
10843 do not unite faces.
10844 theName Object name; when specified, this parameter is used
10845 for result publication in the study. Otherwise, if automatic
10846 publication is switched on, default value is used for result name.
10851 # Example: see GEOM_TestOthers.py
10852 nbFacesOptimum = -1 # -1 means do not unite faces
10853 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
10854 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
10855 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
10856 self._autoPublish(anObj, theName, "removeExtraEdges")
10859 ## Performs union faces of \a theShape
10860 # Unite faces sharing one surface. It means that
10861 # these faces must have references to one C++ surface object (handle).
10862 # @param theShape The compound or single solid that contains faces
10863 # to perform union.
10864 # @param theName Object name; when specified, this parameter is used
10865 # for result publication in the study. Otherwise, if automatic
10866 # publication is switched on, default value is used for result name.
10868 # @return Improved shape.
10870 # @ref swig_UnionFaces "Example"
10871 def UnionFaces(self, theShape, theName=None):
10873 Performs union faces of theShape.
10874 Unite faces sharing one surface. It means that
10875 these faces must have references to one C++ surface object (handle).
10878 theShape The compound or single solid that contains faces
10880 theName Object name; when specified, this parameter is used
10881 for result publication in the study. Otherwise, if automatic
10882 publication is switched on, default value is used for result name.
10887 # Example: see GEOM_TestOthers.py
10888 anObj = self.BlocksOp.UnionFaces(theShape)
10889 RaiseIfFailed("UnionFaces", self.BlocksOp)
10890 self._autoPublish(anObj, theName, "unionFaces")
10893 ## Check, if the given shape is a blocks compound.
10894 # Fix all detected errors.
10895 # \note Single block can be also fixed by this method.
10896 # @param theShape The compound to check and improve.
10897 # @param theName Object name; when specified, this parameter is used
10898 # for result publication in the study. Otherwise, if automatic
10899 # publication is switched on, default value is used for result name.
10901 # @return Improved compound.
10903 # @ref swig_CheckAndImprove "Example"
10904 def CheckAndImprove(self, theShape, theName=None):
10906 Check, if the given shape is a blocks compound.
10907 Fix all detected errors.
10910 Single block can be also fixed by this method.
10913 theShape The compound to check and improve.
10914 theName Object name; when specified, this parameter is used
10915 for result publication in the study. Otherwise, if automatic
10916 publication is switched on, default value is used for result name.
10921 # Example: see GEOM_TestOthers.py
10922 anObj = self.BlocksOp.CheckAndImprove(theShape)
10923 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
10924 self._autoPublish(anObj, theName, "improved")
10927 # end of l4_blocks_measure
10930 ## @addtogroup l3_blocks_op
10933 ## Get all the blocks, contained in the given compound.
10934 # @param theCompound The compound to explode.
10935 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
10936 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
10937 # @param theName Object name; when specified, this parameter is used
10938 # for result publication in the study. Otherwise, if automatic
10939 # publication is switched on, default value is used for result name.
10941 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10943 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
10945 # @ref tui_explode_on_blocks "Example 1"
10946 # \n @ref swig_MakeBlockExplode "Example 2"
10947 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
10949 Get all the blocks, contained in the given compound.
10952 theCompound The compound to explode.
10953 theMinNbFaces If solid has lower number of faces, it is not a block.
10954 theMaxNbFaces If solid has higher number of faces, it is not a block.
10955 theName Object name; when specified, this parameter is used
10956 for result publication in the study. Otherwise, if automatic
10957 publication is switched on, default value is used for result name.
10960 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10963 List of GEOM.GEOM_Object, containing the retrieved blocks.
10965 # Example: see GEOM_TestOthers.py
10966 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
10967 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
10968 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
10969 for anObj in aList:
10970 anObj.SetParameters(Parameters)
10972 self._autoPublish(aList, theName, "block")
10975 ## Find block, containing the given point inside its volume or on boundary.
10976 # @param theCompound Compound, to find block in.
10977 # @param thePoint Point, close to the desired block. If the point lays on
10978 # boundary between some blocks, we return block with nearest center.
10979 # @param theName Object name; when specified, this parameter is used
10980 # for result publication in the study. Otherwise, if automatic
10981 # publication is switched on, default value is used for result name.
10983 # @return New GEOM.GEOM_Object, containing the found block.
10985 # @ref swig_todo "Example"
10986 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
10988 Find block, containing the given point inside its volume or on boundary.
10991 theCompound Compound, to find block in.
10992 thePoint Point, close to the desired block. If the point lays on
10993 boundary between some blocks, we return block with nearest center.
10994 theName Object name; when specified, this parameter is used
10995 for result publication in the study. Otherwise, if automatic
10996 publication is switched on, default value is used for result name.
10999 New GEOM.GEOM_Object, containing the found block.
11001 # Example: see GEOM_Spanner.py
11002 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
11003 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
11004 self._autoPublish(anObj, theName, "block")
11007 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
11008 # @param theCompound Compound, to find block in.
11009 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
11010 # @param theName Object name; when specified, this parameter is used
11011 # for result publication in the study. Otherwise, if automatic
11012 # publication is switched on, default value is used for result name.
11014 # @return New GEOM.GEOM_Object, containing the found block.
11016 # @ref swig_GetBlockByParts "Example"
11017 def GetBlockByParts(self, theCompound, theParts, theName=None):
11019 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
11022 theCompound Compound, to find block in.
11023 theParts List of faces and/or edges and/or vertices to be parts of the found block.
11024 theName Object name; when specified, this parameter is used
11025 for result publication in the study. Otherwise, if automatic
11026 publication is switched on, default value is used for result name.
11029 New GEOM_Object, containing the found block.
11031 # Example: see GEOM_TestOthers.py
11032 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
11033 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
11034 self._autoPublish(anObj, theName, "block")
11037 ## Return all blocks, containing all the elements, passed as the parts.
11038 # @param theCompound Compound, to find blocks in.
11039 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
11040 # @param theName Object name; when specified, this parameter is used
11041 # for result publication in the study. Otherwise, if automatic
11042 # publication is switched on, default value is used for result name.
11044 # @return List of GEOM.GEOM_Object, containing the found blocks.
11046 # @ref swig_todo "Example"
11047 def GetBlocksByParts(self, theCompound, theParts, theName=None):
11049 Return all blocks, containing all the elements, passed as the parts.
11052 theCompound Compound, to find blocks in.
11053 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
11054 theName Object name; when specified, this parameter is used
11055 for result publication in the study. Otherwise, if automatic
11056 publication is switched on, default value is used for result name.
11059 List of GEOM.GEOM_Object, containing the found blocks.
11061 # Example: see GEOM_Spanner.py
11062 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
11063 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
11064 self._autoPublish(aList, theName, "block")
11067 ## Multi-transformate block and glue the result.
11068 # Transformation is defined so, as to superpose direction faces.
11069 # @param Block Hexahedral solid to be multi-transformed.
11070 # @param DirFace1 ID of First direction face.
11071 # @param DirFace2 ID of Second direction face.
11072 # @param NbTimes Quantity of transformations to be done.
11073 # @param theName Object name; when specified, this parameter is used
11074 # for result publication in the study. Otherwise, if automatic
11075 # publication is switched on, default value is used for result name.
11077 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
11079 # @return New GEOM.GEOM_Object, containing the result shape.
11081 # @ref tui_multi_transformation "Example"
11082 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
11084 Multi-transformate block and glue the result.
11085 Transformation is defined so, as to superpose direction faces.
11088 Block Hexahedral solid to be multi-transformed.
11089 DirFace1 ID of First direction face.
11090 DirFace2 ID of Second direction face.
11091 NbTimes Quantity of transformations to be done.
11092 theName Object name; when specified, this parameter is used
11093 for result publication in the study. Otherwise, if automatic
11094 publication is switched on, default value is used for result name.
11097 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
11100 New GEOM.GEOM_Object, containing the result shape.
11102 # Example: see GEOM_Spanner.py
11103 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
11104 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
11105 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
11106 anObj.SetParameters(Parameters)
11107 self._autoPublish(anObj, theName, "transformed")
11110 ## Multi-transformate block and glue the result.
11111 # @param Block Hexahedral solid to be multi-transformed.
11112 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
11113 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
11114 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
11115 # @param theName Object name; when specified, this parameter is used
11116 # for result publication in the study. Otherwise, if automatic
11117 # publication is switched on, default value is used for result name.
11119 # @return New GEOM.GEOM_Object, containing the result shape.
11121 # @ref tui_multi_transformation "Example"
11122 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
11123 DirFace1V, DirFace2V, NbTimesV, theName=None):
11125 Multi-transformate block and glue the result.
11128 Block Hexahedral solid to be multi-transformed.
11129 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
11130 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
11131 NbTimesU,NbTimesV Quantity of transformations to be done.
11132 theName Object name; when specified, this parameter is used
11133 for result publication in the study. Otherwise, if automatic
11134 publication is switched on, default value is used for result name.
11137 New GEOM.GEOM_Object, containing the result shape.
11139 # Example: see GEOM_Spanner.py
11140 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
11141 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
11142 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
11143 DirFace1V, DirFace2V, NbTimesV)
11144 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
11145 anObj.SetParameters(Parameters)
11146 self._autoPublish(anObj, theName, "transformed")
11149 ## Build all possible propagation groups.
11150 # Propagation group is a set of all edges, opposite to one (main)
11151 # edge of this group directly or through other opposite edges.
11152 # Notion of Opposite Edge make sence only on quadrangle face.
11153 # @param theShape Shape to build propagation groups on.
11154 # @param theName Object name; when specified, this parameter is used
11155 # for result publication in the study. Otherwise, if automatic
11156 # publication is switched on, default value is used for result name.
11158 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
11160 # @ref swig_Propagate "Example"
11161 def Propagate(self, theShape, theName=None):
11163 Build all possible propagation groups.
11164 Propagation group is a set of all edges, opposite to one (main)
11165 edge of this group directly or through other opposite edges.
11166 Notion of Opposite Edge make sence only on quadrangle face.
11169 theShape Shape to build propagation groups on.
11170 theName Object name; when specified, this parameter is used
11171 for result publication in the study. Otherwise, if automatic
11172 publication is switched on, default value is used for result name.
11175 List of GEOM.GEOM_Object, each of them is a propagation group.
11177 # Example: see GEOM_TestOthers.py
11178 listChains = self.BlocksOp.Propagate(theShape)
11179 RaiseIfFailed("Propagate", self.BlocksOp)
11180 self._autoPublish(listChains, theName, "propagate")
11183 # end of l3_blocks_op
11186 ## @addtogroup l3_groups
11189 ## Creates a new group which will store sub-shapes of theMainShape
11190 # @param theMainShape is a GEOM object on which the group is selected
11191 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
11192 # @param theName Object name; when specified, this parameter is used
11193 # for result publication in the study. Otherwise, if automatic
11194 # publication is switched on, default value is used for result name.
11196 # @return a newly created GEOM group (GEOM.GEOM_Object)
11198 # @ref tui_working_with_groups_page "Example 1"
11199 # \n @ref swig_CreateGroup "Example 2"
11200 def CreateGroup(self, theMainShape, theShapeType, theName=None):
11202 Creates a new group which will store sub-shapes of theMainShape
11205 theMainShape is a GEOM object on which the group is selected
11206 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
11207 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
11208 theName Object name; when specified, this parameter is used
11209 for result publication in the study. Otherwise, if automatic
11210 publication is switched on, default value is used for result name.
11213 a newly created GEOM group
11216 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
11219 # Example: see GEOM_TestOthers.py
11220 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
11221 RaiseIfFailed("CreateGroup", self.GroupOp)
11222 self._autoPublish(anObj, theName, "group")
11225 ## Adds a sub-object with ID theSubShapeId to the group
11226 # @param theGroup is a GEOM group to which the new sub-shape is added
11227 # @param theSubShapeID is a sub-shape ID in the main object.
11228 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11230 # @ref tui_working_with_groups_page "Example"
11231 def AddObject(self,theGroup, theSubShapeID):
11233 Adds a sub-object with ID theSubShapeId to the group
11236 theGroup is a GEOM group to which the new sub-shape is added
11237 theSubShapeID is a sub-shape ID in the main object.
11240 Use method GetSubShapeID() to get an unique ID of the sub-shape
11242 # Example: see GEOM_TestOthers.py
11243 self.GroupOp.AddObject(theGroup, theSubShapeID)
11244 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
11245 RaiseIfFailed("AddObject", self.GroupOp)
11249 ## Removes a sub-object with ID \a theSubShapeId from the group
11250 # @param theGroup is a GEOM group from which the new sub-shape is removed
11251 # @param theSubShapeID is a sub-shape ID in the main object.
11252 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11254 # @ref tui_working_with_groups_page "Example"
11255 def RemoveObject(self,theGroup, theSubShapeID):
11257 Removes a sub-object with ID theSubShapeId from the group
11260 theGroup is a GEOM group from which the new sub-shape is removed
11261 theSubShapeID is a sub-shape ID in the main object.
11264 Use method GetSubShapeID() to get an unique ID of the sub-shape
11266 # Example: see GEOM_TestOthers.py
11267 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
11268 RaiseIfFailed("RemoveObject", self.GroupOp)
11271 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11272 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11273 # @param theSubShapes is a list of sub-shapes to be added.
11275 # @ref tui_working_with_groups_page "Example"
11276 def UnionList (self,theGroup, theSubShapes):
11278 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11281 theGroup is a GEOM group to which the new sub-shapes are added.
11282 theSubShapes is a list of sub-shapes to be added.
11284 # Example: see GEOM_TestOthers.py
11285 self.GroupOp.UnionList(theGroup, theSubShapes)
11286 RaiseIfFailed("UnionList", self.GroupOp)
11289 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11290 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11291 # @param theSubShapes is a list of indices of sub-shapes to be added.
11293 # @ref swig_UnionIDs "Example"
11294 def UnionIDs(self,theGroup, theSubShapes):
11296 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11299 theGroup is a GEOM group to which the new sub-shapes are added.
11300 theSubShapes is a list of indices of sub-shapes to be added.
11302 # Example: see GEOM_TestOthers.py
11303 self.GroupOp.UnionIDs(theGroup, theSubShapes)
11304 RaiseIfFailed("UnionIDs", self.GroupOp)
11307 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11308 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11309 # @param theSubShapes is a list of sub-shapes to be removed.
11311 # @ref tui_working_with_groups_page "Example"
11312 def DifferenceList (self,theGroup, theSubShapes):
11314 Removes from the group all the given shapes. No errors, if some shapes are not included.
11317 theGroup is a GEOM group from which the sub-shapes are removed.
11318 theSubShapes is a list of sub-shapes to be removed.
11320 # Example: see GEOM_TestOthers.py
11321 self.GroupOp.DifferenceList(theGroup, theSubShapes)
11322 RaiseIfFailed("DifferenceList", self.GroupOp)
11325 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11326 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11327 # @param theSubShapes is a list of indices of sub-shapes to be removed.
11329 # @ref swig_DifferenceIDs "Example"
11330 def DifferenceIDs(self,theGroup, theSubShapes):
11332 Removes from the group all the given shapes. No errors, if some shapes are not included.
11335 theGroup is a GEOM group from which the sub-shapes are removed.
11336 theSubShapes is a list of indices of sub-shapes to be removed.
11338 # Example: see GEOM_TestOthers.py
11339 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
11340 RaiseIfFailed("DifferenceIDs", self.GroupOp)
11343 ## Union of two groups.
11344 # New group is created. It will contain all entities
11345 # which are present in groups theGroup1 and theGroup2.
11346 # @param theGroup1, theGroup2 are the initial GEOM groups
11347 # to create the united group from.
11348 # @param theName Object name; when specified, this parameter is used
11349 # for result publication in the study. Otherwise, if automatic
11350 # publication is switched on, default value is used for result name.
11352 # @return a newly created GEOM group.
11354 # @ref tui_union_groups_anchor "Example"
11355 def UnionGroups (self, theGroup1, theGroup2, theName=None):
11357 Union of two groups.
11358 New group is created. It will contain all entities
11359 which are present in groups theGroup1 and theGroup2.
11362 theGroup1, theGroup2 are the initial GEOM groups
11363 to create the united group from.
11364 theName Object name; when specified, this parameter is used
11365 for result publication in the study. Otherwise, if automatic
11366 publication is switched on, default value is used for result name.
11369 a newly created GEOM group.
11371 # Example: see GEOM_TestOthers.py
11372 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
11373 RaiseIfFailed("UnionGroups", self.GroupOp)
11374 self._autoPublish(aGroup, theName, "group")
11377 ## Intersection of two groups.
11378 # New group is created. It will contain only those entities
11379 # which are present in both groups theGroup1 and theGroup2.
11380 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11381 # @param theName Object name; when specified, this parameter is used
11382 # for result publication in the study. Otherwise, if automatic
11383 # publication is switched on, default value is used for result name.
11385 # @return a newly created GEOM group.
11387 # @ref tui_intersect_groups_anchor "Example"
11388 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
11390 Intersection of two groups.
11391 New group is created. It will contain only those entities
11392 which are present in both groups theGroup1 and theGroup2.
11395 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11396 theName Object name; when specified, this parameter is used
11397 for result publication in the study. Otherwise, if automatic
11398 publication is switched on, default value is used for result name.
11401 a newly created GEOM group.
11403 # Example: see GEOM_TestOthers.py
11404 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
11405 RaiseIfFailed("IntersectGroups", self.GroupOp)
11406 self._autoPublish(aGroup, theName, "group")
11409 ## Cut of two groups.
11410 # New group is created. It will contain entities which are
11411 # present in group theGroup1 but are not present in group theGroup2.
11412 # @param theGroup1 is a GEOM group to include elements of.
11413 # @param theGroup2 is a GEOM group to exclude elements of.
11414 # @param theName Object name; when specified, this parameter is used
11415 # for result publication in the study. Otherwise, if automatic
11416 # publication is switched on, default value is used for result name.
11418 # @return a newly created GEOM group.
11420 # @ref tui_cut_groups_anchor "Example"
11421 def CutGroups (self, theGroup1, theGroup2, theName=None):
11424 New group is created. It will contain entities which are
11425 present in group theGroup1 but are not present in group theGroup2.
11428 theGroup1 is a GEOM group to include elements of.
11429 theGroup2 is a GEOM group to exclude elements of.
11430 theName Object name; when specified, this parameter is used
11431 for result publication in the study. Otherwise, if automatic
11432 publication is switched on, default value is used for result name.
11435 a newly created GEOM group.
11437 # Example: see GEOM_TestOthers.py
11438 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
11439 RaiseIfFailed("CutGroups", self.GroupOp)
11440 self._autoPublish(aGroup, theName, "group")
11443 ## Union of list of groups.
11444 # New group is created. It will contain all entities that are
11445 # present in groups listed in theGList.
11446 # @param theGList is a list of GEOM groups to create the united group from.
11447 # @param theName Object name; when specified, this parameter is used
11448 # for result publication in the study. Otherwise, if automatic
11449 # publication is switched on, default value is used for result name.
11451 # @return a newly created GEOM group.
11453 # @ref tui_union_groups_anchor "Example"
11454 def UnionListOfGroups (self, theGList, theName=None):
11456 Union of list of groups.
11457 New group is created. It will contain all entities that are
11458 present in groups listed in theGList.
11461 theGList is a list of GEOM groups to create the united group from.
11462 theName Object name; when specified, this parameter is used
11463 for result publication in the study. Otherwise, if automatic
11464 publication is switched on, default value is used for result name.
11467 a newly created GEOM group.
11469 # Example: see GEOM_TestOthers.py
11470 aGroup = self.GroupOp.UnionListOfGroups(theGList)
11471 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
11472 self._autoPublish(aGroup, theName, "group")
11475 ## Cut of lists of groups.
11476 # New group is created. It will contain only entities
11477 # which are present in groups listed in theGList.
11478 # @param theGList is a list of GEOM groups to include elements of.
11479 # @param theName Object name; when specified, this parameter is used
11480 # for result publication in the study. Otherwise, if automatic
11481 # publication is switched on, default value is used for result name.
11483 # @return a newly created GEOM group.
11485 # @ref tui_intersect_groups_anchor "Example"
11486 def IntersectListOfGroups (self, theGList, theName=None):
11488 Cut of lists of groups.
11489 New group is created. It will contain only entities
11490 which are present in groups listed in theGList.
11493 theGList is a list of GEOM groups to include elements of.
11494 theName Object name; when specified, this parameter is used
11495 for result publication in the study. Otherwise, if automatic
11496 publication is switched on, default value is used for result name.
11499 a newly created GEOM group.
11501 # Example: see GEOM_TestOthers.py
11502 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
11503 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
11504 self._autoPublish(aGroup, theName, "group")
11507 ## Cut of lists of groups.
11508 # New group is created. It will contain only entities
11509 # which are present in groups listed in theGList1 but
11510 # are not present in groups from theGList2.
11511 # @param theGList1 is a list of GEOM groups to include elements of.
11512 # @param theGList2 is a list of GEOM groups to exclude elements of.
11513 # @param theName Object name; when specified, this parameter is used
11514 # for result publication in the study. Otherwise, if automatic
11515 # publication is switched on, default value is used for result name.
11517 # @return a newly created GEOM group.
11519 # @ref tui_cut_groups_anchor "Example"
11520 def CutListOfGroups (self, theGList1, theGList2, theName=None):
11522 Cut of lists of groups.
11523 New group is created. It will contain only entities
11524 which are present in groups listed in theGList1 but
11525 are not present in groups from theGList2.
11528 theGList1 is a list of GEOM groups to include elements of.
11529 theGList2 is a list of GEOM groups to exclude elements of.
11530 theName Object name; when specified, this parameter is used
11531 for result publication in the study. Otherwise, if automatic
11532 publication is switched on, default value is used for result name.
11535 a newly created GEOM group.
11537 # Example: see GEOM_TestOthers.py
11538 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
11539 RaiseIfFailed("CutListOfGroups", self.GroupOp)
11540 self._autoPublish(aGroup, theName, "group")
11543 ## Returns a list of sub-objects ID stored in the group
11544 # @param theGroup is a GEOM group for which a list of IDs is requested
11546 # @ref swig_GetObjectIDs "Example"
11547 def GetObjectIDs(self,theGroup):
11549 Returns a list of sub-objects ID stored in the group
11552 theGroup is a GEOM group for which a list of IDs is requested
11554 # Example: see GEOM_TestOthers.py
11555 ListIDs = self.GroupOp.GetObjects(theGroup)
11556 RaiseIfFailed("GetObjects", self.GroupOp)
11559 ## Returns a type of sub-objects stored in the group
11560 # @param theGroup is a GEOM group which type is returned.
11562 # @ref swig_GetType "Example"
11563 def GetType(self,theGroup):
11565 Returns a type of sub-objects stored in the group
11568 theGroup is a GEOM group which type is returned.
11570 # Example: see GEOM_TestOthers.py
11571 aType = self.GroupOp.GetType(theGroup)
11572 RaiseIfFailed("GetType", self.GroupOp)
11575 ## Convert a type of geom object from id to string value
11576 # @param theId is a GEOM obect type id.
11577 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11578 # @ref swig_GetType "Example"
11579 def ShapeIdToType(self, theId):
11581 Convert a type of geom object from id to string value
11584 theId is a GEOM obect type id.
11587 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11614 return "REVOLUTION"
11662 return "FREE_BOUNDS"
11670 return "THRUSECTIONS"
11672 return "COMPOUNDFILTER"
11674 return "SHAPES_ON_SHAPE"
11676 return "ELLIPSE_ARC"
11678 return "3DSKETCHER"
11684 return "PIPETSHAPE"
11685 return "Shape Id not exist."
11687 ## Returns a main shape associated with the group
11688 # @param theGroup is a GEOM group for which a main shape object is requested
11689 # @return a GEOM object which is a main shape for theGroup
11691 # @ref swig_GetMainShape "Example"
11692 def GetMainShape(self,theGroup):
11694 Returns a main shape associated with the group
11697 theGroup is a GEOM group for which a main shape object is requested
11700 a GEOM object which is a main shape for theGroup
11702 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
11704 # Example: see GEOM_TestOthers.py
11705 anObj = self.GroupOp.GetMainShape(theGroup)
11706 RaiseIfFailed("GetMainShape", self.GroupOp)
11709 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
11710 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11711 # @param theShape given shape (see GEOM.GEOM_Object)
11712 # @param min_length minimum length of edges of theShape
11713 # @param max_length maximum length of edges of theShape
11714 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11715 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11716 # @param theName Object name; when specified, this parameter is used
11717 # for result publication in the study. Otherwise, if automatic
11718 # publication is switched on, default value is used for result name.
11720 # @return a newly created GEOM group of edges
11722 # @@ref swig_todo "Example"
11723 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
11725 Create group of edges of theShape, whose length is in range [min_length, max_length].
11726 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11729 theShape given shape
11730 min_length minimum length of edges of theShape
11731 max_length maximum length of edges of theShape
11732 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11733 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11734 theName Object name; when specified, this parameter is used
11735 for result publication in the study. Otherwise, if automatic
11736 publication is switched on, default value is used for result name.
11739 a newly created GEOM group of edges.
11741 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
11742 edges_in_range = []
11744 Props = self.BasicProperties(edge)
11745 if min_length <= Props[0] and Props[0] <= max_length:
11746 if (not include_min) and (min_length == Props[0]):
11749 if (not include_max) and (Props[0] == max_length):
11752 edges_in_range.append(edge)
11754 if len(edges_in_range) <= 0:
11755 print "No edges found by given criteria"
11758 # note: auto-publishing is done in self.CreateGroup()
11759 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
11760 self.UnionList(group_edges, edges_in_range)
11764 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
11765 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11766 # @param min_length minimum length of edges of selected shape
11767 # @param max_length maximum length of edges of selected shape
11768 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11769 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11770 # @return a newly created GEOM group of edges
11771 # @ref swig_todo "Example"
11772 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
11774 Create group of edges of selected shape, whose length is in range [min_length, max_length].
11775 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11778 min_length minimum length of edges of selected shape
11779 max_length maximum length of edges of selected shape
11780 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11781 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11784 a newly created GEOM group of edges.
11786 nb_selected = sg.SelectedCount()
11787 if nb_selected < 1:
11788 print "Select a shape before calling this function, please."
11790 if nb_selected > 1:
11791 print "Only one shape must be selected"
11794 id_shape = sg.getSelected(0)
11795 shape = IDToObject( id_shape )
11797 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
11801 if include_min: left_str = " <= "
11802 if include_max: right_str = " <= "
11804 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
11805 + left_str + "length" + right_str + `max_length`)
11807 sg.updateObjBrowser(1)
11814 ## @addtogroup l4_advanced
11817 ## Create a T-shape object with specified caracteristics for the main
11818 # and the incident pipes (radius, width, half-length).
11819 # The extremities of the main pipe are located on junctions points P1 and P2.
11820 # The extremity of the incident pipe is located on junction point P3.
11821 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11822 # the main plane of the T-shape is XOY.
11824 # @param theR1 Internal radius of main pipe
11825 # @param theW1 Width of main pipe
11826 # @param theL1 Half-length of main pipe
11827 # @param theR2 Internal radius of incident pipe (R2 < R1)
11828 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11829 # @param theL2 Half-length of incident pipe
11831 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11832 # @param theP1 1st junction point of main pipe
11833 # @param theP2 2nd junction point of main pipe
11834 # @param theP3 Junction point of incident pipe
11836 # @param theRL Internal radius of left thickness reduction
11837 # @param theWL Width of left thickness reduction
11838 # @param theLtransL Length of left transition part
11839 # @param theLthinL Length of left thin part
11841 # @param theRR Internal radius of right thickness reduction
11842 # @param theWR Width of right thickness reduction
11843 # @param theLtransR Length of right transition part
11844 # @param theLthinR Length of right thin part
11846 # @param theRI Internal radius of incident thickness reduction
11847 # @param theWI Width of incident thickness reduction
11848 # @param theLtransI Length of incident transition part
11849 # @param theLthinI Length of incident thin part
11851 # @param theName Object name; when specified, this parameter is used
11852 # for result publication in the study. Otherwise, if automatic
11853 # publication is switched on, default value is used for result name.
11855 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11857 # @ref tui_creation_pipetshape "Example"
11858 def MakePipeTShape (self, theR1, theW1, theL1, theR2, theW2, theL2,
11859 theHexMesh=True, theP1=None, theP2=None, theP3=None,
11860 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11861 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11862 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11865 Create a T-shape object with specified caracteristics for the main
11866 and the incident pipes (radius, width, half-length).
11867 The extremities of the main pipe are located on junctions points P1 and P2.
11868 The extremity of the incident pipe is located on junction point P3.
11869 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11870 the main plane of the T-shape is XOY.
11873 theR1 Internal radius of main pipe
11874 theW1 Width of main pipe
11875 theL1 Half-length of main pipe
11876 theR2 Internal radius of incident pipe (R2 < R1)
11877 theW2 Width of incident pipe (R2+W2 < R1+W1)
11878 theL2 Half-length of incident pipe
11879 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11880 theP1 1st junction point of main pipe
11881 theP2 2nd junction point of main pipe
11882 theP3 Junction point of incident pipe
11884 theRL Internal radius of left thickness reduction
11885 theWL Width of left thickness reduction
11886 theLtransL Length of left transition part
11887 theLthinL Length of left thin part
11889 theRR Internal radius of right thickness reduction
11890 theWR Width of right thickness reduction
11891 theLtransR Length of right transition part
11892 theLthinR Length of right thin part
11894 theRI Internal radius of incident thickness reduction
11895 theWI Width of incident thickness reduction
11896 theLtransI Length of incident transition part
11897 theLthinI Length of incident thin part
11899 theName Object name; when specified, this parameter is used
11900 for result publication in the study. Otherwise, if automatic
11901 publication is switched on, default value is used for result name.
11904 List of GEOM_Object, containing the created shape and propagation groups.
11907 # create PipeTShape object
11908 pipetshape = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0)
11909 # create PipeTShape object with position
11910 pipetshape_position = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, True, P1, P2, P3)
11911 # create PipeTShape object with left thickness reduction
11912 pipetshape_thr = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
11914 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)
11915 if (theP1 and theP2 and theP3):
11916 anObj = self.AdvOp.MakePipeTShapeTRWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
11917 theRL, theWL, theLtransL, theLthinL,
11918 theRR, theWR, theLtransR, theLthinR,
11919 theRI, theWI, theLtransI, theLthinI,
11920 theHexMesh, theP1, theP2, theP3)
11922 anObj = self.AdvOp.MakePipeTShapeTR(theR1, theW1, theL1, theR2, theW2, theL2,
11923 theRL, theWL, theLtransL, theLthinL,
11924 theRR, theWR, theLtransR, theLthinR,
11925 theRI, theWI, theLtransI, theLthinI,
11927 RaiseIfFailed("MakePipeTShape", self.AdvOp)
11928 if Parameters: anObj[0].SetParameters(Parameters)
11929 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
11930 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
11933 ## Create a T-shape object with chamfer and with specified caracteristics for the main
11934 # and the incident pipes (radius, width, half-length). The chamfer is
11935 # created on the junction of the pipes.
11936 # The extremities of the main pipe are located on junctions points P1 and P2.
11937 # The extremity of the incident pipe is located on junction point P3.
11938 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11939 # the main plane of the T-shape is XOY.
11940 # @param theR1 Internal radius of main pipe
11941 # @param theW1 Width of main pipe
11942 # @param theL1 Half-length of main pipe
11943 # @param theR2 Internal radius of incident pipe (R2 < R1)
11944 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11945 # @param theL2 Half-length of incident pipe
11946 # @param theH Height of the chamfer.
11947 # @param theW Width of the chamfer.
11948 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11949 # @param theP1 1st junction point of main pipe
11950 # @param theP2 2nd junction point of main pipe
11951 # @param theP3 Junction point of incident pipe
11953 # @param theRL Internal radius of left thickness reduction
11954 # @param theWL Width of left thickness reduction
11955 # @param theLtransL Length of left transition part
11956 # @param theLthinL Length of left thin part
11958 # @param theRR Internal radius of right thickness reduction
11959 # @param theWR Width of right thickness reduction
11960 # @param theLtransR Length of right transition part
11961 # @param theLthinR Length of right thin part
11963 # @param theRI Internal radius of incident thickness reduction
11964 # @param theWI Width of incident thickness reduction
11965 # @param theLtransI Length of incident transition part
11966 # @param theLthinI Length of incident thin part
11968 # @param theName Object name; when specified, this parameter is used
11969 # for result publication in the study. Otherwise, if automatic
11970 # publication is switched on, default value is used for result name.
11972 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11974 # @ref tui_creation_pipetshape "Example"
11975 def MakePipeTShapeChamfer (self, theR1, theW1, theL1, theR2, theW2, theL2,
11976 theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None,
11977 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11978 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11979 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11982 Create a T-shape object with chamfer and with specified caracteristics for the main
11983 and the incident pipes (radius, width, half-length). The chamfer is
11984 created on the junction of the pipes.
11985 The extremities of the main pipe are located on junctions points P1 and P2.
11986 The extremity of the incident pipe is located on junction point P3.
11987 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11988 the main plane of the T-shape is XOY.
11991 theR1 Internal radius of main pipe
11992 theW1 Width of main pipe
11993 theL1 Half-length of main pipe
11994 theR2 Internal radius of incident pipe (R2 < R1)
11995 theW2 Width of incident pipe (R2+W2 < R1+W1)
11996 theL2 Half-length of incident pipe
11997 theH Height of the chamfer.
11998 theW Width of the chamfer.
11999 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12000 theP1 1st junction point of main pipe
12001 theP2 2nd junction point of main pipe
12002 theP3 Junction point of incident pipe
12004 theRL Internal radius of left thickness reduction
12005 theWL Width of left thickness reduction
12006 theLtransL Length of left transition part
12007 theLthinL Length of left thin part
12009 theRR Internal radius of right thickness reduction
12010 theWR Width of right thickness reduction
12011 theLtransR Length of right transition part
12012 theLthinR Length of right thin part
12014 theRI Internal radius of incident thickness reduction
12015 theWI Width of incident thickness reduction
12016 theLtransI Length of incident transition part
12017 theLthinI Length of incident thin part
12019 theName Object name; when specified, this parameter is used
12020 for result publication in the study. Otherwise, if automatic
12021 publication is switched on, default value is used for result name.
12024 List of GEOM_Object, containing the created shape and propagation groups.
12027 # create PipeTShape with chamfer object
12028 pipetshapechamfer = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0)
12029 # create PipeTShape with chamfer object with position
12030 pipetshapechamfer_position = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, True, P1, P2, P3)
12031 # create PipeTShape with chamfer object with left thickness reduction
12032 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)
12034 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)
12035 if (theP1 and theP2 and theP3):
12036 anObj = self.AdvOp.MakePipeTShapeTRChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
12037 theRL, theWL, theLtransL, theLthinL,
12038 theRR, theWR, theLtransR, theLthinR,
12039 theRI, theWI, theLtransI, theLthinI,
12040 theH, theW, theHexMesh, theP1, theP2, theP3)
12042 anObj = self.AdvOp.MakePipeTShapeTRChamfer(theR1, theW1, theL1, theR2, theW2, theL2,
12043 theRL, theWL, theLtransL, theLthinL,
12044 theRR, theWR, theLtransR, theLthinR,
12045 theRI, theWI, theLtransI, theLthinI,
12046 theH, theW, theHexMesh)
12047 RaiseIfFailed("MakePipeTShapeChamfer", self.AdvOp)
12048 if Parameters: anObj[0].SetParameters(Parameters)
12049 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
12050 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
12053 ## Create a T-shape object with fillet and with specified caracteristics for the main
12054 # and the incident pipes (radius, width, half-length). The fillet is
12055 # created on the junction of the pipes.
12056 # The extremities of the main pipe are located on junctions points P1 and P2.
12057 # The extremity of the incident pipe is located on junction point P3.
12058 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
12059 # the main plane of the T-shape is XOY.
12060 # @param theR1 Internal radius of main pipe
12061 # @param theW1 Width of main pipe
12062 # @param theL1 Half-length of main pipe
12063 # @param theR2 Internal radius of incident pipe (R2 < R1)
12064 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
12065 # @param theL2 Half-length of incident pipe
12066 # @param theRF Radius of curvature of fillet.
12067 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12068 # @param theP1 1st junction point of main pipe
12069 # @param theP2 2nd junction point of main pipe
12070 # @param theP3 Junction point of incident pipe
12072 # @param theRL Internal radius of left thickness reduction
12073 # @param theWL Width of left thickness reduction
12074 # @param theLtransL Length of left transition part
12075 # @param theLthinL Length of left thin part
12077 # @param theRR Internal radius of right thickness reduction
12078 # @param theWR Width of right thickness reduction
12079 # @param theLtransR Length of right transition part
12080 # @param theLthinR Length of right thin part
12082 # @param theRI Internal radius of incident thickness reduction
12083 # @param theWI Width of incident thickness reduction
12084 # @param theLtransI Length of incident transition part
12085 # @param theLthinI Length of incident thin part
12087 # @param theName Object name; when specified, this parameter is used
12088 # for result publication in the study. Otherwise, if automatic
12089 # publication is switched on, default value is used for result name.
12091 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
12093 # @ref tui_creation_pipetshape "Example"
12094 def MakePipeTShapeFillet (self, theR1, theW1, theL1, theR2, theW2, theL2,
12095 theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None,
12096 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
12097 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
12098 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
12101 Create a T-shape object with fillet and with specified caracteristics for the main
12102 and the incident pipes (radius, width, half-length). The fillet is
12103 created on the junction of the pipes.
12104 The extremities of the main pipe are located on junctions points P1 and P2.
12105 The extremity of the incident pipe is located on junction point P3.
12108 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
12109 the main plane of the T-shape is XOY.
12110 theR1 Internal radius of main pipe
12111 theW1 Width of main pipe
12112 heL1 Half-length of main pipe
12113 theR2 Internal radius of incident pipe (R2 < R1)
12114 theW2 Width of incident pipe (R2+W2 < R1+W1)
12115 theL2 Half-length of incident pipe
12116 theRF Radius of curvature of fillet.
12117 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12118 theP1 1st junction point of main pipe
12119 theP2 2nd junction point of main pipe
12120 theP3 Junction point of incident pipe
12122 theRL Internal radius of left thickness reduction
12123 theWL Width of left thickness reduction
12124 theLtransL Length of left transition part
12125 theLthinL Length of left thin part
12127 theRR Internal radius of right thickness reduction
12128 theWR Width of right thickness reduction
12129 theLtransR Length of right transition part
12130 theLthinR Length of right thin part
12132 theRI Internal radius of incident thickness reduction
12133 theWI Width of incident thickness reduction
12134 theLtransI Length of incident transition part
12135 theLthinI Length of incident thin part
12137 theName Object name; when specified, this parameter is used
12138 for result publication in the study. Otherwise, if automatic
12139 publication is switched on, default value is used for result name.
12142 List of GEOM_Object, containing the created shape and propagation groups.
12145 # create PipeTShape with fillet object
12146 pipetshapefillet = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0)
12147 # create PipeTShape with fillet object with position
12148 pipetshapefillet_position = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, True, P1, P2, P3)
12149 # create PipeTShape with fillet object with left thickness reduction
12150 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)
12152 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)
12153 if (theP1 and theP2 and theP3):
12154 anObj = self.AdvOp.MakePipeTShapeTRFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
12155 theRL, theWL, theLtransL, theLthinL,
12156 theRR, theWR, theLtransR, theLthinR,
12157 theRI, theWI, theLtransI, theLthinI,
12158 theRF, theHexMesh, theP1, theP2, theP3)
12160 anObj = self.AdvOp.MakePipeTShapeTRFillet(theR1, theW1, theL1, theR2, theW2, theL2,
12161 theRL, theWL, theLtransL, theLthinL,
12162 theRR, theWR, theLtransR, theLthinR,
12163 theRI, theWI, theLtransI, theLthinI,
12165 RaiseIfFailed("MakePipeTShapeFillet", self.AdvOp)
12166 if Parameters: anObj[0].SetParameters(Parameters)
12167 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
12168 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
12171 ## This function allows creating a disk already divided into blocks. It
12172 # can be used to create divided pipes for later meshing in hexaedra.
12173 # @param theR Radius of the disk
12174 # @param theOrientation Orientation of the plane on which the disk will be built
12175 # 1 = XOY, 2 = OYZ, 3 = OZX
12176 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12177 # @param theName Object name; when specified, this parameter is used
12178 # for result publication in the study. Otherwise, if automatic
12179 # publication is switched on, default value is used for result name.
12181 # @return New GEOM_Object, containing the created shape.
12183 # @ref tui_creation_divideddisk "Example"
12184 def MakeDividedDisk(self, theR, theOrientation, thePattern, theName=None):
12186 Creates a disk, divided into blocks. It can be used to create divided pipes
12187 for later meshing in hexaedra.
12190 theR Radius of the disk
12191 theOrientation Orientation of the plane on which the disk will be built:
12192 1 = XOY, 2 = OYZ, 3 = OZX
12193 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12194 theName Object name; when specified, this parameter is used
12195 for result publication in the study. Otherwise, if automatic
12196 publication is switched on, default value is used for result name.
12199 New GEOM_Object, containing the created shape.
12201 theR, Parameters = ParseParameters(theR)
12202 anObj = self.AdvOp.MakeDividedDisk(theR, 67.0, theOrientation, thePattern)
12203 RaiseIfFailed("MakeDividedDisk", self.AdvOp)
12204 if Parameters: anObj.SetParameters(Parameters)
12205 self._autoPublish(anObj, theName, "dividedDisk")
12208 ## This function allows creating a disk already divided into blocks. It
12209 # can be used to create divided pipes for later meshing in hexaedra.
12210 # @param theCenter Center of the disk
12211 # @param theVector Normal vector to the plane of the created disk
12212 # @param theRadius Radius of the disk
12213 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12214 # @param theName Object name; when specified, this parameter is used
12215 # for result publication in the study. Otherwise, if automatic
12216 # publication is switched on, default value is used for result name.
12218 # @return New GEOM_Object, containing the created shape.
12220 # @ref tui_creation_divideddisk "Example"
12221 def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern, theName=None):
12223 Creates a disk already divided into blocks. It can be used to create divided pipes
12224 for later meshing in hexaedra.
12227 theCenter Center of the disk
12228 theVector Normal vector to the plane of the created disk
12229 theRadius Radius of the disk
12230 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12231 theName Object name; when specified, this parameter is used
12232 for result publication in the study. Otherwise, if automatic
12233 publication is switched on, default value is used for result name.
12236 New GEOM_Object, containing the created shape.
12238 theRadius, Parameters = ParseParameters(theRadius)
12239 anObj = self.AdvOp.MakeDividedDiskPntVecR(theCenter, theVector, theRadius, 67.0, thePattern)
12240 RaiseIfFailed("MakeDividedDiskPntVecR", self.AdvOp)
12241 if Parameters: anObj.SetParameters(Parameters)
12242 self._autoPublish(anObj, theName, "dividedDisk")
12245 ## Builds a cylinder prepared for hexa meshes
12246 # @param theR Radius of the cylinder
12247 # @param theH Height of the cylinder
12248 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12249 # @param theName Object name; when specified, this parameter is used
12250 # for result publication in the study. Otherwise, if automatic
12251 # publication is switched on, default value is used for result name.
12253 # @return New GEOM_Object, containing the created shape.
12255 # @ref tui_creation_dividedcylinder "Example"
12256 def MakeDividedCylinder(self, theR, theH, thePattern, theName=None):
12258 Builds a cylinder prepared for hexa meshes
12261 theR Radius of the cylinder
12262 theH Height of the cylinder
12263 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12264 theName Object name; when specified, this parameter is used
12265 for result publication in the study. Otherwise, if automatic
12266 publication is switched on, default value is used for result name.
12269 New GEOM_Object, containing the created shape.
12271 theR, theH, Parameters = ParseParameters(theR, theH)
12272 anObj = self.AdvOp.MakeDividedCylinder(theR, theH, thePattern)
12273 RaiseIfFailed("MakeDividedCylinder", self.AdvOp)
12274 if Parameters: anObj.SetParameters(Parameters)
12275 self._autoPublish(anObj, theName, "dividedCylinder")
12278 ## Create a surface from a cloud of points
12279 # @param thelPoints list of points
12280 # @return New GEOM_Object, containing the created shape.
12282 # @ref tui_creation_smoothingsurface "Example"
12283 def MakeSmoothingSurface(self, thelPoints):
12284 anObj = self.AdvOp.MakeSmoothingSurface(thelPoints)
12285 RaiseIfFailed("MakeSmoothingSurface", self.AdvOp)
12288 ## Export a shape to XAO format
12289 # @param shape The shape to export
12290 # @param groups The list of groups to export
12291 # @param fields The list of fields to export
12292 # @param author The author of the export
12293 # @param fileName The name of the file to export
12296 # @ref tui_exportxao "Example"
12297 def ExportXAO(self, shape, groups, fields, author, fileName):
12298 res = self.InsertOp.ExportXAO(shape, groups, fields, author, fileName)
12299 RaiseIfFailed("ExportXAO", self.InsertOp)
12302 ## Import a shape from XAO format
12303 # @param shape Shape to export
12304 # @param fileName The name of the file to import
12305 # @return tuple (res, shape, subShapes, groups, fields)
12306 # res Flag indicating if the import was successful
12307 # shape The imported shape
12308 # subShapes The list of imported subShapes
12309 # groups The list of imported groups
12310 # fields The list of imported fields
12312 # @ref tui_importxao "Example"
12313 def ImportXAO(self, fileName):
12314 res = self.InsertOp.ImportXAO(fileName)
12315 RaiseIfFailed("ImportXAO", self.InsertOp)
12318 #@@ insert new functions before this line @@ do not remove this line @@#
12320 # end of l4_advanced
12323 ## Create a copy of the given object
12325 # @param theOriginal geometry object for copy
12326 # @param theName Object name; when specified, this parameter is used
12327 # for result publication in the study. Otherwise, if automatic
12328 # publication is switched on, default value is used for result name.
12330 # @return New GEOM_Object, containing the copied shape.
12332 # @ingroup l1_geomBuilder_auxiliary
12333 # @ref swig_MakeCopy "Example"
12334 def MakeCopy(self, theOriginal, theName=None):
12336 Create a copy of the given object
12339 theOriginal geometry object for copy
12340 theName Object name; when specified, this parameter is used
12341 for result publication in the study. Otherwise, if automatic
12342 publication is switched on, default value is used for result name.
12345 New GEOM_Object, containing the copied shape.
12347 Example of usage: Copy = geompy.MakeCopy(Box)
12349 # Example: see GEOM_TestAll.py
12350 anObj = self.InsertOp.MakeCopy(theOriginal)
12351 RaiseIfFailed("MakeCopy", self.InsertOp)
12352 self._autoPublish(anObj, theName, "copy")
12355 ## Add Path to load python scripts from
12356 # @param Path a path to load python scripts from
12357 # @ingroup l1_geomBuilder_auxiliary
12358 def addPath(self,Path):
12360 Add Path to load python scripts from
12363 Path a path to load python scripts from
12365 if (sys.path.count(Path) < 1):
12366 sys.path.append(Path)
12370 ## Load marker texture from the file
12371 # @param Path a path to the texture file
12372 # @return unique texture identifier
12373 # @ingroup l1_geomBuilder_auxiliary
12374 def LoadTexture(self, Path):
12376 Load marker texture from the file
12379 Path a path to the texture file
12382 unique texture identifier
12384 # Example: see GEOM_TestAll.py
12385 ID = self.InsertOp.LoadTexture(Path)
12386 RaiseIfFailed("LoadTexture", self.InsertOp)
12389 ## Get internal name of the object based on its study entry
12390 # @note This method does not provide an unique identifier of the geometry object.
12391 # @note This is internal function of GEOM component, though it can be used outside it for
12392 # appropriate reason (e.g. for identification of geometry object).
12393 # @param obj geometry object
12394 # @return unique object identifier
12395 # @ingroup l1_geomBuilder_auxiliary
12396 def getObjectID(self, obj):
12398 Get internal name of the object based on its study entry.
12399 Note: this method does not provide an unique identifier of the geometry object.
12400 It is an internal function of GEOM component, though it can be used outside GEOM for
12401 appropriate reason (e.g. for identification of geometry object).
12404 obj geometry object
12407 unique object identifier
12410 entry = salome.ObjectToID(obj)
12411 if entry is not None:
12412 lst = entry.split(":")
12414 ID = lst[-1] # -1 means last item in the list
12415 return "GEOM_" + ID
12420 ## Add marker texture. @a Width and @a Height parameters
12421 # specify width and height of the texture in pixels.
12422 # If @a RowData is @c True, @a Texture parameter should represent texture data
12423 # packed into the byte array. If @a RowData is @c False (default), @a Texture
12424 # parameter should be unpacked string, in which '1' symbols represent opaque
12425 # pixels and '0' represent transparent pixels of the texture bitmap.
12427 # @param Width texture width in pixels
12428 # @param Height texture height in pixels
12429 # @param Texture texture data
12430 # @param RowData if @c True, @a Texture data are packed in the byte stream
12431 # @return unique texture identifier
12432 # @ingroup l1_geomBuilder_auxiliary
12433 def AddTexture(self, Width, Height, Texture, RowData=False):
12435 Add marker texture. Width and Height parameters
12436 specify width and height of the texture in pixels.
12437 If RowData is True, Texture parameter should represent texture data
12438 packed into the byte array. If RowData is False (default), Texture
12439 parameter should be unpacked string, in which '1' symbols represent opaque
12440 pixels and '0' represent transparent pixels of the texture bitmap.
12443 Width texture width in pixels
12444 Height texture height in pixels
12445 Texture texture data
12446 RowData if True, Texture data are packed in the byte stream
12449 return unique texture identifier
12451 if not RowData: Texture = PackData(Texture)
12452 ID = self.InsertOp.AddTexture(Width, Height, Texture)
12453 RaiseIfFailed("AddTexture", self.InsertOp)
12456 ## Creates a new folder object. It is a container for any GEOM objects.
12457 # @param Name name of the container
12458 # @param Father parent object. If None,
12459 # folder under 'Geometry' root object will be created.
12460 # @return a new created folder
12461 def NewFolder(self, Name, Father=None):
12463 Create a new folder object. It is an auxiliary container for any GEOM objects.
12466 Name name of the container
12467 Father parent object. If None,
12468 folder under 'Geometry' root object will be created.
12471 a new created folder
12473 if not Father: Father = self.father
12474 return self.CreateFolder(Name, Father)
12476 ## Move object to the specified folder
12477 # @param Object object to move
12478 # @param Folder target folder
12479 def PutToFolder(self, Object, Folder):
12481 Move object to the specified folder
12484 Object object to move
12485 Folder target folder
12487 self.MoveToFolder(Object, Folder)
12490 ## Move list of objects to the specified folder
12491 # @param ListOfSO list of objects to move
12492 # @param Folder target folder
12493 def PutListToFolder(self, ListOfSO, Folder):
12495 Move list of objects to the specified folder
12498 ListOfSO list of objects to move
12499 Folder target folder
12501 self.MoveListToFolder(ListOfSO, Folder)
12504 ## @addtogroup l2_field
12508 # @param shape the shape the field lies on
12509 # @param name the field name
12510 # @param type type of field data: 0 - bool, 1 - int, 2 - double, 3 - string
12511 # @param dimension dimension of the shape the field lies on
12512 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
12513 # @param componentNames names of components
12514 # @return a created field
12515 def CreateField(self, shape, name, type, dimension, componentNames):
12520 shape the shape the field lies on
12521 name the field name
12522 type type of field data
12523 dimension dimension of the shape the field lies on
12524 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
12525 componentNames names of components
12530 if isinstance( type, int ):
12531 if type < 0 or type > 3:
12532 raise RuntimeError, "CreateField : Error: data type must be within [0-3] range"
12533 type = [GEOM.FDT_Bool,GEOM.FDT_Int,GEOM.FDT_Double,GEOM.FDT_String][type]
12535 f = self.FieldOp.CreateField( shape, name, type, dimension, componentNames)
12536 RaiseIfFailed("CreateField", self.FieldOp)
12538 geom._autoPublish( f, "", name)
12541 ## Removes a field from the GEOM component
12542 # @param field the field to remove
12543 def RemoveField(self, field):
12544 "Removes a field from the GEOM component"
12546 if isinstance( field, GEOM._objref_GEOM_Field ):
12547 geom.RemoveObject( field )
12548 elif isinstance( field, geomField ):
12549 geom.RemoveObject( field.field )
12551 raise RuntimeError, "RemoveField() : the object is not a field"
12554 ## Returns number of fields on a shape
12555 def CountFields(self, shape):
12556 "Returns number of fields on a shape"
12557 nb = self.FieldOp.CountFields( shape )
12558 RaiseIfFailed("CountFields", self.FieldOp)
12561 ## Returns all fields on a shape
12562 def GetFields(self, shape):
12563 "Returns all fields on a shape"
12564 ff = self.FieldOp.GetFields( shape )
12565 RaiseIfFailed("GetFields", self.FieldOp)
12568 ## Returns a field on a shape by its name
12569 def GetField(self, shape, name):
12570 "Returns a field on a shape by its name"
12571 f = self.FieldOp.GetField( shape, name )
12572 RaiseIfFailed("GetField", self.FieldOp)
12580 # Register the new proxy for GEOM_Gen
12581 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
12584 ## Field on Geometry
12585 # @ingroup l2_field
12586 class geomField( GEOM._objref_GEOM_Field ):
12588 def __init__(self):
12589 GEOM._objref_GEOM_Field.__init__(self)
12590 self.field = GEOM._objref_GEOM_Field
12593 ## Returns the shape the field lies on
12594 def getShape(self):
12595 "Returns the shape the field lies on"
12596 return self.field.GetShape(self)
12598 ## Returns the field name
12600 "Returns the field name"
12601 return self.field.GetName(self)
12603 ## Returns type of field data as integer [0-3]
12605 "Returns type of field data"
12606 return self.field.GetDataType(self)._v
12608 ## Returns type of field data:
12609 # one of GEOM.FDT_Bool, GEOM.FDT_Int, GEOM.FDT_Double, GEOM.FDT_String
12610 def getTypeEnum(self):
12611 "Returns type of field data"
12612 return self.field.GetDataType(self)
12614 ## Returns dimension of the shape the field lies on:
12615 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
12616 def getDimension(self):
12617 """Returns dimension of the shape the field lies on:
12618 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape"""
12619 return self.field.GetDimension(self)
12621 ## Returns names of components
12622 def getComponents(self):
12623 "Returns names of components"
12624 return self.field.GetComponents(self)
12626 ## Adds a time step to the field
12627 # @param step the time step number futher used as the step identifier
12628 # @param stamp the time step time
12629 # @param values the values of the time step
12630 def addStep(self, step, stamp, values):
12631 "Adds a time step to the field"
12632 stp = self.field.AddStep( self, step, stamp )
12634 raise RuntimeError, \
12635 "Field.addStep() : Error: step %s already exists in this field"%step
12637 geom._autoPublish( stp, "", "Step %s, %s"%(step,stamp))
12638 self.setValues( step, values )
12641 ## Remove a time step from the field
12642 def removeStep(self,step):
12643 "Remove a time step from the field"
12646 stepObj = self.field.GetStep( self, step )
12648 stepSO = geom.myStudy.FindObjectID( stepObj.GetStudyEntry() )
12651 #traceback.print_exc()
12653 self.field.RemoveStep( self, step )
12655 geom.myBuilder.RemoveObjectWithChildren( stepSO )
12658 ## Returns number of time steps in the field
12659 def countSteps(self):
12660 "Returns number of time steps in the field"
12661 return self.field.CountSteps(self)
12663 ## Returns a list of time step IDs in the field
12664 def getSteps(self):
12665 "Returns a list of time step IDs in the field"
12666 return self.field.GetSteps(self)
12668 ## Returns a time step by its ID
12669 def getStep(self,step):
12670 "Returns a time step by its ID"
12671 stp = self.field.GetStep(self, step)
12673 raise RuntimeError, "Step %s is missing from this field"%step
12676 ## Returns the time of the field step
12677 def getStamp(self,step):
12678 "Returns the time of the field step"
12679 return self.getStep(step).GetStamp()
12681 ## Changes the time of the field step
12682 def setStamp(self, step, stamp):
12683 "Changes the time of the field step"
12684 return self.getStep(step).SetStamp(stamp)
12686 ## Returns values of the field step
12687 def getValues(self, step):
12688 "Returns values of the field step"
12689 return self.getStep(step).GetValues()
12691 ## Changes values of the field step
12692 def setValues(self, step, values):
12693 "Changes values of the field step"
12694 stp = self.getStep(step)
12695 errBeg = "Field.setValues(values) : Error: "
12697 ok = stp.SetValues( values )
12698 except Exception, e:
12700 if excStr.find("WrongPythonType") > 0:
12701 raise RuntimeError, errBeg +\
12702 "wrong type of values, %s values are expected"%str(self.getTypeEnum())[4:]
12703 raise RuntimeError, errBeg + str(e)
12705 nbOK = self.field.GetArraySize(self)
12708 raise RuntimeError, errBeg + "len(values) must be %s but not %s"%(nbOK,nbKO)
12710 raise RuntimeError, errBeg + "failed"
12713 pass # end of class geomField
12715 # Register the new proxy for GEOM_Field
12716 omniORB.registerObjref(GEOM._objref_GEOM_Field._NP_RepositoryId, geomField)
12719 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
12720 # interface to GEOM operations.
12725 # salome.salome_init()
12726 # from salome.geom import geomBuilder
12727 # geompy = geomBuilder.New(salome.myStudy)
12729 # @param study SALOME study, generally obtained by salome.myStudy.
12730 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12731 # @return geomBuilder instance
12732 def New( study, instance=None):
12734 Create a new geomBuilder instance.The geomBuilder class provides the Python
12735 interface to GEOM operations.
12739 salome.salome_init()
12740 from salome.geom import geomBuilder
12741 geompy = geomBuilder.New(salome.myStudy)
12744 study SALOME study, generally obtained by salome.myStudy.
12745 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12747 geomBuilder instance
12749 #print "New geomBuilder ", study, instance
12756 geom = geomBuilder()
12757 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
12758 geom.init_geom(study)