1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2015 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, or (at your option) any later version.
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 geomBuilder geomBuilder Python module
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, theName="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, theName=("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 ## - 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.
147 ## It is possible to customize the representation of the geometrical
148 ## data in the data tree; this can be done by using folders. A folder can
149 ## be created in the study tree using function
150 ## \ref geomBuilder.geomBuilder.NewFolder() "NewFolder()"
151 ## (by default it is created under the "Geometry" root object).
152 ## As soon as folder is created, any published geometry object
153 ## can be moved into it.
159 ## from salome.geom import geomBuilder
160 ## geompy = geomBuilder.New(salome.myStudy)
161 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100, "Box")
162 ## # the box was created and published in the study
163 ## folder = geompy.NewFolder("Primitives")
164 ## # an empty "Primitives" folder was created under default "Geometry" root object
165 ## geompy.PutToFolder(box, folder)
166 ## # the box was moved into "Primitives" folder
169 ## Subfolders are also can be created by specifying another folder as a parent:
172 ## subfolder = geompy.NewFolder("3D", folder)
173 ## # "3D" folder was created under "Primitives" folder
177 ## - Folder container is just a representation layer object that
178 ## deals with already published objects only. So, any geometry object
179 ## should be published in the study (for example, with
180 ## \ref geomBuilder.geomBuilder.PutToFolder() "addToStudy()" function)
181 ## BEFORE moving it into any existing folder.
182 ## - \ref geomBuilder.geomBuilder.PutToFolder() "PutToFolder()" function
183 ## does not change physical position of geometry object in the study tree,
184 ## it only affects on the representation of the data tree.
185 ## - It is impossible to publish geometry object using any folder as father.
187 ## \defgroup l1_publish_data
188 ## \defgroup l1_geomBuilder_auxiliary
189 ## \defgroup l1_geomBuilder_purpose
192 ## @defgroup l1_publish_data Publishing results in SALOME study
194 ## @defgroup l1_geomBuilder_auxiliary Auxiliary data structures and methods
196 ## @defgroup l1_geomBuilder_purpose All package methods, grouped by their purpose
198 ## @defgroup l2_import_export Importing/exporting geometrical objects
199 ## @defgroup l2_creating Creating geometrical objects
201 ## @defgroup l3_basic_go Creating Basic Geometric Objects
203 ## @defgroup l4_curves Creating Curves
206 ## @defgroup l3_3d_primitives Creating 3D Primitives
207 ## @defgroup l3_complex Creating Complex Objects
208 ## @defgroup l3_groups Working with groups
209 ## @defgroup l3_blocks Building by blocks
211 ## @defgroup l4_blocks_measure Check and Improve
214 ## @defgroup l3_sketcher Sketcher
215 ## @defgroup l3_advanced Creating Advanced Geometrical Objects
217 ## @defgroup l4_decompose Decompose objects
218 ## @defgroup l4_decompose_d Decompose objects deprecated methods
219 ## @defgroup l4_access Access to sub-shapes by their unique IDs inside the main shape
220 ## @defgroup l4_obtain Access to sub-shapes by a criteria
221 ## @defgroup l4_advanced Advanced objects creation functions
226 ## @defgroup l2_transforming Transforming geometrical objects
228 ## @defgroup l3_basic_op Basic Operations
229 ## @defgroup l3_boolean Boolean Operations
230 ## @defgroup l3_transform Transformation Operations
231 ## @defgroup l3_transform_d Transformation Operations deprecated methods
232 ## @defgroup l3_local Local Operations (Fillet, Chamfer and other Features)
233 ## @defgroup l3_blocks_op Blocks Operations
234 ## @defgroup l3_healing Repairing Operations
235 ## @defgroup l3_restore_ss Restore presentation parameters and a tree of sub-shapes
238 ## @defgroup l2_measure Using measurement tools
239 ## @defgroup l2_field Field on Geometry
243 # initialize SALOME session in try/except block
244 # to avoid problems in some cases, e.g. when generating documentation
252 from salome_notebook import *
259 from salome.geom.gsketcher import Sketcher3D, Sketcher2D, Polyline2D
262 def _toListOfNames(_names, _size=-1):
265 if type(_names) in [types.ListType, types.TupleType]:
266 for i in _names: l.append(i)
269 if l and len(l) < _size:
270 for i in range(len(l), _size): l.append("%s_%d"%(l[0],i))
273 # Decorator function to manage transactions for all geometric operations.
274 def ManageTransactions(theOpeName):
275 def MTDecorator(theFunction):
276 # To keep the original function name an documentation.
277 @functools.wraps(theFunction)
278 def OpenCallClose(self, *args, **kwargs):
280 anOperation = getattr(self, theOpeName)
281 anOperation.StartOperation()
284 res = theFunction(self, *args, **kwargs)
286 anOperation.FinishOperation()
290 anOperation.AbortOperation()
295 ## Raise an Error, containing the Method_name, if Operation is Failed
296 ## @ingroup l1_geomBuilder_auxiliary
297 def RaiseIfFailed (Method_name, Operation):
298 if not Operation.IsDone() and Operation.GetErrorCode() != "NOT_FOUND_ANY":
299 raise RuntimeError, Method_name + " : " + Operation.GetErrorCode()
301 ## Return list of variables value from salome notebook
302 ## @ingroup l1_geomBuilder_auxiliary
303 def ParseParameters(*parameters):
306 for parameter in parameters:
307 if isinstance(parameter, list):
308 lResults = ParseParameters(*parameter)
309 if len(lResults) > 0:
310 Result.append(lResults[:-1])
311 StringResult += lResults[-1].split(":")
315 if isinstance(parameter,str):
316 if notebook.isVariable(parameter):
317 Result.append(notebook.get(parameter))
319 raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!"
322 Result.append(parameter)
324 StringResult.append(str(parameter))
328 Result.append(":".join(StringResult))
330 Result = ":".join(StringResult)
333 ## Return list of variables value from salome notebook
334 ## @ingroup l1_geomBuilder_auxiliary
338 for parameter in list:
339 if isinstance(parameter,str) and notebook.isVariable(parameter):
340 Result.append(str(notebook.get(parameter)))
343 Result.append(str(parameter))
346 StringResult = StringResult + str(parameter)
347 StringResult = StringResult + ":"
349 StringResult = StringResult[:len(StringResult)-1]
350 return Result, StringResult
352 ## Return list of variables value from salome notebook
353 ## @ingroup l1_geomBuilder_auxiliary
354 def ParseSketcherCommand(command):
357 sections = command.split(":")
358 for section in sections:
359 parameters = section.split(" ")
361 for parameter in parameters:
362 if paramIndex > 1 and parameter.find("'") != -1:
363 parameter = parameter.replace("'","")
364 if notebook.isVariable(parameter):
365 Result = Result + str(notebook.get(parameter)) + " "
368 raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!"
372 Result = Result + str(parameter) + " "
375 StringResult = StringResult + parameter
376 StringResult = StringResult + ":"
378 paramIndex = paramIndex + 1
380 Result = Result[:len(Result)-1] + ":"
382 Result = Result[:len(Result)-1]
383 return Result, StringResult
385 ## Helper function which can be used to pack the passed string to the byte data.
386 ## Only '1' an '0' symbols are valid for the string. The missing bits are replaced by zeroes.
387 ## If the string contains invalid symbol (neither '1' nor '0'), the function raises an exception.
390 ## val = PackData("10001110") # val = 0xAE
391 ## val = PackData("1") # val = 0x80
393 ## @param data unpacked data - a string containing '1' and '0' symbols
394 ## @return data packed to the byte stream
395 ## @ingroup l1_geomBuilder_auxiliary
398 Helper function which can be used to pack the passed string to the byte data.
399 Only '1' an '0' symbols are valid for the string. The missing bits are replaced by zeroes.
400 If the string contains invalid symbol (neither '1' nor '0'), the function raises an exception.
403 data unpacked data - a string containing '1' and '0' symbols
406 data packed to the byte stream
409 val = PackData("10001110") # val = 0xAE
410 val = PackData("1") # val = 0x80
413 if len(data)%8: bytes += 1
415 for b in range(bytes):
416 d = data[b*8:(b+1)*8]
421 if d[i] == "1": val += 1
423 raise "Invalid symbol %s" % d[i]
430 ## Read bitmap texture from the text file.
431 ## In that file, any non-zero symbol represents '1' opaque pixel of the bitmap.
432 ## A zero symbol ('0') represents transparent pixel of the texture bitmap.
433 ## The function returns width and height of the pixmap in pixels and byte stream representing
434 ## texture bitmap itself.
436 ## This function can be used to read the texture to the byte stream in order to pass it to
437 ## the AddTexture() function of geomBuilder class.
440 ## from salome.geom import geomBuilder
441 ## geompy = geomBuilder.New(salome.myStudy)
442 ## texture = geompy.readtexture('mytexture.dat')
443 ## texture = geompy.AddTexture(*texture)
444 ## obj.SetMarkerTexture(texture)
446 ## @param fname texture file name
447 ## @return sequence of tree values: texture's width, height in pixels and its byte stream
448 ## @ingroup l1_geomBuilder_auxiliary
449 def ReadTexture(fname):
451 Read bitmap texture from the text file.
452 In that file, any non-zero symbol represents '1' opaque pixel of the bitmap.
453 A zero symbol ('0') represents transparent pixel of the texture bitmap.
454 The function returns width and height of the pixmap in pixels and byte stream representing
455 texture bitmap itself.
456 This function can be used to read the texture to the byte stream in order to pass it to
457 the AddTexture() function of geomBuilder class.
460 fname texture file name
463 sequence of tree values: texture's width, height in pixels and its byte stream
466 from salome.geom import geomBuilder
467 geompy = geomBuilder.New(salome.myStudy)
468 texture = geompy.readtexture('mytexture.dat')
469 texture = geompy.AddTexture(*texture)
470 obj.SetMarkerTexture(texture)
474 lines = [ l.strip() for l in f.readlines()]
477 if lines: maxlen = max([len(x) for x in lines])
479 if maxlen%8: lenbytes += 1
483 lenline = (len(line)/8+1)*8
486 lenline = (len(line)/8)*8
488 for i in range(lenline/8):
491 if i*8+j < len(line) and line[i*8+j] != "0": byte += "1"
494 bytedata += PackData(byte)
496 for i in range(lenline/8, lenbytes):
497 bytedata += PackData("0")
499 return lenbytes*8, len(lines), bytedata
504 ## Returns a long value from enumeration type
505 # Can be used for CORBA enumerator types like GEOM.shape_type
506 # @param theItem enumeration type
507 # @ingroup l1_geomBuilder_auxiliary
508 def EnumToLong(theItem):
510 Returns a long value from enumeration type
511 Can be used for CORBA enumerator types like geomBuilder.ShapeType
514 theItem enumeration type
517 if hasattr(theItem, "_v"): ret = theItem._v
520 ## Pack an argument into a list
522 if isinstance( arg, list ):
524 if hasattr( arg, "__getitem__" ):
528 ## Information about closed/unclosed state of shell or wire
529 # @ingroup l1_geomBuilder_auxiliary
532 Information about closed/unclosed state of shell or wire
538 ## Private class used to bind calls of plugin operations to geomBuilder
539 class PluginOperation:
540 def __init__(self, operation, function):
541 self.operation = operation
542 self.function = function
545 @ManageTransactions("operation")
546 def __call__(self, *args):
547 res = self.function(self.operation, *args)
548 RaiseIfFailed(self.function.__name__, self.operation)
551 # Warning: geom is a singleton
557 class geomBuilder(object, GEOM._objref_GEOM_Gen):
559 ## Enumeration ShapeType as a dictionary. \n
560 ## Topological types of shapes (like Open Cascade types). See GEOM::shape_type for details.
561 # @ingroup l1_geomBuilder_auxiliary
562 ShapeType = {"AUTO":-1, "COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8, "FLAT":9}
564 ## Kinds of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
565 # and a list of parameters, describing the shape.
566 # List of parameters, describing the shape:
567 # - COMPOUND: [nb_solids nb_faces nb_edges nb_vertices]
568 # - COMPSOLID: [nb_solids nb_faces nb_edges nb_vertices]
570 # - SHELL: [info.CLOSED / info.UNCLOSED nb_faces nb_edges nb_vertices]
572 # - WIRE: [info.CLOSED / info.UNCLOSED nb_edges nb_vertices]
574 # - SPHERE: [xc yc zc R]
575 # - CYLINDER: [xb yb zb dx dy dz R H]
576 # - BOX: [xc yc zc ax ay az]
577 # - ROTATED_BOX: [xc yc zc zx zy zz xx xy xz ax ay az]
578 # - TORUS: [xc yc zc dx dy dz R_1 R_2]
579 # - CONE: [xb yb zb dx dy dz R_1 R_2 H]
580 # - POLYHEDRON: [nb_faces nb_edges nb_vertices]
581 # - SOLID: [nb_faces nb_edges nb_vertices]
583 # - SPHERE2D: [xc yc zc R]
584 # - CYLINDER2D: [xb yb zb dx dy dz R H]
585 # - TORUS2D: [xc yc zc dx dy dz R_1 R_2]
586 # - CONE2D: [xc yc zc dx dy dz R_1 R_2 H]
587 # - DISK_CIRCLE: [xc yc zc dx dy dz R]
588 # - DISK_ELLIPSE: [xc yc zc dx dy dz R_1 R_2]
589 # - POLYGON: [xo yo zo dx dy dz nb_edges nb_vertices]
590 # - PLANE: [xo yo zo dx dy dz]
591 # - PLANAR: [xo yo zo dx dy dz nb_edges nb_vertices]
592 # - FACE: [nb_edges nb_vertices]
594 # - CIRCLE: [xc yc zc dx dy dz R]
595 # - ARC_CIRCLE: [xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2]
596 # - ELLIPSE: [xc yc zc dx dy dz R_1 R_2]
597 # - ARC_ELLIPSE: [xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2]
598 # - LINE: [xo yo zo dx dy dz]
599 # - SEGMENT: [x1 y1 z1 x2 y2 z2]
600 # - EDGE: [nb_vertices]
604 # - LCS: [x y z xx xy xz yx yy yz zx zy zz]
605 # @ingroup l1_geomBuilder_auxiliary
606 kind = GEOM.GEOM_IKindOfShape
613 #print "==== __new__ ", engine, geom, doLcc, created
615 # geom engine is either retrieved from engine, or created
617 # Following test avoids a recursive loop
620 # geom engine not created: existing engine found
622 if doLcc and not created:
624 # FindOrLoadComponent called:
625 # 1. CORBA resolution of server
626 # 2. the __new__ method is called again
627 #print "==== FindOrLoadComponent ", engine, geom, doLcc, created
628 geom = lcc.FindOrLoadComponent( "FactoryServer", "GEOM" )
631 # FindOrLoadComponent not called
633 # geomBuilder instance is created from lcc.FindOrLoadComponent
634 #print "==== super ", engine, geom, doLcc, created
635 geom = super(geomBuilder,cls).__new__(cls)
638 # geom engine not created: existing engine found
639 #print "==== existing ", engine, geom, doLcc, created
641 #print "return geom 1 ", geom
644 #print "return geom 2 ", geom
649 #print "-------- geomBuilder __init__ --- ", created, self
652 GEOM._objref_GEOM_Gen.__init__(self)
653 self.myMaxNbSubShapesAllowed = 0 # auto-publishing is disabled by default
654 self.myBuilder = None
673 ## Process object publication in the study, as follows:
674 # - if @a theName is specified (not None), the object is published in the study
675 # with this name, not taking into account "auto-publishing" option;
676 # - if @a theName is NOT specified, the object is published in the study
677 # (using default name, which can be customized using @a theDefaultName parameter)
678 # only if auto-publishing is switched on.
680 # @param theObj object, a subject for publishing
681 # @param theName object name for study
682 # @param theDefaultName default name for the auto-publishing
684 # @sa addToStudyAuto()
685 def _autoPublish(self, theObj, theName, theDefaultName="noname"):
687 def _item_name(_names, _defname, _idx=-1):
688 if not _names: _names = _defname
689 if type(_names) in [types.ListType, types.TupleType]:
691 if _idx >= len(_names) or not _names[_idx]:
692 if type(_defname) not in [types.ListType, types.TupleType]:
693 _name = "%s_%d"%(_defname, _idx+1)
694 elif len(_defname) > 0 and _idx >= 0 and _idx < len(_defname):
695 _name = _defname[_idx]
697 _name = "%noname_%d"%(dn, _idx+1)
703 # must be wrong usage
708 _name = "%s_%d"%(_names, _idx+1)
714 def _publish( _name, _obj ):
716 if isinstance( _obj, GEOM._objref_GEOM_Field ):
717 fatherObj = _obj.GetShape()
718 elif isinstance( _obj, GEOM._objref_GEOM_FieldStep ):
719 fatherObj = _obj.GetField()
720 elif not _obj.IsMainShape():
721 fatherObj = _obj.GetMainShape()
723 if fatherObj and fatherObj.GetStudyEntry():
724 self.addToStudyInFather(fatherObj, _obj, _name)
726 self.addToStudy(_obj, _name)
732 if not theName and not self.myMaxNbSubShapesAllowed:
733 return # nothing to do: auto-publishing is disabled
734 if not theName and not theDefaultName:
735 return # neither theName nor theDefaultName is given
737 if type(theObj) in [types.ListType, types.TupleType]:
738 # list of objects is being published
741 if not obj: continue # bad object
742 name = _item_name(theName, theDefaultName, idx)
743 _publish( name, obj )
745 if not theName and idx == self.myMaxNbSubShapesAllowed: break
749 # single object is published
750 name = _item_name(theName, theDefaultName)
751 _publish( name, theObj )
754 ## @addtogroup l1_geomBuilder_auxiliary
756 def init_geom(self,theStudy):
757 self.myStudy = theStudy
758 self.myStudyId = self.myStudy._get_StudyId()
759 self.myBuilder = self.myStudy.NewBuilder()
760 self.father = self.myStudy.FindComponent("GEOM")
761 notebook.myStudy = theStudy
762 if self.father is None:
763 self.father = self.myBuilder.NewComponent("GEOM")
764 A1 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributeName")
765 FName = A1._narrow(SALOMEDS.AttributeName)
766 FName.SetValue("Geometry")
767 A2 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributePixMap")
768 aPixmap = A2._narrow(SALOMEDS.AttributePixMap)
769 aPixmap.SetPixMap("ICON_OBJBROWSER_Geometry")
770 self.myBuilder.DefineComponentInstance(self.father,self)
772 self.BasicOp = self.GetIBasicOperations (self.myStudyId)
773 self.CurvesOp = self.GetICurvesOperations (self.myStudyId)
774 self.PrimOp = self.GetI3DPrimOperations (self.myStudyId)
775 self.ShapesOp = self.GetIShapesOperations (self.myStudyId)
776 self.HealOp = self.GetIHealingOperations (self.myStudyId)
777 self.InsertOp = self.GetIInsertOperations (self.myStudyId)
778 self.BoolOp = self.GetIBooleanOperations (self.myStudyId)
779 self.TrsfOp = self.GetITransformOperations(self.myStudyId)
780 self.LocalOp = self.GetILocalOperations (self.myStudyId)
781 self.MeasuOp = self.GetIMeasureOperations (self.myStudyId)
782 self.BlocksOp = self.GetIBlocksOperations (self.myStudyId)
783 self.GroupOp = self.GetIGroupOperations (self.myStudyId)
784 self.FieldOp = self.GetIFieldOperations (self.myStudyId)
786 # set GEOM as root in the use case tree
787 self.myUseCaseBuilder = self.myStudy.GetUseCaseBuilder()
788 self.myUseCaseBuilder.SetRootCurrent()
789 self.myUseCaseBuilder.Append(self.father)
791 # load data from the study file, if necessary
792 self.myBuilder.LoadWith(self.father, self)
795 def GetPluginOperations(self, studyID, libraryName):
796 op = GEOM._objref_GEOM_Gen.GetPluginOperations(self, studyID, libraryName)
799 ## Enable / disable results auto-publishing
801 # The automatic publishing is managed in the following way:
802 # - if @a maxNbSubShapes = 0, automatic publishing is disabled.
803 # - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
804 # maximum number of sub-shapes allowed for publishing is unlimited; any negative
805 # value passed as parameter has the same effect.
806 # - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
807 # maximum number of sub-shapes allowed for publishing is set to specified value.
809 # @param maxNbSubShapes maximum number of sub-shapes allowed for publishing.
810 # @ingroup l1_publish_data
811 def addToStudyAuto(self, maxNbSubShapes=-1):
813 Enable / disable results auto-publishing
815 The automatic publishing is managed in the following way:
816 - if @a maxNbSubShapes = 0, automatic publishing is disabled;
817 - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
818 maximum number of sub-shapes allowed for publishing is unlimited; any negative
819 value passed as parameter has the same effect.
820 - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
821 maximum number of sub-shapes allowed for publishing is set to this value.
824 maxNbSubShapes maximum number of sub-shapes allowed for publishing.
827 geompy.addToStudyAuto() # enable auto-publishing
828 geompy.MakeBoxDXDYDZ(100) # box is created and published with default name
829 geompy.addToStudyAuto(0) # disable auto-publishing
831 self.myMaxNbSubShapesAllowed = max(-1, maxNbSubShapes)
834 ## Dump component to the Python script
835 # This method overrides IDL function to allow default values for the parameters.
836 def DumpPython(self, theStudy, theIsPublished=True, theIsMultiFile=True):
838 Dump component to the Python script
839 This method overrides IDL function to allow default values for the parameters.
841 return GEOM._objref_GEOM_Gen.DumpPython(self, theStudy, theIsPublished, theIsMultiFile)
843 ## Get name for sub-shape aSubObj of shape aMainObj
845 # @ref swig_SubShapeName "Example"
846 @ManageTransactions("ShapesOp")
847 def SubShapeName(self,aSubObj, aMainObj):
849 Get name for sub-shape aSubObj of shape aMainObj
851 # Example: see GEOM_TestAll.py
853 #aSubId = orb.object_to_string(aSubObj)
854 #aMainId = orb.object_to_string(aMainObj)
855 #index = gg.getIndexTopology(aSubId, aMainId)
856 #name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
857 index = self.ShapesOp.GetTopologyIndex(aMainObj, aSubObj)
858 name = self.ShapesOp.GetShapeTypeString(aSubObj) + "_%d"%(index)
861 ## Publish in study aShape with name aName
863 # \param aShape the shape to be published
864 # \param aName the name for the shape
865 # \param doRestoreSubShapes if True, finds and publishes also
866 # sub-shapes of <VAR>aShape</VAR>, corresponding to its arguments
867 # and published sub-shapes of arguments
868 # \param theArgs,theFindMethod,theInheritFirstArg see RestoreSubShapes() for
869 # these arguments description
870 # \return study entry of the published shape in form of string
872 # @ingroup l1_publish_data
873 # @ref swig_all_addtostudy "Example"
874 def addToStudy(self, aShape, aName, doRestoreSubShapes=False,
875 theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False):
877 Publish in study aShape with name aName
880 aShape the shape to be published
881 aName the name for the shape
882 doRestoreSubShapes if True, finds and publishes also
883 sub-shapes of aShape, corresponding to its arguments
884 and published sub-shapes of arguments
885 theArgs,theFindMethod,theInheritFirstArg see geompy.RestoreSubShapes() for
886 these arguments description
889 study entry of the published shape in form of string
892 id_block1 = geompy.addToStudy(Block1, "Block 1")
894 # Example: see GEOM_TestAll.py
896 aSObject = self.AddInStudy(self.myStudy, aShape, aName, None)
897 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
898 if doRestoreSubShapes:
899 self.RestoreSubShapesSO(self.myStudy, aSObject, theArgs,
900 theFindMethod, theInheritFirstArg, True )
902 print "addToStudy() failed"
904 return aShape.GetStudyEntry()
906 ## Publish in study aShape with name aName as sub-object of previously published aFather
907 # \param aFather previously published object
908 # \param aShape the shape to be published as sub-object of <VAR>aFather</VAR>
909 # \param aName the name for the shape
911 # \return study entry of the published shape in form of string
913 # @ingroup l1_publish_data
914 # @ref swig_all_addtostudyInFather "Example"
915 def addToStudyInFather(self, aFather, aShape, aName):
917 Publish in study aShape with name aName as sub-object of previously published aFather
920 aFather previously published object
921 aShape the shape to be published as sub-object of aFather
922 aName the name for the shape
925 study entry of the published shape in form of string
927 # Example: see GEOM_TestAll.py
929 aSObject = self.AddInStudy(self.myStudy, aShape, aName, aFather)
930 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
932 print "addToStudyInFather() failed"
934 return aShape.GetStudyEntry()
936 ## Unpublish object in study
938 # \param obj the object to be unpublished
939 def hideInStudy(self, obj):
941 Unpublish object in study
944 obj the object to be unpublished
946 ior = salome.orb.object_to_string(obj)
947 aSObject = self.myStudy.FindObjectIOR(ior)
948 if aSObject is not None:
949 genericAttribute = self.myBuilder.FindOrCreateAttribute(aSObject, "AttributeDrawable")
950 drwAttribute = genericAttribute._narrow(SALOMEDS.AttributeDrawable)
951 drwAttribute.SetDrawable(False)
952 # hide references if any
953 vso = self.myStudy.FindDependances(aSObject);
955 genericAttribute = self.myBuilder.FindOrCreateAttribute(refObj, "AttributeDrawable")
956 drwAttribute = genericAttribute._narrow(SALOMEDS.AttributeDrawable)
957 drwAttribute.SetDrawable(False)
961 # end of l1_geomBuilder_auxiliary
964 ## @addtogroup l3_restore_ss
967 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
968 # To be used from python scripts out of addToStudy() (non-default usage)
969 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
970 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
971 # If this list is empty, all operation arguments will be published
972 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
973 # their sub-shapes. Value from enumeration GEOM.find_shape_method.
974 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
975 # Do not publish sub-shapes in place of arguments, but only
976 # in place of sub-shapes of the first argument,
977 # because the whole shape corresponds to the first argument.
978 # Mainly to be used after transformations, but it also can be
979 # usefull after partition with one object shape, and some other
980 # operations, where only the first argument has to be considered.
981 # If theObject has only one argument shape, this flag is automatically
982 # considered as True, not regarding really passed value.
983 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
984 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
985 # \return list of published sub-shapes
987 # @ref tui_restore_prs_params "Example"
988 def RestoreSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
989 theInheritFirstArg=False, theAddPrefix=True):
991 Publish sub-shapes, standing for arguments and sub-shapes of arguments
992 To be used from python scripts out of geompy.addToStudy (non-default usage)
995 theObject published GEOM.GEOM_Object, arguments of which will be published
996 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
997 If this list is empty, all operation arguments will be published
998 theFindMethod method to search sub-shapes, corresponding to arguments and
999 their sub-shapes. Value from enumeration GEOM.find_shape_method.
1000 theInheritFirstArg set properties of the first argument for theObject.
1001 Do not publish sub-shapes in place of arguments, but only
1002 in place of sub-shapes of the first argument,
1003 because the whole shape corresponds to the first argument.
1004 Mainly to be used after transformations, but it also can be
1005 usefull after partition with one object shape, and some other
1006 operations, where only the first argument has to be considered.
1007 If theObject has only one argument shape, this flag is automatically
1008 considered as True, not regarding really passed value.
1009 theAddPrefix add prefix "from_" to names of restored sub-shapes,
1010 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
1012 list of published sub-shapes
1014 # Example: see GEOM_TestAll.py
1015 return self.RestoreSubShapesO(self.myStudy, theObject, theArgs,
1016 theFindMethod, theInheritFirstArg, theAddPrefix)
1018 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
1019 # To be used from python scripts out of addToStudy() (non-default usage)
1020 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
1021 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
1022 # If this list is empty, all operation arguments will be published
1023 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
1024 # their sub-shapes. Value from enumeration GEOM::find_shape_method.
1025 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
1026 # Do not publish sub-shapes in place of arguments, but only
1027 # in place of sub-shapes of the first argument,
1028 # because the whole shape corresponds to the first argument.
1029 # Mainly to be used after transformations, but it also can be
1030 # usefull after partition with one object shape, and some other
1031 # operations, where only the first argument has to be considered.
1032 # If theObject has only one argument shape, this flag is automatically
1033 # considered as True, not regarding really passed value.
1034 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
1035 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
1036 # \return list of published sub-shapes
1038 # @ref tui_restore_prs_params "Example"
1039 def RestoreGivenSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
1040 theInheritFirstArg=False, theAddPrefix=True):
1042 Publish sub-shapes, standing for arguments and sub-shapes of arguments
1043 To be used from python scripts out of geompy.addToStudy() (non-default usage)
1046 theObject published GEOM.GEOM_Object, arguments of which will be published
1047 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
1048 If this list is empty, all operation arguments will be published
1049 theFindMethod method to search sub-shapes, corresponding to arguments and
1050 their sub-shapes. Value from enumeration GEOM::find_shape_method.
1051 theInheritFirstArg set properties of the first argument for theObject.
1052 Do not publish sub-shapes in place of arguments, but only
1053 in place of sub-shapes of the first argument,
1054 because the whole shape corresponds to the first argument.
1055 Mainly to be used after transformations, but it also can be
1056 usefull after partition with one object shape, and some other
1057 operations, where only the first argument has to be considered.
1058 If theObject has only one argument shape, this flag is automatically
1059 considered as True, not regarding really passed value.
1060 theAddPrefix add prefix "from_" to names of restored sub-shapes,
1061 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
1064 list of published sub-shapes
1066 # Example: see GEOM_TestAll.py
1067 return self.RestoreGivenSubShapesO(self.myStudy, theObject, theArgs,
1068 theFindMethod, theInheritFirstArg, theAddPrefix)
1070 # end of l3_restore_ss
1073 ## @addtogroup l3_basic_go
1076 ## Create point by three coordinates.
1077 # @param theX The X coordinate of the point.
1078 # @param theY The Y coordinate of the point.
1079 # @param theZ The Z coordinate of the point.
1080 # @param theName Object name; when specified, this parameter is used
1081 # for result publication in the study. Otherwise, if automatic
1082 # publication is switched on, default value is used for result name.
1084 # @return New GEOM.GEOM_Object, containing the created point.
1086 # @ref tui_creation_point "Example"
1087 @ManageTransactions("BasicOp")
1088 def MakeVertex(self, theX, theY, theZ, theName=None):
1090 Create point by three coordinates.
1093 theX The X coordinate of the point.
1094 theY The Y coordinate of the point.
1095 theZ The Z coordinate of the point.
1096 theName Object name; when specified, this parameter is used
1097 for result publication in the study. Otherwise, if automatic
1098 publication is switched on, default value is used for result name.
1101 New GEOM.GEOM_Object, containing the created point.
1103 # Example: see GEOM_TestAll.py
1104 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1105 anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
1106 RaiseIfFailed("MakePointXYZ", self.BasicOp)
1107 anObj.SetParameters(Parameters)
1108 self._autoPublish(anObj, theName, "vertex")
1111 ## Create a point, distant from the referenced point
1112 # on the given distances along the coordinate axes.
1113 # @param theReference The referenced point.
1114 # @param theX Displacement from the referenced point along OX axis.
1115 # @param theY Displacement from the referenced point along OY axis.
1116 # @param theZ Displacement from the referenced point along OZ axis.
1117 # @param theName Object name; when specified, this parameter is used
1118 # for result publication in the study. Otherwise, if automatic
1119 # publication is switched on, default value is used for result name.
1121 # @return New GEOM.GEOM_Object, containing the created point.
1123 # @ref tui_creation_point "Example"
1124 @ManageTransactions("BasicOp")
1125 def MakeVertexWithRef(self, theReference, theX, theY, theZ, theName=None):
1127 Create a point, distant from the referenced point
1128 on the given distances along the coordinate axes.
1131 theReference The referenced point.
1132 theX Displacement from the referenced point along OX axis.
1133 theY Displacement from the referenced point along OY axis.
1134 theZ Displacement from the referenced point along OZ axis.
1135 theName Object name; when specified, this parameter is used
1136 for result publication in the study. Otherwise, if automatic
1137 publication is switched on, default value is used for result name.
1140 New GEOM.GEOM_Object, containing the created point.
1142 # Example: see GEOM_TestAll.py
1143 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1144 anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
1145 RaiseIfFailed("MakePointWithReference", self.BasicOp)
1146 anObj.SetParameters(Parameters)
1147 self._autoPublish(anObj, theName, "vertex")
1150 ## Create a point, corresponding to the given parameter on the given curve.
1151 # @param theRefCurve The referenced curve.
1152 # @param theParameter Value of parameter on the referenced curve.
1153 # @param takeOrientationIntoAccount flag that tells if it is necessary
1154 # to take the curve's orientation into account for the
1155 # operation. I.e. if this flag is set, the results for the same
1156 # parameters (except the value 0.5) is different for forward
1157 # and reversed curves. If it is not set the result is the same.
1158 # @param theName Object name; when specified, this parameter is used
1159 # for result publication in the study. Otherwise, if automatic
1160 # publication is switched on, default value is used for result name.
1162 # @return New GEOM.GEOM_Object, containing the created point.
1164 # @ref tui_creation_point "Example"
1165 @ManageTransactions("BasicOp")
1166 def MakeVertexOnCurve(self, theRefCurve, theParameter,
1167 takeOrientationIntoAccount=False, theName=None):
1169 Create a point, corresponding to the given parameter on the given curve.
1172 theRefCurve The referenced curve.
1173 theParameter Value of parameter on the referenced curve.
1174 takeOrientationIntoAccount flag that tells if it is necessary
1175 to take the curve's orientation into account for the
1176 operation. I.e. if this flag is set, the results for
1177 the same parameters (except the value 0.5) is different
1178 for forward and reversed curves. If it is not set
1179 the result is the same.
1180 theName Object name; when specified, this parameter is used
1181 for result publication in the study. Otherwise, if automatic
1182 publication is switched on, default value is used for result name.
1185 New GEOM.GEOM_Object, containing the created point.
1188 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25)
1190 # Example: see GEOM_TestAll.py
1191 theParameter, takeOrientationIntoAccount, Parameters = ParseParameters(
1192 theParameter, takeOrientationIntoAccount)
1193 anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter,
1194 takeOrientationIntoAccount)
1195 RaiseIfFailed("MakePointOnCurve", self.BasicOp)
1196 anObj.SetParameters(Parameters)
1197 self._autoPublish(anObj, theName, "vertex")
1200 ## Create a point by projection give coordinates on the given curve
1201 # @param theRefCurve The referenced curve.
1202 # @param theX X-coordinate in 3D space
1203 # @param theY Y-coordinate in 3D space
1204 # @param theZ Z-coordinate in 3D space
1205 # @param theName Object name; when specified, this parameter is used
1206 # for result publication in the study. Otherwise, if automatic
1207 # publication is switched on, default value is used for result name.
1209 # @return New GEOM.GEOM_Object, containing the created point.
1211 # @ref tui_creation_point "Example"
1212 @ManageTransactions("BasicOp")
1213 def MakeVertexOnCurveByCoord(self, theRefCurve, theX, theY, theZ, theName=None):
1215 Create a point by projection give coordinates on the given curve
1218 theRefCurve The referenced curve.
1219 theX X-coordinate in 3D space
1220 theY Y-coordinate in 3D space
1221 theZ Z-coordinate in 3D space
1222 theName Object name; when specified, this parameter is used
1223 for result publication in the study. Otherwise, if automatic
1224 publication is switched on, default value is used for result name.
1227 New GEOM.GEOM_Object, containing the created point.
1230 p_on_arc3 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10)
1232 # Example: see GEOM_TestAll.py
1233 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1234 anObj = self.BasicOp.MakePointOnCurveByCoord(theRefCurve, theX, theY, theZ)
1235 RaiseIfFailed("MakeVertexOnCurveByCoord", self.BasicOp)
1236 anObj.SetParameters(Parameters)
1237 self._autoPublish(anObj, theName, "vertex")
1240 ## Create a point, corresponding to the given length on the given curve.
1241 # @param theRefCurve The referenced curve.
1242 # @param theLength Length on the referenced curve. It can be negative.
1243 # @param theStartPoint Point allowing to choose the direction for the calculation
1244 # of the length. If None, start from the first point of theRefCurve.
1245 # @param theName Object name; when specified, this parameter is used
1246 # for result publication in the study. Otherwise, if automatic
1247 # publication is switched on, default value is used for result name.
1249 # @return New GEOM.GEOM_Object, containing the created point.
1251 # @ref tui_creation_point "Example"
1252 @ManageTransactions("BasicOp")
1253 def MakeVertexOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
1255 Create a point, corresponding to the given length on the given curve.
1258 theRefCurve The referenced curve.
1259 theLength Length on the referenced curve. It can be negative.
1260 theStartPoint Point allowing to choose the direction for the calculation
1261 of the length. If None, start from the first point of theRefCurve.
1262 theName Object name; when specified, this parameter is used
1263 for result publication in the study. Otherwise, if automatic
1264 publication is switched on, default value is used for result name.
1267 New GEOM.GEOM_Object, containing the created point.
1269 # Example: see GEOM_TestAll.py
1270 theLength, Parameters = ParseParameters(theLength)
1271 anObj = self.BasicOp.MakePointOnCurveByLength(theRefCurve, theLength, theStartPoint)
1272 RaiseIfFailed("MakePointOnCurveByLength", self.BasicOp)
1273 anObj.SetParameters(Parameters)
1274 self._autoPublish(anObj, theName, "vertex")
1277 ## Create a point, corresponding to the given parameters on the
1279 # @param theRefSurf The referenced surface.
1280 # @param theUParameter Value of U-parameter on the referenced surface.
1281 # @param theVParameter Value of V-parameter on the referenced surface.
1282 # @param theName Object name; when specified, this parameter is used
1283 # for result publication in the study. Otherwise, if automatic
1284 # publication is switched on, default value is used for result name.
1286 # @return New GEOM.GEOM_Object, containing the created point.
1288 # @ref swig_MakeVertexOnSurface "Example"
1289 @ManageTransactions("BasicOp")
1290 def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter, theName=None):
1292 Create a point, corresponding to the given parameters on the
1296 theRefSurf The referenced surface.
1297 theUParameter Value of U-parameter on the referenced surface.
1298 theVParameter Value of V-parameter on the referenced surface.
1299 theName Object name; when specified, this parameter is used
1300 for result publication in the study. Otherwise, if automatic
1301 publication is switched on, default value is used for result name.
1304 New GEOM.GEOM_Object, containing the created point.
1307 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8)
1309 theUParameter, theVParameter, Parameters = ParseParameters(theUParameter, theVParameter)
1310 # Example: see GEOM_TestAll.py
1311 anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter)
1312 RaiseIfFailed("MakePointOnSurface", self.BasicOp)
1313 anObj.SetParameters(Parameters);
1314 self._autoPublish(anObj, theName, "vertex")
1317 ## Create a point by projection give coordinates on the given surface
1318 # @param theRefSurf The referenced surface.
1319 # @param theX X-coordinate in 3D space
1320 # @param theY Y-coordinate in 3D space
1321 # @param theZ Z-coordinate in 3D space
1322 # @param theName Object name; when specified, this parameter is used
1323 # for result publication in the study. Otherwise, if automatic
1324 # publication is switched on, default value is used for result name.
1326 # @return New GEOM.GEOM_Object, containing the created point.
1328 # @ref swig_MakeVertexOnSurfaceByCoord "Example"
1329 @ManageTransactions("BasicOp")
1330 def MakeVertexOnSurfaceByCoord(self, theRefSurf, theX, theY, theZ, theName=None):
1332 Create a point by projection give coordinates on the given surface
1335 theRefSurf The referenced surface.
1336 theX X-coordinate in 3D space
1337 theY Y-coordinate in 3D space
1338 theZ Z-coordinate in 3D space
1339 theName Object name; when specified, this parameter is used
1340 for result publication in the study. Otherwise, if automatic
1341 publication is switched on, default value is used for result name.
1344 New GEOM.GEOM_Object, containing the created point.
1347 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.)
1349 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1350 # Example: see GEOM_TestAll.py
1351 anObj = self.BasicOp.MakePointOnSurfaceByCoord(theRefSurf, theX, theY, theZ)
1352 RaiseIfFailed("MakeVertexOnSurfaceByCoord", self.BasicOp)
1353 anObj.SetParameters(Parameters);
1354 self._autoPublish(anObj, theName, "vertex")
1357 ## Create a point, which lays on the given face.
1358 # The point will lay in arbitrary place of the face.
1359 # The only condition on it is a non-zero distance to the face boundary.
1360 # Such point can be used to uniquely identify the face inside any
1361 # shape in case, when the shape does not contain overlapped faces.
1362 # @param theFace The referenced face.
1363 # @param theName Object name; when specified, this parameter is used
1364 # for result publication in the study. Otherwise, if automatic
1365 # publication is switched on, default value is used for result name.
1367 # @return New GEOM.GEOM_Object, containing the created point.
1369 # @ref swig_MakeVertexInsideFace "Example"
1370 @ManageTransactions("BasicOp")
1371 def MakeVertexInsideFace (self, theFace, theName=None):
1373 Create a point, which lays on the given face.
1374 The point will lay in arbitrary place of the face.
1375 The only condition on it is a non-zero distance to the face boundary.
1376 Such point can be used to uniquely identify the face inside any
1377 shape in case, when the shape does not contain overlapped faces.
1380 theFace The referenced face.
1381 theName Object name; when specified, this parameter is used
1382 for result publication in the study. Otherwise, if automatic
1383 publication is switched on, default value is used for result name.
1386 New GEOM.GEOM_Object, containing the created point.
1389 p_on_face = geompy.MakeVertexInsideFace(Face)
1391 # Example: see GEOM_TestAll.py
1392 anObj = self.BasicOp.MakePointOnFace(theFace)
1393 RaiseIfFailed("MakeVertexInsideFace", self.BasicOp)
1394 self._autoPublish(anObj, theName, "vertex")
1397 ## Create a point on intersection of two lines.
1398 # @param theRefLine1, theRefLine2 The referenced lines.
1399 # @param theName Object name; when specified, this parameter is used
1400 # for result publication in the study. Otherwise, if automatic
1401 # publication is switched on, default value is used for result name.
1403 # @return New GEOM.GEOM_Object, containing the created point.
1405 # @ref swig_MakeVertexOnLinesIntersection "Example"
1406 @ManageTransactions("BasicOp")
1407 def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2, theName=None):
1409 Create a point on intersection of two lines.
1412 theRefLine1, theRefLine2 The referenced lines.
1413 theName Object name; when specified, this parameter is used
1414 for result publication in the study. Otherwise, if automatic
1415 publication is switched on, default value is used for result name.
1418 New GEOM.GEOM_Object, containing the created point.
1420 # Example: see GEOM_TestAll.py
1421 anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2)
1422 RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp)
1423 self._autoPublish(anObj, theName, "vertex")
1426 ## Create a tangent, corresponding to the given parameter on the given curve.
1427 # @param theRefCurve The referenced curve.
1428 # @param theParameter Value of parameter on the referenced curve.
1429 # @param theName Object name; when specified, this parameter is used
1430 # for result publication in the study. Otherwise, if automatic
1431 # publication is switched on, default value is used for result name.
1433 # @return New GEOM.GEOM_Object, containing the created tangent.
1435 # @ref swig_MakeTangentOnCurve "Example"
1436 @ManageTransactions("BasicOp")
1437 def MakeTangentOnCurve(self, theRefCurve, theParameter, theName=None):
1439 Create a tangent, corresponding to the given parameter on the given curve.
1442 theRefCurve The referenced curve.
1443 theParameter Value of parameter on the referenced curve.
1444 theName Object name; when specified, this parameter is used
1445 for result publication in the study. Otherwise, if automatic
1446 publication is switched on, default value is used for result name.
1449 New GEOM.GEOM_Object, containing the created tangent.
1452 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7)
1454 anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter)
1455 RaiseIfFailed("MakeTangentOnCurve", self.BasicOp)
1456 self._autoPublish(anObj, theName, "tangent")
1459 ## Create a tangent plane, corresponding to the given parameter on the given face.
1460 # @param theFace The face for which tangent plane should be built.
1461 # @param theParameterV vertical value of the center point (0.0 - 1.0).
1462 # @param theParameterU horisontal value of the center point (0.0 - 1.0).
1463 # @param theTrimSize the size of plane.
1464 # @param theName Object name; when specified, this parameter is used
1465 # for result publication in the study. Otherwise, if automatic
1466 # publication is switched on, default value is used for result name.
1468 # @return New GEOM.GEOM_Object, containing the created tangent.
1470 # @ref swig_MakeTangentPlaneOnFace "Example"
1471 @ManageTransactions("BasicOp")
1472 def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize, theName=None):
1474 Create a tangent plane, corresponding to the given parameter on the given face.
1477 theFace The face for which tangent plane should be built.
1478 theParameterV vertical value of the center point (0.0 - 1.0).
1479 theParameterU horisontal value of the center point (0.0 - 1.0).
1480 theTrimSize the size of plane.
1481 theName Object name; when specified, this parameter is used
1482 for result publication in the study. Otherwise, if automatic
1483 publication is switched on, default value is used for result name.
1486 New GEOM.GEOM_Object, containing the created tangent.
1489 an_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
1491 anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize)
1492 RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp)
1493 self._autoPublish(anObj, theName, "tangent")
1496 ## Create a vector with the given components.
1497 # @param theDX X component of the vector.
1498 # @param theDY Y component of the vector.
1499 # @param theDZ Z component of the vector.
1500 # @param theName Object name; when specified, this parameter is used
1501 # for result publication in the study. Otherwise, if automatic
1502 # publication is switched on, default value is used for result name.
1504 # @return New GEOM.GEOM_Object, containing the created vector.
1506 # @ref tui_creation_vector "Example"
1507 @ManageTransactions("BasicOp")
1508 def MakeVectorDXDYDZ(self, theDX, theDY, theDZ, theName=None):
1510 Create a vector with the given components.
1513 theDX X component of the vector.
1514 theDY Y component of the vector.
1515 theDZ Z component of the vector.
1516 theName Object name; when specified, this parameter is used
1517 for result publication in the study. Otherwise, if automatic
1518 publication is switched on, default value is used for result name.
1521 New GEOM.GEOM_Object, containing the created vector.
1523 # Example: see GEOM_TestAll.py
1524 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
1525 anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
1526 RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp)
1527 anObj.SetParameters(Parameters)
1528 self._autoPublish(anObj, theName, "vector")
1531 ## Create a vector between two points.
1532 # @param thePnt1 Start point for the vector.
1533 # @param thePnt2 End point for the vector.
1534 # @param theName Object name; when specified, this parameter is used
1535 # for result publication in the study. Otherwise, if automatic
1536 # publication is switched on, default value is used for result name.
1538 # @return New GEOM.GEOM_Object, containing the created vector.
1540 # @ref tui_creation_vector "Example"
1541 @ManageTransactions("BasicOp")
1542 def MakeVector(self, thePnt1, thePnt2, theName=None):
1544 Create a vector between two points.
1547 thePnt1 Start point for the vector.
1548 thePnt2 End point for the vector.
1549 theName Object name; when specified, this parameter is used
1550 for result publication in the study. Otherwise, if automatic
1551 publication is switched on, default value is used for result name.
1554 New GEOM.GEOM_Object, containing the created vector.
1556 # Example: see GEOM_TestAll.py
1557 anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2)
1558 RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp)
1559 self._autoPublish(anObj, theName, "vector")
1562 ## Create a line, passing through the given point
1563 # and parrallel to the given direction
1564 # @param thePnt Point. The resulting line will pass through it.
1565 # @param theDir Direction. The resulting line will be parallel to it.
1566 # @param theName Object name; when specified, this parameter is used
1567 # for result publication in the study. Otherwise, if automatic
1568 # publication is switched on, default value is used for result name.
1570 # @return New GEOM.GEOM_Object, containing the created line.
1572 # @ref tui_creation_line "Example"
1573 @ManageTransactions("BasicOp")
1574 def MakeLine(self, thePnt, theDir, theName=None):
1576 Create a line, passing through the given point
1577 and parrallel to the given direction
1580 thePnt Point. The resulting line will pass through it.
1581 theDir Direction. The resulting line will be parallel to it.
1582 theName Object name; when specified, this parameter is used
1583 for result publication in the study. Otherwise, if automatic
1584 publication is switched on, default value is used for result name.
1587 New GEOM.GEOM_Object, containing the created line.
1589 # Example: see GEOM_TestAll.py
1590 anObj = self.BasicOp.MakeLine(thePnt, theDir)
1591 RaiseIfFailed("MakeLine", self.BasicOp)
1592 self._autoPublish(anObj, theName, "line")
1595 ## Create a line, passing through the given points
1596 # @param thePnt1 First of two points, defining the line.
1597 # @param thePnt2 Second of two points, defining the line.
1598 # @param theName Object name; when specified, this parameter is used
1599 # for result publication in the study. Otherwise, if automatic
1600 # publication is switched on, default value is used for result name.
1602 # @return New GEOM.GEOM_Object, containing the created line.
1604 # @ref tui_creation_line "Example"
1605 @ManageTransactions("BasicOp")
1606 def MakeLineTwoPnt(self, thePnt1, thePnt2, theName=None):
1608 Create a line, passing through the given points
1611 thePnt1 First of two points, defining the line.
1612 thePnt2 Second of two points, defining the line.
1613 theName Object name; when specified, this parameter is used
1614 for result publication in the study. Otherwise, if automatic
1615 publication is switched on, default value is used for result name.
1618 New GEOM.GEOM_Object, containing the created line.
1620 # Example: see GEOM_TestAll.py
1621 anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
1622 RaiseIfFailed("MakeLineTwoPnt", self.BasicOp)
1623 self._autoPublish(anObj, theName, "line")
1626 ## Create a line on two faces intersection.
1627 # @param theFace1 First of two faces, defining the line.
1628 # @param theFace2 Second of two faces, defining the line.
1629 # @param theName Object name; when specified, this parameter is used
1630 # for result publication in the study. Otherwise, if automatic
1631 # publication is switched on, default value is used for result name.
1633 # @return New GEOM.GEOM_Object, containing the created line.
1635 # @ref swig_MakeLineTwoFaces "Example"
1636 @ManageTransactions("BasicOp")
1637 def MakeLineTwoFaces(self, theFace1, theFace2, theName=None):
1639 Create a line on two faces intersection.
1642 theFace1 First of two faces, defining the line.
1643 theFace2 Second of two faces, defining the line.
1644 theName Object name; when specified, this parameter is used
1645 for result publication in the study. Otherwise, if automatic
1646 publication is switched on, default value is used for result name.
1649 New GEOM.GEOM_Object, containing the created line.
1651 # Example: see GEOM_TestAll.py
1652 anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2)
1653 RaiseIfFailed("MakeLineTwoFaces", self.BasicOp)
1654 self._autoPublish(anObj, theName, "line")
1657 ## Create a plane, passing through the given point
1658 # and normal to the given vector.
1659 # @param thePnt Point, the plane has to pass through.
1660 # @param theVec Vector, defining the plane normal direction.
1661 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1662 # @param theName Object name; when specified, this parameter is used
1663 # for result publication in the study. Otherwise, if automatic
1664 # publication is switched on, default value is used for result name.
1666 # @return New GEOM.GEOM_Object, containing the created plane.
1668 # @ref tui_creation_plane "Example"
1669 @ManageTransactions("BasicOp")
1670 def MakePlane(self, thePnt, theVec, theTrimSize, theName=None):
1672 Create a plane, passing through the given point
1673 and normal to the given vector.
1676 thePnt Point, the plane has to pass through.
1677 theVec Vector, defining the plane normal direction.
1678 theTrimSize Half size of a side of quadrangle face, representing the plane.
1679 theName Object name; when specified, this parameter is used
1680 for result publication in the study. Otherwise, if automatic
1681 publication is switched on, default value is used for result name.
1684 New GEOM.GEOM_Object, containing the created plane.
1686 # Example: see GEOM_TestAll.py
1687 theTrimSize, Parameters = ParseParameters(theTrimSize);
1688 anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
1689 RaiseIfFailed("MakePlanePntVec", self.BasicOp)
1690 anObj.SetParameters(Parameters)
1691 self._autoPublish(anObj, theName, "plane")
1694 ## Create a plane, passing through the three given points
1695 # @param thePnt1 First of three points, defining the plane.
1696 # @param thePnt2 Second of three points, defining the plane.
1697 # @param thePnt3 Fird of three points, defining the plane.
1698 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1699 # @param theName Object name; when specified, this parameter is used
1700 # for result publication in the study. Otherwise, if automatic
1701 # publication is switched on, default value is used for result name.
1703 # @return New GEOM.GEOM_Object, containing the created plane.
1705 # @ref tui_creation_plane "Example"
1706 @ManageTransactions("BasicOp")
1707 def MakePlaneThreePnt(self, thePnt1, thePnt2, thePnt3, theTrimSize, theName=None):
1709 Create a plane, passing through the three given points
1712 thePnt1 First of three points, defining the plane.
1713 thePnt2 Second of three points, defining the plane.
1714 thePnt3 Fird of three points, defining the plane.
1715 theTrimSize Half size of a side of quadrangle face, representing the plane.
1716 theName Object name; when specified, this parameter is used
1717 for result publication in the study. Otherwise, if automatic
1718 publication is switched on, default value is used for result name.
1721 New GEOM.GEOM_Object, containing the created plane.
1723 # Example: see GEOM_TestAll.py
1724 theTrimSize, Parameters = ParseParameters(theTrimSize);
1725 anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
1726 RaiseIfFailed("MakePlaneThreePnt", self.BasicOp)
1727 anObj.SetParameters(Parameters)
1728 self._autoPublish(anObj, theName, "plane")
1731 ## Create a plane, similar to the existing one, but with another size of representing face.
1732 # @param theFace Referenced plane or LCS(Marker).
1733 # @param theTrimSize New half size of a side of quadrangle face, representing the plane.
1734 # @param theName Object name; when specified, this parameter is used
1735 # for result publication in the study. Otherwise, if automatic
1736 # publication is switched on, default value is used for result name.
1738 # @return New GEOM.GEOM_Object, containing the created plane.
1740 # @ref tui_creation_plane "Example"
1741 @ManageTransactions("BasicOp")
1742 def MakePlaneFace(self, theFace, theTrimSize, theName=None):
1744 Create a plane, similar to the existing one, but with another size of representing face.
1747 theFace Referenced plane or LCS(Marker).
1748 theTrimSize New half size of a side of quadrangle face, representing the plane.
1749 theName Object name; when specified, this parameter is used
1750 for result publication in the study. Otherwise, if automatic
1751 publication is switched on, default value is used for result name.
1754 New GEOM.GEOM_Object, containing the created plane.
1756 # Example: see GEOM_TestAll.py
1757 theTrimSize, Parameters = ParseParameters(theTrimSize);
1758 anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize)
1759 RaiseIfFailed("MakePlaneFace", self.BasicOp)
1760 anObj.SetParameters(Parameters)
1761 self._autoPublish(anObj, theName, "plane")
1764 ## Create a plane, passing through the 2 vectors
1765 # with center in a start point of the first vector.
1766 # @param theVec1 Vector, defining center point and plane direction.
1767 # @param theVec2 Vector, defining the plane normal direction.
1768 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1769 # @param theName Object name; when specified, this parameter is used
1770 # for result publication in the study. Otherwise, if automatic
1771 # publication is switched on, default value is used for result name.
1773 # @return New GEOM.GEOM_Object, containing the created plane.
1775 # @ref tui_creation_plane "Example"
1776 @ManageTransactions("BasicOp")
1777 def MakePlane2Vec(self, theVec1, theVec2, theTrimSize, theName=None):
1779 Create a plane, passing through the 2 vectors
1780 with center in a start point of the first vector.
1783 theVec1 Vector, defining center point and plane direction.
1784 theVec2 Vector, defining the plane normal direction.
1785 theTrimSize Half size of a side of quadrangle face, representing the plane.
1786 theName Object name; when specified, this parameter is used
1787 for result publication in the study. Otherwise, if automatic
1788 publication is switched on, default value is used for result name.
1791 New GEOM.GEOM_Object, containing the created plane.
1793 # Example: see GEOM_TestAll.py
1794 theTrimSize, Parameters = ParseParameters(theTrimSize);
1795 anObj = self.BasicOp.MakePlane2Vec(theVec1, theVec2, theTrimSize)
1796 RaiseIfFailed("MakePlane2Vec", self.BasicOp)
1797 anObj.SetParameters(Parameters)
1798 self._autoPublish(anObj, theName, "plane")
1801 ## Create a plane, based on a Local coordinate system.
1802 # @param theLCS coordinate system, defining plane.
1803 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1804 # @param theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1805 # @param theName Object name; when specified, this parameter is used
1806 # for result publication in the study. Otherwise, if automatic
1807 # publication is switched on, default value is used for result name.
1809 # @return New GEOM.GEOM_Object, containing the created plane.
1811 # @ref tui_creation_plane "Example"
1812 @ManageTransactions("BasicOp")
1813 def MakePlaneLCS(self, theLCS, theTrimSize, theOrientation, theName=None):
1815 Create a plane, based on a Local coordinate system.
1818 theLCS coordinate system, defining plane.
1819 theTrimSize Half size of a side of quadrangle face, representing the plane.
1820 theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1821 theName Object name; when specified, this parameter is used
1822 for result publication in the study. Otherwise, if automatic
1823 publication is switched on, default value is used for result name.
1826 New GEOM.GEOM_Object, containing the created plane.
1828 # Example: see GEOM_TestAll.py
1829 theTrimSize, Parameters = ParseParameters(theTrimSize);
1830 anObj = self.BasicOp.MakePlaneLCS(theLCS, theTrimSize, theOrientation)
1831 RaiseIfFailed("MakePlaneLCS", self.BasicOp)
1832 anObj.SetParameters(Parameters)
1833 self._autoPublish(anObj, theName, "plane")
1836 ## Create a local coordinate system.
1837 # @param OX,OY,OZ Three coordinates of coordinate system origin.
1838 # @param XDX,XDY,XDZ Three components of OX direction
1839 # @param YDX,YDY,YDZ Three components of OY direction
1840 # @param theName Object name; when specified, this parameter is used
1841 # for result publication in the study. Otherwise, if automatic
1842 # publication is switched on, default value is used for result name.
1844 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1846 # @ref swig_MakeMarker "Example"
1847 @ManageTransactions("BasicOp")
1848 def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, theName=None):
1850 Create a local coordinate system.
1853 OX,OY,OZ Three coordinates of coordinate system origin.
1854 XDX,XDY,XDZ Three components of OX direction
1855 YDX,YDY,YDZ Three components of OY direction
1856 theName Object name; when specified, this parameter is used
1857 for result publication in the study. Otherwise, if automatic
1858 publication is switched on, default value is used for result name.
1861 New GEOM.GEOM_Object, containing the created coordinate system.
1863 # Example: see GEOM_TestAll.py
1864 OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, Parameters = ParseParameters(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ);
1865 anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ)
1866 RaiseIfFailed("MakeMarker", self.BasicOp)
1867 anObj.SetParameters(Parameters)
1868 self._autoPublish(anObj, theName, "lcs")
1871 ## Create a local coordinate system from shape.
1872 # @param theShape The initial shape to detect the coordinate system.
1873 # @param theName Object name; when specified, this parameter is used
1874 # for result publication in the study. Otherwise, if automatic
1875 # publication is switched on, default value is used for result name.
1877 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1879 # @ref tui_creation_lcs "Example"
1880 @ManageTransactions("BasicOp")
1881 def MakeMarkerFromShape(self, theShape, theName=None):
1883 Create a local coordinate system from shape.
1886 theShape The initial shape to detect the coordinate system.
1887 theName Object name; when specified, this parameter is used
1888 for result publication in the study. Otherwise, if automatic
1889 publication is switched on, default value is used for result name.
1892 New GEOM.GEOM_Object, containing the created coordinate system.
1894 anObj = self.BasicOp.MakeMarkerFromShape(theShape)
1895 RaiseIfFailed("MakeMarkerFromShape", self.BasicOp)
1896 self._autoPublish(anObj, theName, "lcs")
1899 ## Create a local coordinate system from point and two vectors.
1900 # @param theOrigin Point of coordinate system origin.
1901 # @param theXVec Vector of X direction
1902 # @param theYVec Vector of Y direction
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 coordinate system.
1909 # @ref tui_creation_lcs "Example"
1910 @ManageTransactions("BasicOp")
1911 def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec, theName=None):
1913 Create a local coordinate system from point and two vectors.
1916 theOrigin Point of coordinate system origin.
1917 theXVec Vector of X direction
1918 theYVec Vector of Y direction
1919 theName Object name; when specified, this parameter is used
1920 for result publication in the study. Otherwise, if automatic
1921 publication is switched on, default value is used for result name.
1924 New GEOM.GEOM_Object, containing the created coordinate system.
1927 anObj = self.BasicOp.MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec)
1928 RaiseIfFailed("MakeMarkerPntTwoVec", self.BasicOp)
1929 self._autoPublish(anObj, theName, "lcs")
1932 # end of l3_basic_go
1935 ## @addtogroup l4_curves
1938 ## Create an arc of circle, passing through three given points.
1939 # @param thePnt1 Start point of the arc.
1940 # @param thePnt2 Middle point of the arc.
1941 # @param thePnt3 End point of the arc.
1942 # @param theName Object name; when specified, this parameter is used
1943 # for result publication in the study. Otherwise, if automatic
1944 # publication is switched on, default value is used for result name.
1946 # @return New GEOM.GEOM_Object, containing the created arc.
1948 # @ref swig_MakeArc "Example"
1949 @ManageTransactions("CurvesOp")
1950 def MakeArc(self, thePnt1, thePnt2, thePnt3, theName=None):
1952 Create an arc of circle, passing through three given points.
1955 thePnt1 Start point of the arc.
1956 thePnt2 Middle point of the arc.
1957 thePnt3 End point of the arc.
1958 theName Object name; when specified, this parameter is used
1959 for result publication in the study. Otherwise, if automatic
1960 publication is switched on, default value is used for result name.
1963 New GEOM.GEOM_Object, containing the created arc.
1965 # Example: see GEOM_TestAll.py
1966 anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3)
1967 RaiseIfFailed("MakeArc", self.CurvesOp)
1968 self._autoPublish(anObj, theName, "arc")
1971 ## Create an arc of circle from a center and 2 points.
1972 # @param thePnt1 Center of the arc
1973 # @param thePnt2 Start point of the arc. (Gives also the radius of the arc)
1974 # @param thePnt3 End point of the arc (Gives also a direction)
1975 # @param theSense Orientation of the arc
1976 # @param theName Object name; when specified, this parameter is used
1977 # for result publication in the study. Otherwise, if automatic
1978 # publication is switched on, default value is used for result name.
1980 # @return New GEOM.GEOM_Object, containing the created arc.
1982 # @ref swig_MakeArc "Example"
1983 @ManageTransactions("CurvesOp")
1984 def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False, theName=None):
1986 Create an arc of circle from a center and 2 points.
1989 thePnt1 Center of the arc
1990 thePnt2 Start point of the arc. (Gives also the radius of the arc)
1991 thePnt3 End point of the arc (Gives also a direction)
1992 theSense Orientation of the arc
1993 theName Object name; when specified, this parameter is used
1994 for result publication in the study. Otherwise, if automatic
1995 publication is switched on, default value is used for result name.
1998 New GEOM.GEOM_Object, containing the created arc.
2000 # Example: see GEOM_TestAll.py
2001 anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense)
2002 RaiseIfFailed("MakeArcCenter", self.CurvesOp)
2003 self._autoPublish(anObj, theName, "arc")
2006 ## Create an arc of ellipse, of center and two points.
2007 # @param theCenter Center of the arc.
2008 # @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
2009 # @param thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
2010 # @param theName Object name; when specified, this parameter is used
2011 # for result publication in the study. Otherwise, if automatic
2012 # publication is switched on, default value is used for result name.
2014 # @return New GEOM.GEOM_Object, containing the created arc.
2016 # @ref swig_MakeArc "Example"
2017 @ManageTransactions("CurvesOp")
2018 def MakeArcOfEllipse(self, theCenter, thePnt1, thePnt2, theName=None):
2020 Create an arc of ellipse, of center and two points.
2023 theCenter Center of the arc.
2024 thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
2025 thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
2026 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.
2031 New GEOM.GEOM_Object, containing the created arc.
2033 # Example: see GEOM_TestAll.py
2034 anObj = self.CurvesOp.MakeArcOfEllipse(theCenter, thePnt1, thePnt2)
2035 RaiseIfFailed("MakeArcOfEllipse", self.CurvesOp)
2036 self._autoPublish(anObj, theName, "arc")
2039 ## Create a circle with given center, normal vector and radius.
2040 # @param thePnt Circle center.
2041 # @param theVec Vector, normal to the plane of the circle.
2042 # @param theR Circle radius.
2043 # @param theName Object name; when specified, this parameter is used
2044 # for result publication in the study. Otherwise, if automatic
2045 # publication is switched on, default value is used for result name.
2047 # @return New GEOM.GEOM_Object, containing the created circle.
2049 # @ref tui_creation_circle "Example"
2050 @ManageTransactions("CurvesOp")
2051 def MakeCircle(self, thePnt, theVec, theR, theName=None):
2053 Create a circle with given center, normal vector and radius.
2056 thePnt Circle center.
2057 theVec Vector, normal to the plane of the circle.
2059 theName Object name; when specified, this parameter is used
2060 for result publication in the study. Otherwise, if automatic
2061 publication is switched on, default value is used for result name.
2064 New GEOM.GEOM_Object, containing the created circle.
2066 # Example: see GEOM_TestAll.py
2067 theR, Parameters = ParseParameters(theR)
2068 anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR)
2069 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
2070 anObj.SetParameters(Parameters)
2071 self._autoPublish(anObj, theName, "circle")
2074 ## Create a circle with given radius.
2075 # Center of the circle will be in the origin of global
2076 # coordinate system and normal vector will be codirected with Z axis
2077 # @param theR Circle radius.
2078 # @param theName Object name; when specified, this parameter is used
2079 # for result publication in the study. Otherwise, if automatic
2080 # publication is switched on, default value is used for result name.
2082 # @return New GEOM.GEOM_Object, containing the created circle.
2083 @ManageTransactions("CurvesOp")
2084 def MakeCircleR(self, theR, theName=None):
2086 Create a circle with given radius.
2087 Center of the circle will be in the origin of global
2088 coordinate system and normal vector will be codirected with Z axis
2092 theName Object name; when specified, this parameter is used
2093 for result publication in the study. Otherwise, if automatic
2094 publication is switched on, default value is used for result name.
2097 New GEOM.GEOM_Object, containing the created circle.
2099 anObj = self.CurvesOp.MakeCirclePntVecR(None, None, theR)
2100 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
2101 self._autoPublish(anObj, theName, "circle")
2104 ## Create a circle, passing through three given points
2105 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
2106 # @param theName Object name; when specified, this parameter is used
2107 # for result publication in the study. Otherwise, if automatic
2108 # publication is switched on, default value is used for result name.
2110 # @return New GEOM.GEOM_Object, containing the created circle.
2112 # @ref tui_creation_circle "Example"
2113 @ManageTransactions("CurvesOp")
2114 def MakeCircleThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2116 Create a circle, passing through three given points
2119 thePnt1,thePnt2,thePnt3 Points, defining the circle.
2120 theName Object name; when specified, this parameter is used
2121 for result publication in the study. Otherwise, if automatic
2122 publication is switched on, default value is used for result name.
2125 New GEOM.GEOM_Object, containing the created circle.
2127 # Example: see GEOM_TestAll.py
2128 anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
2129 RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp)
2130 self._autoPublish(anObj, theName, "circle")
2133 ## Create a circle, with given point1 as center,
2134 # passing through the point2 as radius and laying in the plane,
2135 # defined by all three given points.
2136 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
2137 # @param theName Object name; when specified, this parameter is used
2138 # for result publication in the study. Otherwise, if automatic
2139 # publication is switched on, default value is used for result name.
2141 # @return New GEOM.GEOM_Object, containing the created circle.
2143 # @ref swig_MakeCircle "Example"
2144 @ManageTransactions("CurvesOp")
2145 def MakeCircleCenter2Pnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2147 Create a circle, with given point1 as center,
2148 passing through the point2 as radius and laying in the plane,
2149 defined by all three given points.
2152 thePnt1,thePnt2,thePnt3 Points, defining the circle.
2153 theName Object name; when specified, this parameter is used
2154 for result publication in the study. Otherwise, if automatic
2155 publication is switched on, default value is used for result name.
2158 New GEOM.GEOM_Object, containing the created circle.
2160 # Example: see GEOM_example6.py
2161 anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3)
2162 RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp)
2163 self._autoPublish(anObj, theName, "circle")
2166 ## Create an ellipse with given center, normal vector and radiuses.
2167 # @param thePnt Ellipse center.
2168 # @param theVec Vector, normal to the plane of the ellipse.
2169 # @param theRMajor Major ellipse radius.
2170 # @param theRMinor Minor ellipse radius.
2171 # @param theVecMaj Vector, direction of the ellipse's main axis.
2172 # @param theName Object name; when specified, this parameter is used
2173 # for result publication in the study. Otherwise, if automatic
2174 # publication is switched on, default value is used for result name.
2176 # @return New GEOM.GEOM_Object, containing the created ellipse.
2178 # @ref tui_creation_ellipse "Example"
2179 @ManageTransactions("CurvesOp")
2180 def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor, theVecMaj=None, theName=None):
2182 Create an ellipse with given center, normal vector and radiuses.
2185 thePnt Ellipse center.
2186 theVec Vector, normal to the plane of the ellipse.
2187 theRMajor Major ellipse radius.
2188 theRMinor Minor ellipse radius.
2189 theVecMaj Vector, direction of the ellipse's main axis.
2190 theName Object name; when specified, this parameter is used
2191 for result publication in the study. Otherwise, if automatic
2192 publication is switched on, default value is used for result name.
2195 New GEOM.GEOM_Object, containing the created ellipse.
2197 # Example: see GEOM_TestAll.py
2198 theRMajor, theRMinor, Parameters = ParseParameters(theRMajor, theRMinor)
2199 if theVecMaj is not None:
2200 anObj = self.CurvesOp.MakeEllipseVec(thePnt, theVec, theRMajor, theRMinor, theVecMaj)
2202 anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor)
2204 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2205 anObj.SetParameters(Parameters)
2206 self._autoPublish(anObj, theName, "ellipse")
2209 ## Create an ellipse with given radiuses.
2210 # Center of the ellipse will be in the origin of global
2211 # coordinate system and normal vector will be codirected with Z axis
2212 # @param theRMajor Major ellipse radius.
2213 # @param theRMinor Minor ellipse radius.
2214 # @param theName Object name; when specified, this parameter is used
2215 # for result publication in the study. Otherwise, if automatic
2216 # publication is switched on, default value is used for result name.
2218 # @return New GEOM.GEOM_Object, containing the created ellipse.
2219 @ManageTransactions("CurvesOp")
2220 def MakeEllipseRR(self, theRMajor, theRMinor, theName=None):
2222 Create an ellipse with given radiuses.
2223 Center of the ellipse will be in the origin of global
2224 coordinate system and normal vector will be codirected with Z axis
2227 theRMajor Major ellipse radius.
2228 theRMinor Minor ellipse radius.
2229 theName Object name; when specified, this parameter is used
2230 for result publication in the study. Otherwise, if automatic
2231 publication is switched on, default value is used for result name.
2234 New GEOM.GEOM_Object, containing the created ellipse.
2236 anObj = self.CurvesOp.MakeEllipse(None, None, theRMajor, theRMinor)
2237 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2238 self._autoPublish(anObj, theName, "ellipse")
2241 ## Create a polyline on the set of points.
2242 # @param thePoints Sequence of points for the polyline.
2243 # @param theIsClosed If True, build a closed wire.
2244 # @param theName Object name; when specified, this parameter is used
2245 # for result publication in the study. Otherwise, if automatic
2246 # publication is switched on, default value is used for result name.
2248 # @return New GEOM.GEOM_Object, containing the created polyline.
2250 # @ref tui_creation_curve "Example"
2251 @ManageTransactions("CurvesOp")
2252 def MakePolyline(self, thePoints, theIsClosed=False, theName=None):
2254 Create a polyline on the set of points.
2257 thePoints Sequence of points for the polyline.
2258 theIsClosed If True, build a closed wire.
2259 theName Object name; when specified, this parameter is used
2260 for result publication in the study. Otherwise, if automatic
2261 publication is switched on, default value is used for result name.
2264 New GEOM.GEOM_Object, containing the created polyline.
2266 # Example: see GEOM_TestAll.py
2267 anObj = self.CurvesOp.MakePolyline(thePoints, theIsClosed)
2268 RaiseIfFailed("MakePolyline", self.CurvesOp)
2269 self._autoPublish(anObj, theName, "polyline")
2272 ## Create bezier curve on the set of points.
2273 # @param thePoints Sequence of points for the bezier curve.
2274 # @param theIsClosed If True, build a closed curve.
2275 # @param theName Object name; when specified, this parameter is used
2276 # for result publication in the study. Otherwise, if automatic
2277 # publication is switched on, default value is used for result name.
2279 # @return New GEOM.GEOM_Object, containing the created bezier curve.
2281 # @ref tui_creation_curve "Example"
2282 @ManageTransactions("CurvesOp")
2283 def MakeBezier(self, thePoints, theIsClosed=False, theName=None):
2285 Create bezier curve on the set of points.
2288 thePoints Sequence of points for the bezier curve.
2289 theIsClosed If True, build a closed curve.
2290 theName Object name; when specified, this parameter is used
2291 for result publication in the study. Otherwise, if automatic
2292 publication is switched on, default value is used for result name.
2295 New GEOM.GEOM_Object, containing the created bezier curve.
2297 # Example: see GEOM_TestAll.py
2298 anObj = self.CurvesOp.MakeSplineBezier(thePoints, theIsClosed)
2299 RaiseIfFailed("MakeSplineBezier", self.CurvesOp)
2300 self._autoPublish(anObj, theName, "bezier")
2303 ## Create B-Spline curve on the set of points.
2304 # @param thePoints Sequence of points for the B-Spline curve.
2305 # @param theIsClosed If True, build a closed curve.
2306 # @param theDoReordering If TRUE, the algo does not follow the order of
2307 # \a thePoints but searches for the closest vertex.
2308 # @param theName Object name; when specified, this parameter is used
2309 # for result publication in the study. Otherwise, if automatic
2310 # publication is switched on, default value is used for result name.
2312 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2314 # @ref tui_creation_curve "Example"
2315 @ManageTransactions("CurvesOp")
2316 def MakeInterpol(self, thePoints, theIsClosed=False, theDoReordering=False, theName=None):
2318 Create B-Spline curve on the set of points.
2321 thePoints Sequence of points for the B-Spline curve.
2322 theIsClosed If True, build a closed curve.
2323 theDoReordering If True, the algo does not follow the order of
2324 thePoints but searches for the closest vertex.
2325 theName Object name; when specified, this parameter is used
2326 for result publication in the study. Otherwise, if automatic
2327 publication is switched on, default value is used for result name.
2330 New GEOM.GEOM_Object, containing the created B-Spline curve.
2332 # Example: see GEOM_TestAll.py
2333 anObj = self.CurvesOp.MakeSplineInterpolation(thePoints, theIsClosed, theDoReordering)
2334 RaiseIfFailed("MakeInterpol", self.CurvesOp)
2335 self._autoPublish(anObj, theName, "bspline")
2338 ## Create B-Spline curve on the set of points.
2339 # @param thePoints Sequence of points for the B-Spline curve.
2340 # @param theFirstVec Vector object, defining the curve direction at its first point.
2341 # @param theLastVec Vector object, defining the curve direction at its last point.
2342 # @param theName Object name; when specified, this parameter is used
2343 # for result publication in the study. Otherwise, if automatic
2344 # publication is switched on, default value is used for result name.
2346 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2348 # @ref tui_creation_curve "Example"
2349 @ManageTransactions("CurvesOp")
2350 def MakeInterpolWithTangents(self, thePoints, theFirstVec, theLastVec, theName=None):
2352 Create B-Spline curve on the set of points.
2355 thePoints Sequence of points for the B-Spline curve.
2356 theFirstVec Vector object, defining the curve direction at its first point.
2357 theLastVec Vector object, defining the curve direction at its last point.
2358 theName Object name; when specified, this parameter is used
2359 for result publication in the study. Otherwise, if automatic
2360 publication is switched on, default value is used for result name.
2363 New GEOM.GEOM_Object, containing the created B-Spline curve.
2365 # Example: see GEOM_TestAll.py
2366 anObj = self.CurvesOp.MakeSplineInterpolWithTangents(thePoints, theFirstVec, theLastVec)
2367 RaiseIfFailed("MakeInterpolWithTangents", self.CurvesOp)
2368 self._autoPublish(anObj, theName, "bspline")
2371 ## Creates a curve using the parametric definition of the basic points.
2372 # @param thexExpr parametric equation of the coordinates X.
2373 # @param theyExpr parametric equation of the coordinates Y.
2374 # @param thezExpr parametric equation of the coordinates Z.
2375 # @param theParamMin the minimal value of the parameter.
2376 # @param theParamMax the maximum value of the parameter.
2377 # @param theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2378 # @param theCurveType the type of the curve,
2379 # one of GEOM.Polyline, GEOM.Bezier, GEOM.Interpolation.
2380 # @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.
2381 # @param theName Object name; when specified, this parameter is used
2382 # for result publication in the study. Otherwise, if automatic
2383 # publication is switched on, default value is used for result name.
2385 # @return New GEOM.GEOM_Object, containing the created curve.
2387 # @ref tui_creation_curve "Example"
2388 @ManageTransactions("CurvesOp")
2389 def MakeCurveParametric(self, thexExpr, theyExpr, thezExpr,
2390 theParamMin, theParamMax, theParamStep, theCurveType, theNewMethod=False, theName=None ):
2392 Creates a curve using the parametric definition of the basic points.
2395 thexExpr parametric equation of the coordinates X.
2396 theyExpr parametric equation of the coordinates Y.
2397 thezExpr parametric equation of the coordinates Z.
2398 theParamMin the minimal value of the parameter.
2399 theParamMax the maximum value of the parameter.
2400 theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2401 theCurveType the type of the curve,
2402 one of GEOM.Polyline, GEOM.Bezier, GEOM.Interpolation.
2403 theNewMethod flag for switching to the new method if the flag is set to false a deprecated
2404 method is used which can lead to a bug.
2405 theName Object name; when specified, this parameter is used
2406 for result publication in the study. Otherwise, if automatic
2407 publication is switched on, default value is used for result name.
2410 New GEOM.GEOM_Object, containing the created curve.
2412 theParamMin,theParamMax,theParamStep,Parameters = ParseParameters(theParamMin,theParamMax,theParamStep)
2414 anObj = self.CurvesOp.MakeCurveParametricNew(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2416 anObj = self.CurvesOp.MakeCurveParametric(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2417 RaiseIfFailed("MakeCurveParametric", self.CurvesOp)
2418 anObj.SetParameters(Parameters)
2419 self._autoPublish(anObj, theName, "curve")
2422 ## Create an isoline curve on a face.
2423 # @param theFace the face for which an isoline is created.
2424 # @param IsUIsoline True for U-isoline creation; False for V-isoline
2426 # @param theParameter the U parameter for U-isoline or V parameter
2428 # @param theName Object name; when specified, this parameter is used
2429 # for result publication in the study. Otherwise, if automatic
2430 # publication is switched on, default value is used for result name.
2432 # @return New GEOM.GEOM_Object, containing the created isoline edge or
2433 # a compound of edges.
2435 # @ref tui_creation_curve "Example"
2436 @ManageTransactions("CurvesOp")
2437 def MakeIsoline(self, theFace, IsUIsoline, theParameter, theName=None):
2439 Create an isoline curve on a face.
2442 theFace the face for which an isoline is created.
2443 IsUIsoline True for U-isoline creation; False for V-isoline
2445 theParameter the U parameter for U-isoline or V parameter
2447 theName Object name; when specified, this parameter is used
2448 for result publication in the study. Otherwise, if automatic
2449 publication is switched on, default value is used for result name.
2452 New GEOM.GEOM_Object, containing the created isoline edge or a
2455 # Example: see GEOM_TestAll.py
2456 anObj = self.CurvesOp.MakeIsoline(theFace, IsUIsoline, theParameter)
2457 RaiseIfFailed("MakeIsoline", self.CurvesOp)
2459 self._autoPublish(anObj, theName, "U-Isoline")
2461 self._autoPublish(anObj, theName, "V-Isoline")
2467 ## @addtogroup l3_sketcher
2470 ## Create a sketcher (wire or face), following the textual description,
2471 # passed through <VAR>theCommand</VAR> argument. \n
2472 # Edges of the resulting wire or face will be arcs of circles and/or linear segments. \n
2473 # Format of the description string have to be the following:
2475 # "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2478 # - x1, y1 are coordinates of the first sketcher point (zero by default),
2480 # - "R angle" : Set the direction by angle
2481 # - "D dx dy" : Set the direction by DX & DY
2484 # - "TT x y" : Create segment by point at X & Y
2485 # - "T dx dy" : Create segment by point with DX & DY
2486 # - "L length" : Create segment by direction & Length
2487 # - "IX x" : Create segment by direction & Intersect. X
2488 # - "IY y" : Create segment by direction & Intersect. Y
2491 # - "C radius length" : Create arc by direction, radius and length(in degree)
2492 # - "AA x y": Create arc by point at X & Y
2493 # - "A dx dy" : Create arc by point with DX & DY
2494 # - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2495 # - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2496 # - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2497 # - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2500 # - "WW" : Close Wire (to finish)
2501 # - "WF" : Close Wire and build face (to finish)
2504 # - Flag1 (= reverse) is 0 or 2 ...
2505 # - if 0 the drawn arc is the one of lower angle (< Pi)
2506 # - if 2 the drawn arc ius the one of greater angle (> Pi)
2509 # - Flag2 (= control tolerance) is 0 or 1 ...
2510 # - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2511 # - if 1 the wire is built only if the end point is on the arc
2512 # with a tolerance of 10^-7 on the distance else the creation fails
2514 # @param theCommand String, defining the sketcher in local
2515 # coordinates of the working plane.
2516 # @param theWorkingPlane Nine double values, defining origin,
2517 # OZ and OX directions of the working plane.
2518 # @param theName Object name; when specified, this parameter is used
2519 # for result publication in the study. Otherwise, if automatic
2520 # publication is switched on, default value is used for result name.
2522 # @return New GEOM.GEOM_Object, containing the created wire.
2524 # @ref tui_sketcher_page "Example"
2525 @ManageTransactions("CurvesOp")
2526 def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0], theName=None):
2528 Create a sketcher (wire or face), following the textual description, passed
2529 through theCommand argument.
2530 Edges of the resulting wire or face will be arcs of circles and/or linear segments.
2531 Format of the description string have to be the following:
2532 "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2534 - x1, y1 are coordinates of the first sketcher point (zero by default),
2536 - "R angle" : Set the direction by angle
2537 - "D dx dy" : Set the direction by DX & DY
2539 - "TT x y" : Create segment by point at X & Y
2540 - "T dx dy" : Create segment by point with DX & DY
2541 - "L length" : Create segment by direction & Length
2542 - "IX x" : Create segment by direction & Intersect. X
2543 - "IY y" : Create segment by direction & Intersect. Y
2545 - "C radius length" : Create arc by direction, radius and length(in degree)
2546 - "AA x y": Create arc by point at X & Y
2547 - "A dx dy" : Create arc by point with DX & DY
2548 - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2549 - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2550 - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2551 - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2553 - "WW" : Close Wire (to finish)
2554 - "WF" : Close Wire and build face (to finish)
2556 - Flag1 (= reverse) is 0 or 2 ...
2557 - if 0 the drawn arc is the one of lower angle (< Pi)
2558 - if 2 the drawn arc ius the one of greater angle (> Pi)
2560 - Flag2 (= control tolerance) is 0 or 1 ...
2561 - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2562 - if 1 the wire is built only if the end point is on the arc
2563 with a tolerance of 10^-7 on the distance else the creation fails
2566 theCommand String, defining the sketcher in local
2567 coordinates of the working plane.
2568 theWorkingPlane Nine double values, defining origin,
2569 OZ and OX directions of the working plane.
2570 theName Object name; when specified, this parameter is used
2571 for result publication in the study. Otherwise, if automatic
2572 publication is switched on, default value is used for result name.
2575 New GEOM.GEOM_Object, containing the created wire.
2577 # Example: see GEOM_TestAll.py
2578 theCommand,Parameters = ParseSketcherCommand(theCommand)
2579 anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
2580 RaiseIfFailed("MakeSketcher", self.CurvesOp)
2581 anObj.SetParameters(Parameters)
2582 self._autoPublish(anObj, theName, "wire")
2585 ## Create a sketcher (wire or face), following the textual description,
2586 # passed through <VAR>theCommand</VAR> argument. \n
2587 # For format of the description string see MakeSketcher() method.\n
2588 # @param theCommand String, defining the sketcher in local
2589 # coordinates of the working plane.
2590 # @param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2591 # @param theName Object name; when specified, this parameter is used
2592 # for result publication in the study. Otherwise, if automatic
2593 # publication is switched on, default value is used for result name.
2595 # @return New GEOM.GEOM_Object, containing the created wire.
2597 # @ref tui_sketcher_page "Example"
2598 @ManageTransactions("CurvesOp")
2599 def MakeSketcherOnPlane(self, theCommand, theWorkingPlane, theName=None):
2601 Create a sketcher (wire or face), following the textual description,
2602 passed through theCommand argument.
2603 For format of the description string see geompy.MakeSketcher() method.
2606 theCommand String, defining the sketcher in local
2607 coordinates of the working plane.
2608 theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2609 theName Object name; when specified, this parameter is used
2610 for result publication in the study. Otherwise, if automatic
2611 publication is switched on, default value is used for result name.
2614 New GEOM.GEOM_Object, containing the created wire.
2616 theCommand,Parameters = ParseSketcherCommand(theCommand)
2617 anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
2618 RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp)
2619 anObj.SetParameters(Parameters)
2620 self._autoPublish(anObj, theName, "wire")
2623 ## Obtain a 2D sketcher interface
2624 # @return An instance of @ref gsketcher.Sketcher2D "Sketcher2D" interface
2625 def Sketcher2D (self):
2627 Obtain a 2D sketcher interface.
2630 sk = geompy.Sketcher2D()
2632 sk.addSegmentRelative(15, 70)
2633 sk.addSegmentPerpY(50)
2634 sk.addArcRadiusRelative(25, 15, 14.5, 0)
2635 sk.addArcCenterAbsolute(1, 1, 50, 50, 0, 0)
2636 sk.addArcDirectionRadiusLength(20, 20, 101, 162.13)
2638 Sketch_1 = sk.wire(geomObj_1)
2640 sk = Sketcher2D (self)
2643 ## Create a sketcher wire, following the numerical description,
2644 # passed through <VAR>theCoordinates</VAR> argument. \n
2645 # @param theCoordinates double values, defining points to create a wire,
2647 # @param theName Object name; when specified, this parameter is used
2648 # for result publication in the study. Otherwise, if automatic
2649 # publication is switched on, default value is used for result name.
2651 # @return New GEOM.GEOM_Object, containing the created wire.
2653 # @ref tui_3dsketcher_page "Example"
2654 @ManageTransactions("CurvesOp")
2655 def Make3DSketcher(self, theCoordinates, theName=None):
2657 Create a sketcher wire, following the numerical description,
2658 passed through theCoordinates argument.
2661 theCoordinates double values, defining points to create a wire,
2663 theName Object name; when specified, this parameter is used
2664 for result publication in the study. Otherwise, if automatic
2665 publication is switched on, default value is used for result name.
2668 New GEOM_Object, containing the created wire.
2670 theCoordinates,Parameters = ParseParameters(theCoordinates)
2671 anObj = self.CurvesOp.Make3DSketcher(theCoordinates)
2672 RaiseIfFailed("Make3DSketcher", self.CurvesOp)
2673 anObj.SetParameters(Parameters)
2674 self._autoPublish(anObj, theName, "wire")
2677 ## Obtain a 3D sketcher interface
2678 # @return An instance of @ref gsketcher.Sketcher3D "Sketcher3D" interface
2680 # @ref tui_3dsketcher_page "Example"
2681 def Sketcher3D (self):
2683 Obtain a 3D sketcher interface.
2686 sk = geompy.Sketcher3D()
2687 sk.addPointsAbsolute(0,0,0, 70,0,0)
2688 sk.addPointsRelative(0, 0, 130)
2689 sk.addPointAnglesLength("OXY", 50, 0, 100)
2690 sk.addPointAnglesLength("OXZ", 30, 80, 130)
2692 a3D_Sketcher_1 = sk.wire()
2694 sk = Sketcher3D (self)
2697 ## Obtain a 2D polyline creation interface
2698 # @return An instance of @ref gsketcher.Polyline2D "Polyline2D" interface
2700 # @ref tui_3dsketcher_page "Example"
2701 def Polyline2D (self):
2703 Obtain a 2D polyline creation interface.
2706 pl = geompy.Polyline2D()
2707 pl.addSection("section 1", GEOM.Polyline, True)
2708 pl.addPoints(0, 0, 10, 0, 10, 10)
2709 pl.addSection("section 2", GEOM.Interpolation, False)
2710 pl.addPoints(20, 0, 30, 0, 30, 10)
2711 resultObj = pl.result(WorkingPlane)
2713 pl = Polyline2D (self)
2716 # end of l3_sketcher
2719 ## @addtogroup l3_3d_primitives
2722 ## Create a box by coordinates of two opposite vertices.
2724 # @param x1,y1,z1 double values, defining first point it.
2725 # @param x2,y2,z2 double values, defining first point it.
2726 # @param theName Object name; when specified, this parameter is used
2727 # for result publication in the study. Otherwise, if automatic
2728 # publication is switched on, default value is used for result name.
2730 # @return New GEOM.GEOM_Object, containing the created box.
2732 # @ref tui_creation_box "Example"
2733 def MakeBox(self, x1, y1, z1, x2, y2, z2, theName=None):
2735 Create a box by coordinates of two opposite vertices.
2738 x1,y1,z1 double values, defining first point.
2739 x2,y2,z2 double values, defining second point.
2740 theName Object name; when specified, this parameter is used
2741 for result publication in the study. Otherwise, if automatic
2742 publication is switched on, default value is used for result name.
2745 New GEOM.GEOM_Object, containing the created box.
2747 # Example: see GEOM_TestAll.py
2748 pnt1 = self.MakeVertex(x1,y1,z1)
2749 pnt2 = self.MakeVertex(x2,y2,z2)
2750 # note: auto-publishing is done in self.MakeBoxTwoPnt()
2751 return self.MakeBoxTwoPnt(pnt1, pnt2, theName)
2753 ## Create a box with specified dimensions along the coordinate axes
2754 # and with edges, parallel to the coordinate axes.
2755 # Center of the box will be at point (DX/2, DY/2, DZ/2).
2756 # @param theDX Length of Box edges, parallel to OX axis.
2757 # @param theDY Length of Box edges, parallel to OY axis.
2758 # @param theDZ Length of Box edges, parallel to OZ axis.
2759 # @param theName Object name; when specified, this parameter is used
2760 # for result publication in the study. Otherwise, if automatic
2761 # publication is switched on, default value is used for result name.
2763 # @return New GEOM.GEOM_Object, containing the created box.
2765 # @ref tui_creation_box "Example"
2766 @ManageTransactions("PrimOp")
2767 def MakeBoxDXDYDZ(self, theDX, theDY, theDZ, theName=None):
2769 Create a box with specified dimensions along the coordinate axes
2770 and with edges, parallel to the coordinate axes.
2771 Center of the box will be at point (DX/2, DY/2, DZ/2).
2774 theDX Length of Box edges, parallel to OX axis.
2775 theDY Length of Box edges, parallel to OY axis.
2776 theDZ Length of Box edges, parallel to OZ axis.
2777 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.
2782 New GEOM.GEOM_Object, containing the created box.
2784 # Example: see GEOM_TestAll.py
2785 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
2786 anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
2787 RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp)
2788 anObj.SetParameters(Parameters)
2789 self._autoPublish(anObj, theName, "box")
2792 ## Create a box with two specified opposite vertices,
2793 # and with edges, parallel to the coordinate axes
2794 # @param thePnt1 First of two opposite vertices.
2795 # @param thePnt2 Second of two opposite vertices.
2796 # @param theName Object name; when specified, this parameter is used
2797 # for result publication in the study. Otherwise, if automatic
2798 # publication is switched on, default value is used for result name.
2800 # @return New GEOM.GEOM_Object, containing the created box.
2802 # @ref tui_creation_box "Example"
2803 @ManageTransactions("PrimOp")
2804 def MakeBoxTwoPnt(self, thePnt1, thePnt2, theName=None):
2806 Create a box with two specified opposite vertices,
2807 and with edges, parallel to the coordinate axes
2810 thePnt1 First of two opposite vertices.
2811 thePnt2 Second of two opposite vertices.
2812 theName Object name; when specified, this parameter is used
2813 for result publication in the study. Otherwise, if automatic
2814 publication is switched on, default value is used for result name.
2817 New GEOM.GEOM_Object, containing the created box.
2819 # Example: see GEOM_TestAll.py
2820 anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
2821 RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp)
2822 self._autoPublish(anObj, theName, "box")
2825 ## Create a face with specified dimensions with edges parallel to coordinate axes.
2826 # @param theH height of Face.
2827 # @param theW width of Face.
2828 # @param theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
2829 # @param theName Object name; when specified, this parameter is used
2830 # for result publication in the study. Otherwise, if automatic
2831 # publication is switched on, default value is used for result name.
2833 # @return New GEOM.GEOM_Object, containing the created face.
2835 # @ref tui_creation_face "Example"
2836 @ManageTransactions("PrimOp")
2837 def MakeFaceHW(self, theH, theW, theOrientation, theName=None):
2839 Create a face with specified dimensions with edges parallel to coordinate axes.
2842 theH height of Face.
2844 theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
2845 theName Object name; when specified, this parameter is used
2846 for result publication in the study. Otherwise, if automatic
2847 publication is switched on, default value is used for result name.
2850 New GEOM.GEOM_Object, containing the created face.
2852 # Example: see GEOM_TestAll.py
2853 theH,theW,Parameters = ParseParameters(theH, theW)
2854 anObj = self.PrimOp.MakeFaceHW(theH, theW, theOrientation)
2855 RaiseIfFailed("MakeFaceHW", self.PrimOp)
2856 anObj.SetParameters(Parameters)
2857 self._autoPublish(anObj, theName, "rectangle")
2860 ## Create a face from another plane and two sizes,
2861 # vertical size and horisontal size.
2862 # @param theObj Normale vector to the creating face or
2864 # @param theH Height (vertical size).
2865 # @param theW Width (horisontal size).
2866 # @param 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.
2870 # @return New GEOM.GEOM_Object, containing the created face.
2872 # @ref tui_creation_face "Example"
2873 @ManageTransactions("PrimOp")
2874 def MakeFaceObjHW(self, theObj, theH, theW, theName=None):
2876 Create a face from another plane and two sizes,
2877 vertical size and horisontal size.
2880 theObj Normale vector to the creating face or
2882 theH Height (vertical size).
2883 theW Width (horisontal size).
2884 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.
2889 New GEOM_Object, containing the created face.
2891 # Example: see GEOM_TestAll.py
2892 theH,theW,Parameters = ParseParameters(theH, theW)
2893 anObj = self.PrimOp.MakeFaceObjHW(theObj, theH, theW)
2894 RaiseIfFailed("MakeFaceObjHW", self.PrimOp)
2895 anObj.SetParameters(Parameters)
2896 self._autoPublish(anObj, theName, "rectangle")
2899 ## Create a disk with given center, normal vector and radius.
2900 # @param thePnt Disk center.
2901 # @param theVec Vector, normal to the plane of the disk.
2902 # @param theR Disk radius.
2903 # @param theName Object name; when specified, this parameter is used
2904 # for result publication in the study. Otherwise, if automatic
2905 # publication is switched on, default value is used for result name.
2907 # @return New GEOM.GEOM_Object, containing the created disk.
2909 # @ref tui_creation_disk "Example"
2910 @ManageTransactions("PrimOp")
2911 def MakeDiskPntVecR(self, thePnt, theVec, theR, theName=None):
2913 Create a disk with given center, normal vector and radius.
2917 theVec Vector, normal to the plane of the disk.
2919 theName Object name; when specified, this parameter is used
2920 for result publication in the study. Otherwise, if automatic
2921 publication is switched on, default value is used for result name.
2924 New GEOM.GEOM_Object, containing the created disk.
2926 # Example: see GEOM_TestAll.py
2927 theR,Parameters = ParseParameters(theR)
2928 anObj = self.PrimOp.MakeDiskPntVecR(thePnt, theVec, theR)
2929 RaiseIfFailed("MakeDiskPntVecR", self.PrimOp)
2930 anObj.SetParameters(Parameters)
2931 self._autoPublish(anObj, theName, "disk")
2934 ## Create a disk, passing through three given points
2935 # @param thePnt1,thePnt2,thePnt3 Points, defining the disk.
2936 # @param theName Object name; when specified, this parameter is used
2937 # for result publication in the study. Otherwise, if automatic
2938 # publication is switched on, default value is used for result name.
2940 # @return New GEOM.GEOM_Object, containing the created disk.
2942 # @ref tui_creation_disk "Example"
2943 @ManageTransactions("PrimOp")
2944 def MakeDiskThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2946 Create a disk, passing through three given points
2949 thePnt1,thePnt2,thePnt3 Points, defining the disk.
2950 theName Object name; when specified, this parameter is used
2951 for result publication in the study. Otherwise, if automatic
2952 publication is switched on, default value is used for result name.
2955 New GEOM.GEOM_Object, containing the created disk.
2957 # Example: see GEOM_TestAll.py
2958 anObj = self.PrimOp.MakeDiskThreePnt(thePnt1, thePnt2, thePnt3)
2959 RaiseIfFailed("MakeDiskThreePnt", self.PrimOp)
2960 self._autoPublish(anObj, theName, "disk")
2963 ## Create a disk with specified dimensions along OX-OY coordinate axes.
2964 # @param theR Radius of Face.
2965 # @param theOrientation set the orientation belong axis OXY or OYZ or OZX
2966 # @param theName Object name; when specified, this parameter is used
2967 # for result publication in the study. Otherwise, if automatic
2968 # publication is switched on, default value is used for result name.
2970 # @return New GEOM.GEOM_Object, containing the created disk.
2972 # @ref tui_creation_face "Example"
2973 @ManageTransactions("PrimOp")
2974 def MakeDiskR(self, theR, theOrientation, theName=None):
2976 Create a disk with specified dimensions along OX-OY coordinate axes.
2979 theR Radius of Face.
2980 theOrientation set the orientation belong axis OXY or OYZ or OZX
2981 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.
2986 New GEOM.GEOM_Object, containing the created disk.
2989 Disk3 = geompy.MakeDiskR(100., 1)
2991 # Example: see GEOM_TestAll.py
2992 theR,Parameters = ParseParameters(theR)
2993 anObj = self.PrimOp.MakeDiskR(theR, theOrientation)
2994 RaiseIfFailed("MakeDiskR", self.PrimOp)
2995 anObj.SetParameters(Parameters)
2996 self._autoPublish(anObj, theName, "disk")
2999 ## Create a cylinder with given base point, axis, radius and height.
3000 # @param thePnt Central point of cylinder base.
3001 # @param theAxis Cylinder axis.
3002 # @param theR Cylinder radius.
3003 # @param theH Cylinder height.
3004 # @param theName Object name; when specified, this parameter is used
3005 # for result publication in the study. Otherwise, if automatic
3006 # publication is switched on, default value is used for result name.
3008 # @return New GEOM.GEOM_Object, containing the created cylinder.
3010 # @ref tui_creation_cylinder "Example"
3011 @ManageTransactions("PrimOp")
3012 def MakeCylinder(self, thePnt, theAxis, theR, theH, theName=None):
3014 Create a cylinder with given base point, axis, radius and height.
3017 thePnt Central point of cylinder base.
3018 theAxis Cylinder axis.
3019 theR Cylinder radius.
3020 theH Cylinder height.
3021 theName Object name; when specified, this parameter is used
3022 for result publication in the study. Otherwise, if automatic
3023 publication is switched on, default value is used for result name.
3026 New GEOM.GEOM_Object, containing the created cylinder.
3028 # Example: see GEOM_TestAll.py
3029 theR,theH,Parameters = ParseParameters(theR, theH)
3030 anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
3031 RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp)
3032 anObj.SetParameters(Parameters)
3033 self._autoPublish(anObj, theName, "cylinder")
3036 ## Create a portion of cylinder with given base point, axis, radius, height and angle.
3037 # @param thePnt Central point of cylinder base.
3038 # @param theAxis Cylinder axis.
3039 # @param theR Cylinder radius.
3040 # @param theH Cylinder height.
3041 # @param theA Cylinder angle in radians.
3042 # @param 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.
3046 # @return New GEOM.GEOM_Object, containing the created cylinder.
3048 # @ref tui_creation_cylinder "Example"
3049 @ManageTransactions("PrimOp")
3050 def MakeCylinderA(self, thePnt, theAxis, theR, theH, theA, theName=None):
3052 Create a portion of cylinder with given base point, axis, radius, height and angle.
3055 thePnt Central point of cylinder base.
3056 theAxis Cylinder axis.
3057 theR Cylinder radius.
3058 theH Cylinder height.
3059 theA Cylinder angle in radians.
3060 theName Object name; when specified, this parameter is used
3061 for result publication in the study. Otherwise, if automatic
3062 publication is switched on, default value is used for result name.
3065 New GEOM.GEOM_Object, containing the created cylinder.
3067 # Example: see GEOM_TestAll.py
3069 if isinstance(theA,str):
3071 theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
3073 theA = theA*math.pi/180.
3074 if theA<=0. or theA>=2*math.pi:
3075 raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
3076 anObj = self.PrimOp.MakeCylinderPntVecRHA(thePnt, theAxis, theR, theH, theA)
3077 RaiseIfFailed("MakeCylinderPntVecRHA", self.PrimOp)
3078 anObj.SetParameters(Parameters)
3079 self._autoPublish(anObj, theName, "cylinder")
3082 ## Create a cylinder with given radius and height at
3083 # the origin of coordinate system. Axis of the cylinder
3084 # will be collinear to the OZ axis of the coordinate system.
3085 # @param theR Cylinder radius.
3086 # @param theH Cylinder height.
3087 # @param theName Object name; when specified, this parameter is used
3088 # for result publication in the study. Otherwise, if automatic
3089 # publication is switched on, default value is used for result name.
3091 # @return New GEOM.GEOM_Object, containing the created cylinder.
3093 # @ref tui_creation_cylinder "Example"
3094 @ManageTransactions("PrimOp")
3095 def MakeCylinderRH(self, theR, theH, theName=None):
3097 Create a cylinder with given radius and height at
3098 the origin of coordinate system. Axis of the cylinder
3099 will be collinear to the OZ axis of the coordinate system.
3102 theR Cylinder radius.
3103 theH Cylinder height.
3104 theName Object name; when specified, this parameter is used
3105 for result publication in the study. Otherwise, if automatic
3106 publication is switched on, default value is used for result name.
3109 New GEOM.GEOM_Object, containing the created cylinder.
3111 # Example: see GEOM_TestAll.py
3112 theR,theH,Parameters = ParseParameters(theR, theH)
3113 anObj = self.PrimOp.MakeCylinderRH(theR, theH)
3114 RaiseIfFailed("MakeCylinderRH", self.PrimOp)
3115 anObj.SetParameters(Parameters)
3116 self._autoPublish(anObj, theName, "cylinder")
3119 ## Create a portion of cylinder with given radius, height and angle at
3120 # the origin of coordinate system. Axis of the cylinder
3121 # will be collinear to the OZ axis of the coordinate system.
3122 # @param theR Cylinder radius.
3123 # @param theH Cylinder height.
3124 # @param theA Cylinder angle in radians.
3125 # @param theName Object name; when specified, this parameter is used
3126 # for result publication in the study. Otherwise, if automatic
3127 # publication is switched on, default value is used for result name.
3129 # @return New GEOM.GEOM_Object, containing the created cylinder.
3131 # @ref tui_creation_cylinder "Example"
3132 @ManageTransactions("PrimOp")
3133 def MakeCylinderRHA(self, theR, theH, theA, theName=None):
3135 Create a portion of cylinder with given radius, height and angle at
3136 the origin of coordinate system. Axis of the cylinder
3137 will be collinear to the OZ axis of the coordinate system.
3140 theR Cylinder radius.
3141 theH Cylinder height.
3142 theA Cylinder angle in radians.
3143 theName Object name; when specified, this parameter is used
3144 for result publication in the study. Otherwise, if automatic
3145 publication is switched on, default value is used for result name.
3148 New GEOM.GEOM_Object, containing the created cylinder.
3150 # Example: see GEOM_TestAll.py
3152 if isinstance(theA,str):
3154 theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
3156 theA = theA*math.pi/180.
3157 if theA<=0. or theA>=2*math.pi:
3158 raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
3159 anObj = self.PrimOp.MakeCylinderRHA(theR, theH, theA)
3160 RaiseIfFailed("MakeCylinderRHA", self.PrimOp)
3161 anObj.SetParameters(Parameters)
3162 self._autoPublish(anObj, theName, "cylinder")
3165 ## Create a sphere with given center and radius.
3166 # @param thePnt Sphere center.
3167 # @param theR Sphere radius.
3168 # @param theName Object name; when specified, this parameter is used
3169 # for result publication in the study. Otherwise, if automatic
3170 # publication is switched on, default value is used for result name.
3172 # @return New GEOM.GEOM_Object, containing the created sphere.
3174 # @ref tui_creation_sphere "Example"
3175 @ManageTransactions("PrimOp")
3176 def MakeSpherePntR(self, thePnt, theR, theName=None):
3178 Create a sphere with given center and radius.
3181 thePnt Sphere center.
3183 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.
3188 New GEOM.GEOM_Object, containing the created sphere.
3190 # Example: see GEOM_TestAll.py
3191 theR,Parameters = ParseParameters(theR)
3192 anObj = self.PrimOp.MakeSpherePntR(thePnt, theR)
3193 RaiseIfFailed("MakeSpherePntR", self.PrimOp)
3194 anObj.SetParameters(Parameters)
3195 self._autoPublish(anObj, theName, "sphere")
3198 ## Create a sphere with given center and radius.
3199 # @param x,y,z Coordinates of sphere center.
3200 # @param theR Sphere radius.
3201 # @param theName Object name; when specified, this parameter is used
3202 # for result publication in the study. Otherwise, if automatic
3203 # publication is switched on, default value is used for result name.
3205 # @return New GEOM.GEOM_Object, containing the created sphere.
3207 # @ref tui_creation_sphere "Example"
3208 def MakeSphere(self, x, y, z, theR, theName=None):
3210 Create a sphere with given center and radius.
3213 x,y,z Coordinates of sphere center.
3215 theName Object name; when specified, this parameter is used
3216 for result publication in the study. Otherwise, if automatic
3217 publication is switched on, default value is used for result name.
3220 New GEOM.GEOM_Object, containing the created sphere.
3222 # Example: see GEOM_TestAll.py
3223 point = self.MakeVertex(x, y, z)
3224 # note: auto-publishing is done in self.MakeSpherePntR()
3225 anObj = self.MakeSpherePntR(point, theR, theName)
3228 ## Create a sphere with given radius at the origin of coordinate system.
3229 # @param theR Sphere radius.
3230 # @param theName Object name; when specified, this parameter is used
3231 # for result publication in the study. Otherwise, if automatic
3232 # publication is switched on, default value is used for result name.
3234 # @return New GEOM.GEOM_Object, containing the created sphere.
3236 # @ref tui_creation_sphere "Example"
3237 @ManageTransactions("PrimOp")
3238 def MakeSphereR(self, theR, theName=None):
3240 Create a sphere with given radius at the origin of coordinate system.
3244 theName Object name; when specified, this parameter is used
3245 for result publication in the study. Otherwise, if automatic
3246 publication is switched on, default value is used for result name.
3249 New GEOM.GEOM_Object, containing the created sphere.
3251 # Example: see GEOM_TestAll.py
3252 theR,Parameters = ParseParameters(theR)
3253 anObj = self.PrimOp.MakeSphereR(theR)
3254 RaiseIfFailed("MakeSphereR", self.PrimOp)
3255 anObj.SetParameters(Parameters)
3256 self._autoPublish(anObj, theName, "sphere")
3259 ## Create a cone with given base point, axis, height and radiuses.
3260 # @param thePnt Central point of the first cone base.
3261 # @param theAxis Cone axis.
3262 # @param theR1 Radius of the first cone base.
3263 # @param theR2 Radius of the second cone base.
3264 # \note If both radiuses are non-zero, the cone will be truncated.
3265 # \note If the radiuses are equal, a cylinder will be created instead.
3266 # @param theH Cone height.
3267 # @param theName Object name; when specified, this parameter is used
3268 # for result publication in the study. Otherwise, if automatic
3269 # publication is switched on, default value is used for result name.
3271 # @return New GEOM.GEOM_Object, containing the created cone.
3273 # @ref tui_creation_cone "Example"
3274 @ManageTransactions("PrimOp")
3275 def MakeCone(self, thePnt, theAxis, theR1, theR2, theH, theName=None):
3277 Create a cone with given base point, axis, height and radiuses.
3280 thePnt Central point of the first cone base.
3282 theR1 Radius of the first cone base.
3283 theR2 Radius of the second cone base.
3285 theName Object name; when specified, this parameter is used
3286 for result publication in the study. Otherwise, if automatic
3287 publication is switched on, default value is used for result name.
3290 If both radiuses are non-zero, the cone will be truncated.
3291 If the radiuses are equal, a cylinder will be created instead.
3294 New GEOM.GEOM_Object, containing the created cone.
3296 # Example: see GEOM_TestAll.py
3297 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
3298 anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
3299 RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp)
3300 anObj.SetParameters(Parameters)
3301 self._autoPublish(anObj, theName, "cone")
3304 ## Create a cone with given height and radiuses at
3305 # the origin of coordinate system. Axis of the cone will
3306 # be collinear to the OZ axis of the coordinate system.
3307 # @param theR1 Radius of the first cone base.
3308 # @param theR2 Radius of the second cone base.
3309 # \note If both radiuses are non-zero, the cone will be truncated.
3310 # \note If the radiuses are equal, a cylinder will be created instead.
3311 # @param theH Cone height.
3312 # @param theName Object name; when specified, this parameter is used
3313 # for result publication in the study. Otherwise, if automatic
3314 # publication is switched on, default value is used for result name.
3316 # @return New GEOM.GEOM_Object, containing the created cone.
3318 # @ref tui_creation_cone "Example"
3319 @ManageTransactions("PrimOp")
3320 def MakeConeR1R2H(self, theR1, theR2, theH, theName=None):
3322 Create a cone with given height and radiuses at
3323 the origin of coordinate system. Axis of the cone will
3324 be collinear to the OZ axis of the coordinate system.
3327 theR1 Radius of the first cone base.
3328 theR2 Radius of the second cone base.
3330 theName Object name; when specified, this parameter is used
3331 for result publication in the study. Otherwise, if automatic
3332 publication is switched on, default value is used for result name.
3335 If both radiuses are non-zero, the cone will be truncated.
3336 If the radiuses are equal, a cylinder will be created instead.
3339 New GEOM.GEOM_Object, containing the created cone.
3341 # Example: see GEOM_TestAll.py
3342 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
3343 anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH)
3344 RaiseIfFailed("MakeConeR1R2H", self.PrimOp)
3345 anObj.SetParameters(Parameters)
3346 self._autoPublish(anObj, theName, "cone")
3349 ## Create a torus with given center, normal vector and radiuses.
3350 # @param thePnt Torus central point.
3351 # @param theVec Torus axis of symmetry.
3352 # @param theRMajor Torus major radius.
3353 # @param theRMinor Torus minor radius.
3354 # @param theName Object name; when specified, this parameter is used
3355 # for result publication in the study. Otherwise, if automatic
3356 # publication is switched on, default value is used for result name.
3358 # @return New GEOM.GEOM_Object, containing the created torus.
3360 # @ref tui_creation_torus "Example"
3361 @ManageTransactions("PrimOp")
3362 def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor, theName=None):
3364 Create a torus with given center, normal vector and radiuses.
3367 thePnt Torus central point.
3368 theVec Torus axis of symmetry.
3369 theRMajor Torus major radius.
3370 theRMinor Torus minor radius.
3371 theName Object name; when specified, this parameter is used
3372 for result publication in the study. Otherwise, if automatic
3373 publication is switched on, default value is used for result name.
3376 New GEOM.GEOM_Object, containing the created torus.
3378 # Example: see GEOM_TestAll.py
3379 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3380 anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
3381 RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp)
3382 anObj.SetParameters(Parameters)
3383 self._autoPublish(anObj, theName, "torus")
3386 ## Create a torus with given radiuses at the origin of coordinate system.
3387 # @param theRMajor Torus major radius.
3388 # @param theRMinor Torus minor radius.
3389 # @param theName Object name; when specified, this parameter is used
3390 # for result publication in the study. Otherwise, if automatic
3391 # publication is switched on, default value is used for result name.
3393 # @return New GEOM.GEOM_Object, containing the created torus.
3395 # @ref tui_creation_torus "Example"
3396 @ManageTransactions("PrimOp")
3397 def MakeTorusRR(self, theRMajor, theRMinor, theName=None):
3399 Create a torus with given radiuses at the origin of coordinate system.
3402 theRMajor Torus major radius.
3403 theRMinor Torus minor radius.
3404 theName Object name; when specified, this parameter is used
3405 for result publication in the study. Otherwise, if automatic
3406 publication is switched on, default value is used for result name.
3409 New GEOM.GEOM_Object, containing the created torus.
3411 # Example: see GEOM_TestAll.py
3412 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3413 anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor)
3414 RaiseIfFailed("MakeTorusRR", self.PrimOp)
3415 anObj.SetParameters(Parameters)
3416 self._autoPublish(anObj, theName, "torus")
3419 # end of l3_3d_primitives
3422 ## @addtogroup l3_complex
3425 ## Create a shape by extrusion of the base shape along a vector, defined by two points.
3426 # @param theBase Base shape to be extruded.
3427 # @param thePoint1 First end of extrusion vector.
3428 # @param thePoint2 Second end of extrusion vector.
3429 # @param theScaleFactor Use it to make prism with scaled second base.
3430 # Nagative value means not scaled second base.
3431 # @param theName Object name; when specified, this parameter is used
3432 # for result publication in the study. Otherwise, if automatic
3433 # publication is switched on, default value is used for result name.
3435 # @return New GEOM.GEOM_Object, containing the created prism.
3437 # @ref tui_creation_prism "Example"
3438 @ManageTransactions("PrimOp")
3439 def MakePrism(self, theBase, thePoint1, thePoint2, theScaleFactor = -1.0, theName=None):
3441 Create a shape by extrusion of the base shape along a vector, defined by two points.
3444 theBase Base shape to be extruded.
3445 thePoint1 First end of extrusion vector.
3446 thePoint2 Second end of extrusion vector.
3447 theScaleFactor Use it to make prism with scaled second base.
3448 Nagative value means not scaled second base.
3449 theName Object name; when specified, this parameter is used
3450 for result publication in the study. Otherwise, if automatic
3451 publication is switched on, default value is used for result name.
3454 New GEOM.GEOM_Object, containing the created prism.
3456 # Example: see GEOM_TestAll.py
3459 if theScaleFactor > 0:
3460 theScaleFactor,Parameters = ParseParameters(theScaleFactor)
3461 anObj = self.PrimOp.MakePrismTwoPntWithScaling(theBase, thePoint1, thePoint2, theScaleFactor)
3463 anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2)
3464 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3465 anObj.SetParameters(Parameters)
3466 self._autoPublish(anObj, theName, "prism")
3469 ## Create a shape by extrusion of the base shape along a
3470 # vector, defined by two points, in 2 Ways (forward/backward).
3471 # @param theBase Base shape to be extruded.
3472 # @param thePoint1 First end of extrusion vector.
3473 # @param thePoint2 Second end of extrusion vector.
3474 # @param theName Object name; when specified, this parameter is used
3475 # for result publication in the study. Otherwise, if automatic
3476 # publication is switched on, default value is used for result name.
3478 # @return New GEOM.GEOM_Object, containing the created prism.
3480 # @ref tui_creation_prism "Example"
3481 @ManageTransactions("PrimOp")
3482 def MakePrism2Ways(self, theBase, thePoint1, thePoint2, theName=None):
3484 Create a shape by extrusion of the base shape along a
3485 vector, defined by two points, in 2 Ways (forward/backward).
3488 theBase Base shape to be extruded.
3489 thePoint1 First end of extrusion vector.
3490 thePoint2 Second end of extrusion vector.
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 prism.
3498 # Example: see GEOM_TestAll.py
3499 anObj = self.PrimOp.MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2)
3500 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3501 self._autoPublish(anObj, theName, "prism")
3504 ## Create a shape by extrusion of the base shape along the vector,
3505 # i.e. all the space, transfixed by the base shape during its translation
3506 # along the vector on the given distance.
3507 # @param theBase Base shape to be extruded.
3508 # @param theVec Direction of extrusion.
3509 # @param theH Prism dimension along theVec.
3510 # @param theScaleFactor Use it to make prism with scaled second base.
3511 # Negative value means not scaled second base.
3512 # @param theName Object name; when specified, this parameter is used
3513 # for result publication in the study. Otherwise, if automatic
3514 # publication is switched on, default value is used for result name.
3516 # @return New GEOM.GEOM_Object, containing the created prism.
3518 # @ref tui_creation_prism "Example"
3519 @ManageTransactions("PrimOp")
3520 def MakePrismVecH(self, theBase, theVec, theH, theScaleFactor = -1.0, theName=None):
3522 Create a shape by extrusion of the base shape along the vector,
3523 i.e. all the space, transfixed by the base shape during its translation
3524 along the vector on the given distance.
3527 theBase Base shape to be extruded.
3528 theVec Direction of extrusion.
3529 theH Prism dimension along theVec.
3530 theScaleFactor Use it to make prism with scaled second base.
3531 Negative value means not scaled second base.
3532 theName Object name; when specified, this parameter is used
3533 for result publication in the study. Otherwise, if automatic
3534 publication is switched on, default value is used for result name.
3537 New GEOM.GEOM_Object, containing the created prism.
3539 # Example: see GEOM_TestAll.py
3542 if theScaleFactor > 0:
3543 theH,theScaleFactor,Parameters = ParseParameters(theH,theScaleFactor)
3544 anObj = self.PrimOp.MakePrismVecHWithScaling(theBase, theVec, theH, theScaleFactor)
3546 theH,Parameters = ParseParameters(theH)
3547 anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
3548 RaiseIfFailed("MakePrismVecH", self.PrimOp)
3549 anObj.SetParameters(Parameters)
3550 self._autoPublish(anObj, theName, "prism")
3553 ## Create a shape by extrusion of the base shape along the vector,
3554 # i.e. all the space, transfixed by the base shape during its translation
3555 # along the vector on the given distance in 2 Ways (forward/backward).
3556 # @param theBase Base shape to be extruded.
3557 # @param theVec Direction of extrusion.
3558 # @param theH Prism dimension along theVec in forward direction.
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 prism.
3565 # @ref tui_creation_prism "Example"
3566 @ManageTransactions("PrimOp")
3567 def MakePrismVecH2Ways(self, theBase, theVec, theH, theName=None):
3569 Create a shape by extrusion of the base shape along the vector,
3570 i.e. all the space, transfixed by the base shape during its translation
3571 along the vector on the given distance in 2 Ways (forward/backward).
3574 theBase Base shape to be extruded.
3575 theVec Direction of extrusion.
3576 theH Prism dimension along theVec in forward direction.
3577 theName Object name; when specified, this parameter is used
3578 for result publication in the study. Otherwise, if automatic
3579 publication is switched on, default value is used for result name.
3582 New GEOM.GEOM_Object, containing the created prism.
3584 # Example: see GEOM_TestAll.py
3585 theH,Parameters = ParseParameters(theH)
3586 anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH)
3587 RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp)
3588 anObj.SetParameters(Parameters)
3589 self._autoPublish(anObj, theName, "prism")
3592 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3593 # @param theBase Base shape to be extruded.
3594 # @param theDX, theDY, theDZ Directions of extrusion.
3595 # @param theScaleFactor Use it to make prism with scaled second base.
3596 # Nagative value means not scaled second base.
3597 # @param theName Object name; when specified, this parameter is used
3598 # for result publication in the study. Otherwise, if automatic
3599 # publication is switched on, default value is used for result name.
3601 # @return New GEOM.GEOM_Object, containing the created prism.
3603 # @ref tui_creation_prism "Example"
3604 @ManageTransactions("PrimOp")
3605 def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ, theScaleFactor = -1.0, theName=None):
3607 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3610 theBase Base shape to be extruded.
3611 theDX, theDY, theDZ Directions of extrusion.
3612 theScaleFactor Use it to make prism with scaled second base.
3613 Nagative value means not scaled second base.
3614 theName Object name; when specified, this parameter is used
3615 for result publication in the study. Otherwise, if automatic
3616 publication is switched on, default value is used for result name.
3619 New GEOM.GEOM_Object, containing the created prism.
3621 # Example: see GEOM_TestAll.py
3624 if theScaleFactor > 0:
3625 theDX,theDY,theDZ,theScaleFactor,Parameters = ParseParameters(theDX, theDY, theDZ, theScaleFactor)
3626 anObj = self.PrimOp.MakePrismDXDYDZWithScaling(theBase, theDX, theDY, theDZ, theScaleFactor)
3628 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3629 anObj = self.PrimOp.MakePrismDXDYDZ(theBase, theDX, theDY, theDZ)
3630 RaiseIfFailed("MakePrismDXDYDZ", self.PrimOp)
3631 anObj.SetParameters(Parameters)
3632 self._autoPublish(anObj, theName, "prism")
3635 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3636 # i.e. all the space, transfixed by the base shape during its translation
3637 # along the vector on the given distance in 2 Ways (forward/backward).
3638 # @param theBase Base shape to be extruded.
3639 # @param theDX, theDY, theDZ Directions of extrusion.
3640 # @param theName Object name; when specified, this parameter is used
3641 # for result publication in the study. Otherwise, if automatic
3642 # publication is switched on, default value is used for result name.
3644 # @return New GEOM.GEOM_Object, containing the created prism.
3646 # @ref tui_creation_prism "Example"
3647 @ManageTransactions("PrimOp")
3648 def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ, theName=None):
3650 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3651 i.e. all the space, transfixed by the base shape during its translation
3652 along the vector on the given distance in 2 Ways (forward/backward).
3655 theBase Base shape to be extruded.
3656 theDX, theDY, theDZ Directions of extrusion.
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 prism.
3664 # Example: see GEOM_TestAll.py
3665 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3666 anObj = self.PrimOp.MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ)
3667 RaiseIfFailed("MakePrismDXDYDZ2Ways", self.PrimOp)
3668 anObj.SetParameters(Parameters)
3669 self._autoPublish(anObj, theName, "prism")
3672 ## Create a shape by revolution of the base shape around the axis
3673 # on the given angle, i.e. all the space, transfixed by the base
3674 # shape during its rotation around the axis on the given angle.
3675 # @param theBase Base shape to be rotated.
3676 # @param theAxis Rotation axis.
3677 # @param theAngle Rotation angle in radians.
3678 # @param theName Object name; when specified, this parameter is used
3679 # for result publication in the study. Otherwise, if automatic
3680 # publication is switched on, default value is used for result name.
3682 # @return New GEOM.GEOM_Object, containing the created revolution.
3684 # @ref tui_creation_revolution "Example"
3685 @ManageTransactions("PrimOp")
3686 def MakeRevolution(self, theBase, theAxis, theAngle, theName=None):
3688 Create a shape by revolution of the base shape around the axis
3689 on the given angle, i.e. all the space, transfixed by the base
3690 shape during its rotation around the axis on the given angle.
3693 theBase Base shape to be rotated.
3694 theAxis Rotation axis.
3695 theAngle Rotation angle in radians.
3696 theName Object name; when specified, this parameter is used
3697 for result publication in the study. Otherwise, if automatic
3698 publication is switched on, default value is used for result name.
3701 New GEOM.GEOM_Object, containing the created revolution.
3703 # Example: see GEOM_TestAll.py
3704 theAngle,Parameters = ParseParameters(theAngle)
3705 anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
3706 RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
3707 anObj.SetParameters(Parameters)
3708 self._autoPublish(anObj, theName, "revolution")
3711 ## Create a shape by revolution of the base shape around the axis
3712 # on the given angle, i.e. all the space, transfixed by the base
3713 # shape during its rotation around the axis on the given angle in
3714 # both directions (forward/backward)
3715 # @param theBase Base shape to be rotated.
3716 # @param theAxis Rotation axis.
3717 # @param theAngle Rotation angle in radians.
3718 # @param theName Object name; when specified, this parameter is used
3719 # for result publication in the study. Otherwise, if automatic
3720 # publication is switched on, default value is used for result name.
3722 # @return New GEOM.GEOM_Object, containing the created revolution.
3724 # @ref tui_creation_revolution "Example"
3725 @ManageTransactions("PrimOp")
3726 def MakeRevolution2Ways(self, theBase, theAxis, theAngle, theName=None):
3728 Create a shape by revolution of the base shape around the axis
3729 on the given angle, i.e. all the space, transfixed by the base
3730 shape during its rotation around the axis on the given angle in
3731 both directions (forward/backward).
3734 theBase Base shape to be rotated.
3735 theAxis Rotation axis.
3736 theAngle Rotation angle in radians.
3737 theName Object name; when specified, this parameter is used
3738 for result publication in the study. Otherwise, if automatic
3739 publication is switched on, default value is used for result name.
3742 New GEOM.GEOM_Object, containing the created revolution.
3744 theAngle,Parameters = ParseParameters(theAngle)
3745 anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle)
3746 RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp)
3747 anObj.SetParameters(Parameters)
3748 self._autoPublish(anObj, theName, "revolution")
3751 ## Create a face from a given set of contours.
3752 # @param theContours either a list or a compound of edges/wires.
3753 # @param theMinDeg a minimal degree of BSpline surface to create.
3754 # @param theMaxDeg a maximal degree of BSpline surface to create.
3755 # @param theTol2D a 2d tolerance to be reached.
3756 # @param theTol3D a 3d tolerance to be reached.
3757 # @param theNbIter a number of iteration of approximation algorithm.
3758 # @param theMethod Kind of method to perform filling operation
3759 # (see GEOM.filling_oper_method enum).
3760 # @param isApprox if True, BSpline curves are generated in the process
3761 # of surface construction. By default it is False, that means
3762 # the surface is created using given curves. The usage of
3763 # Approximation makes the algorithm work slower, but allows
3764 # building the surface for rather complex cases.
3765 # @param theName Object name; when specified, this parameter is used
3766 # for result publication in the study. Otherwise, if automatic
3767 # publication is switched on, default value is used for result name.
3769 # @return New GEOM.GEOM_Object (face), containing the created filling surface.
3771 # @ref tui_creation_filling "Example"
3772 @ManageTransactions("PrimOp")
3773 def MakeFilling(self, theContours, theMinDeg=2, theMaxDeg=5, theTol2D=0.0001,
3774 theTol3D=0.0001, theNbIter=0, theMethod=GEOM.FOM_Default, isApprox=0, theName=None):
3776 Create a face from a given set of contours.
3779 theContours either a list or a compound of edges/wires.
3780 theMinDeg a minimal degree of BSpline surface to create.
3781 theMaxDeg a maximal degree of BSpline surface to create.
3782 theTol2D a 2d tolerance to be reached.
3783 theTol3D a 3d tolerance to be reached.
3784 theNbIter a number of iteration of approximation algorithm.
3785 theMethod Kind of method to perform filling operation
3786 (see GEOM.filling_oper_method enum).
3787 isApprox if True, BSpline curves are generated in the process
3788 of surface construction. By default it is False, that means
3789 the surface is created using given curves. The usage of
3790 Approximation makes the algorithm work slower, but allows
3791 building the surface for rather complex cases.
3792 theName Object name; when specified, this parameter is used
3793 for result publication in the study. Otherwise, if automatic
3794 publication is switched on, default value is used for result name.
3797 New GEOM.GEOM_Object (face), containing the created filling surface.
3800 filling = geompy.MakeFilling(compound, 2, 5, 0.0001, 0.0001, 5)
3802 # Example: see GEOM_TestAll.py
3803 theMinDeg,theMaxDeg,theTol2D,theTol3D,theNbIter,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter)
3804 anObj = self.PrimOp.MakeFilling(ToList(theContours), theMinDeg, theMaxDeg,
3805 theTol2D, theTol3D, theNbIter,
3806 theMethod, isApprox)
3807 RaiseIfFailed("MakeFilling", self.PrimOp)
3808 anObj.SetParameters(Parameters)
3809 self._autoPublish(anObj, theName, "filling")
3813 ## Create a face from a given set of contours.
3814 # This method corresponds to MakeFilling() with isApprox=True.
3815 # @param theContours either a list or a compound of edges/wires.
3816 # @param theMinDeg a minimal degree of BSpline surface to create.
3817 # @param theMaxDeg a maximal degree of BSpline surface to create.
3818 # @param theTol3D a 3d tolerance to be reached.
3819 # @param theName Object name; when specified, this parameter is used
3820 # for result publication in the study. Otherwise, if automatic
3821 # publication is switched on, default value is used for result name.
3823 # @return New GEOM.GEOM_Object (face), containing the created filling surface.
3825 # @ref tui_creation_filling "Example"
3826 @ManageTransactions("PrimOp")
3827 def MakeFillingNew(self, theContours, theMinDeg=2, theMaxDeg=5, theTol3D=0.0001, theName=None):
3829 Create a filling from the given compound of contours.
3830 This method corresponds to MakeFilling() with isApprox=True.
3833 theContours either a list or a compound of edges/wires.
3834 theMinDeg a minimal degree of BSpline surface to create.
3835 theMaxDeg a maximal degree of BSpline surface to create.
3836 theTol3D a 3d tolerance to be reached.
3837 theName Object name; when specified, this parameter is used
3838 for result publication in the study. Otherwise, if automatic
3839 publication is switched on, default value is used for result name.
3842 New GEOM.GEOM_Object (face), containing the created filling surface.
3845 filling = geompy.MakeFillingNew(compound, 2, 5, 0.0001)
3847 # Example: see GEOM_TestAll.py
3848 theMinDeg,theMaxDeg,theTol3D,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol3D)
3849 anObj = self.PrimOp.MakeFilling(ToList(theContours), theMinDeg, theMaxDeg,
3850 0, theTol3D, 0, GEOM.FOM_Default, True)
3851 RaiseIfFailed("MakeFillingNew", self.PrimOp)
3852 anObj.SetParameters(Parameters)
3853 self._autoPublish(anObj, theName, "filling")
3856 ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3857 # @param theSeqSections - set of specified sections.
3858 # @param theModeSolid - mode defining building solid or shell
3859 # @param thePreci - precision 3D used for smoothing
3860 # @param theRuled - mode defining type of the result surfaces (ruled or smoothed).
3861 # @param theName Object name; when specified, this parameter is used
3862 # for result publication in the study. Otherwise, if automatic
3863 # publication is switched on, default value is used for result name.
3865 # @return New GEOM.GEOM_Object, containing the created shell or solid.
3867 # @ref swig_todo "Example"
3868 @ManageTransactions("PrimOp")
3869 def MakeThruSections(self, theSeqSections, theModeSolid, thePreci, theRuled, theName=None):
3871 Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3874 theSeqSections - set of specified sections.
3875 theModeSolid - mode defining building solid or shell
3876 thePreci - precision 3D used for smoothing
3877 theRuled - mode defining type of the result surfaces (ruled or smoothed).
3878 theName Object name; when specified, this parameter is used
3879 for result publication in the study. Otherwise, if automatic
3880 publication is switched on, default value is used for result name.
3883 New GEOM.GEOM_Object, containing the created shell or solid.
3885 # Example: see GEOM_TestAll.py
3886 anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
3887 RaiseIfFailed("MakeThruSections", self.PrimOp)
3888 self._autoPublish(anObj, theName, "filling")
3891 ## Create a shape by extrusion of the base shape along
3892 # the path shape. The path shape can be a wire or an edge. It is
3893 # possible to generate groups along with the result by means of
3894 # setting the flag \a IsGenerateGroups.<BR>
3895 # If \a thePath is a closed edge or wire and \a IsGenerateGroups is
3896 # set, an error is occured. If \a thePath is not closed edge/wire,
3897 # the following groups are returned:
3898 # - If \a theBase is unclosed edge or wire: "Down", "Up", "Side1",
3900 # - If \a theBase is closed edge or wire, face or shell: "Down", "Up",
3903 # "Down" and "Up" groups contain:
3904 # - Edges if \a theBase is edge or wire;
3905 # - Faces if \a theBase is face or shell.<BR>
3907 # "Side1" and "Side2" groups contain edges generated from the first
3908 # and last vertices of \a theBase. The first and last vertices are
3909 # determined taking into account edge/wire orientation.<BR>
3910 # "Other" group represents faces generated from the bounding edges of
3913 # @param theBase Base shape to be extruded.
3914 # @param thePath Path shape to extrude the base shape along it.
3915 # @param IsGenerateGroups flag that tells if it is necessary to
3916 # create groups. It is equal to False by default.
3917 # @param theName Object name; when specified, this parameter is used
3918 # for result publication in the study. Otherwise, if automatic
3919 # publication is switched on, default value is used for result name.
3921 # @return New GEOM.GEOM_Object, containing the created pipe if
3922 # \a IsGenerateGroups is not set. Otherwise it returns new
3923 # GEOM.ListOfGO. Its first element is the created pipe, the
3924 # remaining ones are created groups.
3926 # @ref tui_creation_pipe "Example"
3927 @ManageTransactions("PrimOp")
3928 def MakePipe(self, theBase, thePath,
3929 IsGenerateGroups=False, theName=None):
3931 Create a shape by extrusion of the base shape along
3932 the path shape. The path shape can be a wire or an edge. It is
3933 possible to generate groups along with the result by means of
3934 setting the flag IsGenerateGroups.
3935 If thePath is a closed edge or wire and IsGenerateGroups is
3936 set, an error is occured. If thePath is not closed edge/wire,
3937 the following groups are returned:
3938 - If theBase is unclosed edge or wire: "Down", "Up", "Side1",
3940 - If theBase is closed edge or wire, face or shell: "Down", "Up",
3942 "Down" and "Up" groups contain:
3943 - Edges if theBase is edge or wire;
3944 - Faces if theBase is face or shell.
3945 "Side1" and "Side2" groups contain edges generated from the first
3946 and last vertices of theBase. The first and last vertices are
3947 determined taking into account edge/wire orientation.
3948 "Other" group represents faces generated from the bounding edges of
3952 theBase Base shape to be extruded.
3953 thePath Path shape to extrude the base shape along it.
3954 IsGenerateGroups flag that tells if it is necessary to
3955 create groups. It is equal to False by default.
3956 theName Object name; when specified, this parameter is used
3957 for result publication in the study. Otherwise, if automatic
3958 publication is switched on, default value is used for result name.
3961 New GEOM.GEOM_Object, containing the created pipe if
3962 IsGenerateGroups is not set. Otherwise it returns new
3963 GEOM.ListOfGO. Its first element is the created pipe, the
3964 remaining ones are created groups.
3966 # Example: see GEOM_TestAll.py
3967 aList = self.PrimOp.MakePipe(theBase, thePath, IsGenerateGroups)
3968 RaiseIfFailed("MakePipe", self.PrimOp)
3970 if IsGenerateGroups:
3971 self._autoPublish(aList, theName, "pipe")
3974 self._autoPublish(aList[0], theName, "pipe")
3977 ## Create a shape by extrusion of the profile shape along
3978 # the path shape. The path shape can be a wire or an edge.
3979 # the several profiles can be specified in the several locations of path.
3980 # It is possible to generate groups along with the result by means of
3981 # setting the flag \a IsGenerateGroups. For detailed information on
3982 # groups that can be created please see the method MakePipe().
3983 # @param theSeqBases - list of Bases shape to be extruded.
3984 # @param theLocations - list of locations on the path corresponding
3985 # specified list of the Bases shapes. Number of locations
3986 # should be equal to number of bases or list of locations can be empty.
3987 # @param thePath - Path shape to extrude the base shape along it.
3988 # @param theWithContact - the mode defining that the section is translated to be in
3989 # contact with the spine.
3990 # @param theWithCorrection - defining that the section is rotated to be
3991 # orthogonal to the spine tangent in the correspondent point
3992 # @param IsGenerateGroups - flag that tells if it is necessary to
3993 # create groups. It is equal to False by default.
3994 # @param theName Object name; when specified, this parameter is used
3995 # for result publication in the study. Otherwise, if automatic
3996 # publication is switched on, default value is used for result name.
3998 # @return New GEOM.GEOM_Object, containing the created pipe if
3999 # \a IsGenerateGroups is not set. Otherwise it returns new
4000 # GEOM.ListOfGO. Its first element is the created pipe, the
4001 # remaining ones are created groups.
4003 # @ref tui_creation_pipe_with_diff_sec "Example"
4004 @ManageTransactions("PrimOp")
4005 def MakePipeWithDifferentSections(self, theSeqBases,
4006 theLocations, thePath,
4007 theWithContact, theWithCorrection,
4008 IsGenerateGroups=False, theName=None):
4010 Create a shape by extrusion of the profile shape along
4011 the path shape. The path shape can be a wire or an edge.
4012 the several profiles can be specified in the several locations of path.
4013 It is possible to generate groups along with the result by means of
4014 setting the flag IsGenerateGroups. For detailed information on
4015 groups that can be created please see the method geompy.MakePipe().
4018 theSeqBases - list of Bases shape to be extruded.
4019 theLocations - list of locations on the path corresponding
4020 specified list of the Bases shapes. Number of locations
4021 should be equal to number of bases or list of locations can be empty.
4022 thePath - Path shape to extrude the base shape along it.
4023 theWithContact - the mode defining that the section is translated to be in
4024 contact with the spine(0/1)
4025 theWithCorrection - defining that the section is rotated to be
4026 orthogonal to the spine tangent in the correspondent point (0/1)
4027 IsGenerateGroups - flag that tells if it is necessary to
4028 create groups. It is equal to False by default.
4029 theName Object name; when specified, this parameter is used
4030 for result publication in the study. Otherwise, if automatic
4031 publication is switched on, default value is used for result name.
4034 New GEOM.GEOM_Object, containing the created pipe if
4035 IsGenerateGroups is not set. Otherwise it returns new
4036 GEOM.ListOfGO. Its first element is the created pipe, the
4037 remaining ones are created groups.
4039 aList = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
4040 theLocations, thePath,
4041 theWithContact, theWithCorrection,
4042 False, IsGenerateGroups)
4043 RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp)
4045 if IsGenerateGroups:
4046 self._autoPublish(aList, theName, "pipe")
4049 self._autoPublish(aList[0], theName, "pipe")
4052 ## Create a shape by extrusion of the profile shape along
4053 # the path shape. This function is a version of
4054 # MakePipeWithDifferentSections() with the same parameters, except
4055 # eliminated theWithContact and theWithCorrection. So it is
4056 # possible to find the description of all parameters is in this
4057 # method. The difference is that this method performs the operation
4058 # step by step, i.e. it creates pipes between each pair of neighbor
4059 # sections and fuses them into a single shape.
4061 # @ref tui_creation_pipe_with_diff_sec "Example"
4062 @ManageTransactions("PrimOp")
4063 def MakePipeWithDifferentSectionsBySteps(self, theSeqBases,
4064 theLocations, thePath,
4065 IsGenerateGroups=False, theName=None):
4067 Create a shape by extrusion of the profile shape along
4068 the path shape. This function is a version of
4069 MakePipeWithDifferentSections() with the same parameters, except
4070 eliminated theWithContact and theWithCorrection. So it is
4071 possible to find the description of all parameters is in this
4072 method. The difference is that this method performs the operation
4073 step by step, i.e. it creates pipes between each pair of neighbor
4074 sections and fuses them into a single shape.
4076 aList = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
4077 theLocations, thePath,
4079 True, IsGenerateGroups)
4080 RaiseIfFailed("MakePipeWithDifferentSectionsBySteps", self.PrimOp)
4082 if IsGenerateGroups:
4083 self._autoPublish(aList, theName, "pipe")
4086 self._autoPublish(aList[0], theName, "pipe")
4089 ## Create a shape by extrusion of the profile shape along
4090 # the path shape. The path shape can be a wire or an edge.
4091 # the several profiles can be specified in the several locations of path.
4092 # It is possible to generate groups along with the result by means of
4093 # setting the flag \a IsGenerateGroups. For detailed information on
4094 # groups that can be created please see the method MakePipe().
4095 # @param theSeqBases - list of Bases shape to be extruded. Base shape must be
4096 # shell or face. If number of faces in neighbour sections
4097 # aren't coincided result solid between such sections will
4098 # be created using external boundaries of this shells.
4099 # @param theSeqSubBases - list of corresponding sub-shapes of section shapes.
4100 # This list is used for searching correspondences between
4101 # faces in the sections. Size of this list must be equal
4102 # to size of list of base shapes.
4103 # @param theLocations - list of locations on the path corresponding
4104 # specified list of the Bases shapes. Number of locations
4105 # should be equal to number of bases. First and last
4106 # locations must be coincided with first and last vertexes
4107 # of path correspondingly.
4108 # @param thePath - Path shape to extrude the base shape along it.
4109 # @param theWithContact - the mode defining that the section is translated to be in
4110 # contact with the spine.
4111 # @param theWithCorrection - defining that the section is rotated to be
4112 # orthogonal to the spine tangent in the correspondent point
4113 # @param IsGenerateGroups - flag that tells if it is necessary to
4114 # create groups. It is equal to False by default.
4115 # @param theName Object name; when specified, this parameter is used
4116 # for result publication in the study. Otherwise, if automatic
4117 # publication is switched on, default value is used for result name.
4119 # @return New GEOM.GEOM_Object, containing the created solids if
4120 # \a IsGenerateGroups is not set. Otherwise it returns new
4121 # GEOM.ListOfGO. Its first element is the created solids, the
4122 # remaining ones are created groups.
4124 # @ref tui_creation_pipe_with_shell_sec "Example"
4125 @ManageTransactions("PrimOp")
4126 def MakePipeWithShellSections(self, theSeqBases, theSeqSubBases,
4127 theLocations, thePath,
4128 theWithContact, theWithCorrection,
4129 IsGenerateGroups=False, theName=None):
4131 Create a shape by extrusion of the profile shape along
4132 the path shape. The path shape can be a wire or an edge.
4133 the several profiles can be specified in the several locations of path.
4134 It is possible to generate groups along with the result by means of
4135 setting the flag IsGenerateGroups. For detailed information on
4136 groups that can be created please see the method geompy.MakePipe().
4139 theSeqBases - list of Bases shape to be extruded. Base shape must be
4140 shell or face. If number of faces in neighbour sections
4141 aren't coincided result solid between such sections will
4142 be created using external boundaries of this shells.
4143 theSeqSubBases - list of corresponding sub-shapes of section shapes.
4144 This list is used for searching correspondences between
4145 faces in the sections. Size of this list must be equal
4146 to size of list of base shapes.
4147 theLocations - list of locations on the path corresponding
4148 specified list of the Bases shapes. Number of locations
4149 should be equal to number of bases. First and last
4150 locations must be coincided with first and last vertexes
4151 of path correspondingly.
4152 thePath - Path shape to extrude the base shape along it.
4153 theWithContact - the mode defining that the section is translated to be in
4154 contact with the spine (0/1)
4155 theWithCorrection - defining that the section is rotated to be
4156 orthogonal to the spine tangent in the correspondent point (0/1)
4157 IsGenerateGroups - flag that tells if it is necessary to
4158 create groups. It is equal to False by default.
4159 theName Object name; when specified, this parameter is used
4160 for result publication in the study. Otherwise, if automatic
4161 publication is switched on, default value is used for result name.
4164 New GEOM.GEOM_Object, containing the created solids if
4165 IsGenerateGroups is not set. Otherwise it returns new
4166 GEOM.ListOfGO. Its first element is the created solids, the
4167 remaining ones are created groups.
4169 aList = self.PrimOp.MakePipeWithShellSections(theSeqBases, theSeqSubBases,
4170 theLocations, thePath,
4171 theWithContact, theWithCorrection,
4173 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
4175 if IsGenerateGroups:
4176 self._autoPublish(aList, theName, "pipe")
4179 self._autoPublish(aList[0], theName, "pipe")
4182 ## Create a shape by extrusion of the profile shape along
4183 # the path shape. This function is used only for debug pipe
4184 # functionality - it is a version of function MakePipeWithShellSections()
4185 # which give a possibility to recieve information about
4186 # creating pipe between each pair of sections step by step.
4187 @ManageTransactions("PrimOp")
4188 def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases,
4189 theLocations, thePath,
4190 theWithContact, theWithCorrection,
4191 IsGenerateGroups=False, theName=None):
4193 Create a shape by extrusion of the profile shape along
4194 the path shape. This function is used only for debug pipe
4195 functionality - it is a version of previous function
4196 geompy.MakePipeWithShellSections() which give a possibility to
4197 recieve information about creating pipe between each pair of
4198 sections step by step.
4201 nbsect = len(theSeqBases)
4202 nbsubsect = len(theSeqSubBases)
4203 #print "nbsect = ",nbsect
4204 for i in range(1,nbsect):
4206 tmpSeqBases = [ theSeqBases[i-1], theSeqBases[i] ]
4207 tmpLocations = [ theLocations[i-1], theLocations[i] ]
4209 if nbsubsect>0: tmpSeqSubBases = [ theSeqSubBases[i-1], theSeqSubBases[i] ]
4210 aList = self.PrimOp.MakePipeWithShellSections(tmpSeqBases, tmpSeqSubBases,
4211 tmpLocations, thePath,
4212 theWithContact, theWithCorrection,
4214 if self.PrimOp.IsDone() == 0:
4215 print "Problems with pipe creation between ",i," and ",i+1," sections"
4216 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
4219 print "Pipe between ",i," and ",i+1," sections is OK"
4220 res.append(aList[0])
4224 resc = self.MakeCompound(res)
4225 #resc = self.MakeSewing(res, 0.001)
4226 #print "resc: ",resc
4227 self._autoPublish(resc, theName, "pipe")
4230 ## Create solids between given sections.
4231 # It is possible to generate groups along with the result by means of
4232 # setting the flag \a IsGenerateGroups. For detailed information on
4233 # groups that can be created please see the method MakePipe().
4234 # @param theSeqBases - list of sections (shell or face).
4235 # @param theLocations - list of corresponding vertexes
4236 # @param IsGenerateGroups - flag that tells if it is necessary to
4237 # create groups. It is equal to False by default.
4238 # @param theName Object name; when specified, this parameter is used
4239 # for result publication in the study. Otherwise, if automatic
4240 # publication is switched on, default value is used for result name.
4242 # @return New GEOM.GEOM_Object, containing the created solids if
4243 # \a IsGenerateGroups is not set. Otherwise it returns new
4244 # GEOM.ListOfGO. Its first element is the created solids, the
4245 # remaining ones are created groups.
4247 # @ref tui_creation_pipe_without_path "Example"
4248 @ManageTransactions("PrimOp")
4249 def MakePipeShellsWithoutPath(self, theSeqBases, theLocations,
4250 IsGenerateGroups=False, theName=None):
4252 Create solids between given sections.
4253 It is possible to generate groups along with the result by means of
4254 setting the flag IsGenerateGroups. For detailed information on
4255 groups that can be created please see the method geompy.MakePipe().
4258 theSeqBases - list of sections (shell or face).
4259 theLocations - list of corresponding vertexes
4260 IsGenerateGroups - flag that tells if it is necessary to
4261 create groups. It is equal to False by default.
4262 theName Object name; when specified, this parameter is used
4263 for result publication in the study. Otherwise, if automatic
4264 publication is switched on, default value is used for result name.
4267 New GEOM.GEOM_Object, containing the created solids if
4268 IsGenerateGroups is not set. Otherwise it returns new
4269 GEOM.ListOfGO. Its first element is the created solids, the
4270 remaining ones are created groups.
4272 aList = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations,
4274 RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp)
4276 if IsGenerateGroups:
4277 self._autoPublish(aList, theName, "pipe")
4280 self._autoPublish(aList[0], theName, "pipe")
4283 ## Create a shape by extrusion of the base shape along
4284 # the path shape with constant bi-normal direction along the given vector.
4285 # The path shape can be a wire or an edge.
4286 # It is possible to generate groups along with the result by means of
4287 # setting the flag \a IsGenerateGroups. For detailed information on
4288 # groups that can be created please see the method MakePipe().
4289 # @param theBase Base shape to be extruded.
4290 # @param thePath Path shape to extrude the base shape along it.
4291 # @param theVec Vector defines a constant binormal direction to keep the
4292 # same angle beetween the direction and the sections
4293 # along the sweep surface.
4294 # @param IsGenerateGroups flag that tells if it is necessary to
4295 # create groups. It is equal to False by default.
4296 # @param theName Object name; when specified, this parameter is used
4297 # for result publication in the study. Otherwise, if automatic
4298 # publication is switched on, default value is used for result name.
4300 # @return New GEOM.GEOM_Object, containing the created pipe if
4301 # \a IsGenerateGroups is not set. Otherwise it returns new
4302 # GEOM.ListOfGO. Its first element is the created pipe, the
4303 # remaining ones are created groups.
4305 # @ref tui_creation_pipe "Example"
4306 @ManageTransactions("PrimOp")
4307 def MakePipeBiNormalAlongVector(self, theBase, thePath, theVec,
4308 IsGenerateGroups=False, theName=None):
4310 Create a shape by extrusion of the base shape along
4311 the path shape with constant bi-normal direction along the given vector.
4312 The path shape can be a wire or an edge.
4313 It is possible to generate groups along with the result by means of
4314 setting the flag IsGenerateGroups. For detailed information on
4315 groups that can be created please see the method geompy.MakePipe().
4318 theBase Base shape to be extruded.
4319 thePath Path shape to extrude the base shape along it.
4320 theVec Vector defines a constant binormal direction to keep the
4321 same angle beetween the direction and the sections
4322 along the sweep surface.
4323 IsGenerateGroups flag that tells if it is necessary to
4324 create groups. It is equal to False by default.
4325 theName Object name; when specified, this parameter is used
4326 for result publication in the study. Otherwise, if automatic
4327 publication is switched on, default value is used for result name.
4330 New GEOM.GEOM_Object, containing the created pipe if
4331 IsGenerateGroups is not set. Otherwise it returns new
4332 GEOM.ListOfGO. Its first element is the created pipe, the
4333 remaining ones are created groups.
4335 # Example: see GEOM_TestAll.py
4336 aList = self.PrimOp.MakePipeBiNormalAlongVector(theBase, thePath,
4337 theVec, IsGenerateGroups)
4338 RaiseIfFailed("MakePipeBiNormalAlongVector", self.PrimOp)
4340 if IsGenerateGroups:
4341 self._autoPublish(aList, theName, "pipe")
4344 self._autoPublish(aList[0], theName, "pipe")
4347 ## Makes a thick solid from a shape. If the input is a surface shape
4348 # (face or shell) the result is a thick solid. If an input shape is
4349 # a solid the result is a hollowed solid with removed faces.
4350 # @param theShape Face or Shell to get thick solid or solid to get
4352 # @param theThickness Thickness of the resulting solid
4353 # @param theFacesIDs the list of face IDs to be removed from the
4354 # result. It is ignored if \a theShape is a face or a shell.
4355 # It is empty by default.
4356 # @param theInside If true the thickness is applied towards inside
4357 # @param theName Object name; when specified, this parameter is used
4358 # for result publication in the study. Otherwise, if automatic
4359 # publication is switched on, default value is used for result name.
4361 # @return New GEOM.GEOM_Object, containing the created solid
4363 # @ref tui_creation_thickness "Example"
4364 @ManageTransactions("PrimOp")
4365 def MakeThickSolid(self, theShape, theThickness,
4366 theFacesIDs=[], theInside=False, theName=None):
4368 Make a thick solid from a shape. If the input is a surface shape
4369 (face or shell) the result is a thick solid. If an input shape is
4370 a solid the result is a hollowed solid with removed faces.
4373 theShape Face or Shell to get thick solid or solid to get
4375 theThickness Thickness of the resulting solid
4376 theFacesIDs the list of face IDs to be removed from the
4377 result. It is ignored if theShape is a face or a
4378 shell. It is empty by default.
4379 theInside If true the thickness is applied towards inside
4380 theName Object name; when specified, this parameter is used
4381 for result publication in the study. Otherwise, if automatic
4382 publication is switched on, default value is used for result name.
4385 New GEOM.GEOM_Object, containing the created solid
4387 # Example: see GEOM_TestAll.py
4388 theThickness,Parameters = ParseParameters(theThickness)
4389 anObj = self.PrimOp.MakeThickening(theShape, theFacesIDs,
4390 theThickness, True, theInside)
4391 RaiseIfFailed("MakeThickSolid", self.PrimOp)
4392 anObj.SetParameters(Parameters)
4393 self._autoPublish(anObj, theName, "thickSolid")
4397 ## Modifies a shape to make it a thick solid. If the input is a surface
4398 # shape (face or shell) the result is a thick solid. If an input shape
4399 # is a solid the result is a hollowed solid with removed faces.
4400 # @param theShape Face or Shell to get thick solid or solid to get
4402 # @param theThickness Thickness of the resulting solid
4403 # @param theFacesIDs the list of face IDs to be removed from the
4404 # result. It is ignored if \a theShape is a face or a shell.
4405 # It is empty by default.
4406 # @param theInside If true the thickness is applied towards inside
4408 # @return The modified shape
4410 # @ref tui_creation_thickness "Example"
4411 @ManageTransactions("PrimOp")
4412 def Thicken(self, theShape, theThickness, theFacesIDs=[], theInside=False):
4414 Modifies a shape to make it a thick solid. If the input is a
4415 surface shape (face or shell) the result is a thick solid. If
4416 an input shape is a solid the result is a hollowed solid with
4420 theShape Face or Shell to get thick solid or solid to get
4422 theThickness Thickness of the resulting solid
4423 theFacesIDs the list of face IDs to be removed from the
4424 result. It is ignored if \a theShape is a face or
4425 a shell. It is empty by default.
4426 theInside If true the thickness is applied towards inside
4431 # Example: see GEOM_TestAll.py
4432 theThickness,Parameters = ParseParameters(theThickness)
4433 anObj = self.PrimOp.MakeThickening(theShape, theFacesIDs,
4434 theThickness, False, theInside)
4435 RaiseIfFailed("Thicken", self.PrimOp)
4436 anObj.SetParameters(Parameters)
4439 ## Build a middle path of a pipe-like shape.
4440 # The path shape can be a wire or an edge.
4441 # @param theShape It can be closed or unclosed pipe-like shell
4442 # or a pipe-like solid.
4443 # @param theBase1, theBase2 Two bases of the supposed pipe. This
4444 # should be wires or faces of theShape.
4445 # @param theName Object name; when specified, this parameter is used
4446 # for result publication in the study. Otherwise, if automatic
4447 # publication is switched on, default value is used for result name.
4449 # @note It is not assumed that exact or approximate copy of theShape
4450 # can be obtained by applying existing Pipe operation on the
4451 # resulting "Path" wire taking theBase1 as the base - it is not
4452 # always possible; though in some particular cases it might work
4453 # it is not guaranteed. Thus, RestorePath function should not be
4454 # considered as an exact reverse operation of the Pipe.
4456 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
4457 # source pipe's "path".
4459 # @ref tui_creation_pipe_path "Example"
4460 @ManageTransactions("PrimOp")
4461 def RestorePath (self, theShape, theBase1, theBase2, theName=None):
4463 Build a middle path of a pipe-like shape.
4464 The path shape can be a wire or an edge.
4467 theShape It can be closed or unclosed pipe-like shell
4468 or a pipe-like solid.
4469 theBase1, theBase2 Two bases of the supposed pipe. This
4470 should be wires or faces of theShape.
4471 theName Object name; when specified, this parameter is used
4472 for result publication in the study. Otherwise, if automatic
4473 publication is switched on, default value is used for result name.
4476 New GEOM_Object, containing an edge or wire that represent
4479 anObj = self.PrimOp.RestorePath(theShape, theBase1, theBase2)
4480 RaiseIfFailed("RestorePath", self.PrimOp)
4481 self._autoPublish(anObj, theName, "path")
4484 ## Build a middle path of a pipe-like shape.
4485 # The path shape can be a wire or an edge.
4486 # @param theShape It can be closed or unclosed pipe-like shell
4487 # or a pipe-like solid.
4488 # @param listEdges1, listEdges2 Two bases of the supposed pipe. This
4489 # should be lists of edges of theShape.
4490 # @param theName Object name; when specified, this parameter is used
4491 # for result publication in the study. Otherwise, if automatic
4492 # publication is switched on, default value is used for result name.
4494 # @note It is not assumed that exact or approximate copy of theShape
4495 # can be obtained by applying existing Pipe operation on the
4496 # resulting "Path" wire taking theBase1 as the base - it is not
4497 # always possible; though in some particular cases it might work
4498 # it is not guaranteed. Thus, RestorePath function should not be
4499 # considered as an exact reverse operation of the Pipe.
4501 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
4502 # source pipe's "path".
4504 # @ref tui_creation_pipe_path "Example"
4505 @ManageTransactions("PrimOp")
4506 def RestorePathEdges (self, theShape, listEdges1, listEdges2, theName=None):
4508 Build a middle path of a pipe-like shape.
4509 The path shape can be a wire or an edge.
4512 theShape It can be closed or unclosed pipe-like shell
4513 or a pipe-like solid.
4514 listEdges1, listEdges2 Two bases of the supposed pipe. This
4515 should be lists of edges of theShape.
4516 theName Object name; when specified, this parameter is used
4517 for result publication in the study. Otherwise, if automatic
4518 publication is switched on, default value is used for result name.
4521 New GEOM_Object, containing an edge or wire that represent
4524 anObj = self.PrimOp.RestorePathEdges(theShape, listEdges1, listEdges2)
4525 RaiseIfFailed("RestorePath", self.PrimOp)
4526 self._autoPublish(anObj, theName, "path")
4532 ## @addtogroup l3_basic_go
4535 ## Create a linear edge with specified ends.
4536 # @param thePnt1 Point for the first end of edge.
4537 # @param thePnt2 Point for the second end of edge.
4538 # @param theName Object name; when specified, this parameter is used
4539 # for result publication in the study. Otherwise, if automatic
4540 # publication is switched on, default value is used for result name.
4542 # @return New GEOM.GEOM_Object, containing the created edge.
4544 # @ref tui_creation_edge "Example"
4545 @ManageTransactions("ShapesOp")
4546 def MakeEdge(self, thePnt1, thePnt2, theName=None):
4548 Create a linear edge with specified ends.
4551 thePnt1 Point for the first end of edge.
4552 thePnt2 Point for the second end of edge.
4553 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.
4558 New GEOM.GEOM_Object, containing the created edge.
4560 # Example: see GEOM_TestAll.py
4561 anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2)
4562 RaiseIfFailed("MakeEdge", self.ShapesOp)
4563 self._autoPublish(anObj, theName, "edge")
4566 ## Create a new edge, corresponding to the given length on the given curve.
4567 # @param theRefCurve The referenced curve (edge).
4568 # @param theLength Length on the referenced curve. It can be negative.
4569 # @param theStartPoint Any point can be selected for it, the new edge will begin
4570 # at the end of \a theRefCurve, close to the selected point.
4571 # If None, start from the first point of \a theRefCurve.
4572 # @param 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.
4576 # @return New GEOM.GEOM_Object, containing the created edge.
4578 # @ref tui_creation_edge "Example"
4579 @ManageTransactions("ShapesOp")
4580 def MakeEdgeOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
4582 Create a new edge, corresponding to the given length on the given curve.
4585 theRefCurve The referenced curve (edge).
4586 theLength Length on the referenced curve. It can be negative.
4587 theStartPoint Any point can be selected for it, the new edge will begin
4588 at the end of theRefCurve, close to the selected point.
4589 If None, start from the first point of theRefCurve.
4590 theName Object name; when specified, this parameter is used
4591 for result publication in the study. Otherwise, if automatic
4592 publication is switched on, default value is used for result name.
4595 New GEOM.GEOM_Object, containing the created edge.
4597 # Example: see GEOM_TestAll.py
4598 theLength, Parameters = ParseParameters(theLength)
4599 anObj = self.ShapesOp.MakeEdgeOnCurveByLength(theRefCurve, theLength, theStartPoint)
4600 RaiseIfFailed("MakeEdgeOnCurveByLength", self.ShapesOp)
4601 anObj.SetParameters(Parameters)
4602 self._autoPublish(anObj, theName, "edge")
4605 ## Create an edge from specified wire.
4606 # @param theWire source Wire
4607 # @param theLinearTolerance linear tolerance value (default = 1e-07)
4608 # @param theAngularTolerance angular tolerance value (default = 1e-12)
4609 # @param theName Object name; when specified, this parameter is used
4610 # for result publication in the study. Otherwise, if automatic
4611 # publication is switched on, default value is used for result name.
4613 # @return New GEOM.GEOM_Object, containing the created edge.
4615 # @ref tui_creation_edge "Example"
4616 @ManageTransactions("ShapesOp")
4617 def MakeEdgeWire(self, theWire, theLinearTolerance = 1e-07, theAngularTolerance = 1e-12, theName=None):
4619 Create an edge from specified wire.
4623 theLinearTolerance linear tolerance value (default = 1e-07)
4624 theAngularTolerance angular tolerance value (default = 1e-12)
4625 theName Object name; when specified, this parameter is used
4626 for result publication in the study. Otherwise, if automatic
4627 publication is switched on, default value is used for result name.
4630 New GEOM.GEOM_Object, containing the created edge.
4632 # Example: see GEOM_TestAll.py
4633 anObj = self.ShapesOp.MakeEdgeWire(theWire, theLinearTolerance, theAngularTolerance)
4634 RaiseIfFailed("MakeEdgeWire", self.ShapesOp)
4635 self._autoPublish(anObj, theName, "edge")
4638 ## Create a wire from the set of edges and wires.
4639 # @param theEdgesAndWires List of edges and/or wires.
4640 # @param theTolerance Maximum distance between vertices, that will be merged.
4641 # Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion())
4642 # @param theName Object name; when specified, this parameter is used
4643 # for result publication in the study. Otherwise, if automatic
4644 # publication is switched on, default value is used for result name.
4646 # @return New GEOM.GEOM_Object, containing the created wire.
4648 # @ref tui_creation_wire "Example"
4649 @ManageTransactions("ShapesOp")
4650 def MakeWire(self, theEdgesAndWires, theTolerance = 1e-07, theName=None):
4652 Create a wire from the set of edges and wires.
4655 theEdgesAndWires List of edges and/or wires.
4656 theTolerance Maximum distance between vertices, that will be merged.
4657 Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion()).
4658 theName Object name; when specified, this parameter is used
4659 for result publication in the study. Otherwise, if automatic
4660 publication is switched on, default value is used for result name.
4663 New GEOM.GEOM_Object, containing the created wire.
4665 # Example: see GEOM_TestAll.py
4666 anObj = self.ShapesOp.MakeWire(theEdgesAndWires, theTolerance)
4667 RaiseIfFailed("MakeWire", self.ShapesOp)
4668 self._autoPublish(anObj, theName, "wire")
4671 ## Create a face on the given wire.
4672 # @param theWire closed Wire or Edge to build the face on.
4673 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4674 # If the tolerance of the obtained planar face is less
4675 # than 1e-06, this face will be returned, otherwise the
4676 # algorithm tries to build any suitable face on the given
4677 # wire and prints a warning message.
4678 # @param theName Object name; when specified, this parameter is used
4679 # for result publication in the study. Otherwise, if automatic
4680 # publication is switched on, default value is used for result name.
4682 # @return New GEOM.GEOM_Object, containing the created face (compound of faces).
4684 # @ref tui_creation_face "Example"
4685 @ManageTransactions("ShapesOp")
4686 def MakeFace(self, theWire, isPlanarWanted, theName=None):
4688 Create a face on the given wire.
4691 theWire closed Wire or Edge to build the face on.
4692 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4693 If the tolerance of the obtained planar face is less
4694 than 1e-06, this face will be returned, otherwise the
4695 algorithm tries to build any suitable face on the given
4696 wire and prints a warning message.
4697 theName Object name; when specified, this parameter is used
4698 for result publication in the study. Otherwise, if automatic
4699 publication is switched on, default value is used for result name.
4702 New GEOM.GEOM_Object, containing the created face (compound of faces).
4704 # Example: see GEOM_TestAll.py
4705 anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted)
4706 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4707 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4709 RaiseIfFailed("MakeFace", self.ShapesOp)
4710 self._autoPublish(anObj, theName, "face")
4713 ## Create a face on the given wires set.
4714 # @param theWires List of closed wires or edges to build the face on.
4715 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4716 # If the tolerance of the obtained planar face is less
4717 # than 1e-06, this face will be returned, otherwise the
4718 # algorithm tries to build any suitable face on the given
4719 # wire and prints a warning message.
4720 # @param theName Object name; when specified, this parameter is used
4721 # for result publication in the study. Otherwise, if automatic
4722 # publication is switched on, default value is used for result name.
4724 # @return New GEOM.GEOM_Object, containing the created face (compound of faces).
4726 # @ref tui_creation_face "Example"
4727 @ManageTransactions("ShapesOp")
4728 def MakeFaceWires(self, theWires, isPlanarWanted, theName=None):
4730 Create a face on the given wires set.
4733 theWires List of closed wires or edges to build the face on.
4734 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4735 If the tolerance of the obtained planar face is less
4736 than 1e-06, this face will be returned, otherwise the
4737 algorithm tries to build any suitable face on the given
4738 wire and prints a warning message.
4739 theName Object name; when specified, this parameter is used
4740 for result publication in the study. Otherwise, if automatic
4741 publication is switched on, default value is used for result name.
4744 New GEOM.GEOM_Object, containing the created face (compound of faces).
4746 # Example: see GEOM_TestAll.py
4747 anObj = self.ShapesOp.MakeFaceWires(ToList(theWires), isPlanarWanted)
4748 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4749 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4751 RaiseIfFailed("MakeFaceWires", self.ShapesOp)
4752 self._autoPublish(anObj, theName, "face")
4755 ## See MakeFaceWires() method for details.
4757 # @ref tui_creation_face "Example 1"
4758 # \n @ref swig_MakeFaces "Example 2"
4759 def MakeFaces(self, theWires, isPlanarWanted, theName=None):
4761 See geompy.MakeFaceWires() method for details.
4763 # Example: see GEOM_TestOthers.py
4764 # note: auto-publishing is done in self.MakeFaceWires()
4765 anObj = self.MakeFaceWires(theWires, isPlanarWanted, theName)
4768 ## Create a face based on a surface from given face bounded
4770 # @param theFace the face whose surface is used to create a new face.
4771 # @param theWire the wire that will bound a new face.
4772 # @param theName Object name; when specified, this parameter is used
4773 # for result publication in the study. Otherwise, if automatic
4774 # publication is switched on, default value is used for result name.
4776 # @return New GEOM.GEOM_Object, containing the created face.
4778 # @ref tui_creation_face "Example"
4779 @ManageTransactions("ShapesOp")
4780 def MakeFaceFromSurface(self, theFace, theWire, theName=None):
4782 Create a face based on a surface from given face bounded
4786 theFace the face whose surface is used to create a new face.
4787 theWire the wire that will bound a new face.
4788 theName Object name; when specified, this parameter is used
4789 for result publication in the study. Otherwise, if automatic
4790 publication is switched on, default value is used for result name.
4793 New GEOM.GEOM_Object, containing the created face.
4795 # Example: see GEOM_TestAll.py
4796 anObj = self.ShapesOp.MakeFaceFromSurface(theFace, theWire)
4797 RaiseIfFailed("MakeFaceFromSurface", self.ShapesOp)
4798 self._autoPublish(anObj, theName, "face")
4801 ## Create a face from a set of edges with the given constraints.
4802 # @param theConstraints List of edges and constraint faces (as a sequence of a Edge + Face couples):
4803 # - edges should form a closed wire;
4804 # - for each edge, constraint face is optional: if a constraint face is missing
4805 # for some edge, this means that there no constraint associated with this edge.
4806 # @param theName Object name; when specified, this parameter is used
4807 # for result publication in the study. Otherwise, if automatic
4808 # publication is switched on, default value is used for result name.
4810 # @return New GEOM.GEOM_Object, containing the created face.
4812 # @ref tui_creation_face "Example"
4813 @ManageTransactions("ShapesOp")
4814 def MakeFaceWithConstraints(self, theConstraints, theName=None):
4816 Create a face from a set of edges with the given constraints.
4819 theConstraints List of edges and constraint faces (as a sequence of a Edge + Face couples):
4820 - edges should form a closed wire;
4821 - for each edge, constraint face is optional: if a constraint face is missing
4822 for some edge, this means that there no constraint associated with this edge.
4823 theName Object name; when specified, this parameter is used
4824 for result publication in the study. Otherwise, if automatic
4825 publication is switched on, default value is used for result name.
4828 New GEOM.GEOM_Object, containing the created face.
4830 # Example: see GEOM_TestAll.py
4831 anObj = self.ShapesOp.MakeFaceWithConstraints(theConstraints)
4833 RaiseIfFailed("MakeFaceWithConstraints", self.ShapesOp)
4834 self._autoPublish(anObj, theName, "face")
4837 ## Create a shell from the set of faces, shells and/or compounds of faces.
4838 # @param theFacesAndShells List of faces, shells and/or compounds of faces.
4839 # @param theName Object name; when specified, this parameter is used
4840 # for result publication in the study. Otherwise, if automatic
4841 # publication is switched on, default value is used for result name.
4843 # @return New GEOM.GEOM_Object, containing the created shell (compound of shells).
4845 # @ref tui_creation_shell "Example"
4846 @ManageTransactions("ShapesOp")
4847 def MakeShell(self, theFacesAndShells, theName=None):
4849 Create a shell from the set of faces and shells.
4852 theFacesAndShells List of faces and/or shells.
4853 theName Object name; when specified, this parameter is used
4854 for result publication in the study. Otherwise, if automatic
4855 publication is switched on, default value is used for result name.
4858 New GEOM.GEOM_Object, containing the created shell (compound of shells).
4860 # Example: see GEOM_TestAll.py
4861 anObj = self.ShapesOp.MakeShell( ToList( theFacesAndShells ))
4862 RaiseIfFailed("MakeShell", self.ShapesOp)
4863 self._autoPublish(anObj, theName, "shell")
4866 ## Create a solid, bounded by the given shells.
4867 # @param theShells Sequence of bounding shells.
4868 # @param theName Object name; when specified, this parameter is used
4869 # for result publication in the study. Otherwise, if automatic
4870 # publication is switched on, default value is used for result name.
4872 # @return New GEOM.GEOM_Object, containing the created solid.
4874 # @ref tui_creation_solid "Example"
4875 @ManageTransactions("ShapesOp")
4876 def MakeSolid(self, theShells, theName=None):
4878 Create a solid, bounded by the given shells.
4881 theShells Sequence of bounding shells.
4882 theName Object name; when specified, this parameter is used
4883 for result publication in the study. Otherwise, if automatic
4884 publication is switched on, default value is used for result name.
4887 New GEOM.GEOM_Object, containing the created solid.
4889 # Example: see GEOM_TestAll.py
4890 theShells = ToList(theShells)
4891 if len(theShells) == 1:
4892 descr = self._IsGoodForSolid(theShells[0])
4894 # raise RuntimeError, "MakeSolidShells : " + descr
4895 if descr == "WRN_SHAPE_UNCLOSED":
4896 raise RuntimeError, "MakeSolidShells : Unable to create solid from unclosed shape"
4897 anObj = self.ShapesOp.MakeSolidShells(theShells)
4898 RaiseIfFailed("MakeSolidShells", self.ShapesOp)
4899 self._autoPublish(anObj, theName, "solid")
4902 ## Create a compound of the given shapes.
4903 # @param theShapes List of shapes to put in compound.
4904 # @param theName Object name; when specified, this parameter is used
4905 # for result publication in the study. Otherwise, if automatic
4906 # publication is switched on, default value is used for result name.
4908 # @return New GEOM.GEOM_Object, containing the created compound.
4910 # @ref tui_creation_compound "Example"
4911 @ManageTransactions("ShapesOp")
4912 def MakeCompound(self, theShapes, theName=None):
4914 Create a compound of the given shapes.
4917 theShapes List of shapes to put in compound.
4918 theName Object name; when specified, this parameter is used
4919 for result publication in the study. Otherwise, if automatic
4920 publication is switched on, default value is used for result name.
4923 New GEOM.GEOM_Object, containing the created compound.
4925 # Example: see GEOM_TestAll.py
4926 anObj = self.ShapesOp.MakeCompound(ToList(theShapes))
4927 RaiseIfFailed("MakeCompound", self.ShapesOp)
4928 self._autoPublish(anObj, theName, "compound")
4931 ## Create a solid (or solids) from the set of faces and/or shells.
4932 # @param theFacesOrShells List of faces and/or shells.
4933 # @param isIntersect If TRUE, forces performing intersections
4934 # between arguments; otherwise (default) intersection is not performed.
4935 # @param theName Object name; when specified, this parameter is used
4936 # for result publication in the study. Otherwise, if automatic
4937 # publication is switched on, default value is used for result name.
4939 # @return New GEOM.GEOM_Object, containing the created solid (or compound of solids).
4941 # @ref tui_creation_solid_from_faces "Example"
4942 @ManageTransactions("ShapesOp")
4943 def MakeSolidFromConnectedFaces(self, theFacesOrShells, isIntersect = False, theName=None):
4945 Create a solid (or solids) from the set of connected faces and/or shells.
4948 theFacesOrShells List of faces and/or shells.
4949 isIntersect If TRUE, forces performing intersections
4950 between arguments; otherwise (default) intersection is not performed
4951 theName Object name; when specified, this parameter is used.
4952 for result publication in the study. Otherwise, if automatic
4953 publication is switched on, default value is used for result name.
4956 New GEOM.GEOM_Object, containing the created solid (or compound of solids).
4958 # Example: see GEOM_TestAll.py
4959 anObj = self.ShapesOp.MakeSolidFromConnectedFaces(theFacesOrShells, isIntersect)
4960 RaiseIfFailed("MakeSolidFromConnectedFaces", self.ShapesOp)
4961 self._autoPublish(anObj, theName, "solid")
4964 # end of l3_basic_go
4967 ## @addtogroup l2_measure
4970 ## Gives quantity of faces in the given shape.
4971 # @param theShape Shape to count faces of.
4972 # @return Quantity of faces.
4974 # @ref swig_NumberOf "Example"
4975 @ManageTransactions("ShapesOp")
4976 def NumberOfFaces(self, theShape):
4978 Gives quantity of faces in the given shape.
4981 theShape Shape to count faces of.
4986 # Example: see GEOM_TestOthers.py
4987 nb_faces = self.ShapesOp.NumberOfFaces(theShape)
4988 RaiseIfFailed("NumberOfFaces", self.ShapesOp)
4991 ## Gives quantity of edges in the given shape.
4992 # @param theShape Shape to count edges of.
4993 # @return Quantity of edges.
4995 # @ref swig_NumberOf "Example"
4996 @ManageTransactions("ShapesOp")
4997 def NumberOfEdges(self, theShape):
4999 Gives quantity of edges in the given shape.
5002 theShape Shape to count edges of.
5007 # Example: see GEOM_TestOthers.py
5008 nb_edges = self.ShapesOp.NumberOfEdges(theShape)
5009 RaiseIfFailed("NumberOfEdges", self.ShapesOp)
5012 ## Gives quantity of sub-shapes of type theShapeType in the given shape.
5013 # @param theShape Shape to count sub-shapes of.
5014 # @param theShapeType Type of sub-shapes to count (see ShapeType())
5015 # @return Quantity of sub-shapes of given type.
5017 # @ref swig_NumberOf "Example"
5018 @ManageTransactions("ShapesOp")
5019 def NumberOfSubShapes(self, theShape, theShapeType):
5021 Gives quantity of sub-shapes of type theShapeType in the given shape.
5024 theShape Shape to count sub-shapes of.
5025 theShapeType Type of sub-shapes to count (see geompy.ShapeType)
5028 Quantity of sub-shapes of given type.
5030 # Example: see GEOM_TestOthers.py
5031 nb_ss = self.ShapesOp.NumberOfSubShapes(theShape, theShapeType)
5032 RaiseIfFailed("NumberOfSubShapes", self.ShapesOp)
5035 ## Gives quantity of solids in the given shape.
5036 # @param theShape Shape to count solids in.
5037 # @return Quantity of solids.
5039 # @ref swig_NumberOf "Example"
5040 @ManageTransactions("ShapesOp")
5041 def NumberOfSolids(self, theShape):
5043 Gives quantity of solids in the given shape.
5046 theShape Shape to count solids in.
5051 # Example: see GEOM_TestOthers.py
5052 nb_solids = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["SOLID"])
5053 RaiseIfFailed("NumberOfSolids", self.ShapesOp)
5059 ## @addtogroup l3_healing
5062 ## Reverses an orientation the given shape.
5063 # @param theShape Shape to be reversed.
5064 # @param theName Object name; when specified, this parameter is used
5065 # for result publication in the study. Otherwise, if automatic
5066 # publication is switched on, default value is used for result name.
5068 # @return The reversed copy of theShape.
5070 # @ref swig_ChangeOrientation "Example"
5071 @ManageTransactions("ShapesOp")
5072 def ChangeOrientation(self, theShape, theName=None):
5074 Reverses an orientation the given shape.
5077 theShape Shape to be reversed.
5078 theName Object name; when specified, this parameter is used
5079 for result publication in the study. Otherwise, if automatic
5080 publication is switched on, default value is used for result name.
5083 The reversed copy of theShape.
5085 # Example: see GEOM_TestAll.py
5086 anObj = self.ShapesOp.ChangeOrientation(theShape)
5087 RaiseIfFailed("ChangeOrientation", self.ShapesOp)
5088 self._autoPublish(anObj, theName, "reversed")
5091 ## See ChangeOrientation() method for details.
5093 # @ref swig_OrientationChange "Example"
5094 def OrientationChange(self, theShape, theName=None):
5096 See geompy.ChangeOrientation method for details.
5098 # Example: see GEOM_TestOthers.py
5099 # note: auto-publishing is done in self.ChangeOrientation()
5100 anObj = self.ChangeOrientation(theShape, theName)
5106 ## @addtogroup l4_obtain
5109 ## Retrieve all free faces from the given shape.
5110 # Free face is a face, which is not shared between two shells of the shape.
5111 # @param theShape Shape to find free faces in.
5112 # @return List of IDs of all free faces, contained in theShape.
5114 # @ref tui_free_faces_page "Example"
5115 @ManageTransactions("ShapesOp")
5116 def GetFreeFacesIDs(self,theShape):
5118 Retrieve all free faces from the given shape.
5119 Free face is a face, which is not shared between two shells of the shape.
5122 theShape Shape to find free faces in.
5125 List of IDs of all free faces, contained in theShape.
5127 # Example: see GEOM_TestOthers.py
5128 anIDs = self.ShapesOp.GetFreeFacesIDs(theShape)
5129 RaiseIfFailed("GetFreeFacesIDs", self.ShapesOp)
5132 ## Get all sub-shapes of theShape1 of the given type, shared with theShape2.
5133 # @param theShape1 Shape to find sub-shapes in.
5134 # @param theShape2 Shape to find shared sub-shapes with.
5135 # @param theShapeType Type of sub-shapes to be retrieved.
5136 # @param theName Object name; when specified, this parameter is used
5137 # for result publication in the study. Otherwise, if automatic
5138 # publication is switched on, default value is used for result name.
5140 # @return List of sub-shapes of theShape1, shared with theShape2.
5142 # @ref swig_GetSharedShapes "Example"
5143 @ManageTransactions("ShapesOp")
5144 def GetSharedShapes(self, theShape1, theShape2, theShapeType, theName=None):
5146 Get all sub-shapes of theShape1 of the given type, shared with theShape2.
5149 theShape1 Shape to find sub-shapes in.
5150 theShape2 Shape to find shared sub-shapes with.
5151 theShapeType Type of sub-shapes to be retrieved.
5152 theName Object name; when specified, this parameter is used
5153 for result publication in the study. Otherwise, if automatic
5154 publication is switched on, default value is used for result name.
5157 List of sub-shapes of theShape1, shared with theShape2.
5159 # Example: see GEOM_TestOthers.py
5160 aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType)
5161 RaiseIfFailed("GetSharedShapes", self.ShapesOp)
5162 self._autoPublish(aList, theName, "shared")
5165 ## Get sub-shapes, shared by input shapes.
5166 # @param theShapes Either a list or compound of shapes to find common sub-shapes of.
5167 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType()).
5168 # @param theMultiShare Specifies what type of shares should be checked:
5169 # - @c True (default): search sub-shapes from 1st input shape shared with all other input shapes;
5170 # - @c False: causes to search sub-shapes shared between couples of input shapes.
5171 # @param theName Object name; when specified, this parameter is used
5172 # for result publication in the study. Otherwise, if automatic
5173 # publication is switched on, default value is used for result name.
5175 # @note If @a theShapes contains single compound, the shares between all possible couples of
5176 # its top-level shapes are returned; otherwise, only shares between 1st input shape
5177 # and all rest input shapes are returned.
5179 # @return List of all found sub-shapes.
5182 # - @ref tui_shared_shapes "Example 1"
5183 # - @ref swig_GetSharedShapes "Example 2"
5184 @ManageTransactions("ShapesOp")
5185 def GetSharedShapesMulti(self, theShapes, theShapeType, theMultiShare=True, theName=None):
5187 Get sub-shapes, shared by input shapes.
5190 theShapes Either a list or compound of shapes to find common sub-shapes of.
5191 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType).
5192 theMultiShare Specifies what type of shares should be checked:
5193 - True (default): search sub-shapes from 1st input shape shared with all other input shapes;
5194 - False: causes to search sub-shapes shared between couples of input shapes.
5195 theName Object name; when specified, this parameter is used
5196 for result publication in the study. Otherwise, if automatic
5197 publication is switched on, default value is used for result name.
5199 Note: if theShapes contains single compound, the shares between all possible couples of
5200 its top-level shapes are returned; otherwise, only shares between 1st input shape
5201 and all rest input shapes are returned.
5204 List of all found sub-shapes.
5206 # Example: see GEOM_TestOthers.py
5207 aList = self.ShapesOp.GetSharedShapesMulti(ToList(theShapes), theShapeType, theMultiShare)
5208 RaiseIfFailed("GetSharedShapesMulti", self.ShapesOp)
5209 self._autoPublish(aList, theName, "shared")
5212 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5213 # situated relatively the specified plane by the certain way,
5214 # defined through <VAR>theState</VAR> parameter.
5215 # @param theShape Shape to find sub-shapes of.
5216 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5217 # @param theAx1 Vector (or line, or linear edge), specifying normal
5218 # direction and location of the plane to find shapes on.
5219 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5220 # @param theName Object name; when specified, this parameter is used
5221 # for result publication in the study. Otherwise, if automatic
5222 # publication is switched on, default value is used for result name.
5224 # @return List of all found sub-shapes.
5226 # @ref swig_GetShapesOnPlane "Example"
5227 @ManageTransactions("ShapesOp")
5228 def GetShapesOnPlane(self, theShape, theShapeType, theAx1, theState, theName=None):
5230 Find in theShape all sub-shapes of type theShapeType,
5231 situated relatively the specified plane by the certain way,
5232 defined through theState parameter.
5235 theShape Shape to find sub-shapes of.
5236 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5237 theAx1 Vector (or line, or linear edge), specifying normal
5238 direction and location of the plane to find shapes on.
5239 theState The state of the sub-shapes to find (see GEOM::shape_state)
5240 theName Object name; when specified, this parameter is used
5241 for result publication in the study. Otherwise, if automatic
5242 publication is switched on, default value is used for result name.
5245 List of all found sub-shapes.
5247 # Example: see GEOM_TestOthers.py
5248 aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState)
5249 RaiseIfFailed("GetShapesOnPlane", self.ShapesOp)
5250 self._autoPublish(aList, theName, "shapeOnPlane")
5253 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5254 # situated relatively the specified plane by the certain way,
5255 # defined through <VAR>theState</VAR> parameter.
5256 # @param theShape Shape to find sub-shapes of.
5257 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5258 # @param theAx1 Vector (or line, or linear edge), specifying normal
5259 # direction and location of the plane to find shapes on.
5260 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5262 # @return List of all found sub-shapes indices.
5264 # @ref swig_GetShapesOnPlaneIDs "Example"
5265 @ManageTransactions("ShapesOp")
5266 def GetShapesOnPlaneIDs(self, theShape, theShapeType, theAx1, theState):
5268 Find in theShape all sub-shapes of type theShapeType,
5269 situated relatively the specified plane by the certain way,
5270 defined through theState parameter.
5273 theShape Shape to find sub-shapes of.
5274 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5275 theAx1 Vector (or line, or linear edge), specifying normal
5276 direction and location of the plane to find shapes on.
5277 theState The state of the sub-shapes to find (see GEOM::shape_state)
5280 List of all found sub-shapes indices.
5282 # Example: see GEOM_TestOthers.py
5283 aList = self.ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState)
5284 RaiseIfFailed("GetShapesOnPlaneIDs", self.ShapesOp)
5287 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5288 # situated relatively the specified plane by the certain way,
5289 # defined through <VAR>theState</VAR> parameter.
5290 # @param theShape Shape to find sub-shapes of.
5291 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5292 # @param theAx1 Vector (or line, or linear edge), specifying normal
5293 # direction of the plane to find shapes on.
5294 # @param thePnt Point specifying location of the plane to find shapes on.
5295 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5296 # @param theName Object name; when specified, this parameter is used
5297 # for result publication in the study. Otherwise, if automatic
5298 # publication is switched on, default value is used for result name.
5300 # @return List of all found sub-shapes.
5302 # @ref swig_GetShapesOnPlaneWithLocation "Example"
5303 @ManageTransactions("ShapesOp")
5304 def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState, theName=None):
5306 Find in theShape all sub-shapes of type theShapeType,
5307 situated relatively the specified plane by the certain way,
5308 defined through theState parameter.
5311 theShape Shape to find sub-shapes of.
5312 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5313 theAx1 Vector (or line, or linear edge), specifying normal
5314 direction and location of the plane to find shapes on.
5315 thePnt Point specifying location of the plane to find shapes on.
5316 theState The state of the sub-shapes to find (see GEOM::shape_state)
5317 theName Object name; when specified, this parameter is used
5318 for result publication in the study. Otherwise, if automatic
5319 publication is switched on, default value is used for result name.
5322 List of all found sub-shapes.
5324 # Example: see GEOM_TestOthers.py
5325 aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType,
5326 theAx1, thePnt, theState)
5327 RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp)
5328 self._autoPublish(aList, theName, "shapeOnPlane")
5331 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5332 # situated relatively the specified plane by the certain way,
5333 # defined through <VAR>theState</VAR> parameter.
5334 # @param theShape Shape to find sub-shapes of.
5335 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5336 # @param theAx1 Vector (or line, or linear edge), specifying normal
5337 # direction of the plane to find shapes on.
5338 # @param thePnt Point specifying location of the plane to find shapes on.
5339 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5341 # @return List of all found sub-shapes indices.
5343 # @ref swig_GetShapesOnPlaneWithLocationIDs "Example"
5344 @ManageTransactions("ShapesOp")
5345 def GetShapesOnPlaneWithLocationIDs(self, theShape, theShapeType, theAx1, thePnt, theState):
5347 Find in theShape all sub-shapes of type theShapeType,
5348 situated relatively the specified plane by the certain way,
5349 defined through theState parameter.
5352 theShape Shape to find sub-shapes of.
5353 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5354 theAx1 Vector (or line, or linear edge), specifying normal
5355 direction and location of the plane to find shapes on.
5356 thePnt Point specifying location of the plane to find shapes on.
5357 theState The state of the sub-shapes to find (see GEOM::shape_state)
5360 List of all found sub-shapes indices.
5362 # Example: see GEOM_TestOthers.py
5363 aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType,
5364 theAx1, thePnt, theState)
5365 RaiseIfFailed("GetShapesOnPlaneWithLocationIDs", self.ShapesOp)
5368 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5369 # the specified cylinder by the certain way, defined through \a theState parameter.
5370 # @param theShape Shape to find sub-shapes of.
5371 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5372 # @param theAxis Vector (or line, or linear edge), specifying
5373 # axis of the cylinder to find shapes on.
5374 # @param theRadius Radius of the cylinder to find shapes on.
5375 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5376 # @param theName Object name; when specified, this parameter is used
5377 # for result publication in the study. Otherwise, if automatic
5378 # publication is switched on, default value is used for result name.
5380 # @return List of all found sub-shapes.
5382 # @ref swig_GetShapesOnCylinder "Example"
5383 @ManageTransactions("ShapesOp")
5384 def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState, theName=None):
5386 Find in theShape all sub-shapes of type theShapeType, situated relatively
5387 the specified cylinder by the certain way, defined through theState parameter.
5390 theShape Shape to find sub-shapes of.
5391 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5392 theAxis Vector (or line, or linear edge), specifying
5393 axis of the cylinder to find shapes on.
5394 theRadius Radius of the cylinder to find shapes on.
5395 theState The state of the sub-shapes to find (see GEOM::shape_state)
5396 theName Object name; when specified, this parameter is used
5397 for result publication in the study. Otherwise, if automatic
5398 publication is switched on, default value is used for result name.
5401 List of all found sub-shapes.
5403 # Example: see GEOM_TestOthers.py
5404 aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState)
5405 RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp)
5406 self._autoPublish(aList, theName, "shapeOnCylinder")
5409 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5410 # the specified cylinder by the certain way, defined through \a theState parameter.
5411 # @param theShape Shape to find sub-shapes of.
5412 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5413 # @param theAxis Vector (or line, or linear edge), specifying
5414 # axis of the cylinder to find shapes on.
5415 # @param theRadius Radius of the cylinder to find shapes on.
5416 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5418 # @return List of all found sub-shapes indices.
5420 # @ref swig_GetShapesOnCylinderIDs "Example"
5421 @ManageTransactions("ShapesOp")
5422 def GetShapesOnCylinderIDs(self, theShape, theShapeType, theAxis, theRadius, theState):
5424 Find in theShape all sub-shapes of type theShapeType, situated relatively
5425 the specified cylinder by the certain way, defined through theState parameter.
5428 theShape Shape to find sub-shapes of.
5429 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5430 theAxis Vector (or line, or linear edge), specifying
5431 axis of the cylinder to find shapes on.
5432 theRadius Radius of the cylinder to find shapes on.
5433 theState The state of the sub-shapes to find (see GEOM::shape_state)
5436 List of all found sub-shapes indices.
5438 # Example: see GEOM_TestOthers.py
5439 aList = self.ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState)
5440 RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp)
5443 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5444 # the specified cylinder by the certain way, defined through \a theState parameter.
5445 # @param theShape Shape to find sub-shapes of.
5446 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5447 # @param theAxis Vector (or line, or linear edge), specifying
5448 # axis of the cylinder to find shapes on.
5449 # @param thePnt Point specifying location of the bottom of the cylinder.
5450 # @param theRadius Radius of the cylinder to find shapes on.
5451 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5452 # @param theName Object name; when specified, this parameter is used
5453 # for result publication in the study. Otherwise, if automatic
5454 # publication is switched on, default value is used for result name.
5456 # @return List of all found sub-shapes.
5458 # @ref swig_GetShapesOnCylinderWithLocation "Example"
5459 @ManageTransactions("ShapesOp")
5460 def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState, theName=None):
5462 Find in theShape all sub-shapes of type theShapeType, situated relatively
5463 the specified cylinder by the certain way, defined through theState parameter.
5466 theShape Shape to find sub-shapes of.
5467 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5468 theAxis Vector (or line, or linear edge), specifying
5469 axis of the cylinder to find shapes on.
5470 theRadius Radius of the cylinder to find shapes on.
5471 theState The state of the sub-shapes to find (see GEOM::shape_state)
5472 theName Object name; when specified, this parameter is used
5473 for result publication in the study. Otherwise, if automatic
5474 publication is switched on, default value is used for result name.
5477 List of all found sub-shapes.
5479 # Example: see GEOM_TestOthers.py
5480 aList = self.ShapesOp.GetShapesOnCylinderWithLocation(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
5481 RaiseIfFailed("GetShapesOnCylinderWithLocation", self.ShapesOp)
5482 self._autoPublish(aList, theName, "shapeOnCylinder")
5485 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5486 # the specified cylinder by the certain way, defined through \a theState parameter.
5487 # @param theShape Shape to find sub-shapes of.
5488 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5489 # @param theAxis Vector (or line, or linear edge), specifying
5490 # axis of the cylinder to find shapes on.
5491 # @param thePnt Point specifying location of the bottom of the cylinder.
5492 # @param theRadius Radius of the cylinder to find shapes on.
5493 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5495 # @return List of all found sub-shapes indices
5497 # @ref swig_GetShapesOnCylinderWithLocationIDs "Example"
5498 @ManageTransactions("ShapesOp")
5499 def GetShapesOnCylinderWithLocationIDs(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
5501 Find in theShape all sub-shapes of type theShapeType, situated relatively
5502 the specified cylinder by the certain way, defined through theState parameter.
5505 theShape Shape to find sub-shapes of.
5506 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5507 theAxis Vector (or line, or linear edge), specifying
5508 axis of the cylinder to find shapes on.
5509 theRadius Radius of the cylinder to find shapes on.
5510 theState The state of the sub-shapes to find (see GEOM::shape_state)
5513 List of all found sub-shapes indices.
5515 # Example: see GEOM_TestOthers.py
5516 aList = self.ShapesOp.GetShapesOnCylinderWithLocationIDs(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
5517 RaiseIfFailed("GetShapesOnCylinderWithLocationIDs", self.ShapesOp)
5520 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5521 # the specified sphere by the certain way, defined through \a theState parameter.
5522 # @param theShape Shape to find sub-shapes of.
5523 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5524 # @param theCenter Point, specifying center of the sphere to find shapes on.
5525 # @param theRadius Radius of the sphere to find shapes on.
5526 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5527 # @param theName Object name; when specified, this parameter is used
5528 # for result publication in the study. Otherwise, if automatic
5529 # publication is switched on, default value is used for result name.
5531 # @return List of all found sub-shapes.
5533 # @ref swig_GetShapesOnSphere "Example"
5534 @ManageTransactions("ShapesOp")
5535 def GetShapesOnSphere(self, theShape, theShapeType, theCenter, theRadius, theState, theName=None):
5537 Find in theShape all sub-shapes of type theShapeType, situated relatively
5538 the specified sphere by the certain way, defined through theState parameter.
5541 theShape Shape to find sub-shapes of.
5542 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5543 theCenter Point, specifying center of the sphere to find shapes on.
5544 theRadius Radius of the sphere to find shapes on.
5545 theState The state of the sub-shapes to find (see GEOM::shape_state)
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 List of all found sub-shapes.
5553 # Example: see GEOM_TestOthers.py
5554 aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState)
5555 RaiseIfFailed("GetShapesOnSphere", self.ShapesOp)
5556 self._autoPublish(aList, theName, "shapeOnSphere")
5559 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5560 # the specified sphere by the certain way, defined through \a theState parameter.
5561 # @param theShape Shape to find sub-shapes of.
5562 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5563 # @param theCenter Point, specifying center of the sphere to find shapes on.
5564 # @param theRadius Radius of the sphere to find shapes on.
5565 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5567 # @return List of all found sub-shapes indices.
5569 # @ref swig_GetShapesOnSphereIDs "Example"
5570 @ManageTransactions("ShapesOp")
5571 def GetShapesOnSphereIDs(self, theShape, theShapeType, theCenter, theRadius, theState):
5573 Find in theShape all sub-shapes of type theShapeType, situated relatively
5574 the specified sphere by the certain way, defined through theState parameter.
5577 theShape Shape to find sub-shapes of.
5578 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5579 theCenter Point, specifying center of the sphere to find shapes on.
5580 theRadius Radius of the sphere to find shapes on.
5581 theState The state of the sub-shapes to find (see GEOM::shape_state)
5584 List of all found sub-shapes indices.
5586 # Example: see GEOM_TestOthers.py
5587 aList = self.ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState)
5588 RaiseIfFailed("GetShapesOnSphereIDs", self.ShapesOp)
5591 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5592 # the specified quadrangle by the certain way, defined through \a theState parameter.
5593 # @param theShape Shape to find sub-shapes of.
5594 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5595 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
5596 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
5597 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5598 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5599 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5600 # @param theName Object name; when specified, this parameter is used
5601 # for result publication in the study. Otherwise, if automatic
5602 # publication is switched on, default value is used for result name.
5604 # @return List of all found sub-shapes.
5606 # @ref swig_GetShapesOnQuadrangle "Example"
5607 @ManageTransactions("ShapesOp")
5608 def GetShapesOnQuadrangle(self, theShape, theShapeType,
5609 theTopLeftPoint, theTopRigthPoint,
5610 theBottomLeftPoint, theBottomRigthPoint, theState, theName=None):
5612 Find in theShape all sub-shapes of type theShapeType, situated relatively
5613 the specified quadrangle by the certain way, defined through theState parameter.
5616 theShape Shape to find sub-shapes of.
5617 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5618 theTopLeftPoint Point, specifying top left corner of a quadrangle
5619 theTopRigthPoint Point, specifying top right corner of a quadrangle
5620 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5621 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5622 theState The state of the sub-shapes to find (see GEOM::shape_state)
5623 theName Object name; when specified, this parameter is used
5624 for result publication in the study. Otherwise, if automatic
5625 publication is switched on, default value is used for result name.
5628 List of all found sub-shapes.
5630 # Example: see GEOM_TestOthers.py
5631 aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType,
5632 theTopLeftPoint, theTopRigthPoint,
5633 theBottomLeftPoint, theBottomRigthPoint, theState)
5634 RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp)
5635 self._autoPublish(aList, theName, "shapeOnQuadrangle")
5638 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5639 # the specified quadrangle by the certain way, defined through \a theState parameter.
5640 # @param theShape Shape to find sub-shapes of.
5641 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5642 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
5643 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
5644 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5645 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5646 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5648 # @return List of all found sub-shapes indices.
5650 # @ref swig_GetShapesOnQuadrangleIDs "Example"
5651 @ManageTransactions("ShapesOp")
5652 def GetShapesOnQuadrangleIDs(self, theShape, theShapeType,
5653 theTopLeftPoint, theTopRigthPoint,
5654 theBottomLeftPoint, theBottomRigthPoint, theState):
5656 Find in theShape all sub-shapes of type theShapeType, situated relatively
5657 the specified quadrangle by the certain way, defined through theState parameter.
5660 theShape Shape to find sub-shapes of.
5661 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5662 theTopLeftPoint Point, specifying top left corner of a quadrangle
5663 theTopRigthPoint Point, specifying top right corner of a quadrangle
5664 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5665 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5666 theState The state of the sub-shapes to find (see GEOM::shape_state)
5669 List of all found sub-shapes indices.
5672 # Example: see GEOM_TestOthers.py
5673 aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType,
5674 theTopLeftPoint, theTopRigthPoint,
5675 theBottomLeftPoint, theBottomRigthPoint, theState)
5676 RaiseIfFailed("GetShapesOnQuadrangleIDs", self.ShapesOp)
5679 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5680 # the specified \a theBox by the certain way, defined through \a theState parameter.
5681 # @param theBox Shape for relative comparing.
5682 # @param theShape Shape to find sub-shapes of.
5683 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5684 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5685 # @param theName Object name; when specified, this parameter is used
5686 # for result publication in the study. Otherwise, if automatic
5687 # publication is switched on, default value is used for result name.
5689 # @return List of all found sub-shapes.
5691 # @ref swig_GetShapesOnBox "Example"
5692 @ManageTransactions("ShapesOp")
5693 def GetShapesOnBox(self, theBox, theShape, theShapeType, theState, theName=None):
5695 Find in theShape all sub-shapes of type theShapeType, situated relatively
5696 the specified theBox by the certain way, defined through theState parameter.
5699 theBox Shape for relative comparing.
5700 theShape Shape to find sub-shapes of.
5701 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5702 theState The state of the sub-shapes to find (see GEOM::shape_state)
5703 theName Object name; when specified, this parameter is used
5704 for result publication in the study. Otherwise, if automatic
5705 publication is switched on, default value is used for result name.
5708 List of all found sub-shapes.
5710 # Example: see GEOM_TestOthers.py
5711 aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState)
5712 RaiseIfFailed("GetShapesOnBox", self.ShapesOp)
5713 self._autoPublish(aList, theName, "shapeOnBox")
5716 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5717 # the specified \a theBox by the certain way, defined through \a theState parameter.
5718 # @param theBox Shape for relative comparing.
5719 # @param theShape Shape to find sub-shapes of.
5720 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5721 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5723 # @return List of all found sub-shapes indices.
5725 # @ref swig_GetShapesOnBoxIDs "Example"
5726 @ManageTransactions("ShapesOp")
5727 def GetShapesOnBoxIDs(self, theBox, theShape, theShapeType, theState):
5729 Find in theShape all sub-shapes of type theShapeType, situated relatively
5730 the specified theBox by the certain way, defined through theState parameter.
5733 theBox Shape for relative comparing.
5734 theShape Shape to find sub-shapes of.
5735 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5736 theState The state of the sub-shapes to find (see GEOM::shape_state)
5739 List of all found sub-shapes indices.
5741 # Example: see GEOM_TestOthers.py
5742 aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState)
5743 RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp)
5746 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5747 # situated relatively the specified \a theCheckShape by the
5748 # certain way, defined through \a theState parameter.
5749 # @param theCheckShape Shape for relative comparing. It must be a solid.
5750 # @param theShape Shape to find sub-shapes of.
5751 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5752 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5753 # @param theName Object name; when specified, this parameter is used
5754 # for result publication in the study. Otherwise, if automatic
5755 # publication is switched on, default value is used for result name.
5757 # @return List of all found sub-shapes.
5759 # @ref swig_GetShapesOnShape "Example"
5760 @ManageTransactions("ShapesOp")
5761 def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5763 Find in theShape all sub-shapes of type theShapeType,
5764 situated relatively the specified theCheckShape by the
5765 certain way, defined through theState parameter.
5768 theCheckShape Shape for relative comparing. It must be a solid.
5769 theShape Shape to find sub-shapes of.
5770 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5771 theState The state of the sub-shapes to find (see GEOM::shape_state)
5772 theName Object name; when specified, this parameter is used
5773 for result publication in the study. Otherwise, if automatic
5774 publication is switched on, default value is used for result name.
5777 List of all found sub-shapes.
5779 # Example: see GEOM_TestOthers.py
5780 aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape,
5781 theShapeType, theState)
5782 RaiseIfFailed("GetShapesOnShape", self.ShapesOp)
5783 self._autoPublish(aList, theName, "shapeOnShape")
5786 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5787 # situated relatively the specified \a theCheckShape by the
5788 # certain way, defined through \a theState parameter.
5789 # @param theCheckShape Shape for relative comparing. It must be a solid.
5790 # @param theShape Shape to find sub-shapes of.
5791 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5792 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5793 # @param theName Object name; when specified, this parameter is used
5794 # for result publication in the study. Otherwise, if automatic
5795 # publication is switched on, default value is used for result name.
5797 # @return All found sub-shapes as compound.
5799 # @ref swig_GetShapesOnShapeAsCompound "Example"
5800 @ManageTransactions("ShapesOp")
5801 def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5803 Find in theShape all sub-shapes of type theShapeType,
5804 situated relatively the specified theCheckShape by the
5805 certain way, defined through theState parameter.
5808 theCheckShape Shape for relative comparing. It must be a solid.
5809 theShape Shape to find sub-shapes of.
5810 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5811 theState The state of the sub-shapes to find (see GEOM::shape_state)
5812 theName Object name; when specified, this parameter is used
5813 for result publication in the study. Otherwise, if automatic
5814 publication is switched on, default value is used for result name.
5817 All found sub-shapes as compound.
5819 # Example: see GEOM_TestOthers.py
5820 anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape,
5821 theShapeType, theState)
5822 RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp)
5823 self._autoPublish(anObj, theName, "shapeOnShape")
5826 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5827 # situated relatively the specified \a theCheckShape by the
5828 # certain way, defined through \a theState parameter.
5829 # @param theCheckShape Shape for relative comparing. It must be a solid.
5830 # @param theShape Shape to find sub-shapes of.
5831 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5832 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5834 # @return List of all found sub-shapes indices.
5836 # @ref swig_GetShapesOnShapeIDs "Example"
5837 @ManageTransactions("ShapesOp")
5838 def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState):
5840 Find in theShape all sub-shapes of type theShapeType,
5841 situated relatively the specified theCheckShape by the
5842 certain way, defined through theState parameter.
5845 theCheckShape Shape for relative comparing. It must be a solid.
5846 theShape Shape to find sub-shapes of.
5847 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5848 theState The state of the sub-shapes to find (see GEOM::shape_state)
5851 List of all found sub-shapes indices.
5853 # Example: see GEOM_TestOthers.py
5854 aList = self.ShapesOp.GetShapesOnShapeIDs(theCheckShape, theShape,
5855 theShapeType, theState)
5856 RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp)
5859 ## Get sub-shape(s) of theShapeWhere, which are
5860 # coincident with \a theShapeWhat or could be a part of it.
5861 # @param theShapeWhere Shape to find sub-shapes of.
5862 # @param theShapeWhat Shape, specifying what to find.
5863 # @param isNewImplementation implementation of GetInPlace functionality
5864 # (default = False, old alghorithm based on shape properties)
5865 # @param theName Object name; when specified, this parameter is used
5866 # for result publication in the study. Otherwise, if automatic
5867 # publication is switched on, default value is used for result name.
5869 # @return Compound which includes all found sub-shapes if they have different types;
5870 # or group of all found shapes of the equal type; or a single found sub-shape.
5872 # @note This function has a restriction on argument shapes.
5873 # If \a theShapeWhere has curved parts with significantly
5874 # outstanding centres (i.e. the mass centre of a part is closer to
5875 # \a theShapeWhat than to the part), such parts will not be found.
5876 # @image html get_in_place_lost_part.png
5878 # @ref swig_GetInPlace "Example"
5879 @ManageTransactions("ShapesOp")
5880 def GetInPlace(self, theShapeWhere, theShapeWhat, isNewImplementation = False, theName=None):
5882 Get sub-shape(s) of theShapeWhere, which are
5883 coincident with theShapeWhat or could be a part of it.
5886 theShapeWhere Shape to find sub-shapes of.
5887 theShapeWhat Shape, specifying what to find.
5888 isNewImplementation Implementation of GetInPlace functionality
5889 (default = False, old alghorithm based on shape properties)
5890 theName Object name; when specified, this parameter is used
5891 for result publication in the study. Otherwise, if automatic
5892 publication is switched on, default value is used for result name.
5895 Compound which includes all found sub-shapes if they have different types;
5896 or group of all found shapes of the equal type; or a single found sub-shape.
5900 This function has a restriction on argument shapes.
5901 If theShapeWhere has curved parts with significantly
5902 outstanding centres (i.e. the mass centre of a part is closer to
5903 theShapeWhat than to the part), such parts will not be found.
5905 # Example: see GEOM_TestOthers.py
5907 if isNewImplementation:
5908 anObj = self.ShapesOp.GetInPlace(theShapeWhere, theShapeWhat)
5910 anObj = self.ShapesOp.GetInPlaceOld(theShapeWhere, theShapeWhat)
5912 RaiseIfFailed("GetInPlace", self.ShapesOp)
5913 self._autoPublish(anObj, theName, "inplace")
5916 ## Get sub-shape(s) of \a theShapeWhere, which are
5917 # coincident with \a theShapeWhat or could be a part of it.
5919 # Implementation of this method is based on a saved history of an operation,
5920 # produced \a theShapeWhere. The \a theShapeWhat must be among this operation's
5921 # arguments (an argument shape or a sub-shape of an argument shape).
5922 # The operation could be the Partition or one of boolean operations,
5923 # performed on simple shapes (not on compounds).
5925 # @param theShapeWhere Shape to find sub-shapes of.
5926 # @param theShapeWhat Shape, specifying what to find (must be in the
5927 # building history of the ShapeWhere).
5928 # @param theName Object name; when specified, this parameter is used
5929 # for result publication in the study. Otherwise, if automatic
5930 # publication is switched on, default value is used for result name.
5932 # @return Compound which includes all found sub-shapes if they have different types;
5933 # or group of all found shapes of the equal type; or a single found sub-shape.
5935 # @ref swig_GetInPlace "Example"
5936 @ManageTransactions("ShapesOp")
5937 def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat, theName=None):
5939 Implementation of this method is based on a saved history of an operation,
5940 produced theShapeWhere. The theShapeWhat must be among this operation's
5941 arguments (an argument shape or a sub-shape of an argument shape).
5942 The operation could be the Partition or one of boolean operations,
5943 performed on simple shapes (not on compounds).
5946 theShapeWhere Shape to find sub-shapes of.
5947 theShapeWhat Shape, specifying what to find (must be in the
5948 building history of the ShapeWhere).
5949 theName Object name; when specified, this parameter is used
5950 for result publication in the study. Otherwise, if automatic
5951 publication is switched on, default value is used for result name.
5954 Compound which includes all found sub-shapes if they have different types;
5955 or group of all found shapes of the equal type; or a single found sub-shape.
5957 # Example: see GEOM_TestOthers.py
5958 anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)
5959 RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp)
5960 self._autoPublish(anObj, theName, "inplace")
5963 ## Get sub-shape of theShapeWhere, which is
5964 # equal to \a theShapeWhat.
5965 # @param theShapeWhere Shape to find sub-shape of.
5966 # @param theShapeWhat Shape, specifying what to find.
5967 # @param theName Object name; when specified, this parameter is used
5968 # for result publication in the study. Otherwise, if automatic
5969 # publication is switched on, default value is used for result name.
5971 # @return New GEOM.GEOM_Object for found sub-shape.
5973 # @ref swig_GetSame "Example"
5974 @ManageTransactions("ShapesOp")
5975 def GetSame(self, theShapeWhere, theShapeWhat, theName=None):
5977 Get sub-shape of theShapeWhere, which is
5978 equal to theShapeWhat.
5981 theShapeWhere Shape to find sub-shape of.
5982 theShapeWhat Shape, specifying what to find.
5983 theName Object name; when specified, this parameter is used
5984 for result publication in the study. Otherwise, if automatic
5985 publication is switched on, default value is used for result name.
5988 New GEOM.GEOM_Object for found sub-shape.
5990 anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat)
5991 RaiseIfFailed("GetSame", self.ShapesOp)
5992 self._autoPublish(anObj, theName, "sameShape")
5996 ## Get sub-shape indices of theShapeWhere, which is
5997 # equal to \a theShapeWhat.
5998 # @param theShapeWhere Shape to find sub-shape of.
5999 # @param theShapeWhat Shape, specifying what to find.
6000 # @return List of all found sub-shapes indices.
6002 # @ref swig_GetSame "Example"
6003 @ManageTransactions("ShapesOp")
6004 def GetSameIDs(self, theShapeWhere, theShapeWhat):
6006 Get sub-shape indices of theShapeWhere, which is
6007 equal to theShapeWhat.
6010 theShapeWhere Shape to find sub-shape of.
6011 theShapeWhat Shape, specifying what to find.
6014 List of all found sub-shapes indices.
6016 anObj = self.ShapesOp.GetSameIDs(theShapeWhere, theShapeWhat)
6017 RaiseIfFailed("GetSameIDs", self.ShapesOp)
6020 ## Resize the input edge with the new Min and Max parameters.
6021 # The input edge parameters range is [0, 1]. If theMin parameter is
6022 # negative, the input edge is extended, otherwise it is shrinked by
6023 # theMin parameter. If theMax is greater than 1, the edge is extended,
6024 # otherwise it is shrinked by theMax parameter.
6025 # @param theEdge the input edge to be resized.
6026 # @param theMin the minimal parameter value.
6027 # @param theMax the maximal parameter value.
6028 # @param theName Object name; when specified, this parameter is used
6029 # for result publication in the study. Otherwise, if automatic
6030 # publication is switched on, default value is used for result name.
6031 # @return New GEOM.GEOM_Object, containing the created edge.
6033 # @ref tui_extend "Example"
6034 @ManageTransactions("ShapesOp")
6035 def ExtendEdge(self, theEdge, theMin, theMax, theName=None):
6037 Resize the input edge with the new Min and Max parameters.
6038 The input edge parameters range is [0, 1]. If theMin parameter is
6039 negative, the input edge is extended, otherwise it is shrinked by
6040 theMin parameter. If theMax is greater than 1, the edge is extended,
6041 otherwise it is shrinked by theMax parameter.
6044 theEdge the input edge to be resized.
6045 theMin the minimal parameter value.
6046 theMax the maximal parameter value.
6047 theName Object name; when specified, this parameter is used
6048 for result publication in the study. Otherwise, if automatic
6049 publication is switched on, default value is used for result name.
6052 New GEOM.GEOM_Object, containing the created edge.
6054 theMin, theMax, Parameters = ParseParameters(theMin, theMax)
6055 anObj = self.ShapesOp.ExtendEdge(theEdge, theMin, theMax)
6056 RaiseIfFailed("ExtendEdge", self.ShapesOp)
6057 anObj.SetParameters(Parameters)
6058 self._autoPublish(anObj, theName, "edge")
6061 ## Resize the input face with the new UMin, UMax, VMin and VMax
6062 # parameters. The input face U and V parameters range is [0, 1]. If
6063 # theUMin parameter is negative, the input face is extended, otherwise
6064 # it is shrinked along U direction by theUMin parameter. If theUMax is
6065 # greater than 1, the face is extended, otherwise it is shrinked along
6066 # U direction by theUMax parameter. So as for theVMin, theVMax and
6067 # V direction of the input face.
6068 # @param theFace the input face to be resized.
6069 # @param theUMin the minimal U parameter value.
6070 # @param theUMax the maximal U parameter value.
6071 # @param theVMin the minimal V parameter value.
6072 # @param theVMax the maximal V parameter value.
6073 # @param theName Object name; when specified, this parameter is used
6074 # for result publication in the study. Otherwise, if automatic
6075 # publication is switched on, default value is used for result name.
6076 # @return New GEOM.GEOM_Object, containing the created face.
6078 # @ref tui_extend "Example"
6079 @ManageTransactions("ShapesOp")
6080 def ExtendFace(self, theFace, theUMin, theUMax,
6081 theVMin, theVMax, theName=None):
6083 Resize the input face with the new UMin, UMax, VMin and VMax
6084 parameters. The input face U and V parameters range is [0, 1]. If
6085 theUMin parameter is negative, the input face is extended, otherwise
6086 it is shrinked along U direction by theUMin parameter. If theUMax is
6087 greater than 1, the face is extended, otherwise it is shrinked along
6088 U direction by theUMax parameter. So as for theVMin, theVMax and
6089 V direction of the input face.
6092 theFace the input face to be resized.
6093 theUMin the minimal U parameter value.
6094 theUMax the maximal U parameter value.
6095 theVMin the minimal V parameter value.
6096 theVMax the maximal V parameter value.
6097 theName Object name; when specified, this parameter is used
6098 for result publication in the study. Otherwise, if automatic
6099 publication is switched on, default value is used for result name.
6102 New GEOM.GEOM_Object, containing the created face.
6104 theUMin, theUMax, theVMin, theVMax, Parameters = ParseParameters(theUMin, theUMax, theVMin, theVMax)
6105 anObj = self.ShapesOp.ExtendFace(theFace, theUMin, theUMax,
6107 RaiseIfFailed("ExtendFace", self.ShapesOp)
6108 anObj.SetParameters(Parameters)
6109 self._autoPublish(anObj, theName, "face")
6112 ## This function takes some face as input parameter and creates new
6113 # GEOM_Object, i.e. topological shape by extracting underlying surface
6114 # of the source face and limiting it by the Umin, Umax, Vmin, Vmax
6115 # parameters of the source face (in the parametrical space).
6116 # @param theFace the input face.
6117 # @param theName Object name; when specified, this parameter is used
6118 # for result publication in the study. Otherwise, if automatic
6119 # publication is switched on, default value is used for result name.
6120 # @return New GEOM.GEOM_Object, containing the created face.
6122 # @ref tui_creation_surface "Example"
6123 @ManageTransactions("ShapesOp")
6124 def MakeSurfaceFromFace(self, theFace, theName=None):
6126 This function takes some face as input parameter and creates new
6127 GEOM_Object, i.e. topological shape by extracting underlying surface
6128 of the source face and limiting it by the Umin, Umax, Vmin, Vmax
6129 parameters of the source face (in the parametrical space).
6132 theFace the input face.
6133 theName Object name; when specified, this parameter is used
6134 for result publication in the study. Otherwise, if automatic
6135 publication is switched on, default value is used for result name.
6138 New GEOM.GEOM_Object, containing the created face.
6140 anObj = self.ShapesOp.MakeSurfaceFromFace(theFace)
6141 RaiseIfFailed("MakeSurfaceFromFace", self.ShapesOp)
6142 self._autoPublish(anObj, theName, "surface")
6148 ## @addtogroup l4_access
6151 ## Obtain a composite sub-shape of <VAR>aShape</VAR>, composed from sub-shapes
6152 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
6153 # @param aShape Shape to get sub-shape of.
6154 # @param ListOfID List of sub-shapes indices.
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 Found sub-shape.
6161 # @ref swig_all_decompose "Example"
6162 def GetSubShape(self, aShape, ListOfID, theName=None):
6164 Obtain a composite sub-shape of aShape, composed from sub-shapes
6165 of aShape, selected by their unique IDs inside aShape
6168 aShape Shape to get sub-shape of.
6169 ListOfID List of sub-shapes indices.
6170 theName Object name; when specified, this parameter is used
6171 for result publication in the study. Otherwise, if automatic
6172 publication is switched on, default value is used for result name.
6177 # Example: see GEOM_TestAll.py
6178 anObj = self.AddSubShape(aShape,ListOfID)
6179 self._autoPublish(anObj, theName, "subshape")
6182 ## Obtain unique ID of sub-shape <VAR>aSubShape</VAR> inside <VAR>aShape</VAR>
6183 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
6184 # @param aShape Shape to get sub-shape of.
6185 # @param aSubShape Sub-shapes of aShape.
6186 # @return ID of found sub-shape.
6188 # @ref swig_all_decompose "Example"
6189 @ManageTransactions("LocalOp")
6190 def GetSubShapeID(self, aShape, aSubShape):
6192 Obtain unique ID of sub-shape aSubShape inside aShape
6193 of aShape, selected by their unique IDs inside aShape
6196 aShape Shape to get sub-shape of.
6197 aSubShape Sub-shapes of aShape.
6200 ID of found sub-shape.
6202 # Example: see GEOM_TestAll.py
6203 anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape)
6204 RaiseIfFailed("GetSubShapeIndex", self.LocalOp)
6207 ## Obtain unique IDs of sub-shapes <VAR>aSubShapes</VAR> inside <VAR>aShape</VAR>
6208 # This function is provided for performance purpose. The complexity is O(n) with n
6209 # the number of subobjects of aShape
6210 # @param aShape Shape to get sub-shape of.
6211 # @param aSubShapes Sub-shapes of aShape.
6212 # @return list of IDs of found sub-shapes.
6214 # @ref swig_all_decompose "Example"
6215 @ManageTransactions("ShapesOp")
6216 def GetSubShapesIDs(self, aShape, aSubShapes):
6218 Obtain a list of IDs of sub-shapes aSubShapes inside aShape
6219 This function is provided for performance purpose. The complexity is O(n) with n
6220 the number of subobjects of aShape
6223 aShape Shape to get sub-shape of.
6224 aSubShapes Sub-shapes of aShape.
6227 List of IDs of found sub-shape.
6229 # Example: see GEOM_TestAll.py
6230 anIDs = self.ShapesOp.GetSubShapesIndices(aShape, aSubShapes)
6231 RaiseIfFailed("GetSubShapesIndices", self.ShapesOp)
6237 ## @addtogroup l4_decompose
6240 ## Get all sub-shapes and groups of \a theShape,
6241 # that were created already by any other methods.
6242 # @param theShape Any shape.
6243 # @param theGroupsOnly If this parameter is TRUE, only groups will be
6244 # returned, else all found sub-shapes and groups.
6245 # @return List of existing sub-objects of \a theShape.
6247 # @ref swig_all_decompose "Example"
6248 @ManageTransactions("ShapesOp")
6249 def GetExistingSubObjects(self, theShape, theGroupsOnly = False):
6251 Get all sub-shapes and groups of theShape,
6252 that were created already by any other methods.
6256 theGroupsOnly If this parameter is TRUE, only groups will be
6257 returned, else all found sub-shapes and groups.
6260 List of existing sub-objects of theShape.
6262 # Example: see GEOM_TestAll.py
6263 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, theGroupsOnly)
6264 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
6267 ## Get all groups of \a theShape,
6268 # that were created already by any other methods.
6269 # @param theShape Any shape.
6270 # @return List of existing groups of \a theShape.
6272 # @ref swig_all_decompose "Example"
6273 @ManageTransactions("ShapesOp")
6274 def GetGroups(self, theShape):
6276 Get all groups of theShape,
6277 that were created already by any other methods.
6283 List of existing groups of theShape.
6285 # Example: see GEOM_TestAll.py
6286 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, True)
6287 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
6290 ## Explode a shape on sub-shapes of a given type.
6291 # If the shape itself matches the type, it is also returned.
6292 # @param aShape Shape to be exploded.
6293 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6294 # @param theName Object name; when specified, this parameter is used
6295 # for result publication in the study. Otherwise, if automatic
6296 # publication is switched on, default value is used for result name.
6298 # @return List of sub-shapes of type theShapeType, contained in theShape.
6300 # @ref swig_all_decompose "Example"
6301 @ManageTransactions("ShapesOp")
6302 def SubShapeAll(self, aShape, aType, theName=None):
6304 Explode a shape on sub-shapes of a given type.
6305 If the shape itself matches the type, it is also returned.
6308 aShape Shape to be exploded.
6309 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6310 theName Object name; when specified, this parameter is used
6311 for result publication in the study. Otherwise, if automatic
6312 publication is switched on, default value is used for result name.
6315 List of sub-shapes of type theShapeType, contained in theShape.
6317 # Example: see GEOM_TestAll.py
6318 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), False)
6319 RaiseIfFailed("SubShapeAll", self.ShapesOp)
6320 self._autoPublish(ListObj, theName, "subshape")
6323 ## Explode a shape on sub-shapes of a given type.
6324 # @param aShape Shape to be exploded.
6325 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6326 # @return List of IDs of sub-shapes.
6328 # @ref swig_all_decompose "Example"
6329 @ManageTransactions("ShapesOp")
6330 def SubShapeAllIDs(self, aShape, aType):
6332 Explode a shape on sub-shapes of a given type.
6335 aShape Shape to be exploded (see geompy.ShapeType)
6336 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6339 List of IDs of sub-shapes.
6341 ListObj = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), False)
6342 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6345 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
6346 # selected by their indices in list of all sub-shapes of type <VAR>aType</VAR>.
6347 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6348 # @param aShape Shape to get sub-shape of.
6349 # @param ListOfInd List of sub-shapes indices.
6350 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6351 # @param theName Object name; when specified, this parameter is used
6352 # for result publication in the study. Otherwise, if automatic
6353 # publication is switched on, default value is used for result name.
6355 # @return A compound of sub-shapes of aShape.
6357 # @ref swig_all_decompose "Example"
6358 def SubShape(self, aShape, aType, ListOfInd, theName=None):
6360 Obtain a compound of sub-shapes of aShape,
6361 selected by their indices in list of all sub-shapes of type aType.
6362 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6365 aShape Shape to get sub-shape of.
6366 ListOfID List of sub-shapes indices.
6367 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6368 theName Object name; when specified, this parameter is used
6369 for result publication in the study. Otherwise, if automatic
6370 publication is switched on, default value is used for result name.
6373 A compound of sub-shapes of aShape.
6375 # Example: see GEOM_TestAll.py
6377 AllShapeIDsList = self.SubShapeAllIDs(aShape, EnumToLong( aType ))
6378 for ind in ListOfInd:
6379 ListOfIDs.append(AllShapeIDsList[ind - 1])
6380 # note: auto-publishing is done in self.GetSubShape()
6381 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6384 ## Explode a shape on sub-shapes of a given type.
6385 # Sub-shapes will be sorted taking into account their gravity centers,
6386 # to provide stable order of sub-shapes.
6387 # If the shape itself matches the type, it is also returned.
6388 # @param aShape Shape to be exploded.
6389 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6390 # @param theName Object name; when specified, this parameter is used
6391 # for result publication in the study. Otherwise, if automatic
6392 # publication is switched on, default value is used for result name.
6394 # @return List of sub-shapes of type theShapeType, contained in theShape.
6396 # @ref swig_SubShapeAllSorted "Example"
6397 @ManageTransactions("ShapesOp")
6398 def SubShapeAllSortedCentres(self, aShape, aType, theName=None):
6400 Explode a shape on sub-shapes of a given type.
6401 Sub-shapes will be sorted taking into account their gravity centers,
6402 to provide stable order of sub-shapes.
6403 If the shape itself matches the type, it is also returned.
6406 aShape Shape to be exploded.
6407 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6408 theName Object name; when specified, this parameter is used
6409 for result publication in the study. Otherwise, if automatic
6410 publication is switched on, default value is used for result name.
6413 List of sub-shapes of type theShapeType, contained in theShape.
6415 # Example: see GEOM_TestAll.py
6416 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), True)
6417 RaiseIfFailed("SubShapeAllSortedCentres", self.ShapesOp)
6418 self._autoPublish(ListObj, theName, "subshape")
6421 ## Explode a shape on sub-shapes of a given type.
6422 # Sub-shapes will be sorted taking into account their gravity centers,
6423 # to provide stable order of sub-shapes.
6424 # @param aShape Shape to be exploded.
6425 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6426 # @return List of IDs of sub-shapes.
6428 # @ref swig_all_decompose "Example"
6429 @ManageTransactions("ShapesOp")
6430 def SubShapeAllSortedCentresIDs(self, aShape, aType):
6432 Explode a shape on sub-shapes of a given type.
6433 Sub-shapes will be sorted taking into account their gravity centers,
6434 to provide stable order of sub-shapes.
6437 aShape Shape to be exploded.
6438 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6441 List of IDs of sub-shapes.
6443 ListIDs = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), True)
6444 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6447 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
6448 # selected by they indices in sorted list of all sub-shapes of type <VAR>aType</VAR>.
6449 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6450 # @param aShape Shape to get sub-shape of.
6451 # @param ListOfInd List of sub-shapes indices.
6452 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6453 # @param theName Object name; when specified, this parameter is used
6454 # for result publication in the study. Otherwise, if automatic
6455 # publication is switched on, default value is used for result name.
6457 # @return A compound of sub-shapes of aShape.
6459 # @ref swig_all_decompose "Example"
6460 def SubShapeSortedCentres(self, aShape, aType, ListOfInd, theName=None):
6462 Obtain a compound of sub-shapes of aShape,
6463 selected by they indices in sorted list of all sub-shapes of type aType.
6464 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6467 aShape Shape to get sub-shape of.
6468 ListOfID List of sub-shapes indices.
6469 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6470 theName Object name; when specified, this parameter is used
6471 for result publication in the study. Otherwise, if automatic
6472 publication is switched on, default value is used for result name.
6475 A compound of sub-shapes of aShape.
6477 # Example: see GEOM_TestAll.py
6479 AllShapeIDsList = self.SubShapeAllSortedCentresIDs(aShape, EnumToLong( aType ))
6480 for ind in ListOfInd:
6481 ListOfIDs.append(AllShapeIDsList[ind - 1])
6482 # note: auto-publishing is done in self.GetSubShape()
6483 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6486 ## Extract shapes (excluding the main shape) of given type.
6487 # @param aShape The shape.
6488 # @param aType The shape type (see ShapeType())
6489 # @param isSorted Boolean flag to switch sorting on/off.
6490 # @param theName Object name; when specified, this parameter is used
6491 # for result publication in the study. Otherwise, if automatic
6492 # publication is switched on, default value is used for result name.
6494 # @return List of sub-shapes of type aType, contained in aShape.
6496 # @ref swig_FilletChamfer "Example"
6497 @ManageTransactions("ShapesOp")
6498 def ExtractShapes(self, aShape, aType, isSorted = False, theName=None):
6500 Extract shapes (excluding the main shape) of given type.
6504 aType The shape type (see geompy.ShapeType)
6505 isSorted Boolean flag to switch sorting on/off.
6506 theName Object name; when specified, this parameter is used
6507 for result publication in the study. Otherwise, if automatic
6508 publication is switched on, default value is used for result name.
6511 List of sub-shapes of type aType, contained in aShape.
6513 # Example: see GEOM_TestAll.py
6514 ListObj = self.ShapesOp.ExtractSubShapes(aShape, EnumToLong( aType ), isSorted)
6515 RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
6516 self._autoPublish(ListObj, theName, "subshape")
6519 ## Get a set of sub-shapes defined by their unique IDs inside <VAR>aShape</VAR>
6520 # @param aShape Main shape.
6521 # @param anIDs List of unique IDs of sub-shapes inside <VAR>aShape</VAR>.
6522 # @param theName Object name; when specified, this parameter is used
6523 # for result publication in the study. Otherwise, if automatic
6524 # publication is switched on, default value is used for result name.
6525 # @return List of GEOM.GEOM_Object, corresponding to found sub-shapes.
6527 # @ref swig_all_decompose "Example"
6528 @ManageTransactions("ShapesOp")
6529 def SubShapes(self, aShape, anIDs, theName=None):
6531 Get a set of sub-shapes defined by their unique IDs inside theMainShape
6535 anIDs List of unique IDs of sub-shapes inside theMainShape.
6536 theName Object name; when specified, this parameter is used
6537 for result publication in the study. Otherwise, if automatic
6538 publication is switched on, default value is used for result name.
6541 List of GEOM.GEOM_Object, corresponding to found sub-shapes.
6543 # Example: see GEOM_TestAll.py
6544 ListObj = self.ShapesOp.MakeSubShapes(aShape, anIDs)
6545 RaiseIfFailed("SubShapes", self.ShapesOp)
6546 self._autoPublish(ListObj, theName, "subshape")
6549 ## Explode a shape into edges sorted in a row from a starting point.
6550 # @param theShape the shape to be exploded on edges.
6551 # @param theStartPoint the starting point.
6552 # @param theName Object name; when specified, this parameter is used
6553 # for result publication in the study. Otherwise, if automatic
6554 # publication is switched on, default value is used for result name.
6555 # @return List of GEOM.GEOM_Object that is actually an ordered list
6556 # of edges sorted in a row from a starting point.
6558 # @ref swig_GetSubShapeEdgeSorted "Example"
6559 @ManageTransactions("ShapesOp")
6560 def GetSubShapeEdgeSorted(self, theShape, theStartPoint, theName=None):
6562 Explode a shape into edges sorted in a row from a starting point.
6565 theShape the shape to be exploded on edges.
6566 theStartPoint the starting point.
6567 theName Object name; when specified, this parameter is used
6568 for result publication in the study. Otherwise, if automatic
6569 publication is switched on, default value is used for result name.
6572 List of GEOM.GEOM_Object that is actually an ordered list
6573 of edges sorted in a row from a starting point.
6575 # Example: see GEOM_TestAll.py
6576 ListObj = self.ShapesOp.GetSubShapeEdgeSorted(theShape, theStartPoint)
6577 RaiseIfFailed("GetSubShapeEdgeSorted", self.ShapesOp)
6578 self._autoPublish(ListObj, theName, "SortedEdges")
6582 # Return the list of subshapes that satisfies a certain tolerance
6583 # criterion. The user defines the type of shapes to be returned, the
6584 # condition and the tolerance value. The operation is defined for
6585 # faces, edges and vertices only. E.g. for theShapeType FACE,
6586 # theCondition GEOM::CC_GT and theTolerance 1.e-7 this method returns
6587 # all faces of theShape that have tolerances greater then 1.e7.
6589 # @param theShape the shape to be exploded
6590 # @param theShapeType the type of sub-shapes to be returned (see
6591 # ShapeType()). Can have the values FACE, EDGE and VERTEX only.
6592 # @param theCondition the condition type (see GEOM::comparison_condition).
6593 # @param theTolerance the tolerance filter.
6594 # @param theName Object name; when specified, this parameter is used
6595 # for result publication in the study. Otherwise, if automatic
6596 # publication is switched on, default value is used for result name.
6597 # @return the list of shapes that satisfy the conditions.
6599 # @ref swig_GetSubShapesWithTolerance "Example"
6600 @ManageTransactions("ShapesOp")
6601 def GetSubShapesWithTolerance(self, theShape, theShapeType,
6602 theCondition, theTolerance, theName=None):
6604 Return the list of subshapes that satisfies a certain tolerance
6605 criterion. The user defines the type of shapes to be returned, the
6606 condition and the tolerance value. The operation is defined for
6607 faces, edges and vertices only. E.g. for theShapeType FACE,
6608 theCondition GEOM::CC_GT and theTolerance 1.e-7 this method returns
6609 all faces of theShape that have tolerances greater then 1.e7.
6612 theShape the shape to be exploded
6613 theShapeType the type of sub-shapes to be returned (see
6614 ShapeType()). Can have the values FACE,
6615 EDGE and VERTEX only.
6616 theCondition the condition type (see GEOM::comparison_condition).
6617 theTolerance the tolerance filter.
6618 theName Object name; when specified, this parameter is used
6619 for result publication in the study. Otherwise, if automatic
6620 publication is switched on, default value is used for result name.
6623 The list of shapes that satisfy the conditions.
6625 # Example: see GEOM_TestAll.py
6626 ListObj = self.ShapesOp.GetSubShapesWithTolerance(theShape, EnumToLong(theShapeType),
6627 theCondition, theTolerance)
6628 RaiseIfFailed("GetSubShapesWithTolerance", self.ShapesOp)
6629 self._autoPublish(ListObj, theName, "SubShapeWithTolerance")
6632 ## Check if the object is a sub-object of another GEOM object.
6633 # @param aSubObject Checked sub-object (or its parent object, in case if
6634 # \a theSubObjectIndex is non-zero).
6635 # @param anObject An object that is checked for ownership (or its parent object,
6636 # in case if \a theObjectIndex is non-zero).
6637 # @param aSubObjectIndex When non-zero, specifies a sub-shape index that
6638 # identifies a sub-object within its parent specified via \a theSubObject.
6639 # @param anObjectIndex When non-zero, specifies a sub-shape index that
6640 # identifies an object within its parent specified via \a theObject.
6641 # @return TRUE, if the given object contains sub-object.
6642 @ManageTransactions("ShapesOp")
6643 def IsSubShapeBelongsTo(self, aSubObject, anObject, aSubObjectIndex = 0, anObjectIndex = 0):
6645 Check if the object is a sub-object of another GEOM object.
6648 aSubObject Checked sub-object (or its parent object, in case if
6649 \a theSubObjectIndex is non-zero).
6650 anObject An object that is checked for ownership (or its parent object,
6651 in case if \a theObjectIndex is non-zero).
6652 aSubObjectIndex When non-zero, specifies a sub-shape index that
6653 identifies a sub-object within its parent specified via \a theSubObject.
6654 anObjectIndex When non-zero, specifies a sub-shape index that
6655 identifies an object within its parent specified via \a theObject.
6658 TRUE, if the given object contains sub-object.
6660 IsOk = self.ShapesOp.IsSubShapeBelongsTo(aSubObject, aSubObjectIndex, anObject, anObjectIndex)
6661 RaiseIfFailed("IsSubShapeBelongsTo", self.ShapesOp)
6664 ## Perform extraction of sub-shapes from the main shape.
6666 # @param theShape the main shape
6667 # @param theListOfID the list of sub-shape IDs to be extracted from
6669 # @return New GEOM.GEOM_Object, containing the shape without
6670 # extracted sub-shapes.
6672 # @ref swig_MakeExtraction "Example"
6673 @ManageTransactions("ShapesOp")
6674 def MakeExtraction(self, theShape, theListOfID, theName=None):
6676 Perform extraction of sub-shapes from the main shape.
6679 theShape the main shape
6680 theListOfID the list of sub-shape IDs to be extracted from
6684 New GEOM.GEOM_Object, containing the shape without
6685 extracted sub-shapes.
6687 # Example: see GEOM_TestAll.py
6688 (anObj, aStat) = self.ShapesOp.MakeExtraction(theShape, theListOfID)
6689 RaiseIfFailed("MakeExtraction", self.ShapesOp)
6690 self._autoPublish(anObj, theName, "Extraction")
6693 # end of l4_decompose
6696 ## @addtogroup l4_decompose_d
6699 ## Deprecated method
6700 # It works like SubShapeAllSortedCentres(), but wrongly
6701 # defines centres of faces, shells and solids.
6702 @ManageTransactions("ShapesOp")
6703 def SubShapeAllSorted(self, aShape, aType, theName=None):
6706 It works like geompy.SubShapeAllSortedCentres, but wrongly
6707 defines centres of faces, shells and solids.
6709 ListObj = self.ShapesOp.MakeExplode(aShape, EnumToLong( aType ), True)
6710 RaiseIfFailed("MakeExplode", self.ShapesOp)
6711 self._autoPublish(ListObj, theName, "subshape")
6714 ## Deprecated method
6715 # It works like SubShapeAllSortedCentresIDs(), but wrongly
6716 # defines centres of faces, shells and solids.
6717 @ManageTransactions("ShapesOp")
6718 def SubShapeAllSortedIDs(self, aShape, aType):
6721 It works like geompy.SubShapeAllSortedCentresIDs, but wrongly
6722 defines centres of faces, shells and solids.
6724 ListIDs = self.ShapesOp.SubShapeAllIDs(aShape, EnumToLong( aType ), True)
6725 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6728 ## Deprecated method
6729 # It works like SubShapeSortedCentres(), but has a bug
6730 # (wrongly defines centres of faces, shells and solids).
6731 def SubShapeSorted(self, aShape, aType, ListOfInd, theName=None):
6734 It works like geompy.SubShapeSortedCentres, but has a bug
6735 (wrongly defines centres of faces, shells and solids).
6738 AllShapeIDsList = self.SubShapeAllSortedIDs(aShape, EnumToLong( aType ))
6739 for ind in ListOfInd:
6740 ListOfIDs.append(AllShapeIDsList[ind - 1])
6741 # note: auto-publishing is done in self.GetSubShape()
6742 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6745 # end of l4_decompose_d
6748 ## @addtogroup l3_healing
6751 ## Apply a sequence of Shape Healing operators to the given object.
6752 # @param theShape Shape to be processed.
6753 # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
6754 # @param theParameters List of names of parameters
6755 # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
6756 # @param theValues List of values of parameters, in the same order
6757 # as parameters are listed in <VAR>theParameters</VAR> list.
6758 # @param theName Object name; when specified, this parameter is used
6759 # for result publication in the study. Otherwise, if automatic
6760 # publication is switched on, default value is used for result name.
6762 # <b> Operators and Parameters: </b> \n
6764 # * \b FixShape - corrects invalid shapes. \n
6765 # - \b FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them. \n
6766 # - \b FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction. \n
6768 # * \b FixFaceSize - removes small faces, such as spots and strips.\n
6769 # - \b FixFaceSize.Tolerance - defines minimum possible face size. \n
6770 # - \b DropSmallEdges - removes edges, which merge with neighbouring edges. \n
6771 # - \b DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.\n
6772 # - \b DropSmallSolids - either removes small solids or merges them with neighboring ones. \n
6773 # - \b DropSmallSolids.WidthFactorThreshold - defines maximum value of <em>2V/S</em> of a solid which is considered small, where \a V is volume and \a S is surface area of the solid. \n
6774 # - \b DropSmallSolids.VolumeThreshold - defines maximum volume of a solid which is considered small. If the both tolerances are privided a solid is considered small if it meets the both criteria. \n
6775 # - \b DropSmallSolids.MergeSolids - if "1", small solids are removed; if "0" small solids are merged to adjacent non-small solids or left untouched if cannot be merged. \n
6777 # * \b SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical
6778 # surfaces in segments using a certain angle. \n
6779 # - \b SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
6780 # if Angle=180, four if Angle=90, etc). \n
6781 # - \b SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.\n
6783 # * \b SplitClosedFaces - splits closed faces in segments.
6784 # The number of segments depends on the number of splitting points.\n
6785 # - \b SplitClosedFaces.NbSplitPoints - the number of splitting points.\n
6787 # * \b SplitContinuity - splits shapes to reduce continuities of curves and surfaces.\n
6788 # - \b SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.\n
6789 # - \b SplitContinuity.SurfaceContinuity - required continuity for surfaces.\n
6790 # - \b SplitContinuity.CurveContinuity - required continuity for curves.\n
6791 # This and the previous parameters can take the following values:\n
6792 # \b Parametric \b Continuity \n
6793 # \b C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces
6794 # are coincidental. The curves or surfaces may still meet at an angle, giving rise to a sharp corner or edge).\n
6795 # \b C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces are parallel,
6796 # ruling out sharp edges).\n
6797 # \b C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves or surfaces
6798 # are of the same magnitude).\n
6799 # \b CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of curves
6800 # or surfaces (d/du C(u)) are the same at junction. \n
6801 # \b Geometric \b Continuity \n
6802 # \b G1: first derivatives are proportional at junction.\n
6803 # The curve tangents thus have the same direction, but not necessarily the same magnitude.
6804 # i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).\n
6805 # \b G2: first and second derivatives are proportional at junction.
6806 # As the names imply, geometric continuity requires the geometry to be continuous, while parametric
6807 # continuity requires that the underlying parameterization was continuous as well.
6808 # Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.\n
6810 # * \b BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:\n
6811 # - \b BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.\n
6812 # - \b BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.\n
6813 # - \b BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.\n
6814 # - \b BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation
6815 # with the specified parameters.\n
6816 # - \b BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation
6817 # with the specified parameters.\n
6818 # - \b BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.\n
6819 # - \b BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.\n
6820 # - \b BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.\n
6821 # - \b BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.\n
6823 # * \b ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.\n
6824 # - \b ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.\n
6825 # - \b ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.\n
6826 # - \b ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.\n
6827 # - \b ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.\n
6829 # * \b SameParameter - fixes edges of 2D and 3D curves not having the same parameter.\n
6830 # - \b SameParameter.Tolerance3d - defines tolerance for fixing of edges.\n
6833 # @return New GEOM.GEOM_Object, containing processed shape.
6835 # \n @ref tui_shape_processing "Example"
6836 @ManageTransactions("HealOp")
6837 def ProcessShape(self, theShape, theOperators, theParameters, theValues, theName=None):
6839 Apply a sequence of Shape Healing operators to the given object.
6842 theShape Shape to be processed.
6843 theValues List of values of parameters, in the same order
6844 as parameters are listed in theParameters list.
6845 theOperators List of names of operators ('FixShape', 'SplitClosedFaces', etc.).
6846 theParameters List of names of parameters
6847 ('FixShape.Tolerance3d', 'SplitClosedFaces.NbSplitPoints', etc.).
6848 theName Object name; when specified, this parameter is used
6849 for result publication in the study. Otherwise, if automatic
6850 publication is switched on, default value is used for result name.
6852 Operators and Parameters:
6854 * FixShape - corrects invalid shapes.
6855 * FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them.
6856 * FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction.
6857 * FixFaceSize - removes small faces, such as spots and strips.
6858 * FixFaceSize.Tolerance - defines minimum possible face size.
6859 * DropSmallEdges - removes edges, which merge with neighbouring edges.
6860 * DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.
6861 * DropSmallSolids - either removes small solids or merges them with neighboring ones.
6862 * DropSmallSolids.WidthFactorThreshold - defines maximum value of 2V/S of a solid which is considered small, where V is volume and S is surface area of the solid.
6863 * DropSmallSolids.VolumeThreshold - defines maximum volume of a solid which is considered small. If the both tolerances are privided a solid is considered small if it meets the both criteria.
6864 * DropSmallSolids.MergeSolids - if '1', small solids are removed; if '0' small solids are merged to adjacent non-small solids or left untouched if cannot be merged.
6866 * SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical surfaces
6867 in segments using a certain angle.
6868 * SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
6869 if Angle=180, four if Angle=90, etc).
6870 * SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.
6871 * SplitClosedFaces - splits closed faces in segments. The number of segments depends on the number of
6873 * SplitClosedFaces.NbSplitPoints - the number of splitting points.
6874 * SplitContinuity - splits shapes to reduce continuities of curves and surfaces.
6875 * SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.
6876 * SplitContinuity.SurfaceContinuity - required continuity for surfaces.
6877 * SplitContinuity.CurveContinuity - required continuity for curves.
6878 This and the previous parameters can take the following values:
6880 Parametric Continuity:
6881 C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces are
6882 coincidental. The curves or surfaces may still meet at an angle,
6883 giving rise to a sharp corner or edge).
6884 C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces
6885 are parallel, ruling out sharp edges).
6886 C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves
6887 or surfaces are of the same magnitude).
6888 CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of
6889 curves or surfaces (d/du C(u)) are the same at junction.
6891 Geometric Continuity:
6892 G1: first derivatives are proportional at junction.
6893 The curve tangents thus have the same direction, but not necessarily the same magnitude.
6894 i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).
6895 G2: first and second derivatives are proportional at junction. As the names imply,
6896 geometric continuity requires the geometry to be continuous, while parametric continuity requires
6897 that the underlying parameterization was continuous as well. Parametric continuity of order n implies
6898 geometric continuity of order n, but not vice-versa.
6899 * BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:
6900 * BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.
6901 * BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.
6902 * BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.
6903 * BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation with
6904 the specified parameters.
6905 * BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation with
6906 the specified parameters.
6907 * BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.
6908 * BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.
6909 * BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.
6910 * BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.
6911 * ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.
6912 * ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.
6913 * ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.
6914 * ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.
6915 * ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.
6916 * SameParameter - fixes edges of 2D and 3D curves not having the same parameter.
6917 * SameParameter.Tolerance3d - defines tolerance for fixing of edges.
6920 New GEOM.GEOM_Object, containing processed shape.
6922 Note: For more information look through SALOME Geometry User's Guide->
6923 -> Introduction to Geometry-> Repairing Operations-> Shape Processing
6925 # Example: see GEOM_TestHealing.py
6926 theValues,Parameters = ParseList(theValues)
6927 anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
6928 # To avoid script failure in case of good argument shape
6929 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
6931 RaiseIfFailed("ProcessShape", self.HealOp)
6932 for string in (theOperators + theParameters):
6933 Parameters = ":" + Parameters
6935 anObj.SetParameters(Parameters)
6936 self._autoPublish(anObj, theName, "healed")
6939 ## Remove faces from the given object (shape).
6940 # @param theObject Shape to be processed.
6941 # @param theFaces Indices of faces to be removed, if EMPTY then the method
6942 # removes ALL faces of the given object.
6943 # @param theName Object name; when specified, this parameter is used
6944 # for result publication in the study. Otherwise, if automatic
6945 # publication is switched on, default value is used for result name.
6947 # @return New GEOM.GEOM_Object, containing processed shape.
6949 # @ref tui_suppress_faces "Example"
6950 @ManageTransactions("HealOp")
6951 def SuppressFaces(self, theObject, theFaces, theName=None):
6953 Remove faces from the given object (shape).
6956 theObject Shape to be processed.
6957 theFaces Indices of faces to be removed, if EMPTY then the method
6958 removes ALL faces of the given object.
6959 theName Object name; when specified, this parameter is used
6960 for result publication in the study. Otherwise, if automatic
6961 publication is switched on, default value is used for result name.
6964 New GEOM.GEOM_Object, containing processed shape.
6966 # Example: see GEOM_TestHealing.py
6967 anObj = self.HealOp.SuppressFaces(theObject, theFaces)
6968 RaiseIfFailed("SuppressFaces", self.HealOp)
6969 self._autoPublish(anObj, theName, "suppressFaces")
6972 ## Sewing of faces into a single shell.
6973 # @param ListShape Shapes to be processed.
6974 # @param theTolerance Required tolerance value.
6975 # @param AllowNonManifold Flag that allows non-manifold sewing.
6976 # @param theName Object name; when specified, this parameter is used
6977 # for result publication in the study. Otherwise, if automatic
6978 # publication is switched on, default value is used for result name.
6980 # @return New GEOM.GEOM_Object, containing a result shell.
6982 # @ref tui_sewing "Example"
6983 def MakeSewing(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
6985 Sewing of faces into a single shell.
6988 ListShape Shapes to be processed.
6989 theTolerance Required tolerance value.
6990 AllowNonManifold Flag that allows non-manifold sewing.
6991 theName Object name; when specified, this parameter is used
6992 for result publication in the study. Otherwise, if automatic
6993 publication is switched on, default value is used for result name.
6996 New GEOM.GEOM_Object, containing containing a result shell.
6998 # Example: see GEOM_TestHealing.py
6999 # note: auto-publishing is done in self.Sew()
7000 anObj = self.Sew(ListShape, theTolerance, AllowNonManifold, theName)
7003 ## Sewing of faces into a single shell.
7004 # @param ListShape Shapes to be processed.
7005 # @param theTolerance Required tolerance value.
7006 # @param AllowNonManifold Flag that allows non-manifold sewing.
7007 # @param theName Object name; when specified, this parameter is used
7008 # for result publication in the study. Otherwise, if automatic
7009 # publication is switched on, default value is used for result name.
7011 # @return New GEOM.GEOM_Object, containing a result shell.
7012 @ManageTransactions("HealOp")
7013 def Sew(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
7015 Sewing of faces into a single shell.
7018 ListShape Shapes to be processed.
7019 theTolerance Required tolerance value.
7020 AllowNonManifold Flag that allows non-manifold sewing.
7021 theName Object name; when specified, this parameter is used
7022 for result publication in the study. Otherwise, if automatic
7023 publication is switched on, default value is used for result name.
7026 New GEOM.GEOM_Object, containing a result shell.
7028 # Example: see MakeSewing() above
7029 theTolerance,Parameters = ParseParameters(theTolerance)
7030 if AllowNonManifold:
7031 anObj = self.HealOp.SewAllowNonManifold( ToList( ListShape ), theTolerance)
7033 anObj = self.HealOp.Sew( ToList( ListShape ), theTolerance)
7034 # To avoid script failure in case of good argument shape
7035 # (Fix of test cases geom/bugs11/L7,L8)
7036 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
7038 RaiseIfFailed("Sew", self.HealOp)
7039 anObj.SetParameters(Parameters)
7040 self._autoPublish(anObj, theName, "sewed")
7043 ## Rebuild the topology of theSolids by removing
7044 # the faces that are shared by several solids.
7045 # @param theSolids A compound or a list of solids to be processed.
7046 # @param theName Object name; when specified, this parameter is used
7047 # for result publication in the study. Otherwise, if automatic
7048 # publication is switched on, default value is used for result name.
7050 # @return New GEOM.GEOM_Object, containing processed shape.
7052 # @ref tui_remove_webs "Example"
7053 @ManageTransactions("HealOp")
7054 def RemoveInternalFaces (self, theSolids, theName=None):
7056 Rebuild the topology of theSolids by removing
7057 the faces that are shared by several solids.
7060 theSolids A compound or a list of solids to be processed.
7061 theName Object name; when specified, this parameter is used
7062 for result publication in the study. Otherwise, if automatic
7063 publication is switched on, default value is used for result name.
7066 New GEOM.GEOM_Object, containing processed shape.
7068 # Example: see GEOM_TestHealing.py
7069 anObj = self.HealOp.RemoveInternalFaces(ToList(theSolids))
7070 RaiseIfFailed("RemoveInternalFaces", self.HealOp)
7071 self._autoPublish(anObj, theName, "removeWebs")
7074 ## Remove internal wires and edges from the given object (face).
7075 # @param theObject Shape to be processed.
7076 # @param theWires Indices of wires to be removed, if EMPTY then the method
7077 # removes ALL internal wires of the given object.
7078 # @param theName Object name; when specified, this parameter is used
7079 # for result publication in the study. Otherwise, if automatic
7080 # publication is switched on, default value is used for result name.
7082 # @return New GEOM.GEOM_Object, containing processed shape.
7084 # @ref tui_suppress_internal_wires "Example"
7085 @ManageTransactions("HealOp")
7086 def SuppressInternalWires(self, theObject, theWires, theName=None):
7088 Remove internal wires and edges from the given object (face).
7091 theObject Shape to be processed.
7092 theWires Indices of wires to be removed, if EMPTY then the method
7093 removes ALL internal wires of the given object.
7094 theName Object name; when specified, this parameter is used
7095 for result publication in the study. Otherwise, if automatic
7096 publication is switched on, default value is used for result name.
7099 New GEOM.GEOM_Object, containing processed shape.
7101 # Example: see GEOM_TestHealing.py
7102 anObj = self.HealOp.RemoveIntWires(theObject, theWires)
7103 RaiseIfFailed("RemoveIntWires", self.HealOp)
7104 self._autoPublish(anObj, theName, "suppressWires")
7107 ## Remove internal closed contours (holes) from the given object.
7108 # @param theObject Shape to be processed.
7109 # @param theWires Indices of wires to be removed, if EMPTY then the method
7110 # removes ALL internal holes of the given object
7111 # @param theName Object name; when specified, this parameter is used
7112 # for result publication in the study. Otherwise, if automatic
7113 # publication is switched on, default value is used for result name.
7115 # @return New GEOM.GEOM_Object, containing processed shape.
7117 # @ref tui_suppress_holes "Example"
7118 @ManageTransactions("HealOp")
7119 def SuppressHoles(self, theObject, theWires, theName=None):
7121 Remove internal closed contours (holes) from the given object.
7124 theObject Shape to be processed.
7125 theWires Indices of wires to be removed, if EMPTY then the method
7126 removes ALL internal holes of the given object
7127 theName Object name; when specified, this parameter is used
7128 for result publication in the study. Otherwise, if automatic
7129 publication is switched on, default value is used for result name.
7132 New GEOM.GEOM_Object, containing processed shape.
7134 # Example: see GEOM_TestHealing.py
7135 anObj = self.HealOp.FillHoles(theObject, theWires)
7136 RaiseIfFailed("FillHoles", self.HealOp)
7137 self._autoPublish(anObj, theName, "suppressHoles")
7140 ## Close an open wire.
7141 # @param theObject Shape to be processed.
7142 # @param theWires Indexes of edge(s) and wire(s) to be closed within <VAR>theObject</VAR>'s shape,
7143 # if [ ], then <VAR>theObject</VAR> itself is a wire.
7144 # @param isCommonVertex If True : closure by creation of a common vertex,
7145 # If False : closure by creation of an edge between ends.
7146 # @param theName Object name; when specified, this parameter is used
7147 # for result publication in the study. Otherwise, if automatic
7148 # publication is switched on, default value is used for result name.
7150 # @return New GEOM.GEOM_Object, containing processed shape.
7152 # @ref tui_close_contour "Example"
7153 @ManageTransactions("HealOp")
7154 def CloseContour(self,theObject, theWires, isCommonVertex, theName=None):
7159 theObject Shape to be processed.
7160 theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape,
7161 if [ ], then theObject itself is a wire.
7162 isCommonVertex If True : closure by creation of a common vertex,
7163 If False : closure by creation of an edge between ends.
7164 theName Object name; when specified, this parameter is used
7165 for result publication in the study. Otherwise, if automatic
7166 publication is switched on, default value is used for result name.
7169 New GEOM.GEOM_Object, containing processed shape.
7171 # Example: see GEOM_TestHealing.py
7172 anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex)
7173 RaiseIfFailed("CloseContour", self.HealOp)
7174 self._autoPublish(anObj, theName, "closeContour")
7177 ## Addition of a point to a given edge object.
7178 # @param theObject Shape to be processed.
7179 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
7180 # if -1, then theObject itself is the edge.
7181 # @param theValue Value of parameter on edge or length parameter,
7182 # depending on \a isByParameter.
7183 # @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1], \n
7184 # if FALSE : \a theValue is treated as a length parameter [0..1]
7185 # @param theName Object name; when specified, this parameter is used
7186 # for result publication in the study. Otherwise, if automatic
7187 # publication is switched on, default value is used for result name.
7189 # @return New GEOM.GEOM_Object, containing processed shape.
7191 # @ref tui_add_point_on_edge "Example"
7192 @ManageTransactions("HealOp")
7193 def DivideEdge(self, theObject, theEdgeIndex, theValue, isByParameter, theName=None):
7195 Addition of a point to a given edge object.
7198 theObject Shape to be processed.
7199 theEdgeIndex Index of edge to be divided within theObject's shape,
7200 if -1, then theObject itself is the edge.
7201 theValue Value of parameter on edge or length parameter,
7202 depending on isByParameter.
7203 isByParameter If TRUE : theValue is treated as a curve parameter [0..1],
7204 if FALSE : theValue is treated as a length parameter [0..1]
7205 theName Object name; when specified, this parameter is used
7206 for result publication in the study. Otherwise, if automatic
7207 publication is switched on, default value is used for result name.
7210 New GEOM.GEOM_Object, containing processed shape.
7212 # Example: see GEOM_TestHealing.py
7213 theEdgeIndex,theValue,isByParameter,Parameters = ParseParameters(theEdgeIndex,theValue,isByParameter)
7214 anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
7215 RaiseIfFailed("DivideEdge", self.HealOp)
7216 anObj.SetParameters(Parameters)
7217 self._autoPublish(anObj, theName, "divideEdge")
7220 ## Addition of points to a given edge of \a theObject by projecting
7221 # other points to the given edge.
7222 # @param theObject Shape to be processed.
7223 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
7224 # if -1, then theObject itself is the edge.
7225 # @param thePoints List of points to project to theEdgeIndex-th edge.
7226 # @param theName Object name; when specified, this parameter is used
7227 # for result publication in the study. Otherwise, if automatic
7228 # publication is switched on, default value is used for result name.
7230 # @return New GEOM.GEOM_Object, containing processed shape.
7232 # @ref tui_add_point_on_edge "Example"
7233 @ManageTransactions("HealOp")
7234 def DivideEdgeByPoint(self, theObject, theEdgeIndex, thePoints, theName=None):
7236 Addition of points to a given edge of \a theObject by projecting
7237 other points to the given edge.
7240 theObject Shape to be processed.
7241 theEdgeIndex The edge or its index to be divided within theObject's shape,
7242 if -1, then theObject itself is the edge.
7243 thePoints List of points to project to theEdgeIndex-th edge.
7244 theName Object name; when specified, this parameter is used
7245 for result publication in the study. Otherwise, if automatic
7246 publication is switched on, default value is used for result name.
7249 New GEOM.GEOM_Object, containing processed shape.
7251 # Example: see GEOM_TestHealing.py
7252 if isinstance( theEdgeIndex, GEOM._objref_GEOM_Object ):
7253 theEdgeIndex = self.GetSubShapeID( theObject, theEdgeIndex )
7254 anObj = self.HealOp.DivideEdgeByPoint(theObject, theEdgeIndex, ToList( thePoints ))
7255 RaiseIfFailed("DivideEdgeByPoint", self.HealOp)
7256 self._autoPublish(anObj, theName, "divideEdge")
7259 ## Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
7260 # @param theWire Wire to minimize the number of C1 continuous edges in.
7261 # @param theVertices A list of vertices to suppress. If the list
7262 # is empty, all vertices in a wire will be assumed.
7263 # @param theName Object name; when specified, this parameter is used
7264 # for result publication in the study. Otherwise, if automatic
7265 # publication is switched on, default value is used for result name.
7267 # @return New GEOM.GEOM_Object with modified wire.
7269 # @ref tui_fuse_collinear_edges "Example"
7270 @ManageTransactions("HealOp")
7271 def FuseCollinearEdgesWithinWire(self, theWire, theVertices = [], theName=None):
7273 Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
7276 theWire Wire to minimize the number of C1 continuous edges in.
7277 theVertices A list of vertices to suppress. If the list
7278 is empty, all vertices in a wire will be assumed.
7279 theName Object name; when specified, this parameter is used
7280 for result publication in the study. Otherwise, if automatic
7281 publication is switched on, default value is used for result name.
7284 New GEOM.GEOM_Object with modified wire.
7286 anObj = self.HealOp.FuseCollinearEdgesWithinWire(theWire, theVertices)
7287 RaiseIfFailed("FuseCollinearEdgesWithinWire", self.HealOp)
7288 self._autoPublish(anObj, theName, "fuseEdges")
7291 ## Change orientation of the given object. Updates given shape.
7292 # @param theObject Shape to be processed.
7293 # @return Updated <var>theObject</var>
7295 # @ref swig_todo "Example"
7296 @ManageTransactions("HealOp")
7297 def ChangeOrientationShell(self,theObject):
7299 Change orientation of the given object. Updates given shape.
7302 theObject Shape to be processed.
7307 theObject = self.HealOp.ChangeOrientation(theObject)
7308 RaiseIfFailed("ChangeOrientation", self.HealOp)
7311 ## Change orientation of the given object.
7312 # @param theObject Shape to be processed.
7313 # @param theName Object name; when specified, this parameter is used
7314 # for result publication in the study. Otherwise, if automatic
7315 # publication is switched on, default value is used for result name.
7317 # @return New GEOM.GEOM_Object, containing processed shape.
7319 # @ref swig_todo "Example"
7320 @ManageTransactions("HealOp")
7321 def ChangeOrientationShellCopy(self, theObject, theName=None):
7323 Change orientation of the given object.
7326 theObject Shape to be processed.
7327 theName Object name; when specified, this parameter is used
7328 for result publication in the study. Otherwise, if automatic
7329 publication is switched on, default value is used for result name.
7332 New GEOM.GEOM_Object, containing processed shape.
7334 anObj = self.HealOp.ChangeOrientationCopy(theObject)
7335 RaiseIfFailed("ChangeOrientationCopy", self.HealOp)
7336 self._autoPublish(anObj, theName, "reversed")
7339 ## Try to limit tolerance of the given object by value \a theTolerance.
7340 # @param theObject Shape to be processed.
7341 # @param theTolerance Required tolerance value.
7342 # @param theName Object name; when specified, this parameter is used
7343 # for result publication in the study. Otherwise, if automatic
7344 # publication is switched on, default value is used for result name.
7346 # @return New GEOM.GEOM_Object, containing processed shape.
7348 # @ref tui_limit_tolerance "Example"
7349 @ManageTransactions("HealOp")
7350 def LimitTolerance(self, theObject, theTolerance = 1e-07, theName=None):
7352 Try to limit tolerance of the given object by value theTolerance.
7355 theObject Shape to be processed.
7356 theTolerance Required tolerance value.
7357 theName Object name; when specified, this parameter is used
7358 for result publication in the study. Otherwise, if automatic
7359 publication is switched on, default value is used for result name.
7362 New GEOM.GEOM_Object, containing processed shape.
7364 anObj = self.HealOp.LimitTolerance(theObject, theTolerance)
7365 RaiseIfFailed("LimitTolerance", self.HealOp)
7366 self._autoPublish(anObj, theName, "limitTolerance")
7369 ## Get a list of wires (wrapped in GEOM.GEOM_Object-s),
7370 # that constitute a free boundary of the given shape.
7371 # @param theObject Shape to get free boundary of.
7372 # @param theName Object name; when specified, this parameter is used
7373 # for result publication in the study. Otherwise, if automatic
7374 # publication is switched on, default value is used for result name.
7376 # @return [\a status, \a theClosedWires, \a theOpenWires]
7377 # \n \a status: FALSE, if an error(s) occured during the method execution.
7378 # \n \a theClosedWires: Closed wires on the free boundary of the given shape.
7379 # \n \a theOpenWires: Open wires on the free boundary of the given shape.
7381 # @ref tui_free_boundaries_page "Example"
7382 @ManageTransactions("HealOp")
7383 def GetFreeBoundary(self, theObject, theName=None):
7385 Get a list of wires (wrapped in GEOM.GEOM_Object-s),
7386 that constitute a free boundary of the given shape.
7389 theObject Shape to get free boundary of.
7390 theName Object name; when specified, this parameter is used
7391 for result publication in the study. Otherwise, if automatic
7392 publication is switched on, default value is used for result name.
7395 [status, theClosedWires, theOpenWires]
7396 status: FALSE, if an error(s) occured during the method execution.
7397 theClosedWires: Closed wires on the free boundary of the given shape.
7398 theOpenWires: Open wires on the free boundary of the given shape.
7400 # Example: see GEOM_TestHealing.py
7401 anObj = self.HealOp.GetFreeBoundary( ToList( theObject ))
7402 RaiseIfFailed("GetFreeBoundary", self.HealOp)
7403 self._autoPublish(anObj[1], theName, "closedWire")
7404 self._autoPublish(anObj[2], theName, "openWire")
7407 ## Replace coincident faces in \a theShapes by one face.
7408 # @param theShapes Initial shapes, either a list or compound of shapes.
7409 # @param theTolerance Maximum distance between faces, which can be considered as coincident.
7410 # @param doKeepNonSolids If FALSE, only solids will present in the result,
7411 # otherwise all initial shapes.
7412 # @param theName Object name; when specified, this parameter is used
7413 # for result publication in the study. Otherwise, if automatic
7414 # publication is switched on, default value is used for result name.
7416 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7418 # @ref tui_glue_faces "Example"
7419 @ManageTransactions("ShapesOp")
7420 def MakeGlueFaces(self, theShapes, theTolerance, doKeepNonSolids=True, theName=None):
7422 Replace coincident faces in theShapes by one face.
7425 theShapes Initial shapes, either a list or compound of shapes.
7426 theTolerance Maximum distance between faces, which can be considered as coincident.
7427 doKeepNonSolids If FALSE, only solids will present in the result,
7428 otherwise all initial shapes.
7429 theName Object name; when specified, this parameter is used
7430 for result publication in the study. Otherwise, if automatic
7431 publication is switched on, default value is used for result name.
7434 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7436 # Example: see GEOM_Spanner.py
7437 theTolerance,Parameters = ParseParameters(theTolerance)
7438 anObj = self.ShapesOp.MakeGlueFaces(ToList(theShapes), theTolerance, doKeepNonSolids)
7440 raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
7441 anObj.SetParameters(Parameters)
7442 self._autoPublish(anObj, theName, "glueFaces")
7445 ## Find coincident faces in \a theShapes for possible gluing.
7446 # @param theShapes Initial shapes, either a list or compound of shapes.
7447 # @param theTolerance Maximum distance between faces,
7448 # which can be considered as coincident.
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 GEOM.ListOfGO
7455 # @ref tui_glue_faces "Example"
7456 @ManageTransactions("ShapesOp")
7457 def GetGlueFaces(self, theShapes, theTolerance, theName=None):
7459 Find coincident faces in theShapes for possible gluing.
7462 theShapes Initial shapes, either a list or compound of shapes.
7463 theTolerance Maximum distance between faces,
7464 which can be considered as coincident.
7465 theName Object name; when specified, this parameter is used
7466 for result publication in the study. Otherwise, if automatic
7467 publication is switched on, default value is used for result name.
7472 anObj = self.ShapesOp.GetGlueFaces(ToList(theShapes), theTolerance)
7473 RaiseIfFailed("GetGlueFaces", self.ShapesOp)
7474 self._autoPublish(anObj, theName, "facesToGlue")
7477 ## Replace coincident faces in \a theShapes by one face
7478 # in compliance with given list of faces
7479 # @param theShapes Initial shapes, either a list or compound of shapes.
7480 # @param theTolerance Maximum distance between faces,
7481 # which can be considered as coincident.
7482 # @param theFaces List of faces for gluing.
7483 # @param doKeepNonSolids If FALSE, only solids will present in the result,
7484 # otherwise all initial shapes.
7485 # @param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
7486 # will be glued, otherwise only the edges,
7487 # belonging to <VAR>theFaces</VAR>.
7488 # @param theName Object name; when specified, this parameter is used
7489 # for result publication in the study. Otherwise, if automatic
7490 # publication is switched on, default value is used for result name.
7492 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7494 # @ref tui_glue_faces "Example"
7495 @ManageTransactions("ShapesOp")
7496 def MakeGlueFacesByList(self, theShapes, theTolerance, theFaces,
7497 doKeepNonSolids=True, doGlueAllEdges=True, theName=None):
7499 Replace coincident faces in theShapes by one face
7500 in compliance with given list of faces
7503 theShapes theShapes Initial shapes, either a list or compound of shapes.
7504 theTolerance Maximum distance between faces,
7505 which can be considered as coincident.
7506 theFaces List of faces for gluing.
7507 doKeepNonSolids If FALSE, only solids will present in the result,
7508 otherwise all initial shapes.
7509 doGlueAllEdges If TRUE, all coincident edges of theShape
7510 will be glued, otherwise only the edges,
7511 belonging to theFaces.
7512 theName Object name; when specified, this parameter is used
7513 for result publication in the study. Otherwise, if automatic
7514 publication is switched on, default value is used for result name.
7517 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7519 anObj = self.ShapesOp.MakeGlueFacesByList(ToList(theShapes), theTolerance, ToList(theFaces),
7520 doKeepNonSolids, doGlueAllEdges)
7522 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
7523 self._autoPublish(anObj, theName, "glueFaces")
7526 ## Replace coincident edges in \a theShapes by one edge.
7527 # @param theShapes Initial shapes, either a list or compound of shapes.
7528 # @param theTolerance Maximum distance between edges, which can be considered as coincident.
7529 # @param theName Object name; when specified, this parameter is used
7530 # for result publication in the study. Otherwise, if automatic
7531 # publication is switched on, default value is used for result name.
7533 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7535 # @ref tui_glue_edges "Example"
7536 @ManageTransactions("ShapesOp")
7537 def MakeGlueEdges(self, theShapes, theTolerance, theName=None):
7539 Replace coincident edges in theShapes by one edge.
7542 theShapes Initial shapes, either a list or compound of shapes.
7543 theTolerance Maximum distance between edges, which can be considered as coincident.
7544 theName Object name; when specified, this parameter is used
7545 for result publication in the study. Otherwise, if automatic
7546 publication is switched on, default value is used for result name.
7549 New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7551 theTolerance,Parameters = ParseParameters(theTolerance)
7552 anObj = self.ShapesOp.MakeGlueEdges(ToList(theShapes), theTolerance)
7554 raise RuntimeError, "MakeGlueEdges : " + self.ShapesOp.GetErrorCode()
7555 anObj.SetParameters(Parameters)
7556 self._autoPublish(anObj, theName, "glueEdges")
7559 ## Find coincident edges in \a theShapes for possible gluing.
7560 # @param theShapes Initial shapes, either a list or compound of shapes.
7561 # @param theTolerance Maximum distance between edges,
7562 # which can be considered as coincident.
7563 # @param theName Object name; when specified, this parameter is used
7564 # for result publication in the study. Otherwise, if automatic
7565 # publication is switched on, default value is used for result name.
7567 # @return GEOM.ListOfGO
7569 # @ref tui_glue_edges "Example"
7570 @ManageTransactions("ShapesOp")
7571 def GetGlueEdges(self, theShapes, theTolerance, theName=None):
7573 Find coincident edges in theShapes for possible gluing.
7576 theShapes Initial shapes, either a list or compound of shapes.
7577 theTolerance Maximum distance between edges,
7578 which can be considered as coincident.
7579 theName Object name; when specified, this parameter is used
7580 for result publication in the study. Otherwise, if automatic
7581 publication is switched on, default value is used for result name.
7586 anObj = self.ShapesOp.GetGlueEdges(ToList(theShapes), theTolerance)
7587 RaiseIfFailed("GetGlueEdges", self.ShapesOp)
7588 self._autoPublish(anObj, theName, "edgesToGlue")
7591 ## Replace coincident edges in theShapes by one edge
7592 # in compliance with given list of edges.
7593 # @param theShapes Initial shapes, either a list or compound of shapes.
7594 # @param theTolerance Maximum distance between edges,
7595 # which can be considered as coincident.
7596 # @param theEdges List of edges for gluing.
7597 # @param theName Object name; when specified, this parameter is used
7598 # for result publication in the study. Otherwise, if automatic
7599 # publication is switched on, default value is used for result name.
7601 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7603 # @ref tui_glue_edges "Example"
7604 @ManageTransactions("ShapesOp")
7605 def MakeGlueEdgesByList(self, theShapes, theTolerance, theEdges, theName=None):
7607 Replace coincident edges in theShapes by one edge
7608 in compliance with given list of edges.
7611 theShapes Initial shapes, either a list or compound of shapes.
7612 theTolerance Maximum distance between edges,
7613 which can be considered as coincident.
7614 theEdges List of edges for gluing.
7615 theName Object name; when specified, this parameter is used
7616 for result publication in the study. Otherwise, if automatic
7617 publication is switched on, default value is used for result name.
7620 New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7622 anObj = self.ShapesOp.MakeGlueEdgesByList(ToList(theShapes), theTolerance, theEdges)
7624 raise RuntimeError, "MakeGlueEdgesByList : " + self.ShapesOp.GetErrorCode()
7625 self._autoPublish(anObj, theName, "glueEdges")
7631 ## @addtogroup l3_boolean Boolean Operations
7634 # -----------------------------------------------------------------------------
7635 # Boolean (Common, Cut, Fuse, Section)
7636 # -----------------------------------------------------------------------------
7638 ## Perform one of boolean operations on two given shapes.
7639 # @param theShape1 First argument for boolean operation.
7640 # @param theShape2 Second argument for boolean operation.
7641 # @param theOperation Indicates the operation to be done:\n
7642 # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
7643 # @param checkSelfInte The flag that tells if the arguments should
7644 # be checked for self-intersection prior to the operation.
7645 # @param theName Object name; when specified, this parameter is used
7646 # for result publication in the study. Otherwise, if automatic
7647 # publication is switched on, default value is used for result name.
7649 # @note This algorithm doesn't find all types of self-intersections.
7650 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7651 # vertex/face and edge/face intersections. Face/face
7652 # intersections detection is switched off as it is a
7653 # time-consuming operation that gives an impact on performance.
7654 # To find all self-intersections please use
7655 # CheckSelfIntersections() method.
7657 # @return New GEOM.GEOM_Object, containing the result shape.
7659 # @ref tui_fuse "Example"
7660 @ManageTransactions("BoolOp")
7661 def MakeBoolean(self, theShape1, theShape2, theOperation, checkSelfInte=False, theName=None):
7663 Perform one of boolean operations on two given shapes.
7666 theShape1 First argument for boolean operation.
7667 theShape2 Second argument for boolean operation.
7668 theOperation Indicates the operation to be done:
7669 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
7670 checkSelfInte The flag that tells if the arguments should
7671 be checked for self-intersection prior to
7673 theName Object name; when specified, this parameter is used
7674 for result publication in the study. Otherwise, if automatic
7675 publication is switched on, default value is used for result name.
7678 This algorithm doesn't find all types of self-intersections.
7679 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7680 vertex/face and edge/face intersections. Face/face
7681 intersections detection is switched off as it is a
7682 time-consuming operation that gives an impact on performance.
7683 To find all self-intersections please use
7684 CheckSelfIntersections() method.
7687 New GEOM.GEOM_Object, containing the result shape.
7689 # Example: see GEOM_TestAll.py
7690 anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation, checkSelfInte)
7691 RaiseIfFailed("MakeBoolean", self.BoolOp)
7692 def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
7693 self._autoPublish(anObj, theName, def_names[theOperation])
7696 ## Perform Common boolean operation on two given shapes.
7697 # @param theShape1 First argument for boolean operation.
7698 # @param theShape2 Second argument for boolean operation.
7699 # @param checkSelfInte The flag that tells if the arguments should
7700 # be checked for self-intersection prior to the operation.
7701 # @param theName Object name; when specified, this parameter is used
7702 # for result publication in the study. Otherwise, if automatic
7703 # publication is switched on, default value is used for result name.
7705 # @note This algorithm doesn't find all types of self-intersections.
7706 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7707 # vertex/face and edge/face intersections. Face/face
7708 # intersections detection is switched off as it is a
7709 # time-consuming operation that gives an impact on performance.
7710 # To find all self-intersections please use
7711 # CheckSelfIntersections() method.
7713 # @return New GEOM.GEOM_Object, containing the result shape.
7715 # @ref tui_common "Example 1"
7716 # \n @ref swig_MakeCommon "Example 2"
7717 def MakeCommon(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7719 Perform Common boolean operation on two given shapes.
7722 theShape1 First argument for boolean operation.
7723 theShape2 Second argument for boolean operation.
7724 checkSelfInte The flag that tells if the arguments should
7725 be checked for self-intersection prior to
7727 theName Object name; when specified, this parameter is used
7728 for result publication in the study. Otherwise, if automatic
7729 publication is switched on, default value is used for result name.
7732 This algorithm doesn't find all types of self-intersections.
7733 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7734 vertex/face and edge/face intersections. Face/face
7735 intersections detection is switched off as it is a
7736 time-consuming operation that gives an impact on performance.
7737 To find all self-intersections please use
7738 CheckSelfIntersections() method.
7741 New GEOM.GEOM_Object, containing the result shape.
7743 # Example: see GEOM_TestOthers.py
7744 # note: auto-publishing is done in self.MakeBoolean()
7745 return self.MakeBoolean(theShape1, theShape2, 1, checkSelfInte, theName)
7747 ## Perform Cut boolean operation on two given shapes.
7748 # @param theShape1 First argument for boolean operation.
7749 # @param theShape2 Second argument for boolean operation.
7750 # @param checkSelfInte The flag that tells if the arguments should
7751 # be checked for self-intersection prior to the operation.
7752 # @param theName Object name; when specified, this parameter is used
7753 # for result publication in the study. Otherwise, if automatic
7754 # publication is switched on, default value is used for result name.
7756 # @note This algorithm doesn't find all types of self-intersections.
7757 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7758 # vertex/face and edge/face intersections. Face/face
7759 # intersections detection is switched off as it is a
7760 # time-consuming operation that gives an impact on performance.
7761 # To find all self-intersections please use
7762 # CheckSelfIntersections() method.
7764 # @return New GEOM.GEOM_Object, containing the result shape.
7766 # @ref tui_cut "Example 1"
7767 # \n @ref swig_MakeCommon "Example 2"
7768 def MakeCut(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7770 Perform Cut boolean operation on two given shapes.
7773 theShape1 First argument for boolean operation.
7774 theShape2 Second argument for boolean operation.
7775 checkSelfInte The flag that tells if the arguments should
7776 be checked for self-intersection prior to
7778 theName Object name; when specified, this parameter is used
7779 for result publication in the study. Otherwise, if automatic
7780 publication is switched on, default value is used for result name.
7783 This algorithm doesn't find all types of self-intersections.
7784 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7785 vertex/face and edge/face intersections. Face/face
7786 intersections detection is switched off as it is a
7787 time-consuming operation that gives an impact on performance.
7788 To find all self-intersections please use
7789 CheckSelfIntersections() method.
7792 New GEOM.GEOM_Object, containing the result shape.
7795 # Example: see GEOM_TestOthers.py
7796 # note: auto-publishing is done in self.MakeBoolean()
7797 return self.MakeBoolean(theShape1, theShape2, 2, checkSelfInte, theName)
7799 ## Perform Fuse boolean operation on two given shapes.
7800 # @param theShape1 First argument for boolean operation.
7801 # @param theShape2 Second argument for boolean operation.
7802 # @param checkSelfInte The flag that tells if the arguments should
7803 # be checked for self-intersection prior to the operation.
7804 # @param rmExtraEdges The flag that tells if Remove Extra Edges
7805 # operation should be performed during the operation.
7806 # @param theName Object name; when specified, this parameter is used
7807 # for result publication in the study. Otherwise, if automatic
7808 # publication is switched on, default value is used for result name.
7810 # @note This algorithm doesn't find all types of self-intersections.
7811 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7812 # vertex/face and edge/face intersections. Face/face
7813 # intersections detection is switched off as it is a
7814 # time-consuming operation that gives an impact on performance.
7815 # To find all self-intersections please use
7816 # CheckSelfIntersections() method.
7818 # @return New GEOM.GEOM_Object, containing the result shape.
7820 # @ref tui_fuse "Example 1"
7821 # \n @ref swig_MakeCommon "Example 2"
7822 @ManageTransactions("BoolOp")
7823 def MakeFuse(self, theShape1, theShape2, checkSelfInte=False,
7824 rmExtraEdges=False, theName=None):
7826 Perform Fuse boolean operation on two given shapes.
7829 theShape1 First argument for boolean operation.
7830 theShape2 Second argument for boolean operation.
7831 checkSelfInte The flag that tells if the arguments should
7832 be checked for self-intersection prior to
7834 rmExtraEdges The flag that tells if Remove Extra Edges
7835 operation should be performed during the operation.
7836 theName Object name; when specified, this parameter is used
7837 for result publication in the study. Otherwise, if automatic
7838 publication is switched on, default value is used for result name.
7841 This algorithm doesn't find all types of self-intersections.
7842 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7843 vertex/face and edge/face intersections. Face/face
7844 intersections detection is switched off as it is a
7845 time-consuming operation that gives an impact on performance.
7846 To find all self-intersections please use
7847 CheckSelfIntersections() method.
7850 New GEOM.GEOM_Object, containing the result shape.
7853 # Example: see GEOM_TestOthers.py
7854 anObj = self.BoolOp.MakeFuse(theShape1, theShape2,
7855 checkSelfInte, rmExtraEdges)
7856 RaiseIfFailed("MakeFuse", self.BoolOp)
7857 self._autoPublish(anObj, theName, "fuse")
7860 ## Perform Section boolean operation on two given shapes.
7861 # @param theShape1 First argument for boolean operation.
7862 # @param theShape2 Second argument for boolean operation.
7863 # @param checkSelfInte The flag that tells if the arguments should
7864 # be checked for self-intersection prior to the operation.
7865 # If a self-intersection detected the operation fails.
7866 # @param theName Object name; when specified, this parameter is used
7867 # for result publication in the study. Otherwise, if automatic
7868 # publication is switched on, default value is used for result name.
7869 # @return New GEOM.GEOM_Object, containing the result shape.
7871 # @ref tui_section "Example 1"
7872 # \n @ref swig_MakeCommon "Example 2"
7873 def MakeSection(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7875 Perform Section boolean operation on two given shapes.
7878 theShape1 First argument for boolean operation.
7879 theShape2 Second argument for boolean operation.
7880 checkSelfInte The flag that tells if the arguments should
7881 be checked for self-intersection prior to the operation.
7882 If a self-intersection detected the operation fails.
7883 theName Object name; when specified, this parameter is used
7884 for result publication in the study. Otherwise, if automatic
7885 publication is switched on, default value is used for result name.
7887 New GEOM.GEOM_Object, containing the result shape.
7890 # Example: see GEOM_TestOthers.py
7891 # note: auto-publishing is done in self.MakeBoolean()
7892 return self.MakeBoolean(theShape1, theShape2, 4, checkSelfInte, theName)
7894 ## Perform Fuse boolean operation on the list of shapes.
7895 # @param theShapesList Shapes to be fused.
7896 # @param checkSelfInte The flag that tells if the arguments should
7897 # be checked for self-intersection prior to the operation.
7898 # @param rmExtraEdges The flag that tells if Remove Extra Edges
7899 # operation should be performed during the operation.
7900 # @param theName Object name; when specified, this parameter is used
7901 # for result publication in the study. Otherwise, if automatic
7902 # publication is switched on, default value is used for result name.
7904 # @note This algorithm doesn't find all types of self-intersections.
7905 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7906 # vertex/face and edge/face intersections. Face/face
7907 # intersections detection is switched off as it is a
7908 # time-consuming operation that gives an impact on performance.
7909 # To find all self-intersections please use
7910 # CheckSelfIntersections() method.
7912 # @return New GEOM.GEOM_Object, containing the result shape.
7914 # @ref tui_fuse "Example 1"
7915 # \n @ref swig_MakeCommon "Example 2"
7916 @ManageTransactions("BoolOp")
7917 def MakeFuseList(self, theShapesList, checkSelfInte=False,
7918 rmExtraEdges=False, theName=None):
7920 Perform Fuse boolean operation on the list of shapes.
7923 theShapesList Shapes to be fused.
7924 checkSelfInte The flag that tells if the arguments should
7925 be checked for self-intersection prior to
7927 rmExtraEdges The flag that tells if Remove Extra Edges
7928 operation should be performed during the operation.
7929 theName Object name; when specified, this parameter is used
7930 for result publication in the study. Otherwise, if automatic
7931 publication is switched on, default value is used for result name.
7934 This algorithm doesn't find all types of self-intersections.
7935 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7936 vertex/face and edge/face intersections. Face/face
7937 intersections detection is switched off as it is a
7938 time-consuming operation that gives an impact on performance.
7939 To find all self-intersections please use
7940 CheckSelfIntersections() method.
7943 New GEOM.GEOM_Object, containing the result shape.
7946 # Example: see GEOM_TestOthers.py
7947 anObj = self.BoolOp.MakeFuseList(theShapesList, checkSelfInte,
7949 RaiseIfFailed("MakeFuseList", self.BoolOp)
7950 self._autoPublish(anObj, theName, "fuse")
7953 ## Perform Common boolean operation on the list of shapes.
7954 # @param theShapesList Shapes for Common operation.
7955 # @param checkSelfInte The flag that tells if the arguments should
7956 # be checked for self-intersection prior to the operation.
7957 # @param theName Object name; when specified, this parameter is used
7958 # for result publication in the study. Otherwise, if automatic
7959 # publication is switched on, default value is used for result name.
7961 # @note This algorithm doesn't find all types of self-intersections.
7962 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7963 # vertex/face and edge/face intersections. Face/face
7964 # intersections detection is switched off as it is a
7965 # time-consuming operation that gives an impact on performance.
7966 # To find all self-intersections please use
7967 # CheckSelfIntersections() method.
7969 # @return New GEOM.GEOM_Object, containing the result shape.
7971 # @ref tui_common "Example 1"
7972 # \n @ref swig_MakeCommon "Example 2"
7973 @ManageTransactions("BoolOp")
7974 def MakeCommonList(self, theShapesList, checkSelfInte=False, theName=None):
7976 Perform Common boolean operation on the list of shapes.
7979 theShapesList Shapes for Common operation.
7980 checkSelfInte The flag that tells if the arguments should
7981 be checked for self-intersection prior to
7983 theName Object name; when specified, this parameter is used
7984 for result publication in the study. Otherwise, if automatic
7985 publication is switched on, default value is used for result name.
7988 This algorithm doesn't find all types of self-intersections.
7989 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7990 vertex/face and edge/face intersections. Face/face
7991 intersections detection is switched off as it is a
7992 time-consuming operation that gives an impact on performance.
7993 To find all self-intersections please use
7994 CheckSelfIntersections() method.
7997 New GEOM.GEOM_Object, containing the result shape.
8000 # Example: see GEOM_TestOthers.py
8001 anObj = self.BoolOp.MakeCommonList(theShapesList, checkSelfInte)
8002 RaiseIfFailed("MakeCommonList", self.BoolOp)
8003 self._autoPublish(anObj, theName, "common")
8006 ## Perform Cut boolean operation on one object and the list of tools.
8007 # @param theMainShape The object of the operation.
8008 # @param theShapesList The list of tools of the operation.
8009 # @param checkSelfInte The flag that tells if the arguments should
8010 # be checked for self-intersection prior to the operation.
8011 # @param theName Object name; when specified, this parameter is used
8012 # for result publication in the study. Otherwise, if automatic
8013 # publication is switched on, default value is used for result name.
8015 # @note This algorithm doesn't find all types of self-intersections.
8016 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8017 # vertex/face and edge/face intersections. Face/face
8018 # intersections detection is switched off as it is a
8019 # time-consuming operation that gives an impact on performance.
8020 # To find all self-intersections please use
8021 # CheckSelfIntersections() method.
8023 # @return New GEOM.GEOM_Object, containing the result shape.
8025 # @ref tui_cut "Example 1"
8026 # \n @ref swig_MakeCommon "Example 2"
8027 @ManageTransactions("BoolOp")
8028 def MakeCutList(self, theMainShape, theShapesList, checkSelfInte=False, theName=None):
8030 Perform Cut boolean operation on one object and the list of tools.
8033 theMainShape The object of the operation.
8034 theShapesList The list of tools of the operation.
8035 checkSelfInte The flag that tells if the arguments should
8036 be checked for self-intersection prior to
8038 theName Object name; when specified, this parameter is used
8039 for result publication in the study. Otherwise, if automatic
8040 publication is switched on, default value is used for result name.
8043 This algorithm doesn't find all types of self-intersections.
8044 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8045 vertex/face and edge/face intersections. Face/face
8046 intersections detection is switched off as it is a
8047 time-consuming operation that gives an impact on performance.
8048 To find all self-intersections please use
8049 CheckSelfIntersections() method.
8052 New GEOM.GEOM_Object, containing the result shape.
8055 # Example: see GEOM_TestOthers.py
8056 anObj = self.BoolOp.MakeCutList(theMainShape, theShapesList, checkSelfInte)
8057 RaiseIfFailed("MakeCutList", self.BoolOp)
8058 self._autoPublish(anObj, theName, "cut")
8064 ## @addtogroup l3_basic_op
8067 ## Perform partition operation.
8068 # @param ListShapes Shapes to be intersected.
8069 # @param ListTools Shapes to intersect theShapes.
8070 # @param Limit Type of resulting shapes (see ShapeType()).\n
8071 # If this parameter is set to -1 ("Auto"), most appropriate shape limit
8072 # type will be detected automatically.
8073 # @param KeepNonlimitShapes if this parameter == 0, then only shapes of
8074 # target type (equal to Limit) are kept in the result,
8075 # else standalone shapes of lower dimension
8076 # are kept also (if they exist).
8078 # @param theName Object name; when specified, this parameter is used
8079 # for result publication in the study. Otherwise, if automatic
8080 # publication is switched on, default value is used for result name.
8082 # @note Each compound from ListShapes and ListTools will be exploded
8083 # in order to avoid possible intersection between shapes from this compound.
8085 # After implementation new version of PartitionAlgo (October 2006)
8086 # other parameters are ignored by current functionality. They are kept
8087 # in this function only for support old versions.
8088 # @param ListKeepInside Shapes, outside which the results will be deleted.
8089 # Each shape from theKeepInside must belong to theShapes also.
8090 # @param ListRemoveInside Shapes, inside which the results will be deleted.
8091 # Each shape from theRemoveInside must belong to theShapes also.
8092 # @param RemoveWebs If TRUE, perform Glue 3D algorithm.
8093 # @param ListMaterials Material indices for each shape. Make sence,
8094 # only if theRemoveWebs is TRUE.
8096 # @return New GEOM.GEOM_Object, containing the result shapes.
8098 # @ref tui_partition "Example"
8099 @ManageTransactions("BoolOp")
8100 def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
8101 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
8102 KeepNonlimitShapes=0, theName=None):
8104 Perform partition operation.
8107 ListShapes Shapes to be intersected.
8108 ListTools Shapes to intersect theShapes.
8109 Limit Type of resulting shapes (see geompy.ShapeType)
8110 If this parameter is set to -1 ("Auto"), most appropriate shape limit
8111 type will be detected automatically.
8112 KeepNonlimitShapes if this parameter == 0, then only shapes of
8113 target type (equal to Limit) are kept in the result,
8114 else standalone shapes of lower dimension
8115 are kept also (if they exist).
8117 theName Object name; when specified, this parameter is used
8118 for result publication in the study. Otherwise, if automatic
8119 publication is switched on, default value is used for result name.
8121 Each compound from ListShapes and ListTools will be exploded
8122 in order to avoid possible intersection between shapes from
8125 After implementation new version of PartitionAlgo (October 2006) other
8126 parameters are ignored by current functionality. They are kept in this
8127 function only for support old versions.
8130 ListKeepInside Shapes, outside which the results will be deleted.
8131 Each shape from theKeepInside must belong to theShapes also.
8132 ListRemoveInside Shapes, inside which the results will be deleted.
8133 Each shape from theRemoveInside must belong to theShapes also.
8134 RemoveWebs If TRUE, perform Glue 3D algorithm.
8135 ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
8138 New GEOM.GEOM_Object, containing the result shapes.
8140 # Example: see GEOM_TestAll.py
8141 if Limit == self.ShapeType["AUTO"]:
8142 # automatic detection of the most appropriate shape limit type
8144 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
8145 Limit = EnumToLong(lim)
8147 anObj = self.BoolOp.MakePartition(ListShapes, ListTools,
8148 ListKeepInside, ListRemoveInside,
8149 Limit, RemoveWebs, ListMaterials,
8150 KeepNonlimitShapes);
8151 RaiseIfFailed("MakePartition", self.BoolOp)
8152 self._autoPublish(anObj, theName, "partition")
8155 ## Perform partition operation.
8156 # This method may be useful if it is needed to make a partition for
8157 # compound contains nonintersected shapes. Performance will be better
8158 # since intersection between shapes from compound is not performed.
8160 # Description of all parameters as in previous method MakePartition().
8161 # One additional parameter is provided:
8162 # @param checkSelfInte The flag that tells if the arguments should
8163 # be checked for self-intersection prior to the operation.
8165 # @note This algorithm doesn't find all types of self-intersections.
8166 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8167 # vertex/face and edge/face intersections. Face/face
8168 # intersections detection is switched off as it is a
8169 # time-consuming operation that gives an impact on performance.
8170 # To find all self-intersections please use
8171 # CheckSelfIntersections() method.
8173 # @note Passed compounds (via ListShapes or via ListTools)
8174 # have to consist of nonintersecting shapes.
8176 # @return New GEOM.GEOM_Object, containing the result shapes.
8178 # @ref swig_todo "Example"
8179 @ManageTransactions("BoolOp")
8180 def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
8181 ListKeepInside=[], ListRemoveInside=[],
8182 Limit=ShapeType["AUTO"], RemoveWebs=0,
8183 ListMaterials=[], KeepNonlimitShapes=0,
8184 checkSelfInte=False, theName=None):
8186 Perform partition operation.
8187 This method may be useful if it is needed to make a partition for
8188 compound contains nonintersected shapes. Performance will be better
8189 since intersection between shapes from compound is not performed.
8192 Description of all parameters as in method geompy.MakePartition.
8193 One additional parameter is provided:
8194 checkSelfInte The flag that tells if the arguments should
8195 be checked for self-intersection prior to
8199 This algorithm doesn't find all types of self-intersections.
8200 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8201 vertex/face and edge/face intersections. Face/face
8202 intersections detection is switched off as it is a
8203 time-consuming operation that gives an impact on performance.
8204 To find all self-intersections please use
8205 CheckSelfIntersections() method.
8208 Passed compounds (via ListShapes or via ListTools)
8209 have to consist of nonintersecting shapes.
8212 New GEOM.GEOM_Object, containing the result shapes.
8214 if Limit == self.ShapeType["AUTO"]:
8215 # automatic detection of the most appropriate shape limit type
8217 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
8218 Limit = EnumToLong(lim)
8220 anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
8221 ListKeepInside, ListRemoveInside,
8222 Limit, RemoveWebs, ListMaterials,
8223 KeepNonlimitShapes, checkSelfInte);
8224 RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
8225 self._autoPublish(anObj, theName, "partition")
8228 ## See method MakePartition() for more information.
8230 # @ref tui_partition "Example 1"
8231 # \n @ref swig_Partition "Example 2"
8232 def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
8233 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
8234 KeepNonlimitShapes=0, theName=None):
8236 See method geompy.MakePartition for more information.
8238 # Example: see GEOM_TestOthers.py
8239 # note: auto-publishing is done in self.MakePartition()
8240 anObj = self.MakePartition(ListShapes, ListTools,
8241 ListKeepInside, ListRemoveInside,
8242 Limit, RemoveWebs, ListMaterials,
8243 KeepNonlimitShapes, theName);
8246 ## Perform partition of the Shape with the Plane
8247 # @param theShape Shape to be intersected.
8248 # @param thePlane Tool shape, to intersect theShape.
8249 # @param theName Object name; when specified, this parameter is used
8250 # for result publication in the study. Otherwise, if automatic
8251 # publication is switched on, default value is used for result name.
8253 # @return New GEOM.GEOM_Object, containing the result shape.
8255 # @note This operation is a shortcut to the more general @ref MakePartition
8256 # operation, where @a theShape specifies single "object" (shape being partitioned)
8257 # and @a thePlane specifies single "tool" (intersector shape). Other parameters of
8258 # @ref MakePartition operation have default values:
8259 # - @a Limit: GEOM::SHAPE (shape limit corresponds to the type of @a theShape)
8260 # - @a KeepNonlimitShapes: 0
8261 # - @a KeepInside, @a RemoveInside, @a RemoveWebs,
8262 # @a Materials (obsolete parameters): empty
8264 # @note I.e. the following two operations are equivalent:
8266 # Result = geompy.MakeHalfPartition(Object, Plane)
8267 # Result = geompy.MakePartition([Object], [Plane])
8270 # @sa MakePartition, MakePartitionNonSelfIntersectedShape
8272 # @ref tui_partition "Example"
8273 @ManageTransactions("BoolOp")
8274 def MakeHalfPartition(self, theShape, thePlane, theName=None):
8276 Perform partition of the Shape with the Plane
8279 theShape Shape to be intersected.
8280 thePlane Tool shape, to intersect theShape.
8281 theName Object name; when specified, this parameter is used
8282 for result publication in the study. Otherwise, if automatic
8283 publication is switched on, default value is used for result name.
8286 New GEOM.GEOM_Object, containing the result shape.
8288 Note: This operation is a shortcut to the more general MakePartition
8289 operation, where theShape specifies single "object" (shape being partitioned)
8290 and thePlane specifies single "tool" (intersector shape). Other parameters of
8291 MakePartition operation have default values:
8292 - Limit: GEOM::SHAPE (shape limit corresponds to the type of theShape)
8293 - KeepNonlimitShapes: 0
8294 - KeepInside, RemoveInside, RemoveWebs, Materials (obsolete parameters): empty
8296 I.e. the following two operations are equivalent:
8297 Result = geompy.MakeHalfPartition(Object, Plane)
8298 Result = geompy.MakePartition([Object], [Plane])
8300 # Example: see GEOM_TestAll.py
8301 anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
8302 RaiseIfFailed("MakeHalfPartition", self.BoolOp)
8303 self._autoPublish(anObj, theName, "partition")
8306 # end of l3_basic_op
8309 ## @addtogroup l3_transform
8312 ## Translate the given object along the vector, specified
8313 # by its end points.
8314 # @param theObject The object to be translated.
8315 # @param thePoint1 Start point of translation vector.
8316 # @param thePoint2 End point of translation vector.
8317 # @param theCopy Flag used to translate object itself or create a copy.
8318 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8319 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8320 @ManageTransactions("TrsfOp")
8321 def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
8323 Translate the given object along the vector, specified by its end points.
8326 theObject The object to be translated.
8327 thePoint1 Start point of translation vector.
8328 thePoint2 End point of translation vector.
8329 theCopy Flag used to translate object itself or create a copy.
8332 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8333 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8336 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
8338 anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
8339 RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
8342 ## Translate the given object along the vector, specified
8343 # by its end points, creating its copy before the translation.
8344 # @param theObject The object to be translated.
8345 # @param thePoint1 Start point of translation vector.
8346 # @param thePoint2 End point of translation vector.
8347 # @param theName Object name; when specified, this parameter is used
8348 # for result publication in the study. Otherwise, if automatic
8349 # publication is switched on, default value is used for result name.
8351 # @return New GEOM.GEOM_Object, containing the translated object.
8353 # @ref tui_translation "Example 1"
8354 # \n @ref swig_MakeTranslationTwoPoints "Example 2"
8355 @ManageTransactions("TrsfOp")
8356 def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
8358 Translate the given object along the vector, specified
8359 by its end points, creating its copy before the translation.
8362 theObject The object to be translated.
8363 thePoint1 Start point of translation vector.
8364 thePoint2 End point of translation vector.
8365 theName Object name; when specified, this parameter is used
8366 for result publication in the study. Otherwise, if automatic
8367 publication is switched on, default value is used for result name.
8370 New GEOM.GEOM_Object, containing the translated object.
8372 # Example: see GEOM_TestAll.py
8373 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
8374 RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
8375 self._autoPublish(anObj, theName, "translated")
8378 ## Translate the given object along the vector, specified by its components.
8379 # @param theObject The object to be translated.
8380 # @param theDX,theDY,theDZ Components of translation vector.
8381 # @param theCopy Flag used to translate object itself or create a copy.
8382 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8383 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8385 # @ref tui_translation "Example"
8386 @ManageTransactions("TrsfOp")
8387 def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
8389 Translate the given object along the vector, specified by its components.
8392 theObject The object to be translated.
8393 theDX,theDY,theDZ Components of translation vector.
8394 theCopy Flag used to translate object itself or create a copy.
8397 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8398 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8400 # Example: see GEOM_TestAll.py
8401 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
8403 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
8405 anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
8406 anObj.SetParameters(Parameters)
8407 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
8410 ## Translate the given object along the vector, specified
8411 # by its components, creating its copy before the translation.
8412 # @param theObject The object to be translated.
8413 # @param theDX,theDY,theDZ Components of translation vector.
8414 # @param theName Object name; when specified, this parameter is used
8415 # for result publication in the study. Otherwise, if automatic
8416 # publication is switched on, default value is used for result name.
8418 # @return New GEOM.GEOM_Object, containing the translated object.
8420 # @ref tui_translation "Example"
8421 @ManageTransactions("TrsfOp")
8422 def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
8424 Translate the given object along the vector, specified
8425 by its components, creating its copy before the translation.
8428 theObject The object to be translated.
8429 theDX,theDY,theDZ Components of translation vector.
8430 theName Object name; when specified, this parameter is used
8431 for result publication in the study. Otherwise, if automatic
8432 publication is switched on, default value is used for result name.
8435 New GEOM.GEOM_Object, containing the translated object.
8437 # Example: see GEOM_TestAll.py
8438 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
8439 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
8440 anObj.SetParameters(Parameters)
8441 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
8442 self._autoPublish(anObj, theName, "translated")
8445 ## Translate the given object along the given vector.
8446 # @param theObject The object to be translated.
8447 # @param theVector The translation vector.
8448 # @param theCopy Flag used to translate object itself or create a copy.
8449 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8450 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8451 @ManageTransactions("TrsfOp")
8452 def TranslateVector(self, theObject, theVector, theCopy=False):
8454 Translate the given object along the given vector.
8457 theObject The object to be translated.
8458 theVector The translation vector.
8459 theCopy Flag used to translate object itself or create a copy.
8462 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8463 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8466 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
8468 anObj = self.TrsfOp.TranslateVector(theObject, theVector)
8469 RaiseIfFailed("TranslateVector", self.TrsfOp)
8472 ## Translate the given object along the given vector,
8473 # creating its copy before the translation.
8474 # @param theObject The object to be translated.
8475 # @param theVector The translation vector.
8476 # @param theName Object name; when specified, this parameter is used
8477 # for result publication in the study. Otherwise, if automatic
8478 # publication is switched on, default value is used for result name.
8480 # @return New GEOM.GEOM_Object, containing the translated object.
8482 # @ref tui_translation "Example"
8483 @ManageTransactions("TrsfOp")
8484 def MakeTranslationVector(self, theObject, theVector, theName=None):
8486 Translate the given object along the given vector,
8487 creating its copy before the translation.
8490 theObject The object to be translated.
8491 theVector The translation vector.
8492 theName Object name; when specified, this parameter is used
8493 for result publication in the study. Otherwise, if automatic
8494 publication is switched on, default value is used for result name.
8497 New GEOM.GEOM_Object, containing the translated object.
8499 # Example: see GEOM_TestAll.py
8500 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
8501 RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
8502 self._autoPublish(anObj, theName, "translated")
8505 ## Translate the given object along the given vector on given distance.
8506 # @param theObject The object to be translated.
8507 # @param theVector The translation vector.
8508 # @param theDistance The translation distance.
8509 # @param theCopy Flag used to translate object itself or create a copy.
8510 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8511 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8513 # @ref tui_translation "Example"
8514 @ManageTransactions("TrsfOp")
8515 def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
8517 Translate the given object along the given vector on given distance.
8520 theObject The object to be translated.
8521 theVector The translation vector.
8522 theDistance The translation distance.
8523 theCopy Flag used to translate object itself or create a copy.
8526 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8527 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8529 # Example: see GEOM_TestAll.py
8530 theDistance,Parameters = ParseParameters(theDistance)
8531 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy)
8532 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
8533 anObj.SetParameters(Parameters)
8536 ## Translate the given object along the given vector on given distance,
8537 # creating its copy before the translation.
8538 # @param theObject The object to be translated.
8539 # @param theVector The translation vector.
8540 # @param theDistance The translation distance.
8541 # @param theName Object name; when specified, this parameter is used
8542 # for result publication in the study. Otherwise, if automatic
8543 # publication is switched on, default value is used for result name.
8545 # @return New GEOM.GEOM_Object, containing the translated object.
8547 # @ref tui_translation "Example"
8548 @ManageTransactions("TrsfOp")
8549 def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
8551 Translate the given object along the given vector on given distance,
8552 creating its copy before the translation.
8555 theObject The object to be translated.
8556 theVector The translation vector.
8557 theDistance The translation distance.
8558 theName Object name; when specified, this parameter is used
8559 for result publication in the study. Otherwise, if automatic
8560 publication is switched on, default value is used for result name.
8563 New GEOM.GEOM_Object, containing the translated object.
8565 # Example: see GEOM_TestAll.py
8566 theDistance,Parameters = ParseParameters(theDistance)
8567 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
8568 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
8569 anObj.SetParameters(Parameters)
8570 self._autoPublish(anObj, theName, "translated")
8573 ## Rotate the given object around the given axis on the given angle.
8574 # @param theObject The object to be rotated.
8575 # @param theAxis Rotation axis.
8576 # @param theAngle Rotation angle in radians.
8577 # @param theCopy Flag used to rotate object itself or create a copy.
8579 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8580 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
8582 # @ref tui_rotation "Example"
8583 @ManageTransactions("TrsfOp")
8584 def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
8586 Rotate the given object around the given axis on the given angle.
8589 theObject The object to be rotated.
8590 theAxis Rotation axis.
8591 theAngle Rotation angle in radians.
8592 theCopy Flag used to rotate object itself or create a copy.
8595 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8596 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
8598 # Example: see GEOM_TestAll.py
8600 if isinstance(theAngle,str):
8602 theAngle, Parameters = ParseParameters(theAngle)
8604 theAngle = theAngle*math.pi/180.0
8606 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
8608 anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
8609 RaiseIfFailed("Rotate", self.TrsfOp)
8610 anObj.SetParameters(Parameters)
8613 ## Rotate the given object around the given axis
8614 # on the given angle, creating its copy before the rotation.
8615 # @param theObject The object to be rotated.
8616 # @param theAxis Rotation axis.
8617 # @param theAngle Rotation angle in radians.
8618 # @param theName Object name; when specified, this parameter is used
8619 # for result publication in the study. Otherwise, if automatic
8620 # publication is switched on, default value is used for result name.
8622 # @return New GEOM.GEOM_Object, containing the rotated object.
8624 # @ref tui_rotation "Example"
8625 @ManageTransactions("TrsfOp")
8626 def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
8628 Rotate the given object around the given axis
8629 on the given angle, creating its copy before the rotatation.
8632 theObject The object to be rotated.
8633 theAxis Rotation axis.
8634 theAngle Rotation angle in radians.
8635 theName Object name; when specified, this parameter is used
8636 for result publication in the study. Otherwise, if automatic
8637 publication is switched on, default value is used for result name.
8640 New GEOM.GEOM_Object, containing the rotated object.
8642 # Example: see GEOM_TestAll.py
8644 if isinstance(theAngle,str):
8646 theAngle, Parameters = ParseParameters(theAngle)
8648 theAngle = theAngle*math.pi/180.0
8649 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
8650 RaiseIfFailed("RotateCopy", self.TrsfOp)
8651 anObj.SetParameters(Parameters)
8652 self._autoPublish(anObj, theName, "rotated")
8655 ## Rotate given object around vector perpendicular to plane
8656 # containing three points.
8657 # @param theObject The object to be rotated.
8658 # @param theCentPoint central point the axis is the vector perpendicular to the plane
8659 # containing the three points.
8660 # @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
8661 # @param theCopy Flag used to rotate object itself or create a copy.
8662 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8663 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
8664 @ManageTransactions("TrsfOp")
8665 def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
8667 Rotate given object around vector perpendicular to plane
8668 containing three points.
8671 theObject The object to be rotated.
8672 theCentPoint central point the axis is the vector perpendicular to the plane
8673 containing the three points.
8674 thePoint1,thePoint2 points in a perpendicular plane of the axis.
8675 theCopy Flag used to rotate object itself or create a copy.
8678 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8679 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
8682 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
8684 anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
8685 RaiseIfFailed("RotateThreePoints", self.TrsfOp)
8688 ## Rotate given object around vector perpendicular to plane
8689 # containing three points, creating its copy before the rotatation.
8690 # @param theObject The object to be rotated.
8691 # @param theCentPoint central point the axis is the vector perpendicular to the plane
8692 # containing the three points.
8693 # @param thePoint1,thePoint2 in a perpendicular plane of the axis.
8694 # @param theName Object name; when specified, this parameter is used
8695 # for result publication in the study. Otherwise, if automatic
8696 # publication is switched on, default value is used for result name.
8698 # @return New GEOM.GEOM_Object, containing the rotated object.
8700 # @ref tui_rotation "Example"
8701 @ManageTransactions("TrsfOp")
8702 def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
8704 Rotate given object around vector perpendicular to plane
8705 containing three points, creating its copy before the rotatation.
8708 theObject The object to be rotated.
8709 theCentPoint central point the axis is the vector perpendicular to the plane
8710 containing the three points.
8711 thePoint1,thePoint2 in a perpendicular plane of the axis.
8712 theName Object name; when specified, this parameter is used
8713 for result publication in the study. Otherwise, if automatic
8714 publication is switched on, default value is used for result name.
8717 New GEOM.GEOM_Object, containing the rotated object.
8719 # Example: see GEOM_TestAll.py
8720 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
8721 RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
8722 self._autoPublish(anObj, theName, "rotated")
8725 ## Scale the given object by the specified factor.
8726 # @param theObject The object to be scaled.
8727 # @param thePoint Center point for scaling.
8728 # Passing None for it means scaling relatively the origin of global CS.
8729 # @param theFactor Scaling factor value.
8730 # @param theCopy Flag used to scale object itself or create a copy.
8731 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8732 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
8733 @ManageTransactions("TrsfOp")
8734 def Scale(self, theObject, thePoint, theFactor, theCopy=False):
8736 Scale the given object by the specified factor.
8739 theObject The object to be scaled.
8740 thePoint Center point for scaling.
8741 Passing None for it means scaling relatively the origin of global CS.
8742 theFactor Scaling factor value.
8743 theCopy Flag used to scale object itself or create a copy.
8746 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8747 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
8749 # Example: see GEOM_TestAll.py
8750 theFactor, Parameters = ParseParameters(theFactor)
8752 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
8754 anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
8755 RaiseIfFailed("Scale", self.TrsfOp)
8756 anObj.SetParameters(Parameters)
8759 ## Scale the given object by the factor, creating its copy before the scaling.
8760 # @param theObject The object to be scaled.
8761 # @param thePoint Center point for scaling.
8762 # Passing None for it means scaling relatively the origin of global CS.
8763 # @param theFactor Scaling factor value.
8764 # @param theName Object name; when specified, this parameter is used
8765 # for result publication in the study. Otherwise, if automatic
8766 # publication is switched on, default value is used for result name.
8768 # @return New GEOM.GEOM_Object, containing the scaled shape.
8770 # @ref tui_scale "Example"
8771 @ManageTransactions("TrsfOp")
8772 def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
8774 Scale the given object by the factor, creating its copy before the scaling.
8777 theObject The object to be scaled.
8778 thePoint Center point for scaling.
8779 Passing None for it means scaling relatively the origin of global CS.
8780 theFactor Scaling factor value.
8781 theName Object name; when specified, this parameter is used
8782 for result publication in the study. Otherwise, if automatic
8783 publication is switched on, default value is used for result name.
8786 New GEOM.GEOM_Object, containing the scaled shape.
8788 # Example: see GEOM_TestAll.py
8789 theFactor, Parameters = ParseParameters(theFactor)
8790 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
8791 RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
8792 anObj.SetParameters(Parameters)
8793 self._autoPublish(anObj, theName, "scaled")
8796 ## Scale the given object by different factors along coordinate axes.
8797 # @param theObject The object to be scaled.
8798 # @param thePoint Center point for scaling.
8799 # Passing None for it means scaling relatively the origin of global CS.
8800 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8801 # @param theCopy Flag used to scale object itself or create a copy.
8802 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8803 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
8804 @ManageTransactions("TrsfOp")
8805 def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
8807 Scale the given object by different factors along coordinate axes.
8810 theObject The object to be scaled.
8811 thePoint Center point for scaling.
8812 Passing None for it means scaling relatively the origin of global CS.
8813 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8814 theCopy Flag used to scale object itself or create a copy.
8817 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8818 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
8820 # Example: see GEOM_TestAll.py
8821 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
8823 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
8824 theFactorX, theFactorY, theFactorZ)
8826 anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
8827 theFactorX, theFactorY, theFactorZ)
8828 RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
8829 anObj.SetParameters(Parameters)
8832 ## Scale the given object by different factors along coordinate axes,
8833 # creating its copy before the scaling.
8834 # @param theObject The object to be scaled.
8835 # @param thePoint Center point for scaling.
8836 # Passing None for it means scaling relatively the origin of global CS.
8837 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8838 # @param theName Object name; when specified, this parameter is used
8839 # for result publication in the study. Otherwise, if automatic
8840 # publication is switched on, default value is used for result name.
8842 # @return New GEOM.GEOM_Object, containing the scaled shape.
8844 # @ref swig_scale "Example"
8845 @ManageTransactions("TrsfOp")
8846 def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
8848 Scale the given object by different factors along coordinate axes,
8849 creating its copy before the scaling.
8852 theObject The object to be scaled.
8853 thePoint Center point for scaling.
8854 Passing None for it means scaling relatively the origin of global CS.
8855 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8856 theName Object name; when specified, this parameter is used
8857 for result publication in the study. Otherwise, if automatic
8858 publication is switched on, default value is used for result name.
8861 New GEOM.GEOM_Object, containing the scaled shape.
8863 # Example: see GEOM_TestAll.py
8864 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
8865 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
8866 theFactorX, theFactorY, theFactorZ)
8867 RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
8868 anObj.SetParameters(Parameters)
8869 self._autoPublish(anObj, theName, "scaled")
8872 ## Mirror an object relatively the given plane.
8873 # @param theObject The object to be mirrored.
8874 # @param thePlane Plane of symmetry.
8875 # @param theCopy Flag used to mirror object itself or create a copy.
8876 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8877 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8878 @ManageTransactions("TrsfOp")
8879 def MirrorByPlane(self, theObject, thePlane, theCopy=False):
8881 Mirror an object relatively the given plane.
8884 theObject The object to be mirrored.
8885 thePlane Plane of symmetry.
8886 theCopy Flag used to mirror object itself or create a copy.
8889 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8890 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8893 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
8895 anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
8896 RaiseIfFailed("MirrorByPlane", self.TrsfOp)
8899 ## Create an object, symmetrical
8900 # to the given one relatively the given plane.
8901 # @param theObject The object to be mirrored.
8902 # @param thePlane Plane of symmetry.
8903 # @param theName Object name; when specified, this parameter is used
8904 # for result publication in the study. Otherwise, if automatic
8905 # publication is switched on, default value is used for result name.
8907 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8909 # @ref tui_mirror "Example"
8910 @ManageTransactions("TrsfOp")
8911 def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
8913 Create an object, symmetrical to the given one relatively the given plane.
8916 theObject The object to be mirrored.
8917 thePlane Plane of symmetry.
8918 theName Object name; when specified, this parameter is used
8919 for result publication in the study. Otherwise, if automatic
8920 publication is switched on, default value is used for result name.
8923 New GEOM.GEOM_Object, containing the mirrored shape.
8925 # Example: see GEOM_TestAll.py
8926 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
8927 RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
8928 self._autoPublish(anObj, theName, "mirrored")
8931 ## Mirror an object relatively the given axis.
8932 # @param theObject The object to be mirrored.
8933 # @param theAxis Axis of symmetry.
8934 # @param theCopy Flag used to mirror object itself or create a copy.
8935 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8936 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8937 @ManageTransactions("TrsfOp")
8938 def MirrorByAxis(self, theObject, theAxis, theCopy=False):
8940 Mirror an object relatively the given axis.
8943 theObject The object to be mirrored.
8944 theAxis Axis of symmetry.
8945 theCopy Flag used to mirror object itself or create a copy.
8948 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8949 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8952 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
8954 anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
8955 RaiseIfFailed("MirrorByAxis", self.TrsfOp)
8958 ## Create an object, symmetrical
8959 # to the given one relatively the given axis.
8960 # @param theObject The object to be mirrored.
8961 # @param theAxis Axis of symmetry.
8962 # @param theName Object name; when specified, this parameter is used
8963 # for result publication in the study. Otherwise, if automatic
8964 # publication is switched on, default value is used for result name.
8966 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8968 # @ref tui_mirror "Example"
8969 @ManageTransactions("TrsfOp")
8970 def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
8972 Create an object, symmetrical to the given one relatively the given axis.
8975 theObject The object to be mirrored.
8976 theAxis Axis of symmetry.
8977 theName Object name; when specified, this parameter is used
8978 for result publication in the study. Otherwise, if automatic
8979 publication is switched on, default value is used for result name.
8982 New GEOM.GEOM_Object, containing the mirrored shape.
8984 # Example: see GEOM_TestAll.py
8985 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
8986 RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
8987 self._autoPublish(anObj, theName, "mirrored")
8990 ## Mirror an object relatively the given point.
8991 # @param theObject The object to be mirrored.
8992 # @param thePoint Point of symmetry.
8993 # @param theCopy Flag used to mirror object itself or create a copy.
8994 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8995 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8996 @ManageTransactions("TrsfOp")
8997 def MirrorByPoint(self, theObject, thePoint, theCopy=False):
8999 Mirror an object relatively the given point.
9002 theObject The object to be mirrored.
9003 thePoint Point of symmetry.
9004 theCopy Flag used to mirror object itself or create a copy.
9007 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9008 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
9010 # Example: see GEOM_TestAll.py
9012 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
9014 anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
9015 RaiseIfFailed("MirrorByPoint", self.TrsfOp)
9018 ## Create an object, symmetrical
9019 # to the given one relatively the given point.
9020 # @param theObject The object to be mirrored.
9021 # @param thePoint Point of symmetry.
9022 # @param theName Object name; when specified, this parameter is used
9023 # for result publication in the study. Otherwise, if automatic
9024 # publication is switched on, default value is used for result name.
9026 # @return New GEOM.GEOM_Object, containing the mirrored shape.
9028 # @ref tui_mirror "Example"
9029 @ManageTransactions("TrsfOp")
9030 def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
9032 Create an object, symmetrical
9033 to the given one relatively the given point.
9036 theObject The object to be mirrored.
9037 thePoint Point of symmetry.
9038 theName Object name; when specified, this parameter is used
9039 for result publication in the study. Otherwise, if automatic
9040 publication is switched on, default value is used for result name.
9043 New GEOM.GEOM_Object, containing the mirrored shape.
9045 # Example: see GEOM_TestAll.py
9046 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
9047 RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
9048 self._autoPublish(anObj, theName, "mirrored")
9051 ## Modify the location of the given object.
9052 # @param theObject The object to be displaced.
9053 # @param theStartLCS Coordinate system to perform displacement from it.\n
9054 # If \a theStartLCS is NULL, displacement
9055 # will be performed from global CS.\n
9056 # If \a theObject itself is used as \a theStartLCS,
9057 # its location will be changed to \a theEndLCS.
9058 # @param theEndLCS Coordinate system to perform displacement to it.
9059 # @param theCopy Flag used to displace object itself or create a copy.
9060 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
9061 # new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
9062 @ManageTransactions("TrsfOp")
9063 def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
9065 Modify the Location of the given object by LCS, creating its copy before the setting.
9068 theObject The object to be displaced.
9069 theStartLCS Coordinate system to perform displacement from it.
9070 If theStartLCS is NULL, displacement
9071 will be performed from global CS.
9072 If theObject itself is used as theStartLCS,
9073 its location will be changed to theEndLCS.
9074 theEndLCS Coordinate system to perform displacement to it.
9075 theCopy Flag used to displace object itself or create a copy.
9078 Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9079 new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
9081 # Example: see GEOM_TestAll.py
9083 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
9085 anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
9086 RaiseIfFailed("Displace", self.TrsfOp)
9089 ## Modify the Location of the given object by LCS,
9090 # creating its copy before the setting.
9091 # @param theObject The object to be displaced.
9092 # @param theStartLCS Coordinate system to perform displacement from it.\n
9093 # If \a theStartLCS is NULL, displacement
9094 # will be performed from global CS.\n
9095 # If \a theObject itself is used as \a theStartLCS,
9096 # its location will be changed to \a theEndLCS.
9097 # @param theEndLCS Coordinate system to perform displacement to it.
9098 # @param theName Object name; when specified, this parameter is used
9099 # for result publication in the study. Otherwise, if automatic
9100 # publication is switched on, default value is used for result name.
9102 # @return New GEOM.GEOM_Object, containing the displaced shape.
9104 # @ref tui_modify_location "Example"
9105 @ManageTransactions("TrsfOp")
9106 def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
9108 Modify the Location of the given object by LCS, creating its copy before the setting.
9111 theObject The object to be displaced.
9112 theStartLCS Coordinate system to perform displacement from it.
9113 If theStartLCS is NULL, displacement
9114 will be performed from global CS.
9115 If theObject itself is used as theStartLCS,
9116 its location will be changed to theEndLCS.
9117 theEndLCS Coordinate system to perform displacement to it.
9118 theName Object name; when specified, this parameter is used
9119 for result publication in the study. Otherwise, if automatic
9120 publication is switched on, default value is used for result name.
9123 New GEOM.GEOM_Object, containing the displaced shape.
9126 # create local coordinate systems
9127 cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
9128 cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0)
9129 # modify the location of the given object
9130 position = geompy.MakePosition(cylinder, cs1, cs2)
9132 # Example: see GEOM_TestAll.py
9133 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
9134 RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
9135 self._autoPublish(anObj, theName, "displaced")
9138 ## Modify the Location of the given object by Path.
9139 # @param theObject The object to be displaced.
9140 # @param thePath Wire or Edge along that the object will be translated.
9141 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
9142 # @param theCopy is to create a copy objects if true.
9143 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
9144 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
9145 # new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
9147 # @ref tui_modify_location "Example"
9148 @ManageTransactions("TrsfOp")
9149 def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
9151 Modify the Location of the given object by Path.
9154 theObject The object to be displaced.
9155 thePath Wire or Edge along that the object will be translated.
9156 theDistance progress of Path (0 = start location, 1 = end of path location).
9157 theCopy is to create a copy objects if true.
9158 theReverse 0 - for usual direction, 1 - to reverse path direction.
9161 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
9162 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
9165 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
9167 # Example: see GEOM_TestAll.py
9168 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse)
9169 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
9172 ## Modify the Location of the given object by Path, creating its copy before the operation.
9173 # @param theObject The object to be displaced.
9174 # @param thePath Wire or Edge along that the object will be translated.
9175 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
9176 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
9177 # @param theName Object name; when specified, this parameter is used
9178 # for result publication in the study. Otherwise, if automatic
9179 # publication is switched on, default value is used for result name.
9181 # @return New GEOM.GEOM_Object, containing the displaced shape.
9182 @ManageTransactions("TrsfOp")
9183 def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
9185 Modify the Location of the given object by Path, creating its copy before the operation.
9188 theObject The object to be displaced.
9189 thePath Wire or Edge along that the object will be translated.
9190 theDistance progress of Path (0 = start location, 1 = end of path location).
9191 theReverse 0 - for usual direction, 1 - to reverse path direction.
9192 theName Object name; when specified, this parameter is used
9193 for result publication in the study. Otherwise, if automatic
9194 publication is switched on, default value is used for result name.
9197 New GEOM.GEOM_Object, containing the displaced shape.
9199 # Example: see GEOM_TestAll.py
9200 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
9201 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
9202 self._autoPublish(anObj, theName, "displaced")
9205 ## Offset given shape.
9206 # @param theObject The base object for the offset.
9207 # @param theOffset Offset value.
9208 # @param theCopy Flag used to offset object itself or create a copy.
9209 # @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
9210 # new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
9211 @ManageTransactions("TrsfOp")
9212 def Offset(self, theObject, theOffset, theCopy=False):
9217 theObject The base object for the offset.
9218 theOffset Offset value.
9219 theCopy Flag used to offset object itself or create a copy.
9222 Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9223 new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
9225 theOffset, Parameters = ParseParameters(theOffset)
9227 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
9229 anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
9230 RaiseIfFailed("Offset", self.TrsfOp)
9231 anObj.SetParameters(Parameters)
9234 ## Create new object as offset of the given one.
9235 # @param theObject The base object for the offset.
9236 # @param theOffset Offset value.
9237 # @param theName Object name; when specified, this parameter is used
9238 # for result publication in the study. Otherwise, if automatic
9239 # publication is switched on, default value is used for result name.
9241 # @return New GEOM.GEOM_Object, containing the offset object.
9243 # @ref tui_offset "Example"
9244 @ManageTransactions("TrsfOp")
9245 def MakeOffset(self, theObject, theOffset, theName=None):
9247 Create new object as offset of the given one.
9250 theObject The base object for the offset.
9251 theOffset Offset value.
9252 theName Object name; when specified, this parameter is used
9253 for result publication in the study. Otherwise, if automatic
9254 publication is switched on, default value is used for result name.
9257 New GEOM.GEOM_Object, containing the offset object.
9260 box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
9261 # create a new object as offset of the given object
9262 offset = geompy.MakeOffset(box, 70.)
9264 # Example: see GEOM_TestAll.py
9265 theOffset, Parameters = ParseParameters(theOffset)
9266 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
9267 RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
9268 anObj.SetParameters(Parameters)
9269 self._autoPublish(anObj, theName, "offset")
9272 ## Create new object as projection of the given one on another.
9273 # @param theSource The source object for the projection. It can be a point, edge or wire.
9274 # Edge and wire are acceptable if @a theTarget is a face.
9275 # @param theTarget The target object. It can be planar or cylindrical face, edge or wire.
9276 # @param theName Object name; when specified, this parameter is used
9277 # for result publication in the study. Otherwise, if automatic
9278 # publication is switched on, default value is used for result name.
9280 # @return New GEOM.GEOM_Object, containing the projection.
9282 # @ref tui_projection "Example"
9283 @ManageTransactions("TrsfOp")
9284 def MakeProjection(self, theSource, theTarget, theName=None):
9286 Create new object as projection of the given one on another.
9289 theSource The source object for the projection. It can be a point, edge or wire.
9290 Edge and wire are acceptable if theTarget is a face.
9291 theTarget The target object. It can be planar or cylindrical face, edge or wire.
9292 theName Object name; when specified, this parameter is used
9293 for result publication in the study. Otherwise, if automatic
9294 publication is switched on, default value is used for result name.
9297 New GEOM.GEOM_Object, containing the projection.
9299 # Example: see GEOM_TestAll.py
9300 anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
9301 RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
9302 self._autoPublish(anObj, theName, "projection")
9305 ## Create a projection of the given point on a wire or an edge.
9306 # If there are no solutions or there are 2 or more solutions It throws an
9308 # @param thePoint the point to be projected.
9309 # @param theWire the wire. The edge is accepted as well.
9310 # @param theName Object name; when specified, this parameter is used
9311 # for result publication in the study. Otherwise, if automatic
9312 # publication is switched on, default value is used for result name.
9314 # @return [\a u, \a PointOnEdge, \a EdgeInWireIndex]
9315 # \n \a u: The parameter of projection point on edge.
9316 # \n \a PointOnEdge: The projection point.
9317 # \n \a EdgeInWireIndex: The index of an edge in a wire.
9319 # @ref tui_projection "Example"
9320 @ManageTransactions("TrsfOp")
9321 def MakeProjectionOnWire(self, thePoint, theWire, theName=None):
9323 Create a projection of the given point on a wire or an edge.
9324 If there are no solutions or there are 2 or more solutions It throws an
9328 thePoint the point to be projected.
9329 theWire the wire. The edge is accepted as well.
9330 theName Object name; when specified, this parameter is used
9331 for result publication in the study. Otherwise, if automatic
9332 publication is switched on, default value is used for result name.
9335 [u, PointOnEdge, EdgeInWireIndex]
9336 u: The parameter of projection point on edge.
9337 PointOnEdge: The projection point.
9338 EdgeInWireIndex: The index of an edge in a wire.
9340 # Example: see GEOM_TestAll.py
9341 anObj = self.TrsfOp.ProjectPointOnWire(thePoint, theWire)
9342 RaiseIfFailed("ProjectPointOnWire", self.TrsfOp)
9343 self._autoPublish(anObj[1], theName, "projection")
9346 # -----------------------------------------------------------------------------
9348 # -----------------------------------------------------------------------------
9350 ## Translate the given object along the given vector a given number times
9351 # @param theObject The object to be translated.
9352 # @param theVector Direction of the translation. DX if None.
9353 # @param theStep Distance to translate on.
9354 # @param theNbTimes Quantity of translations to be done.
9355 # @param theName Object name; when specified, this parameter is used
9356 # for result publication in the study. Otherwise, if automatic
9357 # publication is switched on, default value is used for result name.
9359 # @return New GEOM.GEOM_Object, containing compound of all
9360 # the shapes, obtained after each translation.
9362 # @ref tui_multi_translation "Example"
9363 @ManageTransactions("TrsfOp")
9364 def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
9366 Translate the given object along the given vector a given number times
9369 theObject The object to be translated.
9370 theVector Direction of the translation. DX if None.
9371 theStep Distance to translate on.
9372 theNbTimes Quantity of translations to be done.
9373 theName Object name; when specified, this parameter is used
9374 for result publication in the study. Otherwise, if automatic
9375 publication is switched on, default value is used for result name.
9378 New GEOM.GEOM_Object, containing compound of all
9379 the shapes, obtained after each translation.
9382 r1d = geompy.MakeMultiTranslation1D(prism, vect, 20, 4)
9384 # Example: see GEOM_TestAll.py
9385 theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes)
9386 anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
9387 RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
9388 anObj.SetParameters(Parameters)
9389 self._autoPublish(anObj, theName, "multitranslation")
9392 ## Conseqently apply two specified translations to theObject specified number of times.
9393 # @param theObject The object to be translated.
9394 # @param theVector1 Direction of the first translation. DX if None.
9395 # @param theStep1 Step of the first translation.
9396 # @param theNbTimes1 Quantity of translations to be done along theVector1.
9397 # @param theVector2 Direction of the second translation. DY if None.
9398 # @param theStep2 Step of the second translation.
9399 # @param theNbTimes2 Quantity of translations to be done along theVector2.
9400 # @param theName Object name; when specified, this parameter is used
9401 # for result publication in the study. Otherwise, if automatic
9402 # publication is switched on, default value is used for result name.
9404 # @return New GEOM.GEOM_Object, containing compound of all
9405 # the shapes, obtained after each translation.
9407 # @ref tui_multi_translation "Example"
9408 @ManageTransactions("TrsfOp")
9409 def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
9410 theVector2, theStep2, theNbTimes2, theName=None):
9412 Conseqently apply two specified translations to theObject specified number of times.
9415 theObject The object to be translated.
9416 theVector1 Direction of the first translation. DX if None.
9417 theStep1 Step of the first translation.
9418 theNbTimes1 Quantity of translations to be done along theVector1.
9419 theVector2 Direction of the second translation. DY if None.
9420 theStep2 Step of the second translation.
9421 theNbTimes2 Quantity of translations to be done along theVector2.
9422 theName Object name; when specified, this parameter is used
9423 for result publication in the study. Otherwise, if automatic
9424 publication is switched on, default value is used for result name.
9427 New GEOM.GEOM_Object, containing compound of all
9428 the shapes, obtained after each translation.
9431 tr2d = geompy.MakeMultiTranslation2D(prism, vect1, 20, 4, vect2, 80, 3)
9433 # Example: see GEOM_TestAll.py
9434 theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2)
9435 anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
9436 theVector2, theStep2, theNbTimes2)
9437 RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
9438 anObj.SetParameters(Parameters)
9439 self._autoPublish(anObj, theName, "multitranslation")
9442 ## Rotate the given object around the given axis a given number times.
9443 # Rotation angle will be 2*PI/theNbTimes.
9444 # @param theObject The object to be rotated.
9445 # @param theAxis The rotation axis. DZ if None.
9446 # @param theNbTimes Quantity of rotations to be done.
9447 # @param theName Object name; when specified, this parameter is used
9448 # for result publication in the study. Otherwise, if automatic
9449 # publication is switched on, default value is used for result name.
9451 # @return New GEOM.GEOM_Object, containing compound of all the
9452 # shapes, obtained after each rotation.
9454 # @ref tui_multi_rotation "Example"
9455 @ManageTransactions("TrsfOp")
9456 def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
9458 Rotate the given object around the given axis a given number times.
9459 Rotation angle will be 2*PI/theNbTimes.
9462 theObject The object to be rotated.
9463 theAxis The rotation axis. DZ if None.
9464 theNbTimes Quantity of rotations to be done.
9465 theName Object name; when specified, this parameter is used
9466 for result publication in the study. Otherwise, if automatic
9467 publication is switched on, default value is used for result name.
9470 New GEOM.GEOM_Object, containing compound of all the
9471 shapes, obtained after each rotation.
9474 rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
9476 # Example: see GEOM_TestAll.py
9477 theNbTimes, Parameters = ParseParameters(theNbTimes)
9478 anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
9479 RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
9480 anObj.SetParameters(Parameters)
9481 self._autoPublish(anObj, theName, "multirotation")
9484 ## Rotate the given object around the given axis
9485 # a given number times on the given angle.
9486 # @param theObject The object to be rotated.
9487 # @param theAxis The rotation axis. DZ if None.
9488 # @param theAngleStep Rotation angle in radians.
9489 # @param theNbTimes Quantity of rotations to be done.
9490 # @param theName Object name; when specified, this parameter is used
9491 # for result publication in the study. Otherwise, if automatic
9492 # publication is switched on, default value is used for result name.
9494 # @return New GEOM.GEOM_Object, containing compound of all the
9495 # shapes, obtained after each rotation.
9497 # @ref tui_multi_rotation "Example"
9498 @ManageTransactions("TrsfOp")
9499 def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
9501 Rotate the given object around the given axis
9502 a given number times on the given angle.
9505 theObject The object to be rotated.
9506 theAxis The rotation axis. DZ if None.
9507 theAngleStep Rotation angle in radians.
9508 theNbTimes Quantity of rotations to be done.
9509 theName Object name; when specified, this parameter is used
9510 for result publication in the study. Otherwise, if automatic
9511 publication is switched on, default value is used for result name.
9514 New GEOM.GEOM_Object, containing compound of all the
9515 shapes, obtained after each rotation.
9518 rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
9520 # Example: see GEOM_TestAll.py
9521 theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
9522 anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
9523 RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
9524 anObj.SetParameters(Parameters)
9525 self._autoPublish(anObj, theName, "multirotation")
9528 ## Rotate the given object around the given axis a given
9529 # number times and multi-translate each rotation result.
9530 # Rotation angle will be 2*PI/theNbTimes1.
9531 # Translation direction passes through center of gravity
9532 # of rotated shape and its projection on the rotation axis.
9533 # @param theObject The object to be rotated.
9534 # @param theAxis Rotation axis. DZ if None.
9535 # @param theNbTimes1 Quantity of rotations to be done.
9536 # @param theRadialStep Translation distance.
9537 # @param theNbTimes2 Quantity of translations to be done.
9538 # @param theName Object name; when specified, this parameter is used
9539 # for result publication in the study. Otherwise, if automatic
9540 # publication is switched on, default value is used for result name.
9542 # @return New GEOM.GEOM_Object, containing compound of all the
9543 # shapes, obtained after each transformation.
9545 # @ref tui_multi_rotation "Example"
9546 @ManageTransactions("TrsfOp")
9547 def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
9549 Rotate the given object around the
9550 given axis on the given angle a given number
9551 times and multi-translate each rotation result.
9552 Translation direction passes through center of gravity
9553 of rotated shape and its projection on the rotation axis.
9556 theObject The object to be rotated.
9557 theAxis Rotation axis. DZ if None.
9558 theNbTimes1 Quantity of rotations to be done.
9559 theRadialStep Translation distance.
9560 theNbTimes2 Quantity of translations to be done.
9561 theName Object name; when specified, this parameter is used
9562 for result publication in the study. Otherwise, if automatic
9563 publication is switched on, default value is used for result name.
9566 New GEOM.GEOM_Object, containing compound of all the
9567 shapes, obtained after each transformation.
9570 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
9572 # Example: see GEOM_TestAll.py
9573 theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
9574 anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
9575 RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
9576 anObj.SetParameters(Parameters)
9577 self._autoPublish(anObj, theName, "multirotation")
9580 ## Rotate the given object around the
9581 # given axis on the given angle a given number
9582 # times and multi-translate each rotation result.
9583 # Translation direction passes through center of gravity
9584 # of rotated shape and its projection on the rotation axis.
9585 # @param theObject The object to be rotated.
9586 # @param theAxis Rotation axis. DZ if None.
9587 # @param theAngleStep Rotation angle in radians.
9588 # @param theNbTimes1 Quantity of rotations to be done.
9589 # @param theRadialStep Translation distance.
9590 # @param theNbTimes2 Quantity of translations to be done.
9591 # @param theName Object name; when specified, this parameter is used
9592 # for result publication in the study. Otherwise, if automatic
9593 # publication is switched on, default value is used for result name.
9595 # @return New GEOM.GEOM_Object, containing compound of all the
9596 # shapes, obtained after each transformation.
9598 # @ref tui_multi_rotation "Example"
9599 @ManageTransactions("TrsfOp")
9600 def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
9602 Rotate the given object around the
9603 given axis on the given angle a given number
9604 times and multi-translate each rotation result.
9605 Translation direction passes through center of gravity
9606 of rotated shape and its projection on the rotation axis.
9609 theObject The object to be rotated.
9610 theAxis Rotation axis. DZ if None.
9611 theAngleStep Rotation angle in radians.
9612 theNbTimes1 Quantity of rotations to be done.
9613 theRadialStep Translation distance.
9614 theNbTimes2 Quantity of translations to be done.
9615 theName Object name; when specified, this parameter is used
9616 for result publication in the study. Otherwise, if automatic
9617 publication is switched on, default value is used for result name.
9620 New GEOM.GEOM_Object, containing compound of all the
9621 shapes, obtained after each transformation.
9624 rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
9626 # Example: see GEOM_TestAll.py
9627 theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
9628 anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
9629 RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
9630 anObj.SetParameters(Parameters)
9631 self._autoPublish(anObj, theName, "multirotation")
9634 ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
9636 # @ref swig_MakeMultiRotation "Example"
9637 def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
9639 The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
9642 pz = geompy.MakeVertex(0, 0, 100)
9643 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9644 MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
9646 # Example: see GEOM_TestOthers.py
9647 aVec = self.MakeLine(aPoint,aDir)
9648 # note: auto-publishing is done in self.MultiRotate1D()
9649 anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
9652 ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
9654 # @ref swig_MakeMultiRotation "Example"
9655 def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
9657 The same, as geompy.MultiRotate1D, but axis is given by direction and point
9660 pz = geompy.MakeVertex(0, 0, 100)
9661 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9662 MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
9664 # Example: see GEOM_TestOthers.py
9665 aVec = self.MakeLine(aPoint,aDir)
9666 # note: auto-publishing is done in self.MultiRotate1D()
9667 anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
9670 ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
9672 # @ref swig_MakeMultiRotation "Example"
9673 def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
9675 The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
9678 pz = geompy.MakeVertex(0, 0, 100)
9679 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9680 MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
9682 # Example: see GEOM_TestOthers.py
9683 aVec = self.MakeLine(aPoint,aDir)
9684 # note: auto-publishing is done in self.MultiRotate2DNbTimes()
9685 anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
9688 ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
9690 # @ref swig_MakeMultiRotation "Example"
9691 def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
9693 The same, as MultiRotate2DByStep(), but axis is given by direction and point
9696 pz = geompy.MakeVertex(0, 0, 100)
9697 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9698 MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
9700 # Example: see GEOM_TestOthers.py
9701 aVec = self.MakeLine(aPoint,aDir)
9702 # note: auto-publishing is done in self.MultiRotate2D()
9703 anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
9707 # Compute a wire or a face that represents a projection of the source
9708 # shape onto cylinder. The cylinder's coordinate system is the same
9709 # as the global coordinate system.
9711 # @param theObject The object to be projected. It can be either
9712 # a planar wire or a face.
9713 # @param theRadius The radius of the cylinder.
9714 # @param theStartAngle The starting angle in radians from
9715 # the cylinder's X axis around Z axis. The angle from which
9716 # the projection is started.
9717 # @param theAngleLength The projection length angle in radians.
9718 # The angle in which to project the total length of the wire.
9719 # If it is negative the projection is not scaled and natural
9720 # wire length is kept for the projection.
9721 # @param theAngleRotation The desired angle in radians between
9722 # the tangent vector to the first curve at the first point of
9723 # the theObject's projection in 2D space and U-direction of
9724 # cylinder's 2D space.
9725 # @param theName Object name; when specified, this parameter is used
9726 # for result publication in the study. Otherwise, if automatic
9727 # publication is switched on, default value is used for result name.
9729 # @return New GEOM.GEOM_Object, containing the result shape. The result
9730 # represents a wire or a face that represents a projection of
9731 # the source shape onto a cylinder.
9733 # @ref tui_projection "Example"
9734 def MakeProjectionOnCylinder (self, theObject, theRadius,
9735 theStartAngle=0.0, theAngleLength=-1.0,
9736 theAngleRotation=0.0,
9739 Compute a wire or a face that represents a projection of the source
9740 shape onto cylinder. The cylinder's coordinate system is the same
9741 as the global coordinate system.
9744 theObject The object to be projected. It can be either
9745 a planar wire or a face.
9746 theRadius The radius of the cylinder.
9747 theStartAngle The starting angle in radians from the cylinder's X axis
9748 around Z axis. The angle from which the projection is started.
9749 theAngleLength The projection length angle in radians. The angle in which
9750 to project the total length of the wire. If it is negative the
9751 projection is not scaled and natural wire length is kept for
9753 theAngleRotation The desired angle in radians between
9754 the tangent vector to the first curve at the first
9755 point of the theObject's projection in 2D space and
9756 U-direction of cylinder's 2D space.
9757 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.
9762 New GEOM.GEOM_Object, containing the result shape. The result
9763 represents a wire or a face that represents a projection of
9764 the source shape onto a cylinder.
9766 # Example: see GEOM_TestAll.py
9767 flagStartAngle = False
9768 if isinstance(theStartAngle,str):
9769 flagStartAngle = True
9770 flagAngleLength = False
9771 if isinstance(theAngleLength,str):
9772 flagAngleLength = True
9773 flagAngleRotation = False
9774 if isinstance(theAngleRotation,str):
9775 flagAngleRotation = True
9776 theRadius, theStartAngle, theAngleLength, theAngleRotation, Parameters = ParseParameters(
9777 theRadius, theStartAngle, theAngleLength, theAngleRotation)
9779 theStartAngle = theStartAngle*math.pi/180.
9781 theAngleLength = theAngleLength*math.pi/180.
9782 if flagAngleRotation:
9783 theAngleRotation = theAngleRotation*math.pi/180.
9784 anObj = self.TrsfOp.MakeProjectionOnCylinder(theObject, theRadius,
9785 theStartAngle, theAngleLength, theAngleRotation)
9786 RaiseIfFailed("MakeProjectionOnCylinder", self.TrsfOp)
9787 anObj.SetParameters(Parameters)
9788 self._autoPublish(anObj, theName, "projection")
9791 # end of l3_transform
9794 ## @addtogroup l3_transform_d
9797 ## Deprecated method. Use MultiRotate1DNbTimes instead.
9798 def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
9800 Deprecated method. Use MultiRotate1DNbTimes instead.
9802 print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
9803 return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
9805 ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
9806 # This method is DEPRECATED. Use MultiRotate2DByStep() instead.
9807 @ManageTransactions("TrsfOp")
9808 def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
9810 The same, as MultiRotate2DByStep(), but theAngle is in degrees.
9811 This method is DEPRECATED. Use MultiRotate2DByStep() instead.
9814 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
9816 print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
9817 theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
9818 anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
9819 RaiseIfFailed("MultiRotate2D", self.TrsfOp)
9820 anObj.SetParameters(Parameters)
9821 self._autoPublish(anObj, theName, "multirotation")
9824 ## The same, as MultiRotate1D(), but axis is given by direction and point
9825 # This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
9826 def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
9828 The same, as geompy.MultiRotate1D, but axis is given by direction and point.
9829 This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
9832 pz = geompy.MakeVertex(0, 0, 100)
9833 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9834 MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
9836 print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
9837 aVec = self.MakeLine(aPoint,aDir)
9838 # note: auto-publishing is done in self.MultiRotate1D()
9839 anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
9842 ## The same, as MultiRotate2D(), but axis is given by direction and point
9843 # This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
9844 def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
9846 The same, as MultiRotate2D(), but axis is given by direction and point
9847 This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
9850 pz = geompy.MakeVertex(0, 0, 100)
9851 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9852 MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
9854 print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
9855 aVec = self.MakeLine(aPoint,aDir)
9856 # note: auto-publishing is done in self.MultiRotate2D()
9857 anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
9860 # end of l3_transform_d
9863 ## @addtogroup l3_local
9866 ## Perform a fillet on all edges of the given shape.
9867 # @param theShape Shape, to perform fillet on.
9868 # @param theR Fillet radius.
9869 # @param theName Object name; when specified, this parameter is used
9870 # for result publication in the study. Otherwise, if automatic
9871 # publication is switched on, default value is used for result name.
9873 # @return New GEOM.GEOM_Object, containing the result shape.
9875 # @ref tui_fillet "Example 1"
9876 # \n @ref swig_MakeFilletAll "Example 2"
9877 @ManageTransactions("LocalOp")
9878 def MakeFilletAll(self, theShape, theR, theName=None):
9880 Perform a fillet on all edges of the given shape.
9883 theShape Shape, to perform fillet on.
9885 theName Object name; when specified, this parameter is used
9886 for result publication in the study. Otherwise, if automatic
9887 publication is switched on, default value is used for result name.
9890 New GEOM.GEOM_Object, containing the result shape.
9893 filletall = geompy.MakeFilletAll(prism, 10.)
9895 # Example: see GEOM_TestOthers.py
9896 theR,Parameters = ParseParameters(theR)
9897 anObj = self.LocalOp.MakeFilletAll(theShape, theR)
9898 RaiseIfFailed("MakeFilletAll", self.LocalOp)
9899 anObj.SetParameters(Parameters)
9900 self._autoPublish(anObj, theName, "fillet")
9903 ## Perform a fillet on the specified edges/faces of the given shape
9904 # @param theShape Shape, to perform fillet on.
9905 # @param theR Fillet radius.
9906 # @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
9907 # @param theListShapes Global indices of edges/faces to perform fillet on.
9908 # @param theName Object name; when specified, this parameter is used
9909 # for result publication in the study. Otherwise, if automatic
9910 # publication is switched on, default value is used for result name.
9912 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
9914 # @return New GEOM.GEOM_Object, containing the result shape.
9916 # @ref tui_fillet "Example"
9917 @ManageTransactions("LocalOp")
9918 def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
9920 Perform a fillet on the specified edges/faces of the given shape
9923 theShape Shape, to perform fillet on.
9925 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
9926 theListShapes Global indices of edges/faces to perform fillet on.
9927 theName Object name; when specified, this parameter is used
9928 for result publication in the study. Otherwise, if automatic
9929 publication is switched on, default value is used for result name.
9932 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
9935 New GEOM.GEOM_Object, containing the result shape.
9938 # get the list of IDs (IDList) for the fillet
9939 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
9941 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
9942 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
9943 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
9944 # make a fillet on the specified edges of the given shape
9945 fillet = geompy.MakeFillet(prism, 10., geompy.ShapeType["EDGE"], IDlist_e)
9947 # Example: see GEOM_TestAll.py
9948 theR,Parameters = ParseParameters(theR)
9950 if theShapeType == self.ShapeType["EDGE"]:
9951 anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
9952 RaiseIfFailed("MakeFilletEdges", self.LocalOp)
9954 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
9955 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
9956 anObj.SetParameters(Parameters)
9957 self._autoPublish(anObj, theName, "fillet")
9960 ## The same that MakeFillet() but with two Fillet Radius R1 and R2
9961 @ManageTransactions("LocalOp")
9962 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
9964 The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
9967 # get the list of IDs (IDList) for the fillet
9968 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
9970 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
9971 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
9972 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
9973 # make a fillet on the specified edges of the given shape
9974 fillet = geompy.MakeFillet(prism, 10., 15., geompy.ShapeType["EDGE"], IDlist_e)
9976 theR1,theR2,Parameters = ParseParameters(theR1,theR2)
9978 if theShapeType == self.ShapeType["EDGE"]:
9979 anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
9980 RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
9982 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
9983 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
9984 anObj.SetParameters(Parameters)
9985 self._autoPublish(anObj, theName, "fillet")
9988 ## Perform a fillet on the specified edges of the given shape
9989 # @param theShape Wire Shape to perform fillet on.
9990 # @param theR Fillet radius.
9991 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
9992 # \note Global index of sub-shape can be obtained, using method GetSubShapeID()
9993 # \note The list of vertices could be empty,
9994 # in this case fillet will done done at all vertices in wire
9995 # @param doIgnoreSecantVertices If FALSE, fillet radius is always limited
9996 # by the length of the edges, nearest to the fillet vertex.
9997 # But sometimes the next edge is C1 continuous with the one, nearest to
9998 # the fillet point, and such two (or more) edges can be united to allow
9999 # bigger radius. Set this flag to TRUE to allow collinear edges union,
10000 # thus ignoring the secant vertex (vertices).
10001 # @param theName Object name; when specified, this parameter is used
10002 # for result publication in the study. Otherwise, if automatic
10003 # publication is switched on, default value is used for result name.
10005 # @return New GEOM.GEOM_Object, containing the result shape.
10007 # @ref tui_fillet2d "Example"
10008 @ManageTransactions("LocalOp")
10009 def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
10011 Perform a fillet on the specified edges of the given shape
10014 theShape Wire Shape to perform fillet on.
10015 theR Fillet radius.
10016 theListOfVertexes Global indices of vertexes to perform fillet on.
10017 doIgnoreSecantVertices If FALSE, fillet radius is always limited
10018 by the length of the edges, nearest to the fillet vertex.
10019 But sometimes the next edge is C1 continuous with the one, nearest to
10020 the fillet point, and such two (or more) edges can be united to allow
10021 bigger radius. Set this flag to TRUE to allow collinear edges union,
10022 thus ignoring the secant vertex (vertices).
10023 theName Object name; when specified, this parameter is used
10024 for result publication in the study. Otherwise, if automatic
10025 publication is switched on, default value is used for result name.
10027 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10029 The list of vertices could be empty,in this case fillet will done done at all vertices in wire
10032 New GEOM.GEOM_Object, containing the result shape.
10036 Wire_1 = geompy.MakeWire([Edge_12, Edge_7, Edge_11, Edge_6, Edge_1,Edge_4])
10037 # make fillet at given wire vertices with giver radius
10038 Fillet_1D_1 = geompy.MakeFillet1D(Wire_1, 55, [3, 4, 6, 8, 10])
10040 # Example: see GEOM_TestAll.py
10041 theR,doIgnoreSecantVertices,Parameters = ParseParameters(theR,doIgnoreSecantVertices)
10042 anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
10043 RaiseIfFailed("MakeFillet1D", self.LocalOp)
10044 anObj.SetParameters(Parameters)
10045 self._autoPublish(anObj, theName, "fillet")
10048 ## Perform a fillet at the specified vertices of the given face/shell.
10049 # @param theShape Face or Shell shape to perform fillet on.
10050 # @param theR Fillet radius.
10051 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
10052 # @param theName Object name; when specified, this parameter is used
10053 # for result publication in the study. Otherwise, if automatic
10054 # publication is switched on, default value is used for result name.
10056 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10058 # @return New GEOM.GEOM_Object, containing the result shape.
10060 # @ref tui_fillet2d "Example"
10061 @ManageTransactions("LocalOp")
10062 def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
10064 Perform a fillet at the specified vertices of the given face/shell.
10067 theShape Face or Shell shape to perform fillet on.
10068 theR Fillet radius.
10069 theListOfVertexes Global indices of vertexes to perform fillet on.
10070 theName Object name; when specified, this parameter is used
10071 for result publication in the study. Otherwise, if automatic
10072 publication is switched on, default value is used for result name.
10074 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10077 New GEOM.GEOM_Object, containing the result shape.
10080 face = geompy.MakeFaceHW(100, 100, 1)
10081 fillet2d = geompy.MakeFillet2D(face, 30, [7, 9])
10083 # Example: see GEOM_TestAll.py
10084 theR,Parameters = ParseParameters(theR)
10085 anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
10086 RaiseIfFailed("MakeFillet2D", self.LocalOp)
10087 anObj.SetParameters(Parameters)
10088 self._autoPublish(anObj, theName, "fillet")
10091 ## Perform a symmetric chamfer on all edges of the given shape.
10092 # @param theShape Shape, to perform chamfer on.
10093 # @param theD Chamfer size along each face.
10094 # @param theName Object name; when specified, this parameter is used
10095 # for result publication in the study. Otherwise, if automatic
10096 # publication is switched on, default value is used for result name.
10098 # @return New GEOM.GEOM_Object, containing the result shape.
10100 # @ref tui_chamfer "Example 1"
10101 # \n @ref swig_MakeChamferAll "Example 2"
10102 @ManageTransactions("LocalOp")
10103 def MakeChamferAll(self, theShape, theD, theName=None):
10105 Perform a symmetric chamfer on all edges of the given shape.
10108 theShape Shape, to perform chamfer on.
10109 theD Chamfer size along each face.
10110 theName Object name; when specified, this parameter is used
10111 for result publication in the study. Otherwise, if automatic
10112 publication is switched on, default value is used for result name.
10115 New GEOM.GEOM_Object, containing the result shape.
10118 chamfer_all = geompy.MakeChamferAll(prism, 10.)
10120 # Example: see GEOM_TestOthers.py
10121 theD,Parameters = ParseParameters(theD)
10122 anObj = self.LocalOp.MakeChamferAll(theShape, theD)
10123 RaiseIfFailed("MakeChamferAll", self.LocalOp)
10124 anObj.SetParameters(Parameters)
10125 self._autoPublish(anObj, theName, "chamfer")
10128 ## Perform a chamfer on edges, common to the specified faces,
10129 # with distance D1 on the Face1
10130 # @param theShape Shape, to perform chamfer on.
10131 # @param theD1 Chamfer size along \a theFace1.
10132 # @param theD2 Chamfer size along \a theFace2.
10133 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
10134 # @param theName Object name; when specified, this parameter is used
10135 # for result publication in the study. Otherwise, if automatic
10136 # publication is switched on, default value is used for result name.
10138 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10140 # @return New GEOM.GEOM_Object, containing the result shape.
10142 # @ref tui_chamfer "Example"
10143 @ManageTransactions("LocalOp")
10144 def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
10146 Perform a chamfer on edges, common to the specified faces,
10147 with distance D1 on the Face1
10150 theShape Shape, to perform chamfer on.
10151 theD1 Chamfer size along theFace1.
10152 theD2 Chamfer size along theFace2.
10153 theFace1,theFace2 Global indices of two faces of theShape.
10154 theName Object name; when specified, this parameter is used
10155 for result publication in the study. Otherwise, if automatic
10156 publication is switched on, default value is used for result name.
10159 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10162 New GEOM.GEOM_Object, containing the result shape.
10165 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
10166 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
10167 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
10168 chamfer_e = geompy.MakeChamferEdge(prism, 10., 10., f_ind_1, f_ind_2)
10170 # Example: see GEOM_TestAll.py
10171 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10172 anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
10173 RaiseIfFailed("MakeChamferEdge", self.LocalOp)
10174 anObj.SetParameters(Parameters)
10175 self._autoPublish(anObj, theName, "chamfer")
10178 ## Perform a chamfer on edges
10179 # @param theShape Shape, to perform chamfer on.
10180 # @param theD Chamfer length
10181 # @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10182 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
10183 # @param theName Object name; when specified, this parameter is used
10184 # for result publication in the study. Otherwise, if automatic
10185 # publication is switched on, default value is used for result name.
10187 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10189 # @return New GEOM.GEOM_Object, containing the result shape.
10190 @ManageTransactions("LocalOp")
10191 def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
10193 Perform a chamfer on edges
10196 theShape Shape, to perform chamfer on.
10197 theD1 Chamfer size along theFace1.
10198 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
10199 theFace1,theFace2 Global indices of two faces of theShape.
10200 theName Object name; when specified, this parameter is used
10201 for result publication in the study. Otherwise, if automatic
10202 publication is switched on, default value is used for result name.
10205 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10208 New GEOM.GEOM_Object, containing the result shape.
10211 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
10212 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
10213 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
10215 chamfer_e = geompy.MakeChamferEdge(prism, 10., ang, f_ind_1, f_ind_2)
10218 if isinstance(theAngle,str):
10220 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10222 theAngle = theAngle*math.pi/180.0
10223 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
10224 RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
10225 anObj.SetParameters(Parameters)
10226 self._autoPublish(anObj, theName, "chamfer")
10229 ## Perform a chamfer on all edges of the specified faces,
10230 # with distance D1 on the first specified face (if several for one edge)
10231 # @param theShape Shape, to perform chamfer on.
10232 # @param theD1 Chamfer size along face from \a theFaces. If both faces,
10233 # connected to the edge, are in \a theFaces, \a theD1
10234 # will be get along face, which is nearer to \a theFaces beginning.
10235 # @param theD2 Chamfer size along another of two faces, connected to the edge.
10236 # @param theFaces Sequence of global indices of faces of \a theShape.
10237 # @param theName Object name; when specified, this parameter is used
10238 # for result publication in the study. Otherwise, if automatic
10239 # publication is switched on, default value is used for result name.
10241 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10243 # @return New GEOM.GEOM_Object, containing the result shape.
10245 # @ref tui_chamfer "Example"
10246 @ManageTransactions("LocalOp")
10247 def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
10249 Perform a chamfer on all edges of the specified faces,
10250 with distance D1 on the first specified face (if several for one edge)
10253 theShape Shape, to perform chamfer on.
10254 theD1 Chamfer size along face from theFaces. If both faces,
10255 connected to the edge, are in theFaces, theD1
10256 will be get along face, which is nearer to theFaces beginning.
10257 theD2 Chamfer size along another of two faces, connected to the edge.
10258 theFaces Sequence of global indices of faces of theShape.
10259 theName Object name; when specified, this parameter is used
10260 for result publication in the study. Otherwise, if automatic
10261 publication is switched on, default value is used for result name.
10263 Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
10266 New GEOM.GEOM_Object, containing the result shape.
10268 # Example: see GEOM_TestAll.py
10269 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10270 anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
10271 RaiseIfFailed("MakeChamferFaces", self.LocalOp)
10272 anObj.SetParameters(Parameters)
10273 self._autoPublish(anObj, theName, "chamfer")
10276 ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
10277 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10279 # @ref swig_FilletChamfer "Example"
10280 @ManageTransactions("LocalOp")
10281 def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
10283 The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
10284 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10287 if isinstance(theAngle,str):
10289 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10291 theAngle = theAngle*math.pi/180.0
10292 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
10293 RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
10294 anObj.SetParameters(Parameters)
10295 self._autoPublish(anObj, theName, "chamfer")
10298 ## Perform a chamfer on edges,
10299 # with distance D1 on the first specified face (if several for one edge)
10300 # @param theShape Shape, to perform chamfer on.
10301 # @param theD1,theD2 Chamfer size
10302 # @param theEdges Sequence of edges of \a theShape.
10303 # @param theName Object name; when specified, this parameter is used
10304 # for result publication in the study. Otherwise, if automatic
10305 # publication is switched on, default value is used for result name.
10307 # @return New GEOM.GEOM_Object, containing the result shape.
10309 # @ref swig_FilletChamfer "Example"
10310 @ManageTransactions("LocalOp")
10311 def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
10313 Perform a chamfer on edges,
10314 with distance D1 on the first specified face (if several for one edge)
10317 theShape Shape, to perform chamfer on.
10318 theD1,theD2 Chamfer size
10319 theEdges Sequence of edges of theShape.
10320 theName Object name; when specified, this parameter is used
10321 for result publication in the study. Otherwise, if automatic
10322 publication is switched on, default value is used for result name.
10325 New GEOM.GEOM_Object, containing the result shape.
10327 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10328 anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
10329 RaiseIfFailed("MakeChamferEdges", self.LocalOp)
10330 anObj.SetParameters(Parameters)
10331 self._autoPublish(anObj, theName, "chamfer")
10334 ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
10335 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10336 @ManageTransactions("LocalOp")
10337 def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
10339 The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
10340 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10343 if isinstance(theAngle,str):
10345 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10347 theAngle = theAngle*math.pi/180.0
10348 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
10349 RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
10350 anObj.SetParameters(Parameters)
10351 self._autoPublish(anObj, theName, "chamfer")
10354 ## @sa MakeChamferEdge(), MakeChamferFaces()
10356 # @ref swig_MakeChamfer "Example"
10357 def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
10359 See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
10361 # Example: see GEOM_TestOthers.py
10363 # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
10364 if aShapeType == self.ShapeType["EDGE"]:
10365 anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
10367 anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
10370 ## Remove material from a solid by extrusion of the base shape on the given distance.
10371 # @param theInit Shape to remove material from. It must be a solid or
10372 # a compound made of a single solid.
10373 # @param theBase Closed edge or wire defining the base shape to be extruded.
10374 # @param theH Prism dimension along the normal to theBase
10375 # @param theAngle Draft angle in degrees.
10376 # @param theInvert If true material changes the direction
10377 # @param theName Object name; when specified, this parameter is used
10378 # for result publication in the study. Otherwise, if automatic
10379 # publication is switched on, default value is used for result name.
10381 # @return New GEOM.GEOM_Object, containing the initial shape with removed material
10383 # @ref tui_creation_prism "Example"
10384 @ManageTransactions("PrimOp")
10385 def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theInvert=False, theName=None):
10387 Add material to a solid by extrusion of the base shape on the given distance.
10390 theInit Shape to remove material from. It must be a solid or a compound made of a single solid.
10391 theBase Closed edge or wire defining the base shape to be extruded.
10392 theH Prism dimension along the normal to theBase
10393 theAngle Draft angle in degrees.
10394 theInvert If true material changes the direction.
10395 theName Object name; when specified, this parameter is used
10396 for result publication in the study. Otherwise, if automatic
10397 publication is switched on, default value is used for result name.
10400 New GEOM.GEOM_Object, containing the initial shape with removed material.
10402 # Example: see GEOM_TestAll.py
10403 theH,theAngle,Parameters = ParseParameters(theH,theAngle)
10404 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False, theInvert)
10405 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
10406 anObj.SetParameters(Parameters)
10407 self._autoPublish(anObj, theName, "extrudedCut")
10410 ## Add material to a solid by extrusion of the base shape on the given distance.
10411 # @param theInit Shape to add material to. It must be a solid or
10412 # a compound made of a single solid.
10413 # @param theBase Closed edge or wire defining the base shape to be extruded.
10414 # @param theH Prism dimension along the normal to theBase
10415 # @param theAngle Draft angle in degrees.
10416 # @param theInvert If true material changes the direction
10417 # @param theName Object name; when specified, this parameter is used
10418 # for result publication in the study. Otherwise, if automatic
10419 # publication is switched on, default value is used for result name.
10421 # @return New GEOM.GEOM_Object, containing the initial shape with added material
10423 # @ref tui_creation_prism "Example"
10424 @ManageTransactions("PrimOp")
10425 def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theInvert=False, theName=None):
10427 Add material to a solid by extrusion of the base shape on the given distance.
10430 theInit Shape to add material to. It must be a solid or a compound made of a single solid.
10431 theBase Closed edge or wire defining the base shape to be extruded.
10432 theH Prism dimension along the normal to theBase
10433 theAngle Draft angle in degrees.
10434 theInvert If true material changes the direction.
10435 theName Object name; when specified, this parameter is used
10436 for result publication in the study. Otherwise, if automatic
10437 publication is switched on, default value is used for result name.
10440 New GEOM.GEOM_Object, containing the initial shape with added material.
10442 # Example: see GEOM_TestAll.py
10443 theH,theAngle,Parameters = ParseParameters(theH,theAngle)
10444 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True, theInvert)
10445 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
10446 anObj.SetParameters(Parameters)
10447 self._autoPublish(anObj, theName, "extrudedBoss")
10453 ## @addtogroup l3_basic_op
10456 ## Perform an Archimde operation on the given shape with given parameters.
10457 # The object presenting the resulting face is returned.
10458 # @param theShape Shape to be put in water.
10459 # @param theWeight Weight of the shape.
10460 # @param theWaterDensity Density of the water.
10461 # @param theMeshDeflection Deflection of the mesh, using to compute the section.
10462 # @param theName Object name; when specified, this parameter is used
10463 # for result publication in the study. Otherwise, if automatic
10464 # publication is switched on, default value is used for result name.
10466 # @return New GEOM.GEOM_Object, containing a section of \a theShape
10467 # by a plane, corresponding to water level.
10469 # @ref tui_archimede "Example"
10470 @ManageTransactions("LocalOp")
10471 def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
10473 Perform an Archimde operation on the given shape with given parameters.
10474 The object presenting the resulting face is returned.
10477 theShape Shape to be put in water.
10478 theWeight Weight of the shape.
10479 theWaterDensity Density of the water.
10480 theMeshDeflection Deflection of the mesh, using to compute the section.
10481 theName Object name; when specified, this parameter is used
10482 for result publication in the study. Otherwise, if automatic
10483 publication is switched on, default value is used for result name.
10486 New GEOM.GEOM_Object, containing a section of theShape
10487 by a plane, corresponding to water level.
10489 # Example: see GEOM_TestAll.py
10490 theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters(
10491 theWeight,theWaterDensity,theMeshDeflection)
10492 anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
10493 RaiseIfFailed("MakeArchimede", self.LocalOp)
10494 anObj.SetParameters(Parameters)
10495 self._autoPublish(anObj, theName, "archimede")
10498 # end of l3_basic_op
10501 ## @addtogroup l2_measure
10504 ## Get point coordinates
10505 # @return [x, y, z]
10507 # @ref tui_point_coordinates_page "Example"
10508 @ManageTransactions("MeasuOp")
10509 def PointCoordinates(self,Point):
10511 Get point coordinates
10516 # Example: see GEOM_TestMeasures.py
10517 aTuple = self.MeasuOp.PointCoordinates(Point)
10518 RaiseIfFailed("PointCoordinates", self.MeasuOp)
10521 ## Get vector coordinates
10522 # @return [x, y, z]
10524 # @ref tui_measurement_tools_page "Example"
10525 def VectorCoordinates(self,Vector):
10527 Get vector coordinates
10533 p1=self.GetFirstVertex(Vector)
10534 p2=self.GetLastVertex(Vector)
10536 X1=self.PointCoordinates(p1)
10537 X2=self.PointCoordinates(p2)
10539 return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
10542 ## Compute cross product
10543 # @return vector w=u^v
10545 # @ref tui_measurement_tools_page "Example"
10546 def CrossProduct(self, Vector1, Vector2):
10548 Compute cross product
10550 Returns: vector w=u^v
10552 u=self.VectorCoordinates(Vector1)
10553 v=self.VectorCoordinates(Vector2)
10554 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])
10558 ## Compute cross product
10559 # @return dot product p=u.v
10561 # @ref tui_measurement_tools_page "Example"
10562 def DotProduct(self, Vector1, Vector2):
10564 Compute cross product
10566 Returns: dot product p=u.v
10568 u=self.VectorCoordinates(Vector1)
10569 v=self.VectorCoordinates(Vector2)
10570 p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
10575 ## Get summarized length of all wires,
10576 # area of surface and volume of the given shape.
10577 # @param theShape Shape to define properties of.
10578 # @return [theLength, theSurfArea, theVolume]\n
10579 # theLength: Summarized length of all wires of the given shape.\n
10580 # theSurfArea: Area of surface of the given shape.\n
10581 # theVolume: Volume of the given shape.
10583 # @ref tui_basic_properties_page "Example"
10584 @ManageTransactions("MeasuOp")
10585 def BasicProperties(self,theShape):
10587 Get summarized length of all wires,
10588 area of surface and volume of the given shape.
10591 theShape Shape to define properties of.
10594 [theLength, theSurfArea, theVolume]
10595 theLength: Summarized length of all wires of the given shape.
10596 theSurfArea: Area of surface of the given shape.
10597 theVolume: Volume of the given shape.
10599 # Example: see GEOM_TestMeasures.py
10600 aTuple = self.MeasuOp.GetBasicProperties(theShape)
10601 RaiseIfFailed("GetBasicProperties", self.MeasuOp)
10604 ## Get parameters of bounding box of the given shape
10605 # @param theShape Shape to obtain bounding box of.
10606 # @param precise TRUE for precise computation; FALSE for fast one.
10607 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
10608 # Xmin,Xmax: Limits of shape along OX axis.
10609 # Ymin,Ymax: Limits of shape along OY axis.
10610 # Zmin,Zmax: Limits of shape along OZ axis.
10612 # @ref tui_bounding_box_page "Example"
10613 @ManageTransactions("MeasuOp")
10614 def BoundingBox (self, theShape, precise=False):
10616 Get parameters of bounding box of the given shape
10619 theShape Shape to obtain bounding box of.
10620 precise TRUE for precise computation; FALSE for fast one.
10623 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
10624 Xmin,Xmax: Limits of shape along OX axis.
10625 Ymin,Ymax: Limits of shape along OY axis.
10626 Zmin,Zmax: Limits of shape along OZ axis.
10628 # Example: see GEOM_TestMeasures.py
10629 aTuple = self.MeasuOp.GetBoundingBox(theShape, precise)
10630 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
10633 ## Get bounding box of the given shape
10634 # @param theShape Shape to obtain bounding box of.
10635 # @param precise TRUE for precise computation; FALSE for fast one.
10636 # @param 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.
10640 # @return New GEOM.GEOM_Object, containing the created box.
10642 # @ref tui_bounding_box_page "Example"
10643 @ManageTransactions("MeasuOp")
10644 def MakeBoundingBox (self, theShape, precise=False, theName=None):
10646 Get bounding box of the given shape
10649 theShape Shape to obtain bounding box of.
10650 precise TRUE for precise computation; FALSE for fast one.
10651 theName Object name; when specified, this parameter is used
10652 for result publication in the study. Otherwise, if automatic
10653 publication is switched on, default value is used for result name.
10656 New GEOM.GEOM_Object, containing the created box.
10658 # Example: see GEOM_TestMeasures.py
10659 anObj = self.MeasuOp.MakeBoundingBox(theShape, precise)
10660 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
10661 self._autoPublish(anObj, theName, "bndbox")
10664 ## Get inertia matrix and moments of inertia of theShape.
10665 # @param theShape Shape to calculate inertia of.
10666 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
10667 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
10668 # Ix,Iy,Iz: Moments of inertia of the given shape.
10670 # @ref tui_inertia_page "Example"
10671 @ManageTransactions("MeasuOp")
10672 def Inertia(self,theShape):
10674 Get inertia matrix and moments of inertia of theShape.
10677 theShape Shape to calculate inertia of.
10680 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
10681 I(1-3)(1-3): Components of the inertia matrix of the given shape.
10682 Ix,Iy,Iz: Moments of inertia of the given shape.
10684 # Example: see GEOM_TestMeasures.py
10685 aTuple = self.MeasuOp.GetInertia(theShape)
10686 RaiseIfFailed("GetInertia", self.MeasuOp)
10689 ## Get if coords are included in the shape (ST_IN or ST_ON)
10690 # @param theShape Shape
10691 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
10692 # @param tolerance to be used (default is 1.0e-7)
10693 # @return list_of_boolean = [res1, res2, ...]
10694 @ManageTransactions("MeasuOp")
10695 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
10697 Get if coords are included in the shape (ST_IN or ST_ON)
10701 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
10702 tolerance to be used (default is 1.0e-7)
10705 list_of_boolean = [res1, res2, ...]
10707 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
10709 ## Get minimal distance between the given shapes.
10710 # @param theShape1,theShape2 Shapes to find minimal distance between.
10711 # @return Value of the minimal distance between the given shapes.
10713 # @ref tui_min_distance_page "Example"
10714 @ManageTransactions("MeasuOp")
10715 def MinDistance(self, theShape1, theShape2):
10717 Get minimal distance between the given shapes.
10720 theShape1,theShape2 Shapes to find minimal distance between.
10723 Value of the minimal distance between the given shapes.
10725 # Example: see GEOM_TestMeasures.py
10726 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
10727 RaiseIfFailed("GetMinDistance", self.MeasuOp)
10730 ## Get minimal distance between the given shapes.
10731 # @param theShape1,theShape2 Shapes to find minimal distance between.
10732 # @return Value of the minimal distance between the given shapes, in form of list
10733 # [Distance, DX, DY, DZ].
10735 # @ref tui_min_distance_page "Example"
10736 @ManageTransactions("MeasuOp")
10737 def MinDistanceComponents(self, theShape1, theShape2):
10739 Get minimal distance between the given shapes.
10742 theShape1,theShape2 Shapes to find minimal distance between.
10745 Value of the minimal distance between the given shapes, in form of list
10746 [Distance, DX, DY, DZ]
10748 # Example: see GEOM_TestMeasures.py
10749 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
10750 RaiseIfFailed("GetMinDistance", self.MeasuOp)
10751 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
10754 ## Get closest points of the given shapes.
10755 # @param theShape1,theShape2 Shapes to find closest points of.
10756 # @return The number of found solutions (-1 in case of infinite number of
10757 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
10759 # @ref tui_min_distance_page "Example"
10760 @ManageTransactions("MeasuOp")
10761 def ClosestPoints (self, theShape1, theShape2):
10763 Get closest points of the given shapes.
10766 theShape1,theShape2 Shapes to find closest points of.
10769 The number of found solutions (-1 in case of infinite number of
10770 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
10772 # Example: see GEOM_TestMeasures.py
10773 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
10774 RaiseIfFailed("ClosestPoints", self.MeasuOp)
10777 ## Get angle between the given shapes in degrees.
10778 # @param theShape1,theShape2 Lines or linear edges to find angle between.
10779 # @note If both arguments are vectors, the angle is computed in accordance
10780 # with their orientations, otherwise the minimum angle is computed.
10781 # @return Value of the angle between the given shapes in degrees.
10783 # @ref tui_angle_page "Example"
10784 @ManageTransactions("MeasuOp")
10785 def GetAngle(self, theShape1, theShape2):
10787 Get angle between the given shapes in degrees.
10790 theShape1,theShape2 Lines or linear edges to find angle between.
10793 If both arguments are vectors, the angle is computed in accordance
10794 with their orientations, otherwise the minimum angle is computed.
10797 Value of the angle between the given shapes in degrees.
10799 # Example: see GEOM_TestMeasures.py
10800 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
10801 RaiseIfFailed("GetAngle", self.MeasuOp)
10804 ## Get angle between the given shapes in radians.
10805 # @param theShape1,theShape2 Lines or linear edges to find angle between.
10806 # @note If both arguments are vectors, the angle is computed in accordance
10807 # with their orientations, otherwise the minimum angle is computed.
10808 # @return Value of the angle between the given shapes in radians.
10810 # @ref tui_angle_page "Example"
10811 @ManageTransactions("MeasuOp")
10812 def GetAngleRadians(self, theShape1, theShape2):
10814 Get angle between the given shapes in radians.
10817 theShape1,theShape2 Lines or linear edges to find angle between.
10821 If both arguments are vectors, the angle is computed in accordance
10822 with their orientations, otherwise the minimum angle is computed.
10825 Value of the angle between the given shapes in radians.
10827 # Example: see GEOM_TestMeasures.py
10828 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
10829 RaiseIfFailed("GetAngle", self.MeasuOp)
10832 ## Get angle between the given vectors in degrees.
10833 # @param theShape1,theShape2 Vectors to find angle between.
10834 # @param theFlag If True, the normal vector is defined by the two vectors cross,
10835 # if False, the opposite vector to the normal vector is used.
10836 # @return Value of the angle between the given vectors in degrees.
10838 # @ref tui_angle_page "Example"
10839 @ManageTransactions("MeasuOp")
10840 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
10842 Get angle between the given vectors in degrees.
10845 theShape1,theShape2 Vectors to find angle between.
10846 theFlag If True, the normal vector is defined by the two vectors cross,
10847 if False, the opposite vector to the normal vector is used.
10850 Value of the angle between the given vectors in degrees.
10852 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
10854 anAngle = 360. - anAngle
10855 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
10858 ## The same as GetAngleVectors, but the result is in radians.
10859 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
10861 Get angle between the given vectors in radians.
10864 theShape1,theShape2 Vectors to find angle between.
10865 theFlag If True, the normal vector is defined by the two vectors cross,
10866 if False, the opposite vector to the normal vector is used.
10869 Value of the angle between the given vectors in radians.
10871 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
10874 ## @name Curve Curvature Measurement
10875 # Methods for receiving radius of curvature of curves
10876 # in the given point
10879 ## Measure curvature of a curve at a point, set by parameter.
10880 # @param theCurve a curve.
10881 # @param theParam parameter.
10882 # @return radius of curvature of \a theCurve.
10884 # @ref swig_todo "Example"
10885 @ManageTransactions("MeasuOp")
10886 def CurveCurvatureByParam(self, theCurve, theParam):
10888 Measure curvature of a curve at a point, set by parameter.
10892 theParam parameter.
10895 radius of curvature of theCurve.
10897 # Example: see GEOM_TestMeasures.py
10898 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
10899 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
10902 ## Measure curvature of a curve at a point.
10903 # @param theCurve a curve.
10904 # @param thePoint given point.
10905 # @return radius of curvature of \a theCurve.
10907 # @ref swig_todo "Example"
10908 @ManageTransactions("MeasuOp")
10909 def CurveCurvatureByPoint(self, theCurve, thePoint):
10911 Measure curvature of a curve at a point.
10915 thePoint given point.
10918 radius of curvature of theCurve.
10920 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
10921 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
10925 ## @name Surface Curvature Measurement
10926 # Methods for receiving max and min radius of curvature of surfaces
10927 # in the given point
10930 ## Measure max radius of curvature of surface.
10931 # @param theSurf the given surface.
10932 # @param theUParam Value of U-parameter on the referenced surface.
10933 # @param theVParam Value of V-parameter on the referenced surface.
10934 # @return max radius of curvature of theSurf.
10936 ## @ref swig_todo "Example"
10937 @ManageTransactions("MeasuOp")
10938 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
10940 Measure max radius of curvature of surface.
10943 theSurf the given surface.
10944 theUParam Value of U-parameter on the referenced surface.
10945 theVParam Value of V-parameter on the referenced surface.
10948 max radius of curvature of theSurf.
10950 # Example: see GEOM_TestMeasures.py
10951 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
10952 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
10955 ## Measure max radius of curvature of surface in the given point
10956 # @param theSurf the given surface.
10957 # @param thePoint given point.
10958 # @return max radius of curvature of theSurf.
10960 ## @ref swig_todo "Example"
10961 @ManageTransactions("MeasuOp")
10962 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
10964 Measure max radius of curvature of surface in the given point.
10967 theSurf the given surface.
10968 thePoint given point.
10971 max radius of curvature of theSurf.
10973 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
10974 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
10977 ## Measure min radius of curvature of surface.
10978 # @param theSurf the given surface.
10979 # @param theUParam Value of U-parameter on the referenced surface.
10980 # @param theVParam Value of V-parameter on the referenced surface.
10981 # @return min radius of curvature of theSurf.
10983 ## @ref swig_todo "Example"
10984 @ManageTransactions("MeasuOp")
10985 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
10987 Measure min radius of curvature of surface.
10990 theSurf the given surface.
10991 theUParam Value of U-parameter on the referenced surface.
10992 theVParam Value of V-parameter on the referenced surface.
10995 Min radius of curvature of theSurf.
10997 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
10998 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
11001 ## Measure min radius of curvature of surface in the given point
11002 # @param theSurf the given surface.
11003 # @param thePoint given point.
11004 # @return min radius of curvature of theSurf.
11006 ## @ref swig_todo "Example"
11007 @ManageTransactions("MeasuOp")
11008 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
11010 Measure min radius of curvature of surface in the given point.
11013 theSurf the given surface.
11014 thePoint given point.
11017 Min radius of curvature of theSurf.
11019 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
11020 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
11024 ## Get min and max tolerances of sub-shapes of theShape
11025 # @param theShape Shape, to get tolerances of.
11026 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
11027 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
11028 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
11029 # VertMin,VertMax: Min and max tolerances of the vertices.
11031 # @ref tui_tolerance_page "Example"
11032 @ManageTransactions("MeasuOp")
11033 def Tolerance(self,theShape):
11035 Get min and max tolerances of sub-shapes of theShape
11038 theShape Shape, to get tolerances of.
11041 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
11042 FaceMin,FaceMax: Min and max tolerances of the faces.
11043 EdgeMin,EdgeMax: Min and max tolerances of the edges.
11044 VertMin,VertMax: Min and max tolerances of the vertices.
11046 # Example: see GEOM_TestMeasures.py
11047 aTuple = self.MeasuOp.GetTolerance(theShape)
11048 RaiseIfFailed("GetTolerance", self.MeasuOp)
11051 ## Obtain description of the given shape (number of sub-shapes of each type)
11052 # @param theShape Shape to be described.
11053 # @return Description of the given shape.
11055 # @ref tui_whatis_page "Example"
11056 @ManageTransactions("MeasuOp")
11057 def WhatIs(self,theShape):
11059 Obtain description of the given shape (number of sub-shapes of each type)
11062 theShape Shape to be described.
11065 Description of the given shape.
11067 # Example: see GEOM_TestMeasures.py
11068 aDescr = self.MeasuOp.WhatIs(theShape)
11069 RaiseIfFailed("WhatIs", self.MeasuOp)
11072 ## Obtain quantity of shapes of the given type in \a theShape.
11073 # If \a theShape is of type \a theType, it is also counted.
11074 # @param theShape Shape to be described.
11075 # @param theType the given ShapeType().
11076 # @return Quantity of shapes of type \a theType in \a theShape.
11078 # @ref tui_measurement_tools_page "Example"
11079 def NbShapes (self, theShape, theType):
11081 Obtain quantity of shapes of the given type in theShape.
11082 If theShape is of type theType, it is also counted.
11085 theShape Shape to be described.
11086 theType the given geompy.ShapeType
11089 Quantity of shapes of type theType in theShape.
11091 # Example: see GEOM_TestMeasures.py
11092 listSh = self.SubShapeAllIDs(theShape, theType)
11096 ## Obtain quantity of shapes of each type in \a theShape.
11097 # The \a theShape is also counted.
11098 # @param theShape Shape to be described.
11099 # @return Dictionary of ShapeType() with bound quantities of shapes.
11101 # @ref tui_measurement_tools_page "Example"
11102 def ShapeInfo (self, theShape):
11104 Obtain quantity of shapes of each type in theShape.
11105 The theShape is also counted.
11108 theShape Shape to be described.
11111 Dictionary of geompy.ShapeType with bound quantities of shapes.
11113 # Example: see GEOM_TestMeasures.py
11115 for typeSh in self.ShapeType:
11116 if typeSh in ( "AUTO", "SHAPE" ): continue
11117 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
11123 def GetCreationInformation(self, theShape):
11125 infos = theShape.GetCreationInformation()
11128 opName = info.operationName
11129 if not opName: opName = "no info available"
11130 if res: res += "\n"
11131 res += "Operation: " + opName
11133 for parVal in info.params:
11134 res += "\n \t%s = %s" % ( parVal.name, parVal.value )
11137 ## Get a point, situated at the centre of mass of theShape.
11138 # @param theShape Shape to define centre of mass of.
11139 # @param theName Object name; when specified, this parameter is used
11140 # for result publication in the study. Otherwise, if automatic
11141 # publication is switched on, default value is used for result name.
11143 # @return New GEOM.GEOM_Object, containing the created point.
11145 # @ref tui_center_of_mass_page "Example"
11146 @ManageTransactions("MeasuOp")
11147 def MakeCDG(self, theShape, theName=None):
11149 Get a point, situated at the centre of mass of theShape.
11152 theShape Shape to define centre of mass of.
11153 theName Object name; when specified, this parameter is used
11154 for result publication in the study. Otherwise, if automatic
11155 publication is switched on, default value is used for result name.
11158 New GEOM.GEOM_Object, containing the created point.
11160 # Example: see GEOM_TestMeasures.py
11161 anObj = self.MeasuOp.GetCentreOfMass(theShape)
11162 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
11163 self._autoPublish(anObj, theName, "centerOfMass")
11166 ## Get a vertex sub-shape by index depended with orientation.
11167 # @param theShape Shape to find sub-shape.
11168 # @param theIndex Index to find vertex by this index (starting from zero)
11169 # @param theName Object name; when specified, this parameter is used
11170 # for result publication in the study. Otherwise, if automatic
11171 # publication is switched on, default value is used for result name.
11173 # @return New GEOM.GEOM_Object, containing the created vertex.
11175 # @ref tui_measurement_tools_page "Example"
11176 @ManageTransactions("MeasuOp")
11177 def GetVertexByIndex(self, theShape, theIndex, theName=None):
11179 Get a vertex sub-shape by index depended with orientation.
11182 theShape Shape to find sub-shape.
11183 theIndex Index to find vertex by this index (starting from zero)
11184 theName Object name; when specified, this parameter is used
11185 for result publication in the study. Otherwise, if automatic
11186 publication is switched on, default value is used for result name.
11189 New GEOM.GEOM_Object, containing the created vertex.
11191 # Example: see GEOM_TestMeasures.py
11192 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
11193 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
11194 self._autoPublish(anObj, theName, "vertex")
11197 ## Get the first vertex of wire/edge depended orientation.
11198 # @param theShape Shape to find first vertex.
11199 # @param theName Object name; when specified, this parameter is used
11200 # for result publication in the study. Otherwise, if automatic
11201 # publication is switched on, default value is used for result name.
11203 # @return New GEOM.GEOM_Object, containing the created vertex.
11205 # @ref tui_measurement_tools_page "Example"
11206 def GetFirstVertex(self, theShape, theName=None):
11208 Get the first vertex of wire/edge depended orientation.
11211 theShape Shape to find first vertex.
11212 theName Object name; when specified, this parameter is used
11213 for result publication in the study. Otherwise, if automatic
11214 publication is switched on, default value is used for result name.
11217 New GEOM.GEOM_Object, containing the created vertex.
11219 # Example: see GEOM_TestMeasures.py
11220 # note: auto-publishing is done in self.GetVertexByIndex()
11221 return self.GetVertexByIndex(theShape, 0, theName)
11223 ## Get the last vertex of wire/edge depended orientation.
11224 # @param theShape Shape to find last vertex.
11225 # @param theName Object name; when specified, this parameter is used
11226 # for result publication in the study. Otherwise, if automatic
11227 # publication is switched on, default value is used for result name.
11229 # @return New GEOM.GEOM_Object, containing the created vertex.
11231 # @ref tui_measurement_tools_page "Example"
11232 def GetLastVertex(self, theShape, theName=None):
11234 Get the last vertex of wire/edge depended orientation.
11237 theShape Shape to find last vertex.
11238 theName Object name; when specified, this parameter is used
11239 for result publication in the study. Otherwise, if automatic
11240 publication is switched on, default value is used for result name.
11243 New GEOM.GEOM_Object, containing the created vertex.
11245 # Example: see GEOM_TestMeasures.py
11246 nb_vert = self.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
11247 # note: auto-publishing is done in self.GetVertexByIndex()
11248 return self.GetVertexByIndex(theShape, (nb_vert-1), theName)
11250 ## Get a normale to the given face. If the point is not given,
11251 # the normale is calculated at the center of mass.
11252 # @param theFace Face to define normale of.
11253 # @param theOptionalPoint Point to compute the normale at.
11254 # @param theName Object name; when specified, this parameter is used
11255 # for result publication in the study. Otherwise, if automatic
11256 # publication is switched on, default value is used for result name.
11258 # @return New GEOM.GEOM_Object, containing the created vector.
11260 # @ref swig_todo "Example"
11261 @ManageTransactions("MeasuOp")
11262 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
11264 Get a normale to the given face. If the point is not given,
11265 the normale is calculated at the center of mass.
11268 theFace Face to define normale of.
11269 theOptionalPoint Point to compute the normale at.
11270 theName Object name; when specified, this parameter is used
11271 for result publication in the study. Otherwise, if automatic
11272 publication is switched on, default value is used for result name.
11275 New GEOM.GEOM_Object, containing the created vector.
11277 # Example: see GEOM_TestMeasures.py
11278 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
11279 RaiseIfFailed("GetNormal", self.MeasuOp)
11280 self._autoPublish(anObj, theName, "normal")
11283 ## Print shape errors obtained from CheckShape.
11284 # @param theShape Shape that was checked.
11285 # @param theShapeErrors the shape errors obtained by CheckShape.
11286 # @param theReturnStatus If 0 the description of problem is printed.
11287 # If 1 the description of problem is returned.
11288 # @return If theReturnStatus is equal to 1 the description is returned.
11289 # Otherwise doesn't return anything.
11291 # @ref tui_check_shape_page "Example"
11292 @ManageTransactions("MeasuOp")
11293 def PrintShapeErrors(self, theShape, theShapeErrors, theReturnStatus = 0):
11295 Print shape errors obtained from CheckShape.
11298 theShape Shape that was checked.
11299 theShapeErrors the shape errors obtained by CheckShape.
11300 theReturnStatus If 0 the description of problem is printed.
11301 If 1 the description of problem is returned.
11304 If theReturnStatus is equal to 1 the description is returned.
11305 Otherwise doesn't return anything.
11307 # Example: see GEOM_TestMeasures.py
11308 Descr = self.MeasuOp.PrintShapeErrors(theShape, theShapeErrors)
11309 if theReturnStatus == 1:
11314 ## Check a topology of the given shape.
11315 # @param theShape Shape to check validity of.
11316 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
11317 # if TRUE, the shape's geometry will be checked also.
11318 # @param theReturnStatus If 0 and if theShape is invalid, a description
11319 # of problem is printed.
11320 # If 1 isValid flag and the description of
11321 # problem is returned.
11322 # If 2 isValid flag and the list of error data
11324 # @return TRUE, if the shape "seems to be valid".
11325 # If theShape is invalid, prints a description of problem.
11326 # If theReturnStatus is equal to 1 the description is returned
11327 # along with IsValid flag.
11328 # If theReturnStatus is equal to 2 the list of error data is
11329 # returned along with IsValid flag.
11331 # @ref tui_check_shape_page "Example"
11332 @ManageTransactions("MeasuOp")
11333 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
11335 Check a topology of the given shape.
11338 theShape Shape to check validity of.
11339 theIsCheckGeom If FALSE, only the shape's topology will be checked,
11340 if TRUE, the shape's geometry will be checked also.
11341 theReturnStatus If 0 and if theShape is invalid, a description
11342 of problem is printed.
11343 If 1 IsValid flag and the description of
11344 problem is returned.
11345 If 2 IsValid flag and the list of error data
11349 TRUE, if the shape "seems to be valid".
11350 If theShape is invalid, prints a description of problem.
11351 If theReturnStatus is equal to 1 the description is returned
11352 along with IsValid flag.
11353 If theReturnStatus is equal to 2 the list of error data is
11354 returned along with IsValid flag.
11356 # Example: see GEOM_TestMeasures.py
11358 (IsValid, ShapeErrors) = self.MeasuOp.CheckShapeWithGeometry(theShape)
11359 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
11361 (IsValid, ShapeErrors) = self.MeasuOp.CheckShape(theShape)
11362 RaiseIfFailed("CheckShape", self.MeasuOp)
11364 if theReturnStatus == 0:
11365 Descr = self.MeasuOp.PrintShapeErrors(theShape, ShapeErrors)
11367 if theReturnStatus == 1:
11368 Descr = self.MeasuOp.PrintShapeErrors(theShape, ShapeErrors)
11369 return (IsValid, Descr)
11370 elif theReturnStatus == 2:
11371 return (IsValid, ShapeErrors)
11374 ## Detect self-intersections in the given shape.
11375 # @param theShape Shape to check.
11376 # @param theCheckLevel is the level of self-intersection check.
11377 # Possible input values are:
11378 # - GEOM.SI_V_V(0) - only V/V interferences
11379 # - GEOM.SI_V_E(1) - V/V and V/E interferences
11380 # - GEOM.SI_E_E(2) - V/V, V/E and E/E interferences
11381 # - GEOM.SI_V_F(3) - V/V, V/E, E/E and V/F interferences
11382 # - GEOM.SI_E_F(4) - V/V, V/E, E/E, V/F and E/F interferences
11383 # - GEOM.SI_ALL(5) - all interferences.
11384 # @return TRUE, if the shape contains no self-intersections.
11386 # @ref tui_check_self_intersections_page "Example"
11387 @ManageTransactions("MeasuOp")
11388 def CheckSelfIntersections(self, theShape, theCheckLevel = GEOM.SI_ALL):
11390 Detect self-intersections in the given shape.
11393 theShape Shape to check.
11394 theCheckLevel is the level of self-intersection check.
11395 Possible input values are:
11396 - GEOM.SI_V_V(0) - only V/V interferences
11397 - GEOM.SI_V_E(1) - V/V and V/E interferences
11398 - GEOM.SI_E_E(2) - V/V, V/E and E/E interferences
11399 - GEOM.SI_V_F(3) - V/V, V/E, E/E and V/F interferences
11400 - GEOM.SI_E_F(4) - V/V, V/E, E/E, V/F and E/F interferences
11401 - GEOM.SI_ALL(5) - all interferences.
11404 TRUE, if the shape contains no self-intersections.
11406 # Example: see GEOM_TestMeasures.py
11407 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape, EnumToLong(theCheckLevel))
11408 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
11411 ## Detect self-intersections of the given shape with algorithm based on mesh intersections.
11412 # @param theShape Shape to check.
11413 # @param theDeflection Linear deflection coefficient that specifies quality of tesselation:
11414 # - if \a theDeflection <= 0, default deflection 0.001 is used
11415 # @param theTolerance Specifies a distance between sub-shapes used for detecting gaps:
11416 # - if \a theTolerance <= 0, algorithm detects intersections (default behavior)
11417 # - if \a theTolerance > 0, algorithm detects gaps
11418 # @return TRUE, if the shape contains no self-intersections.
11420 # @ref tui_check_self_intersections_fast_page "Example"
11421 @ManageTransactions("MeasuOp")
11422 def CheckSelfIntersectionsFast(self, theShape, theDeflection = 0.001, theTolerance = 0.0):
11424 Detect self-intersections of the given shape with algorithm based on mesh intersections.
11427 theShape Shape to check.
11428 theDeflection Linear deflection coefficient that specifies quality of tesselation:
11429 - if theDeflection <= 0, default deflection 0.001 is used
11430 theTolerance Specifies a distance between shapes used for detecting gaps:
11431 - if theTolerance <= 0, algorithm detects intersections (default behavior)
11432 - if theTolerance > 0, algorithm detects gaps
11435 TRUE, if the shape contains no self-intersections.
11437 # Example: see GEOM_TestMeasures.py
11438 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersectionsFast(theShape, theDeflection, theTolerance)
11439 RaiseIfFailed("CheckSelfIntersectionsFast", self.MeasuOp)
11442 ## Detect intersections of the given shapes with algorithm based on mesh intersections.
11443 # @param theShape1 First source object
11444 # @param theShape2 Second source object
11445 # @param theTolerance Specifies a distance between shapes used for detecting gaps:
11446 # - if \a theTolerance <= 0, algorithm detects intersections (default behavior)
11447 # - if \a theTolerance > 0, algorithm detects gaps
11448 # @param theDeflection Linear deflection coefficient that specifies quality of tesselation:
11449 # - if \a theDeflection <= 0, default deflection 0.001 is used
11450 # @return TRUE, if there are intersections (gaps) between source shapes
11451 # @return List of sub-shapes IDs from 1st shape that localize intersection.
11452 # @return List of sub-shapes IDs from 2nd shape that localize intersection.
11454 # @ref tui_fast_intersection_page "Example"
11455 @ManageTransactions("MeasuOp")
11456 def FastIntersect(self, theShape1, theShape2, theTolerance = 0.0, theDeflection = 0.001):
11458 Detect intersections of the given shapes with algorithm based on mesh intersections.
11461 theShape1 First source object
11462 theShape2 Second source object
11463 theTolerance Specifies a distance between shapes used for detecting gaps:
11464 - if theTolerance <= 0, algorithm detects intersections (default behavior)
11465 - if theTolerance > 0, algorithm detects gaps
11466 theDeflection Linear deflection coefficient that specifies quality of tesselation:
11467 - if theDeflection <= 0, default deflection 0.001 is used
11470 TRUE, if there are intersections (gaps) between source shapes
11471 List of sub-shapes IDs from 1st shape that localize intersection.
11472 List of sub-shapes IDs from 2nd shape that localize intersection.
11474 # Example: see GEOM_TestMeasures.py
11475 IsOk, Res1, Res2 = self.MeasuOp.FastIntersect(theShape1, theShape2, theTolerance, theDeflection)
11476 RaiseIfFailed("FastIntersect", self.MeasuOp)
11477 return IsOk, Res1, Res2
11479 ## Get position (LCS) of theShape.
11481 # Origin of the LCS is situated at the shape's center of mass.
11482 # Axes of the LCS are obtained from shape's location or,
11483 # if the shape is a planar face, from position of its plane.
11485 # @param theShape Shape to calculate position of.
11486 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
11487 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
11488 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
11489 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
11491 # @ref swig_todo "Example"
11492 @ManageTransactions("MeasuOp")
11493 def GetPosition(self,theShape):
11495 Get position (LCS) of theShape.
11496 Origin of the LCS is situated at the shape's center of mass.
11497 Axes of the LCS are obtained from shape's location or,
11498 if the shape is a planar face, from position of its plane.
11501 theShape Shape to calculate position of.
11504 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
11505 Ox,Oy,Oz: Coordinates of shape's LCS origin.
11506 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
11507 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
11509 # Example: see GEOM_TestMeasures.py
11510 aTuple = self.MeasuOp.GetPosition(theShape)
11511 RaiseIfFailed("GetPosition", self.MeasuOp)
11514 ## Get kind of theShape.
11516 # @param theShape Shape to get a kind of.
11517 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
11518 # and a list of parameters, describing the shape.
11519 # @note Concrete meaning of each value, returned via \a theIntegers
11520 # or \a theDoubles list depends on the kind() of the shape.
11522 # @ref swig_todo "Example"
11523 @ManageTransactions("MeasuOp")
11524 def KindOfShape(self,theShape):
11526 Get kind of theShape.
11529 theShape Shape to get a kind of.
11532 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
11533 and a list of parameters, describing the shape.
11535 Concrete meaning of each value, returned via theIntegers
11536 or theDoubles list depends on the geompy.kind of the shape
11538 # Example: see GEOM_TestMeasures.py
11539 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
11540 RaiseIfFailed("KindOfShape", self.MeasuOp)
11542 aKind = aRoughTuple[0]
11543 anInts = aRoughTuple[1]
11544 aDbls = aRoughTuple[2]
11546 # Now there is no exception from this rule:
11547 aKindTuple = [aKind] + aDbls + anInts
11549 # If they are we will regroup parameters for such kind of shape.
11551 #if aKind == kind.SOME_KIND:
11552 # # SOME_KIND int int double int double double
11553 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
11557 ## Returns the string that describes if the shell is good for solid.
11558 # This is a support method for MakeSolid.
11560 # @param theShell the shell to be checked.
11561 # @return Returns a string that describes the shell validity for
11562 # solid construction.
11563 @ManageTransactions("MeasuOp")
11564 def _IsGoodForSolid(self, theShell):
11566 Returns the string that describes if the shell is good for solid.
11567 This is a support method for MakeSolid.
11570 theShell the shell to be checked.
11573 Returns a string that describes the shell validity for
11574 solid construction.
11576 aDescr = self.MeasuOp.IsGoodForSolid(theShell)
11579 # end of l2_measure
11582 ## @addtogroup l2_import_export
11585 ## Import a shape from the BREP, IGES, STEP or other file
11586 # (depends on given format) with given name.
11588 # Note: this function is deprecated, it is kept for backward compatibility only
11589 # Use Import<FormatName> instead, where <FormatName> is a name of desirable format to import.
11591 # @param theFileName The file, containing the shape.
11592 # @param theFormatName Specify format for the file reading.
11593 # Available formats can be obtained with InsertOp.ImportTranslators() method.
11594 # If format 'IGES_SCALE' is used instead of 'IGES' or
11595 # format 'STEP_SCALE' is used instead of 'STEP',
11596 # length unit will be set to 'meter' and result model will be scaled.
11597 # @param theName Object name; when specified, this parameter is used
11598 # for result publication in the study. Otherwise, if automatic
11599 # publication is switched on, default value is used for result name.
11601 # @return New GEOM.GEOM_Object, containing the imported shape.
11602 # If material names are imported it returns the list of
11603 # objects. The first one is the imported object followed by
11605 # @note Auto publishing is allowed for the shape itself. Imported
11606 # material groups are not automatically published.
11608 # @ref swig_Import_Export "Example"
11609 @ManageTransactions("InsertOp")
11610 def ImportFile(self, theFileName, theFormatName, theName=None):
11612 Import a shape from the BREP, IGES, STEP or other file
11613 (depends on given format) with given name.
11615 Note: this function is deprecated, it is kept for backward compatibility only
11616 Use Import<FormatName> instead, where <FormatName> is a name of desirable format to import.
11619 theFileName The file, containing the shape.
11620 theFormatName Specify format for the file reading.
11621 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
11622 If format 'IGES_SCALE' is used instead of 'IGES' or
11623 format 'STEP_SCALE' is used instead of 'STEP',
11624 length unit will be set to 'meter' and result model will be scaled.
11625 theName Object name; when specified, this parameter is used
11626 for result publication in the study. Otherwise, if automatic
11627 publication is switched on, default value is used for result name.
11630 New GEOM.GEOM_Object, containing the imported shape.
11631 If material names are imported it returns the list of
11632 objects. The first one is the imported object followed by
11635 Auto publishing is allowed for the shape itself. Imported
11636 material groups are not automatically published.
11638 # Example: see GEOM_TestOthers.py
11640 WARNING: Function ImportFile is deprecated, use Import<FormatName> instead,
11641 where <FormatName> is a name of desirable format for importing.
11643 aListObj = self.InsertOp.ImportFile(theFileName, theFormatName)
11644 RaiseIfFailed("ImportFile", self.InsertOp)
11645 aNbObj = len(aListObj)
11647 self._autoPublish(aListObj[0], theName, "imported")
11652 ## Deprecated analog of ImportFile()
11653 def Import(self, theFileName, theFormatName, theName=None):
11655 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
11657 # note: auto-publishing is done in self.ImportFile()
11658 return self.ImportFile(theFileName, theFormatName, theName)
11660 ## Read a shape from the binary stream, containing its bounding representation (BRep).
11661 # @note This method will not be dumped to the python script by DumpStudy functionality.
11662 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
11663 # @param theStream The BRep binary stream.
11664 # @param theName Object name; when specified, this parameter is used
11665 # for result publication in the study. Otherwise, if automatic
11666 # publication is switched on, default value is used for result name.
11668 # @return New GEOM_Object, containing the shape, read from theStream.
11670 # @ref swig_Import_Export "Example"
11671 @ManageTransactions("InsertOp")
11672 def RestoreShape (self, theStream, theName=None):
11674 Read a shape from the binary stream, containing its bounding representation (BRep).
11677 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
11680 theStream The BRep binary stream.
11681 theName Object name; when specified, this parameter is used
11682 for result publication in the study. Otherwise, if automatic
11683 publication is switched on, default value is used for result name.
11686 New GEOM_Object, containing the shape, read from theStream.
11688 # Example: see GEOM_TestOthers.py
11689 anObj = self.InsertOp.RestoreShape(theStream)
11690 RaiseIfFailed("RestoreShape", self.InsertOp)
11691 self._autoPublish(anObj, theName, "restored")
11694 ## Export the given shape into a file with given name.
11696 # Note: this function is deprecated, it is kept for backward compatibility only
11697 # Use Export<FormatName> instead, where <FormatName> is a name of desirable format to export.
11699 # @param theObject Shape to be stored in the file.
11700 # @param theFileName Name of the file to store the given shape in.
11701 # @param theFormatName Specify format for the shape storage.
11702 # Available formats can be obtained with
11703 # geompy.InsertOp.ExportTranslators()[0] method.
11705 # @ref swig_Import_Export "Example"
11706 @ManageTransactions("InsertOp")
11707 def Export(self, theObject, theFileName, theFormatName):
11709 Export the given shape into a file with given name.
11711 Note: this function is deprecated, it is kept for backward compatibility only
11712 Use Export<FormatName> instead, where <FormatName> is a name of desirable format to export.
11715 theObject Shape to be stored in the file.
11716 theFileName Name of the file to store the given shape in.
11717 theFormatName Specify format for the shape storage.
11718 Available formats can be obtained with
11719 geompy.InsertOp.ExportTranslators()[0] method.
11721 # Example: see GEOM_TestOthers.py
11723 WARNING: Function Export is deprecated, use Export<FormatName> instead,
11724 where <FormatName> is a name of desirable format for exporting.
11726 self.InsertOp.Export(theObject, theFileName, theFormatName)
11727 if self.InsertOp.IsDone() == 0:
11728 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
11732 # end of l2_import_export
11735 ## @addtogroup l3_blocks
11738 ## Create a quadrangle face from four edges. Order of Edges is not
11739 # important. It is not necessary that edges share the same vertex.
11740 # @param E1,E2,E3,E4 Edges for the face bound.
11741 # @param theName Object name; when specified, this parameter is used
11742 # for result publication in the study. Otherwise, if automatic
11743 # publication is switched on, default value is used for result name.
11745 # @return New GEOM.GEOM_Object, containing the created face.
11747 # @ref tui_building_by_blocks_page "Example"
11748 @ManageTransactions("BlocksOp")
11749 def MakeQuad(self, E1, E2, E3, E4, theName=None):
11751 Create a quadrangle face from four edges. Order of Edges is not
11752 important. It is not necessary that edges share the same vertex.
11755 E1,E2,E3,E4 Edges for the face bound.
11756 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.
11761 New GEOM.GEOM_Object, containing the created face.
11764 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
11766 # Example: see GEOM_Spanner.py
11767 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
11768 RaiseIfFailed("MakeQuad", self.BlocksOp)
11769 self._autoPublish(anObj, theName, "quad")
11772 ## Create a quadrangle face on two edges.
11773 # The missing edges will be built by creating the shortest ones.
11774 # @param E1,E2 Two opposite edges for the face.
11775 # @param theName Object name; when specified, this parameter is used
11776 # for result publication in the study. Otherwise, if automatic
11777 # publication is switched on, default value is used for result name.
11779 # @return New GEOM.GEOM_Object, containing the created face.
11781 # @ref tui_building_by_blocks_page "Example"
11782 @ManageTransactions("BlocksOp")
11783 def MakeQuad2Edges(self, E1, E2, theName=None):
11785 Create a quadrangle face on two edges.
11786 The missing edges will be built by creating the shortest ones.
11789 E1,E2 Two opposite edges for the face.
11790 theName Object name; when specified, this parameter is used
11791 for result publication in the study. Otherwise, if automatic
11792 publication is switched on, default value is used for result name.
11795 New GEOM.GEOM_Object, containing the created face.
11799 p1 = geompy.MakeVertex( 0., 0., 0.)
11800 p2 = geompy.MakeVertex(150., 30., 0.)
11801 p3 = geompy.MakeVertex( 0., 120., 50.)
11802 p4 = geompy.MakeVertex( 0., 40., 70.)
11804 edge1 = geompy.MakeEdge(p1, p2)
11805 edge2 = geompy.MakeEdge(p3, p4)
11806 # create a quadrangle face from two edges
11807 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
11809 # Example: see GEOM_Spanner.py
11810 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
11811 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
11812 self._autoPublish(anObj, theName, "quad")
11815 ## Create a quadrangle face with specified corners.
11816 # The missing edges will be built by creating the shortest ones.
11817 # @param V1,V2,V3,V4 Corner vertices for the face.
11818 # @param theName Object name; when specified, this parameter is used
11819 # for result publication in the study. Otherwise, if automatic
11820 # publication is switched on, default value is used for result name.
11822 # @return New GEOM.GEOM_Object, containing the created face.
11824 # @ref tui_building_by_blocks_page "Example 1"
11825 # \n @ref swig_MakeQuad4Vertices "Example 2"
11826 @ManageTransactions("BlocksOp")
11827 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
11829 Create a quadrangle face with specified corners.
11830 The missing edges will be built by creating the shortest ones.
11833 V1,V2,V3,V4 Corner vertices for the face.
11834 theName Object name; when specified, this parameter is used
11835 for result publication in the study. Otherwise, if automatic
11836 publication is switched on, default value is used for result name.
11839 New GEOM.GEOM_Object, containing the created face.
11843 p1 = geompy.MakeVertex( 0., 0., 0.)
11844 p2 = geompy.MakeVertex(150., 30., 0.)
11845 p3 = geompy.MakeVertex( 0., 120., 50.)
11846 p4 = geompy.MakeVertex( 0., 40., 70.)
11847 # create a quadrangle from four points in its corners
11848 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
11850 # Example: see GEOM_Spanner.py
11851 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
11852 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
11853 self._autoPublish(anObj, theName, "quad")
11856 ## Create a hexahedral solid, bounded by the six given faces. Order of
11857 # faces is not important. It is not necessary that Faces share the same edge.
11858 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
11859 # @param theName Object name; when specified, this parameter is used
11860 # for result publication in the study. Otherwise, if automatic
11861 # publication is switched on, default value is used for result name.
11863 # @return New GEOM.GEOM_Object, containing the created solid.
11865 # @ref tui_building_by_blocks_page "Example 1"
11866 # \n @ref swig_MakeHexa "Example 2"
11867 @ManageTransactions("BlocksOp")
11868 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
11870 Create a hexahedral solid, bounded by the six given faces. Order of
11871 faces is not important. It is not necessary that Faces share the same edge.
11874 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
11875 theName Object name; when specified, this parameter is used
11876 for result publication in the study. Otherwise, if automatic
11877 publication is switched on, default value is used for result name.
11880 New GEOM.GEOM_Object, containing the created solid.
11883 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
11885 # Example: see GEOM_Spanner.py
11886 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
11887 RaiseIfFailed("MakeHexa", self.BlocksOp)
11888 self._autoPublish(anObj, theName, "hexa")
11891 ## Create a hexahedral solid between two given faces.
11892 # The missing faces will be built by creating the smallest ones.
11893 # @param F1,F2 Two opposite faces for the hexahedral solid.
11894 # @param theName Object name; when specified, this parameter is used
11895 # for result publication in the study. Otherwise, if automatic
11896 # publication is switched on, default value is used for result name.
11898 # @return New GEOM.GEOM_Object, containing the created solid.
11900 # @ref tui_building_by_blocks_page "Example 1"
11901 # \n @ref swig_MakeHexa2Faces "Example 2"
11902 @ManageTransactions("BlocksOp")
11903 def MakeHexa2Faces(self, F1, F2, theName=None):
11905 Create a hexahedral solid between two given faces.
11906 The missing faces will be built by creating the smallest ones.
11909 F1,F2 Two opposite faces for the hexahedral solid.
11910 theName Object name; when specified, this parameter is used
11911 for result publication in the study. Otherwise, if automatic
11912 publication is switched on, default value is used for result name.
11915 New GEOM.GEOM_Object, containing the created solid.
11918 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
11920 # Example: see GEOM_Spanner.py
11921 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
11922 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
11923 self._autoPublish(anObj, theName, "hexa")
11929 ## @addtogroup l3_blocks_op
11932 ## Get a vertex, found in the given shape by its coordinates.
11933 # @param theShape Block or a compound of blocks.
11934 # @param theX,theY,theZ Coordinates of the sought vertex.
11935 # @param theEpsilon Maximum allowed distance between the resulting
11936 # vertex and point with the given coordinates.
11937 # @param theName Object name; when specified, this parameter is used
11938 # for result publication in the study. Otherwise, if automatic
11939 # publication is switched on, default value is used for result name.
11941 # @return New GEOM.GEOM_Object, containing the found vertex.
11943 # @ref swig_GetPoint "Example"
11944 @ManageTransactions("BlocksOp")
11945 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
11947 Get a vertex, found in the given shape by its coordinates.
11950 theShape Block or a compound of blocks.
11951 theX,theY,theZ Coordinates of the sought vertex.
11952 theEpsilon Maximum allowed distance between the resulting
11953 vertex and point with the given coordinates.
11954 theName Object name; when specified, this parameter is used
11955 for result publication in the study. Otherwise, if automatic
11956 publication is switched on, default value is used for result name.
11959 New GEOM.GEOM_Object, containing the found vertex.
11962 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
11964 # Example: see GEOM_TestOthers.py
11965 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
11966 RaiseIfFailed("GetPoint", self.BlocksOp)
11967 self._autoPublish(anObj, theName, "vertex")
11970 ## Find a vertex of the given shape, which has minimal distance to the given point.
11971 # @param theShape Any shape.
11972 # @param thePoint Point, close to the desired vertex.
11973 # @param theName Object name; when specified, this parameter is used
11974 # for result publication in the study. Otherwise, if automatic
11975 # publication is switched on, default value is used for result name.
11977 # @return New GEOM.GEOM_Object, containing the found vertex.
11979 # @ref swig_GetVertexNearPoint "Example"
11980 @ManageTransactions("BlocksOp")
11981 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
11983 Find a vertex of the given shape, which has minimal distance to the given point.
11986 theShape Any shape.
11987 thePoint Point, close to the desired vertex.
11988 theName Object name; when specified, this parameter is used
11989 for result publication in the study. Otherwise, if automatic
11990 publication is switched on, default value is used for result name.
11993 New GEOM.GEOM_Object, containing the found vertex.
11996 pmidle = geompy.MakeVertex(50, 0, 50)
11997 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
11999 # Example: see GEOM_TestOthers.py
12000 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
12001 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
12002 self._autoPublish(anObj, theName, "vertex")
12005 ## Get an edge, found in the given shape by two given vertices.
12006 # @param theShape Block or a compound of blocks.
12007 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
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 New GEOM.GEOM_Object, containing the found edge.
12014 # @ref swig_GetEdge "Example"
12015 @ManageTransactions("BlocksOp")
12016 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
12018 Get an edge, found in the given shape by two given vertices.
12021 theShape Block or a compound of blocks.
12022 thePoint1,thePoint2 Points, close to the ends of the desired edge.
12023 theName Object name; when specified, this parameter is used
12024 for result publication in the study. Otherwise, if automatic
12025 publication is switched on, default value is used for result name.
12028 New GEOM.GEOM_Object, containing the found edge.
12030 # Example: see GEOM_Spanner.py
12031 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
12032 RaiseIfFailed("GetEdge", self.BlocksOp)
12033 self._autoPublish(anObj, theName, "edge")
12036 ## Find an edge of the given shape, which has minimal distance to the given point.
12037 # @param theShape Block or a compound of blocks.
12038 # @param thePoint Point, close to the desired edge.
12039 # @param theName Object name; when specified, this parameter is used
12040 # for result publication in the study. Otherwise, if automatic
12041 # publication is switched on, default value is used for result name.
12043 # @return New GEOM.GEOM_Object, containing the found edge.
12045 # @ref swig_GetEdgeNearPoint "Example"
12046 @ManageTransactions("BlocksOp")
12047 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
12049 Find an edge of the given shape, which has minimal distance to the given point.
12052 theShape Block or a compound of blocks.
12053 thePoint Point, close to the desired edge.
12054 theName Object name; when specified, this parameter is used
12055 for result publication in the study. Otherwise, if automatic
12056 publication is switched on, default value is used for result name.
12059 New GEOM.GEOM_Object, containing the found edge.
12061 # Example: see GEOM_TestOthers.py
12062 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
12063 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
12064 self._autoPublish(anObj, theName, "edge")
12067 ## Returns a face, found in the given shape by four given corner vertices.
12068 # @param theShape Block or a compound of blocks.
12069 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
12070 # @param theName Object name; when specified, this parameter is used
12071 # for result publication in the study. Otherwise, if automatic
12072 # publication is switched on, default value is used for result name.
12074 # @return New GEOM.GEOM_Object, containing the found face.
12076 # @ref swig_todo "Example"
12077 @ManageTransactions("BlocksOp")
12078 def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
12080 Returns a face, found in the given shape by four given corner vertices.
12083 theShape Block or a compound of blocks.
12084 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
12085 theName Object name; when specified, this parameter is used
12086 for result publication in the study. Otherwise, if automatic
12087 publication is switched on, default value is used for result name.
12090 New GEOM.GEOM_Object, containing the found face.
12092 # Example: see GEOM_Spanner.py
12093 anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
12094 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
12095 self._autoPublish(anObj, theName, "face")
12098 ## Get a face of block, found in the given shape by two given edges.
12099 # @param theShape Block or a compound of blocks.
12100 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
12101 # @param theName Object name; when specified, this parameter is used
12102 # for result publication in the study. Otherwise, if automatic
12103 # publication is switched on, default value is used for result name.
12105 # @return New GEOM.GEOM_Object, containing the found face.
12107 # @ref swig_todo "Example"
12108 @ManageTransactions("BlocksOp")
12109 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
12111 Get a face of block, found in the given shape by two given edges.
12114 theShape Block or a compound of blocks.
12115 theEdge1,theEdge2 Edges, close to the edges of the desired face.
12116 theName Object name; when specified, this parameter is used
12117 for result publication in the study. Otherwise, if automatic
12118 publication is switched on, default value is used for result name.
12121 New GEOM.GEOM_Object, containing the found face.
12123 # Example: see GEOM_Spanner.py
12124 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
12125 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
12126 self._autoPublish(anObj, theName, "face")
12129 ## Find a face, opposite to the given one in the given block.
12130 # @param theBlock Must be a hexahedral solid.
12131 # @param theFace Face of \a theBlock, opposite to the desired face.
12132 # @param theName Object name; when specified, this parameter is used
12133 # for result publication in the study. Otherwise, if automatic
12134 # publication is switched on, default value is used for result name.
12136 # @return New GEOM.GEOM_Object, containing the found face.
12138 # @ref swig_GetOppositeFace "Example"
12139 @ManageTransactions("BlocksOp")
12140 def GetOppositeFace(self, theBlock, theFace, theName=None):
12142 Find a face, opposite to the given one in the given block.
12145 theBlock Must be a hexahedral solid.
12146 theFace Face of theBlock, opposite to the desired face.
12147 theName Object name; when specified, this parameter is used
12148 for result publication in the study. Otherwise, if automatic
12149 publication is switched on, default value is used for result name.
12152 New GEOM.GEOM_Object, containing the found face.
12154 # Example: see GEOM_Spanner.py
12155 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
12156 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
12157 self._autoPublish(anObj, theName, "face")
12160 ## Find a face of the given shape, which has minimal distance to the given point.
12161 # @param theShape Block or a compound of blocks.
12162 # @param thePoint Point, close to the desired face.
12163 # @param theName Object name; when specified, this parameter is used
12164 # for result publication in the study. Otherwise, if automatic
12165 # publication is switched on, default value is used for result name.
12167 # @return New GEOM.GEOM_Object, containing the found face.
12169 # @ref swig_GetFaceNearPoint "Example"
12170 @ManageTransactions("BlocksOp")
12171 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
12173 Find a face of the given shape, which has minimal distance to the given point.
12176 theShape Block or a compound of blocks.
12177 thePoint Point, close to the desired face.
12178 theName Object name; when specified, this parameter is used
12179 for result publication in the study. Otherwise, if automatic
12180 publication is switched on, default value is used for result name.
12183 New GEOM.GEOM_Object, containing the found face.
12185 # Example: see GEOM_Spanner.py
12186 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
12187 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
12188 self._autoPublish(anObj, theName, "face")
12191 ## Find a face of block, whose outside normale has minimal angle with the given vector.
12192 # @param theBlock Block or a compound of blocks.
12193 # @param theVector Vector, close to the normale of the desired face.
12194 # @param theName Object name; when specified, this parameter is used
12195 # for result publication in the study. Otherwise, if automatic
12196 # publication is switched on, default value is used for result name.
12198 # @return New GEOM.GEOM_Object, containing the found face.
12200 # @ref swig_todo "Example"
12201 @ManageTransactions("BlocksOp")
12202 def GetFaceByNormale(self, theBlock, theVector, theName=None):
12204 Find a face of block, whose outside normale has minimal angle with the given vector.
12207 theBlock Block or a compound of blocks.
12208 theVector Vector, close to the normale of the desired face.
12209 theName Object name; when specified, this parameter is used
12210 for result publication in the study. Otherwise, if automatic
12211 publication is switched on, default value is used for result name.
12214 New GEOM.GEOM_Object, containing the found face.
12216 # Example: see GEOM_Spanner.py
12217 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
12218 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
12219 self._autoPublish(anObj, theName, "face")
12222 ## Find all sub-shapes of type \a theShapeType of the given shape,
12223 # which have minimal distance to the given point.
12224 # @param theShape Any shape.
12225 # @param thePoint Point, close to the desired shape.
12226 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
12227 # @param theTolerance The tolerance for distances comparison. All shapes
12228 # with distances to the given point in interval
12229 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
12230 # @param theName Object name; when specified, this parameter is used
12231 # for result publication in the study. Otherwise, if automatic
12232 # publication is switched on, default value is used for result name.
12234 # @return New GEOM_Object, containing a group of all found shapes.
12236 # @ref swig_GetShapesNearPoint "Example"
12237 @ManageTransactions("BlocksOp")
12238 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
12240 Find all sub-shapes of type theShapeType of the given shape,
12241 which have minimal distance to the given point.
12244 theShape Any shape.
12245 thePoint Point, close to the desired shape.
12246 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
12247 theTolerance The tolerance for distances comparison. All shapes
12248 with distances to the given point in interval
12249 [minimal_distance, minimal_distance + theTolerance] will be gathered.
12250 theName Object name; when specified, this parameter is used
12251 for result publication in the study. Otherwise, if automatic
12252 publication is switched on, default value is used for result name.
12255 New GEOM_Object, containing a group of all found shapes.
12257 # Example: see GEOM_TestOthers.py
12258 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
12259 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
12260 self._autoPublish(anObj, theName, "group")
12263 # end of l3_blocks_op
12266 ## @addtogroup l4_blocks_measure
12269 ## Check, if the compound of blocks is given.
12270 # To be considered as a compound of blocks, the
12271 # given shape must satisfy the following conditions:
12272 # - Each element of the compound should be a Block (6 faces).
12273 # - Each face should be a quadrangle, i.e. it should have only 1 wire
12274 # with 4 edges. If <VAR>theIsUseC1</VAR> is set to True and
12275 # there are more than 4 edges in the only wire of a face,
12276 # this face is considered to be quadrangle if it has 4 bounds
12277 # (1 or more edge) of C1 continuity.
12278 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
12279 # - The compound should be connexe.
12280 # - The glue between two quadrangle faces should be applied.
12281 # @param theCompound The compound to check.
12282 # @param theIsUseC1 Flag to check if there are 4 bounds on a face
12283 # taking into account C1 continuity.
12284 # @param theAngTolerance the angular tolerance to check if two neighbor
12285 # edges are codirectional in the common vertex with this
12286 # tolerance. This parameter is used only if
12287 # <VAR>theIsUseC1</VAR> is set to True.
12288 # @return TRUE, if the given shape is a compound of blocks.
12289 # If theCompound is not valid, prints all discovered errors.
12291 # @ref tui_check_compound_of_blocks_page "Example 1"
12292 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
12293 @ManageTransactions("BlocksOp")
12294 def CheckCompoundOfBlocks(self,theCompound, theIsUseC1 = False,
12295 theAngTolerance = 1.e-12):
12297 Check, if the compound of blocks is given.
12298 To be considered as a compound of blocks, the
12299 given shape must satisfy the following conditions:
12300 - Each element of the compound should be a Block (6 faces).
12301 - Each face should be a quadrangle, i.e. it should have only 1 wire
12302 with 4 edges. If theIsUseC1 is set to True and
12303 there are more than 4 edges in the only wire of a face,
12304 this face is considered to be quadrangle if it has 4 bounds
12305 (1 or more edge) of C1 continuity.
12306 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
12307 - The compound should be connexe.
12308 - The glue between two quadrangle faces should be applied.
12311 theCompound The compound to check.
12312 theIsUseC1 Flag to check if there are 4 bounds on a face
12313 taking into account C1 continuity.
12314 theAngTolerance the angular tolerance to check if two neighbor
12315 edges are codirectional in the common vertex with this
12316 tolerance. This parameter is used only if
12317 theIsUseC1 is set to True.
12320 TRUE, if the given shape is a compound of blocks.
12321 If theCompound is not valid, prints all discovered errors.
12323 # Example: see GEOM_Spanner.py
12326 aTolerance = theAngTolerance
12327 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound, aTolerance)
12328 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
12330 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
12334 ## Retrieve all non blocks solids and faces from \a theShape.
12335 # @param theShape The shape to explore.
12336 # @param theIsUseC1 Flag to check if there are 4 bounds on a face
12337 # taking into account C1 continuity.
12338 # @param theAngTolerance the angular tolerance to check if two neighbor
12339 # edges are codirectional in the common vertex with this
12340 # tolerance. This parameter is used only if
12341 # <VAR>theIsUseC1</VAR> is set to True.
12342 # @param theName Object name; when specified, this parameter is used
12343 # for result publication in the study. Otherwise, if automatic
12344 # publication is switched on, default value is used for result name.
12346 # @return A tuple of two GEOM_Objects. The first object is a group of all
12347 # non block solids (= not 6 faces, or with 6 faces, but with the
12348 # presence of non-quadrangular faces). The second object is a
12349 # group of all non quadrangular faces (= faces with more then
12350 # 1 wire or, if <VAR>theIsUseC1</VAR> is set to True, faces
12351 # with 1 wire with not 4 edges that do not form 4 bounds of
12354 # @ref tui_get_non_blocks_page "Example 1"
12355 # \n @ref swig_GetNonBlocks "Example 2"
12356 @ManageTransactions("BlocksOp")
12357 def GetNonBlocks (self, theShape, theIsUseC1 = False,
12358 theAngTolerance = 1.e-12, theName=None):
12360 Retrieve all non blocks solids and faces from theShape.
12363 theShape The shape to explore.
12364 theIsUseC1 Flag to check if there are 4 bounds on a face
12365 taking into account C1 continuity.
12366 theAngTolerance the angular tolerance to check if two neighbor
12367 edges are codirectional in the common vertex with this
12368 tolerance. This parameter is used only if
12369 theIsUseC1 is set to True.
12370 theName Object name; when specified, this parameter is used
12371 for result publication in the study. Otherwise, if automatic
12372 publication is switched on, default value is used for result name.
12375 A tuple of two GEOM_Objects. The first object is a group of all
12376 non block solids (= not 6 faces, or with 6 faces, but with the
12377 presence of non-quadrangular faces). The second object is a
12378 group of all non quadrangular faces (= faces with more then
12379 1 wire or, if <VAR>theIsUseC1</VAR> is set to True, faces
12380 with 1 wire with not 4 edges that do not form 4 bounds of
12384 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
12386 # Example: see GEOM_Spanner.py
12389 aTolerance = theAngTolerance
12390 aTuple = self.BlocksOp.GetNonBlocks(theShape, aTolerance)
12391 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
12392 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
12395 ## Remove all seam and degenerated edges from \a theShape.
12396 # Unite faces and edges, sharing one surface. It means that
12397 # this faces must have references to one C++ surface object (handle).
12398 # @param theShape The compound or single solid to remove irregular edges from.
12399 # @param doUnionFaces If True, then unite faces. If False (the default value),
12400 # do not unite faces.
12401 # @param theName Object name; when specified, this parameter is used
12402 # for result publication in the study. Otherwise, if automatic
12403 # publication is switched on, default value is used for result name.
12405 # @return Improved shape.
12407 # @ref swig_RemoveExtraEdges "Example"
12408 @ManageTransactions("BlocksOp")
12409 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
12411 Remove all seam and degenerated edges from theShape.
12412 Unite faces and edges, sharing one surface. It means that
12413 this faces must have references to one C++ surface object (handle).
12416 theShape The compound or single solid to remove irregular edges from.
12417 doUnionFaces If True, then unite faces. If False (the default value),
12418 do not unite faces.
12419 theName Object name; when specified, this parameter is used
12420 for result publication in the study. Otherwise, if automatic
12421 publication is switched on, default value is used for result name.
12426 # Example: see GEOM_TestOthers.py
12427 nbFacesOptimum = -1 # -1 means do not unite faces
12428 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
12429 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
12430 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
12431 self._autoPublish(anObj, theName, "removeExtraEdges")
12434 ## Performs union faces of \a theShape
12435 # Unite faces sharing one surface. It means that
12436 # these faces must have references to one C++ surface object (handle).
12437 # @param theShape The compound or single solid that contains faces
12438 # to perform union.
12439 # @param theName Object name; when specified, this parameter is used
12440 # for result publication in the study. Otherwise, if automatic
12441 # publication is switched on, default value is used for result name.
12443 # @return Improved shape.
12445 # @ref swig_UnionFaces "Example"
12446 @ManageTransactions("BlocksOp")
12447 def UnionFaces(self, theShape, theName=None):
12449 Performs union faces of theShape.
12450 Unite faces sharing one surface. It means that
12451 these faces must have references to one C++ surface object (handle).
12454 theShape The compound or single solid that contains faces
12456 theName Object name; when specified, this parameter is used
12457 for result publication in the study. Otherwise, if automatic
12458 publication is switched on, default value is used for result name.
12463 # Example: see GEOM_TestOthers.py
12464 anObj = self.BlocksOp.UnionFaces(theShape)
12465 RaiseIfFailed("UnionFaces", self.BlocksOp)
12466 self._autoPublish(anObj, theName, "unionFaces")
12469 ## Check, if the given shape is a blocks compound.
12470 # Fix all detected errors.
12471 # \note Single block can be also fixed by this method.
12472 # @param theShape The compound to check and improve.
12473 # @param theName Object name; when specified, this parameter is used
12474 # for result publication in the study. Otherwise, if automatic
12475 # publication is switched on, default value is used for result name.
12477 # @return Improved compound.
12479 # @ref swig_CheckAndImprove "Example"
12480 @ManageTransactions("BlocksOp")
12481 def CheckAndImprove(self, theShape, theName=None):
12483 Check, if the given shape is a blocks compound.
12484 Fix all detected errors.
12487 Single block can be also fixed by this method.
12490 theShape The compound to check and improve.
12491 theName Object name; when specified, this parameter is used
12492 for result publication in the study. Otherwise, if automatic
12493 publication is switched on, default value is used for result name.
12498 # Example: see GEOM_TestOthers.py
12499 anObj = self.BlocksOp.CheckAndImprove(theShape)
12500 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
12501 self._autoPublish(anObj, theName, "improved")
12504 # end of l4_blocks_measure
12507 ## @addtogroup l3_blocks_op
12510 ## Get all the blocks, contained in the given compound.
12511 # @param theCompound The compound to explode.
12512 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
12513 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
12514 # @param theName Object name; when specified, this parameter is used
12515 # for result publication in the study. Otherwise, if automatic
12516 # publication is switched on, default value is used for result name.
12518 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
12520 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
12522 # @ref tui_explode_on_blocks "Example 1"
12523 # \n @ref swig_MakeBlockExplode "Example 2"
12524 @ManageTransactions("BlocksOp")
12525 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
12527 Get all the blocks, contained in the given compound.
12530 theCompound The compound to explode.
12531 theMinNbFaces If solid has lower number of faces, it is not a block.
12532 theMaxNbFaces If solid has higher number of faces, it is not a block.
12533 theName Object name; when specified, this parameter is used
12534 for result publication in the study. Otherwise, if automatic
12535 publication is switched on, default value is used for result name.
12538 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
12541 List of GEOM.GEOM_Object, containing the retrieved blocks.
12543 # Example: see GEOM_TestOthers.py
12544 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
12545 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
12546 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
12547 for anObj in aList:
12548 anObj.SetParameters(Parameters)
12550 self._autoPublish(aList, theName, "block")
12553 ## Find block, containing the given point inside its volume or on boundary.
12554 # @param theCompound Compound, to find block in.
12555 # @param thePoint Point, close to the desired block. If the point lays on
12556 # boundary between some blocks, we return block with nearest center.
12557 # @param theName Object name; when specified, this parameter is used
12558 # for result publication in the study. Otherwise, if automatic
12559 # publication is switched on, default value is used for result name.
12561 # @return New GEOM.GEOM_Object, containing the found block.
12563 # @ref swig_todo "Example"
12564 @ManageTransactions("BlocksOp")
12565 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
12567 Find block, containing the given point inside its volume or on boundary.
12570 theCompound Compound, to find block in.
12571 thePoint Point, close to the desired block. If the point lays on
12572 boundary between some blocks, we return block with nearest center.
12573 theName Object name; when specified, this parameter is used
12574 for result publication in the study. Otherwise, if automatic
12575 publication is switched on, default value is used for result name.
12578 New GEOM.GEOM_Object, containing the found block.
12580 # Example: see GEOM_Spanner.py
12581 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
12582 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
12583 self._autoPublish(anObj, theName, "block")
12586 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
12587 # @param theCompound Compound, to find block in.
12588 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
12589 # @param theName Object name; when specified, this parameter is used
12590 # for result publication in the study. Otherwise, if automatic
12591 # publication is switched on, default value is used for result name.
12593 # @return New GEOM.GEOM_Object, containing the found block.
12595 # @ref swig_GetBlockByParts "Example"
12596 @ManageTransactions("BlocksOp")
12597 def GetBlockByParts(self, theCompound, theParts, theName=None):
12599 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
12602 theCompound Compound, to find block in.
12603 theParts List of faces and/or edges and/or vertices to be parts of the found block.
12604 theName Object name; when specified, this parameter is used
12605 for result publication in the study. Otherwise, if automatic
12606 publication is switched on, default value is used for result name.
12609 New GEOM_Object, containing the found block.
12611 # Example: see GEOM_TestOthers.py
12612 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
12613 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
12614 self._autoPublish(anObj, theName, "block")
12617 ## Return all blocks, containing all the elements, passed as the parts.
12618 # @param theCompound Compound, to find blocks in.
12619 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
12620 # @param theName Object name; when specified, this parameter is used
12621 # for result publication in the study. Otherwise, if automatic
12622 # publication is switched on, default value is used for result name.
12624 # @return List of GEOM.GEOM_Object, containing the found blocks.
12626 # @ref swig_todo "Example"
12627 @ManageTransactions("BlocksOp")
12628 def GetBlocksByParts(self, theCompound, theParts, theName=None):
12630 Return all blocks, containing all the elements, passed as the parts.
12633 theCompound Compound, to find blocks in.
12634 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
12635 theName Object name; when specified, this parameter is used
12636 for result publication in the study. Otherwise, if automatic
12637 publication is switched on, default value is used for result name.
12640 List of GEOM.GEOM_Object, containing the found blocks.
12642 # Example: see GEOM_Spanner.py
12643 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
12644 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
12645 self._autoPublish(aList, theName, "block")
12648 ## Multi-transformate block and glue the result.
12649 # Transformation is defined so, as to superpose direction faces.
12650 # @param Block Hexahedral solid to be multi-transformed.
12651 # @param DirFace1 ID of First direction face.
12652 # @param DirFace2 ID of Second direction face.
12653 # @param NbTimes Quantity of transformations to be done.
12654 # @param theName Object name; when specified, this parameter is used
12655 # for result publication in the study. Otherwise, if automatic
12656 # publication is switched on, default value is used for result name.
12658 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
12660 # @return New GEOM.GEOM_Object, containing the result shape.
12662 # @ref tui_multi_transformation "Example"
12663 @ManageTransactions("BlocksOp")
12664 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
12666 Multi-transformate block and glue the result.
12667 Transformation is defined so, as to superpose direction faces.
12670 Block Hexahedral solid to be multi-transformed.
12671 DirFace1 ID of First direction face.
12672 DirFace2 ID of Second direction face.
12673 NbTimes Quantity of transformations to be done.
12674 theName Object name; when specified, this parameter is used
12675 for result publication in the study. Otherwise, if automatic
12676 publication is switched on, default value is used for result name.
12679 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
12682 New GEOM.GEOM_Object, containing the result shape.
12684 # Example: see GEOM_Spanner.py
12685 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
12686 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
12687 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
12688 anObj.SetParameters(Parameters)
12689 self._autoPublish(anObj, theName, "transformed")
12692 ## Multi-transformate block and glue the result.
12693 # @param Block Hexahedral solid to be multi-transformed.
12694 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
12695 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
12696 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
12697 # @param theName Object name; when specified, this parameter is used
12698 # for result publication in the study. Otherwise, if automatic
12699 # publication is switched on, default value is used for result name.
12701 # @return New GEOM.GEOM_Object, containing the result shape.
12703 # @ref tui_multi_transformation "Example"
12704 @ManageTransactions("BlocksOp")
12705 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
12706 DirFace1V, DirFace2V, NbTimesV, theName=None):
12708 Multi-transformate block and glue the result.
12711 Block Hexahedral solid to be multi-transformed.
12712 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
12713 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
12714 NbTimesU,NbTimesV Quantity of transformations to be done.
12715 theName Object name; when specified, this parameter is used
12716 for result publication in the study. Otherwise, if automatic
12717 publication is switched on, default value is used for result name.
12720 New GEOM.GEOM_Object, containing the result shape.
12722 # Example: see GEOM_Spanner.py
12723 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
12724 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
12725 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
12726 DirFace1V, DirFace2V, NbTimesV)
12727 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
12728 anObj.SetParameters(Parameters)
12729 self._autoPublish(anObj, theName, "transformed")
12732 ## Build all possible propagation groups.
12733 # Propagation group is a set of all edges, opposite to one (main)
12734 # edge of this group directly or through other opposite edges.
12735 # Notion of Opposite Edge make sence only on quadrangle face.
12736 # @param theShape Shape to build propagation groups on.
12737 # @param theName Object name; when specified, this parameter is used
12738 # for result publication in the study. Otherwise, if automatic
12739 # publication is switched on, default value is used for result name.
12741 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
12743 # @ref swig_Propagate "Example"
12744 @ManageTransactions("BlocksOp")
12745 def Propagate(self, theShape, theName=None):
12747 Build all possible propagation groups.
12748 Propagation group is a set of all edges, opposite to one (main)
12749 edge of this group directly or through other opposite edges.
12750 Notion of Opposite Edge make sence only on quadrangle face.
12753 theShape Shape to build propagation groups on.
12754 theName Object name; when specified, this parameter is used
12755 for result publication in the study. Otherwise, if automatic
12756 publication is switched on, default value is used for result name.
12759 List of GEOM.GEOM_Object, each of them is a propagation group.
12761 # Example: see GEOM_TestOthers.py
12762 listChains = self.BlocksOp.Propagate(theShape)
12763 RaiseIfFailed("Propagate", self.BlocksOp)
12764 self._autoPublish(listChains, theName, "propagate")
12767 # end of l3_blocks_op
12770 ## @addtogroup l3_groups
12773 ## Creates a new group which will store sub-shapes of theMainShape
12774 # @param theMainShape is a GEOM object on which the group is selected
12775 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
12776 # @param theName Object name; when specified, this parameter is used
12777 # for result publication in the study. Otherwise, if automatic
12778 # publication is switched on, default value is used for result name.
12780 # @return a newly created GEOM group (GEOM.GEOM_Object)
12782 # @ref tui_working_with_groups_page "Example 1"
12783 # \n @ref swig_CreateGroup "Example 2"
12784 @ManageTransactions("GroupOp")
12785 def CreateGroup(self, theMainShape, theShapeType, theName=None):
12787 Creates a new group which will store sub-shapes of theMainShape
12790 theMainShape is a GEOM object on which the group is selected
12791 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
12792 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
12793 theName Object name; when specified, this parameter is used
12794 for result publication in the study. Otherwise, if automatic
12795 publication is switched on, default value is used for result name.
12798 a newly created GEOM group
12801 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
12804 # Example: see GEOM_TestOthers.py
12805 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
12806 RaiseIfFailed("CreateGroup", self.GroupOp)
12807 self._autoPublish(anObj, theName, "group")
12810 ## Adds a sub-object with ID theSubShapeId to the group
12811 # @param theGroup is a GEOM group to which the new sub-shape is added
12812 # @param theSubShapeID is a sub-shape ID in the main object.
12813 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
12815 # @ref tui_working_with_groups_page "Example"
12816 @ManageTransactions("GroupOp")
12817 def AddObject(self,theGroup, theSubShapeID):
12819 Adds a sub-object with ID theSubShapeId to the group
12822 theGroup is a GEOM group to which the new sub-shape is added
12823 theSubShapeID is a sub-shape ID in the main object.
12826 Use method GetSubShapeID() to get an unique ID of the sub-shape
12828 # Example: see GEOM_TestOthers.py
12829 self.GroupOp.AddObject(theGroup, theSubShapeID)
12830 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
12831 RaiseIfFailed("AddObject", self.GroupOp)
12835 ## Removes a sub-object with ID \a theSubShapeId from the group
12836 # @param theGroup is a GEOM group from which the new sub-shape is removed
12837 # @param theSubShapeID is a sub-shape ID in the main object.
12838 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
12840 # @ref tui_working_with_groups_page "Example"
12841 @ManageTransactions("GroupOp")
12842 def RemoveObject(self,theGroup, theSubShapeID):
12844 Removes a sub-object with ID theSubShapeId from the group
12847 theGroup is a GEOM group from which the new sub-shape is removed
12848 theSubShapeID is a sub-shape ID in the main object.
12851 Use method GetSubShapeID() to get an unique ID of the sub-shape
12853 # Example: see GEOM_TestOthers.py
12854 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
12855 RaiseIfFailed("RemoveObject", self.GroupOp)
12858 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12859 # @param theGroup is a GEOM group to which the new sub-shapes are added.
12860 # @param theSubShapes is a list of sub-shapes to be added.
12862 # @ref tui_working_with_groups_page "Example"
12863 @ManageTransactions("GroupOp")
12864 def UnionList (self,theGroup, theSubShapes):
12866 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12869 theGroup is a GEOM group to which the new sub-shapes are added.
12870 theSubShapes is a list of sub-shapes to be added.
12872 # Example: see GEOM_TestOthers.py
12873 self.GroupOp.UnionList(theGroup, theSubShapes)
12874 RaiseIfFailed("UnionList", self.GroupOp)
12877 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12878 # @param theGroup is a GEOM group to which the new sub-shapes are added.
12879 # @param theSubShapes is a list of indices of sub-shapes to be added.
12881 # @ref swig_UnionIDs "Example"
12882 @ManageTransactions("GroupOp")
12883 def UnionIDs(self,theGroup, theSubShapes):
12885 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12888 theGroup is a GEOM group to which the new sub-shapes are added.
12889 theSubShapes is a list of indices of sub-shapes to be added.
12891 # Example: see GEOM_TestOthers.py
12892 self.GroupOp.UnionIDs(theGroup, theSubShapes)
12893 RaiseIfFailed("UnionIDs", self.GroupOp)
12896 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
12897 # @param theGroup is a GEOM group from which the sub-shapes are removed.
12898 # @param theSubShapes is a list of sub-shapes to be removed.
12900 # @ref tui_working_with_groups_page "Example"
12901 @ManageTransactions("GroupOp")
12902 def DifferenceList (self,theGroup, theSubShapes):
12904 Removes from the group all the given shapes. No errors, if some shapes are not included.
12907 theGroup is a GEOM group from which the sub-shapes are removed.
12908 theSubShapes is a list of sub-shapes to be removed.
12910 # Example: see GEOM_TestOthers.py
12911 self.GroupOp.DifferenceList(theGroup, theSubShapes)
12912 RaiseIfFailed("DifferenceList", self.GroupOp)
12915 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
12916 # @param theGroup is a GEOM group from which the sub-shapes are removed.
12917 # @param theSubShapes is a list of indices of sub-shapes to be removed.
12919 # @ref swig_DifferenceIDs "Example"
12920 @ManageTransactions("GroupOp")
12921 def DifferenceIDs(self,theGroup, theSubShapes):
12923 Removes from the group all the given shapes. No errors, if some shapes are not included.
12926 theGroup is a GEOM group from which the sub-shapes are removed.
12927 theSubShapes is a list of indices of sub-shapes to be removed.
12929 # Example: see GEOM_TestOthers.py
12930 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
12931 RaiseIfFailed("DifferenceIDs", self.GroupOp)
12934 ## Union of two groups.
12935 # New group is created. It will contain all entities
12936 # which are present in groups theGroup1 and theGroup2.
12937 # @param theGroup1, theGroup2 are the initial GEOM groups
12938 # to create the united group from.
12939 # @param theName Object name; when specified, this parameter is used
12940 # for result publication in the study. Otherwise, if automatic
12941 # publication is switched on, default value is used for result name.
12943 # @return a newly created GEOM group.
12945 # @ref tui_union_groups_anchor "Example"
12946 @ManageTransactions("GroupOp")
12947 def UnionGroups (self, theGroup1, theGroup2, theName=None):
12949 Union of two groups.
12950 New group is created. It will contain all entities
12951 which are present in groups theGroup1 and theGroup2.
12954 theGroup1, theGroup2 are the initial GEOM groups
12955 to create the united group from.
12956 theName Object name; when specified, this parameter is used
12957 for result publication in the study. Otherwise, if automatic
12958 publication is switched on, default value is used for result name.
12961 a newly created GEOM group.
12963 # Example: see GEOM_TestOthers.py
12964 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
12965 RaiseIfFailed("UnionGroups", self.GroupOp)
12966 self._autoPublish(aGroup, theName, "group")
12969 ## Intersection of two groups.
12970 # New group is created. It will contain only those entities
12971 # which are present in both groups theGroup1 and theGroup2.
12972 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
12973 # @param theName Object name; when specified, this parameter is used
12974 # for result publication in the study. Otherwise, if automatic
12975 # publication is switched on, default value is used for result name.
12977 # @return a newly created GEOM group.
12979 # @ref tui_intersect_groups_anchor "Example"
12980 @ManageTransactions("GroupOp")
12981 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
12983 Intersection of two groups.
12984 New group is created. It will contain only those entities
12985 which are present in both groups theGroup1 and theGroup2.
12988 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
12989 theName Object name; when specified, this parameter is used
12990 for result publication in the study. Otherwise, if automatic
12991 publication is switched on, default value is used for result name.
12994 a newly created GEOM group.
12996 # Example: see GEOM_TestOthers.py
12997 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
12998 RaiseIfFailed("IntersectGroups", self.GroupOp)
12999 self._autoPublish(aGroup, theName, "group")
13002 ## Cut of two groups.
13003 # New group is created. It will contain entities which are
13004 # present in group theGroup1 but are not present in group theGroup2.
13005 # @param theGroup1 is a GEOM group to include elements of.
13006 # @param theGroup2 is a GEOM group to exclude elements of.
13007 # @param theName Object name; when specified, this parameter is used
13008 # for result publication in the study. Otherwise, if automatic
13009 # publication is switched on, default value is used for result name.
13011 # @return a newly created GEOM group.
13013 # @ref tui_cut_groups_anchor "Example"
13014 @ManageTransactions("GroupOp")
13015 def CutGroups (self, theGroup1, theGroup2, theName=None):
13018 New group is created. It will contain entities which are
13019 present in group theGroup1 but are not present in group theGroup2.
13022 theGroup1 is a GEOM group to include elements of.
13023 theGroup2 is a GEOM group to exclude elements of.
13024 theName Object name; when specified, this parameter is used
13025 for result publication in the study. Otherwise, if automatic
13026 publication is switched on, default value is used for result name.
13029 a newly created GEOM group.
13031 # Example: see GEOM_TestOthers.py
13032 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
13033 RaiseIfFailed("CutGroups", self.GroupOp)
13034 self._autoPublish(aGroup, theName, "group")
13037 ## Union of list of groups.
13038 # New group is created. It will contain all entities that are
13039 # present in groups listed in theGList.
13040 # @param theGList is a list of GEOM groups to create the united group from.
13041 # @param theName Object name; when specified, this parameter is used
13042 # for result publication in the study. Otherwise, if automatic
13043 # publication is switched on, default value is used for result name.
13045 # @return a newly created GEOM group.
13047 # @ref tui_union_groups_anchor "Example"
13048 @ManageTransactions("GroupOp")
13049 def UnionListOfGroups (self, theGList, theName=None):
13051 Union of list of groups.
13052 New group is created. It will contain all entities that are
13053 present in groups listed in theGList.
13056 theGList is a list of GEOM groups to create the united group from.
13057 theName Object name; when specified, this parameter is used
13058 for result publication in the study. Otherwise, if automatic
13059 publication is switched on, default value is used for result name.
13062 a newly created GEOM group.
13064 # Example: see GEOM_TestOthers.py
13065 aGroup = self.GroupOp.UnionListOfGroups(theGList)
13066 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
13067 self._autoPublish(aGroup, theName, "group")
13070 ## Cut of lists of groups.
13071 # New group is created. It will contain only entities
13072 # which are present in groups listed in theGList.
13073 # @param theGList is a list of GEOM groups to include elements of.
13074 # @param theName Object name; when specified, this parameter is used
13075 # for result publication in the study. Otherwise, if automatic
13076 # publication is switched on, default value is used for result name.
13078 # @return a newly created GEOM group.
13080 # @ref tui_intersect_groups_anchor "Example"
13081 @ManageTransactions("GroupOp")
13082 def IntersectListOfGroups (self, theGList, theName=None):
13084 Cut of lists of groups.
13085 New group is created. It will contain only entities
13086 which are present in groups listed in theGList.
13089 theGList is a list of GEOM groups to include elements of.
13090 theName Object name; when specified, this parameter is used
13091 for result publication in the study. Otherwise, if automatic
13092 publication is switched on, default value is used for result name.
13095 a newly created GEOM group.
13097 # Example: see GEOM_TestOthers.py
13098 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
13099 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
13100 self._autoPublish(aGroup, theName, "group")
13103 ## Cut of lists of groups.
13104 # New group is created. It will contain only entities
13105 # which are present in groups listed in theGList1 but
13106 # are not present in groups from theGList2.
13107 # @param theGList1 is a list of GEOM groups to include elements of.
13108 # @param theGList2 is a list of GEOM groups to exclude elements of.
13109 # @param theName Object name; when specified, this parameter is used
13110 # for result publication in the study. Otherwise, if automatic
13111 # publication is switched on, default value is used for result name.
13113 # @return a newly created GEOM group.
13115 # @ref tui_cut_groups_anchor "Example"
13116 @ManageTransactions("GroupOp")
13117 def CutListOfGroups (self, theGList1, theGList2, theName=None):
13119 Cut of lists of groups.
13120 New group is created. It will contain only entities
13121 which are present in groups listed in theGList1 but
13122 are not present in groups from theGList2.
13125 theGList1 is a list of GEOM groups to include elements of.
13126 theGList2 is a list of GEOM groups to exclude elements of.
13127 theName Object name; when specified, this parameter is used
13128 for result publication in the study. Otherwise, if automatic
13129 publication is switched on, default value is used for result name.
13132 a newly created GEOM group.
13134 # Example: see GEOM_TestOthers.py
13135 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
13136 RaiseIfFailed("CutListOfGroups", self.GroupOp)
13137 self._autoPublish(aGroup, theName, "group")
13140 ## Returns a list of sub-objects ID stored in the group
13141 # @param theGroup is a GEOM group for which a list of IDs is requested
13143 # @ref swig_GetObjectIDs "Example"
13144 @ManageTransactions("GroupOp")
13145 def GetObjectIDs(self,theGroup):
13147 Returns a list of sub-objects ID stored in the group
13150 theGroup is a GEOM group for which a list of IDs is requested
13152 # Example: see GEOM_TestOthers.py
13153 ListIDs = self.GroupOp.GetObjects(theGroup)
13154 RaiseIfFailed("GetObjects", self.GroupOp)
13157 ## Returns a type of sub-objects stored in the group
13158 # @param theGroup is a GEOM group which type is returned.
13160 # @ref swig_GetType "Example"
13161 @ManageTransactions("GroupOp")
13162 def GetType(self,theGroup):
13164 Returns a type of sub-objects stored in the group
13167 theGroup is a GEOM group which type is returned.
13169 # Example: see GEOM_TestOthers.py
13170 aType = self.GroupOp.GetType(theGroup)
13171 RaiseIfFailed("GetType", self.GroupOp)
13174 ## Convert a type of geom object from id to string value
13175 # @param theId is a GEOM obect type id.
13176 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
13177 # @ref swig_GetType "Example"
13178 def ShapeIdToType(self, theId):
13180 Convert a type of geom object from id to string value
13183 theId is a GEOM obect type id.
13186 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
13213 return "REVOLUTION"
13261 return "FREE_BOUNDS"
13269 return "THRUSECTIONS"
13271 return "COMPOUNDFILTER"
13273 return "SHAPES_ON_SHAPE"
13275 return "ELLIPSE_ARC"
13277 return "3DSKETCHER"
13283 return "PIPETSHAPE"
13284 return "Shape Id not exist."
13286 ## Returns a main shape associated with the group
13287 # @param theGroup is a GEOM group for which a main shape object is requested
13288 # @return a GEOM object which is a main shape for theGroup
13290 # @ref swig_GetMainShape "Example"
13291 @ManageTransactions("GroupOp")
13292 def GetMainShape(self,theGroup):
13294 Returns a main shape associated with the group
13297 theGroup is a GEOM group for which a main shape object is requested
13300 a GEOM object which is a main shape for theGroup
13302 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
13304 # Example: see GEOM_TestOthers.py
13305 anObj = self.GroupOp.GetMainShape(theGroup)
13306 RaiseIfFailed("GetMainShape", self.GroupOp)
13309 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
13310 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
13311 # @param theShape given shape (see GEOM.GEOM_Object)
13312 # @param min_length minimum length of edges of theShape
13313 # @param max_length maximum length of edges of theShape
13314 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13315 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13316 # @param theName Object name; when specified, this parameter is used
13317 # for result publication in the study. Otherwise, if automatic
13318 # publication is switched on, default value is used for result name.
13320 # @return a newly created GEOM group of edges
13322 # @@ref swig_todo "Example"
13323 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
13325 Create group of edges of theShape, whose length is in range [min_length, max_length].
13326 If include_min/max == 0, edges with length == min/max_length will not be included in result.
13329 theShape given shape
13330 min_length minimum length of edges of theShape
13331 max_length maximum length of edges of theShape
13332 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13333 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13334 theName Object name; when specified, this parameter is used
13335 for result publication in the study. Otherwise, if automatic
13336 publication is switched on, default value is used for result name.
13339 a newly created GEOM group of edges.
13341 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
13342 edges_in_range = []
13344 Props = self.BasicProperties(edge)
13345 if min_length <= Props[0] and Props[0] <= max_length:
13346 if (not include_min) and (min_length == Props[0]):
13349 if (not include_max) and (Props[0] == max_length):
13352 edges_in_range.append(edge)
13354 if len(edges_in_range) <= 0:
13355 print "No edges found by given criteria"
13358 # note: auto-publishing is done in self.CreateGroup()
13359 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
13360 self.UnionList(group_edges, edges_in_range)
13364 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
13365 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
13366 # @param min_length minimum length of edges of selected shape
13367 # @param max_length maximum length of edges of selected shape
13368 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13369 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13370 # @return a newly created GEOM group of edges
13371 # @ref swig_todo "Example"
13372 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
13374 Create group of edges of selected shape, whose length is in range [min_length, max_length].
13375 If include_min/max == 0, edges with length == min/max_length will not be included in result.
13378 min_length minimum length of edges of selected shape
13379 max_length maximum length of edges of selected shape
13380 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13381 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13384 a newly created GEOM group of edges.
13386 nb_selected = sg.SelectedCount()
13387 if nb_selected < 1:
13388 print "Select a shape before calling this function, please."
13390 if nb_selected > 1:
13391 print "Only one shape must be selected"
13394 id_shape = sg.getSelected(0)
13395 shape = IDToObject( id_shape )
13397 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
13401 if include_min: left_str = " <= "
13402 if include_max: right_str = " <= "
13404 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
13405 + left_str + "length" + right_str + `max_length`)
13407 sg.updateObjBrowser(1)
13414 #@@ insert new functions before this line @@ do not remove this line @@#
13416 ## Create a copy of the given object
13418 # @param theOriginal geometry object for copy
13419 # @param theName Object name; when specified, this parameter is used
13420 # for result publication in the study. Otherwise, if automatic
13421 # publication is switched on, default value is used for result name.
13423 # @return New GEOM_Object, containing the copied shape.
13425 # @ingroup l1_geomBuilder_auxiliary
13426 # @ref swig_MakeCopy "Example"
13427 @ManageTransactions("InsertOp")
13428 def MakeCopy(self, theOriginal, theName=None):
13430 Create a copy of the given object
13433 theOriginal geometry object for copy
13434 theName Object name; when specified, this parameter is used
13435 for result publication in the study. Otherwise, if automatic
13436 publication is switched on, default value is used for result name.
13439 New GEOM_Object, containing the copied shape.
13441 Example of usage: Copy = geompy.MakeCopy(Box)
13443 # Example: see GEOM_TestAll.py
13444 anObj = self.InsertOp.MakeCopy(theOriginal)
13445 RaiseIfFailed("MakeCopy", self.InsertOp)
13446 self._autoPublish(anObj, theName, "copy")
13449 ## Add Path to load python scripts from
13450 # @param Path a path to load python scripts from
13451 # @ingroup l1_geomBuilder_auxiliary
13452 def addPath(self,Path):
13454 Add Path to load python scripts from
13457 Path a path to load python scripts from
13459 if (sys.path.count(Path) < 1):
13460 sys.path.append(Path)
13464 ## Load marker texture from the file
13465 # @param Path a path to the texture file
13466 # @return unique texture identifier
13467 # @ingroup l1_geomBuilder_auxiliary
13468 @ManageTransactions("InsertOp")
13469 def LoadTexture(self, Path):
13471 Load marker texture from the file
13474 Path a path to the texture file
13477 unique texture identifier
13479 # Example: see GEOM_TestAll.py
13480 ID = self.InsertOp.LoadTexture(Path)
13481 RaiseIfFailed("LoadTexture", self.InsertOp)
13484 ## Get internal name of the object based on its study entry
13485 # @note This method does not provide an unique identifier of the geometry object.
13486 # @note This is internal function of GEOM component, though it can be used outside it for
13487 # appropriate reason (e.g. for identification of geometry object).
13488 # @param obj geometry object
13489 # @return unique object identifier
13490 # @ingroup l1_geomBuilder_auxiliary
13491 def getObjectID(self, obj):
13493 Get internal name of the object based on its study entry.
13494 Note: this method does not provide an unique identifier of the geometry object.
13495 It is an internal function of GEOM component, though it can be used outside GEOM for
13496 appropriate reason (e.g. for identification of geometry object).
13499 obj geometry object
13502 unique object identifier
13505 entry = salome.ObjectToID(obj)
13506 if entry is not None:
13507 lst = entry.split(":")
13509 ID = lst[-1] # -1 means last item in the list
13510 return "GEOM_" + ID
13515 ## Add marker texture. @a Width and @a Height parameters
13516 # specify width and height of the texture in pixels.
13517 # If @a RowData is @c True, @a Texture parameter should represent texture data
13518 # packed into the byte array. If @a RowData is @c False (default), @a Texture
13519 # parameter should be unpacked string, in which '1' symbols represent opaque
13520 # pixels and '0' represent transparent pixels of the texture bitmap.
13522 # @param Width texture width in pixels
13523 # @param Height texture height in pixels
13524 # @param Texture texture data
13525 # @param RowData if @c True, @a Texture data are packed in the byte stream
13526 # @return unique texture identifier
13527 # @ingroup l1_geomBuilder_auxiliary
13528 @ManageTransactions("InsertOp")
13529 def AddTexture(self, Width, Height, Texture, RowData=False):
13531 Add marker texture. Width and Height parameters
13532 specify width and height of the texture in pixels.
13533 If RowData is True, Texture parameter should represent texture data
13534 packed into the byte array. If RowData is False (default), Texture
13535 parameter should be unpacked string, in which '1' symbols represent opaque
13536 pixels and '0' represent transparent pixels of the texture bitmap.
13539 Width texture width in pixels
13540 Height texture height in pixels
13541 Texture texture data
13542 RowData if True, Texture data are packed in the byte stream
13545 return unique texture identifier
13547 if not RowData: Texture = PackData(Texture)
13548 ID = self.InsertOp.AddTexture(Width, Height, Texture)
13549 RaiseIfFailed("AddTexture", self.InsertOp)
13552 ## Transfer not topological data from one GEOM object to another.
13554 # @param theObjectFrom the source object of non-topological data
13555 # @param theObjectTo the destination object of non-topological data
13556 # @param theFindMethod method to search sub-shapes of theObjectFrom
13557 # in shape theObjectTo. Possible values are: GEOM.FSM_GetInPlace,
13558 # GEOM.FSM_GetInPlaceByHistory and GEOM.FSM_GetInPlace_Old.
13559 # Other values of GEOM.find_shape_method are not supported.
13561 # @return True in case of success; False otherwise.
13563 # @ingroup l1_geomBuilder_auxiliary
13565 # @ref swig_TransferData "Example"
13566 @ManageTransactions("InsertOp")
13567 def TransferData(self, theObjectFrom, theObjectTo,
13568 theFindMethod=GEOM.FSM_GetInPlace):
13570 Transfer not topological data from one GEOM object to another.
13573 theObjectFrom the source object of non-topological data
13574 theObjectTo the destination object of non-topological data
13575 theFindMethod method to search sub-shapes of theObjectFrom
13576 in shape theObjectTo. Possible values are:
13577 GEOM.FSM_GetInPlace, GEOM.FSM_GetInPlaceByHistory
13578 and GEOM.FSM_GetInPlace_Old. Other values of
13579 GEOM.find_shape_method are not supported.
13582 True in case of success; False otherwise.
13584 # Example: see GEOM_TestOthers.py
13586 # Example: see GEOM_TestAll.py
13587 isOk = self.InsertOp.TransferData(theObjectFrom,
13588 theObjectTo, theFindMethod)
13589 RaiseIfFailed("TransferData", self.InsertOp)
13592 ## Creates a new folder object. It is a container for any GEOM objects.
13593 # @param Name name of the container
13594 # @param Father parent object. If None,
13595 # folder under 'Geometry' root object will be created.
13596 # @return a new created folder
13597 # @ingroup l1_publish_data
13598 def NewFolder(self, Name, Father=None):
13600 Create a new folder object. It is an auxiliary container for any GEOM objects.
13603 Name name of the container
13604 Father parent object. If None,
13605 folder under 'Geometry' root object will be created.
13608 a new created folder
13610 if not Father: Father = self.father
13611 return self.CreateFolder(Name, Father)
13613 ## Move object to the specified folder
13614 # @param Object object to move
13615 # @param Folder target folder
13616 # @ingroup l1_publish_data
13617 def PutToFolder(self, Object, Folder):
13619 Move object to the specified folder
13622 Object object to move
13623 Folder target folder
13625 self.MoveToFolder(Object, Folder)
13628 ## Move list of objects to the specified folder
13629 # @param ListOfSO list of objects to move
13630 # @param Folder target folder
13631 # @ingroup l1_publish_data
13632 def PutListToFolder(self, ListOfSO, Folder):
13634 Move list of objects to the specified folder
13637 ListOfSO list of objects to move
13638 Folder target folder
13640 self.MoveListToFolder(ListOfSO, Folder)
13643 ## @addtogroup l2_field
13647 # @param shape the shape the field lies on
13648 # @param name the field name
13649 # @param type type of field data: 0 - bool, 1 - int, 2 - double, 3 - string
13650 # @param dimension dimension of the shape the field lies on
13651 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13652 # @param componentNames names of components
13653 # @return a created field
13654 @ManageTransactions("FieldOp")
13655 def CreateField(self, shape, name, type, dimension, componentNames):
13660 shape the shape the field lies on
13661 name the field name
13662 type type of field data
13663 dimension dimension of the shape the field lies on
13664 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13665 componentNames names of components
13670 if isinstance( type, int ):
13671 if type < 0 or type > 3:
13672 raise RuntimeError, "CreateField : Error: data type must be within [0-3] range"
13673 type = [GEOM.FDT_Bool,GEOM.FDT_Int,GEOM.FDT_Double,GEOM.FDT_String][type]
13675 f = self.FieldOp.CreateField( shape, name, type, dimension, componentNames)
13676 RaiseIfFailed("CreateField", self.FieldOp)
13678 geom._autoPublish( f, "", name)
13681 ## Removes a field from the GEOM component
13682 # @param field the field to remove
13683 def RemoveField(self, field):
13684 "Removes a field from the GEOM component"
13686 if isinstance( field, GEOM._objref_GEOM_Field ):
13687 geom.RemoveObject( field )
13688 elif isinstance( field, geomField ):
13689 geom.RemoveObject( field.field )
13691 raise RuntimeError, "RemoveField() : the object is not a field"
13694 ## Returns number of fields on a shape
13695 @ManageTransactions("FieldOp")
13696 def CountFields(self, shape):
13697 "Returns number of fields on a shape"
13698 nb = self.FieldOp.CountFields( shape )
13699 RaiseIfFailed("CountFields", self.FieldOp)
13702 ## Returns all fields on a shape
13703 @ManageTransactions("FieldOp")
13704 def GetFields(self, shape):
13705 "Returns all fields on a shape"
13706 ff = self.FieldOp.GetFields( shape )
13707 RaiseIfFailed("GetFields", self.FieldOp)
13710 ## Returns a field on a shape by its name
13711 @ManageTransactions("FieldOp")
13712 def GetField(self, shape, name):
13713 "Returns a field on a shape by its name"
13714 f = self.FieldOp.GetField( shape, name )
13715 RaiseIfFailed("GetField", self.FieldOp)
13723 # Register the new proxy for GEOM_Gen
13724 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
13727 ## Field on Geometry
13728 # @ingroup l2_field
13729 class geomField( GEOM._objref_GEOM_Field ):
13731 def __init__(self):
13732 GEOM._objref_GEOM_Field.__init__(self)
13733 self.field = GEOM._objref_GEOM_Field
13736 ## Returns the shape the field lies on
13737 def getShape(self):
13738 "Returns the shape the field lies on"
13739 return self.field.GetShape(self)
13741 ## Returns the field name
13743 "Returns the field name"
13744 return self.field.GetName(self)
13746 ## Returns type of field data as integer [0-3]
13748 "Returns type of field data"
13749 return self.field.GetDataType(self)._v
13751 ## Returns type of field data:
13752 # one of GEOM.FDT_Bool, GEOM.FDT_Int, GEOM.FDT_Double, GEOM.FDT_String
13753 def getTypeEnum(self):
13754 "Returns type of field data"
13755 return self.field.GetDataType(self)
13757 ## Returns dimension of the shape the field lies on:
13758 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13759 def getDimension(self):
13760 """Returns dimension of the shape the field lies on:
13761 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape"""
13762 return self.field.GetDimension(self)
13764 ## Returns names of components
13765 def getComponents(self):
13766 "Returns names of components"
13767 return self.field.GetComponents(self)
13769 ## Adds a time step to the field
13770 # @param step the time step number further used as the step identifier
13771 # @param stamp the time step time
13772 # @param values the values of the time step
13773 def addStep(self, step, stamp, values):
13774 "Adds a time step to the field"
13775 stp = self.field.AddStep( self, step, stamp )
13777 raise RuntimeError, \
13778 "Field.addStep() : Error: step %s already exists in this field"%step
13780 geom._autoPublish( stp, "", "Step %s, %s"%(step,stamp))
13781 self.setValues( step, values )
13784 ## Remove a time step from the field
13785 def removeStep(self,step):
13786 "Remove a time step from the field"
13789 stepObj = self.field.GetStep( self, step )
13791 stepSO = geom.myStudy.FindObjectID( stepObj.GetStudyEntry() )
13794 #traceback.print_exc()
13796 self.field.RemoveStep( self, step )
13798 geom.myBuilder.RemoveObjectWithChildren( stepSO )
13801 ## Returns number of time steps in the field
13802 def countSteps(self):
13803 "Returns number of time steps in the field"
13804 return self.field.CountSteps(self)
13806 ## Returns a list of time step IDs in the field
13807 def getSteps(self):
13808 "Returns a list of time step IDs in the field"
13809 return self.field.GetSteps(self)
13811 ## Returns a time step by its ID
13812 def getStep(self,step):
13813 "Returns a time step by its ID"
13814 stp = self.field.GetStep(self, step)
13816 raise RuntimeError, "Step %s is missing from this field"%step
13819 ## Returns the time of the field step
13820 def getStamp(self,step):
13821 "Returns the time of the field step"
13822 return self.getStep(step).GetStamp()
13824 ## Changes the time of the field step
13825 def setStamp(self, step, stamp):
13826 "Changes the time of the field step"
13827 return self.getStep(step).SetStamp(stamp)
13829 ## Returns values of the field step
13830 def getValues(self, step):
13831 "Returns values of the field step"
13832 return self.getStep(step).GetValues()
13834 ## Changes values of the field step
13835 def setValues(self, step, values):
13836 "Changes values of the field step"
13837 stp = self.getStep(step)
13838 errBeg = "Field.setValues(values) : Error: "
13840 ok = stp.SetValues( values )
13841 except Exception, e:
13843 if excStr.find("WrongPythonType") > 0:
13844 raise RuntimeError, errBeg +\
13845 "wrong type of values, %s values are expected"%str(self.getTypeEnum())[4:]
13846 raise RuntimeError, errBeg + str(e)
13848 nbOK = self.field.GetArraySize(self)
13851 raise RuntimeError, errBeg + "len(values) must be %s but not %s"%(nbOK,nbKO)
13853 raise RuntimeError, errBeg + "failed"
13856 pass # end of class geomField
13858 # Register the new proxy for GEOM_Field
13859 omniORB.registerObjref(GEOM._objref_GEOM_Field._NP_RepositoryId, geomField)
13862 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
13863 # interface to GEOM operations.
13868 # salome.salome_init()
13869 # from salome.geom import geomBuilder
13870 # geompy = geomBuilder.New(salome.myStudy)
13872 # @param study SALOME study, generally obtained by salome.myStudy.
13873 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
13874 # @return geomBuilder instance
13875 def New( study, instance=None):
13877 Create a new geomBuilder instance.The geomBuilder class provides the Python
13878 interface to GEOM operations.
13882 salome.salome_init()
13883 from salome.geom import geomBuilder
13884 geompy = geomBuilder.New(salome.myStudy)
13887 study SALOME study, generally obtained by salome.myStudy.
13888 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
13890 geomBuilder instance
13892 #print "New geomBuilder ", study, instance
13899 geom = geomBuilder()
13900 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
13901 geom.init_geom(study)
13905 # Register methods from the plug-ins in the geomBuilder class
13906 plugins_var = os.environ.get( "GEOM_PluginsList" )
13909 if plugins_var is not None:
13910 plugins = plugins_var.split( ":" )
13911 plugins=filter(lambda x: len(x)>0, plugins)
13912 if plugins is not None:
13913 for pluginName in plugins:
13914 pluginBuilderName = pluginName + "Builder"
13916 exec( "from salome.%s.%s import *" % (pluginName, pluginBuilderName))
13917 except Exception, e:
13918 from salome_utils import verbose
13919 print "Exception while loading %s: %s" % ( pluginBuilderName, e )
13921 exec( "from salome.%s import %s" % (pluginName, pluginBuilderName))
13922 plugin = eval( pluginBuilderName )
13924 # add methods from plugin module to the geomBuilder class
13925 for k in dir( plugin ):
13926 if k[0] == '_': continue
13927 method = getattr( plugin, k )
13928 if type( method ).__name__ == 'function':
13929 if not hasattr( geomBuilder, k ):
13930 setattr( geomBuilder, k, method )