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 checkSelfInte The flag that tells if the arguments should
6605 # be checked for self-intersection prior to the operation.
6606 # @param theName Object name; when specified, this parameter is used
6607 # for result publication in the study. Otherwise, if automatic
6608 # publication is switched on, default value is used for result name.
6610 # @return New GEOM.GEOM_Object, containing the result shape.
6612 # @ref tui_fuse "Example"
6613 def MakeBoolean(self, theShape1, theShape2, theOperation, checkSelfInte=False, theName=None):
6615 Perform one of boolean operations on two given shapes.
6618 theShape1 First argument for boolean operation.
6619 theShape2 Second argument for boolean operation.
6620 theOperation Indicates the operation to be done:
6621 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
6622 checkSelfInte The flag that tells if the arguments should
6623 be checked for self-intersection prior to
6625 theName Object name; when specified, this parameter is used
6626 for result publication in the study. Otherwise, if automatic
6627 publication is switched on, default value is used for result name.
6630 New GEOM.GEOM_Object, containing the result shape.
6632 # Example: see GEOM_TestAll.py
6633 anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation, checkSelfInte)
6634 RaiseIfFailed("MakeBoolean", self.BoolOp)
6635 def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
6636 self._autoPublish(anObj, theName, def_names[theOperation])
6639 ## Perform Common boolean operation on two given shapes.
6640 # @param theShape1 First argument for boolean operation.
6641 # @param theShape2 Second argument for boolean operation.
6642 # @param checkSelfInte The flag that tells if the arguments should
6643 # be checked for self-intersection prior to the operation.
6644 # @param theName Object name; when specified, this parameter is used
6645 # for result publication in the study. Otherwise, if automatic
6646 # publication is switched on, default value is used for result name.
6648 # @return New GEOM.GEOM_Object, containing the result shape.
6650 # @ref tui_common "Example 1"
6651 # \n @ref swig_MakeCommon "Example 2"
6652 def MakeCommon(self, theShape1, theShape2, checkSelfInte=False, theName=None):
6654 Perform Common boolean operation on two given shapes.
6657 theShape1 First argument for boolean operation.
6658 theShape2 Second argument for boolean operation.
6659 checkSelfInte The flag that tells if the arguments should
6660 be checked for self-intersection prior to
6662 theName Object name; when specified, this parameter is used
6663 for result publication in the study. Otherwise, if automatic
6664 publication is switched on, default value is used for result name.
6667 New GEOM.GEOM_Object, containing the result shape.
6669 # Example: see GEOM_TestOthers.py
6670 # note: auto-publishing is done in self.MakeBoolean()
6671 return self.MakeBoolean(theShape1, theShape2, 1, checkSelfInte, theName)
6673 ## Perform Cut boolean operation on two given shapes.
6674 # @param theShape1 First argument for boolean operation.
6675 # @param theShape2 Second argument for boolean operation.
6676 # @param checkSelfInte The flag that tells if the arguments should
6677 # be checked for self-intersection prior to the operation.
6678 # @param theName Object name; when specified, this parameter is used
6679 # for result publication in the study. Otherwise, if automatic
6680 # publication is switched on, default value is used for result name.
6682 # @return New GEOM.GEOM_Object, containing the result shape.
6684 # @ref tui_cut "Example 1"
6685 # \n @ref swig_MakeCommon "Example 2"
6686 def MakeCut(self, theShape1, theShape2, checkSelfInte=False, theName=None):
6688 Perform Cut boolean operation on two given shapes.
6691 theShape1 First argument for boolean operation.
6692 theShape2 Second argument for boolean operation.
6693 checkSelfInte The flag that tells if the arguments should
6694 be checked for self-intersection prior to
6696 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.
6701 New GEOM.GEOM_Object, containing the result shape.
6704 # Example: see GEOM_TestOthers.py
6705 # note: auto-publishing is done in self.MakeBoolean()
6706 return self.MakeBoolean(theShape1, theShape2, 2, checkSelfInte, theName)
6708 ## Perform Fuse boolean operation on two given shapes.
6709 # @param theShape1 First argument for boolean operation.
6710 # @param theShape2 Second argument for boolean operation.
6711 # @param checkSelfInte The flag that tells if the arguments should
6712 # be checked for self-intersection prior to the operation.
6713 # @param theName Object name; when specified, this parameter is used
6714 # for result publication in the study. Otherwise, if automatic
6715 # publication is switched on, default value is used for result name.
6717 # @return New GEOM.GEOM_Object, containing the result shape.
6719 # @ref tui_fuse "Example 1"
6720 # \n @ref swig_MakeCommon "Example 2"
6721 def MakeFuse(self, theShape1, theShape2, checkSelfInte=False, theName=None):
6723 Perform Fuse boolean operation on two given shapes.
6726 theShape1 First argument for boolean operation.
6727 theShape2 Second argument for boolean operation.
6728 checkSelfInte The flag that tells if the arguments should
6729 be checked for self-intersection prior to
6731 theName Object name; when specified, this parameter is used
6732 for result publication in the study. Otherwise, if automatic
6733 publication is switched on, default value is used for result name.
6736 New GEOM.GEOM_Object, containing the result shape.
6739 # Example: see GEOM_TestOthers.py
6740 # note: auto-publishing is done in self.MakeBoolean()
6741 return self.MakeBoolean(theShape1, theShape2, 3, checkSelfInte, theName)
6743 ## Perform Section boolean operation on two given shapes.
6744 # @param theShape1 First argument for boolean operation.
6745 # @param theShape2 Second argument for boolean operation.
6746 # @param checkSelfInte The flag that tells if the arguments should
6747 # be checked for self-intersection prior to the operation.
6748 # @param theName Object name; when specified, this parameter is used
6749 # for result publication in the study. Otherwise, if automatic
6750 # publication is switched on, default value is used for result name.
6752 # @return New GEOM.GEOM_Object, containing the result shape.
6754 # @ref tui_section "Example 1"
6755 # \n @ref swig_MakeCommon "Example 2"
6756 def MakeSection(self, theShape1, theShape2, checkSelfInte=False, theName=None):
6758 Perform Section boolean operation on two given shapes.
6761 theShape1 First argument for boolean operation.
6762 theShape2 Second argument for boolean operation.
6763 checkSelfInte The flag that tells if the arguments should
6764 be checked for self-intersection prior to
6766 theName Object name; when specified, this parameter is used
6767 for result publication in the study. Otherwise, if automatic
6768 publication is switched on, default value is used for result name.
6771 New GEOM.GEOM_Object, containing the result shape.
6774 # Example: see GEOM_TestOthers.py
6775 # note: auto-publishing is done in self.MakeBoolean()
6776 return self.MakeBoolean(theShape1, theShape2, 4, checkSelfInte, theName)
6778 ## Perform Fuse boolean operation on the list of shapes.
6779 # @param theShapesList Shapes to be fused.
6780 # @param checkSelfInte The flag that tells if the arguments should
6781 # be checked for self-intersection prior to the operation.
6782 # @param theName Object name; when specified, this parameter is used
6783 # for result publication in the study. Otherwise, if automatic
6784 # publication is switched on, default value is used for result name.
6786 # @return New GEOM.GEOM_Object, containing the result shape.
6788 # @ref tui_fuse "Example 1"
6789 # \n @ref swig_MakeCommon "Example 2"
6790 def MakeFuseList(self, theShapesList, checkSelfInte=False, theName=None):
6792 Perform Fuse boolean operation on the list of shapes.
6795 theShapesList Shapes to be fused.
6796 checkSelfInte The flag that tells if the arguments should
6797 be checked for self-intersection prior to
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.MakeFuseList(theShapesList, checkSelfInte)
6809 RaiseIfFailed("MakeFuseList", self.BoolOp)
6810 self._autoPublish(anObj, theName, "fuse")
6813 ## Perform Common boolean operation on the list of shapes.
6814 # @param theShapesList Shapes for Common operation.
6815 # @param checkSelfInte The flag that tells if the arguments should
6816 # be checked for self-intersection prior to the operation.
6817 # @param theName Object name; when specified, this parameter is used
6818 # for result publication in the study. Otherwise, if automatic
6819 # publication is switched on, default value is used for result name.
6821 # @return New GEOM.GEOM_Object, containing the result shape.
6823 # @ref tui_common "Example 1"
6824 # \n @ref swig_MakeCommon "Example 2"
6825 def MakeCommonList(self, theShapesList, checkSelfInte=False, theName=None):
6827 Perform Common boolean operation on the list of shapes.
6830 theShapesList Shapes for Common operation.
6831 checkSelfInte The flag that tells if the arguments should
6832 be checked for self-intersection prior to
6834 theName Object name; when specified, this parameter is used
6835 for result publication in the study. Otherwise, if automatic
6836 publication is switched on, default value is used for result name.
6839 New GEOM.GEOM_Object, containing the result shape.
6842 # Example: see GEOM_TestOthers.py
6843 anObj = self.BoolOp.MakeCommonList(theShapesList, checkSelfInte)
6844 RaiseIfFailed("MakeCommonList", self.BoolOp)
6845 self._autoPublish(anObj, theName, "common")
6848 ## Perform Cut boolean operation on one object and the list of tools.
6849 # @param theMainShape The object of the operation.
6850 # @param theShapesList The list of tools of the operation.
6851 # @param checkSelfInte The flag that tells if the arguments should
6852 # be checked for self-intersection prior to the operation.
6853 # @param theName Object name; when specified, this parameter is used
6854 # for result publication in the study. Otherwise, if automatic
6855 # publication is switched on, default value is used for result name.
6857 # @return New GEOM.GEOM_Object, containing the result shape.
6859 # @ref tui_cut "Example 1"
6860 # \n @ref swig_MakeCommon "Example 2"
6861 def MakeCutList(self, theMainShape, theShapesList, checkSelfInte=False, theName=None):
6863 Perform Cut boolean operation on one object and the list of tools.
6866 theMainShape The object of the operation.
6867 theShapesList The list of tools of the operation.
6868 checkSelfInte The flag that tells if the arguments should
6869 be checked for self-intersection prior to
6871 theName Object name; when specified, this parameter is used
6872 for result publication in the study. Otherwise, if automatic
6873 publication is switched on, default value is used for result name.
6876 New GEOM.GEOM_Object, containing the result shape.
6879 # Example: see GEOM_TestOthers.py
6880 anObj = self.BoolOp.MakeCutList(theMainShape, theShapesList, checkSelfInte)
6881 RaiseIfFailed("MakeCutList", self.BoolOp)
6882 self._autoPublish(anObj, theName, "cut")
6888 ## @addtogroup l3_basic_op
6891 ## Perform partition operation.
6892 # @param ListShapes Shapes to be intersected.
6893 # @param ListTools Shapes to intersect theShapes.
6894 # @param Limit Type of resulting shapes (see ShapeType()).\n
6895 # If this parameter is set to -1 ("Auto"), most appropriate shape limit
6896 # type will be detected automatically.
6897 # @param KeepNonlimitShapes if this parameter == 0, then only shapes of
6898 # target type (equal to Limit) are kept in the result,
6899 # else standalone shapes of lower dimension
6900 # are kept also (if they exist).
6901 # @param theName Object name; when specified, this parameter is used
6902 # for result publication in the study. Otherwise, if automatic
6903 # publication is switched on, default value is used for result name.
6905 # @note Each compound from ListShapes and ListTools will be exploded
6906 # in order to avoid possible intersection between shapes from this compound.
6908 # After implementation new version of PartitionAlgo (October 2006)
6909 # other parameters are ignored by current functionality. They are kept
6910 # in this function only for support old versions.
6911 # @param ListKeepInside Shapes, outside which the results will be deleted.
6912 # Each shape from theKeepInside must belong to theShapes also.
6913 # @param ListRemoveInside Shapes, inside which the results will be deleted.
6914 # Each shape from theRemoveInside must belong to theShapes also.
6915 # @param RemoveWebs If TRUE, perform Glue 3D algorithm.
6916 # @param ListMaterials Material indices for each shape. Make sence,
6917 # only if theRemoveWebs is TRUE.
6919 # @return New GEOM.GEOM_Object, containing the result shapes.
6921 # @ref tui_partition "Example"
6922 def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
6923 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
6924 KeepNonlimitShapes=0, theName=None):
6926 Perform partition operation.
6929 ListShapes Shapes to be intersected.
6930 ListTools Shapes to intersect theShapes.
6931 Limit Type of resulting shapes (see geompy.ShapeType)
6932 If this parameter is set to -1 ("Auto"), most appropriate shape limit
6933 type will be detected automatically.
6934 KeepNonlimitShapes if this parameter == 0, then only shapes of
6935 target type (equal to Limit) are kept in the result,
6936 else standalone shapes of lower dimension
6937 are kept also (if they exist).
6938 theName Object name; when specified, this parameter is used
6939 for result publication in the study. Otherwise, if automatic
6940 publication is switched on, default value is used for result name.
6942 Each compound from ListShapes and ListTools will be exploded
6943 in order to avoid possible intersection between shapes from
6946 After implementation new version of PartitionAlgo (October 2006) other
6947 parameters are ignored by current functionality. They are kept in this
6948 function only for support old versions.
6951 ListKeepInside Shapes, outside which the results will be deleted.
6952 Each shape from theKeepInside must belong to theShapes also.
6953 ListRemoveInside Shapes, inside which the results will be deleted.
6954 Each shape from theRemoveInside must belong to theShapes also.
6955 RemoveWebs If TRUE, perform Glue 3D algorithm.
6956 ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
6959 New GEOM.GEOM_Object, containing the result shapes.
6961 # Example: see GEOM_TestAll.py
6962 if Limit == self.ShapeType["AUTO"]:
6963 # automatic detection of the most appropriate shape limit type
6965 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
6966 Limit = EnumToLong(lim)
6968 anObj = self.BoolOp.MakePartition(ListShapes, ListTools,
6969 ListKeepInside, ListRemoveInside,
6970 Limit, RemoveWebs, ListMaterials,
6971 KeepNonlimitShapes);
6972 RaiseIfFailed("MakePartition", self.BoolOp)
6973 self._autoPublish(anObj, theName, "partition")
6976 ## Perform partition operation.
6977 # This method may be useful if it is needed to make a partition for
6978 # compound contains nonintersected shapes. Performance will be better
6979 # since intersection between shapes from compound is not performed.
6981 # Description of all parameters as in previous method MakePartition()
6983 # @note Passed compounds (via ListShapes or via ListTools)
6984 # have to consist of nonintersecting shapes.
6986 # @return New GEOM.GEOM_Object, containing the result shapes.
6988 # @ref swig_todo "Example"
6989 def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
6990 ListKeepInside=[], ListRemoveInside=[],
6991 Limit=ShapeType["AUTO"], RemoveWebs=0,
6992 ListMaterials=[], KeepNonlimitShapes=0,
6995 Perform partition operation.
6996 This method may be useful if it is needed to make a partition for
6997 compound contains nonintersected shapes. Performance will be better
6998 since intersection between shapes from compound is not performed.
7001 Description of all parameters as in method geompy.MakePartition
7004 Passed compounds (via ListShapes or via ListTools)
7005 have to consist of nonintersecting shapes.
7008 New GEOM.GEOM_Object, containing the result shapes.
7010 if Limit == self.ShapeType["AUTO"]:
7011 # automatic detection of the most appropriate shape limit type
7013 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
7014 Limit = EnumToLong(lim)
7016 anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
7017 ListKeepInside, ListRemoveInside,
7018 Limit, RemoveWebs, ListMaterials,
7019 KeepNonlimitShapes);
7020 RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
7021 self._autoPublish(anObj, theName, "partition")
7024 ## See method MakePartition() for more information.
7026 # @ref tui_partition "Example 1"
7027 # \n @ref swig_Partition "Example 2"
7028 def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
7029 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
7030 KeepNonlimitShapes=0, theName=None):
7032 See method geompy.MakePartition for more information.
7034 # Example: see GEOM_TestOthers.py
7035 # note: auto-publishing is done in self.MakePartition()
7036 anObj = self.MakePartition(ListShapes, ListTools,
7037 ListKeepInside, ListRemoveInside,
7038 Limit, RemoveWebs, ListMaterials,
7039 KeepNonlimitShapes, theName);
7042 ## Perform partition of the Shape with the Plane
7043 # @param theShape Shape to be intersected.
7044 # @param thePlane Tool shape, to intersect theShape.
7045 # @param theName Object name; when specified, this parameter is used
7046 # for result publication in the study. Otherwise, if automatic
7047 # publication is switched on, default value is used for result name.
7049 # @return New GEOM.GEOM_Object, containing the result shape.
7051 # @ref tui_partition "Example"
7052 def MakeHalfPartition(self, theShape, thePlane, theName=None):
7054 Perform partition of the Shape with the Plane
7057 theShape Shape to be intersected.
7058 thePlane Tool shape, to intersect theShape.
7059 theName Object name; when specified, this parameter is used
7060 for result publication in the study. Otherwise, if automatic
7061 publication is switched on, default value is used for result name.
7064 New GEOM.GEOM_Object, containing the result shape.
7066 # Example: see GEOM_TestAll.py
7067 anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
7068 RaiseIfFailed("MakeHalfPartition", self.BoolOp)
7069 self._autoPublish(anObj, theName, "partition")
7072 # end of l3_basic_op
7075 ## @addtogroup l3_transform
7078 ## Translate the given object along the vector, specified
7079 # by its end points.
7080 # @param theObject The object to be translated.
7081 # @param thePoint1 Start point of translation vector.
7082 # @param thePoint2 End point of translation vector.
7083 # @param theCopy Flag used to translate object itself or create a copy.
7084 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7085 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7086 def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
7088 Translate the given object along the vector, specified by its end points.
7091 theObject The object to be translated.
7092 thePoint1 Start point of translation vector.
7093 thePoint2 End point of translation vector.
7094 theCopy Flag used to translate object itself or create a copy.
7097 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7098 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7101 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
7103 anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
7104 RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
7107 ## Translate the given object along the vector, specified
7108 # by its end points, creating its copy before the translation.
7109 # @param theObject The object to be translated.
7110 # @param thePoint1 Start point of translation vector.
7111 # @param thePoint2 End point of translation vector.
7112 # @param theName Object name; when specified, this parameter is used
7113 # for result publication in the study. Otherwise, if automatic
7114 # publication is switched on, default value is used for result name.
7116 # @return New GEOM.GEOM_Object, containing the translated object.
7118 # @ref tui_translation "Example 1"
7119 # \n @ref swig_MakeTranslationTwoPoints "Example 2"
7120 def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
7122 Translate the given object along the vector, specified
7123 by its end points, creating its copy before the translation.
7126 theObject The object to be translated.
7127 thePoint1 Start point of translation vector.
7128 thePoint2 End point of translation vector.
7129 theName Object name; when specified, this parameter is used
7130 for result publication in the study. Otherwise, if automatic
7131 publication is switched on, default value is used for result name.
7134 New GEOM.GEOM_Object, containing the translated object.
7136 # Example: see GEOM_TestAll.py
7137 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
7138 RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
7139 self._autoPublish(anObj, theName, "translated")
7142 ## Translate the given object along the vector, specified by its components.
7143 # @param theObject The object to be translated.
7144 # @param theDX,theDY,theDZ Components of translation vector.
7145 # @param theCopy Flag used to translate object itself or create a copy.
7146 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7147 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7149 # @ref tui_translation "Example"
7150 def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
7152 Translate the given object along the vector, specified by its components.
7155 theObject The object to be translated.
7156 theDX,theDY,theDZ Components of translation vector.
7157 theCopy Flag used to translate object itself or create a copy.
7160 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7161 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7163 # Example: see GEOM_TestAll.py
7164 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
7166 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
7168 anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
7169 anObj.SetParameters(Parameters)
7170 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
7173 ## Translate the given object along the vector, specified
7174 # by its components, creating its copy before the translation.
7175 # @param theObject The object to be translated.
7176 # @param theDX,theDY,theDZ Components of translation vector.
7177 # @param theName Object name; when specified, this parameter is used
7178 # for result publication in the study. Otherwise, if automatic
7179 # publication is switched on, default value is used for result name.
7181 # @return New GEOM.GEOM_Object, containing the translated object.
7183 # @ref tui_translation "Example"
7184 def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
7186 Translate the given object along the vector, specified
7187 by its components, creating its copy before the translation.
7190 theObject The object to be translated.
7191 theDX,theDY,theDZ Components of translation vector.
7192 theName Object name; when specified, this parameter is used
7193 for result publication in the study. Otherwise, if automatic
7194 publication is switched on, default value is used for result name.
7197 New GEOM.GEOM_Object, containing the translated object.
7199 # Example: see GEOM_TestAll.py
7200 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
7201 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
7202 anObj.SetParameters(Parameters)
7203 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
7204 self._autoPublish(anObj, theName, "translated")
7207 ## Translate the given object along the given vector.
7208 # @param theObject The object to be translated.
7209 # @param theVector The translation vector.
7210 # @param theCopy Flag used to translate object itself or create a copy.
7211 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7212 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7213 def TranslateVector(self, theObject, theVector, theCopy=False):
7215 Translate the given object along the given vector.
7218 theObject The object to be translated.
7219 theVector The translation vector.
7220 theCopy Flag used to translate object itself or create a copy.
7223 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7224 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7227 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
7229 anObj = self.TrsfOp.TranslateVector(theObject, theVector)
7230 RaiseIfFailed("TranslateVector", self.TrsfOp)
7233 ## Translate the given object along the given vector,
7234 # creating its copy before the translation.
7235 # @param theObject The object to be translated.
7236 # @param theVector The translation vector.
7237 # @param theName Object name; when specified, this parameter is used
7238 # for result publication in the study. Otherwise, if automatic
7239 # publication is switched on, default value is used for result name.
7241 # @return New GEOM.GEOM_Object, containing the translated object.
7243 # @ref tui_translation "Example"
7244 def MakeTranslationVector(self, theObject, theVector, theName=None):
7246 Translate the given object along the given vector,
7247 creating its copy before the translation.
7250 theObject The object to be translated.
7251 theVector The translation vector.
7252 theName Object name; when specified, this parameter is used
7253 for result publication in the study. Otherwise, if automatic
7254 publication is switched on, default value is used for result name.
7257 New GEOM.GEOM_Object, containing the translated object.
7259 # Example: see GEOM_TestAll.py
7260 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
7261 RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
7262 self._autoPublish(anObj, theName, "translated")
7265 ## Translate the given object along the given vector on given distance.
7266 # @param theObject The object to be translated.
7267 # @param theVector The translation vector.
7268 # @param theDistance The translation distance.
7269 # @param theCopy Flag used to translate object itself or create a copy.
7270 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7271 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
7273 # @ref tui_translation "Example"
7274 def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
7276 Translate the given object along the given vector on given distance.
7279 theObject The object to be translated.
7280 theVector The translation vector.
7281 theDistance The translation distance.
7282 theCopy Flag used to translate object itself or create a copy.
7285 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7286 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
7288 # Example: see GEOM_TestAll.py
7289 theDistance,Parameters = ParseParameters(theDistance)
7290 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy)
7291 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
7292 anObj.SetParameters(Parameters)
7295 ## Translate the given object along the given vector on given distance,
7296 # creating its copy before the translation.
7297 # @param theObject The object to be translated.
7298 # @param theVector The translation vector.
7299 # @param theDistance The translation distance.
7300 # @param theName Object name; when specified, this parameter is used
7301 # for result publication in the study. Otherwise, if automatic
7302 # publication is switched on, default value is used for result name.
7304 # @return New GEOM.GEOM_Object, containing the translated object.
7306 # @ref tui_translation "Example"
7307 def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
7309 Translate the given object along the given vector on given distance,
7310 creating its copy before the translation.
7313 theObject The object to be translated.
7314 theVector The translation vector.
7315 theDistance The translation distance.
7316 theName Object name; when specified, this parameter is used
7317 for result publication in the study. Otherwise, if automatic
7318 publication is switched on, default value is used for result name.
7321 New GEOM.GEOM_Object, containing the translated object.
7323 # Example: see GEOM_TestAll.py
7324 theDistance,Parameters = ParseParameters(theDistance)
7325 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
7326 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
7327 anObj.SetParameters(Parameters)
7328 self._autoPublish(anObj, theName, "translated")
7331 ## Rotate the given object around the given axis on the given angle.
7332 # @param theObject The object to be rotated.
7333 # @param theAxis Rotation axis.
7334 # @param theAngle Rotation angle in radians.
7335 # @param theCopy Flag used to rotate object itself or create a copy.
7337 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7338 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
7340 # @ref tui_rotation "Example"
7341 def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
7343 Rotate the given object around the given axis on the given angle.
7346 theObject The object to be rotated.
7347 theAxis Rotation axis.
7348 theAngle Rotation angle in radians.
7349 theCopy Flag used to rotate object itself or create a copy.
7352 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7353 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
7355 # Example: see GEOM_TestAll.py
7357 if isinstance(theAngle,str):
7359 theAngle, Parameters = ParseParameters(theAngle)
7361 theAngle = theAngle*math.pi/180.0
7363 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
7365 anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
7366 RaiseIfFailed("Rotate", self.TrsfOp)
7367 anObj.SetParameters(Parameters)
7370 ## Rotate the given object around the given axis
7371 # on the given angle, creating its copy before the rotatation.
7372 # @param theObject The object to be rotated.
7373 # @param theAxis Rotation axis.
7374 # @param theAngle Rotation angle in radians.
7375 # @param theName Object name; when specified, this parameter is used
7376 # for result publication in the study. Otherwise, if automatic
7377 # publication is switched on, default value is used for result name.
7379 # @return New GEOM.GEOM_Object, containing the rotated object.
7381 # @ref tui_rotation "Example"
7382 def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
7384 Rotate the given object around the given axis
7385 on the given angle, creating its copy before the rotatation.
7388 theObject The object to be rotated.
7389 theAxis Rotation axis.
7390 theAngle Rotation angle in radians.
7391 theName Object name; when specified, this parameter is used
7392 for result publication in the study. Otherwise, if automatic
7393 publication is switched on, default value is used for result name.
7396 New GEOM.GEOM_Object, containing the rotated object.
7398 # Example: see GEOM_TestAll.py
7400 if isinstance(theAngle,str):
7402 theAngle, Parameters = ParseParameters(theAngle)
7404 theAngle = theAngle*math.pi/180.0
7405 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
7406 RaiseIfFailed("RotateCopy", self.TrsfOp)
7407 anObj.SetParameters(Parameters)
7408 self._autoPublish(anObj, theName, "rotated")
7411 ## Rotate given object around vector perpendicular to plane
7412 # containing three points.
7413 # @param theObject The object to be rotated.
7414 # @param theCentPoint central point the axis is the vector perpendicular to the plane
7415 # containing the three points.
7416 # @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
7417 # @param theCopy Flag used to rotate object itself or create a copy.
7418 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7419 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
7420 def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
7422 Rotate given object around vector perpendicular to plane
7423 containing three points.
7426 theObject The object to be rotated.
7427 theCentPoint central point the axis is the vector perpendicular to the plane
7428 containing the three points.
7429 thePoint1,thePoint2 points in a perpendicular plane of the axis.
7430 theCopy Flag used to rotate object itself or create a copy.
7433 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7434 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
7437 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
7439 anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
7440 RaiseIfFailed("RotateThreePoints", self.TrsfOp)
7443 ## Rotate given object around vector perpendicular to plane
7444 # containing three points, creating its copy before the rotatation.
7445 # @param theObject The object to be rotated.
7446 # @param theCentPoint central point the axis is the vector perpendicular to the plane
7447 # containing the three points.
7448 # @param thePoint1,thePoint2 in a perpendicular plane of the axis.
7449 # @param theName Object name; when specified, this parameter is used
7450 # for result publication in the study. Otherwise, if automatic
7451 # publication is switched on, default value is used for result name.
7453 # @return New GEOM.GEOM_Object, containing the rotated object.
7455 # @ref tui_rotation "Example"
7456 def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
7458 Rotate given object around vector perpendicular to plane
7459 containing three points, creating its copy before the rotatation.
7462 theObject The object to be rotated.
7463 theCentPoint central point the axis is the vector perpendicular to the plane
7464 containing the three points.
7465 thePoint1,thePoint2 in a perpendicular plane of the axis.
7466 theName Object name; when specified, this parameter is used
7467 for result publication in the study. Otherwise, if automatic
7468 publication is switched on, default value is used for result name.
7471 New GEOM.GEOM_Object, containing the rotated object.
7473 # Example: see GEOM_TestAll.py
7474 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
7475 RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
7476 self._autoPublish(anObj, theName, "rotated")
7479 ## Scale the given object by the specified factor.
7480 # @param theObject The object to be scaled.
7481 # @param thePoint Center point for scaling.
7482 # Passing None for it means scaling relatively the origin of global CS.
7483 # @param theFactor Scaling factor value.
7484 # @param theCopy Flag used to scale object itself or create a copy.
7485 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7486 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
7487 def Scale(self, theObject, thePoint, theFactor, theCopy=False):
7489 Scale the given object by the specified factor.
7492 theObject The object to be scaled.
7493 thePoint Center point for scaling.
7494 Passing None for it means scaling relatively the origin of global CS.
7495 theFactor Scaling factor value.
7496 theCopy Flag used to scale object itself or create a copy.
7499 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7500 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
7502 # Example: see GEOM_TestAll.py
7503 theFactor, Parameters = ParseParameters(theFactor)
7505 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
7507 anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
7508 RaiseIfFailed("Scale", self.TrsfOp)
7509 anObj.SetParameters(Parameters)
7512 ## Scale the given object by the factor, creating its copy before the scaling.
7513 # @param theObject The object to be scaled.
7514 # @param thePoint Center point for scaling.
7515 # Passing None for it means scaling relatively the origin of global CS.
7516 # @param theFactor Scaling factor value.
7517 # @param theName Object name; when specified, this parameter is used
7518 # for result publication in the study. Otherwise, if automatic
7519 # publication is switched on, default value is used for result name.
7521 # @return New GEOM.GEOM_Object, containing the scaled shape.
7523 # @ref tui_scale "Example"
7524 def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
7526 Scale the given object by the factor, creating its copy before the scaling.
7529 theObject The object to be scaled.
7530 thePoint Center point for scaling.
7531 Passing None for it means scaling relatively the origin of global CS.
7532 theFactor Scaling factor value.
7533 theName Object name; when specified, this parameter is used
7534 for result publication in the study. Otherwise, if automatic
7535 publication is switched on, default value is used for result name.
7538 New GEOM.GEOM_Object, containing the scaled shape.
7540 # Example: see GEOM_TestAll.py
7541 theFactor, Parameters = ParseParameters(theFactor)
7542 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
7543 RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
7544 anObj.SetParameters(Parameters)
7545 self._autoPublish(anObj, theName, "scaled")
7548 ## Scale the given object by different factors along coordinate axes.
7549 # @param theObject The object to be scaled.
7550 # @param thePoint Center point for scaling.
7551 # Passing None for it means scaling relatively the origin of global CS.
7552 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7553 # @param theCopy Flag used to scale object itself or create a copy.
7554 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7555 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
7556 def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
7558 Scale the given object by different factors along coordinate axes.
7561 theObject The object to be scaled.
7562 thePoint Center point for scaling.
7563 Passing None for it means scaling relatively the origin of global CS.
7564 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7565 theCopy Flag used to scale object itself or create a copy.
7568 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7569 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
7571 # Example: see GEOM_TestAll.py
7572 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
7574 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
7575 theFactorX, theFactorY, theFactorZ)
7577 anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
7578 theFactorX, theFactorY, theFactorZ)
7579 RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
7580 anObj.SetParameters(Parameters)
7583 ## Scale the given object by different factors along coordinate axes,
7584 # creating its copy before the scaling.
7585 # @param theObject The object to be scaled.
7586 # @param thePoint Center point for scaling.
7587 # Passing None for it means scaling relatively the origin of global CS.
7588 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7589 # @param theName Object name; when specified, this parameter is used
7590 # for result publication in the study. Otherwise, if automatic
7591 # publication is switched on, default value is used for result name.
7593 # @return New GEOM.GEOM_Object, containing the scaled shape.
7595 # @ref swig_scale "Example"
7596 def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
7598 Scale the given object by different factors along coordinate axes,
7599 creating its copy before the scaling.
7602 theObject The object to be scaled.
7603 thePoint Center point for scaling.
7604 Passing None for it means scaling relatively the origin of global CS.
7605 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
7606 theName Object name; when specified, this parameter is used
7607 for result publication in the study. Otherwise, if automatic
7608 publication is switched on, default value is used for result name.
7611 New GEOM.GEOM_Object, containing the scaled shape.
7613 # Example: see GEOM_TestAll.py
7614 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
7615 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
7616 theFactorX, theFactorY, theFactorZ)
7617 RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
7618 anObj.SetParameters(Parameters)
7619 self._autoPublish(anObj, theName, "scaled")
7622 ## Mirror an object relatively the given plane.
7623 # @param theObject The object to be mirrored.
7624 # @param thePlane Plane of symmetry.
7625 # @param theCopy Flag used to mirror object itself or create a copy.
7626 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7627 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7628 def MirrorByPlane(self, theObject, thePlane, theCopy=False):
7630 Mirror an object relatively the given plane.
7633 theObject The object to be mirrored.
7634 thePlane Plane of symmetry.
7635 theCopy Flag used to mirror object itself or create a copy.
7638 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7639 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7642 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
7644 anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
7645 RaiseIfFailed("MirrorByPlane", self.TrsfOp)
7648 ## Create an object, symmetrical
7649 # to the given one relatively the given plane.
7650 # @param theObject The object to be mirrored.
7651 # @param thePlane Plane of symmetry.
7652 # @param theName Object name; when specified, this parameter is used
7653 # for result publication in the study. Otherwise, if automatic
7654 # publication is switched on, default value is used for result name.
7656 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7658 # @ref tui_mirror "Example"
7659 def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
7661 Create an object, symmetrical to the given one relatively the given plane.
7664 theObject The object to be mirrored.
7665 thePlane Plane of symmetry.
7666 theName Object name; when specified, this parameter is used
7667 for result publication in the study. Otherwise, if automatic
7668 publication is switched on, default value is used for result name.
7671 New GEOM.GEOM_Object, containing the mirrored shape.
7673 # Example: see GEOM_TestAll.py
7674 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
7675 RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
7676 self._autoPublish(anObj, theName, "mirrored")
7679 ## Mirror an object relatively the given axis.
7680 # @param theObject The object to be mirrored.
7681 # @param theAxis Axis of symmetry.
7682 # @param theCopy Flag used to mirror object itself or create a copy.
7683 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7684 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7685 def MirrorByAxis(self, theObject, theAxis, theCopy=False):
7687 Mirror an object relatively the given axis.
7690 theObject The object to be mirrored.
7691 theAxis Axis of symmetry.
7692 theCopy Flag used to mirror object itself or create a copy.
7695 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7696 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7699 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
7701 anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
7702 RaiseIfFailed("MirrorByAxis", self.TrsfOp)
7705 ## Create an object, symmetrical
7706 # to the given one relatively the given axis.
7707 # @param theObject The object to be mirrored.
7708 # @param theAxis Axis of symmetry.
7709 # @param theName Object name; when specified, this parameter is used
7710 # for result publication in the study. Otherwise, if automatic
7711 # publication is switched on, default value is used for result name.
7713 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7715 # @ref tui_mirror "Example"
7716 def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
7718 Create an object, symmetrical to the given one relatively the given axis.
7721 theObject The object to be mirrored.
7722 theAxis Axis of symmetry.
7723 theName Object name; when specified, this parameter is used
7724 for result publication in the study. Otherwise, if automatic
7725 publication is switched on, default value is used for result name.
7728 New GEOM.GEOM_Object, containing the mirrored shape.
7730 # Example: see GEOM_TestAll.py
7731 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
7732 RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
7733 self._autoPublish(anObj, theName, "mirrored")
7736 ## Mirror an object relatively the given point.
7737 # @param theObject The object to be mirrored.
7738 # @param thePoint Point of symmetry.
7739 # @param theCopy Flag used to mirror object itself or create a copy.
7740 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7741 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
7742 def MirrorByPoint(self, theObject, thePoint, theCopy=False):
7744 Mirror an object relatively the given point.
7747 theObject The object to be mirrored.
7748 thePoint Point of symmetry.
7749 theCopy Flag used to mirror object itself or create a copy.
7752 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7753 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
7755 # Example: see GEOM_TestAll.py
7757 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
7759 anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
7760 RaiseIfFailed("MirrorByPoint", self.TrsfOp)
7763 ## Create an object, symmetrical
7764 # to the given one relatively the given point.
7765 # @param theObject The object to be mirrored.
7766 # @param thePoint Point of symmetry.
7767 # @param theName Object name; when specified, this parameter is used
7768 # for result publication in the study. Otherwise, if automatic
7769 # publication is switched on, default value is used for result name.
7771 # @return New GEOM.GEOM_Object, containing the mirrored shape.
7773 # @ref tui_mirror "Example"
7774 def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
7776 Create an object, symmetrical
7777 to the given one relatively the given point.
7780 theObject The object to be mirrored.
7781 thePoint Point of symmetry.
7782 theName Object name; when specified, this parameter is used
7783 for result publication in the study. Otherwise, if automatic
7784 publication is switched on, default value is used for result name.
7787 New GEOM.GEOM_Object, containing the mirrored shape.
7789 # Example: see GEOM_TestAll.py
7790 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
7791 RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
7792 self._autoPublish(anObj, theName, "mirrored")
7795 ## Modify the location of the given object.
7796 # @param theObject The object to be displaced.
7797 # @param theStartLCS Coordinate system to perform displacement from it.\n
7798 # If \a theStartLCS is NULL, displacement
7799 # will be performed from global CS.\n
7800 # If \a theObject itself is used as \a theStartLCS,
7801 # its location will be changed to \a theEndLCS.
7802 # @param theEndLCS Coordinate system to perform displacement to it.
7803 # @param theCopy Flag used to displace object itself or create a copy.
7804 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7805 # new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
7806 def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
7808 Modify the Location of the given object by LCS, creating its copy before the setting.
7811 theObject The object to be displaced.
7812 theStartLCS Coordinate system to perform displacement from it.
7813 If theStartLCS is NULL, displacement
7814 will be performed from global CS.
7815 If theObject itself is used as theStartLCS,
7816 its location will be changed to theEndLCS.
7817 theEndLCS Coordinate system to perform displacement to it.
7818 theCopy Flag used to displace object itself or create a copy.
7821 Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7822 new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
7824 # Example: see GEOM_TestAll.py
7826 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
7828 anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
7829 RaiseIfFailed("Displace", self.TrsfOp)
7832 ## Modify the Location of the given object by LCS,
7833 # creating its copy before the setting.
7834 # @param theObject The object to be displaced.
7835 # @param theStartLCS Coordinate system to perform displacement from it.\n
7836 # If \a theStartLCS is NULL, displacement
7837 # will be performed from global CS.\n
7838 # If \a theObject itself is used as \a theStartLCS,
7839 # its location will be changed to \a theEndLCS.
7840 # @param theEndLCS Coordinate system to perform displacement to it.
7841 # @param theName Object name; when specified, this parameter is used
7842 # for result publication in the study. Otherwise, if automatic
7843 # publication is switched on, default value is used for result name.
7845 # @return New GEOM.GEOM_Object, containing the displaced shape.
7847 # @ref tui_modify_location "Example"
7848 def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
7850 Modify the Location of the given object by LCS, creating its copy before the setting.
7853 theObject The object to be displaced.
7854 theStartLCS Coordinate system to perform displacement from it.
7855 If theStartLCS is NULL, displacement
7856 will be performed from global CS.
7857 If theObject itself is used as theStartLCS,
7858 its location will be changed to theEndLCS.
7859 theEndLCS Coordinate system to perform displacement to it.
7860 theName Object name; when specified, this parameter is used
7861 for result publication in the study. Otherwise, if automatic
7862 publication is switched on, default value is used for result name.
7865 New GEOM.GEOM_Object, containing the displaced shape.
7868 # create local coordinate systems
7869 cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
7870 cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0)
7871 # modify the location of the given object
7872 position = geompy.MakePosition(cylinder, cs1, cs2)
7874 # Example: see GEOM_TestAll.py
7875 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
7876 RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
7877 self._autoPublish(anObj, theName, "displaced")
7880 ## Modify the Location of the given object by Path.
7881 # @param theObject The object to be displaced.
7882 # @param thePath Wire or Edge along that the object will be translated.
7883 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
7884 # @param theCopy is to create a copy objects if true.
7885 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
7886 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
7887 # new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
7889 # @ref tui_modify_location "Example"
7890 def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
7892 Modify the Location of the given object by Path.
7895 theObject The object to be displaced.
7896 thePath Wire or Edge along that the object will be translated.
7897 theDistance progress of Path (0 = start location, 1 = end of path location).
7898 theCopy is to create a copy objects if true.
7899 theReverse 0 - for usual direction, 1 - to reverse path direction.
7902 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
7903 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
7906 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
7908 # Example: see GEOM_TestAll.py
7909 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse)
7910 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
7913 ## Modify the Location of the given object by Path, creating its copy before the operation.
7914 # @param theObject The object to be displaced.
7915 # @param thePath Wire or Edge along that the object will be translated.
7916 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
7917 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
7918 # @param theName Object name; when specified, this parameter is used
7919 # for result publication in the study. Otherwise, if automatic
7920 # publication is switched on, default value is used for result name.
7922 # @return New GEOM.GEOM_Object, containing the displaced shape.
7923 def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
7925 Modify the Location of the given object by Path, creating its copy before the operation.
7928 theObject The object to be displaced.
7929 thePath Wire or Edge along that the object will be translated.
7930 theDistance progress of Path (0 = start location, 1 = end of path location).
7931 theReverse 0 - for usual direction, 1 - to reverse path direction.
7932 theName Object name; when specified, this parameter is used
7933 for result publication in the study. Otherwise, if automatic
7934 publication is switched on, default value is used for result name.
7937 New GEOM.GEOM_Object, containing the displaced shape.
7939 # Example: see GEOM_TestAll.py
7940 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
7941 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
7942 self._autoPublish(anObj, theName, "displaced")
7945 ## Offset given shape.
7946 # @param theObject The base object for the offset.
7947 # @param theOffset Offset value.
7948 # @param theCopy Flag used to offset object itself or create a copy.
7949 # @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
7950 # new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
7951 def Offset(self, theObject, theOffset, theCopy=False):
7956 theObject The base object for the offset.
7957 theOffset Offset value.
7958 theCopy Flag used to offset object itself or create a copy.
7961 Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
7962 new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
7964 theOffset, Parameters = ParseParameters(theOffset)
7966 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
7968 anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
7969 RaiseIfFailed("Offset", self.TrsfOp)
7970 anObj.SetParameters(Parameters)
7973 ## Create new object as offset of the given one.
7974 # @param theObject The base object for the offset.
7975 # @param theOffset Offset value.
7976 # @param theName Object name; when specified, this parameter is used
7977 # for result publication in the study. Otherwise, if automatic
7978 # publication is switched on, default value is used for result name.
7980 # @return New GEOM.GEOM_Object, containing the offset object.
7982 # @ref tui_offset "Example"
7983 def MakeOffset(self, theObject, theOffset, theName=None):
7985 Create new object as offset of the given one.
7988 theObject The base object for the offset.
7989 theOffset Offset value.
7990 theName Object name; when specified, this parameter is used
7991 for result publication in the study. Otherwise, if automatic
7992 publication is switched on, default value is used for result name.
7995 New GEOM.GEOM_Object, containing the offset object.
7998 box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
7999 # create a new object as offset of the given object
8000 offset = geompy.MakeOffset(box, 70.)
8002 # Example: see GEOM_TestAll.py
8003 theOffset, Parameters = ParseParameters(theOffset)
8004 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
8005 RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
8006 anObj.SetParameters(Parameters)
8007 self._autoPublish(anObj, theName, "offset")
8010 ## Create new object as projection of the given one on a 2D surface.
8011 # @param theSource The source object for the projection. It can be a point, edge or wire.
8012 # @param theTarget The target object. It can be planar or cylindrical face.
8013 # @param theName Object name; when specified, this parameter is used
8014 # for result publication in the study. Otherwise, if automatic
8015 # publication is switched on, default value is used for result name.
8017 # @return New GEOM.GEOM_Object, containing the projection.
8019 # @ref tui_projection "Example"
8020 def MakeProjection(self, theSource, theTarget, theName=None):
8022 Create new object as projection of the given one on a 2D surface.
8025 theSource The source object for the projection. It can be a point, edge or wire.
8026 theTarget The target object. It can be planar or cylindrical face.
8027 theName Object name; when specified, this parameter is used
8028 for result publication in the study. Otherwise, if automatic
8029 publication is switched on, default value is used for result name.
8032 New GEOM.GEOM_Object, containing the projection.
8034 # Example: see GEOM_TestAll.py
8035 anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
8036 RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
8037 self._autoPublish(anObj, theName, "projection")
8040 # -----------------------------------------------------------------------------
8042 # -----------------------------------------------------------------------------
8044 ## Translate the given object along the given vector a given number times
8045 # @param theObject The object to be translated.
8046 # @param theVector Direction of the translation. DX if None.
8047 # @param theStep Distance to translate on.
8048 # @param theNbTimes Quantity of translations to be done.
8049 # @param theName Object name; when specified, this parameter is used
8050 # for result publication in the study. Otherwise, if automatic
8051 # publication is switched on, default value is used for result name.
8053 # @return New GEOM.GEOM_Object, containing compound of all
8054 # the shapes, obtained after each translation.
8056 # @ref tui_multi_translation "Example"
8057 def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
8059 Translate the given object along the given vector a given number times
8062 theObject The object to be translated.
8063 theVector Direction of the translation. DX if None.
8064 theStep Distance to translate on.
8065 theNbTimes Quantity of translations to be done.
8066 theName Object name; when specified, this parameter is used
8067 for result publication in the study. Otherwise, if automatic
8068 publication is switched on, default value is used for result name.
8071 New GEOM.GEOM_Object, containing compound of all
8072 the shapes, obtained after each translation.
8075 r1d = geompy.MakeMultiTranslation1D(prism, vect, 20, 4)
8077 # Example: see GEOM_TestAll.py
8078 theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes)
8079 anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
8080 RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
8081 anObj.SetParameters(Parameters)
8082 self._autoPublish(anObj, theName, "multitranslation")
8085 ## Conseqently apply two specified translations to theObject specified number of times.
8086 # @param theObject The object to be translated.
8087 # @param theVector1 Direction of the first translation. DX if None.
8088 # @param theStep1 Step of the first translation.
8089 # @param theNbTimes1 Quantity of translations to be done along theVector1.
8090 # @param theVector2 Direction of the second translation. DY if None.
8091 # @param theStep2 Step of the second translation.
8092 # @param theNbTimes2 Quantity of translations to be done along theVector2.
8093 # @param theName Object name; when specified, this parameter is used
8094 # for result publication in the study. Otherwise, if automatic
8095 # publication is switched on, default value is used for result name.
8097 # @return New GEOM.GEOM_Object, containing compound of all
8098 # the shapes, obtained after each translation.
8100 # @ref tui_multi_translation "Example"
8101 def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
8102 theVector2, theStep2, theNbTimes2, theName=None):
8104 Conseqently apply two specified translations to theObject specified number of times.
8107 theObject The object to be translated.
8108 theVector1 Direction of the first translation. DX if None.
8109 theStep1 Step of the first translation.
8110 theNbTimes1 Quantity of translations to be done along theVector1.
8111 theVector2 Direction of the second translation. DY if None.
8112 theStep2 Step of the second translation.
8113 theNbTimes2 Quantity of translations to be done along theVector2.
8114 theName Object name; when specified, this parameter is used
8115 for result publication in the study. Otherwise, if automatic
8116 publication is switched on, default value is used for result name.
8119 New GEOM.GEOM_Object, containing compound of all
8120 the shapes, obtained after each translation.
8123 tr2d = geompy.MakeMultiTranslation2D(prism, vect1, 20, 4, vect2, 80, 3)
8125 # Example: see GEOM_TestAll.py
8126 theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2)
8127 anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
8128 theVector2, theStep2, theNbTimes2)
8129 RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
8130 anObj.SetParameters(Parameters)
8131 self._autoPublish(anObj, theName, "multitranslation")
8134 ## Rotate the given object around the given axis a given number times.
8135 # Rotation angle will be 2*PI/theNbTimes.
8136 # @param theObject The object to be rotated.
8137 # @param theAxis The rotation axis. DZ if None.
8138 # @param theNbTimes Quantity of rotations to be done.
8139 # @param theName Object name; when specified, this parameter is used
8140 # for result publication in the study. Otherwise, if automatic
8141 # publication is switched on, default value is used for result name.
8143 # @return New GEOM.GEOM_Object, containing compound of all the
8144 # shapes, obtained after each rotation.
8146 # @ref tui_multi_rotation "Example"
8147 def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
8149 Rotate the given object around the given axis a given number times.
8150 Rotation angle will be 2*PI/theNbTimes.
8153 theObject The object to be rotated.
8154 theAxis The rotation axis. DZ if None.
8155 theNbTimes Quantity of rotations to be done.
8156 theName Object name; when specified, this parameter is used
8157 for result publication in the study. Otherwise, if automatic
8158 publication is switched on, default value is used for result name.
8161 New GEOM.GEOM_Object, containing compound of all the
8162 shapes, obtained after each rotation.
8165 rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
8167 # Example: see GEOM_TestAll.py
8168 theNbTimes, Parameters = ParseParameters(theNbTimes)
8169 anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
8170 RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
8171 anObj.SetParameters(Parameters)
8172 self._autoPublish(anObj, theName, "multirotation")
8175 ## Rotate the given object around the given axis
8176 # a given number times on the given angle.
8177 # @param theObject The object to be rotated.
8178 # @param theAxis The rotation axis. DZ if None.
8179 # @param theAngleStep Rotation angle in radians.
8180 # @param theNbTimes Quantity of rotations to be done.
8181 # @param theName Object name; when specified, this parameter is used
8182 # for result publication in the study. Otherwise, if automatic
8183 # publication is switched on, default value is used for result name.
8185 # @return New GEOM.GEOM_Object, containing compound of all the
8186 # shapes, obtained after each rotation.
8188 # @ref tui_multi_rotation "Example"
8189 def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
8191 Rotate the given object around the given axis
8192 a given number times on the given angle.
8195 theObject The object to be rotated.
8196 theAxis The rotation axis. DZ if None.
8197 theAngleStep Rotation angle in radians.
8198 theNbTimes Quantity of rotations to be done.
8199 theName Object name; when specified, this parameter is used
8200 for result publication in the study. Otherwise, if automatic
8201 publication is switched on, default value is used for result name.
8204 New GEOM.GEOM_Object, containing compound of all the
8205 shapes, obtained after each rotation.
8208 rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
8210 # Example: see GEOM_TestAll.py
8211 theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
8212 anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
8213 RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
8214 anObj.SetParameters(Parameters)
8215 self._autoPublish(anObj, theName, "multirotation")
8218 ## Rotate the given object around the given axis a given
8219 # number times and multi-translate each rotation result.
8220 # Rotation angle will be 2*PI/theNbTimes1.
8221 # Translation direction passes through center of gravity
8222 # of rotated shape and its projection on the rotation axis.
8223 # @param theObject The object to be rotated.
8224 # @param theAxis Rotation axis. DZ if None.
8225 # @param theNbTimes1 Quantity of rotations to be done.
8226 # @param theRadialStep Translation distance.
8227 # @param theNbTimes2 Quantity of translations to be done.
8228 # @param theName Object name; when specified, this parameter is used
8229 # for result publication in the study. Otherwise, if automatic
8230 # publication is switched on, default value is used for result name.
8232 # @return New GEOM.GEOM_Object, containing compound of all the
8233 # shapes, obtained after each transformation.
8235 # @ref tui_multi_rotation "Example"
8236 def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
8238 Rotate the given object around the
8239 given axis on the given angle a given number
8240 times and multi-translate each rotation result.
8241 Translation direction passes through center of gravity
8242 of rotated shape and its projection on the rotation axis.
8245 theObject The object to be rotated.
8246 theAxis Rotation axis. DZ if None.
8247 theNbTimes1 Quantity of rotations to be done.
8248 theRadialStep Translation distance.
8249 theNbTimes2 Quantity of translations to be done.
8250 theName Object name; when specified, this parameter is used
8251 for result publication in the study. Otherwise, if automatic
8252 publication is switched on, default value is used for result name.
8255 New GEOM.GEOM_Object, containing compound of all the
8256 shapes, obtained after each transformation.
8259 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
8261 # Example: see GEOM_TestAll.py
8262 theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
8263 anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
8264 RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
8265 anObj.SetParameters(Parameters)
8266 self._autoPublish(anObj, theName, "multirotation")
8269 ## Rotate the given object around the
8270 # given axis on the given angle a given number
8271 # times and multi-translate each rotation result.
8272 # Translation direction passes through center of gravity
8273 # of rotated shape and its projection on the rotation axis.
8274 # @param theObject The object to be rotated.
8275 # @param theAxis Rotation axis. DZ if None.
8276 # @param theAngleStep Rotation angle in radians.
8277 # @param theNbTimes1 Quantity of rotations to be done.
8278 # @param theRadialStep Translation distance.
8279 # @param theNbTimes2 Quantity of translations to be done.
8280 # @param theName Object name; when specified, this parameter is used
8281 # for result publication in the study. Otherwise, if automatic
8282 # publication is switched on, default value is used for result name.
8284 # @return New GEOM.GEOM_Object, containing compound of all the
8285 # shapes, obtained after each transformation.
8287 # @ref tui_multi_rotation "Example"
8288 def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
8290 Rotate the given object around the
8291 given axis on the given angle a given number
8292 times and multi-translate each rotation result.
8293 Translation direction passes through center of gravity
8294 of rotated shape and its projection on the rotation axis.
8297 theObject The object to be rotated.
8298 theAxis Rotation axis. DZ if None.
8299 theAngleStep Rotation angle in radians.
8300 theNbTimes1 Quantity of rotations to be done.
8301 theRadialStep Translation distance.
8302 theNbTimes2 Quantity of translations to be done.
8303 theName Object name; when specified, this parameter is used
8304 for result publication in the study. Otherwise, if automatic
8305 publication is switched on, default value is used for result name.
8308 New GEOM.GEOM_Object, containing compound of all the
8309 shapes, obtained after each transformation.
8312 rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
8314 # Example: see GEOM_TestAll.py
8315 theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
8316 anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
8317 RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
8318 anObj.SetParameters(Parameters)
8319 self._autoPublish(anObj, theName, "multirotation")
8322 ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
8324 # @ref swig_MakeMultiRotation "Example"
8325 def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
8327 The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
8330 pz = geompy.MakeVertex(0, 0, 100)
8331 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8332 MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
8334 # Example: see GEOM_TestOthers.py
8335 aVec = self.MakeLine(aPoint,aDir)
8336 # note: auto-publishing is done in self.MultiRotate1D()
8337 anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
8340 ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
8342 # @ref swig_MakeMultiRotation "Example"
8343 def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
8345 The same, as geompy.MultiRotate1D, but axis is given by direction and point
8348 pz = geompy.MakeVertex(0, 0, 100)
8349 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8350 MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
8352 # Example: see GEOM_TestOthers.py
8353 aVec = self.MakeLine(aPoint,aDir)
8354 # note: auto-publishing is done in self.MultiRotate1D()
8355 anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
8358 ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
8360 # @ref swig_MakeMultiRotation "Example"
8361 def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
8363 The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
8366 pz = geompy.MakeVertex(0, 0, 100)
8367 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8368 MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
8370 # Example: see GEOM_TestOthers.py
8371 aVec = self.MakeLine(aPoint,aDir)
8372 # note: auto-publishing is done in self.MultiRotate2DNbTimes()
8373 anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
8376 ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
8378 # @ref swig_MakeMultiRotation "Example"
8379 def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
8381 The same, as MultiRotate2DByStep(), but axis is given by direction and point
8384 pz = geompy.MakeVertex(0, 0, 100)
8385 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8386 MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
8388 # Example: see GEOM_TestOthers.py
8389 aVec = self.MakeLine(aPoint,aDir)
8390 # note: auto-publishing is done in self.MultiRotate2D()
8391 anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
8394 # end of l3_transform
8397 ## @addtogroup l3_transform_d
8400 ## Deprecated method. Use MultiRotate1DNbTimes instead.
8401 def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
8403 Deprecated method. Use MultiRotate1DNbTimes instead.
8405 print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
8406 return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
8408 ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
8409 # This method is DEPRECATED. Use MultiRotate2DByStep() instead.
8410 def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
8412 The same, as MultiRotate2DByStep(), but theAngle is in degrees.
8413 This method is DEPRECATED. Use MultiRotate2DByStep() instead.
8416 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
8418 print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
8419 theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
8420 anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
8421 RaiseIfFailed("MultiRotate2D", self.TrsfOp)
8422 anObj.SetParameters(Parameters)
8423 self._autoPublish(anObj, theName, "multirotation")
8426 ## The same, as MultiRotate1D(), but axis is given by direction and point
8427 # This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
8428 def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
8430 The same, as geompy.MultiRotate1D, but axis is given by direction and point.
8431 This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
8434 pz = geompy.MakeVertex(0, 0, 100)
8435 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8436 MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
8438 print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
8439 aVec = self.MakeLine(aPoint,aDir)
8440 # note: auto-publishing is done in self.MultiRotate1D()
8441 anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
8444 ## The same, as MultiRotate2D(), but axis is given by direction and point
8445 # This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
8446 def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
8448 The same, as MultiRotate2D(), but axis is given by direction and point
8449 This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
8452 pz = geompy.MakeVertex(0, 0, 100)
8453 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
8454 MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
8456 print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
8457 aVec = self.MakeLine(aPoint,aDir)
8458 # note: auto-publishing is done in self.MultiRotate2D()
8459 anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
8462 # end of l3_transform_d
8465 ## @addtogroup l3_local
8468 ## Perform a fillet on all edges of the given shape.
8469 # @param theShape Shape, to perform fillet on.
8470 # @param theR Fillet radius.
8471 # @param theName Object name; when specified, this parameter is used
8472 # for result publication in the study. Otherwise, if automatic
8473 # publication is switched on, default value is used for result name.
8475 # @return New GEOM.GEOM_Object, containing the result shape.
8477 # @ref tui_fillet "Example 1"
8478 # \n @ref swig_MakeFilletAll "Example 2"
8479 def MakeFilletAll(self, theShape, theR, theName=None):
8481 Perform a fillet on all edges of the given shape.
8484 theShape Shape, to perform fillet on.
8486 theName Object name; when specified, this parameter is used
8487 for result publication in the study. Otherwise, if automatic
8488 publication is switched on, default value is used for result name.
8491 New GEOM.GEOM_Object, containing the result shape.
8494 filletall = geompy.MakeFilletAll(prism, 10.)
8496 # Example: see GEOM_TestOthers.py
8497 theR,Parameters = ParseParameters(theR)
8498 anObj = self.LocalOp.MakeFilletAll(theShape, theR)
8499 RaiseIfFailed("MakeFilletAll", self.LocalOp)
8500 anObj.SetParameters(Parameters)
8501 self._autoPublish(anObj, theName, "fillet")
8504 ## Perform a fillet on the specified edges/faces of the given shape
8505 # @param theShape Shape, to perform fillet on.
8506 # @param theR Fillet radius.
8507 # @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
8508 # @param theListShapes Global indices of edges/faces to perform fillet on.
8509 # @param theName Object name; when specified, this parameter is used
8510 # for result publication in the study. Otherwise, if automatic
8511 # publication is switched on, default value is used for result name.
8513 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8515 # @return New GEOM.GEOM_Object, containing the result shape.
8517 # @ref tui_fillet "Example"
8518 def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
8520 Perform a fillet on the specified edges/faces of the given shape
8523 theShape Shape, to perform fillet on.
8525 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
8526 theListShapes Global indices of edges/faces to perform fillet on.
8527 theName Object name; when specified, this parameter is used
8528 for result publication in the study. Otherwise, if automatic
8529 publication is switched on, default value is used for result name.
8532 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8535 New GEOM.GEOM_Object, containing the result shape.
8538 # get the list of IDs (IDList) for the fillet
8539 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
8541 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
8542 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
8543 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
8544 # make a fillet on the specified edges of the given shape
8545 fillet = geompy.MakeFillet(prism, 10., geompy.ShapeType["EDGE"], IDlist_e)
8547 # Example: see GEOM_TestAll.py
8548 theR,Parameters = ParseParameters(theR)
8550 if theShapeType == self.ShapeType["EDGE"]:
8551 anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
8552 RaiseIfFailed("MakeFilletEdges", self.LocalOp)
8554 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
8555 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
8556 anObj.SetParameters(Parameters)
8557 self._autoPublish(anObj, theName, "fillet")
8560 ## The same that MakeFillet() but with two Fillet Radius R1 and R2
8561 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
8563 The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
8566 # get the list of IDs (IDList) for the fillet
8567 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
8569 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
8570 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
8571 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
8572 # make a fillet on the specified edges of the given shape
8573 fillet = geompy.MakeFillet(prism, 10., 15., geompy.ShapeType["EDGE"], IDlist_e)
8575 theR1,theR2,Parameters = ParseParameters(theR1,theR2)
8577 if theShapeType == self.ShapeType["EDGE"]:
8578 anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
8579 RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
8581 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
8582 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
8583 anObj.SetParameters(Parameters)
8584 self._autoPublish(anObj, theName, "fillet")
8587 ## Perform a fillet on the specified edges of the given shape
8588 # @param theShape Wire Shape to perform fillet on.
8589 # @param theR Fillet radius.
8590 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
8591 # \note Global index of sub-shape can be obtained, using method GetSubShapeID()
8592 # \note The list of vertices could be empty,
8593 # in this case fillet will done done at all vertices in wire
8594 # @param doIgnoreSecantVertices If FALSE, fillet radius is always limited
8595 # by the length of the edges, nearest to the fillet vertex.
8596 # But sometimes the next edge is C1 continuous with the one, nearest to
8597 # the fillet point, and such two (or more) edges can be united to allow
8598 # bigger radius. Set this flag to TRUE to allow collinear edges union,
8599 # thus ignoring the secant vertex (vertices).
8600 # @param theName Object name; when specified, this parameter is used
8601 # for result publication in the study. Otherwise, if automatic
8602 # publication is switched on, default value is used for result name.
8604 # @return New GEOM.GEOM_Object, containing the result shape.
8606 # @ref tui_fillet2d "Example"
8607 def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
8609 Perform a fillet on the specified edges of the given shape
8612 theShape Wire Shape to perform fillet on.
8614 theListOfVertexes Global indices of vertexes to perform fillet on.
8615 doIgnoreSecantVertices If FALSE, fillet radius is always limited
8616 by the length of the edges, nearest to the fillet vertex.
8617 But sometimes the next edge is C1 continuous with the one, nearest to
8618 the fillet point, and such two (or more) edges can be united to allow
8619 bigger radius. Set this flag to TRUE to allow collinear edges union,
8620 thus ignoring the secant vertex (vertices).
8621 theName Object name; when specified, this parameter is used
8622 for result publication in the study. Otherwise, if automatic
8623 publication is switched on, default value is used for result name.
8625 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8627 The list of vertices could be empty,in this case fillet will done done at all vertices in wire
8630 New GEOM.GEOM_Object, containing the result shape.
8634 Wire_1 = geompy.MakeWire([Edge_12, Edge_7, Edge_11, Edge_6, Edge_1,Edge_4])
8635 # make fillet at given wire vertices with giver radius
8636 Fillet_1D_1 = geompy.MakeFillet1D(Wire_1, 55, [3, 4, 6, 8, 10])
8638 # Example: see GEOM_TestAll.py
8639 theR,doIgnoreSecantVertices,Parameters = ParseParameters(theR,doIgnoreSecantVertices)
8640 anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
8641 RaiseIfFailed("MakeFillet1D", self.LocalOp)
8642 anObj.SetParameters(Parameters)
8643 self._autoPublish(anObj, theName, "fillet")
8646 ## Perform a fillet at the specified vertices of the given face/shell.
8647 # @param theShape Face or Shell shape to perform fillet on.
8648 # @param theR Fillet radius.
8649 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
8650 # @param theName Object name; when specified, this parameter is used
8651 # for result publication in the study. Otherwise, if automatic
8652 # publication is switched on, default value is used for result name.
8654 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8656 # @return New GEOM.GEOM_Object, containing the result shape.
8658 # @ref tui_fillet2d "Example"
8659 def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
8661 Perform a fillet at the specified vertices of the given face/shell.
8664 theShape Face or Shell shape to perform fillet on.
8666 theListOfVertexes Global indices of vertexes to perform fillet on.
8667 theName Object name; when specified, this parameter is used
8668 for result publication in the study. Otherwise, if automatic
8669 publication is switched on, default value is used for result name.
8671 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8674 New GEOM.GEOM_Object, containing the result shape.
8677 face = geompy.MakeFaceHW(100, 100, 1)
8678 fillet2d = geompy.MakeFillet2D(face, 30, [7, 9])
8680 # Example: see GEOM_TestAll.py
8681 theR,Parameters = ParseParameters(theR)
8682 anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
8683 RaiseIfFailed("MakeFillet2D", self.LocalOp)
8684 anObj.SetParameters(Parameters)
8685 self._autoPublish(anObj, theName, "fillet")
8688 ## Perform a symmetric chamfer on all edges of the given shape.
8689 # @param theShape Shape, to perform chamfer on.
8690 # @param theD Chamfer size along each face.
8691 # @param theName Object name; when specified, this parameter is used
8692 # for result publication in the study. Otherwise, if automatic
8693 # publication is switched on, default value is used for result name.
8695 # @return New GEOM.GEOM_Object, containing the result shape.
8697 # @ref tui_chamfer "Example 1"
8698 # \n @ref swig_MakeChamferAll "Example 2"
8699 def MakeChamferAll(self, theShape, theD, theName=None):
8701 Perform a symmetric chamfer on all edges of the given shape.
8704 theShape Shape, to perform chamfer on.
8705 theD Chamfer size along each face.
8706 theName Object name; when specified, this parameter is used
8707 for result publication in the study. Otherwise, if automatic
8708 publication is switched on, default value is used for result name.
8711 New GEOM.GEOM_Object, containing the result shape.
8714 chamfer_all = geompy.MakeChamferAll(prism, 10.)
8716 # Example: see GEOM_TestOthers.py
8717 theD,Parameters = ParseParameters(theD)
8718 anObj = self.LocalOp.MakeChamferAll(theShape, theD)
8719 RaiseIfFailed("MakeChamferAll", self.LocalOp)
8720 anObj.SetParameters(Parameters)
8721 self._autoPublish(anObj, theName, "chamfer")
8724 ## Perform a chamfer on edges, common to the specified faces,
8725 # with distance D1 on the Face1
8726 # @param theShape Shape, to perform chamfer on.
8727 # @param theD1 Chamfer size along \a theFace1.
8728 # @param theD2 Chamfer size along \a theFace2.
8729 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
8730 # @param theName Object name; when specified, this parameter is used
8731 # for result publication in the study. Otherwise, if automatic
8732 # publication is switched on, default value is used for result name.
8734 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8736 # @return New GEOM.GEOM_Object, containing the result shape.
8738 # @ref tui_chamfer "Example"
8739 def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
8741 Perform a chamfer on edges, common to the specified faces,
8742 with distance D1 on the Face1
8745 theShape Shape, to perform chamfer on.
8746 theD1 Chamfer size along theFace1.
8747 theD2 Chamfer size along theFace2.
8748 theFace1,theFace2 Global indices of two faces of theShape.
8749 theName Object name; when specified, this parameter is used
8750 for result publication in the study. Otherwise, if automatic
8751 publication is switched on, default value is used for result name.
8754 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8757 New GEOM.GEOM_Object, containing the result shape.
8760 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
8761 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
8762 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
8763 chamfer_e = geompy.MakeChamferEdge(prism, 10., 10., f_ind_1, f_ind_2)
8765 # Example: see GEOM_TestAll.py
8766 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8767 anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
8768 RaiseIfFailed("MakeChamferEdge", self.LocalOp)
8769 anObj.SetParameters(Parameters)
8770 self._autoPublish(anObj, theName, "chamfer")
8773 ## Perform a chamfer on edges
8774 # @param theShape Shape, to perform chamfer on.
8775 # @param theD Chamfer length
8776 # @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8777 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
8778 # @param theName Object name; when specified, this parameter is used
8779 # for result publication in the study. Otherwise, if automatic
8780 # publication is switched on, default value is used for result name.
8782 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8784 # @return New GEOM.GEOM_Object, containing the result shape.
8785 def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
8787 Perform a chamfer on edges
8790 theShape Shape, to perform chamfer on.
8791 theD1 Chamfer size along theFace1.
8792 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
8793 theFace1,theFace2 Global indices of two faces of theShape.
8794 theName Object name; when specified, this parameter is used
8795 for result publication in the study. Otherwise, if automatic
8796 publication is switched on, default value is used for result name.
8799 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
8802 New GEOM.GEOM_Object, containing the result shape.
8805 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
8806 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
8807 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
8809 chamfer_e = geompy.MakeChamferEdge(prism, 10., ang, f_ind_1, f_ind_2)
8812 if isinstance(theAngle,str):
8814 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8816 theAngle = theAngle*math.pi/180.0
8817 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
8818 RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
8819 anObj.SetParameters(Parameters)
8820 self._autoPublish(anObj, theName, "chamfer")
8823 ## Perform a chamfer on all edges of the specified faces,
8824 # with distance D1 on the first specified face (if several for one edge)
8825 # @param theShape Shape, to perform chamfer on.
8826 # @param theD1 Chamfer size along face from \a theFaces. If both faces,
8827 # connected to the edge, are in \a theFaces, \a theD1
8828 # will be get along face, which is nearer to \a theFaces beginning.
8829 # @param theD2 Chamfer size along another of two faces, connected to the edge.
8830 # @param theFaces Sequence of global indices of faces of \a theShape.
8831 # @param theName Object name; when specified, this parameter is used
8832 # for result publication in the study. Otherwise, if automatic
8833 # publication is switched on, default value is used for result name.
8835 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
8837 # @return New GEOM.GEOM_Object, containing the result shape.
8839 # @ref tui_chamfer "Example"
8840 def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
8842 Perform a chamfer on all edges of the specified faces,
8843 with distance D1 on the first specified face (if several for one edge)
8846 theShape Shape, to perform chamfer on.
8847 theD1 Chamfer size along face from theFaces. If both faces,
8848 connected to the edge, are in theFaces, theD1
8849 will be get along face, which is nearer to theFaces beginning.
8850 theD2 Chamfer size along another of two faces, connected to the edge.
8851 theFaces Sequence of global indices of faces of theShape.
8852 theName Object name; when specified, this parameter is used
8853 for result publication in the study. Otherwise, if automatic
8854 publication is switched on, default value is used for result name.
8856 Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
8859 New GEOM.GEOM_Object, containing the result shape.
8861 # Example: see GEOM_TestAll.py
8862 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8863 anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
8864 RaiseIfFailed("MakeChamferFaces", self.LocalOp)
8865 anObj.SetParameters(Parameters)
8866 self._autoPublish(anObj, theName, "chamfer")
8869 ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
8870 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8872 # @ref swig_FilletChamfer "Example"
8873 def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
8875 The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
8876 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8879 if isinstance(theAngle,str):
8881 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8883 theAngle = theAngle*math.pi/180.0
8884 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
8885 RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
8886 anObj.SetParameters(Parameters)
8887 self._autoPublish(anObj, theName, "chamfer")
8890 ## Perform a chamfer on edges,
8891 # with distance D1 on the first specified face (if several for one edge)
8892 # @param theShape Shape, to perform chamfer on.
8893 # @param theD1,theD2 Chamfer size
8894 # @param theEdges Sequence of edges of \a theShape.
8895 # @param theName Object name; when specified, this parameter is used
8896 # for result publication in the study. Otherwise, if automatic
8897 # publication is switched on, default value is used for result name.
8899 # @return New GEOM.GEOM_Object, containing the result shape.
8901 # @ref swig_FilletChamfer "Example"
8902 def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
8904 Perform a chamfer on edges,
8905 with distance D1 on the first specified face (if several for one edge)
8908 theShape Shape, to perform chamfer on.
8909 theD1,theD2 Chamfer size
8910 theEdges Sequence of edges of theShape.
8911 theName Object name; when specified, this parameter is used
8912 for result publication in the study. Otherwise, if automatic
8913 publication is switched on, default value is used for result name.
8916 New GEOM.GEOM_Object, containing the result shape.
8918 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
8919 anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
8920 RaiseIfFailed("MakeChamferEdges", self.LocalOp)
8921 anObj.SetParameters(Parameters)
8922 self._autoPublish(anObj, theName, "chamfer")
8925 ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
8926 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8927 def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
8929 The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
8930 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
8933 if isinstance(theAngle,str):
8935 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
8937 theAngle = theAngle*math.pi/180.0
8938 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
8939 RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
8940 anObj.SetParameters(Parameters)
8941 self._autoPublish(anObj, theName, "chamfer")
8944 ## @sa MakeChamferEdge(), MakeChamferFaces()
8946 # @ref swig_MakeChamfer "Example"
8947 def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
8949 See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
8951 # Example: see GEOM_TestOthers.py
8953 # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
8954 if aShapeType == self.ShapeType["EDGE"]:
8955 anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
8957 anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
8960 ## Remove material from a solid by extrusion of the base shape on the given distance.
8961 # @param theInit Shape to remove material from. It must be a solid or
8962 # a compound made of a single solid.
8963 # @param theBase Closed edge or wire defining the base shape to be extruded.
8964 # @param theH Prism dimension along the normal to theBase
8965 # @param theAngle Draft angle in degrees.
8966 # @param theName Object name; when specified, this parameter is used
8967 # for result publication in the study. Otherwise, if automatic
8968 # publication is switched on, default value is used for result name.
8970 # @return New GEOM.GEOM_Object, containing the initial shape with removed material
8972 # @ref tui_creation_prism "Example"
8973 def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theName=None):
8975 Add material to a solid by extrusion of the base shape on the given distance.
8978 theInit Shape to remove material from. It must be a solid or a compound made of a single solid.
8979 theBase Closed edge or wire defining the base shape to be extruded.
8980 theH Prism dimension along the normal to theBase
8981 theAngle Draft angle in degrees.
8982 theName Object name; when specified, this parameter is used
8983 for result publication in the study. Otherwise, if automatic
8984 publication is switched on, default value is used for result name.
8987 New GEOM.GEOM_Object, containing the initial shape with removed material.
8989 # Example: see GEOM_TestAll.py
8990 #theH,Parameters = ParseParameters(theH)
8991 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False)
8992 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
8993 #anObj.SetParameters(Parameters)
8994 self._autoPublish(anObj, theName, "extrudedCut")
8997 ## Add material to a solid by extrusion of the base shape on the given distance.
8998 # @param theInit Shape to add material to. It must be a solid or
8999 # a compound made of a single solid.
9000 # @param theBase Closed edge or wire defining the base shape to be extruded.
9001 # @param theH Prism dimension along the normal to theBase
9002 # @param theAngle Draft angle in degrees.
9003 # @param theName Object name; when specified, this parameter is used
9004 # for result publication in the study. Otherwise, if automatic
9005 # publication is switched on, default value is used for result name.
9007 # @return New GEOM.GEOM_Object, containing the initial shape with added material
9009 # @ref tui_creation_prism "Example"
9010 def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theName=None):
9012 Add material to a solid by extrusion of the base shape on the given distance.
9015 theInit Shape to add material to. It must be a solid or a compound made of a single solid.
9016 theBase Closed edge or wire defining the base shape to be extruded.
9017 theH Prism dimension along the normal to theBase
9018 theAngle Draft angle in degrees.
9019 theName Object name; when specified, this parameter is used
9020 for result publication in the study. Otherwise, if automatic
9021 publication is switched on, default value is used for result name.
9024 New GEOM.GEOM_Object, containing the initial shape with added material.
9026 # Example: see GEOM_TestAll.py
9027 #theH,Parameters = ParseParameters(theH)
9028 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True)
9029 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
9030 #anObj.SetParameters(Parameters)
9031 self._autoPublish(anObj, theName, "extrudedBoss")
9037 ## @addtogroup l3_basic_op
9040 ## Perform an Archimde operation on the given shape with given parameters.
9041 # The object presenting the resulting face is returned.
9042 # @param theShape Shape to be put in water.
9043 # @param theWeight Weight og the shape.
9044 # @param theWaterDensity Density of the water.
9045 # @param theMeshDeflection Deflection of the mesh, using to compute the section.
9046 # @param theName Object name; when specified, this parameter is used
9047 # for result publication in the study. Otherwise, if automatic
9048 # publication is switched on, default value is used for result name.
9050 # @return New GEOM.GEOM_Object, containing a section of \a theShape
9051 # by a plane, corresponding to water level.
9053 # @ref tui_archimede "Example"
9054 def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
9056 Perform an Archimde operation on the given shape with given parameters.
9057 The object presenting the resulting face is returned.
9060 theShape Shape to be put in water.
9061 theWeight Weight og the shape.
9062 theWaterDensity Density of the water.
9063 theMeshDeflection Deflection of the mesh, using to compute the section.
9064 theName Object name; when specified, this parameter is used
9065 for result publication in the study. Otherwise, if automatic
9066 publication is switched on, default value is used for result name.
9069 New GEOM.GEOM_Object, containing a section of theShape
9070 by a plane, corresponding to water level.
9072 # Example: see GEOM_TestAll.py
9073 theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters(
9074 theWeight,theWaterDensity,theMeshDeflection)
9075 anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
9076 RaiseIfFailed("MakeArchimede", self.LocalOp)
9077 anObj.SetParameters(Parameters)
9078 self._autoPublish(anObj, theName, "archimede")
9081 # end of l3_basic_op
9084 ## @addtogroup l2_measure
9087 ## Get point coordinates
9090 # @ref tui_measurement_tools_page "Example"
9091 def PointCoordinates(self,Point):
9093 Get point coordinates
9098 # Example: see GEOM_TestMeasures.py
9099 aTuple = self.MeasuOp.PointCoordinates(Point)
9100 RaiseIfFailed("PointCoordinates", self.MeasuOp)
9103 ## Get vector coordinates
9106 # @ref tui_measurement_tools_page "Example"
9107 def VectorCoordinates(self,Vector):
9109 Get vector coordinates
9115 p1=self.GetFirstVertex(Vector)
9116 p2=self.GetLastVertex(Vector)
9118 X1=self.PointCoordinates(p1)
9119 X2=self.PointCoordinates(p2)
9121 return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
9124 ## Compute cross product
9125 # @return vector w=u^v
9127 # @ref tui_measurement_tools_page "Example"
9128 def CrossProduct(self, Vector1, Vector2):
9130 Compute cross product
9132 Returns: vector w=u^v
9134 u=self.VectorCoordinates(Vector1)
9135 v=self.VectorCoordinates(Vector2)
9136 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])
9140 ## Compute cross product
9141 # @return dot product p=u.v
9143 # @ref tui_measurement_tools_page "Example"
9144 def DotProduct(self, Vector1, Vector2):
9146 Compute cross product
9148 Returns: dot product p=u.v
9150 u=self.VectorCoordinates(Vector1)
9151 v=self.VectorCoordinates(Vector2)
9152 p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
9157 ## Get summarized length of all wires,
9158 # area of surface and volume of the given shape.
9159 # @param theShape Shape to define properties of.
9160 # @return [theLength, theSurfArea, theVolume]\n
9161 # theLength: Summarized length of all wires of the given shape.\n
9162 # theSurfArea: Area of surface of the given shape.\n
9163 # theVolume: Volume of the given shape.
9165 # @ref tui_measurement_tools_page "Example"
9166 def BasicProperties(self,theShape):
9168 Get summarized length of all wires,
9169 area of surface and volume of the given shape.
9172 theShape Shape to define properties of.
9175 [theLength, theSurfArea, theVolume]
9176 theLength: Summarized length of all wires of the given shape.
9177 theSurfArea: Area of surface of the given shape.
9178 theVolume: Volume of the given shape.
9180 # Example: see GEOM_TestMeasures.py
9181 aTuple = self.MeasuOp.GetBasicProperties(theShape)
9182 RaiseIfFailed("GetBasicProperties", self.MeasuOp)
9185 ## Get parameters of bounding box of the given shape
9186 # @param theShape Shape to obtain bounding box of.
9187 # @param precise TRUE for precise computation; FALSE for fast one.
9188 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9189 # Xmin,Xmax: Limits of shape along OX axis.
9190 # Ymin,Ymax: Limits of shape along OY axis.
9191 # Zmin,Zmax: Limits of shape along OZ axis.
9193 # @ref tui_measurement_tools_page "Example"
9194 def BoundingBox (self, theShape, precise=False):
9196 Get parameters of bounding box of the given shape
9199 theShape Shape to obtain bounding box of.
9200 precise TRUE for precise computation; FALSE for fast one.
9203 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
9204 Xmin,Xmax: Limits of shape along OX axis.
9205 Ymin,Ymax: Limits of shape along OY axis.
9206 Zmin,Zmax: Limits of shape along OZ axis.
9208 # Example: see GEOM_TestMeasures.py
9209 aTuple = self.MeasuOp.GetBoundingBox(theShape, precise)
9210 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
9213 ## Get bounding box of the given shape
9214 # @param theShape Shape to obtain bounding box of.
9215 # @param precise TRUE for precise computation; FALSE for fast one.
9216 # @param theName Object name; when specified, this parameter is used
9217 # for result publication in the study. Otherwise, if automatic
9218 # publication is switched on, default value is used for result name.
9220 # @return New GEOM.GEOM_Object, containing the created box.
9222 # @ref tui_measurement_tools_page "Example"
9223 def MakeBoundingBox (self, theShape, precise=False, theName=None):
9225 Get bounding box of the given shape
9228 theShape Shape to obtain bounding box of.
9229 precise TRUE for precise computation; FALSE for fast one.
9230 theName Object name; when specified, this parameter is used
9231 for result publication in the study. Otherwise, if automatic
9232 publication is switched on, default value is used for result name.
9235 New GEOM.GEOM_Object, containing the created box.
9237 # Example: see GEOM_TestMeasures.py
9238 anObj = self.MeasuOp.MakeBoundingBox(theShape, precise)
9239 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
9240 self._autoPublish(anObj, theName, "bndbox")
9243 ## Get inertia matrix and moments of inertia of theShape.
9244 # @param theShape Shape to calculate inertia of.
9245 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9246 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
9247 # Ix,Iy,Iz: Moments of inertia of the given shape.
9249 # @ref tui_measurement_tools_page "Example"
9250 def Inertia(self,theShape):
9252 Get inertia matrix and moments of inertia of theShape.
9255 theShape Shape to calculate inertia of.
9258 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
9259 I(1-3)(1-3): Components of the inertia matrix of the given shape.
9260 Ix,Iy,Iz: Moments of inertia of the given shape.
9262 # Example: see GEOM_TestMeasures.py
9263 aTuple = self.MeasuOp.GetInertia(theShape)
9264 RaiseIfFailed("GetInertia", self.MeasuOp)
9267 ## Get if coords are included in the shape (ST_IN or ST_ON)
9268 # @param theShape Shape
9269 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9270 # @param tolerance to be used (default is 1.0e-7)
9271 # @return list_of_boolean = [res1, res2, ...]
9272 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
9274 Get if coords are included in the shape (ST_IN or ST_ON)
9278 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
9279 tolerance to be used (default is 1.0e-7)
9282 list_of_boolean = [res1, res2, ...]
9284 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
9286 ## Get minimal distance between the given shapes.
9287 # @param theShape1,theShape2 Shapes to find minimal distance between.
9288 # @return Value of the minimal distance between the given shapes.
9290 # @ref tui_measurement_tools_page "Example"
9291 def MinDistance(self, theShape1, theShape2):
9293 Get minimal distance between the given shapes.
9296 theShape1,theShape2 Shapes to find minimal distance between.
9299 Value of the minimal distance between the given shapes.
9301 # Example: see GEOM_TestMeasures.py
9302 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9303 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9306 ## Get minimal distance between the given shapes.
9307 # @param theShape1,theShape2 Shapes to find minimal distance between.
9308 # @return Value of the minimal distance between the given shapes, in form of list
9309 # [Distance, DX, DY, DZ].
9311 # @ref swig_all_measure "Example"
9312 def MinDistanceComponents(self, theShape1, theShape2):
9314 Get minimal distance between the given shapes.
9317 theShape1,theShape2 Shapes to find minimal distance between.
9320 Value of the minimal distance between the given shapes, in form of list
9321 [Distance, DX, DY, DZ]
9323 # Example: see GEOM_TestMeasures.py
9324 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
9325 RaiseIfFailed("GetMinDistance", self.MeasuOp)
9326 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
9329 ## Get closest points of the given shapes.
9330 # @param theShape1,theShape2 Shapes to find closest points of.
9331 # @return The number of found solutions (-1 in case of infinite number of
9332 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9334 # @ref tui_measurement_tools_page "Example"
9335 def ClosestPoints (self, theShape1, theShape2):
9337 Get closest points of the given shapes.
9340 theShape1,theShape2 Shapes to find closest points of.
9343 The number of found solutions (-1 in case of infinite number of
9344 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
9346 # Example: see GEOM_TestMeasures.py
9347 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
9348 RaiseIfFailed("ClosestPoints", self.MeasuOp)
9351 ## Get angle between the given shapes in degrees.
9352 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9353 # @note If both arguments are vectors, the angle is computed in accordance
9354 # with their orientations, otherwise the minimum angle is computed.
9355 # @return Value of the angle between the given shapes in degrees.
9357 # @ref tui_measurement_tools_page "Example"
9358 def GetAngle(self, theShape1, theShape2):
9360 Get angle between the given shapes in degrees.
9363 theShape1,theShape2 Lines or linear edges to find angle between.
9366 If both arguments are vectors, the angle is computed in accordance
9367 with their orientations, otherwise the minimum angle is computed.
9370 Value of the angle between the given shapes in degrees.
9372 # Example: see GEOM_TestMeasures.py
9373 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
9374 RaiseIfFailed("GetAngle", self.MeasuOp)
9377 ## Get angle between the given shapes in radians.
9378 # @param theShape1,theShape2 Lines or linear edges to find angle between.
9379 # @note If both arguments are vectors, the angle is computed in accordance
9380 # with their orientations, otherwise the minimum angle is computed.
9381 # @return Value of the angle between the given shapes in radians.
9383 # @ref tui_measurement_tools_page "Example"
9384 def GetAngleRadians(self, theShape1, theShape2):
9386 Get angle between the given shapes in radians.
9389 theShape1,theShape2 Lines or linear edges to find angle between.
9393 If both arguments are vectors, the angle is computed in accordance
9394 with their orientations, otherwise the minimum angle is computed.
9397 Value of the angle between the given shapes in radians.
9399 # Example: see GEOM_TestMeasures.py
9400 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
9401 RaiseIfFailed("GetAngle", self.MeasuOp)
9404 ## Get angle between the given vectors in degrees.
9405 # @param theShape1,theShape2 Vectors to find angle between.
9406 # @param theFlag If True, the normal vector is defined by the two vectors cross,
9407 # if False, the opposite vector to the normal vector is used.
9408 # @return Value of the angle between the given vectors in degrees.
9410 # @ref tui_measurement_tools_page "Example"
9411 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
9413 Get angle between the given vectors in degrees.
9416 theShape1,theShape2 Vectors to find angle between.
9417 theFlag If True, the normal vector is defined by the two vectors cross,
9418 if False, the opposite vector to the normal vector is used.
9421 Value of the angle between the given vectors in degrees.
9423 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
9425 anAngle = 360. - anAngle
9426 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
9429 ## The same as GetAngleVectors, but the result is in radians.
9430 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
9432 Get angle between the given vectors in radians.
9435 theShape1,theShape2 Vectors to find angle between.
9436 theFlag If True, the normal vector is defined by the two vectors cross,
9437 if False, the opposite vector to the normal vector is used.
9440 Value of the angle between the given vectors in radians.
9442 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
9445 ## @name Curve Curvature Measurement
9446 # Methods for receiving radius of curvature of curves
9447 # in the given point
9450 ## Measure curvature of a curve at a point, set by parameter.
9451 # @param theCurve a curve.
9452 # @param theParam parameter.
9453 # @return radius of curvature of \a theCurve.
9455 # @ref swig_todo "Example"
9456 def CurveCurvatureByParam(self, theCurve, theParam):
9458 Measure curvature of a curve at a point, set by parameter.
9465 radius of curvature of theCurve.
9467 # Example: see GEOM_TestMeasures.py
9468 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
9469 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
9472 ## Measure curvature of a curve at a point.
9473 # @param theCurve a curve.
9474 # @param thePoint given point.
9475 # @return radius of curvature of \a theCurve.
9477 # @ref swig_todo "Example"
9478 def CurveCurvatureByPoint(self, theCurve, thePoint):
9480 Measure curvature of a curve at a point.
9484 thePoint given point.
9487 radius of curvature of theCurve.
9489 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
9490 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
9494 ## @name Surface Curvature Measurement
9495 # Methods for receiving max and min radius of curvature of surfaces
9496 # in the given point
9499 ## Measure max radius of curvature of surface.
9500 # @param theSurf the given surface.
9501 # @param theUParam Value of U-parameter on the referenced surface.
9502 # @param theVParam Value of V-parameter on the referenced surface.
9503 # @return max radius of curvature of theSurf.
9505 ## @ref swig_todo "Example"
9506 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9508 Measure max radius of curvature of surface.
9511 theSurf the given surface.
9512 theUParam Value of U-parameter on the referenced surface.
9513 theVParam Value of V-parameter on the referenced surface.
9516 max radius of curvature of theSurf.
9518 # Example: see GEOM_TestMeasures.py
9519 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9520 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
9523 ## Measure max radius of curvature of surface in the given point
9524 # @param theSurf the given surface.
9525 # @param thePoint given point.
9526 # @return max radius of curvature of theSurf.
9528 ## @ref swig_todo "Example"
9529 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
9531 Measure max radius of curvature of surface in the given point.
9534 theSurf the given surface.
9535 thePoint given point.
9538 max radius of curvature of theSurf.
9540 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
9541 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
9544 ## Measure min radius of curvature of surface.
9545 # @param theSurf the given surface.
9546 # @param theUParam Value of U-parameter on the referenced surface.
9547 # @param theVParam Value of V-parameter on the referenced surface.
9548 # @return min radius of curvature of theSurf.
9550 ## @ref swig_todo "Example"
9551 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
9553 Measure min radius of curvature of surface.
9556 theSurf the given surface.
9557 theUParam Value of U-parameter on the referenced surface.
9558 theVParam Value of V-parameter on the referenced surface.
9561 Min radius of curvature of theSurf.
9563 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
9564 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
9567 ## Measure min radius of curvature of surface in the given point
9568 # @param theSurf the given surface.
9569 # @param thePoint given point.
9570 # @return min radius of curvature of theSurf.
9572 ## @ref swig_todo "Example"
9573 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
9575 Measure min radius of curvature of surface in the given point.
9578 theSurf the given surface.
9579 thePoint given point.
9582 Min radius of curvature of theSurf.
9584 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
9585 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
9589 ## Get min and max tolerances of sub-shapes of theShape
9590 # @param theShape Shape, to get tolerances of.
9591 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
9592 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
9593 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
9594 # VertMin,VertMax: Min and max tolerances of the vertices.
9596 # @ref tui_measurement_tools_page "Example"
9597 def Tolerance(self,theShape):
9599 Get min and max tolerances of sub-shapes of theShape
9602 theShape Shape, to get tolerances of.
9605 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
9606 FaceMin,FaceMax: Min and max tolerances of the faces.
9607 EdgeMin,EdgeMax: Min and max tolerances of the edges.
9608 VertMin,VertMax: Min and max tolerances of the vertices.
9610 # Example: see GEOM_TestMeasures.py
9611 aTuple = self.MeasuOp.GetTolerance(theShape)
9612 RaiseIfFailed("GetTolerance", self.MeasuOp)
9615 ## Obtain description of the given shape (number of sub-shapes of each type)
9616 # @param theShape Shape to be described.
9617 # @return Description of the given shape.
9619 # @ref tui_measurement_tools_page "Example"
9620 def WhatIs(self,theShape):
9622 Obtain description of the given shape (number of sub-shapes of each type)
9625 theShape Shape to be described.
9628 Description of the given shape.
9630 # Example: see GEOM_TestMeasures.py
9631 aDescr = self.MeasuOp.WhatIs(theShape)
9632 RaiseIfFailed("WhatIs", self.MeasuOp)
9635 ## Obtain quantity of shapes of the given type in \a theShape.
9636 # If \a theShape is of type \a theType, it is also counted.
9637 # @param theShape Shape to be described.
9638 # @param theType the given ShapeType().
9639 # @return Quantity of shapes of type \a theType in \a theShape.
9641 # @ref tui_measurement_tools_page "Example"
9642 def NbShapes (self, theShape, theType):
9644 Obtain quantity of shapes of the given type in theShape.
9645 If theShape is of type theType, it is also counted.
9648 theShape Shape to be described.
9649 theType the given geompy.ShapeType
9652 Quantity of shapes of type theType in theShape.
9654 # Example: see GEOM_TestMeasures.py
9655 listSh = self.SubShapeAllIDs(theShape, theType)
9659 ## Obtain quantity of shapes of each type in \a theShape.
9660 # The \a theShape is also counted.
9661 # @param theShape Shape to be described.
9662 # @return Dictionary of ShapeType() with bound quantities of shapes.
9664 # @ref tui_measurement_tools_page "Example"
9665 def ShapeInfo (self, theShape):
9667 Obtain quantity of shapes of each type in theShape.
9668 The theShape is also counted.
9671 theShape Shape to be described.
9674 Dictionary of geompy.ShapeType with bound quantities of shapes.
9676 # Example: see GEOM_TestMeasures.py
9678 for typeSh in self.ShapeType:
9679 if typeSh in ( "AUTO", "SHAPE" ): continue
9680 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
9686 def GetCreationInformation(self, theShape):
9687 info = theShape.GetCreationInformation()
9689 opName = info.operationName
9690 if not opName: opName = "no info available"
9691 res = "Operation: " + opName
9693 for parVal in info.params:
9694 res += " \n %s = %s" % ( parVal.name, parVal.value )
9697 ## Get a point, situated at the centre of mass of theShape.
9698 # @param theShape Shape to define centre of mass of.
9699 # @param theName Object name; when specified, this parameter is used
9700 # for result publication in the study. Otherwise, if automatic
9701 # publication is switched on, default value is used for result name.
9703 # @return New GEOM.GEOM_Object, containing the created point.
9705 # @ref tui_measurement_tools_page "Example"
9706 def MakeCDG(self, theShape, theName=None):
9708 Get a point, situated at the centre of mass of theShape.
9711 theShape Shape to define centre of mass of.
9712 theName Object name; when specified, this parameter is used
9713 for result publication in the study. Otherwise, if automatic
9714 publication is switched on, default value is used for result name.
9717 New GEOM.GEOM_Object, containing the created point.
9719 # Example: see GEOM_TestMeasures.py
9720 anObj = self.MeasuOp.GetCentreOfMass(theShape)
9721 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
9722 self._autoPublish(anObj, theName, "centerOfMass")
9725 ## Get a vertex sub-shape by index depended with orientation.
9726 # @param theShape Shape to find sub-shape.
9727 # @param theIndex Index to find vertex by this index (starting from zero)
9728 # @param theName Object name; when specified, this parameter is used
9729 # for result publication in the study. Otherwise, if automatic
9730 # publication is switched on, default value is used for result name.
9732 # @return New GEOM.GEOM_Object, containing the created vertex.
9734 # @ref tui_measurement_tools_page "Example"
9735 def GetVertexByIndex(self, theShape, theIndex, theName=None):
9737 Get a vertex sub-shape by index depended with orientation.
9740 theShape Shape to find sub-shape.
9741 theIndex Index to find vertex by this index (starting from zero)
9742 theName Object name; when specified, this parameter is used
9743 for result publication in the study. Otherwise, if automatic
9744 publication is switched on, default value is used for result name.
9747 New GEOM.GEOM_Object, containing the created vertex.
9749 # Example: see GEOM_TestMeasures.py
9750 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
9751 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
9752 self._autoPublish(anObj, theName, "vertex")
9755 ## Get the first vertex of wire/edge depended orientation.
9756 # @param theShape Shape to find first vertex.
9757 # @param theName Object name; when specified, this parameter is used
9758 # for result publication in the study. Otherwise, if automatic
9759 # publication is switched on, default value is used for result name.
9761 # @return New GEOM.GEOM_Object, containing the created vertex.
9763 # @ref tui_measurement_tools_page "Example"
9764 def GetFirstVertex(self, theShape, theName=None):
9766 Get the first vertex of wire/edge depended orientation.
9769 theShape Shape to find first vertex.
9770 theName Object name; when specified, this parameter is used
9771 for result publication in the study. Otherwise, if automatic
9772 publication is switched on, default value is used for result name.
9775 New GEOM.GEOM_Object, containing the created vertex.
9777 # Example: see GEOM_TestMeasures.py
9778 # note: auto-publishing is done in self.GetVertexByIndex()
9779 anObj = self.GetVertexByIndex(theShape, 0, theName)
9780 RaiseIfFailed("GetFirstVertex", self.MeasuOp)
9783 ## Get the last vertex of wire/edge depended orientation.
9784 # @param theShape Shape to find last vertex.
9785 # @param theName Object name; when specified, this parameter is used
9786 # for result publication in the study. Otherwise, if automatic
9787 # publication is switched on, default value is used for result name.
9789 # @return New GEOM.GEOM_Object, containing the created vertex.
9791 # @ref tui_measurement_tools_page "Example"
9792 def GetLastVertex(self, theShape, theName=None):
9794 Get the last vertex of wire/edge depended orientation.
9797 theShape Shape to find last vertex.
9798 theName Object name; when specified, this parameter is used
9799 for result publication in the study. Otherwise, if automatic
9800 publication is switched on, default value is used for result name.
9803 New GEOM.GEOM_Object, containing the created vertex.
9805 # Example: see GEOM_TestMeasures.py
9806 nb_vert = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
9807 # note: auto-publishing is done in self.GetVertexByIndex()
9808 anObj = self.GetVertexByIndex(theShape, (nb_vert-1), theName)
9809 RaiseIfFailed("GetLastVertex", self.MeasuOp)
9812 ## Get a normale to the given face. If the point is not given,
9813 # the normale is calculated at the center of mass.
9814 # @param theFace Face to define normale of.
9815 # @param theOptionalPoint Point to compute the normale at.
9816 # @param theName Object name; when specified, this parameter is used
9817 # for result publication in the study. Otherwise, if automatic
9818 # publication is switched on, default value is used for result name.
9820 # @return New GEOM.GEOM_Object, containing the created vector.
9822 # @ref swig_todo "Example"
9823 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
9825 Get a normale to the given face. If the point is not given,
9826 the normale is calculated at the center of mass.
9829 theFace Face to define normale of.
9830 theOptionalPoint Point to compute the normale at.
9831 theName Object name; when specified, this parameter is used
9832 for result publication in the study. Otherwise, if automatic
9833 publication is switched on, default value is used for result name.
9836 New GEOM.GEOM_Object, containing the created vector.
9838 # Example: see GEOM_TestMeasures.py
9839 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
9840 RaiseIfFailed("GetNormal", self.MeasuOp)
9841 self._autoPublish(anObj, theName, "normal")
9844 ## Check a topology of the given shape.
9845 # @param theShape Shape to check validity of.
9846 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
9847 # if TRUE, the shape's geometry will be checked also.
9848 # @param theReturnStatus If FALSE and if theShape is invalid, a description \n
9849 # of problem is printed.
9850 # if TRUE and if theShape is invalid, the description
9851 # of problem is also returned.
9852 # @return TRUE, if the shape "seems to be valid".
9854 # @ref tui_measurement_tools_page "Example"
9855 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
9857 Check a topology of the given shape.
9860 theShape Shape to check validity of.
9861 theIsCheckGeom If FALSE, only the shape's topology will be checked,
9862 if TRUE, the shape's geometry will be checked also.
9863 theReturnStatus If FALSE and if theShape is invalid, a description
9864 of problem is printed.
9865 if TRUE and if theShape is invalid, the description
9866 of problem is returned.
9869 TRUE, if the shape "seems to be valid".
9870 If theShape is invalid, prints a description of problem.
9871 This description can also be returned.
9873 # Example: see GEOM_TestMeasures.py
9875 (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape)
9876 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
9878 (IsValid, Status) = self.MeasuOp.CheckShape(theShape)
9879 RaiseIfFailed("CheckShape", self.MeasuOp)
9881 if theReturnStatus == 0:
9883 if theReturnStatus == 1:
9884 return (IsValid, Status)
9887 ## Detect self-intersections in the given shape.
9888 # @param theShape Shape to check.
9889 # @return TRUE, if the shape contains no self-intersections.
9891 # @ref tui_measurement_tools_page "Example"
9892 def CheckSelfIntersections(self, theShape):
9894 Detect self-intersections in the given shape.
9897 theShape Shape to check.
9900 TRUE, if the shape contains no self-intersections.
9902 # Example: see GEOM_TestMeasures.py
9903 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape)
9904 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
9907 ## Get position (LCS) of theShape.
9909 # Origin of the LCS is situated at the shape's center of mass.
9910 # Axes of the LCS are obtained from shape's location or,
9911 # if the shape is a planar face, from position of its plane.
9913 # @param theShape Shape to calculate position of.
9914 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9915 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
9916 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9917 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9919 # @ref swig_todo "Example"
9920 def GetPosition(self,theShape):
9922 Get position (LCS) of theShape.
9923 Origin of the LCS is situated at the shape's center of mass.
9924 Axes of the LCS are obtained from shape's location or,
9925 if the shape is a planar face, from position of its plane.
9928 theShape Shape to calculate position of.
9931 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
9932 Ox,Oy,Oz: Coordinates of shape's LCS origin.
9933 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
9934 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
9936 # Example: see GEOM_TestMeasures.py
9937 aTuple = self.MeasuOp.GetPosition(theShape)
9938 RaiseIfFailed("GetPosition", self.MeasuOp)
9941 ## Get kind of theShape.
9943 # @param theShape Shape to get a kind of.
9944 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
9945 # and a list of parameters, describing the shape.
9946 # @note Concrete meaning of each value, returned via \a theIntegers
9947 # or \a theDoubles list depends on the kind() of the shape.
9949 # @ref swig_todo "Example"
9950 def KindOfShape(self,theShape):
9952 Get kind of theShape.
9955 theShape Shape to get a kind of.
9958 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
9959 and a list of parameters, describing the shape.
9961 Concrete meaning of each value, returned via theIntegers
9962 or theDoubles list depends on the geompy.kind of the shape
9964 # Example: see GEOM_TestMeasures.py
9965 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
9966 RaiseIfFailed("KindOfShape", self.MeasuOp)
9968 aKind = aRoughTuple[0]
9969 anInts = aRoughTuple[1]
9970 aDbls = aRoughTuple[2]
9972 # Now there is no exception from this rule:
9973 aKindTuple = [aKind] + aDbls + anInts
9975 # If they are we will regroup parameters for such kind of shape.
9977 #if aKind == kind.SOME_KIND:
9978 # # SOME_KIND int int double int double double
9979 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
9986 ## @addtogroup l2_import_export
9989 ## Import a shape from the BREP or IGES or STEP file
9990 # (depends on given format) with given name.
9991 # @param theFileName The file, containing the shape.
9992 # @param theFormatName Specify format for the file reading.
9993 # Available formats can be obtained with InsertOp.ImportTranslators() method.
9994 # If format 'IGES_SCALE' is used instead of 'IGES' or
9995 # format 'STEP_SCALE' is used instead of 'STEP',
9996 # length unit will be set to 'meter' and result model will be scaled.
9997 # @param theName Object name; when specified, this parameter is used
9998 # for result publication in the study. Otherwise, if automatic
9999 # publication is switched on, default value is used for result name.
10001 # @return New GEOM.GEOM_Object, containing the imported shape.
10003 # @ref swig_Import_Export "Example"
10004 def ImportFile(self, theFileName, theFormatName, theName=None):
10006 Import a shape from the BREP or IGES or STEP file
10007 (depends on given format) with given name.
10010 theFileName The file, containing the shape.
10011 theFormatName Specify format for the file reading.
10012 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
10013 If format 'IGES_SCALE' is used instead of 'IGES' or
10014 format 'STEP_SCALE' is used instead of 'STEP',
10015 length unit will be set to 'meter' and result model will be scaled.
10016 theName Object name; when specified, this parameter is used
10017 for result publication in the study. Otherwise, if automatic
10018 publication is switched on, default value is used for result name.
10021 New GEOM.GEOM_Object, containing the imported shape.
10023 # Example: see GEOM_TestOthers.py
10024 anObj = self.InsertOp.ImportFile(theFileName, theFormatName)
10025 RaiseIfFailed("ImportFile", self.InsertOp)
10026 self._autoPublish(anObj, theName, "imported")
10029 ## Deprecated analog of ImportFile()
10030 def Import(self, theFileName, theFormatName, theName=None):
10032 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
10034 print "WARNING: Function Import is deprecated, use ImportFile instead"
10035 # note: auto-publishing is done in self.ImportFile()
10036 return self.ImportFile(theFileName, theFormatName, theName)
10038 ## Shortcut to ImportFile() for BREP format.
10039 # Import a shape from the BREP file with given name.
10040 # @param theFileName The file, containing the shape.
10041 # @param theName Object name; when specified, this parameter is used
10042 # for result publication in the study. Otherwise, if automatic
10043 # publication is switched on, default value is used for result name.
10045 # @return New GEOM.GEOM_Object, containing the imported shape.
10047 # @ref swig_Import_Export "Example"
10048 def ImportBREP(self, theFileName, theName=None):
10050 geompy.ImportFile(...) function for BREP format
10051 Import a shape from the BREP file with given name.
10054 theFileName The file, containing the shape.
10055 theName Object name; when specified, this parameter is used
10056 for result publication in the study. Otherwise, if automatic
10057 publication is switched on, default value is used for result name.
10060 New GEOM.GEOM_Object, containing the imported shape.
10062 # Example: see GEOM_TestOthers.py
10063 # note: auto-publishing is done in self.ImportFile()
10064 return self.ImportFile(theFileName, "BREP", theName)
10066 ## Shortcut to ImportFile() for IGES format
10067 # Import a shape from the IGES file with given name.
10068 # @param theFileName The file, containing the shape.
10069 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
10070 # and result model will be scaled, if its units are not meters.
10071 # If False (default), file length units will be taken into account.
10072 # @param theName Object name; when specified, this parameter is used
10073 # for result publication in the study. Otherwise, if automatic
10074 # publication is switched on, default value is used for result name.
10076 # @return New GEOM.GEOM_Object, containing the imported shape.
10078 # @ref swig_Import_Export "Example"
10079 def ImportIGES(self, theFileName, ignoreUnits = False, theName=None):
10081 geompy.ImportFile(...) function for IGES format
10084 theFileName The file, containing the shape.
10085 ignoreUnits If True, file length units will be ignored (set to 'meter')
10086 and result model will be scaled, if its units are not meters.
10087 If False (default), file length units will be taken into account.
10088 theName Object name; when specified, this parameter is used
10089 for result publication in the study. Otherwise, if automatic
10090 publication is switched on, default value is used for result name.
10093 New GEOM.GEOM_Object, containing the imported shape.
10095 # Example: see GEOM_TestOthers.py
10096 # note: auto-publishing is done in self.ImportFile()
10098 return self.ImportFile(theFileName, "IGES_SCALE", theName)
10099 return self.ImportFile(theFileName, "IGES", theName)
10101 ## Return length unit from given IGES file
10102 # @param theFileName The file, containing the shape.
10103 # @return String, containing the units name.
10105 # @ref swig_Import_Export "Example"
10106 def GetIGESUnit(self, theFileName):
10108 Return length units from given IGES file
10111 theFileName The file, containing the shape.
10114 String, containing the units name.
10116 # Example: see GEOM_TestOthers.py
10117 aUnitName = self.InsertOp.ReadValue(theFileName, "IGES", "LEN_UNITS")
10120 ## Shortcut to ImportFile() for STEP format
10121 # Import a shape from the STEP file with given name.
10122 # @param theFileName The file, containing the shape.
10123 # @param ignoreUnits If True, file length units will be ignored (set to 'meter')
10124 # and result model will be scaled, if its units are not meters.
10125 # If False (default), file length units will be taken into account.
10126 # @param theName Object name; when specified, this parameter is used
10127 # for result publication in the study. Otherwise, if automatic
10128 # publication is switched on, default value is used for result name.
10130 # @return New GEOM.GEOM_Object, containing the imported shape.
10132 # @ref swig_Import_Export "Example"
10133 def ImportSTEP(self, theFileName, ignoreUnits = False, theName=None):
10135 geompy.ImportFile(...) function for STEP format
10138 theFileName The file, containing the shape.
10139 ignoreUnits If True, file length units will be ignored (set to 'meter')
10140 and result model will be scaled, if its units are not meters.
10141 If False (default), file length units will be taken into account.
10142 theName Object name; when specified, this parameter is used
10143 for result publication in the study. Otherwise, if automatic
10144 publication is switched on, default value is used for result name.
10147 New GEOM.GEOM_Object, containing the imported shape.
10149 # Example: see GEOM_TestOthers.py
10150 # note: auto-publishing is done in self.ImportFile()
10152 return self.ImportFile(theFileName, "STEP_SCALE", theName)
10153 return self.ImportFile(theFileName, "STEP", theName)
10155 ## Return length unit from given IGES or STEP file
10156 # @param theFileName The file, containing the shape.
10157 # @return String, containing the units name.
10159 # @ref swig_Import_Export "Example"
10160 def GetSTEPUnit(self, theFileName):
10162 Return length units from given STEP file
10165 theFileName The file, containing the shape.
10168 String, containing the units name.
10170 # Example: see GEOM_TestOthers.py
10171 aUnitName = self.InsertOp.ReadValue(theFileName, "STEP", "LEN_UNITS")
10174 ## Read a shape from the binary stream, containing its bounding representation (BRep).
10175 # @note This method will not be dumped to the python script by DumpStudy functionality.
10176 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
10177 # @param theStream The BRep binary stream.
10178 # @param theName Object name; when specified, this parameter is used
10179 # for result publication in the study. Otherwise, if automatic
10180 # publication is switched on, default value is used for result name.
10182 # @return New GEOM_Object, containing the shape, read from theStream.
10184 # @ref swig_Import_Export "Example"
10185 def RestoreShape (self, theStream, theName=None):
10187 Read a shape from the binary stream, containing its bounding representation (BRep).
10190 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
10193 theStream The BRep binary stream.
10194 theName Object name; when specified, this parameter is used
10195 for result publication in the study. Otherwise, if automatic
10196 publication is switched on, default value is used for result name.
10199 New GEOM_Object, containing the shape, read from theStream.
10201 # Example: see GEOM_TestOthers.py
10202 anObj = self.InsertOp.RestoreShape(theStream)
10203 RaiseIfFailed("RestoreShape", self.InsertOp)
10204 self._autoPublish(anObj, theName, "restored")
10207 ## Export the given shape into a file with given name.
10208 # @param theObject Shape to be stored in the file.
10209 # @param theFileName Name of the file to store the given shape in.
10210 # @param theFormatName Specify format for the shape storage.
10211 # Available formats can be obtained with
10212 # geompy.InsertOp.ExportTranslators()[0] method.
10214 # @ref swig_Import_Export "Example"
10215 def Export(self, theObject, theFileName, theFormatName):
10217 Export the given shape into a file with given name.
10220 theObject Shape to be stored in the file.
10221 theFileName Name of the file to store the given shape in.
10222 theFormatName Specify format for the shape storage.
10223 Available formats can be obtained with
10224 geompy.InsertOp.ExportTranslators()[0] method.
10226 # Example: see GEOM_TestOthers.py
10227 self.InsertOp.Export(theObject, theFileName, theFormatName)
10228 if self.InsertOp.IsDone() == 0:
10229 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
10233 ## Shortcut to Export() for BREP format
10235 # @ref swig_Import_Export "Example"
10236 def ExportBREP(self,theObject, theFileName):
10238 geompy.Export(...) function for BREP format
10240 # Example: see GEOM_TestOthers.py
10241 return self.Export(theObject, theFileName, "BREP")
10243 ## Shortcut to Export() for IGES format
10245 # @ref swig_Import_Export "Example"
10246 def ExportIGES(self,theObject, theFileName):
10248 geompy.Export(...) function for IGES format
10250 # Example: see GEOM_TestOthers.py
10251 return self.Export(theObject, theFileName, "IGES")
10253 ## Shortcut to Export() for STEP format
10255 # @ref swig_Import_Export "Example"
10256 def ExportSTEP(self,theObject, theFileName):
10258 geompy.Export(...) function for STEP format
10260 # Example: see GEOM_TestOthers.py
10261 return self.Export(theObject, theFileName, "STEP")
10263 # end of l2_import_export
10266 ## @addtogroup l3_blocks
10269 ## Create a quadrangle face from four edges. Order of Edges is not
10270 # important. It is not necessary that edges share the same vertex.
10271 # @param E1,E2,E3,E4 Edges for the face bound.
10272 # @param theName Object name; when specified, this parameter is used
10273 # for result publication in the study. Otherwise, if automatic
10274 # publication is switched on, default value is used for result name.
10276 # @return New GEOM.GEOM_Object, containing the created face.
10278 # @ref tui_building_by_blocks_page "Example"
10279 def MakeQuad(self, E1, E2, E3, E4, theName=None):
10281 Create a quadrangle face from four edges. Order of Edges is not
10282 important. It is not necessary that edges share the same vertex.
10285 E1,E2,E3,E4 Edges for the face bound.
10286 theName Object name; when specified, this parameter is used
10287 for result publication in the study. Otherwise, if automatic
10288 publication is switched on, default value is used for result name.
10291 New GEOM.GEOM_Object, containing the created face.
10294 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
10296 # Example: see GEOM_Spanner.py
10297 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
10298 RaiseIfFailed("MakeQuad", self.BlocksOp)
10299 self._autoPublish(anObj, theName, "quad")
10302 ## Create a quadrangle face on two edges.
10303 # The missing edges will be built by creating the shortest ones.
10304 # @param E1,E2 Two opposite edges for the face.
10305 # @param theName Object name; when specified, this parameter is used
10306 # for result publication in the study. Otherwise, if automatic
10307 # publication is switched on, default value is used for result name.
10309 # @return New GEOM.GEOM_Object, containing the created face.
10311 # @ref tui_building_by_blocks_page "Example"
10312 def MakeQuad2Edges(self, E1, E2, theName=None):
10314 Create a quadrangle face on two edges.
10315 The missing edges will be built by creating the shortest ones.
10318 E1,E2 Two opposite edges for the face.
10319 theName Object name; when specified, this parameter is used
10320 for result publication in the study. Otherwise, if automatic
10321 publication is switched on, default value is used for result name.
10324 New GEOM.GEOM_Object, containing the created face.
10328 p1 = geompy.MakeVertex( 0., 0., 0.)
10329 p2 = geompy.MakeVertex(150., 30., 0.)
10330 p3 = geompy.MakeVertex( 0., 120., 50.)
10331 p4 = geompy.MakeVertex( 0., 40., 70.)
10333 edge1 = geompy.MakeEdge(p1, p2)
10334 edge2 = geompy.MakeEdge(p3, p4)
10335 # create a quadrangle face from two edges
10336 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
10338 # Example: see GEOM_Spanner.py
10339 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
10340 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
10341 self._autoPublish(anObj, theName, "quad")
10344 ## Create a quadrangle face with specified corners.
10345 # The missing edges will be built by creating the shortest ones.
10346 # @param V1,V2,V3,V4 Corner vertices for the face.
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 face.
10353 # @ref tui_building_by_blocks_page "Example 1"
10354 # \n @ref swig_MakeQuad4Vertices "Example 2"
10355 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
10357 Create a quadrangle face with specified corners.
10358 The missing edges will be built by creating the shortest ones.
10361 V1,V2,V3,V4 Corner vertices for the face.
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 face.
10371 p1 = geompy.MakeVertex( 0., 0., 0.)
10372 p2 = geompy.MakeVertex(150., 30., 0.)
10373 p3 = geompy.MakeVertex( 0., 120., 50.)
10374 p4 = geompy.MakeVertex( 0., 40., 70.)
10375 # create a quadrangle from four points in its corners
10376 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
10378 # Example: see GEOM_Spanner.py
10379 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
10380 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
10381 self._autoPublish(anObj, theName, "quad")
10384 ## Create a hexahedral solid, bounded by the six given faces. Order of
10385 # faces is not important. It is not necessary that Faces share the same edge.
10386 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10387 # @param theName Object name; when specified, this parameter is used
10388 # for result publication in the study. Otherwise, if automatic
10389 # publication is switched on, default value is used for result name.
10391 # @return New GEOM.GEOM_Object, containing the created solid.
10393 # @ref tui_building_by_blocks_page "Example 1"
10394 # \n @ref swig_MakeHexa "Example 2"
10395 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
10397 Create a hexahedral solid, bounded by the six given faces. Order of
10398 faces is not important. It is not necessary that Faces share the same edge.
10401 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
10402 theName Object name; when specified, this parameter is used
10403 for result publication in the study. Otherwise, if automatic
10404 publication is switched on, default value is used for result name.
10407 New GEOM.GEOM_Object, containing the created solid.
10410 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
10412 # Example: see GEOM_Spanner.py
10413 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
10414 RaiseIfFailed("MakeHexa", self.BlocksOp)
10415 self._autoPublish(anObj, theName, "hexa")
10418 ## Create a hexahedral solid between two given faces.
10419 # The missing faces will be built by creating the smallest ones.
10420 # @param F1,F2 Two opposite faces for the hexahedral solid.
10421 # @param theName Object name; when specified, this parameter is used
10422 # for result publication in the study. Otherwise, if automatic
10423 # publication is switched on, default value is used for result name.
10425 # @return New GEOM.GEOM_Object, containing the created solid.
10427 # @ref tui_building_by_blocks_page "Example 1"
10428 # \n @ref swig_MakeHexa2Faces "Example 2"
10429 def MakeHexa2Faces(self, F1, F2, theName=None):
10431 Create a hexahedral solid between two given faces.
10432 The missing faces will be built by creating the smallest ones.
10435 F1,F2 Two opposite faces for the hexahedral solid.
10436 theName Object name; when specified, this parameter is used
10437 for result publication in the study. Otherwise, if automatic
10438 publication is switched on, default value is used for result name.
10441 New GEOM.GEOM_Object, containing the created solid.
10444 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
10446 # Example: see GEOM_Spanner.py
10447 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
10448 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
10449 self._autoPublish(anObj, theName, "hexa")
10455 ## @addtogroup l3_blocks_op
10458 ## Get a vertex, found in the given shape by its coordinates.
10459 # @param theShape Block or a compound of blocks.
10460 # @param theX,theY,theZ Coordinates of the sought vertex.
10461 # @param theEpsilon Maximum allowed distance between the resulting
10462 # vertex and point with the given coordinates.
10463 # @param theName Object name; when specified, this parameter is used
10464 # for result publication in the study. Otherwise, if automatic
10465 # publication is switched on, default value is used for result name.
10467 # @return New GEOM.GEOM_Object, containing the found vertex.
10469 # @ref swig_GetPoint "Example"
10470 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
10472 Get a vertex, found in the given shape by its coordinates.
10475 theShape Block or a compound of blocks.
10476 theX,theY,theZ Coordinates of the sought vertex.
10477 theEpsilon Maximum allowed distance between the resulting
10478 vertex and point with the given coordinates.
10479 theName Object name; when specified, this parameter is used
10480 for result publication in the study. Otherwise, if automatic
10481 publication is switched on, default value is used for result name.
10484 New GEOM.GEOM_Object, containing the found vertex.
10487 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
10489 # Example: see GEOM_TestOthers.py
10490 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
10491 RaiseIfFailed("GetPoint", self.BlocksOp)
10492 self._autoPublish(anObj, theName, "vertex")
10495 ## Find a vertex of the given shape, which has minimal distance to the given point.
10496 # @param theShape Any shape.
10497 # @param thePoint Point, close to the desired vertex.
10498 # @param theName Object name; when specified, this parameter is used
10499 # for result publication in the study. Otherwise, if automatic
10500 # publication is switched on, default value is used for result name.
10502 # @return New GEOM.GEOM_Object, containing the found vertex.
10504 # @ref swig_GetVertexNearPoint "Example"
10505 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
10507 Find a vertex of the given shape, which has minimal distance to the given point.
10510 theShape Any shape.
10511 thePoint Point, close to the desired vertex.
10512 theName Object name; when specified, this parameter is used
10513 for result publication in the study. Otherwise, if automatic
10514 publication is switched on, default value is used for result name.
10517 New GEOM.GEOM_Object, containing the found vertex.
10520 pmidle = geompy.MakeVertex(50, 0, 50)
10521 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
10523 # Example: see GEOM_TestOthers.py
10524 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
10525 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
10526 self._autoPublish(anObj, theName, "vertex")
10529 ## Get an edge, found in the given shape by two given vertices.
10530 # @param theShape Block or a compound of blocks.
10531 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
10532 # @param theName Object name; when specified, this parameter is used
10533 # for result publication in the study. Otherwise, if automatic
10534 # publication is switched on, default value is used for result name.
10536 # @return New GEOM.GEOM_Object, containing the found edge.
10538 # @ref swig_GetEdge "Example"
10539 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
10541 Get an edge, found in the given shape by two given vertices.
10544 theShape Block or a compound of blocks.
10545 thePoint1,thePoint2 Points, close to the ends of the desired edge.
10546 theName Object name; when specified, this parameter is used
10547 for result publication in the study. Otherwise, if automatic
10548 publication is switched on, default value is used for result name.
10551 New GEOM.GEOM_Object, containing the found edge.
10553 # Example: see GEOM_Spanner.py
10554 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
10555 RaiseIfFailed("GetEdge", self.BlocksOp)
10556 self._autoPublish(anObj, theName, "edge")
10559 ## Find an edge of the given shape, which has minimal distance to the given point.
10560 # @param theShape Block or a compound of blocks.
10561 # @param thePoint Point, close to the desired edge.
10562 # @param theName Object name; when specified, this parameter is used
10563 # for result publication in the study. Otherwise, if automatic
10564 # publication is switched on, default value is used for result name.
10566 # @return New GEOM.GEOM_Object, containing the found edge.
10568 # @ref swig_GetEdgeNearPoint "Example"
10569 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
10571 Find an edge of the given shape, which has minimal distance to the given point.
10574 theShape Block or a compound of blocks.
10575 thePoint Point, close to the desired edge.
10576 theName Object name; when specified, this parameter is used
10577 for result publication in the study. Otherwise, if automatic
10578 publication is switched on, default value is used for result name.
10581 New GEOM.GEOM_Object, containing the found edge.
10583 # Example: see GEOM_TestOthers.py
10584 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
10585 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
10586 self._autoPublish(anObj, theName, "edge")
10589 ## Returns a face, found in the given shape by four given corner vertices.
10590 # @param theShape Block or a compound of blocks.
10591 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
10592 # @param theName Object name; when specified, this parameter is used
10593 # for result publication in the study. Otherwise, if automatic
10594 # publication is switched on, default value is used for result name.
10596 # @return New GEOM.GEOM_Object, containing the found face.
10598 # @ref swig_todo "Example"
10599 def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
10601 Returns a face, found in the given shape by four given corner vertices.
10604 theShape Block or a compound of blocks.
10605 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
10606 theName Object name; when specified, this parameter is used
10607 for result publication in the study. Otherwise, if automatic
10608 publication is switched on, default value is used for result name.
10611 New GEOM.GEOM_Object, containing the found face.
10613 # Example: see GEOM_Spanner.py
10614 anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
10615 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
10616 self._autoPublish(anObj, theName, "face")
10619 ## Get a face of block, found in the given shape by two given edges.
10620 # @param theShape Block or a compound of blocks.
10621 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
10622 # @param theName Object name; when specified, this parameter is used
10623 # for result publication in the study. Otherwise, if automatic
10624 # publication is switched on, default value is used for result name.
10626 # @return New GEOM.GEOM_Object, containing the found face.
10628 # @ref swig_todo "Example"
10629 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
10631 Get a face of block, found in the given shape by two given edges.
10634 theShape Block or a compound of blocks.
10635 theEdge1,theEdge2 Edges, close to the edges of the desired face.
10636 theName Object name; when specified, this parameter is used
10637 for result publication in the study. Otherwise, if automatic
10638 publication is switched on, default value is used for result name.
10641 New GEOM.GEOM_Object, containing the found face.
10643 # Example: see GEOM_Spanner.py
10644 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
10645 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
10646 self._autoPublish(anObj, theName, "face")
10649 ## Find a face, opposite to the given one in the given block.
10650 # @param theBlock Must be a hexahedral solid.
10651 # @param theFace Face of \a theBlock, opposite to the desired face.
10652 # @param theName Object name; when specified, this parameter is used
10653 # for result publication in the study. Otherwise, if automatic
10654 # publication is switched on, default value is used for result name.
10656 # @return New GEOM.GEOM_Object, containing the found face.
10658 # @ref swig_GetOppositeFace "Example"
10659 def GetOppositeFace(self, theBlock, theFace, theName=None):
10661 Find a face, opposite to the given one in the given block.
10664 theBlock Must be a hexahedral solid.
10665 theFace Face of theBlock, opposite to the desired face.
10666 theName Object name; when specified, this parameter is used
10667 for result publication in the study. Otherwise, if automatic
10668 publication is switched on, default value is used for result name.
10671 New GEOM.GEOM_Object, containing the found face.
10673 # Example: see GEOM_Spanner.py
10674 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
10675 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
10676 self._autoPublish(anObj, theName, "face")
10679 ## Find a face of the given shape, which has minimal distance to the given point.
10680 # @param theShape Block or a compound of blocks.
10681 # @param thePoint Point, close to the desired face.
10682 # @param theName Object name; when specified, this parameter is used
10683 # for result publication in the study. Otherwise, if automatic
10684 # publication is switched on, default value is used for result name.
10686 # @return New GEOM.GEOM_Object, containing the found face.
10688 # @ref swig_GetFaceNearPoint "Example"
10689 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
10691 Find a face of the given shape, which has minimal distance to the given point.
10694 theShape Block or a compound of blocks.
10695 thePoint Point, close to the desired face.
10696 theName Object name; when specified, this parameter is used
10697 for result publication in the study. Otherwise, if automatic
10698 publication is switched on, default value is used for result name.
10701 New GEOM.GEOM_Object, containing the found face.
10703 # Example: see GEOM_Spanner.py
10704 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
10705 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
10706 self._autoPublish(anObj, theName, "face")
10709 ## Find a face of block, whose outside normale has minimal angle with the given vector.
10710 # @param theBlock Block or a compound of blocks.
10711 # @param theVector Vector, close to the normale of the desired face.
10712 # @param theName Object name; when specified, this parameter is used
10713 # for result publication in the study. Otherwise, if automatic
10714 # publication is switched on, default value is used for result name.
10716 # @return New GEOM.GEOM_Object, containing the found face.
10718 # @ref swig_todo "Example"
10719 def GetFaceByNormale(self, theBlock, theVector, theName=None):
10721 Find a face of block, whose outside normale has minimal angle with the given vector.
10724 theBlock Block or a compound of blocks.
10725 theVector Vector, close to the normale of the desired face.
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.GEOM_Object, containing the found face.
10733 # Example: see GEOM_Spanner.py
10734 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
10735 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
10736 self._autoPublish(anObj, theName, "face")
10739 ## Find all sub-shapes of type \a theShapeType of the given shape,
10740 # which have minimal distance to the given point.
10741 # @param theShape Any shape.
10742 # @param thePoint Point, close to the desired shape.
10743 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
10744 # @param theTolerance The tolerance for distances comparison. All shapes
10745 # with distances to the given point in interval
10746 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
10747 # @param theName Object name; when specified, this parameter is used
10748 # for result publication in the study. Otherwise, if automatic
10749 # publication is switched on, default value is used for result name.
10751 # @return New GEOM_Object, containing a group of all found shapes.
10753 # @ref swig_GetShapesNearPoint "Example"
10754 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
10756 Find all sub-shapes of type theShapeType of the given shape,
10757 which have minimal distance to the given point.
10760 theShape Any shape.
10761 thePoint Point, close to the desired shape.
10762 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
10763 theTolerance The tolerance for distances comparison. All shapes
10764 with distances to the given point in interval
10765 [minimal_distance, minimal_distance + theTolerance] will be gathered.
10766 theName Object name; when specified, this parameter is used
10767 for result publication in the study. Otherwise, if automatic
10768 publication is switched on, default value is used for result name.
10771 New GEOM_Object, containing a group of all found shapes.
10773 # Example: see GEOM_TestOthers.py
10774 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
10775 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
10776 self._autoPublish(anObj, theName, "group")
10779 # end of l3_blocks_op
10782 ## @addtogroup l4_blocks_measure
10785 ## Check, if the compound of blocks is given.
10786 # To be considered as a compound of blocks, the
10787 # given shape must satisfy the following conditions:
10788 # - Each element of the compound should be a Block (6 faces and 12 edges).
10789 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10790 # - The compound should be connexe.
10791 # - The glue between two quadrangle faces should be applied.
10792 # @param theCompound The compound to check.
10793 # @return TRUE, if the given shape is a compound of blocks.
10794 # If theCompound is not valid, prints all discovered errors.
10796 # @ref tui_measurement_tools_page "Example 1"
10797 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
10798 def CheckCompoundOfBlocks(self,theCompound):
10800 Check, if the compound of blocks is given.
10801 To be considered as a compound of blocks, the
10802 given shape must satisfy the following conditions:
10803 - Each element of the compound should be a Block (6 faces and 12 edges).
10804 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
10805 - The compound should be connexe.
10806 - The glue between two quadrangle faces should be applied.
10809 theCompound The compound to check.
10812 TRUE, if the given shape is a compound of blocks.
10813 If theCompound is not valid, prints all discovered errors.
10815 # Example: see GEOM_Spanner.py
10816 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound)
10817 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
10819 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
10823 ## Retrieve all non blocks solids and faces from \a theShape.
10824 # @param theShape The shape to explore.
10825 # @param theName Object name; when specified, this parameter is used
10826 # for result publication in the study. Otherwise, if automatic
10827 # publication is switched on, default value is used for result name.
10829 # @return A tuple of two GEOM_Objects. The first object is a group of all
10830 # non block solids (= not 6 faces, or with 6 faces, but with the
10831 # presence of non-quadrangular faces). The second object is a
10832 # group of all non quadrangular faces.
10834 # @ref tui_measurement_tools_page "Example 1"
10835 # \n @ref swig_GetNonBlocks "Example 2"
10836 def GetNonBlocks (self, theShape, theName=None):
10838 Retrieve all non blocks solids and faces from theShape.
10841 theShape The shape to explore.
10842 theName Object name; when specified, this parameter is used
10843 for result publication in the study. Otherwise, if automatic
10844 publication is switched on, default value is used for result name.
10847 A tuple of two GEOM_Objects. The first object is a group of all
10848 non block solids (= not 6 faces, or with 6 faces, but with the
10849 presence of non-quadrangular faces). The second object is a
10850 group of all non quadrangular faces.
10853 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
10855 # Example: see GEOM_Spanner.py
10856 aTuple = self.BlocksOp.GetNonBlocks(theShape)
10857 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
10858 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
10861 ## Remove all seam and degenerated edges from \a theShape.
10862 # Unite faces and edges, sharing one surface. It means that
10863 # this faces must have references to one C++ surface object (handle).
10864 # @param theShape The compound or single solid to remove irregular edges from.
10865 # @param doUnionFaces If True, then unite faces. If False (the default value),
10866 # do not unite faces.
10867 # @param theName Object name; when specified, this parameter is used
10868 # for result publication in the study. Otherwise, if automatic
10869 # publication is switched on, default value is used for result name.
10871 # @return Improved shape.
10873 # @ref swig_RemoveExtraEdges "Example"
10874 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
10876 Remove all seam and degenerated edges from theShape.
10877 Unite faces and edges, sharing one surface. It means that
10878 this faces must have references to one C++ surface object (handle).
10881 theShape The compound or single solid to remove irregular edges from.
10882 doUnionFaces If True, then unite faces. If False (the default value),
10883 do not unite faces.
10884 theName Object name; when specified, this parameter is used
10885 for result publication in the study. Otherwise, if automatic
10886 publication is switched on, default value is used for result name.
10891 # Example: see GEOM_TestOthers.py
10892 nbFacesOptimum = -1 # -1 means do not unite faces
10893 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
10894 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
10895 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
10896 self._autoPublish(anObj, theName, "removeExtraEdges")
10899 ## Performs union faces of \a theShape
10900 # Unite faces sharing one surface. It means that
10901 # these faces must have references to one C++ surface object (handle).
10902 # @param theShape The compound or single solid that contains faces
10903 # to perform union.
10904 # @param theName Object name; when specified, this parameter is used
10905 # for result publication in the study. Otherwise, if automatic
10906 # publication is switched on, default value is used for result name.
10908 # @return Improved shape.
10910 # @ref swig_UnionFaces "Example"
10911 def UnionFaces(self, theShape, theName=None):
10913 Performs union faces of theShape.
10914 Unite faces sharing one surface. It means that
10915 these faces must have references to one C++ surface object (handle).
10918 theShape The compound or single solid that contains faces
10920 theName Object name; when specified, this parameter is used
10921 for result publication in the study. Otherwise, if automatic
10922 publication is switched on, default value is used for result name.
10927 # Example: see GEOM_TestOthers.py
10928 anObj = self.BlocksOp.UnionFaces(theShape)
10929 RaiseIfFailed("UnionFaces", self.BlocksOp)
10930 self._autoPublish(anObj, theName, "unionFaces")
10933 ## Check, if the given shape is a blocks compound.
10934 # Fix all detected errors.
10935 # \note Single block can be also fixed by this method.
10936 # @param theShape The compound to check and improve.
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 # @return Improved compound.
10943 # @ref swig_CheckAndImprove "Example"
10944 def CheckAndImprove(self, theShape, theName=None):
10946 Check, if the given shape is a blocks compound.
10947 Fix all detected errors.
10950 Single block can be also fixed by this method.
10953 theShape The compound to check and improve.
10954 theName Object name; when specified, this parameter is used
10955 for result publication in the study. Otherwise, if automatic
10956 publication is switched on, default value is used for result name.
10961 # Example: see GEOM_TestOthers.py
10962 anObj = self.BlocksOp.CheckAndImprove(theShape)
10963 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
10964 self._autoPublish(anObj, theName, "improved")
10967 # end of l4_blocks_measure
10970 ## @addtogroup l3_blocks_op
10973 ## Get all the blocks, contained in the given compound.
10974 # @param theCompound The compound to explode.
10975 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
10976 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
10977 # @param theName Object name; when specified, this parameter is used
10978 # for result publication in the study. Otherwise, if automatic
10979 # publication is switched on, default value is used for result name.
10981 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
10983 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
10985 # @ref tui_explode_on_blocks "Example 1"
10986 # \n @ref swig_MakeBlockExplode "Example 2"
10987 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
10989 Get all the blocks, contained in the given compound.
10992 theCompound The compound to explode.
10993 theMinNbFaces If solid has lower number of faces, it is not a block.
10994 theMaxNbFaces If solid has higher number of faces, it is not a block.
10995 theName Object name; when specified, this parameter is used
10996 for result publication in the study. Otherwise, if automatic
10997 publication is switched on, default value is used for result name.
11000 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
11003 List of GEOM.GEOM_Object, containing the retrieved blocks.
11005 # Example: see GEOM_TestOthers.py
11006 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
11007 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
11008 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
11009 for anObj in aList:
11010 anObj.SetParameters(Parameters)
11012 self._autoPublish(aList, theName, "block")
11015 ## Find block, containing the given point inside its volume or on boundary.
11016 # @param theCompound Compound, to find block in.
11017 # @param thePoint Point, close to the desired block. If the point lays on
11018 # boundary between some blocks, we return block with nearest center.
11019 # @param theName Object name; when specified, this parameter is used
11020 # for result publication in the study. Otherwise, if automatic
11021 # publication is switched on, default value is used for result name.
11023 # @return New GEOM.GEOM_Object, containing the found block.
11025 # @ref swig_todo "Example"
11026 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
11028 Find block, containing the given point inside its volume or on boundary.
11031 theCompound Compound, to find block in.
11032 thePoint Point, close to the desired block. If the point lays on
11033 boundary between some blocks, we return block with nearest center.
11034 theName Object name; when specified, this parameter is used
11035 for result publication in the study. Otherwise, if automatic
11036 publication is switched on, default value is used for result name.
11039 New GEOM.GEOM_Object, containing the found block.
11041 # Example: see GEOM_Spanner.py
11042 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
11043 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
11044 self._autoPublish(anObj, theName, "block")
11047 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
11048 # @param theCompound Compound, to find block in.
11049 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
11050 # @param theName Object name; when specified, this parameter is used
11051 # for result publication in the study. Otherwise, if automatic
11052 # publication is switched on, default value is used for result name.
11054 # @return New GEOM.GEOM_Object, containing the found block.
11056 # @ref swig_GetBlockByParts "Example"
11057 def GetBlockByParts(self, theCompound, theParts, theName=None):
11059 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
11062 theCompound Compound, to find block in.
11063 theParts List of faces and/or edges and/or vertices to be parts of the found block.
11064 theName Object name; when specified, this parameter is used
11065 for result publication in the study. Otherwise, if automatic
11066 publication is switched on, default value is used for result name.
11069 New GEOM_Object, containing the found block.
11071 # Example: see GEOM_TestOthers.py
11072 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
11073 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
11074 self._autoPublish(anObj, theName, "block")
11077 ## Return all blocks, containing all the elements, passed as the parts.
11078 # @param theCompound Compound, to find blocks in.
11079 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
11080 # @param theName Object name; when specified, this parameter is used
11081 # for result publication in the study. Otherwise, if automatic
11082 # publication is switched on, default value is used for result name.
11084 # @return List of GEOM.GEOM_Object, containing the found blocks.
11086 # @ref swig_todo "Example"
11087 def GetBlocksByParts(self, theCompound, theParts, theName=None):
11089 Return all blocks, containing all the elements, passed as the parts.
11092 theCompound Compound, to find blocks in.
11093 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
11094 theName Object name; when specified, this parameter is used
11095 for result publication in the study. Otherwise, if automatic
11096 publication is switched on, default value is used for result name.
11099 List of GEOM.GEOM_Object, containing the found blocks.
11101 # Example: see GEOM_Spanner.py
11102 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
11103 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
11104 self._autoPublish(aList, theName, "block")
11107 ## Multi-transformate block and glue the result.
11108 # Transformation is defined so, as to superpose direction faces.
11109 # @param Block Hexahedral solid to be multi-transformed.
11110 # @param DirFace1 ID of First direction face.
11111 # @param DirFace2 ID of Second direction face.
11112 # @param NbTimes Quantity of transformations to be done.
11113 # @param theName Object name; when specified, this parameter is used
11114 # for result publication in the study. Otherwise, if automatic
11115 # publication is switched on, default value is used for result name.
11117 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
11119 # @return New GEOM.GEOM_Object, containing the result shape.
11121 # @ref tui_multi_transformation "Example"
11122 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
11124 Multi-transformate block and glue the result.
11125 Transformation is defined so, as to superpose direction faces.
11128 Block Hexahedral solid to be multi-transformed.
11129 DirFace1 ID of First direction face.
11130 DirFace2 ID of Second direction face.
11131 NbTimes 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 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
11140 New GEOM.GEOM_Object, containing the result shape.
11142 # Example: see GEOM_Spanner.py
11143 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
11144 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
11145 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
11146 anObj.SetParameters(Parameters)
11147 self._autoPublish(anObj, theName, "transformed")
11150 ## Multi-transformate block and glue the result.
11151 # @param Block Hexahedral solid to be multi-transformed.
11152 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
11153 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
11154 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
11155 # @param theName Object name; when specified, this parameter is used
11156 # for result publication in the study. Otherwise, if automatic
11157 # publication is switched on, default value is used for result name.
11159 # @return New GEOM.GEOM_Object, containing the result shape.
11161 # @ref tui_multi_transformation "Example"
11162 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
11163 DirFace1V, DirFace2V, NbTimesV, theName=None):
11165 Multi-transformate block and glue the result.
11168 Block Hexahedral solid to be multi-transformed.
11169 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
11170 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
11171 NbTimesU,NbTimesV Quantity of transformations to be done.
11172 theName Object name; when specified, this parameter is used
11173 for result publication in the study. Otherwise, if automatic
11174 publication is switched on, default value is used for result name.
11177 New GEOM.GEOM_Object, containing the result shape.
11179 # Example: see GEOM_Spanner.py
11180 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
11181 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
11182 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
11183 DirFace1V, DirFace2V, NbTimesV)
11184 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
11185 anObj.SetParameters(Parameters)
11186 self._autoPublish(anObj, theName, "transformed")
11189 ## Build all possible propagation groups.
11190 # Propagation group is a set of all edges, opposite to one (main)
11191 # edge of this group directly or through other opposite edges.
11192 # Notion of Opposite Edge make sence only on quadrangle face.
11193 # @param theShape Shape to build propagation groups on.
11194 # @param theName Object name; when specified, this parameter is used
11195 # for result publication in the study. Otherwise, if automatic
11196 # publication is switched on, default value is used for result name.
11198 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
11200 # @ref swig_Propagate "Example"
11201 def Propagate(self, theShape, theName=None):
11203 Build all possible propagation groups.
11204 Propagation group is a set of all edges, opposite to one (main)
11205 edge of this group directly or through other opposite edges.
11206 Notion of Opposite Edge make sence only on quadrangle face.
11209 theShape Shape to build propagation groups on.
11210 theName Object name; when specified, this parameter is used
11211 for result publication in the study. Otherwise, if automatic
11212 publication is switched on, default value is used for result name.
11215 List of GEOM.GEOM_Object, each of them is a propagation group.
11217 # Example: see GEOM_TestOthers.py
11218 listChains = self.BlocksOp.Propagate(theShape)
11219 RaiseIfFailed("Propagate", self.BlocksOp)
11220 self._autoPublish(listChains, theName, "propagate")
11223 # end of l3_blocks_op
11226 ## @addtogroup l3_groups
11229 ## Creates a new group which will store sub-shapes of theMainShape
11230 # @param theMainShape is a GEOM object on which the group is selected
11231 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
11232 # @param theName Object name; when specified, this parameter is used
11233 # for result publication in the study. Otherwise, if automatic
11234 # publication is switched on, default value is used for result name.
11236 # @return a newly created GEOM group (GEOM.GEOM_Object)
11238 # @ref tui_working_with_groups_page "Example 1"
11239 # \n @ref swig_CreateGroup "Example 2"
11240 def CreateGroup(self, theMainShape, theShapeType, theName=None):
11242 Creates a new group which will store sub-shapes of theMainShape
11245 theMainShape is a GEOM object on which the group is selected
11246 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
11247 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
11248 theName Object name; when specified, this parameter is used
11249 for result publication in the study. Otherwise, if automatic
11250 publication is switched on, default value is used for result name.
11253 a newly created GEOM group
11256 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
11259 # Example: see GEOM_TestOthers.py
11260 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
11261 RaiseIfFailed("CreateGroup", self.GroupOp)
11262 self._autoPublish(anObj, theName, "group")
11265 ## Adds a sub-object with ID theSubShapeId to the group
11266 # @param theGroup is a GEOM group to which the new sub-shape is added
11267 # @param theSubShapeID is a sub-shape ID in the main object.
11268 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11270 # @ref tui_working_with_groups_page "Example"
11271 def AddObject(self,theGroup, theSubShapeID):
11273 Adds a sub-object with ID theSubShapeId to the group
11276 theGroup is a GEOM group to which the new sub-shape is added
11277 theSubShapeID is a sub-shape ID in the main object.
11280 Use method GetSubShapeID() to get an unique ID of the sub-shape
11282 # Example: see GEOM_TestOthers.py
11283 self.GroupOp.AddObject(theGroup, theSubShapeID)
11284 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
11285 RaiseIfFailed("AddObject", self.GroupOp)
11289 ## Removes a sub-object with ID \a theSubShapeId from the group
11290 # @param theGroup is a GEOM group from which the new sub-shape is removed
11291 # @param theSubShapeID is a sub-shape ID in the main object.
11292 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
11294 # @ref tui_working_with_groups_page "Example"
11295 def RemoveObject(self,theGroup, theSubShapeID):
11297 Removes a sub-object with ID theSubShapeId from the group
11300 theGroup is a GEOM group from which the new sub-shape is removed
11301 theSubShapeID is a sub-shape ID in the main object.
11304 Use method GetSubShapeID() to get an unique ID of the sub-shape
11306 # Example: see GEOM_TestOthers.py
11307 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
11308 RaiseIfFailed("RemoveObject", self.GroupOp)
11311 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11312 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11313 # @param theSubShapes is a list of sub-shapes to be added.
11315 # @ref tui_working_with_groups_page "Example"
11316 def UnionList (self,theGroup, theSubShapes):
11318 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11321 theGroup is a GEOM group to which the new sub-shapes are added.
11322 theSubShapes is a list of sub-shapes to be added.
11324 # Example: see GEOM_TestOthers.py
11325 self.GroupOp.UnionList(theGroup, theSubShapes)
11326 RaiseIfFailed("UnionList", self.GroupOp)
11329 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11330 # @param theGroup is a GEOM group to which the new sub-shapes are added.
11331 # @param theSubShapes is a list of indices of sub-shapes to be added.
11333 # @ref swig_UnionIDs "Example"
11334 def UnionIDs(self,theGroup, theSubShapes):
11336 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
11339 theGroup is a GEOM group to which the new sub-shapes are added.
11340 theSubShapes is a list of indices of sub-shapes to be added.
11342 # Example: see GEOM_TestOthers.py
11343 self.GroupOp.UnionIDs(theGroup, theSubShapes)
11344 RaiseIfFailed("UnionIDs", self.GroupOp)
11347 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11348 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11349 # @param theSubShapes is a list of sub-shapes to be removed.
11351 # @ref tui_working_with_groups_page "Example"
11352 def DifferenceList (self,theGroup, theSubShapes):
11354 Removes from the group all the given shapes. No errors, if some shapes are not included.
11357 theGroup is a GEOM group from which the sub-shapes are removed.
11358 theSubShapes is a list of sub-shapes to be removed.
11360 # Example: see GEOM_TestOthers.py
11361 self.GroupOp.DifferenceList(theGroup, theSubShapes)
11362 RaiseIfFailed("DifferenceList", self.GroupOp)
11365 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
11366 # @param theGroup is a GEOM group from which the sub-shapes are removed.
11367 # @param theSubShapes is a list of indices of sub-shapes to be removed.
11369 # @ref swig_DifferenceIDs "Example"
11370 def DifferenceIDs(self,theGroup, theSubShapes):
11372 Removes from the group all the given shapes. No errors, if some shapes are not included.
11375 theGroup is a GEOM group from which the sub-shapes are removed.
11376 theSubShapes is a list of indices of sub-shapes to be removed.
11378 # Example: see GEOM_TestOthers.py
11379 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
11380 RaiseIfFailed("DifferenceIDs", self.GroupOp)
11383 ## Union of two groups.
11384 # New group is created. It will contain all entities
11385 # which are present in groups theGroup1 and theGroup2.
11386 # @param theGroup1, theGroup2 are the initial GEOM groups
11387 # to create the united group from.
11388 # @param theName Object name; when specified, this parameter is used
11389 # for result publication in the study. Otherwise, if automatic
11390 # publication is switched on, default value is used for result name.
11392 # @return a newly created GEOM group.
11394 # @ref tui_union_groups_anchor "Example"
11395 def UnionGroups (self, theGroup1, theGroup2, theName=None):
11397 Union of two groups.
11398 New group is created. It will contain all entities
11399 which are present in groups theGroup1 and theGroup2.
11402 theGroup1, theGroup2 are the initial GEOM groups
11403 to create the united group from.
11404 theName Object name; when specified, this parameter is used
11405 for result publication in the study. Otherwise, if automatic
11406 publication is switched on, default value is used for result name.
11409 a newly created GEOM group.
11411 # Example: see GEOM_TestOthers.py
11412 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
11413 RaiseIfFailed("UnionGroups", self.GroupOp)
11414 self._autoPublish(aGroup, theName, "group")
11417 ## Intersection of two groups.
11418 # New group is created. It will contain only those entities
11419 # which are present in both groups theGroup1 and theGroup2.
11420 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11421 # @param theName Object name; when specified, this parameter is used
11422 # for result publication in the study. Otherwise, if automatic
11423 # publication is switched on, default value is used for result name.
11425 # @return a newly created GEOM group.
11427 # @ref tui_intersect_groups_anchor "Example"
11428 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
11430 Intersection of two groups.
11431 New group is created. It will contain only those entities
11432 which are present in both groups theGroup1 and theGroup2.
11435 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
11436 theName Object name; when specified, this parameter is used
11437 for result publication in the study. Otherwise, if automatic
11438 publication is switched on, default value is used for result name.
11441 a newly created GEOM group.
11443 # Example: see GEOM_TestOthers.py
11444 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
11445 RaiseIfFailed("IntersectGroups", self.GroupOp)
11446 self._autoPublish(aGroup, theName, "group")
11449 ## Cut of two groups.
11450 # New group is created. It will contain entities which are
11451 # present in group theGroup1 but are not present in group theGroup2.
11452 # @param theGroup1 is a GEOM group to include elements of.
11453 # @param theGroup2 is a GEOM group to exclude elements of.
11454 # @param theName Object name; when specified, this parameter is used
11455 # for result publication in the study. Otherwise, if automatic
11456 # publication is switched on, default value is used for result name.
11458 # @return a newly created GEOM group.
11460 # @ref tui_cut_groups_anchor "Example"
11461 def CutGroups (self, theGroup1, theGroup2, theName=None):
11464 New group is created. It will contain entities which are
11465 present in group theGroup1 but are not present in group theGroup2.
11468 theGroup1 is a GEOM group to include elements of.
11469 theGroup2 is a GEOM group to exclude elements of.
11470 theName Object name; when specified, this parameter is used
11471 for result publication in the study. Otherwise, if automatic
11472 publication is switched on, default value is used for result name.
11475 a newly created GEOM group.
11477 # Example: see GEOM_TestOthers.py
11478 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
11479 RaiseIfFailed("CutGroups", self.GroupOp)
11480 self._autoPublish(aGroup, theName, "group")
11483 ## Union of list of groups.
11484 # New group is created. It will contain all entities that are
11485 # present in groups listed in theGList.
11486 # @param theGList is a list of GEOM groups to create the united group from.
11487 # @param theName Object name; when specified, this parameter is used
11488 # for result publication in the study. Otherwise, if automatic
11489 # publication is switched on, default value is used for result name.
11491 # @return a newly created GEOM group.
11493 # @ref tui_union_groups_anchor "Example"
11494 def UnionListOfGroups (self, theGList, theName=None):
11496 Union of list of groups.
11497 New group is created. It will contain all entities that are
11498 present in groups listed in theGList.
11501 theGList is a list of GEOM groups to create the united group from.
11502 theName Object name; when specified, this parameter is used
11503 for result publication in the study. Otherwise, if automatic
11504 publication is switched on, default value is used for result name.
11507 a newly created GEOM group.
11509 # Example: see GEOM_TestOthers.py
11510 aGroup = self.GroupOp.UnionListOfGroups(theGList)
11511 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
11512 self._autoPublish(aGroup, theName, "group")
11515 ## Cut of lists of groups.
11516 # New group is created. It will contain only entities
11517 # which are present in groups listed in theGList.
11518 # @param theGList is a list of GEOM groups to include elements of.
11519 # @param theName Object name; when specified, this parameter is used
11520 # for result publication in the study. Otherwise, if automatic
11521 # publication is switched on, default value is used for result name.
11523 # @return a newly created GEOM group.
11525 # @ref tui_intersect_groups_anchor "Example"
11526 def IntersectListOfGroups (self, theGList, theName=None):
11528 Cut of lists of groups.
11529 New group is created. It will contain only entities
11530 which are present in groups listed in theGList.
11533 theGList is a list of GEOM groups to include elements of.
11534 theName Object name; when specified, this parameter is used
11535 for result publication in the study. Otherwise, if automatic
11536 publication is switched on, default value is used for result name.
11539 a newly created GEOM group.
11541 # Example: see GEOM_TestOthers.py
11542 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
11543 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
11544 self._autoPublish(aGroup, theName, "group")
11547 ## Cut of lists of groups.
11548 # New group is created. It will contain only entities
11549 # which are present in groups listed in theGList1 but
11550 # are not present in groups from theGList2.
11551 # @param theGList1 is a list of GEOM groups to include elements of.
11552 # @param theGList2 is a list of GEOM groups to exclude elements of.
11553 # @param theName Object name; when specified, this parameter is used
11554 # for result publication in the study. Otherwise, if automatic
11555 # publication is switched on, default value is used for result name.
11557 # @return a newly created GEOM group.
11559 # @ref tui_cut_groups_anchor "Example"
11560 def CutListOfGroups (self, theGList1, theGList2, theName=None):
11562 Cut of lists of groups.
11563 New group is created. It will contain only entities
11564 which are present in groups listed in theGList1 but
11565 are not present in groups from theGList2.
11568 theGList1 is a list of GEOM groups to include elements of.
11569 theGList2 is a list of GEOM groups to exclude elements of.
11570 theName Object name; when specified, this parameter is used
11571 for result publication in the study. Otherwise, if automatic
11572 publication is switched on, default value is used for result name.
11575 a newly created GEOM group.
11577 # Example: see GEOM_TestOthers.py
11578 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
11579 RaiseIfFailed("CutListOfGroups", self.GroupOp)
11580 self._autoPublish(aGroup, theName, "group")
11583 ## Returns a list of sub-objects ID stored in the group
11584 # @param theGroup is a GEOM group for which a list of IDs is requested
11586 # @ref swig_GetObjectIDs "Example"
11587 def GetObjectIDs(self,theGroup):
11589 Returns a list of sub-objects ID stored in the group
11592 theGroup is a GEOM group for which a list of IDs is requested
11594 # Example: see GEOM_TestOthers.py
11595 ListIDs = self.GroupOp.GetObjects(theGroup)
11596 RaiseIfFailed("GetObjects", self.GroupOp)
11599 ## Returns a type of sub-objects stored in the group
11600 # @param theGroup is a GEOM group which type is returned.
11602 # @ref swig_GetType "Example"
11603 def GetType(self,theGroup):
11605 Returns a type of sub-objects stored in the group
11608 theGroup is a GEOM group which type is returned.
11610 # Example: see GEOM_TestOthers.py
11611 aType = self.GroupOp.GetType(theGroup)
11612 RaiseIfFailed("GetType", self.GroupOp)
11615 ## Convert a type of geom object from id to string value
11616 # @param theId is a GEOM obect type id.
11617 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11618 # @ref swig_GetType "Example"
11619 def ShapeIdToType(self, theId):
11621 Convert a type of geom object from id to string value
11624 theId is a GEOM obect type id.
11627 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
11654 return "REVOLUTION"
11702 return "FREE_BOUNDS"
11710 return "THRUSECTIONS"
11712 return "COMPOUNDFILTER"
11714 return "SHAPES_ON_SHAPE"
11716 return "ELLIPSE_ARC"
11718 return "3DSKETCHER"
11724 return "PIPETSHAPE"
11725 return "Shape Id not exist."
11727 ## Returns a main shape associated with the group
11728 # @param theGroup is a GEOM group for which a main shape object is requested
11729 # @return a GEOM object which is a main shape for theGroup
11731 # @ref swig_GetMainShape "Example"
11732 def GetMainShape(self,theGroup):
11734 Returns a main shape associated with the group
11737 theGroup is a GEOM group for which a main shape object is requested
11740 a GEOM object which is a main shape for theGroup
11742 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
11744 # Example: see GEOM_TestOthers.py
11745 anObj = self.GroupOp.GetMainShape(theGroup)
11746 RaiseIfFailed("GetMainShape", self.GroupOp)
11749 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
11750 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11751 # @param theShape given shape (see GEOM.GEOM_Object)
11752 # @param min_length minimum length of edges of theShape
11753 # @param max_length maximum length of edges of theShape
11754 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11755 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11756 # @param theName Object name; when specified, this parameter is used
11757 # for result publication in the study. Otherwise, if automatic
11758 # publication is switched on, default value is used for result name.
11760 # @return a newly created GEOM group of edges
11762 # @@ref swig_todo "Example"
11763 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
11765 Create group of edges of theShape, whose length is in range [min_length, max_length].
11766 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11769 theShape given shape
11770 min_length minimum length of edges of theShape
11771 max_length maximum length of edges of theShape
11772 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11773 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11774 theName Object name; when specified, this parameter is used
11775 for result publication in the study. Otherwise, if automatic
11776 publication is switched on, default value is used for result name.
11779 a newly created GEOM group of edges.
11781 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
11782 edges_in_range = []
11784 Props = self.BasicProperties(edge)
11785 if min_length <= Props[0] and Props[0] <= max_length:
11786 if (not include_min) and (min_length == Props[0]):
11789 if (not include_max) and (Props[0] == max_length):
11792 edges_in_range.append(edge)
11794 if len(edges_in_range) <= 0:
11795 print "No edges found by given criteria"
11798 # note: auto-publishing is done in self.CreateGroup()
11799 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
11800 self.UnionList(group_edges, edges_in_range)
11804 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
11805 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
11806 # @param min_length minimum length of edges of selected shape
11807 # @param max_length maximum length of edges of selected shape
11808 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11809 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11810 # @return a newly created GEOM group of edges
11811 # @ref swig_todo "Example"
11812 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
11814 Create group of edges of selected shape, whose length is in range [min_length, max_length].
11815 If include_min/max == 0, edges with length == min/max_length will not be included in result.
11818 min_length minimum length of edges of selected shape
11819 max_length maximum length of edges of selected shape
11820 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
11821 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
11824 a newly created GEOM group of edges.
11826 nb_selected = sg.SelectedCount()
11827 if nb_selected < 1:
11828 print "Select a shape before calling this function, please."
11830 if nb_selected > 1:
11831 print "Only one shape must be selected"
11834 id_shape = sg.getSelected(0)
11835 shape = IDToObject( id_shape )
11837 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
11841 if include_min: left_str = " <= "
11842 if include_max: right_str = " <= "
11844 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
11845 + left_str + "length" + right_str + `max_length`)
11847 sg.updateObjBrowser(1)
11854 ## @addtogroup l4_advanced
11857 ## Create a T-shape object with specified caracteristics for the main
11858 # and the incident pipes (radius, width, half-length).
11859 # The extremities of the main pipe are located on junctions points P1 and P2.
11860 # The extremity of the incident pipe is located on junction point P3.
11861 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11862 # the main plane of the T-shape is XOY.
11864 # @param theR1 Internal radius of main pipe
11865 # @param theW1 Width of main pipe
11866 # @param theL1 Half-length of main pipe
11867 # @param theR2 Internal radius of incident pipe (R2 < R1)
11868 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11869 # @param theL2 Half-length of incident pipe
11871 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11872 # @param theP1 1st junction point of main pipe
11873 # @param theP2 2nd junction point of main pipe
11874 # @param theP3 Junction point of incident pipe
11876 # @param theRL Internal radius of left thickness reduction
11877 # @param theWL Width of left thickness reduction
11878 # @param theLtransL Length of left transition part
11879 # @param theLthinL Length of left thin part
11881 # @param theRR Internal radius of right thickness reduction
11882 # @param theWR Width of right thickness reduction
11883 # @param theLtransR Length of right transition part
11884 # @param theLthinR Length of right thin part
11886 # @param theRI Internal radius of incident thickness reduction
11887 # @param theWI Width of incident thickness reduction
11888 # @param theLtransI Length of incident transition part
11889 # @param theLthinI Length of incident thin part
11891 # @param theName Object name; when specified, this parameter is used
11892 # for result publication in the study. Otherwise, if automatic
11893 # publication is switched on, default value is used for result name.
11895 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
11897 # @ref tui_creation_pipetshape "Example"
11898 def MakePipeTShape (self, theR1, theW1, theL1, theR2, theW2, theL2,
11899 theHexMesh=True, theP1=None, theP2=None, theP3=None,
11900 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
11901 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
11902 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
11905 Create a T-shape object with specified caracteristics for the main
11906 and the incident pipes (radius, width, half-length).
11907 The extremities of the main pipe are located on junctions points P1 and P2.
11908 The extremity of the incident pipe is located on junction point P3.
11909 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11910 the main plane of the T-shape is XOY.
11913 theR1 Internal radius of main pipe
11914 theW1 Width of main pipe
11915 theL1 Half-length of main pipe
11916 theR2 Internal radius of incident pipe (R2 < R1)
11917 theW2 Width of incident pipe (R2+W2 < R1+W1)
11918 theL2 Half-length of incident pipe
11919 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11920 theP1 1st junction point of main pipe
11921 theP2 2nd junction point of main pipe
11922 theP3 Junction point of incident pipe
11924 theRL Internal radius of left thickness reduction
11925 theWL Width of left thickness reduction
11926 theLtransL Length of left transition part
11927 theLthinL Length of left thin part
11929 theRR Internal radius of right thickness reduction
11930 theWR Width of right thickness reduction
11931 theLtransR Length of right transition part
11932 theLthinR Length of right thin part
11934 theRI Internal radius of incident thickness reduction
11935 theWI Width of incident thickness reduction
11936 theLtransI Length of incident transition part
11937 theLthinI Length of incident thin part
11939 theName Object name; when specified, this parameter is used
11940 for result publication in the study. Otherwise, if automatic
11941 publication is switched on, default value is used for result name.
11944 List of GEOM_Object, containing the created shape and propagation groups.
11947 # create PipeTShape object
11948 pipetshape = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0)
11949 # create PipeTShape object with position
11950 pipetshape_position = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, True, P1, P2, P3)
11951 # create PipeTShape object with left thickness reduction
11952 pipetshape_thr = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
11954 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)
11955 if (theP1 and theP2 and theP3):
11956 anObj = self.AdvOp.MakePipeTShapeTRWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
11957 theRL, theWL, theLtransL, theLthinL,
11958 theRR, theWR, theLtransR, theLthinR,
11959 theRI, theWI, theLtransI, theLthinI,
11960 theHexMesh, theP1, theP2, theP3)
11962 anObj = self.AdvOp.MakePipeTShapeTR(theR1, theW1, theL1, theR2, theW2, theL2,
11963 theRL, theWL, theLtransL, theLthinL,
11964 theRR, theWR, theLtransR, theLthinR,
11965 theRI, theWI, theLtransI, theLthinI,
11967 RaiseIfFailed("MakePipeTShape", self.AdvOp)
11968 if Parameters: anObj[0].SetParameters(Parameters)
11969 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
11970 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
11973 ## Create a T-shape object with chamfer and with specified caracteristics for the main
11974 # and the incident pipes (radius, width, half-length). The chamfer is
11975 # created on the junction of the pipes.
11976 # The extremities of the main pipe are located on junctions points P1 and P2.
11977 # The extremity of the incident pipe is located on junction point P3.
11978 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
11979 # the main plane of the T-shape is XOY.
11980 # @param theR1 Internal radius of main pipe
11981 # @param theW1 Width of main pipe
11982 # @param theL1 Half-length of main pipe
11983 # @param theR2 Internal radius of incident pipe (R2 < R1)
11984 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
11985 # @param theL2 Half-length of incident pipe
11986 # @param theH Height of the chamfer.
11987 # @param theW Width of the chamfer.
11988 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
11989 # @param theP1 1st junction point of main pipe
11990 # @param theP2 2nd junction point of main pipe
11991 # @param theP3 Junction point of incident pipe
11993 # @param theRL Internal radius of left thickness reduction
11994 # @param theWL Width of left thickness reduction
11995 # @param theLtransL Length of left transition part
11996 # @param theLthinL Length of left thin part
11998 # @param theRR Internal radius of right thickness reduction
11999 # @param theWR Width of right thickness reduction
12000 # @param theLtransR Length of right transition part
12001 # @param theLthinR Length of right thin part
12003 # @param theRI Internal radius of incident thickness reduction
12004 # @param theWI Width of incident thickness reduction
12005 # @param theLtransI Length of incident transition part
12006 # @param theLthinI Length of incident thin part
12008 # @param theName Object name; when specified, this parameter is used
12009 # for result publication in the study. Otherwise, if automatic
12010 # publication is switched on, default value is used for result name.
12012 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
12014 # @ref tui_creation_pipetshape "Example"
12015 def MakePipeTShapeChamfer (self, theR1, theW1, theL1, theR2, theW2, theL2,
12016 theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None,
12017 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
12018 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
12019 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
12022 Create a T-shape object with chamfer and with specified caracteristics for the main
12023 and the incident pipes (radius, width, half-length). The chamfer is
12024 created on the junction of the pipes.
12025 The extremities of the main pipe are located on junctions points P1 and P2.
12026 The extremity of the incident pipe is located on junction point P3.
12027 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
12028 the main plane of the T-shape is XOY.
12031 theR1 Internal radius of main pipe
12032 theW1 Width of main pipe
12033 theL1 Half-length of main pipe
12034 theR2 Internal radius of incident pipe (R2 < R1)
12035 theW2 Width of incident pipe (R2+W2 < R1+W1)
12036 theL2 Half-length of incident pipe
12037 theH Height of the chamfer.
12038 theW Width of the chamfer.
12039 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12040 theP1 1st junction point of main pipe
12041 theP2 2nd junction point of main pipe
12042 theP3 Junction point of incident pipe
12044 theRL Internal radius of left thickness reduction
12045 theWL Width of left thickness reduction
12046 theLtransL Length of left transition part
12047 theLthinL Length of left thin part
12049 theRR Internal radius of right thickness reduction
12050 theWR Width of right thickness reduction
12051 theLtransR Length of right transition part
12052 theLthinR Length of right thin part
12054 theRI Internal radius of incident thickness reduction
12055 theWI Width of incident thickness reduction
12056 theLtransI Length of incident transition part
12057 theLthinI Length of incident thin part
12059 theName Object name; when specified, this parameter is used
12060 for result publication in the study. Otherwise, if automatic
12061 publication is switched on, default value is used for result name.
12064 List of GEOM_Object, containing the created shape and propagation groups.
12067 # create PipeTShape with chamfer object
12068 pipetshapechamfer = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0)
12069 # create PipeTShape with chamfer object with position
12070 pipetshapechamfer_position = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, True, P1, P2, P3)
12071 # create PipeTShape with chamfer object with left thickness reduction
12072 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)
12074 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)
12075 if (theP1 and theP2 and theP3):
12076 anObj = self.AdvOp.MakePipeTShapeTRChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
12077 theRL, theWL, theLtransL, theLthinL,
12078 theRR, theWR, theLtransR, theLthinR,
12079 theRI, theWI, theLtransI, theLthinI,
12080 theH, theW, theHexMesh, theP1, theP2, theP3)
12082 anObj = self.AdvOp.MakePipeTShapeTRChamfer(theR1, theW1, theL1, theR2, theW2, theL2,
12083 theRL, theWL, theLtransL, theLthinL,
12084 theRR, theWR, theLtransR, theLthinR,
12085 theRI, theWI, theLtransI, theLthinI,
12086 theH, theW, theHexMesh)
12087 RaiseIfFailed("MakePipeTShapeChamfer", self.AdvOp)
12088 if Parameters: anObj[0].SetParameters(Parameters)
12089 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
12090 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
12093 ## Create a T-shape object with fillet and with specified caracteristics for the main
12094 # and the incident pipes (radius, width, half-length). The fillet is
12095 # created on the junction of the pipes.
12096 # The extremities of the main pipe are located on junctions points P1 and P2.
12097 # The extremity of the incident pipe is located on junction point P3.
12098 # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
12099 # the main plane of the T-shape is XOY.
12100 # @param theR1 Internal radius of main pipe
12101 # @param theW1 Width of main pipe
12102 # @param theL1 Half-length of main pipe
12103 # @param theR2 Internal radius of incident pipe (R2 < R1)
12104 # @param theW2 Width of incident pipe (R2+W2 < R1+W1)
12105 # @param theL2 Half-length of incident pipe
12106 # @param theRF Radius of curvature of fillet.
12107 # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12108 # @param theP1 1st junction point of main pipe
12109 # @param theP2 2nd junction point of main pipe
12110 # @param theP3 Junction point of incident pipe
12112 # @param theRL Internal radius of left thickness reduction
12113 # @param theWL Width of left thickness reduction
12114 # @param theLtransL Length of left transition part
12115 # @param theLthinL Length of left thin part
12117 # @param theRR Internal radius of right thickness reduction
12118 # @param theWR Width of right thickness reduction
12119 # @param theLtransR Length of right transition part
12120 # @param theLthinR Length of right thin part
12122 # @param theRI Internal radius of incident thickness reduction
12123 # @param theWI Width of incident thickness reduction
12124 # @param theLtransI Length of incident transition part
12125 # @param theLthinI Length of incident thin part
12127 # @param theName Object name; when specified, this parameter is used
12128 # for result publication in the study. Otherwise, if automatic
12129 # publication is switched on, default value is used for result name.
12131 # @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
12133 # @ref tui_creation_pipetshape "Example"
12134 def MakePipeTShapeFillet (self, theR1, theW1, theL1, theR2, theW2, theL2,
12135 theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None,
12136 theRL=0, theWL=0, theLtransL=0, theLthinL=0,
12137 theRR=0, theWR=0, theLtransR=0, theLthinR=0,
12138 theRI=0, theWI=0, theLtransI=0, theLthinI=0,
12141 Create a T-shape object with fillet and with specified caracteristics for the main
12142 and the incident pipes (radius, width, half-length). The fillet is
12143 created on the junction of the pipes.
12144 The extremities of the main pipe are located on junctions points P1 and P2.
12145 The extremity of the incident pipe is located on junction point P3.
12148 If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
12149 the main plane of the T-shape is XOY.
12150 theR1 Internal radius of main pipe
12151 theW1 Width of main pipe
12152 heL1 Half-length of main pipe
12153 theR2 Internal radius of incident pipe (R2 < R1)
12154 theW2 Width of incident pipe (R2+W2 < R1+W1)
12155 theL2 Half-length of incident pipe
12156 theRF Radius of curvature of fillet.
12157 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
12158 theP1 1st junction point of main pipe
12159 theP2 2nd junction point of main pipe
12160 theP3 Junction point of incident pipe
12162 theRL Internal radius of left thickness reduction
12163 theWL Width of left thickness reduction
12164 theLtransL Length of left transition part
12165 theLthinL Length of left thin part
12167 theRR Internal radius of right thickness reduction
12168 theWR Width of right thickness reduction
12169 theLtransR Length of right transition part
12170 theLthinR Length of right thin part
12172 theRI Internal radius of incident thickness reduction
12173 theWI Width of incident thickness reduction
12174 theLtransI Length of incident transition part
12175 theLthinI Length of incident thin part
12177 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.
12182 List of GEOM_Object, containing the created shape and propagation groups.
12185 # create PipeTShape with fillet object
12186 pipetshapefillet = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0)
12187 # create PipeTShape with fillet object with position
12188 pipetshapefillet_position = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, True, P1, P2, P3)
12189 # create PipeTShape with fillet object with left thickness reduction
12190 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)
12192 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)
12193 if (theP1 and theP2 and theP3):
12194 anObj = self.AdvOp.MakePipeTShapeTRFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
12195 theRL, theWL, theLtransL, theLthinL,
12196 theRR, theWR, theLtransR, theLthinR,
12197 theRI, theWI, theLtransI, theLthinI,
12198 theRF, theHexMesh, theP1, theP2, theP3)
12200 anObj = self.AdvOp.MakePipeTShapeTRFillet(theR1, theW1, theL1, theR2, theW2, theL2,
12201 theRL, theWL, theLtransL, theLthinL,
12202 theRR, theWR, theLtransR, theLthinR,
12203 theRI, theWI, theLtransI, theLthinI,
12205 RaiseIfFailed("MakePipeTShapeFillet", self.AdvOp)
12206 if Parameters: anObj[0].SetParameters(Parameters)
12207 def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
12208 self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
12211 ## This function allows creating a disk already divided into blocks. It
12212 # can be used to create divided pipes for later meshing in hexaedra.
12213 # @param theR Radius of the disk
12214 # @param theOrientation Orientation of the plane on which the disk will be built
12215 # 1 = XOY, 2 = OYZ, 3 = OZX
12216 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12217 # @param theName Object name; when specified, this parameter is used
12218 # for result publication in the study. Otherwise, if automatic
12219 # publication is switched on, default value is used for result name.
12221 # @return New GEOM_Object, containing the created shape.
12223 # @ref tui_creation_divideddisk "Example"
12224 def MakeDividedDisk(self, theR, theOrientation, thePattern, theName=None):
12226 Creates a disk, divided into blocks. It can be used to create divided pipes
12227 for later meshing in hexaedra.
12230 theR Radius of the disk
12231 theOrientation Orientation of the plane on which the disk will be built:
12232 1 = XOY, 2 = OYZ, 3 = OZX
12233 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12234 theName Object name; when specified, this parameter is used
12235 for result publication in the study. Otherwise, if automatic
12236 publication is switched on, default value is used for result name.
12239 New GEOM_Object, containing the created shape.
12241 theR, Parameters = ParseParameters(theR)
12242 anObj = self.AdvOp.MakeDividedDisk(theR, 67.0, theOrientation, thePattern)
12243 RaiseIfFailed("MakeDividedDisk", self.AdvOp)
12244 if Parameters: anObj.SetParameters(Parameters)
12245 self._autoPublish(anObj, theName, "dividedDisk")
12248 ## This function allows creating a disk already divided into blocks. It
12249 # can be used to create divided pipes for later meshing in hexaedra.
12250 # @param theCenter Center of the disk
12251 # @param theVector Normal vector to the plane of the created disk
12252 # @param theRadius Radius of the disk
12253 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12254 # @param theName Object name; when specified, this parameter is used
12255 # for result publication in the study. Otherwise, if automatic
12256 # publication is switched on, default value is used for result name.
12258 # @return New GEOM_Object, containing the created shape.
12260 # @ref tui_creation_divideddisk "Example"
12261 def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern, theName=None):
12263 Creates a disk already divided into blocks. It can be used to create divided pipes
12264 for later meshing in hexaedra.
12267 theCenter Center of the disk
12268 theVector Normal vector to the plane of the created disk
12269 theRadius Radius of the disk
12270 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12271 theName Object name; when specified, this parameter is used
12272 for result publication in the study. Otherwise, if automatic
12273 publication is switched on, default value is used for result name.
12276 New GEOM_Object, containing the created shape.
12278 theRadius, Parameters = ParseParameters(theRadius)
12279 anObj = self.AdvOp.MakeDividedDiskPntVecR(theCenter, theVector, theRadius, 67.0, thePattern)
12280 RaiseIfFailed("MakeDividedDiskPntVecR", self.AdvOp)
12281 if Parameters: anObj.SetParameters(Parameters)
12282 self._autoPublish(anObj, theName, "dividedDisk")
12285 ## Builds a cylinder prepared for hexa meshes
12286 # @param theR Radius of the cylinder
12287 # @param theH Height of the cylinder
12288 # @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12289 # @param theName Object name; when specified, this parameter is used
12290 # for result publication in the study. Otherwise, if automatic
12291 # publication is switched on, default value is used for result name.
12293 # @return New GEOM_Object, containing the created shape.
12295 # @ref tui_creation_dividedcylinder "Example"
12296 def MakeDividedCylinder(self, theR, theH, thePattern, theName=None):
12298 Builds a cylinder prepared for hexa meshes
12301 theR Radius of the cylinder
12302 theH Height of the cylinder
12303 thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
12304 theName Object name; when specified, this parameter is used
12305 for result publication in the study. Otherwise, if automatic
12306 publication is switched on, default value is used for result name.
12309 New GEOM_Object, containing the created shape.
12311 theR, theH, Parameters = ParseParameters(theR, theH)
12312 anObj = self.AdvOp.MakeDividedCylinder(theR, theH, thePattern)
12313 RaiseIfFailed("MakeDividedCylinder", self.AdvOp)
12314 if Parameters: anObj.SetParameters(Parameters)
12315 self._autoPublish(anObj, theName, "dividedCylinder")
12318 ## Create a surface from a cloud of points
12319 # @param thelPoints list of points
12320 # @return New GEOM_Object, containing the created shape.
12322 # @ref tui_creation_smoothingsurface "Example"
12323 def MakeSmoothingSurface(self, thelPoints):
12324 anObj = self.AdvOp.MakeSmoothingSurface(thelPoints)
12325 RaiseIfFailed("MakeSmoothingSurface", self.AdvOp)
12328 ## Export a shape to XAO format
12329 # @param shape The shape to export
12330 # @param groups The list of groups to export
12331 # @param fields The list of fields to export
12332 # @param author The author of the export
12333 # @param fileName The name of the file to export
12336 # @ref tui_exportxao "Example"
12337 def ExportXAO(self, shape, groups, fields, author, fileName):
12338 res = self.InsertOp.ExportXAO(shape, groups, fields, author, fileName)
12339 RaiseIfFailed("ExportXAO", self.InsertOp)
12342 ## Import a shape from XAO format
12343 # @param shape Shape to export
12344 # @param fileName The name of the file to import
12345 # @return tuple (res, shape, subShapes, groups, fields)
12346 # res Flag indicating if the import was successful
12347 # shape The imported shape
12348 # subShapes The list of imported subShapes
12349 # groups The list of imported groups
12350 # fields The list of imported fields
12352 # @ref tui_importxao "Example"
12353 def ImportXAO(self, fileName):
12354 res = self.InsertOp.ImportXAO(fileName)
12355 RaiseIfFailed("ImportXAO", self.InsertOp)
12358 #@@ insert new functions before this line @@ do not remove this line @@#
12360 # end of l4_advanced
12363 ## Create a copy of the given object
12365 # @param theOriginal geometry object for copy
12366 # @param theName Object name; when specified, this parameter is used
12367 # for result publication in the study. Otherwise, if automatic
12368 # publication is switched on, default value is used for result name.
12370 # @return New GEOM_Object, containing the copied shape.
12372 # @ingroup l1_geomBuilder_auxiliary
12373 # @ref swig_MakeCopy "Example"
12374 def MakeCopy(self, theOriginal, theName=None):
12376 Create a copy of the given object
12379 theOriginal geometry object for copy
12380 theName Object name; when specified, this parameter is used
12381 for result publication in the study. Otherwise, if automatic
12382 publication is switched on, default value is used for result name.
12385 New GEOM_Object, containing the copied shape.
12387 Example of usage: Copy = geompy.MakeCopy(Box)
12389 # Example: see GEOM_TestAll.py
12390 anObj = self.InsertOp.MakeCopy(theOriginal)
12391 RaiseIfFailed("MakeCopy", self.InsertOp)
12392 self._autoPublish(anObj, theName, "copy")
12395 ## Add Path to load python scripts from
12396 # @param Path a path to load python scripts from
12397 # @ingroup l1_geomBuilder_auxiliary
12398 def addPath(self,Path):
12400 Add Path to load python scripts from
12403 Path a path to load python scripts from
12405 if (sys.path.count(Path) < 1):
12406 sys.path.append(Path)
12410 ## Load marker texture from the file
12411 # @param Path a path to the texture file
12412 # @return unique texture identifier
12413 # @ingroup l1_geomBuilder_auxiliary
12414 def LoadTexture(self, Path):
12416 Load marker texture from the file
12419 Path a path to the texture file
12422 unique texture identifier
12424 # Example: see GEOM_TestAll.py
12425 ID = self.InsertOp.LoadTexture(Path)
12426 RaiseIfFailed("LoadTexture", self.InsertOp)
12429 ## Get internal name of the object based on its study entry
12430 # @note This method does not provide an unique identifier of the geometry object.
12431 # @note This is internal function of GEOM component, though it can be used outside it for
12432 # appropriate reason (e.g. for identification of geometry object).
12433 # @param obj geometry object
12434 # @return unique object identifier
12435 # @ingroup l1_geomBuilder_auxiliary
12436 def getObjectID(self, obj):
12438 Get internal name of the object based on its study entry.
12439 Note: this method does not provide an unique identifier of the geometry object.
12440 It is an internal function of GEOM component, though it can be used outside GEOM for
12441 appropriate reason (e.g. for identification of geometry object).
12444 obj geometry object
12447 unique object identifier
12450 entry = salome.ObjectToID(obj)
12451 if entry is not None:
12452 lst = entry.split(":")
12454 ID = lst[-1] # -1 means last item in the list
12455 return "GEOM_" + ID
12460 ## Add marker texture. @a Width and @a Height parameters
12461 # specify width and height of the texture in pixels.
12462 # If @a RowData is @c True, @a Texture parameter should represent texture data
12463 # packed into the byte array. If @a RowData is @c False (default), @a Texture
12464 # parameter should be unpacked string, in which '1' symbols represent opaque
12465 # pixels and '0' represent transparent pixels of the texture bitmap.
12467 # @param Width texture width in pixels
12468 # @param Height texture height in pixels
12469 # @param Texture texture data
12470 # @param RowData if @c True, @a Texture data are packed in the byte stream
12471 # @return unique texture identifier
12472 # @ingroup l1_geomBuilder_auxiliary
12473 def AddTexture(self, Width, Height, Texture, RowData=False):
12475 Add marker texture. Width and Height parameters
12476 specify width and height of the texture in pixels.
12477 If RowData is True, Texture parameter should represent texture data
12478 packed into the byte array. If RowData is False (default), Texture
12479 parameter should be unpacked string, in which '1' symbols represent opaque
12480 pixels and '0' represent transparent pixels of the texture bitmap.
12483 Width texture width in pixels
12484 Height texture height in pixels
12485 Texture texture data
12486 RowData if True, Texture data are packed in the byte stream
12489 return unique texture identifier
12491 if not RowData: Texture = PackData(Texture)
12492 ID = self.InsertOp.AddTexture(Width, Height, Texture)
12493 RaiseIfFailed("AddTexture", self.InsertOp)
12496 ## Creates a new folder object. It is a container for any GEOM objects.
12497 # @param Name name of the container
12498 # @param Father parent object. If None,
12499 # folder under 'Geometry' root object will be created.
12500 # @return a new created folder
12501 def NewFolder(self, Name, Father=None):
12503 Create a new folder object. It is an auxiliary container for any GEOM objects.
12506 Name name of the container
12507 Father parent object. If None,
12508 folder under 'Geometry' root object will be created.
12511 a new created folder
12513 if not Father: Father = self.father
12514 return self.CreateFolder(Name, Father)
12516 ## Move object to the specified folder
12517 # @param Object object to move
12518 # @param Folder target folder
12519 def PutToFolder(self, Object, Folder):
12521 Move object to the specified folder
12524 Object object to move
12525 Folder target folder
12527 self.MoveToFolder(Object, Folder)
12530 ## Move list of objects to the specified folder
12531 # @param ListOfSO list of objects to move
12532 # @param Folder target folder
12533 def PutListToFolder(self, ListOfSO, Folder):
12535 Move list of objects to the specified folder
12538 ListOfSO list of objects to move
12539 Folder target folder
12541 self.MoveListToFolder(ListOfSO, Folder)
12544 ## @addtogroup l2_field
12548 # @param shape the shape the field lies on
12549 # @param name the field name
12550 # @param type type of field data: 0 - bool, 1 - int, 2 - double, 3 - string
12551 # @param dimension dimension of the shape the field lies on
12552 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
12553 # @param componentNames names of components
12554 # @return a created field
12555 def CreateField(self, shape, name, type, dimension, componentNames):
12560 shape the shape the field lies on
12561 name the field name
12562 type type of field data
12563 dimension dimension of the shape the field lies on
12564 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
12565 componentNames names of components
12570 if isinstance( type, int ):
12571 if type < 0 or type > 3:
12572 raise RuntimeError, "CreateField : Error: data type must be within [0-3] range"
12573 type = [GEOM.FDT_Bool,GEOM.FDT_Int,GEOM.FDT_Double,GEOM.FDT_String][type]
12575 f = self.FieldOp.CreateField( shape, name, type, dimension, componentNames)
12576 RaiseIfFailed("CreateField", self.FieldOp)
12578 geom._autoPublish( f, "", name)
12581 ## Removes a field from the GEOM component
12582 # @param field the field to remove
12583 def RemoveField(self, field):
12584 "Removes a field from the GEOM component"
12586 if isinstance( field, GEOM._objref_GEOM_Field ):
12587 geom.RemoveObject( field )
12588 elif isinstance( field, geomField ):
12589 geom.RemoveObject( field.field )
12591 raise RuntimeError, "RemoveField() : the object is not a field"
12594 ## Returns number of fields on a shape
12595 def CountFields(self, shape):
12596 "Returns number of fields on a shape"
12597 nb = self.FieldOp.CountFields( shape )
12598 RaiseIfFailed("CountFields", self.FieldOp)
12601 ## Returns all fields on a shape
12602 def GetFields(self, shape):
12603 "Returns all fields on a shape"
12604 ff = self.FieldOp.GetFields( shape )
12605 RaiseIfFailed("GetFields", self.FieldOp)
12608 ## Returns a field on a shape by its name
12609 def GetField(self, shape, name):
12610 "Returns a field on a shape by its name"
12611 f = self.FieldOp.GetField( shape, name )
12612 RaiseIfFailed("GetField", self.FieldOp)
12620 # Register the new proxy for GEOM_Gen
12621 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
12624 ## Field on Geometry
12625 # @ingroup l2_field
12626 class geomField( GEOM._objref_GEOM_Field ):
12628 def __init__(self):
12629 GEOM._objref_GEOM_Field.__init__(self)
12630 self.field = GEOM._objref_GEOM_Field
12633 ## Returns the shape the field lies on
12634 def getShape(self):
12635 "Returns the shape the field lies on"
12636 return self.field.GetShape(self)
12638 ## Returns the field name
12640 "Returns the field name"
12641 return self.field.GetName(self)
12643 ## Returns type of field data as integer [0-3]
12645 "Returns type of field data"
12646 return self.field.GetDataType(self)._v
12648 ## Returns type of field data:
12649 # one of GEOM.FDT_Bool, GEOM.FDT_Int, GEOM.FDT_Double, GEOM.FDT_String
12650 def getTypeEnum(self):
12651 "Returns type of field data"
12652 return self.field.GetDataType(self)
12654 ## Returns dimension of the shape the field lies on:
12655 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
12656 def getDimension(self):
12657 """Returns dimension of the shape the field lies on:
12658 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape"""
12659 return self.field.GetDimension(self)
12661 ## Returns names of components
12662 def getComponents(self):
12663 "Returns names of components"
12664 return self.field.GetComponents(self)
12666 ## Adds a time step to the field
12667 # @param step the time step number futher used as the step identifier
12668 # @param stamp the time step time
12669 # @param values the values of the time step
12670 def addStep(self, step, stamp, values):
12671 "Adds a time step to the field"
12672 stp = self.field.AddStep( self, step, stamp )
12674 raise RuntimeError, \
12675 "Field.addStep() : Error: step %s already exists in this field"%step
12677 geom._autoPublish( stp, "", "Step %s, %s"%(step,stamp))
12678 self.setValues( step, values )
12681 ## Remove a time step from the field
12682 def removeStep(self,step):
12683 "Remove a time step from the field"
12686 stepObj = self.field.GetStep( self, step )
12688 stepSO = geom.myStudy.FindObjectID( stepObj.GetStudyEntry() )
12691 #traceback.print_exc()
12693 self.field.RemoveStep( self, step )
12695 geom.myBuilder.RemoveObjectWithChildren( stepSO )
12698 ## Returns number of time steps in the field
12699 def countSteps(self):
12700 "Returns number of time steps in the field"
12701 return self.field.CountSteps(self)
12703 ## Returns a list of time step IDs in the field
12704 def getSteps(self):
12705 "Returns a list of time step IDs in the field"
12706 return self.field.GetSteps(self)
12708 ## Returns a time step by its ID
12709 def getStep(self,step):
12710 "Returns a time step by its ID"
12711 stp = self.field.GetStep(self, step)
12713 raise RuntimeError, "Step %s is missing from this field"%step
12716 ## Returns the time of the field step
12717 def getStamp(self,step):
12718 "Returns the time of the field step"
12719 return self.getStep(step).GetStamp()
12721 ## Changes the time of the field step
12722 def setStamp(self, step, stamp):
12723 "Changes the time of the field step"
12724 return self.getStep(step).SetStamp(stamp)
12726 ## Returns values of the field step
12727 def getValues(self, step):
12728 "Returns values of the field step"
12729 return self.getStep(step).GetValues()
12731 ## Changes values of the field step
12732 def setValues(self, step, values):
12733 "Changes values of the field step"
12734 stp = self.getStep(step)
12735 errBeg = "Field.setValues(values) : Error: "
12737 ok = stp.SetValues( values )
12738 except Exception, e:
12740 if excStr.find("WrongPythonType") > 0:
12741 raise RuntimeError, errBeg +\
12742 "wrong type of values, %s values are expected"%str(self.getTypeEnum())[4:]
12743 raise RuntimeError, errBeg + str(e)
12745 nbOK = self.field.GetArraySize(self)
12748 raise RuntimeError, errBeg + "len(values) must be %s but not %s"%(nbOK,nbKO)
12750 raise RuntimeError, errBeg + "failed"
12753 pass # end of class geomField
12755 # Register the new proxy for GEOM_Field
12756 omniORB.registerObjref(GEOM._objref_GEOM_Field._NP_RepositoryId, geomField)
12759 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
12760 # interface to GEOM operations.
12765 # salome.salome_init()
12766 # from salome.geom import geomBuilder
12767 # geompy = geomBuilder.New(salome.myStudy)
12769 # @param study SALOME study, generally obtained by salome.myStudy.
12770 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12771 # @return geomBuilder instance
12772 def New( study, instance=None):
12774 Create a new geomBuilder instance.The geomBuilder class provides the Python
12775 interface to GEOM operations.
12779 salome.salome_init()
12780 from salome.geom import geomBuilder
12781 geompy = geomBuilder.New(salome.myStudy)
12784 study SALOME study, generally obtained by salome.myStudy.
12785 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
12787 geomBuilder instance
12789 #print "New geomBuilder ", study, instance
12796 geom = geomBuilder()
12797 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
12798 geom.init_geom(study)