1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2016 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. Please see
6387 # @ref sorting_shapes_page "Description of Sorting Shapes Algorithm".
6388 # If the shape itself matches the type, it is also returned.
6389 # @param aShape Shape to be exploded.
6390 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6391 # @param theName Object name; when specified, this parameter is used
6392 # for result publication in the study. Otherwise, if automatic
6393 # publication is switched on, default value is used for result name.
6395 # @return List of sub-shapes of type theShapeType, contained in theShape.
6397 # @ref swig_SubShapeAllSorted "Example"
6398 @ManageTransactions("ShapesOp")
6399 def SubShapeAllSortedCentres(self, aShape, aType, theName=None):
6401 Explode a shape on sub-shapes of a given type.
6402 Sub-shapes will be sorted taking into account their gravity centers,
6403 to provide stable order of sub-shapes.
6404 If the shape itself matches the type, it is also returned.
6407 aShape Shape to be exploded.
6408 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6409 theName Object name; when specified, this parameter is used
6410 for result publication in the study. Otherwise, if automatic
6411 publication is switched on, default value is used for result name.
6414 List of sub-shapes of type theShapeType, contained in theShape.
6416 # Example: see GEOM_TestAll.py
6417 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), True)
6418 RaiseIfFailed("SubShapeAllSortedCentres", self.ShapesOp)
6419 self._autoPublish(ListObj, theName, "subshape")
6422 ## Explode a shape on sub-shapes of a given type.
6423 # Sub-shapes will be sorted taking into account their gravity centers,
6424 # to provide stable order of sub-shapes. Please see
6425 # @ref sorting_shapes_page "Description of Sorting Shapes Algorithm".
6426 # @param aShape Shape to be exploded.
6427 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6428 # @return List of IDs of sub-shapes.
6430 # @ref swig_all_decompose "Example"
6431 @ManageTransactions("ShapesOp")
6432 def SubShapeAllSortedCentresIDs(self, aShape, aType):
6434 Explode a shape on sub-shapes of a given type.
6435 Sub-shapes will be sorted taking into account their gravity centers,
6436 to provide stable order of sub-shapes.
6439 aShape Shape to be exploded.
6440 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6443 List of IDs of sub-shapes.
6445 ListIDs = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), True)
6446 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6449 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
6450 # selected by they indices in sorted list of all sub-shapes of type <VAR>aType</VAR>.
6451 # Please see @ref sorting_shapes_page "Description of Sorting Shapes Algorithm".
6452 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6453 # @param aShape Shape to get sub-shape of.
6454 # @param ListOfInd List of sub-shapes indices.
6455 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6456 # @param theName Object name; when specified, this parameter is used
6457 # for result publication in the study. Otherwise, if automatic
6458 # publication is switched on, default value is used for result name.
6460 # @return A compound of sub-shapes of aShape.
6462 # @ref swig_all_decompose "Example"
6463 def SubShapeSortedCentres(self, aShape, aType, ListOfInd, theName=None):
6465 Obtain a compound of sub-shapes of aShape,
6466 selected by they indices in sorted list of all sub-shapes of type aType.
6467 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6470 aShape Shape to get sub-shape of.
6471 ListOfID List of sub-shapes indices.
6472 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6473 theName Object name; when specified, this parameter is used
6474 for result publication in the study. Otherwise, if automatic
6475 publication is switched on, default value is used for result name.
6478 A compound of sub-shapes of aShape.
6480 # Example: see GEOM_TestAll.py
6482 AllShapeIDsList = self.SubShapeAllSortedCentresIDs(aShape, EnumToLong( aType ))
6483 for ind in ListOfInd:
6484 ListOfIDs.append(AllShapeIDsList[ind - 1])
6485 # note: auto-publishing is done in self.GetSubShape()
6486 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6489 ## Extract shapes (excluding the main shape) of given type.
6490 # @param aShape The shape.
6491 # @param aType The shape type (see ShapeType())
6492 # @param isSorted Boolean flag to switch sorting on/off. Please see
6493 # @ref sorting_shapes_page "Description of Sorting Shapes Algorithm".
6494 # @param theName Object name; when specified, this parameter is used
6495 # for result publication in the study. Otherwise, if automatic
6496 # publication is switched on, default value is used for result name.
6498 # @return List of sub-shapes of type aType, contained in aShape.
6500 # @ref swig_FilletChamfer "Example"
6501 @ManageTransactions("ShapesOp")
6502 def ExtractShapes(self, aShape, aType, isSorted = False, theName=None):
6504 Extract shapes (excluding the main shape) of given type.
6508 aType The shape type (see geompy.ShapeType)
6509 isSorted Boolean flag to switch sorting on/off.
6510 theName Object name; when specified, this parameter is used
6511 for result publication in the study. Otherwise, if automatic
6512 publication is switched on, default value is used for result name.
6515 List of sub-shapes of type aType, contained in aShape.
6517 # Example: see GEOM_TestAll.py
6518 ListObj = self.ShapesOp.ExtractSubShapes(aShape, EnumToLong( aType ), isSorted)
6519 RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
6520 self._autoPublish(ListObj, theName, "subshape")
6523 ## Get a set of sub-shapes defined by their unique IDs inside <VAR>aShape</VAR>
6524 # @param aShape Main shape.
6525 # @param anIDs List of unique IDs of sub-shapes inside <VAR>aShape</VAR>.
6526 # @param theName Object name; when specified, this parameter is used
6527 # for result publication in the study. Otherwise, if automatic
6528 # publication is switched on, default value is used for result name.
6529 # @return List of GEOM.GEOM_Object, corresponding to found sub-shapes.
6531 # @ref swig_all_decompose "Example"
6532 @ManageTransactions("ShapesOp")
6533 def SubShapes(self, aShape, anIDs, theName=None):
6535 Get a set of sub-shapes defined by their unique IDs inside theMainShape
6539 anIDs List of unique IDs of sub-shapes inside theMainShape.
6540 theName Object name; when specified, this parameter is used
6541 for result publication in the study. Otherwise, if automatic
6542 publication is switched on, default value is used for result name.
6545 List of GEOM.GEOM_Object, corresponding to found sub-shapes.
6547 # Example: see GEOM_TestAll.py
6548 ListObj = self.ShapesOp.MakeSubShapes(aShape, anIDs)
6549 RaiseIfFailed("SubShapes", self.ShapesOp)
6550 self._autoPublish(ListObj, theName, "subshape")
6553 ## Explode a shape into edges sorted in a row from a starting point.
6554 # @param theShape the shape to be exploded on edges.
6555 # @param theStartPoint the starting point.
6556 # @param theName Object name; when specified, this parameter is used
6557 # for result publication in the study. Otherwise, if automatic
6558 # publication is switched on, default value is used for result name.
6559 # @return List of GEOM.GEOM_Object that is actually an ordered list
6560 # of edges sorted in a row from a starting point.
6562 # @ref swig_GetSubShapeEdgeSorted "Example"
6563 @ManageTransactions("ShapesOp")
6564 def GetSubShapeEdgeSorted(self, theShape, theStartPoint, theName=None):
6566 Explode a shape into edges sorted in a row from a starting point.
6569 theShape the shape to be exploded on edges.
6570 theStartPoint the starting point.
6571 theName Object name; when specified, this parameter is used
6572 for result publication in the study. Otherwise, if automatic
6573 publication is switched on, default value is used for result name.
6576 List of GEOM.GEOM_Object that is actually an ordered list
6577 of edges sorted in a row from a starting point.
6579 # Example: see GEOM_TestAll.py
6580 ListObj = self.ShapesOp.GetSubShapeEdgeSorted(theShape, theStartPoint)
6581 RaiseIfFailed("GetSubShapeEdgeSorted", self.ShapesOp)
6582 self._autoPublish(ListObj, theName, "SortedEdges")
6586 # Return the list of subshapes that satisfies a certain tolerance
6587 # criterion. The user defines the type of shapes to be returned, the
6588 # condition and the tolerance value. The operation is defined for
6589 # faces, edges and vertices only. E.g. for theShapeType FACE,
6590 # theCondition GEOM::CC_GT and theTolerance 1.e-7 this method returns
6591 # all faces of theShape that have tolerances greater then 1.e7.
6593 # @param theShape the shape to be exploded
6594 # @param theShapeType the type of sub-shapes to be returned (see
6595 # ShapeType()). Can have the values FACE, EDGE and VERTEX only.
6596 # @param theCondition the condition type (see GEOM::comparison_condition).
6597 # @param theTolerance the tolerance filter.
6598 # @param theName Object name; when specified, this parameter is used
6599 # for result publication in the study. Otherwise, if automatic
6600 # publication is switched on, default value is used for result name.
6601 # @return the list of shapes that satisfy the conditions.
6603 # @ref swig_GetSubShapesWithTolerance "Example"
6604 @ManageTransactions("ShapesOp")
6605 def GetSubShapesWithTolerance(self, theShape, theShapeType,
6606 theCondition, theTolerance, theName=None):
6608 Return the list of subshapes that satisfies a certain tolerance
6609 criterion. The user defines the type of shapes to be returned, the
6610 condition and the tolerance value. The operation is defined for
6611 faces, edges and vertices only. E.g. for theShapeType FACE,
6612 theCondition GEOM::CC_GT and theTolerance 1.e-7 this method returns
6613 all faces of theShape that have tolerances greater then 1.e7.
6616 theShape the shape to be exploded
6617 theShapeType the type of sub-shapes to be returned (see
6618 ShapeType()). Can have the values FACE,
6619 EDGE and VERTEX only.
6620 theCondition the condition type (see GEOM::comparison_condition).
6621 theTolerance the tolerance filter.
6622 theName Object name; when specified, this parameter is used
6623 for result publication in the study. Otherwise, if automatic
6624 publication is switched on, default value is used for result name.
6627 The list of shapes that satisfy the conditions.
6629 # Example: see GEOM_TestAll.py
6630 ListObj = self.ShapesOp.GetSubShapesWithTolerance(theShape, EnumToLong(theShapeType),
6631 theCondition, theTolerance)
6632 RaiseIfFailed("GetSubShapesWithTolerance", self.ShapesOp)
6633 self._autoPublish(ListObj, theName, "SubShapeWithTolerance")
6636 ## Check if the object is a sub-object of another GEOM object.
6637 # @param aSubObject Checked sub-object (or its parent object, in case if
6638 # \a theSubObjectIndex is non-zero).
6639 # @param anObject An object that is checked for ownership (or its parent object,
6640 # in case if \a theObjectIndex is non-zero).
6641 # @param aSubObjectIndex When non-zero, specifies a sub-shape index that
6642 # identifies a sub-object within its parent specified via \a theSubObject.
6643 # @param anObjectIndex When non-zero, specifies a sub-shape index that
6644 # identifies an object within its parent specified via \a theObject.
6645 # @return TRUE, if the given object contains sub-object.
6646 @ManageTransactions("ShapesOp")
6647 def IsSubShapeBelongsTo(self, aSubObject, anObject, aSubObjectIndex = 0, anObjectIndex = 0):
6649 Check if the object is a sub-object of another GEOM object.
6652 aSubObject Checked sub-object (or its parent object, in case if
6653 \a theSubObjectIndex is non-zero).
6654 anObject An object that is checked for ownership (or its parent object,
6655 in case if \a theObjectIndex is non-zero).
6656 aSubObjectIndex When non-zero, specifies a sub-shape index that
6657 identifies a sub-object within its parent specified via \a theSubObject.
6658 anObjectIndex When non-zero, specifies a sub-shape index that
6659 identifies an object within its parent specified via \a theObject.
6662 TRUE, if the given object contains sub-object.
6664 IsOk = self.ShapesOp.IsSubShapeBelongsTo(aSubObject, aSubObjectIndex, anObject, anObjectIndex)
6665 RaiseIfFailed("IsSubShapeBelongsTo", self.ShapesOp)
6668 ## Perform extraction of sub-shapes from the main shape.
6670 # @param theShape the main shape
6671 # @param theListOfID the list of sub-shape IDs to be extracted from
6673 # @return New GEOM.GEOM_Object, containing the shape without
6674 # extracted sub-shapes.
6676 # @ref swig_MakeExtraction "Example"
6677 @ManageTransactions("ShapesOp")
6678 def MakeExtraction(self, theShape, theListOfID, theName=None):
6680 Perform extraction of sub-shapes from the main shape.
6683 theShape the main shape
6684 theListOfID the list of sub-shape IDs to be extracted from
6688 New GEOM.GEOM_Object, containing the shape without
6689 extracted sub-shapes.
6691 # Example: see GEOM_TestAll.py
6692 (anObj, aStat) = self.ShapesOp.MakeExtraction(theShape, theListOfID)
6693 RaiseIfFailed("MakeExtraction", self.ShapesOp)
6694 self._autoPublish(anObj, theName, "Extraction")
6697 # end of l4_decompose
6700 ## @addtogroup l4_decompose_d
6703 ## Deprecated method
6704 # It works like SubShapeAllSortedCentres(), but wrongly
6705 # defines centres of faces, shells and solids.
6706 @ManageTransactions("ShapesOp")
6707 def SubShapeAllSorted(self, aShape, aType, theName=None):
6710 It works like geompy.SubShapeAllSortedCentres, but wrongly
6711 defines centres of faces, shells and solids.
6713 ListObj = self.ShapesOp.MakeExplode(aShape, EnumToLong( aType ), True)
6714 RaiseIfFailed("MakeExplode", self.ShapesOp)
6715 self._autoPublish(ListObj, theName, "subshape")
6718 ## Deprecated method
6719 # It works like SubShapeAllSortedCentresIDs(), but wrongly
6720 # defines centres of faces, shells and solids.
6721 @ManageTransactions("ShapesOp")
6722 def SubShapeAllSortedIDs(self, aShape, aType):
6725 It works like geompy.SubShapeAllSortedCentresIDs, but wrongly
6726 defines centres of faces, shells and solids.
6728 ListIDs = self.ShapesOp.SubShapeAllIDs(aShape, EnumToLong( aType ), True)
6729 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6732 ## Deprecated method
6733 # It works like SubShapeSortedCentres(), but has a bug
6734 # (wrongly defines centres of faces, shells and solids).
6735 def SubShapeSorted(self, aShape, aType, ListOfInd, theName=None):
6738 It works like geompy.SubShapeSortedCentres, but has a bug
6739 (wrongly defines centres of faces, shells and solids).
6742 AllShapeIDsList = self.SubShapeAllSortedIDs(aShape, EnumToLong( aType ))
6743 for ind in ListOfInd:
6744 ListOfIDs.append(AllShapeIDsList[ind - 1])
6745 # note: auto-publishing is done in self.GetSubShape()
6746 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6749 # end of l4_decompose_d
6752 ## @addtogroup l3_healing
6755 ## Apply a sequence of Shape Healing operators to the given object.
6756 # @param theShape Shape to be processed.
6757 # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
6758 # @param theParameters List of names of parameters
6759 # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
6760 # @param theValues List of values of parameters, in the same order
6761 # as parameters are listed in <VAR>theParameters</VAR> list.
6762 # @param theName Object name; when specified, this parameter is used
6763 # for result publication in the study. Otherwise, if automatic
6764 # publication is switched on, default value is used for result name.
6766 # <b> Operators and Parameters: </b> \n
6768 # * \b FixShape - corrects invalid shapes. \n
6769 # - \b FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them. \n
6770 # - \b FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction. \n
6772 # * \b FixFaceSize - removes small faces, such as spots and strips.\n
6773 # - \b FixFaceSize.Tolerance - defines minimum possible face size. \n
6774 # - \b DropSmallEdges - removes edges, which merge with neighbouring edges. \n
6775 # - \b DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.\n
6776 # - \b DropSmallSolids - either removes small solids or merges them with neighboring ones. \n
6777 # - \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
6778 # - \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
6779 # - \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
6781 # * \b SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical
6782 # surfaces in segments using a certain angle. \n
6783 # - \b SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
6784 # if Angle=180, four if Angle=90, etc). \n
6785 # - \b SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.\n
6787 # * \b SplitClosedFaces - splits closed faces in segments.
6788 # The number of segments depends on the number of splitting points.\n
6789 # - \b SplitClosedFaces.NbSplitPoints - the number of splitting points.\n
6791 # * \b SplitContinuity - splits shapes to reduce continuities of curves and surfaces.\n
6792 # - \b SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.\n
6793 # - \b SplitContinuity.SurfaceContinuity - required continuity for surfaces.\n
6794 # - \b SplitContinuity.CurveContinuity - required continuity for curves.\n
6795 # This and the previous parameters can take the following values:\n
6796 # \b Parametric \b Continuity \n
6797 # \b C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces
6798 # are coincidental. The curves or surfaces may still meet at an angle, giving rise to a sharp corner or edge).\n
6799 # \b C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces are parallel,
6800 # ruling out sharp edges).\n
6801 # \b C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves or surfaces
6802 # are of the same magnitude).\n
6803 # \b CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of curves
6804 # or surfaces (d/du C(u)) are the same at junction. \n
6805 # \b Geometric \b Continuity \n
6806 # \b G1: first derivatives are proportional at junction.\n
6807 # The curve tangents thus have the same direction, but not necessarily the same magnitude.
6808 # i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).\n
6809 # \b G2: first and second derivatives are proportional at junction.
6810 # As the names imply, geometric continuity requires the geometry to be continuous, while parametric
6811 # continuity requires that the underlying parameterization was continuous as well.
6812 # Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.\n
6814 # * \b BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:\n
6815 # - \b BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.\n
6816 # - \b BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.\n
6817 # - \b BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.\n
6818 # - \b BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation
6819 # with the specified parameters.\n
6820 # - \b BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation
6821 # with the specified parameters.\n
6822 # - \b BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.\n
6823 # - \b BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.\n
6824 # - \b BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.\n
6825 # - \b BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.\n
6827 # * \b ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.\n
6828 # - \b ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.\n
6829 # - \b ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.\n
6830 # - \b ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.\n
6831 # - \b ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.\n
6833 # * \b SameParameter - fixes edges of 2D and 3D curves not having the same parameter.\n
6834 # - \b SameParameter.Tolerance3d - defines tolerance for fixing of edges.\n
6837 # @return New GEOM.GEOM_Object, containing processed shape.
6839 # \n @ref tui_shape_processing "Example"
6840 @ManageTransactions("HealOp")
6841 def ProcessShape(self, theShape, theOperators, theParameters, theValues, theName=None):
6843 Apply a sequence of Shape Healing operators to the given object.
6846 theShape Shape to be processed.
6847 theValues List of values of parameters, in the same order
6848 as parameters are listed in theParameters list.
6849 theOperators List of names of operators ('FixShape', 'SplitClosedFaces', etc.).
6850 theParameters List of names of parameters
6851 ('FixShape.Tolerance3d', 'SplitClosedFaces.NbSplitPoints', etc.).
6852 theName Object name; when specified, this parameter is used
6853 for result publication in the study. Otherwise, if automatic
6854 publication is switched on, default value is used for result name.
6856 Operators and Parameters:
6858 * FixShape - corrects invalid shapes.
6859 * FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them.
6860 * FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction.
6861 * FixFaceSize - removes small faces, such as spots and strips.
6862 * FixFaceSize.Tolerance - defines minimum possible face size.
6863 * DropSmallEdges - removes edges, which merge with neighbouring edges.
6864 * DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.
6865 * DropSmallSolids - either removes small solids or merges them with neighboring ones.
6866 * 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.
6867 * 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.
6868 * 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.
6870 * SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical surfaces
6871 in segments using a certain angle.
6872 * SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
6873 if Angle=180, four if Angle=90, etc).
6874 * SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.
6875 * SplitClosedFaces - splits closed faces in segments. The number of segments depends on the number of
6877 * SplitClosedFaces.NbSplitPoints - the number of splitting points.
6878 * SplitContinuity - splits shapes to reduce continuities of curves and surfaces.
6879 * SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.
6880 * SplitContinuity.SurfaceContinuity - required continuity for surfaces.
6881 * SplitContinuity.CurveContinuity - required continuity for curves.
6882 This and the previous parameters can take the following values:
6884 Parametric Continuity:
6885 C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces are
6886 coincidental. The curves or surfaces may still meet at an angle,
6887 giving rise to a sharp corner or edge).
6888 C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces
6889 are parallel, ruling out sharp edges).
6890 C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves
6891 or surfaces are of the same magnitude).
6892 CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of
6893 curves or surfaces (d/du C(u)) are the same at junction.
6895 Geometric Continuity:
6896 G1: first derivatives are proportional at junction.
6897 The curve tangents thus have the same direction, but not necessarily the same magnitude.
6898 i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).
6899 G2: first and second derivatives are proportional at junction. As the names imply,
6900 geometric continuity requires the geometry to be continuous, while parametric continuity requires
6901 that the underlying parameterization was continuous as well. Parametric continuity of order n implies
6902 geometric continuity of order n, but not vice-versa.
6903 * BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:
6904 * BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.
6905 * BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.
6906 * BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.
6907 * BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation with
6908 the specified parameters.
6909 * BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation with
6910 the specified parameters.
6911 * BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.
6912 * BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.
6913 * BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.
6914 * BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.
6915 * ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.
6916 * ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.
6917 * ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.
6918 * ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.
6919 * ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.
6920 * SameParameter - fixes edges of 2D and 3D curves not having the same parameter.
6921 * SameParameter.Tolerance3d - defines tolerance for fixing of edges.
6924 New GEOM.GEOM_Object, containing processed shape.
6926 Note: For more information look through SALOME Geometry User's Guide->
6927 -> Introduction to Geometry-> Repairing Operations-> Shape Processing
6929 # Example: see GEOM_TestHealing.py
6930 theValues,Parameters = ParseList(theValues)
6931 anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
6932 # To avoid script failure in case of good argument shape
6933 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
6935 RaiseIfFailed("ProcessShape", self.HealOp)
6936 for string in (theOperators + theParameters):
6937 Parameters = ":" + Parameters
6939 anObj.SetParameters(Parameters)
6940 self._autoPublish(anObj, theName, "healed")
6943 ## Remove faces from the given object (shape).
6944 # @param theObject Shape to be processed.
6945 # @param theFaces Indices of faces to be removed, if EMPTY then the method
6946 # removes ALL faces of the given object.
6947 # @param theName Object name; when specified, this parameter is used
6948 # for result publication in the study. Otherwise, if automatic
6949 # publication is switched on, default value is used for result name.
6951 # @return New GEOM.GEOM_Object, containing processed shape.
6953 # @ref tui_suppress_faces "Example"
6954 @ManageTransactions("HealOp")
6955 def SuppressFaces(self, theObject, theFaces, theName=None):
6957 Remove faces from the given object (shape).
6960 theObject Shape to be processed.
6961 theFaces Indices of faces to be removed, if EMPTY then the method
6962 removes ALL faces of the given object.
6963 theName Object name; when specified, this parameter is used
6964 for result publication in the study. Otherwise, if automatic
6965 publication is switched on, default value is used for result name.
6968 New GEOM.GEOM_Object, containing processed shape.
6970 # Example: see GEOM_TestHealing.py
6971 anObj = self.HealOp.SuppressFaces(theObject, theFaces)
6972 RaiseIfFailed("SuppressFaces", self.HealOp)
6973 self._autoPublish(anObj, theName, "suppressFaces")
6976 ## Sewing of faces into a single shell.
6977 # @param ListShape Shapes to be processed.
6978 # @param theTolerance Required tolerance value.
6979 # @param AllowNonManifold Flag that allows non-manifold sewing.
6980 # @param theName Object name; when specified, this parameter is used
6981 # for result publication in the study. Otherwise, if automatic
6982 # publication is switched on, default value is used for result name.
6984 # @return New GEOM.GEOM_Object, containing a result shell.
6986 # @ref tui_sewing "Example"
6987 def MakeSewing(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
6989 Sewing of faces into a single shell.
6992 ListShape Shapes to be processed.
6993 theTolerance Required tolerance value.
6994 AllowNonManifold Flag that allows non-manifold sewing.
6995 theName Object name; when specified, this parameter is used
6996 for result publication in the study. Otherwise, if automatic
6997 publication is switched on, default value is used for result name.
7000 New GEOM.GEOM_Object, containing containing a result shell.
7002 # Example: see GEOM_TestHealing.py
7003 # note: auto-publishing is done in self.Sew()
7004 anObj = self.Sew(ListShape, theTolerance, AllowNonManifold, theName)
7007 ## Sewing of faces into a single shell.
7008 # @param ListShape Shapes to be processed.
7009 # @param theTolerance Required tolerance value.
7010 # @param AllowNonManifold Flag that allows non-manifold sewing.
7011 # @param theName Object name; when specified, this parameter is used
7012 # for result publication in the study. Otherwise, if automatic
7013 # publication is switched on, default value is used for result name.
7015 # @return New GEOM.GEOM_Object, containing a result shell.
7016 @ManageTransactions("HealOp")
7017 def Sew(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
7019 Sewing of faces into a single shell.
7022 ListShape Shapes to be processed.
7023 theTolerance Required tolerance value.
7024 AllowNonManifold Flag that allows non-manifold sewing.
7025 theName Object name; when specified, this parameter is used
7026 for result publication in the study. Otherwise, if automatic
7027 publication is switched on, default value is used for result name.
7030 New GEOM.GEOM_Object, containing a result shell.
7032 # Example: see MakeSewing() above
7033 theTolerance,Parameters = ParseParameters(theTolerance)
7034 if AllowNonManifold:
7035 anObj = self.HealOp.SewAllowNonManifold( ToList( ListShape ), theTolerance)
7037 anObj = self.HealOp.Sew( ToList( ListShape ), theTolerance)
7038 # To avoid script failure in case of good argument shape
7039 # (Fix of test cases geom/bugs11/L7,L8)
7040 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
7042 RaiseIfFailed("Sew", self.HealOp)
7043 anObj.SetParameters(Parameters)
7044 self._autoPublish(anObj, theName, "sewed")
7047 ## Rebuild the topology of theSolids by removing
7048 # the faces that are shared by several solids.
7049 # @param theSolids A compound or a list of solids to be processed.
7050 # @param theName Object name; when specified, this parameter is used
7051 # for result publication in the study. Otherwise, if automatic
7052 # publication is switched on, default value is used for result name.
7054 # @return New GEOM.GEOM_Object, containing processed shape.
7056 # @ref tui_remove_webs "Example"
7057 @ManageTransactions("HealOp")
7058 def RemoveInternalFaces (self, theSolids, theName=None):
7060 Rebuild the topology of theSolids by removing
7061 the faces that are shared by several solids.
7064 theSolids A compound or a list of solids to be processed.
7065 theName Object name; when specified, this parameter is used
7066 for result publication in the study. Otherwise, if automatic
7067 publication is switched on, default value is used for result name.
7070 New GEOM.GEOM_Object, containing processed shape.
7072 # Example: see GEOM_TestHealing.py
7073 anObj = self.HealOp.RemoveInternalFaces(ToList(theSolids))
7074 RaiseIfFailed("RemoveInternalFaces", self.HealOp)
7075 self._autoPublish(anObj, theName, "removeWebs")
7078 ## Remove internal wires and edges from the given object (face).
7079 # @param theObject Shape to be processed.
7080 # @param theWires Indices of wires to be removed, if EMPTY then the method
7081 # removes ALL internal wires of the given object.
7082 # @param theName Object name; when specified, this parameter is used
7083 # for result publication in the study. Otherwise, if automatic
7084 # publication is switched on, default value is used for result name.
7086 # @return New GEOM.GEOM_Object, containing processed shape.
7088 # @ref tui_suppress_internal_wires "Example"
7089 @ManageTransactions("HealOp")
7090 def SuppressInternalWires(self, theObject, theWires, theName=None):
7092 Remove internal wires and edges from the given object (face).
7095 theObject Shape to be processed.
7096 theWires Indices of wires to be removed, if EMPTY then the method
7097 removes ALL internal wires of the given object.
7098 theName Object name; when specified, this parameter is used
7099 for result publication in the study. Otherwise, if automatic
7100 publication is switched on, default value is used for result name.
7103 New GEOM.GEOM_Object, containing processed shape.
7105 # Example: see GEOM_TestHealing.py
7106 anObj = self.HealOp.RemoveIntWires(theObject, theWires)
7107 RaiseIfFailed("RemoveIntWires", self.HealOp)
7108 self._autoPublish(anObj, theName, "suppressWires")
7111 ## Remove internal closed contours (holes) from the given object.
7112 # @param theObject Shape to be processed.
7113 # @param theWires Indices of wires to be removed, if EMPTY then the method
7114 # removes ALL internal holes of the given object
7115 # @param theName Object name; when specified, this parameter is used
7116 # for result publication in the study. Otherwise, if automatic
7117 # publication is switched on, default value is used for result name.
7119 # @return New GEOM.GEOM_Object, containing processed shape.
7121 # @ref tui_suppress_holes "Example"
7122 @ManageTransactions("HealOp")
7123 def SuppressHoles(self, theObject, theWires, theName=None):
7125 Remove internal closed contours (holes) from the given object.
7128 theObject Shape to be processed.
7129 theWires Indices of wires to be removed, if EMPTY then the method
7130 removes ALL internal holes of the given object
7131 theName Object name; when specified, this parameter is used
7132 for result publication in the study. Otherwise, if automatic
7133 publication is switched on, default value is used for result name.
7136 New GEOM.GEOM_Object, containing processed shape.
7138 # Example: see GEOM_TestHealing.py
7139 anObj = self.HealOp.FillHoles(theObject, theWires)
7140 RaiseIfFailed("FillHoles", self.HealOp)
7141 self._autoPublish(anObj, theName, "suppressHoles")
7144 ## Close an open wire.
7145 # @param theObject Shape to be processed.
7146 # @param theWires Indexes of edge(s) and wire(s) to be closed within <VAR>theObject</VAR>'s shape,
7147 # if [ ], then <VAR>theObject</VAR> itself is a wire.
7148 # @param isCommonVertex If True : closure by creation of a common vertex,
7149 # If False : closure by creation of an edge between ends.
7150 # @param theName Object name; when specified, this parameter is used
7151 # for result publication in the study. Otherwise, if automatic
7152 # publication is switched on, default value is used for result name.
7154 # @return New GEOM.GEOM_Object, containing processed shape.
7156 # @ref tui_close_contour "Example"
7157 @ManageTransactions("HealOp")
7158 def CloseContour(self,theObject, theWires, isCommonVertex, theName=None):
7163 theObject Shape to be processed.
7164 theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape,
7165 if [ ], then theObject itself is a wire.
7166 isCommonVertex If True : closure by creation of a common vertex,
7167 If False : closure by creation of an edge between ends.
7168 theName Object name; when specified, this parameter is used
7169 for result publication in the study. Otherwise, if automatic
7170 publication is switched on, default value is used for result name.
7173 New GEOM.GEOM_Object, containing processed shape.
7175 # Example: see GEOM_TestHealing.py
7176 anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex)
7177 RaiseIfFailed("CloseContour", self.HealOp)
7178 self._autoPublish(anObj, theName, "closeContour")
7181 ## Addition of a point to a given edge object.
7182 # @param theObject Shape to be processed.
7183 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
7184 # if -1, then theObject itself is the edge.
7185 # @param theValue Value of parameter on edge or length parameter,
7186 # depending on \a isByParameter.
7187 # @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1], \n
7188 # if FALSE : \a theValue is treated as a length parameter [0..1]
7189 # @param theName Object name; when specified, this parameter is used
7190 # for result publication in the study. Otherwise, if automatic
7191 # publication is switched on, default value is used for result name.
7193 # @return New GEOM.GEOM_Object, containing processed shape.
7195 # @ref tui_add_point_on_edge "Example"
7196 @ManageTransactions("HealOp")
7197 def DivideEdge(self, theObject, theEdgeIndex, theValue, isByParameter, theName=None):
7199 Addition of a point to a given edge object.
7202 theObject Shape to be processed.
7203 theEdgeIndex Index of edge to be divided within theObject's shape,
7204 if -1, then theObject itself is the edge.
7205 theValue Value of parameter on edge or length parameter,
7206 depending on isByParameter.
7207 isByParameter If TRUE : theValue is treated as a curve parameter [0..1],
7208 if FALSE : theValue is treated as a length parameter [0..1]
7209 theName Object name; when specified, this parameter is used
7210 for result publication in the study. Otherwise, if automatic
7211 publication is switched on, default value is used for result name.
7214 New GEOM.GEOM_Object, containing processed shape.
7216 # Example: see GEOM_TestHealing.py
7217 theEdgeIndex,theValue,isByParameter,Parameters = ParseParameters(theEdgeIndex,theValue,isByParameter)
7218 anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
7219 RaiseIfFailed("DivideEdge", self.HealOp)
7220 anObj.SetParameters(Parameters)
7221 self._autoPublish(anObj, theName, "divideEdge")
7224 ## Addition of points to a given edge of \a theObject by projecting
7225 # other points to the given edge.
7226 # @param theObject Shape to be processed.
7227 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
7228 # if -1, then theObject itself is the edge.
7229 # @param thePoints List of points to project to theEdgeIndex-th edge.
7230 # @param theName Object name; when specified, this parameter is used
7231 # for result publication in the study. Otherwise, if automatic
7232 # publication is switched on, default value is used for result name.
7234 # @return New GEOM.GEOM_Object, containing processed shape.
7236 # @ref tui_add_point_on_edge "Example"
7237 @ManageTransactions("HealOp")
7238 def DivideEdgeByPoint(self, theObject, theEdgeIndex, thePoints, theName=None):
7240 Addition of points to a given edge of \a theObject by projecting
7241 other points to the given edge.
7244 theObject Shape to be processed.
7245 theEdgeIndex The edge or its index to be divided within theObject's shape,
7246 if -1, then theObject itself is the edge.
7247 thePoints List of points to project to theEdgeIndex-th edge.
7248 theName Object name; when specified, this parameter is used
7249 for result publication in the study. Otherwise, if automatic
7250 publication is switched on, default value is used for result name.
7253 New GEOM.GEOM_Object, containing processed shape.
7255 # Example: see GEOM_TestHealing.py
7256 if isinstance( theEdgeIndex, GEOM._objref_GEOM_Object ):
7257 theEdgeIndex = self.GetSubShapeID( theObject, theEdgeIndex )
7258 anObj = self.HealOp.DivideEdgeByPoint(theObject, theEdgeIndex, ToList( thePoints ))
7259 RaiseIfFailed("DivideEdgeByPoint", self.HealOp)
7260 self._autoPublish(anObj, theName, "divideEdge")
7263 ## Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
7264 # @param theWire Wire to minimize the number of C1 continuous edges in.
7265 # @param theVertices A list of vertices to suppress. If the list
7266 # is empty, all vertices in a wire will be assumed.
7267 # @param theName Object name; when specified, this parameter is used
7268 # for result publication in the study. Otherwise, if automatic
7269 # publication is switched on, default value is used for result name.
7271 # @return New GEOM.GEOM_Object with modified wire.
7273 # @ref tui_fuse_collinear_edges "Example"
7274 @ManageTransactions("HealOp")
7275 def FuseCollinearEdgesWithinWire(self, theWire, theVertices = [], theName=None):
7277 Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
7280 theWire Wire to minimize the number of C1 continuous edges in.
7281 theVertices A list of vertices to suppress. If the list
7282 is empty, all vertices in a wire will be assumed.
7283 theName Object name; when specified, this parameter is used
7284 for result publication in the study. Otherwise, if automatic
7285 publication is switched on, default value is used for result name.
7288 New GEOM.GEOM_Object with modified wire.
7290 anObj = self.HealOp.FuseCollinearEdgesWithinWire(theWire, theVertices)
7291 RaiseIfFailed("FuseCollinearEdgesWithinWire", self.HealOp)
7292 self._autoPublish(anObj, theName, "fuseEdges")
7295 ## Change orientation of the given object. Updates given shape.
7296 # @param theObject Shape to be processed.
7297 # @return Updated <var>theObject</var>
7299 # @ref swig_todo "Example"
7300 @ManageTransactions("HealOp")
7301 def ChangeOrientationShell(self,theObject):
7303 Change orientation of the given object. Updates given shape.
7306 theObject Shape to be processed.
7311 theObject = self.HealOp.ChangeOrientation(theObject)
7312 RaiseIfFailed("ChangeOrientation", self.HealOp)
7315 ## Change orientation of the given object.
7316 # @param theObject Shape to be processed.
7317 # @param theName Object name; when specified, this parameter is used
7318 # for result publication in the study. Otherwise, if automatic
7319 # publication is switched on, default value is used for result name.
7321 # @return New GEOM.GEOM_Object, containing processed shape.
7323 # @ref swig_todo "Example"
7324 @ManageTransactions("HealOp")
7325 def ChangeOrientationShellCopy(self, theObject, theName=None):
7327 Change orientation of the given object.
7330 theObject Shape to be processed.
7331 theName Object name; when specified, this parameter is used
7332 for result publication in the study. Otherwise, if automatic
7333 publication is switched on, default value is used for result name.
7336 New GEOM.GEOM_Object, containing processed shape.
7338 anObj = self.HealOp.ChangeOrientationCopy(theObject)
7339 RaiseIfFailed("ChangeOrientationCopy", self.HealOp)
7340 self._autoPublish(anObj, theName, "reversed")
7343 ## Try to limit tolerance of the given object by value \a theTolerance.
7344 # @param theObject Shape to be processed.
7345 # @param theTolerance Required tolerance value.
7346 # @param theName Object name; when specified, this parameter is used
7347 # for result publication in the study. Otherwise, if automatic
7348 # publication is switched on, default value is used for result name.
7350 # @return New GEOM.GEOM_Object, containing processed shape.
7352 # @ref tui_limit_tolerance "Example"
7353 @ManageTransactions("HealOp")
7354 def LimitTolerance(self, theObject, theTolerance = 1e-07, theName=None):
7356 Try to limit tolerance of the given object by value theTolerance.
7359 theObject Shape to be processed.
7360 theTolerance Required tolerance value.
7361 theName Object name; when specified, this parameter is used
7362 for result publication in the study. Otherwise, if automatic
7363 publication is switched on, default value is used for result name.
7366 New GEOM.GEOM_Object, containing processed shape.
7368 anObj = self.HealOp.LimitTolerance(theObject, theTolerance)
7369 RaiseIfFailed("LimitTolerance", self.HealOp)
7370 self._autoPublish(anObj, theName, "limitTolerance")
7373 ## Get a list of wires (wrapped in GEOM.GEOM_Object-s),
7374 # that constitute a free boundary of the given shape.
7375 # @param theObject Shape to get free boundary of.
7376 # @param theName Object name; when specified, this parameter is used
7377 # for result publication in the study. Otherwise, if automatic
7378 # publication is switched on, default value is used for result name.
7380 # @return [\a status, \a theClosedWires, \a theOpenWires]
7381 # \n \a status: FALSE, if an error(s) occured during the method execution.
7382 # \n \a theClosedWires: Closed wires on the free boundary of the given shape.
7383 # \n \a theOpenWires: Open wires on the free boundary of the given shape.
7385 # @ref tui_free_boundaries_page "Example"
7386 @ManageTransactions("HealOp")
7387 def GetFreeBoundary(self, theObject, theName=None):
7389 Get a list of wires (wrapped in GEOM.GEOM_Object-s),
7390 that constitute a free boundary of the given shape.
7393 theObject Shape to get free boundary of.
7394 theName Object name; when specified, this parameter is used
7395 for result publication in the study. Otherwise, if automatic
7396 publication is switched on, default value is used for result name.
7399 [status, theClosedWires, theOpenWires]
7400 status: FALSE, if an error(s) occured during the method execution.
7401 theClosedWires: Closed wires on the free boundary of the given shape.
7402 theOpenWires: Open wires on the free boundary of the given shape.
7404 # Example: see GEOM_TestHealing.py
7405 anObj = self.HealOp.GetFreeBoundary( ToList( theObject ))
7406 RaiseIfFailed("GetFreeBoundary", self.HealOp)
7407 self._autoPublish(anObj[1], theName, "closedWire")
7408 self._autoPublish(anObj[2], theName, "openWire")
7411 ## Replace coincident faces in \a theShapes by one face.
7412 # @param theShapes Initial shapes, either a list or compound of shapes.
7413 # @param theTolerance Maximum distance between faces, which can be considered as coincident.
7414 # @param doKeepNonSolids If FALSE, only solids will present in the result,
7415 # otherwise all initial shapes.
7416 # @param theName Object name; when specified, this parameter is used
7417 # for result publication in the study. Otherwise, if automatic
7418 # publication is switched on, default value is used for result name.
7420 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7422 # @ref tui_glue_faces "Example"
7423 @ManageTransactions("ShapesOp")
7424 def MakeGlueFaces(self, theShapes, theTolerance, doKeepNonSolids=True, theName=None):
7426 Replace coincident faces in theShapes by one face.
7429 theShapes Initial shapes, either a list or compound of shapes.
7430 theTolerance Maximum distance between faces, which can be considered as coincident.
7431 doKeepNonSolids If FALSE, only solids will present in the result,
7432 otherwise all initial shapes.
7433 theName Object name; when specified, this parameter is used
7434 for result publication in the study. Otherwise, if automatic
7435 publication is switched on, default value is used for result name.
7438 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7440 # Example: see GEOM_Spanner.py
7441 theTolerance,Parameters = ParseParameters(theTolerance)
7442 anObj = self.ShapesOp.MakeGlueFaces(ToList(theShapes), theTolerance, doKeepNonSolids)
7444 raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
7445 anObj.SetParameters(Parameters)
7446 self._autoPublish(anObj, theName, "glueFaces")
7449 ## Find coincident faces in \a theShapes for possible gluing.
7450 # @param theShapes Initial shapes, either a list or compound of shapes.
7451 # @param theTolerance Maximum distance between faces,
7452 # which can be considered as coincident.
7453 # @param theName Object name; when specified, this parameter is used
7454 # for result publication in the study. Otherwise, if automatic
7455 # publication is switched on, default value is used for result name.
7457 # @return GEOM.ListOfGO
7459 # @ref tui_glue_faces "Example"
7460 @ManageTransactions("ShapesOp")
7461 def GetGlueFaces(self, theShapes, theTolerance, theName=None):
7463 Find coincident faces in theShapes for possible gluing.
7466 theShapes Initial shapes, either a list or compound of shapes.
7467 theTolerance Maximum distance between faces,
7468 which can be considered as coincident.
7469 theName Object name; when specified, this parameter is used
7470 for result publication in the study. Otherwise, if automatic
7471 publication is switched on, default value is used for result name.
7476 anObj = self.ShapesOp.GetGlueFaces(ToList(theShapes), theTolerance)
7477 RaiseIfFailed("GetGlueFaces", self.ShapesOp)
7478 self._autoPublish(anObj, theName, "facesToGlue")
7481 ## Replace coincident faces in \a theShapes by one face
7482 # in compliance with given list of faces
7483 # @param theShapes Initial shapes, either a list or compound of shapes.
7484 # @param theTolerance Maximum distance between faces,
7485 # which can be considered as coincident.
7486 # @param theFaces List of faces for gluing.
7487 # @param doKeepNonSolids If FALSE, only solids will present in the result,
7488 # otherwise all initial shapes.
7489 # @param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
7490 # will be glued, otherwise only the edges,
7491 # belonging to <VAR>theFaces</VAR>.
7492 # @param theName Object name; when specified, this parameter is used
7493 # for result publication in the study. Otherwise, if automatic
7494 # publication is switched on, default value is used for result name.
7496 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7498 # @ref tui_glue_faces "Example"
7499 @ManageTransactions("ShapesOp")
7500 def MakeGlueFacesByList(self, theShapes, theTolerance, theFaces,
7501 doKeepNonSolids=True, doGlueAllEdges=True, theName=None):
7503 Replace coincident faces in theShapes by one face
7504 in compliance with given list of faces
7507 theShapes theShapes Initial shapes, either a list or compound of shapes.
7508 theTolerance Maximum distance between faces,
7509 which can be considered as coincident.
7510 theFaces List of faces for gluing.
7511 doKeepNonSolids If FALSE, only solids will present in the result,
7512 otherwise all initial shapes.
7513 doGlueAllEdges If TRUE, all coincident edges of theShape
7514 will be glued, otherwise only the edges,
7515 belonging to theFaces.
7516 theName Object name; when specified, this parameter is used
7517 for result publication in the study. Otherwise, if automatic
7518 publication is switched on, default value is used for result name.
7521 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7523 anObj = self.ShapesOp.MakeGlueFacesByList(ToList(theShapes), theTolerance, ToList(theFaces),
7524 doKeepNonSolids, doGlueAllEdges)
7526 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
7527 self._autoPublish(anObj, theName, "glueFaces")
7530 ## Replace coincident edges in \a theShapes by one edge.
7531 # @param theShapes Initial shapes, either a list or compound of shapes.
7532 # @param theTolerance Maximum distance between edges, which can be considered as coincident.
7533 # @param theName Object name; when specified, this parameter is used
7534 # for result publication in the study. Otherwise, if automatic
7535 # publication is switched on, default value is used for result name.
7537 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7539 # @ref tui_glue_edges "Example"
7540 @ManageTransactions("ShapesOp")
7541 def MakeGlueEdges(self, theShapes, theTolerance, theName=None):
7543 Replace coincident edges in theShapes by one edge.
7546 theShapes Initial shapes, either a list or compound of shapes.
7547 theTolerance Maximum distance between edges, which can be considered as coincident.
7548 theName Object name; when specified, this parameter is used
7549 for result publication in the study. Otherwise, if automatic
7550 publication is switched on, default value is used for result name.
7553 New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7555 theTolerance,Parameters = ParseParameters(theTolerance)
7556 anObj = self.ShapesOp.MakeGlueEdges(ToList(theShapes), theTolerance)
7558 raise RuntimeError, "MakeGlueEdges : " + self.ShapesOp.GetErrorCode()
7559 anObj.SetParameters(Parameters)
7560 self._autoPublish(anObj, theName, "glueEdges")
7563 ## Find coincident edges in \a theShapes for possible gluing.
7564 # @param theShapes Initial shapes, either a list or compound of shapes.
7565 # @param theTolerance Maximum distance between edges,
7566 # which can be considered as coincident.
7567 # @param theName Object name; when specified, this parameter is used
7568 # for result publication in the study. Otherwise, if automatic
7569 # publication is switched on, default value is used for result name.
7571 # @return GEOM.ListOfGO
7573 # @ref tui_glue_edges "Example"
7574 @ManageTransactions("ShapesOp")
7575 def GetGlueEdges(self, theShapes, theTolerance, theName=None):
7577 Find coincident edges in theShapes for possible gluing.
7580 theShapes Initial shapes, either a list or compound of shapes.
7581 theTolerance Maximum distance between edges,
7582 which can be considered as coincident.
7583 theName Object name; when specified, this parameter is used
7584 for result publication in the study. Otherwise, if automatic
7585 publication is switched on, default value is used for result name.
7590 anObj = self.ShapesOp.GetGlueEdges(ToList(theShapes), theTolerance)
7591 RaiseIfFailed("GetGlueEdges", self.ShapesOp)
7592 self._autoPublish(anObj, theName, "edgesToGlue")
7595 ## Replace coincident edges in theShapes by one edge
7596 # in compliance with given list of edges.
7597 # @param theShapes Initial shapes, either a list or compound of shapes.
7598 # @param theTolerance Maximum distance between edges,
7599 # which can be considered as coincident.
7600 # @param theEdges List of edges for gluing.
7601 # @param theName Object name; when specified, this parameter is used
7602 # for result publication in the study. Otherwise, if automatic
7603 # publication is switched on, default value is used for result name.
7605 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7607 # @ref tui_glue_edges "Example"
7608 @ManageTransactions("ShapesOp")
7609 def MakeGlueEdgesByList(self, theShapes, theTolerance, theEdges, theName=None):
7611 Replace coincident edges in theShapes by one edge
7612 in compliance with given list of edges.
7615 theShapes Initial shapes, either a list or compound of shapes.
7616 theTolerance Maximum distance between edges,
7617 which can be considered as coincident.
7618 theEdges List of edges for gluing.
7619 theName Object name; when specified, this parameter is used
7620 for result publication in the study. Otherwise, if automatic
7621 publication is switched on, default value is used for result name.
7624 New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7626 anObj = self.ShapesOp.MakeGlueEdgesByList(ToList(theShapes), theTolerance, theEdges)
7628 raise RuntimeError, "MakeGlueEdgesByList : " + self.ShapesOp.GetErrorCode()
7629 self._autoPublish(anObj, theName, "glueEdges")
7635 ## @addtogroup l3_boolean Boolean Operations
7638 # -----------------------------------------------------------------------------
7639 # Boolean (Common, Cut, Fuse, Section)
7640 # -----------------------------------------------------------------------------
7642 ## Perform one of boolean operations on two given shapes.
7643 # @param theShape1 First argument for boolean operation.
7644 # @param theShape2 Second argument for boolean operation.
7645 # @param theOperation Indicates the operation to be done:\n
7646 # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
7647 # @param checkSelfInte The flag that tells if the arguments should
7648 # be checked for self-intersection prior to the operation.
7649 # @param theName Object name; when specified, this parameter is used
7650 # for result publication in the study. Otherwise, if automatic
7651 # publication is switched on, default value is used for result name.
7653 # @note This algorithm doesn't find all types of self-intersections.
7654 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7655 # vertex/face and edge/face intersections. Face/face
7656 # intersections detection is switched off as it is a
7657 # time-consuming operation that gives an impact on performance.
7658 # To find all self-intersections please use
7659 # CheckSelfIntersections() method.
7661 # @return New GEOM.GEOM_Object, containing the result shape.
7663 # @ref tui_fuse "Example"
7664 @ManageTransactions("BoolOp")
7665 def MakeBoolean(self, theShape1, theShape2, theOperation, checkSelfInte=False, theName=None):
7667 Perform one of boolean operations on two given shapes.
7670 theShape1 First argument for boolean operation.
7671 theShape2 Second argument for boolean operation.
7672 theOperation Indicates the operation to be done:
7673 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
7674 checkSelfInte The flag that tells if the arguments should
7675 be checked for self-intersection prior to
7677 theName Object name; when specified, this parameter is used
7678 for result publication in the study. Otherwise, if automatic
7679 publication is switched on, default value is used for result name.
7682 This algorithm doesn't find all types of self-intersections.
7683 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7684 vertex/face and edge/face intersections. Face/face
7685 intersections detection is switched off as it is a
7686 time-consuming operation that gives an impact on performance.
7687 To find all self-intersections please use
7688 CheckSelfIntersections() method.
7691 New GEOM.GEOM_Object, containing the result shape.
7693 # Example: see GEOM_TestAll.py
7694 anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation, checkSelfInte)
7695 RaiseIfFailed("MakeBoolean", self.BoolOp)
7696 def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
7697 self._autoPublish(anObj, theName, def_names[theOperation])
7700 ## Perform Common boolean operation on two given shapes.
7701 # @param theShape1 First argument for boolean operation.
7702 # @param theShape2 Second argument for boolean operation.
7703 # @param checkSelfInte The flag that tells if the arguments should
7704 # be checked for self-intersection prior to the operation.
7705 # @param theName Object name; when specified, this parameter is used
7706 # for result publication in the study. Otherwise, if automatic
7707 # publication is switched on, default value is used for result name.
7709 # @note This algorithm doesn't find all types of self-intersections.
7710 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7711 # vertex/face and edge/face intersections. Face/face
7712 # intersections detection is switched off as it is a
7713 # time-consuming operation that gives an impact on performance.
7714 # To find all self-intersections please use
7715 # CheckSelfIntersections() method.
7717 # @return New GEOM.GEOM_Object, containing the result shape.
7719 # @ref tui_common "Example 1"
7720 # \n @ref swig_MakeCommon "Example 2"
7721 def MakeCommon(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7723 Perform Common boolean operation on two given shapes.
7726 theShape1 First argument for boolean operation.
7727 theShape2 Second argument for boolean operation.
7728 checkSelfInte The flag that tells if the arguments should
7729 be checked for self-intersection prior to
7731 theName Object name; when specified, this parameter is used
7732 for result publication in the study. Otherwise, if automatic
7733 publication is switched on, default value is used for result name.
7736 This algorithm doesn't find all types of self-intersections.
7737 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7738 vertex/face and edge/face intersections. Face/face
7739 intersections detection is switched off as it is a
7740 time-consuming operation that gives an impact on performance.
7741 To find all self-intersections please use
7742 CheckSelfIntersections() method.
7745 New GEOM.GEOM_Object, containing the result shape.
7747 # Example: see GEOM_TestOthers.py
7748 # note: auto-publishing is done in self.MakeBoolean()
7749 return self.MakeBoolean(theShape1, theShape2, 1, checkSelfInte, theName)
7751 ## Perform Cut boolean operation on two given shapes.
7752 # @param theShape1 First argument for boolean operation.
7753 # @param theShape2 Second argument for boolean operation.
7754 # @param checkSelfInte The flag that tells if the arguments should
7755 # be checked for self-intersection prior to the operation.
7756 # @param theName Object name; when specified, this parameter is used
7757 # for result publication in the study. Otherwise, if automatic
7758 # publication is switched on, default value is used for result name.
7760 # @note This algorithm doesn't find all types of self-intersections.
7761 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7762 # vertex/face and edge/face intersections. Face/face
7763 # intersections detection is switched off as it is a
7764 # time-consuming operation that gives an impact on performance.
7765 # To find all self-intersections please use
7766 # CheckSelfIntersections() method.
7768 # @return New GEOM.GEOM_Object, containing the result shape.
7770 # @ref tui_cut "Example 1"
7771 # \n @ref swig_MakeCommon "Example 2"
7772 def MakeCut(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7774 Perform Cut boolean operation on two given shapes.
7777 theShape1 First argument for boolean operation.
7778 theShape2 Second argument for boolean operation.
7779 checkSelfInte The flag that tells if the arguments should
7780 be checked for self-intersection prior to
7782 theName Object name; when specified, this parameter is used
7783 for result publication in the study. Otherwise, if automatic
7784 publication is switched on, default value is used for result name.
7787 This algorithm doesn't find all types of self-intersections.
7788 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7789 vertex/face and edge/face intersections. Face/face
7790 intersections detection is switched off as it is a
7791 time-consuming operation that gives an impact on performance.
7792 To find all self-intersections please use
7793 CheckSelfIntersections() method.
7796 New GEOM.GEOM_Object, containing the result shape.
7799 # Example: see GEOM_TestOthers.py
7800 # note: auto-publishing is done in self.MakeBoolean()
7801 return self.MakeBoolean(theShape1, theShape2, 2, checkSelfInte, theName)
7803 ## Perform Fuse boolean operation on two given shapes.
7804 # @param theShape1 First argument for boolean operation.
7805 # @param theShape2 Second argument for boolean operation.
7806 # @param checkSelfInte The flag that tells if the arguments should
7807 # be checked for self-intersection prior to the operation.
7808 # @param rmExtraEdges The flag that tells if Remove Extra Edges
7809 # operation should be performed during the operation.
7810 # @param theName Object name; when specified, this parameter is used
7811 # for result publication in the study. Otherwise, if automatic
7812 # publication is switched on, default value is used for result name.
7814 # @note This algorithm doesn't find all types of self-intersections.
7815 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7816 # vertex/face and edge/face intersections. Face/face
7817 # intersections detection is switched off as it is a
7818 # time-consuming operation that gives an impact on performance.
7819 # To find all self-intersections please use
7820 # CheckSelfIntersections() method.
7822 # @return New GEOM.GEOM_Object, containing the result shape.
7824 # @ref tui_fuse "Example 1"
7825 # \n @ref swig_MakeCommon "Example 2"
7826 @ManageTransactions("BoolOp")
7827 def MakeFuse(self, theShape1, theShape2, checkSelfInte=False,
7828 rmExtraEdges=False, theName=None):
7830 Perform Fuse boolean operation on two given shapes.
7833 theShape1 First argument for boolean operation.
7834 theShape2 Second argument for boolean operation.
7835 checkSelfInte The flag that tells if the arguments should
7836 be checked for self-intersection prior to
7838 rmExtraEdges The flag that tells if Remove Extra Edges
7839 operation should be performed during the operation.
7840 theName Object name; when specified, this parameter is used
7841 for result publication in the study. Otherwise, if automatic
7842 publication is switched on, default value is used for result name.
7845 This algorithm doesn't find all types of self-intersections.
7846 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7847 vertex/face and edge/face intersections. Face/face
7848 intersections detection is switched off as it is a
7849 time-consuming operation that gives an impact on performance.
7850 To find all self-intersections please use
7851 CheckSelfIntersections() method.
7854 New GEOM.GEOM_Object, containing the result shape.
7857 # Example: see GEOM_TestOthers.py
7858 anObj = self.BoolOp.MakeFuse(theShape1, theShape2,
7859 checkSelfInte, rmExtraEdges)
7860 RaiseIfFailed("MakeFuse", self.BoolOp)
7861 self._autoPublish(anObj, theName, "fuse")
7864 ## Perform Section boolean operation on two given shapes.
7865 # @param theShape1 First argument for boolean operation.
7866 # @param theShape2 Second argument for boolean operation.
7867 # @param checkSelfInte The flag that tells if the arguments should
7868 # be checked for self-intersection prior to the operation.
7869 # If a self-intersection detected the operation fails.
7870 # @param theName Object name; when specified, this parameter is used
7871 # for result publication in the study. Otherwise, if automatic
7872 # publication is switched on, default value is used for result name.
7873 # @return New GEOM.GEOM_Object, containing the result shape.
7875 # @ref tui_section "Example 1"
7876 # \n @ref swig_MakeCommon "Example 2"
7877 def MakeSection(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7879 Perform Section boolean operation on two given shapes.
7882 theShape1 First argument for boolean operation.
7883 theShape2 Second argument for boolean operation.
7884 checkSelfInte The flag that tells if the arguments should
7885 be checked for self-intersection prior to the operation.
7886 If a self-intersection detected the operation fails.
7887 theName Object name; when specified, this parameter is used
7888 for result publication in the study. Otherwise, if automatic
7889 publication is switched on, default value is used for result name.
7891 New GEOM.GEOM_Object, containing the result shape.
7894 # Example: see GEOM_TestOthers.py
7895 # note: auto-publishing is done in self.MakeBoolean()
7896 return self.MakeBoolean(theShape1, theShape2, 4, checkSelfInte, theName)
7898 ## Perform Fuse boolean operation on the list of shapes.
7899 # @param theShapesList Shapes to be fused.
7900 # @param checkSelfInte The flag that tells if the arguments should
7901 # be checked for self-intersection prior to the operation.
7902 # @param rmExtraEdges The flag that tells if Remove Extra Edges
7903 # operation should be performed during the operation.
7904 # @param theName Object name; when specified, this parameter is used
7905 # for result publication in the study. Otherwise, if automatic
7906 # publication is switched on, default value is used for result name.
7908 # @note This algorithm doesn't find all types of self-intersections.
7909 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7910 # vertex/face and edge/face intersections. Face/face
7911 # intersections detection is switched off as it is a
7912 # time-consuming operation that gives an impact on performance.
7913 # To find all self-intersections please use
7914 # CheckSelfIntersections() method.
7916 # @return New GEOM.GEOM_Object, containing the result shape.
7918 # @ref tui_fuse "Example 1"
7919 # \n @ref swig_MakeCommon "Example 2"
7920 @ManageTransactions("BoolOp")
7921 def MakeFuseList(self, theShapesList, checkSelfInte=False,
7922 rmExtraEdges=False, theName=None):
7924 Perform Fuse boolean operation on the list of shapes.
7927 theShapesList Shapes to be fused.
7928 checkSelfInte The flag that tells if the arguments should
7929 be checked for self-intersection prior to
7931 rmExtraEdges The flag that tells if Remove Extra Edges
7932 operation should be performed during the operation.
7933 theName Object name; when specified, this parameter is used
7934 for result publication in the study. Otherwise, if automatic
7935 publication is switched on, default value is used for result name.
7938 This algorithm doesn't find all types of self-intersections.
7939 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7940 vertex/face and edge/face intersections. Face/face
7941 intersections detection is switched off as it is a
7942 time-consuming operation that gives an impact on performance.
7943 To find all self-intersections please use
7944 CheckSelfIntersections() method.
7947 New GEOM.GEOM_Object, containing the result shape.
7950 # Example: see GEOM_TestOthers.py
7951 anObj = self.BoolOp.MakeFuseList(theShapesList, checkSelfInte,
7953 RaiseIfFailed("MakeFuseList", self.BoolOp)
7954 self._autoPublish(anObj, theName, "fuse")
7957 ## Perform Common boolean operation on the list of shapes.
7958 # @param theShapesList Shapes for Common operation.
7959 # @param checkSelfInte The flag that tells if the arguments should
7960 # be checked for self-intersection prior to the operation.
7961 # @param theName Object name; when specified, this parameter is used
7962 # for result publication in the study. Otherwise, if automatic
7963 # publication is switched on, default value is used for result name.
7965 # @note This algorithm doesn't find all types of self-intersections.
7966 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7967 # vertex/face and edge/face intersections. Face/face
7968 # intersections detection is switched off as it is a
7969 # time-consuming operation that gives an impact on performance.
7970 # To find all self-intersections please use
7971 # CheckSelfIntersections() method.
7973 # @return New GEOM.GEOM_Object, containing the result shape.
7975 # @ref tui_common "Example 1"
7976 # \n @ref swig_MakeCommon "Example 2"
7977 @ManageTransactions("BoolOp")
7978 def MakeCommonList(self, theShapesList, checkSelfInte=False, theName=None):
7980 Perform Common boolean operation on the list of shapes.
7983 theShapesList Shapes for Common operation.
7984 checkSelfInte The flag that tells if the arguments should
7985 be checked for self-intersection prior to
7987 theName Object name; when specified, this parameter is used
7988 for result publication in the study. Otherwise, if automatic
7989 publication is switched on, default value is used for result name.
7992 This algorithm doesn't find all types of self-intersections.
7993 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7994 vertex/face and edge/face intersections. Face/face
7995 intersections detection is switched off as it is a
7996 time-consuming operation that gives an impact on performance.
7997 To find all self-intersections please use
7998 CheckSelfIntersections() method.
8001 New GEOM.GEOM_Object, containing the result shape.
8004 # Example: see GEOM_TestOthers.py
8005 anObj = self.BoolOp.MakeCommonList(theShapesList, checkSelfInte)
8006 RaiseIfFailed("MakeCommonList", self.BoolOp)
8007 self._autoPublish(anObj, theName, "common")
8010 ## Perform Cut boolean operation on one object and the list of tools.
8011 # @param theMainShape The object of the operation.
8012 # @param theShapesList The list of tools of the operation.
8013 # @param checkSelfInte The flag that tells if the arguments should
8014 # be checked for self-intersection prior to the operation.
8015 # @param theName Object name; when specified, this parameter is used
8016 # for result publication in the study. Otherwise, if automatic
8017 # publication is switched on, default value is used for result name.
8019 # @note This algorithm doesn't find all types of self-intersections.
8020 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8021 # vertex/face and edge/face intersections. Face/face
8022 # intersections detection is switched off as it is a
8023 # time-consuming operation that gives an impact on performance.
8024 # To find all self-intersections please use
8025 # CheckSelfIntersections() method.
8027 # @return New GEOM.GEOM_Object, containing the result shape.
8029 # @ref tui_cut "Example 1"
8030 # \n @ref swig_MakeCommon "Example 2"
8031 @ManageTransactions("BoolOp")
8032 def MakeCutList(self, theMainShape, theShapesList, checkSelfInte=False, theName=None):
8034 Perform Cut boolean operation on one object and the list of tools.
8037 theMainShape The object of the operation.
8038 theShapesList The list of tools of the operation.
8039 checkSelfInte The flag that tells if the arguments should
8040 be checked for self-intersection prior to
8042 theName Object name; when specified, this parameter is used
8043 for result publication in the study. Otherwise, if automatic
8044 publication is switched on, default value is used for result name.
8047 This algorithm doesn't find all types of self-intersections.
8048 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8049 vertex/face and edge/face intersections. Face/face
8050 intersections detection is switched off as it is a
8051 time-consuming operation that gives an impact on performance.
8052 To find all self-intersections please use
8053 CheckSelfIntersections() method.
8056 New GEOM.GEOM_Object, containing the result shape.
8059 # Example: see GEOM_TestOthers.py
8060 anObj = self.BoolOp.MakeCutList(theMainShape, theShapesList, checkSelfInte)
8061 RaiseIfFailed("MakeCutList", self.BoolOp)
8062 self._autoPublish(anObj, theName, "cut")
8068 ## @addtogroup l3_basic_op
8071 ## Perform partition operation.
8072 # @param ListShapes Shapes to be intersected.
8073 # @param ListTools Shapes to intersect theShapes.
8074 # @param Limit Type of resulting shapes (see ShapeType()).\n
8075 # If this parameter is set to -1 ("Auto"), most appropriate shape limit
8076 # type will be detected automatically.
8077 # @param KeepNonlimitShapes if this parameter == 0, then only shapes of
8078 # target type (equal to Limit) are kept in the result,
8079 # else standalone shapes of lower dimension
8080 # are kept also (if they exist).
8082 # @param theName Object name; when specified, this parameter is used
8083 # for result publication in the study. Otherwise, if automatic
8084 # publication is switched on, default value is used for result name.
8086 # @note Each compound from ListShapes and ListTools will be exploded
8087 # in order to avoid possible intersection between shapes from this compound.
8089 # After implementation new version of PartitionAlgo (October 2006)
8090 # other parameters are ignored by current functionality. They are kept
8091 # in this function only for support old versions.
8092 # @param ListKeepInside Shapes, outside which the results will be deleted.
8093 # Each shape from theKeepInside must belong to theShapes also.
8094 # @param ListRemoveInside Shapes, inside which the results will be deleted.
8095 # Each shape from theRemoveInside must belong to theShapes also.
8096 # @param RemoveWebs If TRUE, perform Glue 3D algorithm.
8097 # @param ListMaterials Material indices for each shape. Make sence,
8098 # only if theRemoveWebs is TRUE.
8100 # @return New GEOM.GEOM_Object, containing the result shapes.
8102 # @ref tui_partition "Example"
8103 @ManageTransactions("BoolOp")
8104 def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
8105 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
8106 KeepNonlimitShapes=0, theName=None):
8108 Perform partition operation.
8111 ListShapes Shapes to be intersected.
8112 ListTools Shapes to intersect theShapes.
8113 Limit Type of resulting shapes (see geompy.ShapeType)
8114 If this parameter is set to -1 ("Auto"), most appropriate shape limit
8115 type will be detected automatically.
8116 KeepNonlimitShapes if this parameter == 0, then only shapes of
8117 target type (equal to Limit) are kept in the result,
8118 else standalone shapes of lower dimension
8119 are kept also (if they exist).
8121 theName Object name; when specified, this parameter is used
8122 for result publication in the study. Otherwise, if automatic
8123 publication is switched on, default value is used for result name.
8125 Each compound from ListShapes and ListTools will be exploded
8126 in order to avoid possible intersection between shapes from
8129 After implementation new version of PartitionAlgo (October 2006) other
8130 parameters are ignored by current functionality. They are kept in this
8131 function only for support old versions.
8134 ListKeepInside Shapes, outside which the results will be deleted.
8135 Each shape from theKeepInside must belong to theShapes also.
8136 ListRemoveInside Shapes, inside which the results will be deleted.
8137 Each shape from theRemoveInside must belong to theShapes also.
8138 RemoveWebs If TRUE, perform Glue 3D algorithm.
8139 ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
8142 New GEOM.GEOM_Object, containing the result shapes.
8144 # Example: see GEOM_TestAll.py
8145 if Limit == self.ShapeType["AUTO"]:
8146 # automatic detection of the most appropriate shape limit type
8148 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
8149 Limit = EnumToLong(lim)
8151 anObj = self.BoolOp.MakePartition(ListShapes, ListTools,
8152 ListKeepInside, ListRemoveInside,
8153 Limit, RemoveWebs, ListMaterials,
8154 KeepNonlimitShapes);
8155 RaiseIfFailed("MakePartition", self.BoolOp)
8156 self._autoPublish(anObj, theName, "partition")
8159 ## Perform partition operation.
8160 # This method may be useful if it is needed to make a partition for
8161 # compound contains nonintersected shapes. Performance will be better
8162 # since intersection between shapes from compound is not performed.
8164 # Description of all parameters as in previous method MakePartition().
8165 # One additional parameter is provided:
8166 # @param checkSelfInte The flag that tells if the arguments should
8167 # be checked for self-intersection prior to the operation.
8169 # @note This algorithm doesn't find all types of self-intersections.
8170 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8171 # vertex/face and edge/face intersections. Face/face
8172 # intersections detection is switched off as it is a
8173 # time-consuming operation that gives an impact on performance.
8174 # To find all self-intersections please use
8175 # CheckSelfIntersections() method.
8177 # @note Passed compounds (via ListShapes or via ListTools)
8178 # have to consist of nonintersecting shapes.
8180 # @return New GEOM.GEOM_Object, containing the result shapes.
8182 # @ref swig_todo "Example"
8183 @ManageTransactions("BoolOp")
8184 def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
8185 ListKeepInside=[], ListRemoveInside=[],
8186 Limit=ShapeType["AUTO"], RemoveWebs=0,
8187 ListMaterials=[], KeepNonlimitShapes=0,
8188 checkSelfInte=False, theName=None):
8190 Perform partition operation.
8191 This method may be useful if it is needed to make a partition for
8192 compound contains nonintersected shapes. Performance will be better
8193 since intersection between shapes from compound is not performed.
8196 Description of all parameters as in method geompy.MakePartition.
8197 One additional parameter is provided:
8198 checkSelfInte The flag that tells if the arguments should
8199 be checked for self-intersection prior to
8203 This algorithm doesn't find all types of self-intersections.
8204 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8205 vertex/face and edge/face intersections. Face/face
8206 intersections detection is switched off as it is a
8207 time-consuming operation that gives an impact on performance.
8208 To find all self-intersections please use
8209 CheckSelfIntersections() method.
8212 Passed compounds (via ListShapes or via ListTools)
8213 have to consist of nonintersecting shapes.
8216 New GEOM.GEOM_Object, containing the result shapes.
8218 if Limit == self.ShapeType["AUTO"]:
8219 # automatic detection of the most appropriate shape limit type
8221 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
8222 Limit = EnumToLong(lim)
8224 anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
8225 ListKeepInside, ListRemoveInside,
8226 Limit, RemoveWebs, ListMaterials,
8227 KeepNonlimitShapes, checkSelfInte);
8228 RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
8229 self._autoPublish(anObj, theName, "partition")
8232 ## See method MakePartition() for more information.
8234 # @ref tui_partition "Example 1"
8235 # \n @ref swig_Partition "Example 2"
8236 def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
8237 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
8238 KeepNonlimitShapes=0, theName=None):
8240 See method geompy.MakePartition for more information.
8242 # Example: see GEOM_TestOthers.py
8243 # note: auto-publishing is done in self.MakePartition()
8244 anObj = self.MakePartition(ListShapes, ListTools,
8245 ListKeepInside, ListRemoveInside,
8246 Limit, RemoveWebs, ListMaterials,
8247 KeepNonlimitShapes, theName);
8250 ## Perform partition of the Shape with the Plane
8251 # @param theShape Shape to be intersected.
8252 # @param thePlane Tool shape, to intersect theShape.
8253 # @param theName Object name; when specified, this parameter is used
8254 # for result publication in the study. Otherwise, if automatic
8255 # publication is switched on, default value is used for result name.
8257 # @return New GEOM.GEOM_Object, containing the result shape.
8259 # @note This operation is a shortcut to the more general @ref MakePartition
8260 # operation, where @a theShape specifies single "object" (shape being partitioned)
8261 # and @a thePlane specifies single "tool" (intersector shape). Other parameters of
8262 # @ref MakePartition operation have default values:
8263 # - @a Limit: GEOM::SHAPE (shape limit corresponds to the type of @a theShape)
8264 # - @a KeepNonlimitShapes: 0
8265 # - @a KeepInside, @a RemoveInside, @a RemoveWebs,
8266 # @a Materials (obsolete parameters): empty
8268 # @note I.e. the following two operations are equivalent:
8270 # Result = geompy.MakeHalfPartition(Object, Plane)
8271 # Result = geompy.MakePartition([Object], [Plane])
8274 # @sa MakePartition, MakePartitionNonSelfIntersectedShape
8276 # @ref tui_partition "Example"
8277 @ManageTransactions("BoolOp")
8278 def MakeHalfPartition(self, theShape, thePlane, theName=None):
8280 Perform partition of the Shape with the Plane
8283 theShape Shape to be intersected.
8284 thePlane Tool shape, to intersect theShape.
8285 theName Object name; when specified, this parameter is used
8286 for result publication in the study. Otherwise, if automatic
8287 publication is switched on, default value is used for result name.
8290 New GEOM.GEOM_Object, containing the result shape.
8292 Note: This operation is a shortcut to the more general MakePartition
8293 operation, where theShape specifies single "object" (shape being partitioned)
8294 and thePlane specifies single "tool" (intersector shape). Other parameters of
8295 MakePartition operation have default values:
8296 - Limit: GEOM::SHAPE (shape limit corresponds to the type of theShape)
8297 - KeepNonlimitShapes: 0
8298 - KeepInside, RemoveInside, RemoveWebs, Materials (obsolete parameters): empty
8300 I.e. the following two operations are equivalent:
8301 Result = geompy.MakeHalfPartition(Object, Plane)
8302 Result = geompy.MakePartition([Object], [Plane])
8304 # Example: see GEOM_TestAll.py
8305 anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
8306 RaiseIfFailed("MakeHalfPartition", self.BoolOp)
8307 self._autoPublish(anObj, theName, "partition")
8310 # end of l3_basic_op
8313 ## @addtogroup l3_transform
8316 ## Translate the given object along the vector, specified
8317 # by its end points.
8318 # @param theObject The object to be translated.
8319 # @param thePoint1 Start point of translation vector.
8320 # @param thePoint2 End point of translation vector.
8321 # @param theCopy Flag used to translate object itself or create a copy.
8322 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8323 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8324 @ManageTransactions("TrsfOp")
8325 def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
8327 Translate the given object along the vector, specified by its end points.
8330 theObject The object to be translated.
8331 thePoint1 Start point of translation vector.
8332 thePoint2 End point of translation vector.
8333 theCopy Flag used to translate object itself or create a copy.
8336 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8337 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8340 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
8342 anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
8343 RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
8346 ## Translate the given object along the vector, specified
8347 # by its end points, creating its copy before the translation.
8348 # @param theObject The object to be translated.
8349 # @param thePoint1 Start point of translation vector.
8350 # @param thePoint2 End point of translation vector.
8351 # @param theName Object name; when specified, this parameter is used
8352 # for result publication in the study. Otherwise, if automatic
8353 # publication is switched on, default value is used for result name.
8355 # @return New GEOM.GEOM_Object, containing the translated object.
8357 # @ref tui_translation "Example 1"
8358 # \n @ref swig_MakeTranslationTwoPoints "Example 2"
8359 @ManageTransactions("TrsfOp")
8360 def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
8362 Translate the given object along the vector, specified
8363 by its end points, creating its copy before the translation.
8366 theObject The object to be translated.
8367 thePoint1 Start point of translation vector.
8368 thePoint2 End point of translation vector.
8369 theName Object name; when specified, this parameter is used
8370 for result publication in the study. Otherwise, if automatic
8371 publication is switched on, default value is used for result name.
8374 New GEOM.GEOM_Object, containing the translated object.
8376 # Example: see GEOM_TestAll.py
8377 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
8378 RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
8379 self._autoPublish(anObj, theName, "translated")
8382 ## Translate the given object along the vector, specified by its components.
8383 # @param theObject The object to be translated.
8384 # @param theDX,theDY,theDZ Components of translation vector.
8385 # @param theCopy Flag used to translate object itself or create a copy.
8386 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8387 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8389 # @ref tui_translation "Example"
8390 @ManageTransactions("TrsfOp")
8391 def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
8393 Translate the given object along the vector, specified by its components.
8396 theObject The object to be translated.
8397 theDX,theDY,theDZ Components of translation vector.
8398 theCopy Flag used to translate object itself or create a copy.
8401 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8402 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8404 # Example: see GEOM_TestAll.py
8405 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
8407 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
8409 anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
8410 anObj.SetParameters(Parameters)
8411 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
8414 ## Translate the given object along the vector, specified
8415 # by its components, creating its copy before the translation.
8416 # @param theObject The object to be translated.
8417 # @param theDX,theDY,theDZ Components of translation vector.
8418 # @param theName Object name; when specified, this parameter is used
8419 # for result publication in the study. Otherwise, if automatic
8420 # publication is switched on, default value is used for result name.
8422 # @return New GEOM.GEOM_Object, containing the translated object.
8424 # @ref tui_translation "Example"
8425 @ManageTransactions("TrsfOp")
8426 def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
8428 Translate the given object along the vector, specified
8429 by its components, creating its copy before the translation.
8432 theObject The object to be translated.
8433 theDX,theDY,theDZ Components of translation vector.
8434 theName Object name; when specified, this parameter is used
8435 for result publication in the study. Otherwise, if automatic
8436 publication is switched on, default value is used for result name.
8439 New GEOM.GEOM_Object, containing the translated object.
8441 # Example: see GEOM_TestAll.py
8442 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
8443 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
8444 anObj.SetParameters(Parameters)
8445 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
8446 self._autoPublish(anObj, theName, "translated")
8449 ## Translate the given object along the given vector.
8450 # @param theObject The object to be translated.
8451 # @param theVector The translation vector.
8452 # @param theCopy Flag used to translate object itself or create a copy.
8453 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8454 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8455 @ManageTransactions("TrsfOp")
8456 def TranslateVector(self, theObject, theVector, theCopy=False):
8458 Translate the given object along the given vector.
8461 theObject The object to be translated.
8462 theVector The translation vector.
8463 theCopy Flag used to translate object itself or create a copy.
8466 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8467 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8470 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
8472 anObj = self.TrsfOp.TranslateVector(theObject, theVector)
8473 RaiseIfFailed("TranslateVector", self.TrsfOp)
8476 ## Translate the given object along the given vector,
8477 # creating its copy before the translation.
8478 # @param theObject The object to be translated.
8479 # @param theVector The translation vector.
8480 # @param theName Object name; when specified, this parameter is used
8481 # for result publication in the study. Otherwise, if automatic
8482 # publication is switched on, default value is used for result name.
8484 # @return New GEOM.GEOM_Object, containing the translated object.
8486 # @ref tui_translation "Example"
8487 @ManageTransactions("TrsfOp")
8488 def MakeTranslationVector(self, theObject, theVector, theName=None):
8490 Translate the given object along the given vector,
8491 creating its copy before the translation.
8494 theObject The object to be translated.
8495 theVector The translation vector.
8496 theName Object name; when specified, this parameter is used
8497 for result publication in the study. Otherwise, if automatic
8498 publication is switched on, default value is used for result name.
8501 New GEOM.GEOM_Object, containing the translated object.
8503 # Example: see GEOM_TestAll.py
8504 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
8505 RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
8506 self._autoPublish(anObj, theName, "translated")
8509 ## Translate the given object along the given vector on given distance.
8510 # @param theObject The object to be translated.
8511 # @param theVector The translation vector.
8512 # @param theDistance The translation distance.
8513 # @param theCopy Flag used to translate object itself or create a copy.
8514 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8515 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8517 # @ref tui_translation "Example"
8518 @ManageTransactions("TrsfOp")
8519 def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
8521 Translate the given object along the given vector on given distance.
8524 theObject The object to be translated.
8525 theVector The translation vector.
8526 theDistance The translation distance.
8527 theCopy Flag used to translate object itself or create a copy.
8530 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8531 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8533 # Example: see GEOM_TestAll.py
8534 theDistance,Parameters = ParseParameters(theDistance)
8535 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy)
8536 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
8537 anObj.SetParameters(Parameters)
8540 ## Translate the given object along the given vector on given distance,
8541 # creating its copy before the translation.
8542 # @param theObject The object to be translated.
8543 # @param theVector The translation vector.
8544 # @param theDistance The translation distance.
8545 # @param theName Object name; when specified, this parameter is used
8546 # for result publication in the study. Otherwise, if automatic
8547 # publication is switched on, default value is used for result name.
8549 # @return New GEOM.GEOM_Object, containing the translated object.
8551 # @ref tui_translation "Example"
8552 @ManageTransactions("TrsfOp")
8553 def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
8555 Translate the given object along the given vector on given distance,
8556 creating its copy before the translation.
8559 theObject The object to be translated.
8560 theVector The translation vector.
8561 theDistance The translation distance.
8562 theName Object name; when specified, this parameter is used
8563 for result publication in the study. Otherwise, if automatic
8564 publication is switched on, default value is used for result name.
8567 New GEOM.GEOM_Object, containing the translated object.
8569 # Example: see GEOM_TestAll.py
8570 theDistance,Parameters = ParseParameters(theDistance)
8571 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
8572 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
8573 anObj.SetParameters(Parameters)
8574 self._autoPublish(anObj, theName, "translated")
8577 ## Rotate the given object around the given axis on the given angle.
8578 # @param theObject The object to be rotated.
8579 # @param theAxis Rotation axis.
8580 # @param theAngle Rotation angle in radians.
8581 # @param theCopy Flag used to rotate object itself or create a copy.
8583 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8584 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
8586 # @ref tui_rotation "Example"
8587 @ManageTransactions("TrsfOp")
8588 def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
8590 Rotate the given object around the given axis on the given angle.
8593 theObject The object to be rotated.
8594 theAxis Rotation axis.
8595 theAngle Rotation angle in radians.
8596 theCopy Flag used to rotate object itself or create a copy.
8599 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8600 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
8602 # Example: see GEOM_TestAll.py
8604 if isinstance(theAngle,str):
8606 theAngle, Parameters = ParseParameters(theAngle)
8608 theAngle = theAngle*math.pi/180.0
8610 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
8612 anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
8613 RaiseIfFailed("Rotate", self.TrsfOp)
8614 anObj.SetParameters(Parameters)
8617 ## Rotate the given object around the given axis
8618 # on the given angle, creating its copy before the rotation.
8619 # @param theObject The object to be rotated.
8620 # @param theAxis Rotation axis.
8621 # @param theAngle Rotation angle in radians.
8622 # @param theName Object name; when specified, this parameter is used
8623 # for result publication in the study. Otherwise, if automatic
8624 # publication is switched on, default value is used for result name.
8626 # @return New GEOM.GEOM_Object, containing the rotated object.
8628 # @ref tui_rotation "Example"
8629 @ManageTransactions("TrsfOp")
8630 def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
8632 Rotate the given object around the given axis
8633 on the given angle, creating its copy before the rotatation.
8636 theObject The object to be rotated.
8637 theAxis Rotation axis.
8638 theAngle Rotation angle in radians.
8639 theName Object name; when specified, this parameter is used
8640 for result publication in the study. Otherwise, if automatic
8641 publication is switched on, default value is used for result name.
8644 New GEOM.GEOM_Object, containing the rotated object.
8646 # Example: see GEOM_TestAll.py
8648 if isinstance(theAngle,str):
8650 theAngle, Parameters = ParseParameters(theAngle)
8652 theAngle = theAngle*math.pi/180.0
8653 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
8654 RaiseIfFailed("RotateCopy", self.TrsfOp)
8655 anObj.SetParameters(Parameters)
8656 self._autoPublish(anObj, theName, "rotated")
8659 ## Rotate given object around vector perpendicular to plane
8660 # containing three points.
8661 # @param theObject The object to be rotated.
8662 # @param theCentPoint central point the axis is the vector perpendicular to the plane
8663 # containing the three points.
8664 # @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
8665 # @param theCopy Flag used to rotate object itself or create a copy.
8666 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8667 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
8668 @ManageTransactions("TrsfOp")
8669 def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
8671 Rotate given object around vector perpendicular to plane
8672 containing three points.
8675 theObject The object to be rotated.
8676 theCentPoint central point the axis is the vector perpendicular to the plane
8677 containing the three points.
8678 thePoint1,thePoint2 points in a perpendicular plane of the axis.
8679 theCopy Flag used to rotate object itself or create a copy.
8682 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8683 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
8686 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
8688 anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
8689 RaiseIfFailed("RotateThreePoints", self.TrsfOp)
8692 ## Rotate given object around vector perpendicular to plane
8693 # containing three points, creating its copy before the rotatation.
8694 # @param theObject The object to be rotated.
8695 # @param theCentPoint central point the axis is the vector perpendicular to the plane
8696 # containing the three points.
8697 # @param thePoint1,thePoint2 in a perpendicular plane of the axis.
8698 # @param theName Object name; when specified, this parameter is used
8699 # for result publication in the study. Otherwise, if automatic
8700 # publication is switched on, default value is used for result name.
8702 # @return New GEOM.GEOM_Object, containing the rotated object.
8704 # @ref tui_rotation "Example"
8705 @ManageTransactions("TrsfOp")
8706 def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
8708 Rotate given object around vector perpendicular to plane
8709 containing three points, creating its copy before the rotatation.
8712 theObject The object to be rotated.
8713 theCentPoint central point the axis is the vector perpendicular to the plane
8714 containing the three points.
8715 thePoint1,thePoint2 in a perpendicular plane of the axis.
8716 theName Object name; when specified, this parameter is used
8717 for result publication in the study. Otherwise, if automatic
8718 publication is switched on, default value is used for result name.
8721 New GEOM.GEOM_Object, containing the rotated object.
8723 # Example: see GEOM_TestAll.py
8724 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
8725 RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
8726 self._autoPublish(anObj, theName, "rotated")
8729 ## Scale the given object by the specified factor.
8730 # @param theObject The object to be scaled.
8731 # @param thePoint Center point for scaling.
8732 # Passing None for it means scaling relatively the origin of global CS.
8733 # @param theFactor Scaling factor value.
8734 # @param theCopy Flag used to scale object itself or create a copy.
8735 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8736 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
8737 @ManageTransactions("TrsfOp")
8738 def Scale(self, theObject, thePoint, theFactor, theCopy=False):
8740 Scale the given object by the specified factor.
8743 theObject The object to be scaled.
8744 thePoint Center point for scaling.
8745 Passing None for it means scaling relatively the origin of global CS.
8746 theFactor Scaling factor value.
8747 theCopy Flag used to scale object itself or create a copy.
8750 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8751 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
8753 # Example: see GEOM_TestAll.py
8754 theFactor, Parameters = ParseParameters(theFactor)
8756 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
8758 anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
8759 RaiseIfFailed("Scale", self.TrsfOp)
8760 anObj.SetParameters(Parameters)
8763 ## Scale the given object by the factor, creating its copy before the scaling.
8764 # @param theObject The object to be scaled.
8765 # @param thePoint Center point for scaling.
8766 # Passing None for it means scaling relatively the origin of global CS.
8767 # @param theFactor Scaling factor value.
8768 # @param theName Object name; when specified, this parameter is used
8769 # for result publication in the study. Otherwise, if automatic
8770 # publication is switched on, default value is used for result name.
8772 # @return New GEOM.GEOM_Object, containing the scaled shape.
8774 # @ref tui_scale "Example"
8775 @ManageTransactions("TrsfOp")
8776 def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
8778 Scale the given object by the factor, creating its copy before the scaling.
8781 theObject The object to be scaled.
8782 thePoint Center point for scaling.
8783 Passing None for it means scaling relatively the origin of global CS.
8784 theFactor Scaling factor value.
8785 theName Object name; when specified, this parameter is used
8786 for result publication in the study. Otherwise, if automatic
8787 publication is switched on, default value is used for result name.
8790 New GEOM.GEOM_Object, containing the scaled shape.
8792 # Example: see GEOM_TestAll.py
8793 theFactor, Parameters = ParseParameters(theFactor)
8794 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
8795 RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
8796 anObj.SetParameters(Parameters)
8797 self._autoPublish(anObj, theName, "scaled")
8800 ## Scale the given object by different factors along coordinate axes.
8801 # @param theObject The object to be scaled.
8802 # @param thePoint Center point for scaling.
8803 # Passing None for it means scaling relatively the origin of global CS.
8804 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8805 # @param theCopy Flag used to scale object itself or create a copy.
8806 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8807 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
8808 @ManageTransactions("TrsfOp")
8809 def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
8811 Scale the given object by different factors along coordinate axes.
8814 theObject The object to be scaled.
8815 thePoint Center point for scaling.
8816 Passing None for it means scaling relatively the origin of global CS.
8817 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8818 theCopy Flag used to scale object itself or create a copy.
8821 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8822 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
8824 # Example: see GEOM_TestAll.py
8825 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
8827 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
8828 theFactorX, theFactorY, theFactorZ)
8830 anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
8831 theFactorX, theFactorY, theFactorZ)
8832 RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
8833 anObj.SetParameters(Parameters)
8836 ## Scale the given object by different factors along coordinate axes,
8837 # creating its copy before the scaling.
8838 # @param theObject The object to be scaled.
8839 # @param thePoint Center point for scaling.
8840 # Passing None for it means scaling relatively the origin of global CS.
8841 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8842 # @param theName Object name; when specified, this parameter is used
8843 # for result publication in the study. Otherwise, if automatic
8844 # publication is switched on, default value is used for result name.
8846 # @return New GEOM.GEOM_Object, containing the scaled shape.
8848 # @ref swig_scale "Example"
8849 @ManageTransactions("TrsfOp")
8850 def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
8852 Scale the given object by different factors along coordinate axes,
8853 creating its copy before the scaling.
8856 theObject The object to be scaled.
8857 thePoint Center point for scaling.
8858 Passing None for it means scaling relatively the origin of global CS.
8859 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8860 theName Object name; when specified, this parameter is used
8861 for result publication in the study. Otherwise, if automatic
8862 publication is switched on, default value is used for result name.
8865 New GEOM.GEOM_Object, containing the scaled shape.
8867 # Example: see GEOM_TestAll.py
8868 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
8869 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
8870 theFactorX, theFactorY, theFactorZ)
8871 RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
8872 anObj.SetParameters(Parameters)
8873 self._autoPublish(anObj, theName, "scaled")
8876 ## Mirror an object relatively the given plane.
8877 # @param theObject The object to be mirrored.
8878 # @param thePlane Plane of symmetry.
8879 # @param theCopy Flag used to mirror object itself or create a copy.
8880 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8881 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8882 @ManageTransactions("TrsfOp")
8883 def MirrorByPlane(self, theObject, thePlane, theCopy=False):
8885 Mirror an object relatively the given plane.
8888 theObject The object to be mirrored.
8889 thePlane Plane of symmetry.
8890 theCopy Flag used to mirror object itself or create a copy.
8893 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8894 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8897 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
8899 anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
8900 RaiseIfFailed("MirrorByPlane", self.TrsfOp)
8903 ## Create an object, symmetrical
8904 # to the given one relatively the given plane.
8905 # @param theObject The object to be mirrored.
8906 # @param thePlane Plane of symmetry.
8907 # @param theName Object name; when specified, this parameter is used
8908 # for result publication in the study. Otherwise, if automatic
8909 # publication is switched on, default value is used for result name.
8911 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8913 # @ref tui_mirror "Example"
8914 @ManageTransactions("TrsfOp")
8915 def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
8917 Create an object, symmetrical to the given one relatively the given plane.
8920 theObject The object to be mirrored.
8921 thePlane Plane of symmetry.
8922 theName Object name; when specified, this parameter is used
8923 for result publication in the study. Otherwise, if automatic
8924 publication is switched on, default value is used for result name.
8927 New GEOM.GEOM_Object, containing the mirrored shape.
8929 # Example: see GEOM_TestAll.py
8930 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
8931 RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
8932 self._autoPublish(anObj, theName, "mirrored")
8935 ## Mirror an object relatively the given axis.
8936 # @param theObject The object to be mirrored.
8937 # @param theAxis Axis of symmetry.
8938 # @param theCopy Flag used to mirror object itself or create a copy.
8939 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8940 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8941 @ManageTransactions("TrsfOp")
8942 def MirrorByAxis(self, theObject, theAxis, theCopy=False):
8944 Mirror an object relatively the given axis.
8947 theObject The object to be mirrored.
8948 theAxis Axis of symmetry.
8949 theCopy Flag used to mirror object itself or create a copy.
8952 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8953 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8956 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
8958 anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
8959 RaiseIfFailed("MirrorByAxis", self.TrsfOp)
8962 ## Create an object, symmetrical
8963 # to the given one relatively the given axis.
8964 # @param theObject The object to be mirrored.
8965 # @param theAxis Axis of symmetry.
8966 # @param theName Object name; when specified, this parameter is used
8967 # for result publication in the study. Otherwise, if automatic
8968 # publication is switched on, default value is used for result name.
8970 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8972 # @ref tui_mirror "Example"
8973 @ManageTransactions("TrsfOp")
8974 def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
8976 Create an object, symmetrical to the given one relatively the given axis.
8979 theObject The object to be mirrored.
8980 theAxis Axis of symmetry.
8981 theName Object name; when specified, this parameter is used
8982 for result publication in the study. Otherwise, if automatic
8983 publication is switched on, default value is used for result name.
8986 New GEOM.GEOM_Object, containing the mirrored shape.
8988 # Example: see GEOM_TestAll.py
8989 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
8990 RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
8991 self._autoPublish(anObj, theName, "mirrored")
8994 ## Mirror an object relatively the given point.
8995 # @param theObject The object to be mirrored.
8996 # @param thePoint Point of symmetry.
8997 # @param theCopy Flag used to mirror object itself or create a copy.
8998 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8999 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
9000 @ManageTransactions("TrsfOp")
9001 def MirrorByPoint(self, theObject, thePoint, theCopy=False):
9003 Mirror an object relatively the given point.
9006 theObject The object to be mirrored.
9007 thePoint Point of symmetry.
9008 theCopy Flag used to mirror object itself or create a copy.
9011 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9012 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
9014 # Example: see GEOM_TestAll.py
9016 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
9018 anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
9019 RaiseIfFailed("MirrorByPoint", self.TrsfOp)
9022 ## Create an object, symmetrical
9023 # to the given one relatively the given point.
9024 # @param theObject The object to be mirrored.
9025 # @param thePoint Point of symmetry.
9026 # @param theName Object name; when specified, this parameter is used
9027 # for result publication in the study. Otherwise, if automatic
9028 # publication is switched on, default value is used for result name.
9030 # @return New GEOM.GEOM_Object, containing the mirrored shape.
9032 # @ref tui_mirror "Example"
9033 @ManageTransactions("TrsfOp")
9034 def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
9036 Create an object, symmetrical
9037 to the given one relatively the given point.
9040 theObject The object to be mirrored.
9041 thePoint Point of symmetry.
9042 theName Object name; when specified, this parameter is used
9043 for result publication in the study. Otherwise, if automatic
9044 publication is switched on, default value is used for result name.
9047 New GEOM.GEOM_Object, containing the mirrored shape.
9049 # Example: see GEOM_TestAll.py
9050 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
9051 RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
9052 self._autoPublish(anObj, theName, "mirrored")
9055 ## Modify the location of the given object.
9056 # @param theObject The object to be displaced.
9057 # @param theStartLCS Coordinate system to perform displacement from it.\n
9058 # If \a theStartLCS is NULL, displacement
9059 # will be performed from global CS.\n
9060 # If \a theObject itself is used as \a theStartLCS,
9061 # its location will be changed to \a theEndLCS.
9062 # @param theEndLCS Coordinate system to perform displacement to it.
9063 # @param theCopy Flag used to displace object itself or create a copy.
9064 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
9065 # new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
9066 @ManageTransactions("TrsfOp")
9067 def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
9069 Modify the Location of the given object by LCS, creating its copy before the setting.
9072 theObject The object to be displaced.
9073 theStartLCS Coordinate system to perform displacement from it.
9074 If theStartLCS is NULL, displacement
9075 will be performed from global CS.
9076 If theObject itself is used as theStartLCS,
9077 its location will be changed to theEndLCS.
9078 theEndLCS Coordinate system to perform displacement to it.
9079 theCopy Flag used to displace object itself or create a copy.
9082 Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9083 new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
9085 # Example: see GEOM_TestAll.py
9087 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
9089 anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
9090 RaiseIfFailed("Displace", self.TrsfOp)
9093 ## Modify the Location of the given object by LCS,
9094 # creating its copy before the setting.
9095 # @param theObject The object to be displaced.
9096 # @param theStartLCS Coordinate system to perform displacement from it.\n
9097 # If \a theStartLCS is NULL, displacement
9098 # will be performed from global CS.\n
9099 # If \a theObject itself is used as \a theStartLCS,
9100 # its location will be changed to \a theEndLCS.
9101 # @param theEndLCS Coordinate system to perform displacement to it.
9102 # @param theName Object name; when specified, this parameter is used
9103 # for result publication in the study. Otherwise, if automatic
9104 # publication is switched on, default value is used for result name.
9106 # @return New GEOM.GEOM_Object, containing the displaced shape.
9108 # @ref tui_modify_location "Example"
9109 @ManageTransactions("TrsfOp")
9110 def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
9112 Modify the Location of the given object by LCS, creating its copy before the setting.
9115 theObject The object to be displaced.
9116 theStartLCS Coordinate system to perform displacement from it.
9117 If theStartLCS is NULL, displacement
9118 will be performed from global CS.
9119 If theObject itself is used as theStartLCS,
9120 its location will be changed to theEndLCS.
9121 theEndLCS Coordinate system to perform displacement to it.
9122 theName Object name; when specified, this parameter is used
9123 for result publication in the study. Otherwise, if automatic
9124 publication is switched on, default value is used for result name.
9127 New GEOM.GEOM_Object, containing the displaced shape.
9130 # create local coordinate systems
9131 cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
9132 cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0)
9133 # modify the location of the given object
9134 position = geompy.MakePosition(cylinder, cs1, cs2)
9136 # Example: see GEOM_TestAll.py
9137 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
9138 RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
9139 self._autoPublish(anObj, theName, "displaced")
9142 ## Modify the Location of the given object by Path.
9143 # @param theObject The object to be displaced.
9144 # @param thePath Wire or Edge along that the object will be translated.
9145 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
9146 # @param theCopy is to create a copy objects if true.
9147 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
9148 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
9149 # new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
9151 # @ref tui_modify_location "Example"
9152 @ManageTransactions("TrsfOp")
9153 def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
9155 Modify the Location of the given object by Path.
9158 theObject The object to be displaced.
9159 thePath Wire or Edge along that the object will be translated.
9160 theDistance progress of Path (0 = start location, 1 = end of path location).
9161 theCopy is to create a copy objects if true.
9162 theReverse 0 - for usual direction, 1 - to reverse path direction.
9165 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
9166 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
9169 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
9171 # Example: see GEOM_TestAll.py
9172 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse)
9173 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
9176 ## Modify the Location of the given object by Path, creating its copy before the operation.
9177 # @param theObject The object to be displaced.
9178 # @param thePath Wire or Edge along that the object will be translated.
9179 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
9180 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
9181 # @param theName Object name; when specified, this parameter is used
9182 # for result publication in the study. Otherwise, if automatic
9183 # publication is switched on, default value is used for result name.
9185 # @return New GEOM.GEOM_Object, containing the displaced shape.
9186 @ManageTransactions("TrsfOp")
9187 def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
9189 Modify the Location of the given object by Path, creating its copy before the operation.
9192 theObject The object to be displaced.
9193 thePath Wire or Edge along that the object will be translated.
9194 theDistance progress of Path (0 = start location, 1 = end of path location).
9195 theReverse 0 - for usual direction, 1 - to reverse path direction.
9196 theName Object name; when specified, this parameter is used
9197 for result publication in the study. Otherwise, if automatic
9198 publication is switched on, default value is used for result name.
9201 New GEOM.GEOM_Object, containing the displaced shape.
9203 # Example: see GEOM_TestAll.py
9204 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
9205 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
9206 self._autoPublish(anObj, theName, "displaced")
9209 ## Offset given shape.
9210 # @param theObject The base object for the offset.
9211 # @param theOffset Offset value.
9212 # @param theCopy Flag used to offset object itself or create a copy.
9213 # @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
9214 # new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
9215 @ManageTransactions("TrsfOp")
9216 def Offset(self, theObject, theOffset, theCopy=False):
9221 theObject The base object for the offset.
9222 theOffset Offset value.
9223 theCopy Flag used to offset object itself or create a copy.
9226 Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9227 new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
9229 theOffset, Parameters = ParseParameters(theOffset)
9231 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
9233 anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
9234 RaiseIfFailed("Offset", self.TrsfOp)
9235 anObj.SetParameters(Parameters)
9238 ## Create new object as offset of the given one.
9239 # @param theObject The base object for the offset.
9240 # @param theOffset Offset value.
9241 # @param theName Object name; when specified, this parameter is used
9242 # for result publication in the study. Otherwise, if automatic
9243 # publication is switched on, default value is used for result name.
9245 # @return New GEOM.GEOM_Object, containing the offset object.
9247 # @ref tui_offset "Example"
9248 @ManageTransactions("TrsfOp")
9249 def MakeOffset(self, theObject, theOffset, theName=None):
9251 Create new object as offset of the given one.
9254 theObject The base object for the offset.
9255 theOffset Offset value.
9256 theName Object name; when specified, this parameter is used
9257 for result publication in the study. Otherwise, if automatic
9258 publication is switched on, default value is used for result name.
9261 New GEOM.GEOM_Object, containing the offset object.
9264 box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
9265 # create a new object as offset of the given object
9266 offset = geompy.MakeOffset(box, 70.)
9268 # Example: see GEOM_TestAll.py
9269 theOffset, Parameters = ParseParameters(theOffset)
9270 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
9271 RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
9272 anObj.SetParameters(Parameters)
9273 self._autoPublish(anObj, theName, "offset")
9276 ## Create new object as projection of the given one on another.
9277 # @param theSource The source object for the projection. It can be a point, edge or wire.
9278 # Edge and wire are acceptable if @a theTarget is a face.
9279 # @param theTarget The target object. It can be planar or cylindrical face, edge or wire.
9280 # @param theName Object name; when specified, this parameter is used
9281 # for result publication in the study. Otherwise, if automatic
9282 # publication is switched on, default value is used for result name.
9284 # @return New GEOM.GEOM_Object, containing the projection.
9286 # @ref tui_projection "Example"
9287 @ManageTransactions("TrsfOp")
9288 def MakeProjection(self, theSource, theTarget, theName=None):
9290 Create new object as projection of the given one on another.
9293 theSource The source object for the projection. It can be a point, edge or wire.
9294 Edge and wire are acceptable if theTarget is a face.
9295 theTarget The target object. It can be planar or cylindrical face, edge or wire.
9296 theName Object name; when specified, this parameter is used
9297 for result publication in the study. Otherwise, if automatic
9298 publication is switched on, default value is used for result name.
9301 New GEOM.GEOM_Object, containing the projection.
9303 # Example: see GEOM_TestAll.py
9304 anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
9305 RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
9306 self._autoPublish(anObj, theName, "projection")
9309 ## Create a projection of the given point on a wire or an edge.
9310 # If there are no solutions or there are 2 or more solutions It throws an
9312 # @param thePoint the point to be projected.
9313 # @param theWire the wire. The edge is accepted as well.
9314 # @param theName Object name; when specified, this parameter is used
9315 # for result publication in the study. Otherwise, if automatic
9316 # publication is switched on, default value is used for result name.
9318 # @return [\a u, \a PointOnEdge, \a EdgeInWireIndex]
9319 # \n \a u: The parameter of projection point on edge.
9320 # \n \a PointOnEdge: The projection point.
9321 # \n \a EdgeInWireIndex: The index of an edge in a wire.
9323 # @ref tui_projection "Example"
9324 @ManageTransactions("TrsfOp")
9325 def MakeProjectionOnWire(self, thePoint, theWire, theName=None):
9327 Create a projection of the given point on a wire or an edge.
9328 If there are no solutions or there are 2 or more solutions It throws an
9332 thePoint the point to be projected.
9333 theWire the wire. The edge is accepted as well.
9334 theName Object name; when specified, this parameter is used
9335 for result publication in the study. Otherwise, if automatic
9336 publication is switched on, default value is used for result name.
9339 [u, PointOnEdge, EdgeInWireIndex]
9340 u: The parameter of projection point on edge.
9341 PointOnEdge: The projection point.
9342 EdgeInWireIndex: The index of an edge in a wire.
9344 # Example: see GEOM_TestAll.py
9345 anObj = self.TrsfOp.ProjectPointOnWire(thePoint, theWire)
9346 RaiseIfFailed("ProjectPointOnWire", self.TrsfOp)
9347 self._autoPublish(anObj[1], theName, "projection")
9350 # -----------------------------------------------------------------------------
9352 # -----------------------------------------------------------------------------
9354 ## Translate the given object along the given vector a given number times
9355 # @param theObject The object to be translated.
9356 # @param theVector Direction of the translation. DX if None.
9357 # @param theStep Distance to translate on.
9358 # @param theNbTimes Quantity of translations to be done.
9359 # @param theName Object name; when specified, this parameter is used
9360 # for result publication in the study. Otherwise, if automatic
9361 # publication is switched on, default value is used for result name.
9363 # @return New GEOM.GEOM_Object, containing compound of all
9364 # the shapes, obtained after each translation.
9366 # @ref tui_multi_translation "Example"
9367 @ManageTransactions("TrsfOp")
9368 def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
9370 Translate the given object along the given vector a given number times
9373 theObject The object to be translated.
9374 theVector Direction of the translation. DX if None.
9375 theStep Distance to translate on.
9376 theNbTimes Quantity of translations to be done.
9377 theName Object name; when specified, this parameter is used
9378 for result publication in the study. Otherwise, if automatic
9379 publication is switched on, default value is used for result name.
9382 New GEOM.GEOM_Object, containing compound of all
9383 the shapes, obtained after each translation.
9386 r1d = geompy.MakeMultiTranslation1D(prism, vect, 20, 4)
9388 # Example: see GEOM_TestAll.py
9389 theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes)
9390 anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
9391 RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
9392 anObj.SetParameters(Parameters)
9393 self._autoPublish(anObj, theName, "multitranslation")
9396 ## Conseqently apply two specified translations to theObject specified number of times.
9397 # @param theObject The object to be translated.
9398 # @param theVector1 Direction of the first translation. DX if None.
9399 # @param theStep1 Step of the first translation.
9400 # @param theNbTimes1 Quantity of translations to be done along theVector1.
9401 # @param theVector2 Direction of the second translation. DY if None.
9402 # @param theStep2 Step of the second translation.
9403 # @param theNbTimes2 Quantity of translations to be done along theVector2.
9404 # @param theName Object name; when specified, this parameter is used
9405 # for result publication in the study. Otherwise, if automatic
9406 # publication is switched on, default value is used for result name.
9408 # @return New GEOM.GEOM_Object, containing compound of all
9409 # the shapes, obtained after each translation.
9411 # @ref tui_multi_translation "Example"
9412 @ManageTransactions("TrsfOp")
9413 def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
9414 theVector2, theStep2, theNbTimes2, theName=None):
9416 Conseqently apply two specified translations to theObject specified number of times.
9419 theObject The object to be translated.
9420 theVector1 Direction of the first translation. DX if None.
9421 theStep1 Step of the first translation.
9422 theNbTimes1 Quantity of translations to be done along theVector1.
9423 theVector2 Direction of the second translation. DY if None.
9424 theStep2 Step of the second translation.
9425 theNbTimes2 Quantity of translations to be done along theVector2.
9426 theName Object name; when specified, this parameter is used
9427 for result publication in the study. Otherwise, if automatic
9428 publication is switched on, default value is used for result name.
9431 New GEOM.GEOM_Object, containing compound of all
9432 the shapes, obtained after each translation.
9435 tr2d = geompy.MakeMultiTranslation2D(prism, vect1, 20, 4, vect2, 80, 3)
9437 # Example: see GEOM_TestAll.py
9438 theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2)
9439 anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
9440 theVector2, theStep2, theNbTimes2)
9441 RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
9442 anObj.SetParameters(Parameters)
9443 self._autoPublish(anObj, theName, "multitranslation")
9446 ## Rotate the given object around the given axis a given number times.
9447 # Rotation angle will be 2*PI/theNbTimes.
9448 # @param theObject The object to be rotated.
9449 # @param theAxis The rotation axis. DZ if None.
9450 # @param theNbTimes Quantity of rotations to be done.
9451 # @param theName Object name; when specified, this parameter is used
9452 # for result publication in the study. Otherwise, if automatic
9453 # publication is switched on, default value is used for result name.
9455 # @return New GEOM.GEOM_Object, containing compound of all the
9456 # shapes, obtained after each rotation.
9458 # @ref tui_multi_rotation "Example"
9459 @ManageTransactions("TrsfOp")
9460 def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
9462 Rotate the given object around the given axis a given number times.
9463 Rotation angle will be 2*PI/theNbTimes.
9466 theObject The object to be rotated.
9467 theAxis The rotation axis. DZ if None.
9468 theNbTimes Quantity of rotations to be done.
9469 theName Object name; when specified, this parameter is used
9470 for result publication in the study. Otherwise, if automatic
9471 publication is switched on, default value is used for result name.
9474 New GEOM.GEOM_Object, containing compound of all the
9475 shapes, obtained after each rotation.
9478 rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
9480 # Example: see GEOM_TestAll.py
9481 theNbTimes, Parameters = ParseParameters(theNbTimes)
9482 anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
9483 RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
9484 anObj.SetParameters(Parameters)
9485 self._autoPublish(anObj, theName, "multirotation")
9488 ## Rotate the given object around the given axis
9489 # a given number times on the given angle.
9490 # @param theObject The object to be rotated.
9491 # @param theAxis The rotation axis. DZ if None.
9492 # @param theAngleStep Rotation angle in radians.
9493 # @param theNbTimes Quantity of rotations to be done.
9494 # @param theName Object name; when specified, this parameter is used
9495 # for result publication in the study. Otherwise, if automatic
9496 # publication is switched on, default value is used for result name.
9498 # @return New GEOM.GEOM_Object, containing compound of all the
9499 # shapes, obtained after each rotation.
9501 # @ref tui_multi_rotation "Example"
9502 @ManageTransactions("TrsfOp")
9503 def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
9505 Rotate the given object around the given axis
9506 a given number times on the given angle.
9509 theObject The object to be rotated.
9510 theAxis The rotation axis. DZ if None.
9511 theAngleStep Rotation angle in radians.
9512 theNbTimes Quantity of rotations to be done.
9513 theName Object name; when specified, this parameter is used
9514 for result publication in the study. Otherwise, if automatic
9515 publication is switched on, default value is used for result name.
9518 New GEOM.GEOM_Object, containing compound of all the
9519 shapes, obtained after each rotation.
9522 rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
9524 # Example: see GEOM_TestAll.py
9525 theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
9526 anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
9527 RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
9528 anObj.SetParameters(Parameters)
9529 self._autoPublish(anObj, theName, "multirotation")
9532 ## Rotate the given object around the given axis a given
9533 # number times and multi-translate each rotation result.
9534 # Rotation angle will be 2*PI/theNbTimes1.
9535 # Translation direction passes through center of gravity
9536 # of rotated shape and its projection on the rotation axis.
9537 # @param theObject The object to be rotated.
9538 # @param theAxis Rotation axis. DZ if None.
9539 # @param theNbTimes1 Quantity of rotations to be done.
9540 # @param theRadialStep Translation distance.
9541 # @param theNbTimes2 Quantity of translations to be done.
9542 # @param theName Object name; when specified, this parameter is used
9543 # for result publication in the study. Otherwise, if automatic
9544 # publication is switched on, default value is used for result name.
9546 # @return New GEOM.GEOM_Object, containing compound of all the
9547 # shapes, obtained after each transformation.
9549 # @ref tui_multi_rotation "Example"
9550 @ManageTransactions("TrsfOp")
9551 def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
9553 Rotate the given object around the
9554 given axis on the given angle a given number
9555 times and multi-translate each rotation result.
9556 Translation direction passes through center of gravity
9557 of rotated shape and its projection on the rotation axis.
9560 theObject The object to be rotated.
9561 theAxis Rotation axis. DZ if None.
9562 theNbTimes1 Quantity of rotations to be done.
9563 theRadialStep Translation distance.
9564 theNbTimes2 Quantity of translations to be done.
9565 theName Object name; when specified, this parameter is used
9566 for result publication in the study. Otherwise, if automatic
9567 publication is switched on, default value is used for result name.
9570 New GEOM.GEOM_Object, containing compound of all the
9571 shapes, obtained after each transformation.
9574 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
9576 # Example: see GEOM_TestAll.py
9577 theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
9578 anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
9579 RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
9580 anObj.SetParameters(Parameters)
9581 self._autoPublish(anObj, theName, "multirotation")
9584 ## Rotate the given object around the
9585 # given axis on the given angle a given number
9586 # times and multi-translate each rotation result.
9587 # Translation direction passes through center of gravity
9588 # of rotated shape and its projection on the rotation axis.
9589 # @param theObject The object to be rotated.
9590 # @param theAxis Rotation axis. DZ if None.
9591 # @param theAngleStep Rotation angle in radians.
9592 # @param theNbTimes1 Quantity of rotations to be done.
9593 # @param theRadialStep Translation distance.
9594 # @param theNbTimes2 Quantity of translations to be done.
9595 # @param theName Object name; when specified, this parameter is used
9596 # for result publication in the study. Otherwise, if automatic
9597 # publication is switched on, default value is used for result name.
9599 # @return New GEOM.GEOM_Object, containing compound of all the
9600 # shapes, obtained after each transformation.
9602 # @ref tui_multi_rotation "Example"
9603 @ManageTransactions("TrsfOp")
9604 def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
9606 Rotate the given object around the
9607 given axis on the given angle a given number
9608 times and multi-translate each rotation result.
9609 Translation direction passes through center of gravity
9610 of rotated shape and its projection on the rotation axis.
9613 theObject The object to be rotated.
9614 theAxis Rotation axis. DZ if None.
9615 theAngleStep Rotation angle in radians.
9616 theNbTimes1 Quantity of rotations to be done.
9617 theRadialStep Translation distance.
9618 theNbTimes2 Quantity of translations to be done.
9619 theName Object name; when specified, this parameter is used
9620 for result publication in the study. Otherwise, if automatic
9621 publication is switched on, default value is used for result name.
9624 New GEOM.GEOM_Object, containing compound of all the
9625 shapes, obtained after each transformation.
9628 rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
9630 # Example: see GEOM_TestAll.py
9631 theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
9632 anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
9633 RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
9634 anObj.SetParameters(Parameters)
9635 self._autoPublish(anObj, theName, "multirotation")
9638 ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
9640 # @ref swig_MakeMultiRotation "Example"
9641 def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
9643 The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
9646 pz = geompy.MakeVertex(0, 0, 100)
9647 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9648 MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
9650 # Example: see GEOM_TestOthers.py
9651 aVec = self.MakeLine(aPoint,aDir)
9652 # note: auto-publishing is done in self.MultiRotate1D()
9653 anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
9656 ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
9658 # @ref swig_MakeMultiRotation "Example"
9659 def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
9661 The same, as geompy.MultiRotate1D, but axis is given by direction and point
9664 pz = geompy.MakeVertex(0, 0, 100)
9665 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9666 MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
9668 # Example: see GEOM_TestOthers.py
9669 aVec = self.MakeLine(aPoint,aDir)
9670 # note: auto-publishing is done in self.MultiRotate1D()
9671 anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
9674 ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
9676 # @ref swig_MakeMultiRotation "Example"
9677 def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
9679 The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
9682 pz = geompy.MakeVertex(0, 0, 100)
9683 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9684 MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
9686 # Example: see GEOM_TestOthers.py
9687 aVec = self.MakeLine(aPoint,aDir)
9688 # note: auto-publishing is done in self.MultiRotate2DNbTimes()
9689 anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
9692 ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
9694 # @ref swig_MakeMultiRotation "Example"
9695 def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
9697 The same, as MultiRotate2DByStep(), but axis is given by direction and point
9700 pz = geompy.MakeVertex(0, 0, 100)
9701 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9702 MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
9704 # Example: see GEOM_TestOthers.py
9705 aVec = self.MakeLine(aPoint,aDir)
9706 # note: auto-publishing is done in self.MultiRotate2D()
9707 anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
9711 # Compute a wire or a face that represents a projection of the source
9712 # shape onto cylinder. The cylinder's coordinate system is the same
9713 # as the global coordinate system.
9715 # @param theObject The object to be projected. It can be either
9716 # a planar wire or a face.
9717 # @param theRadius The radius of the cylinder.
9718 # @param theStartAngle The starting angle in radians from
9719 # the cylinder's X axis around Z axis. The angle from which
9720 # the projection is started.
9721 # @param theAngleLength The projection length angle in radians.
9722 # The angle in which to project the total length of the wire.
9723 # If it is negative the projection is not scaled and natural
9724 # wire length is kept for the projection.
9725 # @param theAngleRotation The desired angle in radians between
9726 # the tangent vector to the first curve at the first point of
9727 # the theObject's projection in 2D space and U-direction of
9728 # cylinder's 2D space.
9729 # @param theName Object name; when specified, this parameter is used
9730 # for result publication in the study. Otherwise, if automatic
9731 # publication is switched on, default value is used for result name.
9733 # @return New GEOM.GEOM_Object, containing the result shape. The result
9734 # represents a wire or a face that represents a projection of
9735 # the source shape onto a cylinder.
9737 # @ref tui_projection "Example"
9738 def MakeProjectionOnCylinder (self, theObject, theRadius,
9739 theStartAngle=0.0, theAngleLength=-1.0,
9740 theAngleRotation=0.0,
9743 Compute a wire or a face that represents a projection of the source
9744 shape onto cylinder. The cylinder's coordinate system is the same
9745 as the global coordinate system.
9748 theObject The object to be projected. It can be either
9749 a planar wire or a face.
9750 theRadius The radius of the cylinder.
9751 theStartAngle The starting angle in radians from the cylinder's X axis
9752 around Z axis. The angle from which the projection is started.
9753 theAngleLength The projection length angle in radians. The angle in which
9754 to project the total length of the wire. If it is negative the
9755 projection is not scaled and natural wire length is kept for
9757 theAngleRotation The desired angle in radians between
9758 the tangent vector to the first curve at the first
9759 point of the theObject's projection in 2D space and
9760 U-direction of cylinder's 2D space.
9761 theName Object name; when specified, this parameter is used
9762 for result publication in the study. Otherwise, if automatic
9763 publication is switched on, default value is used for result name.
9766 New GEOM.GEOM_Object, containing the result shape. The result
9767 represents a wire or a face that represents a projection of
9768 the source shape onto a cylinder.
9770 # Example: see GEOM_TestAll.py
9771 flagStartAngle = False
9772 if isinstance(theStartAngle,str):
9773 flagStartAngle = True
9774 flagAngleLength = False
9775 if isinstance(theAngleLength,str):
9776 flagAngleLength = True
9777 flagAngleRotation = False
9778 if isinstance(theAngleRotation,str):
9779 flagAngleRotation = True
9780 theRadius, theStartAngle, theAngleLength, theAngleRotation, Parameters = ParseParameters(
9781 theRadius, theStartAngle, theAngleLength, theAngleRotation)
9783 theStartAngle = theStartAngle*math.pi/180.
9785 theAngleLength = theAngleLength*math.pi/180.
9786 if flagAngleRotation:
9787 theAngleRotation = theAngleRotation*math.pi/180.
9788 anObj = self.TrsfOp.MakeProjectionOnCylinder(theObject, theRadius,
9789 theStartAngle, theAngleLength, theAngleRotation)
9790 RaiseIfFailed("MakeProjectionOnCylinder", self.TrsfOp)
9791 anObj.SetParameters(Parameters)
9792 self._autoPublish(anObj, theName, "projection")
9795 # end of l3_transform
9798 ## @addtogroup l3_transform_d
9801 ## Deprecated method. Use MultiRotate1DNbTimes instead.
9802 def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
9804 Deprecated method. Use MultiRotate1DNbTimes instead.
9806 print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
9807 return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
9809 ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
9810 # This method is DEPRECATED. Use MultiRotate2DByStep() instead.
9811 @ManageTransactions("TrsfOp")
9812 def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
9814 The same, as MultiRotate2DByStep(), but theAngle is in degrees.
9815 This method is DEPRECATED. Use MultiRotate2DByStep() instead.
9818 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
9820 print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
9821 theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
9822 anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
9823 RaiseIfFailed("MultiRotate2D", self.TrsfOp)
9824 anObj.SetParameters(Parameters)
9825 self._autoPublish(anObj, theName, "multirotation")
9828 ## The same, as MultiRotate1D(), but axis is given by direction and point
9829 # This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
9830 def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
9832 The same, as geompy.MultiRotate1D, but axis is given by direction and point.
9833 This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
9836 pz = geompy.MakeVertex(0, 0, 100)
9837 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9838 MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
9840 print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
9841 aVec = self.MakeLine(aPoint,aDir)
9842 # note: auto-publishing is done in self.MultiRotate1D()
9843 anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
9846 ## The same, as MultiRotate2D(), but axis is given by direction and point
9847 # This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
9848 def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
9850 The same, as MultiRotate2D(), but axis is given by direction and point
9851 This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
9854 pz = geompy.MakeVertex(0, 0, 100)
9855 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9856 MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
9858 print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
9859 aVec = self.MakeLine(aPoint,aDir)
9860 # note: auto-publishing is done in self.MultiRotate2D()
9861 anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
9864 # end of l3_transform_d
9867 ## @addtogroup l3_local
9870 ## Perform a fillet on all edges of the given shape.
9871 # @param theShape Shape, to perform fillet on.
9872 # @param theR Fillet radius.
9873 # @param theName Object name; when specified, this parameter is used
9874 # for result publication in the study. Otherwise, if automatic
9875 # publication is switched on, default value is used for result name.
9877 # @return New GEOM.GEOM_Object, containing the result shape.
9879 # @ref tui_fillet "Example 1"
9880 # \n @ref swig_MakeFilletAll "Example 2"
9881 @ManageTransactions("LocalOp")
9882 def MakeFilletAll(self, theShape, theR, theName=None):
9884 Perform a fillet on all edges of the given shape.
9887 theShape Shape, to perform fillet on.
9889 theName Object name; when specified, this parameter is used
9890 for result publication in the study. Otherwise, if automatic
9891 publication is switched on, default value is used for result name.
9894 New GEOM.GEOM_Object, containing the result shape.
9897 filletall = geompy.MakeFilletAll(prism, 10.)
9899 # Example: see GEOM_TestOthers.py
9900 theR,Parameters = ParseParameters(theR)
9901 anObj = self.LocalOp.MakeFilletAll(theShape, theR)
9902 RaiseIfFailed("MakeFilletAll", self.LocalOp)
9903 anObj.SetParameters(Parameters)
9904 self._autoPublish(anObj, theName, "fillet")
9907 ## Perform a fillet on the specified edges/faces of the given shape
9908 # @param theShape Shape, to perform fillet on.
9909 # @param theR Fillet radius.
9910 # @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
9911 # @param theListShapes Global indices of edges/faces to perform fillet on.
9912 # @param theName Object name; when specified, this parameter is used
9913 # for result publication in the study. Otherwise, if automatic
9914 # publication is switched on, default value is used for result name.
9916 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
9918 # @return New GEOM.GEOM_Object, containing the result shape.
9920 # @ref tui_fillet "Example"
9921 @ManageTransactions("LocalOp")
9922 def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
9924 Perform a fillet on the specified edges/faces of the given shape
9927 theShape Shape, to perform fillet on.
9929 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
9930 theListShapes Global indices of edges/faces to perform fillet on.
9931 theName Object name; when specified, this parameter is used
9932 for result publication in the study. Otherwise, if automatic
9933 publication is switched on, default value is used for result name.
9936 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
9939 New GEOM.GEOM_Object, containing the result shape.
9942 # get the list of IDs (IDList) for the fillet
9943 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
9945 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
9946 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
9947 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
9948 # make a fillet on the specified edges of the given shape
9949 fillet = geompy.MakeFillet(prism, 10., geompy.ShapeType["EDGE"], IDlist_e)
9951 # Example: see GEOM_TestAll.py
9952 theR,Parameters = ParseParameters(theR)
9954 if theShapeType == self.ShapeType["EDGE"]:
9955 anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
9956 RaiseIfFailed("MakeFilletEdges", self.LocalOp)
9958 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
9959 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
9960 anObj.SetParameters(Parameters)
9961 self._autoPublish(anObj, theName, "fillet")
9964 ## The same that MakeFillet() but with two Fillet Radius R1 and R2
9965 @ManageTransactions("LocalOp")
9966 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
9968 The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
9971 # get the list of IDs (IDList) for the fillet
9972 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
9974 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
9975 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
9976 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
9977 # make a fillet on the specified edges of the given shape
9978 fillet = geompy.MakeFillet(prism, 10., 15., geompy.ShapeType["EDGE"], IDlist_e)
9980 theR1,theR2,Parameters = ParseParameters(theR1,theR2)
9982 if theShapeType == self.ShapeType["EDGE"]:
9983 anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
9984 RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
9986 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
9987 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
9988 anObj.SetParameters(Parameters)
9989 self._autoPublish(anObj, theName, "fillet")
9992 ## Perform a fillet on the specified edges of the given shape
9993 # @param theShape Wire Shape to perform fillet on.
9994 # @param theR Fillet radius.
9995 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
9996 # \note Global index of sub-shape can be obtained, using method GetSubShapeID()
9997 # \note The list of vertices could be empty,
9998 # in this case fillet will done done at all vertices in wire
9999 # @param doIgnoreSecantVertices If FALSE, fillet radius is always limited
10000 # by the length of the edges, nearest to the fillet vertex.
10001 # But sometimes the next edge is C1 continuous with the one, nearest to
10002 # the fillet point, and such two (or more) edges can be united to allow
10003 # bigger radius. Set this flag to TRUE to allow collinear edges union,
10004 # thus ignoring the secant vertex (vertices).
10005 # @param theName Object name; when specified, this parameter is used
10006 # for result publication in the study. Otherwise, if automatic
10007 # publication is switched on, default value is used for result name.
10009 # @return New GEOM.GEOM_Object, containing the result shape.
10011 # @ref tui_fillet2d "Example"
10012 @ManageTransactions("LocalOp")
10013 def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
10015 Perform a fillet on the specified edges of the given shape
10018 theShape Wire Shape to perform fillet on.
10019 theR Fillet radius.
10020 theListOfVertexes Global indices of vertexes to perform fillet on.
10021 doIgnoreSecantVertices If FALSE, fillet radius is always limited
10022 by the length of the edges, nearest to the fillet vertex.
10023 But sometimes the next edge is C1 continuous with the one, nearest to
10024 the fillet point, and such two (or more) edges can be united to allow
10025 bigger radius. Set this flag to TRUE to allow collinear edges union,
10026 thus ignoring the secant vertex (vertices).
10027 theName Object name; when specified, this parameter is used
10028 for result publication in the study. Otherwise, if automatic
10029 publication is switched on, default value is used for result name.
10031 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10033 The list of vertices could be empty,in this case fillet will done done at all vertices in wire
10036 New GEOM.GEOM_Object, containing the result shape.
10040 Wire_1 = geompy.MakeWire([Edge_12, Edge_7, Edge_11, Edge_6, Edge_1,Edge_4])
10041 # make fillet at given wire vertices with giver radius
10042 Fillet_1D_1 = geompy.MakeFillet1D(Wire_1, 55, [3, 4, 6, 8, 10])
10044 # Example: see GEOM_TestAll.py
10045 theR,doIgnoreSecantVertices,Parameters = ParseParameters(theR,doIgnoreSecantVertices)
10046 anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
10047 RaiseIfFailed("MakeFillet1D", self.LocalOp)
10048 anObj.SetParameters(Parameters)
10049 self._autoPublish(anObj, theName, "fillet")
10052 ## Perform a fillet at the specified vertices of the given face/shell.
10053 # @param theShape Face or Shell shape to perform fillet on.
10054 # @param theR Fillet radius.
10055 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
10056 # @param theName Object name; when specified, this parameter is used
10057 # for result publication in the study. Otherwise, if automatic
10058 # publication is switched on, default value is used for result name.
10060 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10062 # @return New GEOM.GEOM_Object, containing the result shape.
10064 # @ref tui_fillet2d "Example"
10065 @ManageTransactions("LocalOp")
10066 def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
10068 Perform a fillet at the specified vertices of the given face/shell.
10071 theShape Face or Shell shape to perform fillet on.
10072 theR Fillet radius.
10073 theListOfVertexes Global indices of vertexes to perform fillet on.
10074 theName Object name; when specified, this parameter is used
10075 for result publication in the study. Otherwise, if automatic
10076 publication is switched on, default value is used for result name.
10078 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10081 New GEOM.GEOM_Object, containing the result shape.
10084 face = geompy.MakeFaceHW(100, 100, 1)
10085 fillet2d = geompy.MakeFillet2D(face, 30, [7, 9])
10087 # Example: see GEOM_TestAll.py
10088 theR,Parameters = ParseParameters(theR)
10089 anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
10090 RaiseIfFailed("MakeFillet2D", self.LocalOp)
10091 anObj.SetParameters(Parameters)
10092 self._autoPublish(anObj, theName, "fillet")
10095 ## Perform a symmetric chamfer on all edges of the given shape.
10096 # @param theShape Shape, to perform chamfer on.
10097 # @param theD Chamfer size along each face.
10098 # @param theName Object name; when specified, this parameter is used
10099 # for result publication in the study. Otherwise, if automatic
10100 # publication is switched on, default value is used for result name.
10102 # @return New GEOM.GEOM_Object, containing the result shape.
10104 # @ref tui_chamfer "Example 1"
10105 # \n @ref swig_MakeChamferAll "Example 2"
10106 @ManageTransactions("LocalOp")
10107 def MakeChamferAll(self, theShape, theD, theName=None):
10109 Perform a symmetric chamfer on all edges of the given shape.
10112 theShape Shape, to perform chamfer on.
10113 theD Chamfer size along each face.
10114 theName Object name; when specified, this parameter is used
10115 for result publication in the study. Otherwise, if automatic
10116 publication is switched on, default value is used for result name.
10119 New GEOM.GEOM_Object, containing the result shape.
10122 chamfer_all = geompy.MakeChamferAll(prism, 10.)
10124 # Example: see GEOM_TestOthers.py
10125 theD,Parameters = ParseParameters(theD)
10126 anObj = self.LocalOp.MakeChamferAll(theShape, theD)
10127 RaiseIfFailed("MakeChamferAll", self.LocalOp)
10128 anObj.SetParameters(Parameters)
10129 self._autoPublish(anObj, theName, "chamfer")
10132 ## Perform a chamfer on edges, common to the specified faces,
10133 # with distance D1 on the Face1
10134 # @param theShape Shape, to perform chamfer on.
10135 # @param theD1 Chamfer size along \a theFace1.
10136 # @param theD2 Chamfer size along \a theFace2.
10137 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
10138 # @param theName Object name; when specified, this parameter is used
10139 # for result publication in the study. Otherwise, if automatic
10140 # publication is switched on, default value is used for result name.
10142 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10144 # @return New GEOM.GEOM_Object, containing the result shape.
10146 # @ref tui_chamfer "Example"
10147 @ManageTransactions("LocalOp")
10148 def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
10150 Perform a chamfer on edges, common to the specified faces,
10151 with distance D1 on the Face1
10154 theShape Shape, to perform chamfer on.
10155 theD1 Chamfer size along theFace1.
10156 theD2 Chamfer size along theFace2.
10157 theFace1,theFace2 Global indices of two faces of theShape.
10158 theName Object name; when specified, this parameter is used
10159 for result publication in the study. Otherwise, if automatic
10160 publication is switched on, default value is used for result name.
10163 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10166 New GEOM.GEOM_Object, containing the result shape.
10169 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
10170 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
10171 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
10172 chamfer_e = geompy.MakeChamferEdge(prism, 10., 10., f_ind_1, f_ind_2)
10174 # Example: see GEOM_TestAll.py
10175 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10176 anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
10177 RaiseIfFailed("MakeChamferEdge", self.LocalOp)
10178 anObj.SetParameters(Parameters)
10179 self._autoPublish(anObj, theName, "chamfer")
10182 ## Perform a chamfer on edges
10183 # @param theShape Shape, to perform chamfer on.
10184 # @param theD Chamfer length
10185 # @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10186 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
10187 # @param theName Object name; when specified, this parameter is used
10188 # for result publication in the study. Otherwise, if automatic
10189 # publication is switched on, default value is used for result name.
10191 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10193 # @return New GEOM.GEOM_Object, containing the result shape.
10194 @ManageTransactions("LocalOp")
10195 def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
10197 Perform a chamfer on edges
10200 theShape Shape, to perform chamfer on.
10201 theD1 Chamfer size along theFace1.
10202 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
10203 theFace1,theFace2 Global indices of two faces of theShape.
10204 theName Object name; when specified, this parameter is used
10205 for result publication in the study. Otherwise, if automatic
10206 publication is switched on, default value is used for result name.
10209 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10212 New GEOM.GEOM_Object, containing the result shape.
10215 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
10216 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
10217 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
10219 chamfer_e = geompy.MakeChamferEdge(prism, 10., ang, f_ind_1, f_ind_2)
10222 if isinstance(theAngle,str):
10224 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10226 theAngle = theAngle*math.pi/180.0
10227 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
10228 RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
10229 anObj.SetParameters(Parameters)
10230 self._autoPublish(anObj, theName, "chamfer")
10233 ## Perform a chamfer on all edges of the specified faces,
10234 # with distance D1 on the first specified face (if several for one edge)
10235 # @param theShape Shape, to perform chamfer on.
10236 # @param theD1 Chamfer size along face from \a theFaces. If both faces,
10237 # connected to the edge, are in \a theFaces, \a theD1
10238 # will be get along face, which is nearer to \a theFaces beginning.
10239 # @param theD2 Chamfer size along another of two faces, connected to the edge.
10240 # @param theFaces Sequence of global indices of faces of \a theShape.
10241 # @param theName Object name; when specified, this parameter is used
10242 # for result publication in the study. Otherwise, if automatic
10243 # publication is switched on, default value is used for result name.
10245 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10247 # @return New GEOM.GEOM_Object, containing the result shape.
10249 # @ref tui_chamfer "Example"
10250 @ManageTransactions("LocalOp")
10251 def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
10253 Perform a chamfer on all edges of the specified faces,
10254 with distance D1 on the first specified face (if several for one edge)
10257 theShape Shape, to perform chamfer on.
10258 theD1 Chamfer size along face from theFaces. If both faces,
10259 connected to the edge, are in theFaces, theD1
10260 will be get along face, which is nearer to theFaces beginning.
10261 theD2 Chamfer size along another of two faces, connected to the edge.
10262 theFaces Sequence of global indices of faces of theShape.
10263 theName Object name; when specified, this parameter is used
10264 for result publication in the study. Otherwise, if automatic
10265 publication is switched on, default value is used for result name.
10267 Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
10270 New GEOM.GEOM_Object, containing the result shape.
10272 # Example: see GEOM_TestAll.py
10273 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10274 anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
10275 RaiseIfFailed("MakeChamferFaces", self.LocalOp)
10276 anObj.SetParameters(Parameters)
10277 self._autoPublish(anObj, theName, "chamfer")
10280 ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
10281 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10283 # @ref swig_FilletChamfer "Example"
10284 @ManageTransactions("LocalOp")
10285 def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
10287 The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
10288 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10291 if isinstance(theAngle,str):
10293 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10295 theAngle = theAngle*math.pi/180.0
10296 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
10297 RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
10298 anObj.SetParameters(Parameters)
10299 self._autoPublish(anObj, theName, "chamfer")
10302 ## Perform a chamfer on edges,
10303 # with distance D1 on the first specified face (if several for one edge)
10304 # @param theShape Shape, to perform chamfer on.
10305 # @param theD1,theD2 Chamfer size
10306 # @param theEdges Sequence of edges of \a theShape.
10307 # @param theName Object name; when specified, this parameter is used
10308 # for result publication in the study. Otherwise, if automatic
10309 # publication is switched on, default value is used for result name.
10311 # @return New GEOM.GEOM_Object, containing the result shape.
10313 # @ref swig_FilletChamfer "Example"
10314 @ManageTransactions("LocalOp")
10315 def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
10317 Perform a chamfer on edges,
10318 with distance D1 on the first specified face (if several for one edge)
10321 theShape Shape, to perform chamfer on.
10322 theD1,theD2 Chamfer size
10323 theEdges Sequence of edges of theShape.
10324 theName Object name; when specified, this parameter is used
10325 for result publication in the study. Otherwise, if automatic
10326 publication is switched on, default value is used for result name.
10329 New GEOM.GEOM_Object, containing the result shape.
10331 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10332 anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
10333 RaiseIfFailed("MakeChamferEdges", self.LocalOp)
10334 anObj.SetParameters(Parameters)
10335 self._autoPublish(anObj, theName, "chamfer")
10338 ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
10339 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10340 @ManageTransactions("LocalOp")
10341 def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
10343 The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
10344 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10347 if isinstance(theAngle,str):
10349 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10351 theAngle = theAngle*math.pi/180.0
10352 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
10353 RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
10354 anObj.SetParameters(Parameters)
10355 self._autoPublish(anObj, theName, "chamfer")
10358 ## @sa MakeChamferEdge(), MakeChamferFaces()
10360 # @ref swig_MakeChamfer "Example"
10361 def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
10363 See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
10365 # Example: see GEOM_TestOthers.py
10367 # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
10368 if aShapeType == self.ShapeType["EDGE"]:
10369 anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
10371 anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
10374 ## Remove material from a solid by extrusion of the base shape on the given distance.
10375 # @param theInit Shape to remove material from. It must be a solid or
10376 # a compound made of a single solid.
10377 # @param theBase Closed edge or wire defining the base shape to be extruded.
10378 # @param theH Prism dimension along the normal to theBase
10379 # @param theAngle Draft angle in degrees.
10380 # @param theInvert If true material changes the direction
10381 # @param theName Object name; when specified, this parameter is used
10382 # for result publication in the study. Otherwise, if automatic
10383 # publication is switched on, default value is used for result name.
10385 # @return New GEOM.GEOM_Object, containing the initial shape with removed material
10387 # @ref tui_creation_prism "Example"
10388 @ManageTransactions("PrimOp")
10389 def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theInvert=False, theName=None):
10391 Add material to a solid by extrusion of the base shape on the given distance.
10394 theInit Shape to remove material from. It must be a solid or a compound made of a single solid.
10395 theBase Closed edge or wire defining the base shape to be extruded.
10396 theH Prism dimension along the normal to theBase
10397 theAngle Draft angle in degrees.
10398 theInvert If true material changes the direction.
10399 theName Object name; when specified, this parameter is used
10400 for result publication in the study. Otherwise, if automatic
10401 publication is switched on, default value is used for result name.
10404 New GEOM.GEOM_Object, containing the initial shape with removed material.
10406 # Example: see GEOM_TestAll.py
10407 theH,theAngle,Parameters = ParseParameters(theH,theAngle)
10408 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False, theInvert)
10409 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
10410 anObj.SetParameters(Parameters)
10411 self._autoPublish(anObj, theName, "extrudedCut")
10414 ## Add material to a solid by extrusion of the base shape on the given distance.
10415 # @param theInit Shape to add material to. It must be a solid or
10416 # a compound made of a single solid.
10417 # @param theBase Closed edge or wire defining the base shape to be extruded.
10418 # @param theH Prism dimension along the normal to theBase
10419 # @param theAngle Draft angle in degrees.
10420 # @param theInvert If true material changes the direction
10421 # @param theName Object name; when specified, this parameter is used
10422 # for result publication in the study. Otherwise, if automatic
10423 # publication is switched on, default value is used for result name.
10425 # @return New GEOM.GEOM_Object, containing the initial shape with added material
10427 # @ref tui_creation_prism "Example"
10428 @ManageTransactions("PrimOp")
10429 def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theInvert=False, theName=None):
10431 Add material to a solid by extrusion of the base shape on the given distance.
10434 theInit Shape to add material to. It must be a solid or a compound made of a single solid.
10435 theBase Closed edge or wire defining the base shape to be extruded.
10436 theH Prism dimension along the normal to theBase
10437 theAngle Draft angle in degrees.
10438 theInvert If true material changes the direction.
10439 theName Object name; when specified, this parameter is used
10440 for result publication in the study. Otherwise, if automatic
10441 publication is switched on, default value is used for result name.
10444 New GEOM.GEOM_Object, containing the initial shape with added material.
10446 # Example: see GEOM_TestAll.py
10447 theH,theAngle,Parameters = ParseParameters(theH,theAngle)
10448 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True, theInvert)
10449 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
10450 anObj.SetParameters(Parameters)
10451 self._autoPublish(anObj, theName, "extrudedBoss")
10457 ## @addtogroup l3_basic_op
10460 ## Perform an Archimde operation on the given shape with given parameters.
10461 # The object presenting the resulting face is returned.
10462 # @param theShape Shape to be put in water.
10463 # @param theWeight Weight of the shape.
10464 # @param theWaterDensity Density of the water.
10465 # @param theMeshDeflection Deflection of the mesh, using to compute the section.
10466 # @param theName Object name; when specified, this parameter is used
10467 # for result publication in the study. Otherwise, if automatic
10468 # publication is switched on, default value is used for result name.
10470 # @return New GEOM.GEOM_Object, containing a section of \a theShape
10471 # by a plane, corresponding to water level.
10473 # @ref tui_archimede "Example"
10474 @ManageTransactions("LocalOp")
10475 def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
10477 Perform an Archimde operation on the given shape with given parameters.
10478 The object presenting the resulting face is returned.
10481 theShape Shape to be put in water.
10482 theWeight Weight of the shape.
10483 theWaterDensity Density of the water.
10484 theMeshDeflection Deflection of the mesh, using to compute the section.
10485 theName Object name; when specified, this parameter is used
10486 for result publication in the study. Otherwise, if automatic
10487 publication is switched on, default value is used for result name.
10490 New GEOM.GEOM_Object, containing a section of theShape
10491 by a plane, corresponding to water level.
10493 # Example: see GEOM_TestAll.py
10494 theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters(
10495 theWeight,theWaterDensity,theMeshDeflection)
10496 anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
10497 RaiseIfFailed("MakeArchimede", self.LocalOp)
10498 anObj.SetParameters(Parameters)
10499 self._autoPublish(anObj, theName, "archimede")
10502 # end of l3_basic_op
10505 ## @addtogroup l2_measure
10508 ## Get point coordinates
10509 # @return [x, y, z]
10511 # @ref tui_point_coordinates_page "Example"
10512 @ManageTransactions("MeasuOp")
10513 def PointCoordinates(self,Point):
10515 Get point coordinates
10520 # Example: see GEOM_TestMeasures.py
10521 aTuple = self.MeasuOp.PointCoordinates(Point)
10522 RaiseIfFailed("PointCoordinates", self.MeasuOp)
10525 ## Get vector coordinates
10526 # @return [x, y, z]
10528 # @ref tui_measurement_tools_page "Example"
10529 def VectorCoordinates(self,Vector):
10531 Get vector coordinates
10537 p1=self.GetFirstVertex(Vector)
10538 p2=self.GetLastVertex(Vector)
10540 X1=self.PointCoordinates(p1)
10541 X2=self.PointCoordinates(p2)
10543 return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
10546 ## Compute cross product
10547 # @return vector w=u^v
10549 # @ref tui_measurement_tools_page "Example"
10550 def CrossProduct(self, Vector1, Vector2):
10552 Compute cross product
10554 Returns: vector w=u^v
10556 u=self.VectorCoordinates(Vector1)
10557 v=self.VectorCoordinates(Vector2)
10558 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])
10562 ## Compute cross product
10563 # @return dot product p=u.v
10565 # @ref tui_measurement_tools_page "Example"
10566 def DotProduct(self, Vector1, Vector2):
10568 Compute cross product
10570 Returns: dot product p=u.v
10572 u=self.VectorCoordinates(Vector1)
10573 v=self.VectorCoordinates(Vector2)
10574 p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
10579 ## Get summarized length of all wires,
10580 # area of surface and volume of the given shape.
10581 # @param theShape Shape to define properties of.
10582 # @return [theLength, theSurfArea, theVolume]\n
10583 # theLength: Summarized length of all wires of the given shape.\n
10584 # theSurfArea: Area of surface of the given shape.\n
10585 # theVolume: Volume of the given shape.
10587 # @ref tui_basic_properties_page "Example"
10588 @ManageTransactions("MeasuOp")
10589 def BasicProperties(self,theShape):
10591 Get summarized length of all wires,
10592 area of surface and volume of the given shape.
10595 theShape Shape to define properties of.
10598 [theLength, theSurfArea, theVolume]
10599 theLength: Summarized length of all wires of the given shape.
10600 theSurfArea: Area of surface of the given shape.
10601 theVolume: Volume of the given shape.
10603 # Example: see GEOM_TestMeasures.py
10604 aTuple = self.MeasuOp.GetBasicProperties(theShape)
10605 RaiseIfFailed("GetBasicProperties", self.MeasuOp)
10608 ## Get parameters of bounding box of the given shape
10609 # @param theShape Shape to obtain bounding box of.
10610 # @param precise TRUE for precise computation; FALSE for fast one.
10611 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
10612 # Xmin,Xmax: Limits of shape along OX axis.
10613 # Ymin,Ymax: Limits of shape along OY axis.
10614 # Zmin,Zmax: Limits of shape along OZ axis.
10616 # @ref tui_bounding_box_page "Example"
10617 @ManageTransactions("MeasuOp")
10618 def BoundingBox (self, theShape, precise=False):
10620 Get parameters of bounding box of the given shape
10623 theShape Shape to obtain bounding box of.
10624 precise TRUE for precise computation; FALSE for fast one.
10627 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
10628 Xmin,Xmax: Limits of shape along OX axis.
10629 Ymin,Ymax: Limits of shape along OY axis.
10630 Zmin,Zmax: Limits of shape along OZ axis.
10632 # Example: see GEOM_TestMeasures.py
10633 aTuple = self.MeasuOp.GetBoundingBox(theShape, precise)
10634 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
10637 ## Get bounding box of the given shape
10638 # @param theShape Shape to obtain bounding box of.
10639 # @param precise TRUE for precise computation; FALSE for fast one.
10640 # @param theName Object name; when specified, this parameter is used
10641 # for result publication in the study. Otherwise, if automatic
10642 # publication is switched on, default value is used for result name.
10644 # @return New GEOM.GEOM_Object, containing the created box.
10646 # @ref tui_bounding_box_page "Example"
10647 @ManageTransactions("MeasuOp")
10648 def MakeBoundingBox (self, theShape, precise=False, theName=None):
10650 Get bounding box of the given shape
10653 theShape Shape to obtain bounding box of.
10654 precise TRUE for precise computation; FALSE for fast one.
10655 theName Object name; when specified, this parameter is used
10656 for result publication in the study. Otherwise, if automatic
10657 publication is switched on, default value is used for result name.
10660 New GEOM.GEOM_Object, containing the created box.
10662 # Example: see GEOM_TestMeasures.py
10663 anObj = self.MeasuOp.MakeBoundingBox(theShape, precise)
10664 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
10665 self._autoPublish(anObj, theName, "bndbox")
10668 ## Get inertia matrix and moments of inertia of theShape.
10669 # @param theShape Shape to calculate inertia of.
10670 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
10671 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
10672 # Ix,Iy,Iz: Moments of inertia of the given shape.
10674 # @ref tui_inertia_page "Example"
10675 @ManageTransactions("MeasuOp")
10676 def Inertia(self,theShape):
10678 Get inertia matrix and moments of inertia of theShape.
10681 theShape Shape to calculate inertia of.
10684 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
10685 I(1-3)(1-3): Components of the inertia matrix of the given shape.
10686 Ix,Iy,Iz: Moments of inertia of the given shape.
10688 # Example: see GEOM_TestMeasures.py
10689 aTuple = self.MeasuOp.GetInertia(theShape)
10690 RaiseIfFailed("GetInertia", self.MeasuOp)
10693 ## Get if coords are included in the shape (ST_IN or ST_ON)
10694 # @param theShape Shape
10695 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
10696 # @param tolerance to be used (default is 1.0e-7)
10697 # @return list_of_boolean = [res1, res2, ...]
10698 @ManageTransactions("MeasuOp")
10699 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
10701 Get if coords are included in the shape (ST_IN or ST_ON)
10705 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
10706 tolerance to be used (default is 1.0e-7)
10709 list_of_boolean = [res1, res2, ...]
10711 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
10713 ## Get minimal distance between the given shapes.
10714 # @param theShape1,theShape2 Shapes to find minimal distance between.
10715 # @return Value of the minimal distance between the given shapes.
10717 # @ref tui_min_distance_page "Example"
10718 @ManageTransactions("MeasuOp")
10719 def MinDistance(self, theShape1, theShape2):
10721 Get minimal distance between the given shapes.
10724 theShape1,theShape2 Shapes to find minimal distance between.
10727 Value of the minimal distance between the given shapes.
10729 # Example: see GEOM_TestMeasures.py
10730 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
10731 RaiseIfFailed("GetMinDistance", self.MeasuOp)
10734 ## Get minimal distance between the given shapes.
10735 # @param theShape1,theShape2 Shapes to find minimal distance between.
10736 # @return Value of the minimal distance between the given shapes, in form of list
10737 # [Distance, DX, DY, DZ].
10739 # @ref tui_min_distance_page "Example"
10740 @ManageTransactions("MeasuOp")
10741 def MinDistanceComponents(self, theShape1, theShape2):
10743 Get minimal distance between the given shapes.
10746 theShape1,theShape2 Shapes to find minimal distance between.
10749 Value of the minimal distance between the given shapes, in form of list
10750 [Distance, DX, DY, DZ]
10752 # Example: see GEOM_TestMeasures.py
10753 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
10754 RaiseIfFailed("GetMinDistance", self.MeasuOp)
10755 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
10758 ## Get closest points of the given shapes.
10759 # @param theShape1,theShape2 Shapes to find closest points of.
10760 # @return The number of found solutions (-1 in case of infinite number of
10761 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
10763 # @ref tui_min_distance_page "Example"
10764 @ManageTransactions("MeasuOp")
10765 def ClosestPoints (self, theShape1, theShape2):
10767 Get closest points of the given shapes.
10770 theShape1,theShape2 Shapes to find closest points of.
10773 The number of found solutions (-1 in case of infinite number of
10774 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
10776 # Example: see GEOM_TestMeasures.py
10777 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
10778 RaiseIfFailed("ClosestPoints", self.MeasuOp)
10781 ## Get angle between the given shapes in degrees.
10782 # @param theShape1,theShape2 Lines or linear edges to find angle between.
10783 # @note If both arguments are vectors, the angle is computed in accordance
10784 # with their orientations, otherwise the minimum angle is computed.
10785 # @return Value of the angle between the given shapes in degrees.
10787 # @ref tui_angle_page "Example"
10788 @ManageTransactions("MeasuOp")
10789 def GetAngle(self, theShape1, theShape2):
10791 Get angle between the given shapes in degrees.
10794 theShape1,theShape2 Lines or linear edges to find angle between.
10797 If both arguments are vectors, the angle is computed in accordance
10798 with their orientations, otherwise the minimum angle is computed.
10801 Value of the angle between the given shapes in degrees.
10803 # Example: see GEOM_TestMeasures.py
10804 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
10805 RaiseIfFailed("GetAngle", self.MeasuOp)
10808 ## Get angle between the given shapes in radians.
10809 # @param theShape1,theShape2 Lines or linear edges to find angle between.
10810 # @note If both arguments are vectors, the angle is computed in accordance
10811 # with their orientations, otherwise the minimum angle is computed.
10812 # @return Value of the angle between the given shapes in radians.
10814 # @ref tui_angle_page "Example"
10815 @ManageTransactions("MeasuOp")
10816 def GetAngleRadians(self, theShape1, theShape2):
10818 Get angle between the given shapes in radians.
10821 theShape1,theShape2 Lines or linear edges to find angle between.
10825 If both arguments are vectors, the angle is computed in accordance
10826 with their orientations, otherwise the minimum angle is computed.
10829 Value of the angle between the given shapes in radians.
10831 # Example: see GEOM_TestMeasures.py
10832 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
10833 RaiseIfFailed("GetAngle", self.MeasuOp)
10836 ## Get angle between the given vectors in degrees.
10837 # @param theShape1,theShape2 Vectors to find angle between.
10838 # @param theFlag If True, the normal vector is defined by the two vectors cross,
10839 # if False, the opposite vector to the normal vector is used.
10840 # @return Value of the angle between the given vectors in degrees.
10842 # @ref tui_angle_page "Example"
10843 @ManageTransactions("MeasuOp")
10844 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
10846 Get angle between the given vectors in degrees.
10849 theShape1,theShape2 Vectors to find angle between.
10850 theFlag If True, the normal vector is defined by the two vectors cross,
10851 if False, the opposite vector to the normal vector is used.
10854 Value of the angle between the given vectors in degrees.
10856 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
10858 anAngle = 360. - anAngle
10859 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
10862 ## The same as GetAngleVectors, but the result is in radians.
10863 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
10865 Get angle between the given vectors in radians.
10868 theShape1,theShape2 Vectors to find angle between.
10869 theFlag If True, the normal vector is defined by the two vectors cross,
10870 if False, the opposite vector to the normal vector is used.
10873 Value of the angle between the given vectors in radians.
10875 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
10878 ## @name Curve Curvature Measurement
10879 # Methods for receiving radius of curvature of curves
10880 # in the given point
10883 ## Measure curvature of a curve at a point, set by parameter.
10884 # @param theCurve a curve.
10885 # @param theParam parameter.
10886 # @return radius of curvature of \a theCurve.
10888 # @ref swig_todo "Example"
10889 @ManageTransactions("MeasuOp")
10890 def CurveCurvatureByParam(self, theCurve, theParam):
10892 Measure curvature of a curve at a point, set by parameter.
10896 theParam parameter.
10899 radius of curvature of theCurve.
10901 # Example: see GEOM_TestMeasures.py
10902 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
10903 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
10906 ## Measure curvature of a curve at a point.
10907 # @param theCurve a curve.
10908 # @param thePoint given point.
10909 # @return radius of curvature of \a theCurve.
10911 # @ref swig_todo "Example"
10912 @ManageTransactions("MeasuOp")
10913 def CurveCurvatureByPoint(self, theCurve, thePoint):
10915 Measure curvature of a curve at a point.
10919 thePoint given point.
10922 radius of curvature of theCurve.
10924 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
10925 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
10929 ## @name Surface Curvature Measurement
10930 # Methods for receiving max and min radius of curvature of surfaces
10931 # in the given point
10934 ## Measure max radius of curvature of surface.
10935 # @param theSurf the given surface.
10936 # @param theUParam Value of U-parameter on the referenced surface.
10937 # @param theVParam Value of V-parameter on the referenced surface.
10938 # @return max radius of curvature of theSurf.
10940 ## @ref swig_todo "Example"
10941 @ManageTransactions("MeasuOp")
10942 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
10944 Measure max radius of curvature of surface.
10947 theSurf the given surface.
10948 theUParam Value of U-parameter on the referenced surface.
10949 theVParam Value of V-parameter on the referenced surface.
10952 max radius of curvature of theSurf.
10954 # Example: see GEOM_TestMeasures.py
10955 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
10956 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
10959 ## Measure max radius of curvature of surface in the given point
10960 # @param theSurf the given surface.
10961 # @param thePoint given point.
10962 # @return max radius of curvature of theSurf.
10964 ## @ref swig_todo "Example"
10965 @ManageTransactions("MeasuOp")
10966 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
10968 Measure max radius of curvature of surface in the given point.
10971 theSurf the given surface.
10972 thePoint given point.
10975 max radius of curvature of theSurf.
10977 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
10978 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
10981 ## Measure min radius of curvature of surface.
10982 # @param theSurf the given surface.
10983 # @param theUParam Value of U-parameter on the referenced surface.
10984 # @param theVParam Value of V-parameter on the referenced surface.
10985 # @return min radius of curvature of theSurf.
10987 ## @ref swig_todo "Example"
10988 @ManageTransactions("MeasuOp")
10989 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
10991 Measure min radius of curvature of surface.
10994 theSurf the given surface.
10995 theUParam Value of U-parameter on the referenced surface.
10996 theVParam Value of V-parameter on the referenced surface.
10999 Min radius of curvature of theSurf.
11001 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
11002 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
11005 ## Measure min radius of curvature of surface in the given point
11006 # @param theSurf the given surface.
11007 # @param thePoint given point.
11008 # @return min radius of curvature of theSurf.
11010 ## @ref swig_todo "Example"
11011 @ManageTransactions("MeasuOp")
11012 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
11014 Measure min radius of curvature of surface in the given point.
11017 theSurf the given surface.
11018 thePoint given point.
11021 Min radius of curvature of theSurf.
11023 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
11024 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
11028 ## Get min and max tolerances of sub-shapes of theShape
11029 # @param theShape Shape, to get tolerances of.
11030 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
11031 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
11032 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
11033 # VertMin,VertMax: Min and max tolerances of the vertices.
11035 # @ref tui_tolerance_page "Example"
11036 @ManageTransactions("MeasuOp")
11037 def Tolerance(self,theShape):
11039 Get min and max tolerances of sub-shapes of theShape
11042 theShape Shape, to get tolerances of.
11045 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
11046 FaceMin,FaceMax: Min and max tolerances of the faces.
11047 EdgeMin,EdgeMax: Min and max tolerances of the edges.
11048 VertMin,VertMax: Min and max tolerances of the vertices.
11050 # Example: see GEOM_TestMeasures.py
11051 aTuple = self.MeasuOp.GetTolerance(theShape)
11052 RaiseIfFailed("GetTolerance", self.MeasuOp)
11055 ## Obtain description of the given shape (number of sub-shapes of each type)
11056 # @param theShape Shape to be described.
11057 # @return Description of the given shape.
11059 # @ref tui_whatis_page "Example"
11060 @ManageTransactions("MeasuOp")
11061 def WhatIs(self,theShape):
11063 Obtain description of the given shape (number of sub-shapes of each type)
11066 theShape Shape to be described.
11069 Description of the given shape.
11071 # Example: see GEOM_TestMeasures.py
11072 aDescr = self.MeasuOp.WhatIs(theShape)
11073 RaiseIfFailed("WhatIs", self.MeasuOp)
11076 ## Obtain quantity of shapes of the given type in \a theShape.
11077 # If \a theShape is of type \a theType, it is also counted.
11078 # @param theShape Shape to be described.
11079 # @param theType the given ShapeType().
11080 # @return Quantity of shapes of type \a theType in \a theShape.
11082 # @ref tui_measurement_tools_page "Example"
11083 def NbShapes (self, theShape, theType):
11085 Obtain quantity of shapes of the given type in theShape.
11086 If theShape is of type theType, it is also counted.
11089 theShape Shape to be described.
11090 theType the given geompy.ShapeType
11093 Quantity of shapes of type theType in theShape.
11095 # Example: see GEOM_TestMeasures.py
11096 listSh = self.SubShapeAllIDs(theShape, theType)
11100 ## Obtain quantity of shapes of each type in \a theShape.
11101 # The \a theShape is also counted.
11102 # @param theShape Shape to be described.
11103 # @return Dictionary of ShapeType() with bound quantities of shapes.
11105 # @ref tui_measurement_tools_page "Example"
11106 def ShapeInfo (self, theShape):
11108 Obtain quantity of shapes of each type in theShape.
11109 The theShape is also counted.
11112 theShape Shape to be described.
11115 Dictionary of geompy.ShapeType with bound quantities of shapes.
11117 # Example: see GEOM_TestMeasures.py
11119 for typeSh in self.ShapeType:
11120 if typeSh in ( "AUTO", "SHAPE" ): continue
11121 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
11127 def GetCreationInformation(self, theShape):
11129 infos = theShape.GetCreationInformation()
11132 opName = info.operationName
11133 if not opName: opName = "no info available"
11134 if res: res += "\n"
11135 res += "Operation: " + opName
11137 for parVal in info.params:
11138 res += "\n \t%s = %s" % ( parVal.name, parVal.value )
11141 ## Get a point, situated at the centre of mass of theShape.
11142 # @param theShape Shape to define centre of mass of.
11143 # @param theName Object name; when specified, this parameter is used
11144 # for result publication in the study. Otherwise, if automatic
11145 # publication is switched on, default value is used for result name.
11147 # @return New GEOM.GEOM_Object, containing the created point.
11149 # @ref tui_center_of_mass_page "Example"
11150 @ManageTransactions("MeasuOp")
11151 def MakeCDG(self, theShape, theName=None):
11153 Get a point, situated at the centre of mass of theShape.
11156 theShape Shape to define centre of mass of.
11157 theName Object name; when specified, this parameter is used
11158 for result publication in the study. Otherwise, if automatic
11159 publication is switched on, default value is used for result name.
11162 New GEOM.GEOM_Object, containing the created point.
11164 # Example: see GEOM_TestMeasures.py
11165 anObj = self.MeasuOp.GetCentreOfMass(theShape)
11166 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
11167 self._autoPublish(anObj, theName, "centerOfMass")
11170 ## Get a vertex sub-shape by index depended with orientation.
11171 # @param theShape Shape to find sub-shape.
11172 # @param theIndex Index to find vertex by this index (starting from zero)
11173 # @param theName Object name; when specified, this parameter is used
11174 # for result publication in the study. Otherwise, if automatic
11175 # publication is switched on, default value is used for result name.
11177 # @return New GEOM.GEOM_Object, containing the created vertex.
11179 # @ref tui_measurement_tools_page "Example"
11180 @ManageTransactions("MeasuOp")
11181 def GetVertexByIndex(self, theShape, theIndex, theName=None):
11183 Get a vertex sub-shape by index depended with orientation.
11186 theShape Shape to find sub-shape.
11187 theIndex Index to find vertex by this index (starting from zero)
11188 theName Object name; when specified, this parameter is used
11189 for result publication in the study. Otherwise, if automatic
11190 publication is switched on, default value is used for result name.
11193 New GEOM.GEOM_Object, containing the created vertex.
11195 # Example: see GEOM_TestMeasures.py
11196 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
11197 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
11198 self._autoPublish(anObj, theName, "vertex")
11201 ## Get the first vertex of wire/edge depended orientation.
11202 # @param theShape Shape to find first vertex.
11203 # @param theName Object name; when specified, this parameter is used
11204 # for result publication in the study. Otherwise, if automatic
11205 # publication is switched on, default value is used for result name.
11207 # @return New GEOM.GEOM_Object, containing the created vertex.
11209 # @ref tui_measurement_tools_page "Example"
11210 def GetFirstVertex(self, theShape, theName=None):
11212 Get the first vertex of wire/edge depended orientation.
11215 theShape Shape to find first vertex.
11216 theName Object name; when specified, this parameter is used
11217 for result publication in the study. Otherwise, if automatic
11218 publication is switched on, default value is used for result name.
11221 New GEOM.GEOM_Object, containing the created vertex.
11223 # Example: see GEOM_TestMeasures.py
11224 # note: auto-publishing is done in self.GetVertexByIndex()
11225 return self.GetVertexByIndex(theShape, 0, theName)
11227 ## Get the last vertex of wire/edge depended orientation.
11228 # @param theShape Shape to find last vertex.
11229 # @param theName Object name; when specified, this parameter is used
11230 # for result publication in the study. Otherwise, if automatic
11231 # publication is switched on, default value is used for result name.
11233 # @return New GEOM.GEOM_Object, containing the created vertex.
11235 # @ref tui_measurement_tools_page "Example"
11236 def GetLastVertex(self, theShape, theName=None):
11238 Get the last vertex of wire/edge depended orientation.
11241 theShape Shape to find last vertex.
11242 theName Object name; when specified, this parameter is used
11243 for result publication in the study. Otherwise, if automatic
11244 publication is switched on, default value is used for result name.
11247 New GEOM.GEOM_Object, containing the created vertex.
11249 # Example: see GEOM_TestMeasures.py
11250 nb_vert = self.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
11251 # note: auto-publishing is done in self.GetVertexByIndex()
11252 return self.GetVertexByIndex(theShape, (nb_vert-1), theName)
11254 ## Get a normale to the given face. If the point is not given,
11255 # the normale is calculated at the center of mass.
11256 # @param theFace Face to define normale of.
11257 # @param theOptionalPoint Point to compute the normale at.
11258 # @param theName Object name; when specified, this parameter is used
11259 # for result publication in the study. Otherwise, if automatic
11260 # publication is switched on, default value is used for result name.
11262 # @return New GEOM.GEOM_Object, containing the created vector.
11264 # @ref swig_todo "Example"
11265 @ManageTransactions("MeasuOp")
11266 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
11268 Get a normale to the given face. If the point is not given,
11269 the normale is calculated at the center of mass.
11272 theFace Face to define normale of.
11273 theOptionalPoint Point to compute the normale at.
11274 theName Object name; when specified, this parameter is used
11275 for result publication in the study. Otherwise, if automatic
11276 publication is switched on, default value is used for result name.
11279 New GEOM.GEOM_Object, containing the created vector.
11281 # Example: see GEOM_TestMeasures.py
11282 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
11283 RaiseIfFailed("GetNormal", self.MeasuOp)
11284 self._autoPublish(anObj, theName, "normal")
11287 ## Print shape errors obtained from CheckShape.
11288 # @param theShape Shape that was checked.
11289 # @param theShapeErrors the shape errors obtained by CheckShape.
11290 # @param theReturnStatus If 0 the description of problem is printed.
11291 # If 1 the description of problem is returned.
11292 # @return If theReturnStatus is equal to 1 the description is returned.
11293 # Otherwise doesn't return anything.
11295 # @ref tui_check_shape_page "Example"
11296 @ManageTransactions("MeasuOp")
11297 def PrintShapeErrors(self, theShape, theShapeErrors, theReturnStatus = 0):
11299 Print shape errors obtained from CheckShape.
11302 theShape Shape that was checked.
11303 theShapeErrors the shape errors obtained by CheckShape.
11304 theReturnStatus If 0 the description of problem is printed.
11305 If 1 the description of problem is returned.
11308 If theReturnStatus is equal to 1 the description is returned.
11309 Otherwise doesn't return anything.
11311 # Example: see GEOM_TestMeasures.py
11312 Descr = self.MeasuOp.PrintShapeErrors(theShape, theShapeErrors)
11313 if theReturnStatus == 1:
11318 ## Check a topology of the given shape.
11319 # @param theShape Shape to check validity of.
11320 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
11321 # if TRUE, the shape's geometry will be checked also.
11322 # @param theReturnStatus If 0 and if theShape is invalid, a description
11323 # of problem is printed.
11324 # If 1 isValid flag and the description of
11325 # problem is returned.
11326 # If 2 isValid flag and the list of error data
11328 # @return TRUE, if the shape "seems to be valid".
11329 # If theShape is invalid, prints a description of problem.
11330 # If theReturnStatus is equal to 1 the description is returned
11331 # along with IsValid flag.
11332 # If theReturnStatus is equal to 2 the list of error data is
11333 # returned along with IsValid flag.
11335 # @ref tui_check_shape_page "Example"
11336 @ManageTransactions("MeasuOp")
11337 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
11339 Check a topology of the given shape.
11342 theShape Shape to check validity of.
11343 theIsCheckGeom If FALSE, only the shape's topology will be checked,
11344 if TRUE, the shape's geometry will be checked also.
11345 theReturnStatus If 0 and if theShape is invalid, a description
11346 of problem is printed.
11347 If 1 IsValid flag and the description of
11348 problem is returned.
11349 If 2 IsValid flag and the list of error data
11353 TRUE, if the shape "seems to be valid".
11354 If theShape is invalid, prints a description of problem.
11355 If theReturnStatus is equal to 1 the description is returned
11356 along with IsValid flag.
11357 If theReturnStatus is equal to 2 the list of error data is
11358 returned along with IsValid flag.
11360 # Example: see GEOM_TestMeasures.py
11362 (IsValid, ShapeErrors) = self.MeasuOp.CheckShapeWithGeometry(theShape)
11363 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
11365 (IsValid, ShapeErrors) = self.MeasuOp.CheckShape(theShape)
11366 RaiseIfFailed("CheckShape", self.MeasuOp)
11368 if theReturnStatus == 0:
11369 Descr = self.MeasuOp.PrintShapeErrors(theShape, ShapeErrors)
11371 if theReturnStatus == 1:
11372 Descr = self.MeasuOp.PrintShapeErrors(theShape, ShapeErrors)
11373 return (IsValid, Descr)
11374 elif theReturnStatus == 2:
11375 return (IsValid, ShapeErrors)
11378 ## Detect self-intersections in the given shape.
11379 # @param theShape Shape to check.
11380 # @param theCheckLevel is the level of self-intersection check.
11381 # Possible input values are:
11382 # - GEOM.SI_V_V(0) - only V/V interferences
11383 # - GEOM.SI_V_E(1) - V/V and V/E interferences
11384 # - GEOM.SI_E_E(2) - V/V, V/E and E/E interferences
11385 # - GEOM.SI_V_F(3) - V/V, V/E, E/E and V/F interferences
11386 # - GEOM.SI_E_F(4) - V/V, V/E, E/E, V/F and E/F interferences
11387 # - GEOM.SI_ALL(5) - all interferences.
11388 # @return TRUE, if the shape contains no self-intersections.
11390 # @ref tui_check_self_intersections_page "Example"
11391 @ManageTransactions("MeasuOp")
11392 def CheckSelfIntersections(self, theShape, theCheckLevel = GEOM.SI_ALL):
11394 Detect self-intersections in the given shape.
11397 theShape Shape to check.
11398 theCheckLevel is the level of self-intersection check.
11399 Possible input values are:
11400 - GEOM.SI_V_V(0) - only V/V interferences
11401 - GEOM.SI_V_E(1) - V/V and V/E interferences
11402 - GEOM.SI_E_E(2) - V/V, V/E and E/E interferences
11403 - GEOM.SI_V_F(3) - V/V, V/E, E/E and V/F interferences
11404 - GEOM.SI_E_F(4) - V/V, V/E, E/E, V/F and E/F interferences
11405 - GEOM.SI_ALL(5) - all interferences.
11408 TRUE, if the shape contains no self-intersections.
11410 # Example: see GEOM_TestMeasures.py
11411 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape, EnumToLong(theCheckLevel))
11412 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
11415 ## Detect self-intersections of the given shape with algorithm based on mesh intersections.
11416 # @param theShape Shape to check.
11417 # @param theDeflection Linear deflection coefficient that specifies quality of tesselation:
11418 # - if \a theDeflection <= 0, default deflection 0.001 is used
11419 # @param theTolerance Specifies a distance between sub-shapes used for detecting gaps:
11420 # - if \a theTolerance <= 0, algorithm detects intersections (default behavior)
11421 # - if \a theTolerance > 0, algorithm detects gaps
11422 # @return TRUE, if the shape contains no self-intersections.
11424 # @ref tui_check_self_intersections_fast_page "Example"
11425 @ManageTransactions("MeasuOp")
11426 def CheckSelfIntersectionsFast(self, theShape, theDeflection = 0.001, theTolerance = 0.0):
11428 Detect self-intersections of the given shape with algorithm based on mesh intersections.
11431 theShape Shape to check.
11432 theDeflection Linear deflection coefficient that specifies quality of tesselation:
11433 - if theDeflection <= 0, default deflection 0.001 is used
11434 theTolerance Specifies a distance between shapes used for detecting gaps:
11435 - if theTolerance <= 0, algorithm detects intersections (default behavior)
11436 - if theTolerance > 0, algorithm detects gaps
11439 TRUE, if the shape contains no self-intersections.
11441 # Example: see GEOM_TestMeasures.py
11442 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersectionsFast(theShape, theDeflection, theTolerance)
11443 RaiseIfFailed("CheckSelfIntersectionsFast", self.MeasuOp)
11446 ## Detect intersections of the given shapes with algorithm based on mesh intersections.
11447 # @param theShape1 First source object
11448 # @param theShape2 Second source object
11449 # @param theTolerance Specifies a distance between shapes used for detecting gaps:
11450 # - if \a theTolerance <= 0, algorithm detects intersections (default behavior)
11451 # - if \a theTolerance > 0, algorithm detects gaps
11452 # @param theDeflection Linear deflection coefficient that specifies quality of tesselation:
11453 # - if \a theDeflection <= 0, default deflection 0.001 is used
11454 # @return TRUE, if there are intersections (gaps) between source shapes
11455 # @return List of sub-shapes IDs from 1st shape that localize intersection.
11456 # @return List of sub-shapes IDs from 2nd shape that localize intersection.
11458 # @ref tui_fast_intersection_page "Example"
11459 @ManageTransactions("MeasuOp")
11460 def FastIntersect(self, theShape1, theShape2, theTolerance = 0.0, theDeflection = 0.001):
11462 Detect intersections of the given shapes with algorithm based on mesh intersections.
11465 theShape1 First source object
11466 theShape2 Second source object
11467 theTolerance Specifies a distance between shapes used for detecting gaps:
11468 - if theTolerance <= 0, algorithm detects intersections (default behavior)
11469 - if theTolerance > 0, algorithm detects gaps
11470 theDeflection Linear deflection coefficient that specifies quality of tesselation:
11471 - if theDeflection <= 0, default deflection 0.001 is used
11474 TRUE, if there are intersections (gaps) between source shapes
11475 List of sub-shapes IDs from 1st shape that localize intersection.
11476 List of sub-shapes IDs from 2nd shape that localize intersection.
11478 # Example: see GEOM_TestMeasures.py
11479 IsOk, Res1, Res2 = self.MeasuOp.FastIntersect(theShape1, theShape2, theTolerance, theDeflection)
11480 RaiseIfFailed("FastIntersect", self.MeasuOp)
11481 return IsOk, Res1, Res2
11483 ## Get position (LCS) of theShape.
11485 # Origin of the LCS is situated at the shape's center of mass.
11486 # Axes of the LCS are obtained from shape's location or,
11487 # if the shape is a planar face, from position of its plane.
11489 # @param theShape Shape to calculate position of.
11490 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
11491 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
11492 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
11493 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
11495 # @ref swig_todo "Example"
11496 @ManageTransactions("MeasuOp")
11497 def GetPosition(self,theShape):
11499 Get position (LCS) of theShape.
11500 Origin of the LCS is situated at the shape's center of mass.
11501 Axes of the LCS are obtained from shape's location or,
11502 if the shape is a planar face, from position of its plane.
11505 theShape Shape to calculate position of.
11508 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
11509 Ox,Oy,Oz: Coordinates of shape's LCS origin.
11510 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
11511 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
11513 # Example: see GEOM_TestMeasures.py
11514 aTuple = self.MeasuOp.GetPosition(theShape)
11515 RaiseIfFailed("GetPosition", self.MeasuOp)
11518 ## Get kind of theShape.
11520 # @param theShape Shape to get a kind of.
11521 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
11522 # and a list of parameters, describing the shape.
11523 # @note Concrete meaning of each value, returned via \a theIntegers
11524 # or \a theDoubles list depends on the kind() of the shape.
11526 # @ref swig_todo "Example"
11527 @ManageTransactions("MeasuOp")
11528 def KindOfShape(self,theShape):
11530 Get kind of theShape.
11533 theShape Shape to get a kind of.
11536 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
11537 and a list of parameters, describing the shape.
11539 Concrete meaning of each value, returned via theIntegers
11540 or theDoubles list depends on the geompy.kind of the shape
11542 # Example: see GEOM_TestMeasures.py
11543 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
11544 RaiseIfFailed("KindOfShape", self.MeasuOp)
11546 aKind = aRoughTuple[0]
11547 anInts = aRoughTuple[1]
11548 aDbls = aRoughTuple[2]
11550 # Now there is no exception from this rule:
11551 aKindTuple = [aKind] + aDbls + anInts
11553 # If they are we will regroup parameters for such kind of shape.
11555 #if aKind == kind.SOME_KIND:
11556 # # SOME_KIND int int double int double double
11557 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
11561 ## Returns the string that describes if the shell is good for solid.
11562 # This is a support method for MakeSolid.
11564 # @param theShell the shell to be checked.
11565 # @return Returns a string that describes the shell validity for
11566 # solid construction.
11567 @ManageTransactions("MeasuOp")
11568 def _IsGoodForSolid(self, theShell):
11570 Returns the string that describes if the shell is good for solid.
11571 This is a support method for MakeSolid.
11574 theShell the shell to be checked.
11577 Returns a string that describes the shell validity for
11578 solid construction.
11580 aDescr = self.MeasuOp.IsGoodForSolid(theShell)
11583 # end of l2_measure
11586 ## @addtogroup l2_import_export
11589 ## Import a shape from the BREP, IGES, STEP or other file
11590 # (depends on given format) with given name.
11592 # Note: this function is deprecated, it is kept for backward compatibility only
11593 # Use Import<FormatName> instead, where <FormatName> is a name of desirable format to import.
11595 # @param theFileName The file, containing the shape.
11596 # @param theFormatName Specify format for the file reading.
11597 # Available formats can be obtained with InsertOp.ImportTranslators() method.
11598 # If format 'IGES_SCALE' is used instead of 'IGES' or
11599 # format 'STEP_SCALE' is used instead of 'STEP',
11600 # length unit will be set to 'meter' and result model will be scaled.
11601 # @param theName Object name; when specified, this parameter is used
11602 # for result publication in the study. Otherwise, if automatic
11603 # publication is switched on, default value is used for result name.
11605 # @return New GEOM.GEOM_Object, containing the imported shape.
11606 # If material names are imported it returns the list of
11607 # objects. The first one is the imported object followed by
11609 # @note Auto publishing is allowed for the shape itself. Imported
11610 # material groups are not automatically published.
11612 # @ref swig_Import_Export "Example"
11613 @ManageTransactions("InsertOp")
11614 def ImportFile(self, theFileName, theFormatName, theName=None):
11616 Import a shape from the BREP, IGES, STEP or other file
11617 (depends on given format) with given name.
11619 Note: this function is deprecated, it is kept for backward compatibility only
11620 Use Import<FormatName> instead, where <FormatName> is a name of desirable format to import.
11623 theFileName The file, containing the shape.
11624 theFormatName Specify format for the file reading.
11625 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
11626 If format 'IGES_SCALE' is used instead of 'IGES' or
11627 format 'STEP_SCALE' is used instead of 'STEP',
11628 length unit will be set to 'meter' and result model will be scaled.
11629 theName Object name; when specified, this parameter is used
11630 for result publication in the study. Otherwise, if automatic
11631 publication is switched on, default value is used for result name.
11634 New GEOM.GEOM_Object, containing the imported shape.
11635 If material names are imported it returns the list of
11636 objects. The first one is the imported object followed by
11639 Auto publishing is allowed for the shape itself. Imported
11640 material groups are not automatically published.
11642 # Example: see GEOM_TestOthers.py
11644 WARNING: Function ImportFile is deprecated, use Import<FormatName> instead,
11645 where <FormatName> is a name of desirable format for importing.
11647 aListObj = self.InsertOp.ImportFile(theFileName, theFormatName)
11648 RaiseIfFailed("ImportFile", self.InsertOp)
11649 aNbObj = len(aListObj)
11651 self._autoPublish(aListObj[0], theName, "imported")
11656 ## Deprecated analog of ImportFile()
11657 def Import(self, theFileName, theFormatName, theName=None):
11659 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
11661 # note: auto-publishing is done in self.ImportFile()
11662 return self.ImportFile(theFileName, theFormatName, theName)
11664 ## Read a shape from the binary stream, containing its bounding representation (BRep).
11665 # @note This method will not be dumped to the python script by DumpStudy functionality.
11666 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
11667 # @param theStream The BRep binary stream.
11668 # @param theName Object name; when specified, this parameter is used
11669 # for result publication in the study. Otherwise, if automatic
11670 # publication is switched on, default value is used for result name.
11672 # @return New GEOM_Object, containing the shape, read from theStream.
11674 # @ref swig_Import_Export "Example"
11675 @ManageTransactions("InsertOp")
11676 def RestoreShape (self, theStream, theName=None):
11678 Read a shape from the binary stream, containing its bounding representation (BRep).
11681 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
11684 theStream The BRep binary stream.
11685 theName Object name; when specified, this parameter is used
11686 for result publication in the study. Otherwise, if automatic
11687 publication is switched on, default value is used for result name.
11690 New GEOM_Object, containing the shape, read from theStream.
11692 # Example: see GEOM_TestOthers.py
11693 anObj = self.InsertOp.RestoreShape(theStream)
11694 RaiseIfFailed("RestoreShape", self.InsertOp)
11695 self._autoPublish(anObj, theName, "restored")
11698 ## Export the given shape into a file with given name.
11700 # Note: this function is deprecated, it is kept for backward compatibility only
11701 # Use Export<FormatName> instead, where <FormatName> is a name of desirable format to export.
11703 # @param theObject Shape to be stored in the file.
11704 # @param theFileName Name of the file to store the given shape in.
11705 # @param theFormatName Specify format for the shape storage.
11706 # Available formats can be obtained with
11707 # geompy.InsertOp.ExportTranslators()[0] method.
11709 # @ref swig_Import_Export "Example"
11710 @ManageTransactions("InsertOp")
11711 def Export(self, theObject, theFileName, theFormatName):
11713 Export the given shape into a file with given name.
11715 Note: this function is deprecated, it is kept for backward compatibility only
11716 Use Export<FormatName> instead, where <FormatName> is a name of desirable format to export.
11719 theObject Shape to be stored in the file.
11720 theFileName Name of the file to store the given shape in.
11721 theFormatName Specify format for the shape storage.
11722 Available formats can be obtained with
11723 geompy.InsertOp.ExportTranslators()[0] method.
11725 # Example: see GEOM_TestOthers.py
11727 WARNING: Function Export is deprecated, use Export<FormatName> instead,
11728 where <FormatName> is a name of desirable format for exporting.
11730 self.InsertOp.Export(theObject, theFileName, theFormatName)
11731 if self.InsertOp.IsDone() == 0:
11732 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
11736 # end of l2_import_export
11739 ## @addtogroup l3_blocks
11742 ## Create a quadrangle face from four edges. Order of Edges is not
11743 # important. It is not necessary that edges share the same vertex.
11744 # @param E1,E2,E3,E4 Edges for the face bound.
11745 # @param theName Object name; when specified, this parameter is used
11746 # for result publication in the study. Otherwise, if automatic
11747 # publication is switched on, default value is used for result name.
11749 # @return New GEOM.GEOM_Object, containing the created face.
11751 # @ref tui_building_by_blocks_page "Example"
11752 @ManageTransactions("BlocksOp")
11753 def MakeQuad(self, E1, E2, E3, E4, theName=None):
11755 Create a quadrangle face from four edges. Order of Edges is not
11756 important. It is not necessary that edges share the same vertex.
11759 E1,E2,E3,E4 Edges for the face bound.
11760 theName Object name; when specified, this parameter is used
11761 for result publication in the study. Otherwise, if automatic
11762 publication is switched on, default value is used for result name.
11765 New GEOM.GEOM_Object, containing the created face.
11768 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
11770 # Example: see GEOM_Spanner.py
11771 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
11772 RaiseIfFailed("MakeQuad", self.BlocksOp)
11773 self._autoPublish(anObj, theName, "quad")
11776 ## Create a quadrangle face on two edges.
11777 # The missing edges will be built by creating the shortest ones.
11778 # @param E1,E2 Two opposite edges for the face.
11779 # @param theName Object name; when specified, this parameter is used
11780 # for result publication in the study. Otherwise, if automatic
11781 # publication is switched on, default value is used for result name.
11783 # @return New GEOM.GEOM_Object, containing the created face.
11785 # @ref tui_building_by_blocks_page "Example"
11786 @ManageTransactions("BlocksOp")
11787 def MakeQuad2Edges(self, E1, E2, theName=None):
11789 Create a quadrangle face on two edges.
11790 The missing edges will be built by creating the shortest ones.
11793 E1,E2 Two opposite edges for the face.
11794 theName Object name; when specified, this parameter is used
11795 for result publication in the study. Otherwise, if automatic
11796 publication is switched on, default value is used for result name.
11799 New GEOM.GEOM_Object, containing the created face.
11803 p1 = geompy.MakeVertex( 0., 0., 0.)
11804 p2 = geompy.MakeVertex(150., 30., 0.)
11805 p3 = geompy.MakeVertex( 0., 120., 50.)
11806 p4 = geompy.MakeVertex( 0., 40., 70.)
11808 edge1 = geompy.MakeEdge(p1, p2)
11809 edge2 = geompy.MakeEdge(p3, p4)
11810 # create a quadrangle face from two edges
11811 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
11813 # Example: see GEOM_Spanner.py
11814 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
11815 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
11816 self._autoPublish(anObj, theName, "quad")
11819 ## Create a quadrangle face with specified corners.
11820 # The missing edges will be built by creating the shortest ones.
11821 # @param V1,V2,V3,V4 Corner vertices for the face.
11822 # @param theName Object name; when specified, this parameter is used
11823 # for result publication in the study. Otherwise, if automatic
11824 # publication is switched on, default value is used for result name.
11826 # @return New GEOM.GEOM_Object, containing the created face.
11828 # @ref tui_building_by_blocks_page "Example 1"
11829 # \n @ref swig_MakeQuad4Vertices "Example 2"
11830 @ManageTransactions("BlocksOp")
11831 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
11833 Create a quadrangle face with specified corners.
11834 The missing edges will be built by creating the shortest ones.
11837 V1,V2,V3,V4 Corner vertices for the face.
11838 theName Object name; when specified, this parameter is used
11839 for result publication in the study. Otherwise, if automatic
11840 publication is switched on, default value is used for result name.
11843 New GEOM.GEOM_Object, containing the created face.
11847 p1 = geompy.MakeVertex( 0., 0., 0.)
11848 p2 = geompy.MakeVertex(150., 30., 0.)
11849 p3 = geompy.MakeVertex( 0., 120., 50.)
11850 p4 = geompy.MakeVertex( 0., 40., 70.)
11851 # create a quadrangle from four points in its corners
11852 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
11854 # Example: see GEOM_Spanner.py
11855 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
11856 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
11857 self._autoPublish(anObj, theName, "quad")
11860 ## Create a hexahedral solid, bounded by the six given faces. Order of
11861 # faces is not important. It is not necessary that Faces share the same edge.
11862 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
11863 # @param theName Object name; when specified, this parameter is used
11864 # for result publication in the study. Otherwise, if automatic
11865 # publication is switched on, default value is used for result name.
11867 # @return New GEOM.GEOM_Object, containing the created solid.
11869 # @ref tui_building_by_blocks_page "Example 1"
11870 # \n @ref swig_MakeHexa "Example 2"
11871 @ManageTransactions("BlocksOp")
11872 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
11874 Create a hexahedral solid, bounded by the six given faces. Order of
11875 faces is not important. It is not necessary that Faces share the same edge.
11878 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
11879 theName Object name; when specified, this parameter is used
11880 for result publication in the study. Otherwise, if automatic
11881 publication is switched on, default value is used for result name.
11884 New GEOM.GEOM_Object, containing the created solid.
11887 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
11889 # Example: see GEOM_Spanner.py
11890 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
11891 RaiseIfFailed("MakeHexa", self.BlocksOp)
11892 self._autoPublish(anObj, theName, "hexa")
11895 ## Create a hexahedral solid between two given faces.
11896 # The missing faces will be built by creating the smallest ones.
11897 # @param F1,F2 Two opposite faces for the hexahedral solid.
11898 # @param theName Object name; when specified, this parameter is used
11899 # for result publication in the study. Otherwise, if automatic
11900 # publication is switched on, default value is used for result name.
11902 # @return New GEOM.GEOM_Object, containing the created solid.
11904 # @ref tui_building_by_blocks_page "Example 1"
11905 # \n @ref swig_MakeHexa2Faces "Example 2"
11906 @ManageTransactions("BlocksOp")
11907 def MakeHexa2Faces(self, F1, F2, theName=None):
11909 Create a hexahedral solid between two given faces.
11910 The missing faces will be built by creating the smallest ones.
11913 F1,F2 Two opposite faces for the hexahedral solid.
11914 theName Object name; when specified, this parameter is used
11915 for result publication in the study. Otherwise, if automatic
11916 publication is switched on, default value is used for result name.
11919 New GEOM.GEOM_Object, containing the created solid.
11922 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
11924 # Example: see GEOM_Spanner.py
11925 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
11926 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
11927 self._autoPublish(anObj, theName, "hexa")
11933 ## @addtogroup l3_blocks_op
11936 ## Get a vertex, found in the given shape by its coordinates.
11937 # @param theShape Block or a compound of blocks.
11938 # @param theX,theY,theZ Coordinates of the sought vertex.
11939 # @param theEpsilon Maximum allowed distance between the resulting
11940 # vertex and point with the given coordinates.
11941 # @param theName Object name; when specified, this parameter is used
11942 # for result publication in the study. Otherwise, if automatic
11943 # publication is switched on, default value is used for result name.
11945 # @return New GEOM.GEOM_Object, containing the found vertex.
11947 # @ref swig_GetPoint "Example"
11948 @ManageTransactions("BlocksOp")
11949 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
11951 Get a vertex, found in the given shape by its coordinates.
11954 theShape Block or a compound of blocks.
11955 theX,theY,theZ Coordinates of the sought vertex.
11956 theEpsilon Maximum allowed distance between the resulting
11957 vertex and point with the given coordinates.
11958 theName Object name; when specified, this parameter is used
11959 for result publication in the study. Otherwise, if automatic
11960 publication is switched on, default value is used for result name.
11963 New GEOM.GEOM_Object, containing the found vertex.
11966 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
11968 # Example: see GEOM_TestOthers.py
11969 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
11970 RaiseIfFailed("GetPoint", self.BlocksOp)
11971 self._autoPublish(anObj, theName, "vertex")
11974 ## Find a vertex of the given shape, which has minimal distance to the given point.
11975 # @param theShape Any shape.
11976 # @param thePoint Point, close to the desired vertex.
11977 # @param theName Object name; when specified, this parameter is used
11978 # for result publication in the study. Otherwise, if automatic
11979 # publication is switched on, default value is used for result name.
11981 # @return New GEOM.GEOM_Object, containing the found vertex.
11983 # @ref swig_GetVertexNearPoint "Example"
11984 @ManageTransactions("BlocksOp")
11985 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
11987 Find a vertex of the given shape, which has minimal distance to the given point.
11990 theShape Any shape.
11991 thePoint Point, close to the desired vertex.
11992 theName Object name; when specified, this parameter is used
11993 for result publication in the study. Otherwise, if automatic
11994 publication is switched on, default value is used for result name.
11997 New GEOM.GEOM_Object, containing the found vertex.
12000 pmidle = geompy.MakeVertex(50, 0, 50)
12001 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
12003 # Example: see GEOM_TestOthers.py
12004 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
12005 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
12006 self._autoPublish(anObj, theName, "vertex")
12009 ## Get an edge, found in the given shape by two given vertices.
12010 # @param theShape Block or a compound of blocks.
12011 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
12012 # @param theName Object name; when specified, this parameter is used
12013 # for result publication in the study. Otherwise, if automatic
12014 # publication is switched on, default value is used for result name.
12016 # @return New GEOM.GEOM_Object, containing the found edge.
12018 # @ref swig_GetEdge "Example"
12019 @ManageTransactions("BlocksOp")
12020 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
12022 Get an edge, found in the given shape by two given vertices.
12025 theShape Block or a compound of blocks.
12026 thePoint1,thePoint2 Points, close to the ends of the desired edge.
12027 theName Object name; when specified, this parameter is used
12028 for result publication in the study. Otherwise, if automatic
12029 publication is switched on, default value is used for result name.
12032 New GEOM.GEOM_Object, containing the found edge.
12034 # Example: see GEOM_Spanner.py
12035 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
12036 RaiseIfFailed("GetEdge", self.BlocksOp)
12037 self._autoPublish(anObj, theName, "edge")
12040 ## Find an edge of the given shape, which has minimal distance to the given point.
12041 # @param theShape Block or a compound of blocks.
12042 # @param thePoint Point, close to the desired edge.
12043 # @param theName Object name; when specified, this parameter is used
12044 # for result publication in the study. Otherwise, if automatic
12045 # publication is switched on, default value is used for result name.
12047 # @return New GEOM.GEOM_Object, containing the found edge.
12049 # @ref swig_GetEdgeNearPoint "Example"
12050 @ManageTransactions("BlocksOp")
12051 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
12053 Find an edge of the given shape, which has minimal distance to the given point.
12056 theShape Block or a compound of blocks.
12057 thePoint Point, close to the desired edge.
12058 theName Object name; when specified, this parameter is used
12059 for result publication in the study. Otherwise, if automatic
12060 publication is switched on, default value is used for result name.
12063 New GEOM.GEOM_Object, containing the found edge.
12065 # Example: see GEOM_TestOthers.py
12066 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
12067 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
12068 self._autoPublish(anObj, theName, "edge")
12071 ## Returns a face, found in the given shape by four given corner vertices.
12072 # @param theShape Block or a compound of blocks.
12073 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
12074 # @param theName Object name; when specified, this parameter is used
12075 # for result publication in the study. Otherwise, if automatic
12076 # publication is switched on, default value is used for result name.
12078 # @return New GEOM.GEOM_Object, containing the found face.
12080 # @ref swig_todo "Example"
12081 @ManageTransactions("BlocksOp")
12082 def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
12084 Returns a face, found in the given shape by four given corner vertices.
12087 theShape Block or a compound of blocks.
12088 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
12089 theName Object name; when specified, this parameter is used
12090 for result publication in the study. Otherwise, if automatic
12091 publication is switched on, default value is used for result name.
12094 New GEOM.GEOM_Object, containing the found face.
12096 # Example: see GEOM_Spanner.py
12097 anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
12098 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
12099 self._autoPublish(anObj, theName, "face")
12102 ## Get a face of block, found in the given shape by two given edges.
12103 # @param theShape Block or a compound of blocks.
12104 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
12105 # @param theName Object name; when specified, this parameter is used
12106 # for result publication in the study. Otherwise, if automatic
12107 # publication is switched on, default value is used for result name.
12109 # @return New GEOM.GEOM_Object, containing the found face.
12111 # @ref swig_todo "Example"
12112 @ManageTransactions("BlocksOp")
12113 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
12115 Get a face of block, found in the given shape by two given edges.
12118 theShape Block or a compound of blocks.
12119 theEdge1,theEdge2 Edges, close to the edges of the desired face.
12120 theName Object name; when specified, this parameter is used
12121 for result publication in the study. Otherwise, if automatic
12122 publication is switched on, default value is used for result name.
12125 New GEOM.GEOM_Object, containing the found face.
12127 # Example: see GEOM_Spanner.py
12128 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
12129 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
12130 self._autoPublish(anObj, theName, "face")
12133 ## Find a face, opposite to the given one in the given block.
12134 # @param theBlock Must be a hexahedral solid.
12135 # @param theFace Face of \a theBlock, opposite to the desired face.
12136 # @param theName Object name; when specified, this parameter is used
12137 # for result publication in the study. Otherwise, if automatic
12138 # publication is switched on, default value is used for result name.
12140 # @return New GEOM.GEOM_Object, containing the found face.
12142 # @ref swig_GetOppositeFace "Example"
12143 @ManageTransactions("BlocksOp")
12144 def GetOppositeFace(self, theBlock, theFace, theName=None):
12146 Find a face, opposite to the given one in the given block.
12149 theBlock Must be a hexahedral solid.
12150 theFace Face of theBlock, opposite to the desired face.
12151 theName Object name; when specified, this parameter is used
12152 for result publication in the study. Otherwise, if automatic
12153 publication is switched on, default value is used for result name.
12156 New GEOM.GEOM_Object, containing the found face.
12158 # Example: see GEOM_Spanner.py
12159 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
12160 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
12161 self._autoPublish(anObj, theName, "face")
12164 ## Find a face of the given shape, which has minimal distance to the given point.
12165 # @param theShape Block or a compound of blocks.
12166 # @param thePoint Point, close to the desired face.
12167 # @param theName Object name; when specified, this parameter is used
12168 # for result publication in the study. Otherwise, if automatic
12169 # publication is switched on, default value is used for result name.
12171 # @return New GEOM.GEOM_Object, containing the found face.
12173 # @ref swig_GetFaceNearPoint "Example"
12174 @ManageTransactions("BlocksOp")
12175 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
12177 Find a face of the given shape, which has minimal distance to the given point.
12180 theShape Block or a compound of blocks.
12181 thePoint Point, close to the desired face.
12182 theName Object name; when specified, this parameter is used
12183 for result publication in the study. Otherwise, if automatic
12184 publication is switched on, default value is used for result name.
12187 New GEOM.GEOM_Object, containing the found face.
12189 # Example: see GEOM_Spanner.py
12190 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
12191 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
12192 self._autoPublish(anObj, theName, "face")
12195 ## Find a face of block, whose outside normale has minimal angle with the given vector.
12196 # @param theBlock Block or a compound of blocks.
12197 # @param theVector Vector, close to the normale of the desired face.
12198 # @param theName Object name; when specified, this parameter is used
12199 # for result publication in the study. Otherwise, if automatic
12200 # publication is switched on, default value is used for result name.
12202 # @return New GEOM.GEOM_Object, containing the found face.
12204 # @ref swig_todo "Example"
12205 @ManageTransactions("BlocksOp")
12206 def GetFaceByNormale(self, theBlock, theVector, theName=None):
12208 Find a face of block, whose outside normale has minimal angle with the given vector.
12211 theBlock Block or a compound of blocks.
12212 theVector Vector, close to the normale of the desired face.
12213 theName Object name; when specified, this parameter is used
12214 for result publication in the study. Otherwise, if automatic
12215 publication is switched on, default value is used for result name.
12218 New GEOM.GEOM_Object, containing the found face.
12220 # Example: see GEOM_Spanner.py
12221 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
12222 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
12223 self._autoPublish(anObj, theName, "face")
12226 ## Find all sub-shapes of type \a theShapeType of the given shape,
12227 # which have minimal distance to the given point.
12228 # @param theShape Any shape.
12229 # @param thePoint Point, close to the desired shape.
12230 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
12231 # @param theTolerance The tolerance for distances comparison. All shapes
12232 # with distances to the given point in interval
12233 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
12234 # @param theName Object name; when specified, this parameter is used
12235 # for result publication in the study. Otherwise, if automatic
12236 # publication is switched on, default value is used for result name.
12238 # @return New GEOM_Object, containing a group of all found shapes.
12240 # @ref swig_GetShapesNearPoint "Example"
12241 @ManageTransactions("BlocksOp")
12242 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
12244 Find all sub-shapes of type theShapeType of the given shape,
12245 which have minimal distance to the given point.
12248 theShape Any shape.
12249 thePoint Point, close to the desired shape.
12250 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
12251 theTolerance The tolerance for distances comparison. All shapes
12252 with distances to the given point in interval
12253 [minimal_distance, minimal_distance + theTolerance] will be gathered.
12254 theName Object name; when specified, this parameter is used
12255 for result publication in the study. Otherwise, if automatic
12256 publication is switched on, default value is used for result name.
12259 New GEOM_Object, containing a group of all found shapes.
12261 # Example: see GEOM_TestOthers.py
12262 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
12263 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
12264 self._autoPublish(anObj, theName, "group")
12267 # end of l3_blocks_op
12270 ## @addtogroup l4_blocks_measure
12273 ## Check, if the compound of blocks is given.
12274 # To be considered as a compound of blocks, the
12275 # given shape must satisfy the following conditions:
12276 # - Each element of the compound should be a Block (6 faces).
12277 # - Each face should be a quadrangle, i.e. it should have only 1 wire
12278 # with 4 edges. If <VAR>theIsUseC1</VAR> is set to True and
12279 # there are more than 4 edges in the only wire of a face,
12280 # this face is considered to be quadrangle if it has 4 bounds
12281 # (1 or more edge) of C1 continuity.
12282 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
12283 # - The compound should be connexe.
12284 # - The glue between two quadrangle faces should be applied.
12285 # @param theCompound The compound to check.
12286 # @param theIsUseC1 Flag to check if there are 4 bounds on a face
12287 # taking into account C1 continuity.
12288 # @param theAngTolerance the angular tolerance to check if two neighbor
12289 # edges are codirectional in the common vertex with this
12290 # tolerance. This parameter is used only if
12291 # <VAR>theIsUseC1</VAR> is set to True.
12292 # @return TRUE, if the given shape is a compound of blocks.
12293 # If theCompound is not valid, prints all discovered errors.
12295 # @ref tui_check_compound_of_blocks_page "Example 1"
12296 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
12297 @ManageTransactions("BlocksOp")
12298 def CheckCompoundOfBlocks(self,theCompound, theIsUseC1 = False,
12299 theAngTolerance = 1.e-12):
12301 Check, if the compound of blocks is given.
12302 To be considered as a compound of blocks, the
12303 given shape must satisfy the following conditions:
12304 - Each element of the compound should be a Block (6 faces).
12305 - Each face should be a quadrangle, i.e. it should have only 1 wire
12306 with 4 edges. If theIsUseC1 is set to True and
12307 there are more than 4 edges in the only wire of a face,
12308 this face is considered to be quadrangle if it has 4 bounds
12309 (1 or more edge) of C1 continuity.
12310 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
12311 - The compound should be connexe.
12312 - The glue between two quadrangle faces should be applied.
12315 theCompound The compound to check.
12316 theIsUseC1 Flag to check if there are 4 bounds on a face
12317 taking into account C1 continuity.
12318 theAngTolerance the angular tolerance to check if two neighbor
12319 edges are codirectional in the common vertex with this
12320 tolerance. This parameter is used only if
12321 theIsUseC1 is set to True.
12324 TRUE, if the given shape is a compound of blocks.
12325 If theCompound is not valid, prints all discovered errors.
12327 # Example: see GEOM_Spanner.py
12330 aTolerance = theAngTolerance
12331 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound, aTolerance)
12332 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
12334 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
12338 ## Retrieve all non blocks solids and faces from \a theShape.
12339 # @param theShape The shape to explore.
12340 # @param theIsUseC1 Flag to check if there are 4 bounds on a face
12341 # taking into account C1 continuity.
12342 # @param theAngTolerance the angular tolerance to check if two neighbor
12343 # edges are codirectional in the common vertex with this
12344 # tolerance. This parameter is used only if
12345 # <VAR>theIsUseC1</VAR> is set to True.
12346 # @param theName Object name; when specified, this parameter is used
12347 # for result publication in the study. Otherwise, if automatic
12348 # publication is switched on, default value is used for result name.
12350 # @return A tuple of two GEOM_Objects. The first object is a group of all
12351 # non block solids (= not 6 faces, or with 6 faces, but with the
12352 # presence of non-quadrangular faces). The second object is a
12353 # group of all non quadrangular faces (= faces with more then
12354 # 1 wire or, if <VAR>theIsUseC1</VAR> is set to True, faces
12355 # with 1 wire with not 4 edges that do not form 4 bounds of
12358 # @ref tui_get_non_blocks_page "Example 1"
12359 # \n @ref swig_GetNonBlocks "Example 2"
12360 @ManageTransactions("BlocksOp")
12361 def GetNonBlocks (self, theShape, theIsUseC1 = False,
12362 theAngTolerance = 1.e-12, theName=None):
12364 Retrieve all non blocks solids and faces from theShape.
12367 theShape The shape to explore.
12368 theIsUseC1 Flag to check if there are 4 bounds on a face
12369 taking into account C1 continuity.
12370 theAngTolerance the angular tolerance to check if two neighbor
12371 edges are codirectional in the common vertex with this
12372 tolerance. This parameter is used only if
12373 theIsUseC1 is set to True.
12374 theName Object name; when specified, this parameter is used
12375 for result publication in the study. Otherwise, if automatic
12376 publication is switched on, default value is used for result name.
12379 A tuple of two GEOM_Objects. The first object is a group of all
12380 non block solids (= not 6 faces, or with 6 faces, but with the
12381 presence of non-quadrangular faces). The second object is a
12382 group of all non quadrangular faces (= faces with more then
12383 1 wire or, if <VAR>theIsUseC1</VAR> is set to True, faces
12384 with 1 wire with not 4 edges that do not form 4 bounds of
12388 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
12390 # Example: see GEOM_Spanner.py
12393 aTolerance = theAngTolerance
12394 aTuple = self.BlocksOp.GetNonBlocks(theShape, aTolerance)
12395 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
12396 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
12399 ## Remove all seam and degenerated edges from \a theShape.
12400 # Unite faces and edges, sharing one surface. It means that
12401 # this faces must have references to one C++ surface object (handle).
12402 # @param theShape The compound or single solid to remove irregular edges from.
12403 # @param doUnionFaces If True, then unite faces. If False (the default value),
12404 # do not unite faces.
12405 # @param theName Object name; when specified, this parameter is used
12406 # for result publication in the study. Otherwise, if automatic
12407 # publication is switched on, default value is used for result name.
12409 # @return Improved shape.
12411 # @ref swig_RemoveExtraEdges "Example"
12412 @ManageTransactions("BlocksOp")
12413 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
12415 Remove all seam and degenerated edges from theShape.
12416 Unite faces and edges, sharing one surface. It means that
12417 this faces must have references to one C++ surface object (handle).
12420 theShape The compound or single solid to remove irregular edges from.
12421 doUnionFaces If True, then unite faces. If False (the default value),
12422 do not unite faces.
12423 theName Object name; when specified, this parameter is used
12424 for result publication in the study. Otherwise, if automatic
12425 publication is switched on, default value is used for result name.
12430 # Example: see GEOM_TestOthers.py
12431 nbFacesOptimum = -1 # -1 means do not unite faces
12432 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
12433 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
12434 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
12435 self._autoPublish(anObj, theName, "removeExtraEdges")
12438 ## Performs union faces of \a theShape
12439 # Unite faces sharing one surface. It means that
12440 # these faces must have references to one C++ surface object (handle).
12441 # @param theShape The compound or single solid that contains faces
12442 # to perform union.
12443 # @param theName Object name; when specified, this parameter is used
12444 # for result publication in the study. Otherwise, if automatic
12445 # publication is switched on, default value is used for result name.
12447 # @return Improved shape.
12449 # @ref swig_UnionFaces "Example"
12450 @ManageTransactions("BlocksOp")
12451 def UnionFaces(self, theShape, theName=None):
12453 Performs union faces of theShape.
12454 Unite faces sharing one surface. It means that
12455 these faces must have references to one C++ surface object (handle).
12458 theShape The compound or single solid that contains faces
12460 theName Object name; when specified, this parameter is used
12461 for result publication in the study. Otherwise, if automatic
12462 publication is switched on, default value is used for result name.
12467 # Example: see GEOM_TestOthers.py
12468 anObj = self.BlocksOp.UnionFaces(theShape)
12469 RaiseIfFailed("UnionFaces", self.BlocksOp)
12470 self._autoPublish(anObj, theName, "unionFaces")
12473 ## Check, if the given shape is a blocks compound.
12474 # Fix all detected errors.
12475 # \note Single block can be also fixed by this method.
12476 # @param theShape The compound to check and improve.
12477 # @param theName Object name; when specified, this parameter is used
12478 # for result publication in the study. Otherwise, if automatic
12479 # publication is switched on, default value is used for result name.
12481 # @return Improved compound.
12483 # @ref swig_CheckAndImprove "Example"
12484 @ManageTransactions("BlocksOp")
12485 def CheckAndImprove(self, theShape, theName=None):
12487 Check, if the given shape is a blocks compound.
12488 Fix all detected errors.
12491 Single block can be also fixed by this method.
12494 theShape The compound to check and improve.
12495 theName Object name; when specified, this parameter is used
12496 for result publication in the study. Otherwise, if automatic
12497 publication is switched on, default value is used for result name.
12502 # Example: see GEOM_TestOthers.py
12503 anObj = self.BlocksOp.CheckAndImprove(theShape)
12504 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
12505 self._autoPublish(anObj, theName, "improved")
12508 # end of l4_blocks_measure
12511 ## @addtogroup l3_blocks_op
12514 ## Get all the blocks, contained in the given compound.
12515 # @param theCompound The compound to explode.
12516 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
12517 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
12518 # @param theName Object name; when specified, this parameter is used
12519 # for result publication in the study. Otherwise, if automatic
12520 # publication is switched on, default value is used for result name.
12522 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
12524 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
12526 # @ref tui_explode_on_blocks "Example 1"
12527 # \n @ref swig_MakeBlockExplode "Example 2"
12528 @ManageTransactions("BlocksOp")
12529 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
12531 Get all the blocks, contained in the given compound.
12534 theCompound The compound to explode.
12535 theMinNbFaces If solid has lower number of faces, it is not a block.
12536 theMaxNbFaces If solid has higher number of faces, it is not a block.
12537 theName Object name; when specified, this parameter is used
12538 for result publication in the study. Otherwise, if automatic
12539 publication is switched on, default value is used for result name.
12542 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
12545 List of GEOM.GEOM_Object, containing the retrieved blocks.
12547 # Example: see GEOM_TestOthers.py
12548 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
12549 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
12550 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
12551 for anObj in aList:
12552 anObj.SetParameters(Parameters)
12554 self._autoPublish(aList, theName, "block")
12557 ## Find block, containing the given point inside its volume or on boundary.
12558 # @param theCompound Compound, to find block in.
12559 # @param thePoint Point, close to the desired block. If the point lays on
12560 # boundary between some blocks, we return block with nearest center.
12561 # @param theName Object name; when specified, this parameter is used
12562 # for result publication in the study. Otherwise, if automatic
12563 # publication is switched on, default value is used for result name.
12565 # @return New GEOM.GEOM_Object, containing the found block.
12567 # @ref swig_todo "Example"
12568 @ManageTransactions("BlocksOp")
12569 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
12571 Find block, containing the given point inside its volume or on boundary.
12574 theCompound Compound, to find block in.
12575 thePoint Point, close to the desired block. If the point lays on
12576 boundary between some blocks, we return block with nearest center.
12577 theName Object name; when specified, this parameter is used
12578 for result publication in the study. Otherwise, if automatic
12579 publication is switched on, default value is used for result name.
12582 New GEOM.GEOM_Object, containing the found block.
12584 # Example: see GEOM_Spanner.py
12585 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
12586 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
12587 self._autoPublish(anObj, theName, "block")
12590 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
12591 # @param theCompound Compound, to find block in.
12592 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
12593 # @param theName Object name; when specified, this parameter is used
12594 # for result publication in the study. Otherwise, if automatic
12595 # publication is switched on, default value is used for result name.
12597 # @return New GEOM.GEOM_Object, containing the found block.
12599 # @ref swig_GetBlockByParts "Example"
12600 @ManageTransactions("BlocksOp")
12601 def GetBlockByParts(self, theCompound, theParts, theName=None):
12603 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
12606 theCompound Compound, to find block in.
12607 theParts List of faces and/or edges and/or vertices to be parts of the found block.
12608 theName Object name; when specified, this parameter is used
12609 for result publication in the study. Otherwise, if automatic
12610 publication is switched on, default value is used for result name.
12613 New GEOM_Object, containing the found block.
12615 # Example: see GEOM_TestOthers.py
12616 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
12617 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
12618 self._autoPublish(anObj, theName, "block")
12621 ## Return all blocks, containing all the elements, passed as the parts.
12622 # @param theCompound Compound, to find blocks in.
12623 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
12624 # @param theName Object name; when specified, this parameter is used
12625 # for result publication in the study. Otherwise, if automatic
12626 # publication is switched on, default value is used for result name.
12628 # @return List of GEOM.GEOM_Object, containing the found blocks.
12630 # @ref swig_todo "Example"
12631 @ManageTransactions("BlocksOp")
12632 def GetBlocksByParts(self, theCompound, theParts, theName=None):
12634 Return all blocks, containing all the elements, passed as the parts.
12637 theCompound Compound, to find blocks in.
12638 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
12639 theName Object name; when specified, this parameter is used
12640 for result publication in the study. Otherwise, if automatic
12641 publication is switched on, default value is used for result name.
12644 List of GEOM.GEOM_Object, containing the found blocks.
12646 # Example: see GEOM_Spanner.py
12647 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
12648 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
12649 self._autoPublish(aList, theName, "block")
12652 ## Multi-transformate block and glue the result.
12653 # Transformation is defined so, as to superpose direction faces.
12654 # @param Block Hexahedral solid to be multi-transformed.
12655 # @param DirFace1 ID of First direction face.
12656 # @param DirFace2 ID of Second direction face.
12657 # @param NbTimes Quantity of transformations to be done.
12658 # @param theName Object name; when specified, this parameter is used
12659 # for result publication in the study. Otherwise, if automatic
12660 # publication is switched on, default value is used for result name.
12662 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
12664 # @return New GEOM.GEOM_Object, containing the result shape.
12666 # @ref tui_multi_transformation "Example"
12667 @ManageTransactions("BlocksOp")
12668 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
12670 Multi-transformate block and glue the result.
12671 Transformation is defined so, as to superpose direction faces.
12674 Block Hexahedral solid to be multi-transformed.
12675 DirFace1 ID of First direction face.
12676 DirFace2 ID of Second direction face.
12677 NbTimes Quantity of transformations to be done.
12678 theName Object name; when specified, this parameter is used
12679 for result publication in the study. Otherwise, if automatic
12680 publication is switched on, default value is used for result name.
12683 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
12686 New GEOM.GEOM_Object, containing the result shape.
12688 # Example: see GEOM_Spanner.py
12689 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
12690 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
12691 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
12692 anObj.SetParameters(Parameters)
12693 self._autoPublish(anObj, theName, "transformed")
12696 ## Multi-transformate block and glue the result.
12697 # @param Block Hexahedral solid to be multi-transformed.
12698 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
12699 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
12700 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
12701 # @param theName Object name; when specified, this parameter is used
12702 # for result publication in the study. Otherwise, if automatic
12703 # publication is switched on, default value is used for result name.
12705 # @return New GEOM.GEOM_Object, containing the result shape.
12707 # @ref tui_multi_transformation "Example"
12708 @ManageTransactions("BlocksOp")
12709 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
12710 DirFace1V, DirFace2V, NbTimesV, theName=None):
12712 Multi-transformate block and glue the result.
12715 Block Hexahedral solid to be multi-transformed.
12716 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
12717 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
12718 NbTimesU,NbTimesV Quantity of transformations to be done.
12719 theName Object name; when specified, this parameter is used
12720 for result publication in the study. Otherwise, if automatic
12721 publication is switched on, default value is used for result name.
12724 New GEOM.GEOM_Object, containing the result shape.
12726 # Example: see GEOM_Spanner.py
12727 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
12728 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
12729 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
12730 DirFace1V, DirFace2V, NbTimesV)
12731 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
12732 anObj.SetParameters(Parameters)
12733 self._autoPublish(anObj, theName, "transformed")
12736 ## Build all possible propagation groups.
12737 # Propagation group is a set of all edges, opposite to one (main)
12738 # edge of this group directly or through other opposite edges.
12739 # Notion of Opposite Edge make sence only on quadrangle face.
12740 # @param theShape Shape to build propagation groups on.
12741 # @param theName Object name; when specified, this parameter is used
12742 # for result publication in the study. Otherwise, if automatic
12743 # publication is switched on, default value is used for result name.
12745 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
12747 # @ref swig_Propagate "Example"
12748 @ManageTransactions("BlocksOp")
12749 def Propagate(self, theShape, theName=None):
12751 Build all possible propagation groups.
12752 Propagation group is a set of all edges, opposite to one (main)
12753 edge of this group directly or through other opposite edges.
12754 Notion of Opposite Edge make sence only on quadrangle face.
12757 theShape Shape to build propagation groups on.
12758 theName Object name; when specified, this parameter is used
12759 for result publication in the study. Otherwise, if automatic
12760 publication is switched on, default value is used for result name.
12763 List of GEOM.GEOM_Object, each of them is a propagation group.
12765 # Example: see GEOM_TestOthers.py
12766 listChains = self.BlocksOp.Propagate(theShape)
12767 RaiseIfFailed("Propagate", self.BlocksOp)
12768 self._autoPublish(listChains, theName, "propagate")
12771 # end of l3_blocks_op
12774 ## @addtogroup l3_groups
12777 ## Creates a new group which will store sub-shapes of theMainShape
12778 # @param theMainShape is a GEOM object on which the group is selected
12779 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
12780 # @param theName Object name; when specified, this parameter is used
12781 # for result publication in the study. Otherwise, if automatic
12782 # publication is switched on, default value is used for result name.
12784 # @return a newly created GEOM group (GEOM.GEOM_Object)
12786 # @ref tui_working_with_groups_page "Example 1"
12787 # \n @ref swig_CreateGroup "Example 2"
12788 @ManageTransactions("GroupOp")
12789 def CreateGroup(self, theMainShape, theShapeType, theName=None):
12791 Creates a new group which will store sub-shapes of theMainShape
12794 theMainShape is a GEOM object on which the group is selected
12795 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
12796 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
12797 theName Object name; when specified, this parameter is used
12798 for result publication in the study. Otherwise, if automatic
12799 publication is switched on, default value is used for result name.
12802 a newly created GEOM group
12805 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
12808 # Example: see GEOM_TestOthers.py
12809 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
12810 RaiseIfFailed("CreateGroup", self.GroupOp)
12811 self._autoPublish(anObj, theName, "group")
12814 ## Adds a sub-object with ID theSubShapeId to the group
12815 # @param theGroup is a GEOM group to which the new sub-shape is added
12816 # @param theSubShapeID is a sub-shape ID in the main object.
12817 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
12819 # @ref tui_working_with_groups_page "Example"
12820 @ManageTransactions("GroupOp")
12821 def AddObject(self,theGroup, theSubShapeID):
12823 Adds a sub-object with ID theSubShapeId to the group
12826 theGroup is a GEOM group to which the new sub-shape is added
12827 theSubShapeID is a sub-shape ID in the main object.
12830 Use method GetSubShapeID() to get an unique ID of the sub-shape
12832 # Example: see GEOM_TestOthers.py
12833 self.GroupOp.AddObject(theGroup, theSubShapeID)
12834 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
12835 RaiseIfFailed("AddObject", self.GroupOp)
12839 ## Removes a sub-object with ID \a theSubShapeId from the group
12840 # @param theGroup is a GEOM group from which the new sub-shape is removed
12841 # @param theSubShapeID is a sub-shape ID in the main object.
12842 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
12844 # @ref tui_working_with_groups_page "Example"
12845 @ManageTransactions("GroupOp")
12846 def RemoveObject(self,theGroup, theSubShapeID):
12848 Removes a sub-object with ID theSubShapeId from the group
12851 theGroup is a GEOM group from which the new sub-shape is removed
12852 theSubShapeID is a sub-shape ID in the main object.
12855 Use method GetSubShapeID() to get an unique ID of the sub-shape
12857 # Example: see GEOM_TestOthers.py
12858 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
12859 RaiseIfFailed("RemoveObject", self.GroupOp)
12862 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12863 # @param theGroup is a GEOM group to which the new sub-shapes are added.
12864 # @param theSubShapes is a list of sub-shapes to be added.
12866 # @ref tui_working_with_groups_page "Example"
12867 @ManageTransactions("GroupOp")
12868 def UnionList (self,theGroup, theSubShapes):
12870 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12873 theGroup is a GEOM group to which the new sub-shapes are added.
12874 theSubShapes is a list of sub-shapes to be added.
12876 # Example: see GEOM_TestOthers.py
12877 self.GroupOp.UnionList(theGroup, theSubShapes)
12878 RaiseIfFailed("UnionList", self.GroupOp)
12881 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12882 # @param theGroup is a GEOM group to which the new sub-shapes are added.
12883 # @param theSubShapes is a list of indices of sub-shapes to be added.
12885 # @ref swig_UnionIDs "Example"
12886 @ManageTransactions("GroupOp")
12887 def UnionIDs(self,theGroup, theSubShapes):
12889 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12892 theGroup is a GEOM group to which the new sub-shapes are added.
12893 theSubShapes is a list of indices of sub-shapes to be added.
12895 # Example: see GEOM_TestOthers.py
12896 self.GroupOp.UnionIDs(theGroup, theSubShapes)
12897 RaiseIfFailed("UnionIDs", self.GroupOp)
12900 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
12901 # @param theGroup is a GEOM group from which the sub-shapes are removed.
12902 # @param theSubShapes is a list of sub-shapes to be removed.
12904 # @ref tui_working_with_groups_page "Example"
12905 @ManageTransactions("GroupOp")
12906 def DifferenceList (self,theGroup, theSubShapes):
12908 Removes from the group all the given shapes. No errors, if some shapes are not included.
12911 theGroup is a GEOM group from which the sub-shapes are removed.
12912 theSubShapes is a list of sub-shapes to be removed.
12914 # Example: see GEOM_TestOthers.py
12915 self.GroupOp.DifferenceList(theGroup, theSubShapes)
12916 RaiseIfFailed("DifferenceList", self.GroupOp)
12919 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
12920 # @param theGroup is a GEOM group from which the sub-shapes are removed.
12921 # @param theSubShapes is a list of indices of sub-shapes to be removed.
12923 # @ref swig_DifferenceIDs "Example"
12924 @ManageTransactions("GroupOp")
12925 def DifferenceIDs(self,theGroup, theSubShapes):
12927 Removes from the group all the given shapes. No errors, if some shapes are not included.
12930 theGroup is a GEOM group from which the sub-shapes are removed.
12931 theSubShapes is a list of indices of sub-shapes to be removed.
12933 # Example: see GEOM_TestOthers.py
12934 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
12935 RaiseIfFailed("DifferenceIDs", self.GroupOp)
12938 ## Union of two groups.
12939 # New group is created. It will contain all entities
12940 # which are present in groups theGroup1 and theGroup2.
12941 # @param theGroup1, theGroup2 are the initial GEOM groups
12942 # to create the united group from.
12943 # @param theName Object name; when specified, this parameter is used
12944 # for result publication in the study. Otherwise, if automatic
12945 # publication is switched on, default value is used for result name.
12947 # @return a newly created GEOM group.
12949 # @ref tui_union_groups_anchor "Example"
12950 @ManageTransactions("GroupOp")
12951 def UnionGroups (self, theGroup1, theGroup2, theName=None):
12953 Union of two groups.
12954 New group is created. It will contain all entities
12955 which are present in groups theGroup1 and theGroup2.
12958 theGroup1, theGroup2 are the initial GEOM groups
12959 to create the united group from.
12960 theName Object name; when specified, this parameter is used
12961 for result publication in the study. Otherwise, if automatic
12962 publication is switched on, default value is used for result name.
12965 a newly created GEOM group.
12967 # Example: see GEOM_TestOthers.py
12968 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
12969 RaiseIfFailed("UnionGroups", self.GroupOp)
12970 self._autoPublish(aGroup, theName, "group")
12973 ## Intersection of two groups.
12974 # New group is created. It will contain only those entities
12975 # which are present in both groups theGroup1 and theGroup2.
12976 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
12977 # @param theName Object name; when specified, this parameter is used
12978 # for result publication in the study. Otherwise, if automatic
12979 # publication is switched on, default value is used for result name.
12981 # @return a newly created GEOM group.
12983 # @ref tui_intersect_groups_anchor "Example"
12984 @ManageTransactions("GroupOp")
12985 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
12987 Intersection of two groups.
12988 New group is created. It will contain only those entities
12989 which are present in both groups theGroup1 and theGroup2.
12992 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
12993 theName Object name; when specified, this parameter is used
12994 for result publication in the study. Otherwise, if automatic
12995 publication is switched on, default value is used for result name.
12998 a newly created GEOM group.
13000 # Example: see GEOM_TestOthers.py
13001 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
13002 RaiseIfFailed("IntersectGroups", self.GroupOp)
13003 self._autoPublish(aGroup, theName, "group")
13006 ## Cut of two groups.
13007 # New group is created. It will contain entities which are
13008 # present in group theGroup1 but are not present in group theGroup2.
13009 # @param theGroup1 is a GEOM group to include elements of.
13010 # @param theGroup2 is a GEOM group to exclude elements of.
13011 # @param theName Object name; when specified, this parameter is used
13012 # for result publication in the study. Otherwise, if automatic
13013 # publication is switched on, default value is used for result name.
13015 # @return a newly created GEOM group.
13017 # @ref tui_cut_groups_anchor "Example"
13018 @ManageTransactions("GroupOp")
13019 def CutGroups (self, theGroup1, theGroup2, theName=None):
13022 New group is created. It will contain entities which are
13023 present in group theGroup1 but are not present in group theGroup2.
13026 theGroup1 is a GEOM group to include elements of.
13027 theGroup2 is a GEOM group to exclude elements of.
13028 theName Object name; when specified, this parameter is used
13029 for result publication in the study. Otherwise, if automatic
13030 publication is switched on, default value is used for result name.
13033 a newly created GEOM group.
13035 # Example: see GEOM_TestOthers.py
13036 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
13037 RaiseIfFailed("CutGroups", self.GroupOp)
13038 self._autoPublish(aGroup, theName, "group")
13041 ## Union of list of groups.
13042 # New group is created. It will contain all entities that are
13043 # present in groups listed in theGList.
13044 # @param theGList is a list of GEOM groups to create the united group from.
13045 # @param theName Object name; when specified, this parameter is used
13046 # for result publication in the study. Otherwise, if automatic
13047 # publication is switched on, default value is used for result name.
13049 # @return a newly created GEOM group.
13051 # @ref tui_union_groups_anchor "Example"
13052 @ManageTransactions("GroupOp")
13053 def UnionListOfGroups (self, theGList, theName=None):
13055 Union of list of groups.
13056 New group is created. It will contain all entities that are
13057 present in groups listed in theGList.
13060 theGList is a list of GEOM groups to create the united group from.
13061 theName Object name; when specified, this parameter is used
13062 for result publication in the study. Otherwise, if automatic
13063 publication is switched on, default value is used for result name.
13066 a newly created GEOM group.
13068 # Example: see GEOM_TestOthers.py
13069 aGroup = self.GroupOp.UnionListOfGroups(theGList)
13070 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
13071 self._autoPublish(aGroup, theName, "group")
13074 ## Cut of lists of groups.
13075 # New group is created. It will contain only entities
13076 # which are present in groups listed in theGList.
13077 # @param theGList is a list of GEOM groups to include elements of.
13078 # @param theName Object name; when specified, this parameter is used
13079 # for result publication in the study. Otherwise, if automatic
13080 # publication is switched on, default value is used for result name.
13082 # @return a newly created GEOM group.
13084 # @ref tui_intersect_groups_anchor "Example"
13085 @ManageTransactions("GroupOp")
13086 def IntersectListOfGroups (self, theGList, theName=None):
13088 Cut of lists of groups.
13089 New group is created. It will contain only entities
13090 which are present in groups listed in theGList.
13093 theGList is a list of GEOM groups to include elements of.
13094 theName Object name; when specified, this parameter is used
13095 for result publication in the study. Otherwise, if automatic
13096 publication is switched on, default value is used for result name.
13099 a newly created GEOM group.
13101 # Example: see GEOM_TestOthers.py
13102 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
13103 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
13104 self._autoPublish(aGroup, theName, "group")
13107 ## Cut of lists of groups.
13108 # New group is created. It will contain only entities
13109 # which are present in groups listed in theGList1 but
13110 # are not present in groups from theGList2.
13111 # @param theGList1 is a list of GEOM groups to include elements of.
13112 # @param theGList2 is a list of GEOM groups to exclude elements of.
13113 # @param theName Object name; when specified, this parameter is used
13114 # for result publication in the study. Otherwise, if automatic
13115 # publication is switched on, default value is used for result name.
13117 # @return a newly created GEOM group.
13119 # @ref tui_cut_groups_anchor "Example"
13120 @ManageTransactions("GroupOp")
13121 def CutListOfGroups (self, theGList1, theGList2, theName=None):
13123 Cut of lists of groups.
13124 New group is created. It will contain only entities
13125 which are present in groups listed in theGList1 but
13126 are not present in groups from theGList2.
13129 theGList1 is a list of GEOM groups to include elements of.
13130 theGList2 is a list of GEOM groups to exclude elements of.
13131 theName Object name; when specified, this parameter is used
13132 for result publication in the study. Otherwise, if automatic
13133 publication is switched on, default value is used for result name.
13136 a newly created GEOM group.
13138 # Example: see GEOM_TestOthers.py
13139 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
13140 RaiseIfFailed("CutListOfGroups", self.GroupOp)
13141 self._autoPublish(aGroup, theName, "group")
13144 ## Returns a list of sub-objects ID stored in the group
13145 # @param theGroup is a GEOM group for which a list of IDs is requested
13147 # @ref swig_GetObjectIDs "Example"
13148 @ManageTransactions("GroupOp")
13149 def GetObjectIDs(self,theGroup):
13151 Returns a list of sub-objects ID stored in the group
13154 theGroup is a GEOM group for which a list of IDs is requested
13156 # Example: see GEOM_TestOthers.py
13157 ListIDs = self.GroupOp.GetObjects(theGroup)
13158 RaiseIfFailed("GetObjects", self.GroupOp)
13161 ## Returns a type of sub-objects stored in the group
13162 # @param theGroup is a GEOM group which type is returned.
13164 # @ref swig_GetType "Example"
13165 @ManageTransactions("GroupOp")
13166 def GetType(self,theGroup):
13168 Returns a type of sub-objects stored in the group
13171 theGroup is a GEOM group which type is returned.
13173 # Example: see GEOM_TestOthers.py
13174 aType = self.GroupOp.GetType(theGroup)
13175 RaiseIfFailed("GetType", self.GroupOp)
13178 ## Convert a type of geom object from id to string value
13179 # @param theId is a GEOM obect type id.
13180 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
13181 # @ref swig_GetType "Example"
13182 def ShapeIdToType(self, theId):
13184 Convert a type of geom object from id to string value
13187 theId is a GEOM obect type id.
13190 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
13217 return "REVOLUTION"
13265 return "FREE_BOUNDS"
13273 return "THRUSECTIONS"
13275 return "COMPOUNDFILTER"
13277 return "SHAPES_ON_SHAPE"
13279 return "ELLIPSE_ARC"
13281 return "3DSKETCHER"
13287 return "PIPETSHAPE"
13288 return "Shape Id not exist."
13290 ## Returns a main shape associated with the group
13291 # @param theGroup is a GEOM group for which a main shape object is requested
13292 # @return a GEOM object which is a main shape for theGroup
13294 # @ref swig_GetMainShape "Example"
13295 @ManageTransactions("GroupOp")
13296 def GetMainShape(self,theGroup):
13298 Returns a main shape associated with the group
13301 theGroup is a GEOM group for which a main shape object is requested
13304 a GEOM object which is a main shape for theGroup
13306 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
13308 # Example: see GEOM_TestOthers.py
13309 anObj = self.GroupOp.GetMainShape(theGroup)
13310 RaiseIfFailed("GetMainShape", self.GroupOp)
13313 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
13314 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
13315 # @param theShape given shape (see GEOM.GEOM_Object)
13316 # @param min_length minimum length of edges of theShape
13317 # @param max_length maximum length of edges of theShape
13318 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13319 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13320 # @param theName Object name; when specified, this parameter is used
13321 # for result publication in the study. Otherwise, if automatic
13322 # publication is switched on, default value is used for result name.
13324 # @return a newly created GEOM group of edges
13326 # @@ref swig_todo "Example"
13327 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
13329 Create group of edges of theShape, whose length is in range [min_length, max_length].
13330 If include_min/max == 0, edges with length == min/max_length will not be included in result.
13333 theShape given shape
13334 min_length minimum length of edges of theShape
13335 max_length maximum length of edges of theShape
13336 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13337 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13338 theName Object name; when specified, this parameter is used
13339 for result publication in the study. Otherwise, if automatic
13340 publication is switched on, default value is used for result name.
13343 a newly created GEOM group of edges.
13345 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
13346 edges_in_range = []
13348 Props = self.BasicProperties(edge)
13349 if min_length <= Props[0] and Props[0] <= max_length:
13350 if (not include_min) and (min_length == Props[0]):
13353 if (not include_max) and (Props[0] == max_length):
13356 edges_in_range.append(edge)
13358 if len(edges_in_range) <= 0:
13359 print "No edges found by given criteria"
13362 # note: auto-publishing is done in self.CreateGroup()
13363 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
13364 self.UnionList(group_edges, edges_in_range)
13368 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
13369 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
13370 # @param min_length minimum length of edges of selected shape
13371 # @param max_length maximum length of edges of selected shape
13372 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13373 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13374 # @return a newly created GEOM group of edges
13375 # @ref swig_todo "Example"
13376 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
13378 Create group of edges of selected shape, whose length is in range [min_length, max_length].
13379 If include_min/max == 0, edges with length == min/max_length will not be included in result.
13382 min_length minimum length of edges of selected shape
13383 max_length maximum length of edges of selected shape
13384 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13385 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13388 a newly created GEOM group of edges.
13390 nb_selected = sg.SelectedCount()
13391 if nb_selected < 1:
13392 print "Select a shape before calling this function, please."
13394 if nb_selected > 1:
13395 print "Only one shape must be selected"
13398 id_shape = sg.getSelected(0)
13399 shape = IDToObject( id_shape )
13401 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
13405 if include_min: left_str = " <= "
13406 if include_max: right_str = " <= "
13408 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
13409 + left_str + "length" + right_str + `max_length`)
13411 sg.updateObjBrowser(1)
13418 #@@ insert new functions before this line @@ do not remove this line @@#
13420 ## Create a copy of the given object
13422 # @param theOriginal geometry object for copy
13423 # @param theName Object name; when specified, this parameter is used
13424 # for result publication in the study. Otherwise, if automatic
13425 # publication is switched on, default value is used for result name.
13427 # @return New GEOM_Object, containing the copied shape.
13429 # @ingroup l1_geomBuilder_auxiliary
13430 # @ref swig_MakeCopy "Example"
13431 @ManageTransactions("InsertOp")
13432 def MakeCopy(self, theOriginal, theName=None):
13434 Create a copy of the given object
13437 theOriginal geometry object for copy
13438 theName Object name; when specified, this parameter is used
13439 for result publication in the study. Otherwise, if automatic
13440 publication is switched on, default value is used for result name.
13443 New GEOM_Object, containing the copied shape.
13445 Example of usage: Copy = geompy.MakeCopy(Box)
13447 # Example: see GEOM_TestAll.py
13448 anObj = self.InsertOp.MakeCopy(theOriginal)
13449 RaiseIfFailed("MakeCopy", self.InsertOp)
13450 self._autoPublish(anObj, theName, "copy")
13453 ## Add Path to load python scripts from
13454 # @param Path a path to load python scripts from
13455 # @ingroup l1_geomBuilder_auxiliary
13456 def addPath(self,Path):
13458 Add Path to load python scripts from
13461 Path a path to load python scripts from
13463 if (sys.path.count(Path) < 1):
13464 sys.path.append(Path)
13468 ## Load marker texture from the file
13469 # @param Path a path to the texture file
13470 # @return unique texture identifier
13471 # @ingroup l1_geomBuilder_auxiliary
13472 @ManageTransactions("InsertOp")
13473 def LoadTexture(self, Path):
13475 Load marker texture from the file
13478 Path a path to the texture file
13481 unique texture identifier
13483 # Example: see GEOM_TestAll.py
13484 ID = self.InsertOp.LoadTexture(Path)
13485 RaiseIfFailed("LoadTexture", self.InsertOp)
13488 ## Get internal name of the object based on its study entry
13489 # @note This method does not provide an unique identifier of the geometry object.
13490 # @note This is internal function of GEOM component, though it can be used outside it for
13491 # appropriate reason (e.g. for identification of geometry object).
13492 # @param obj geometry object
13493 # @return unique object identifier
13494 # @ingroup l1_geomBuilder_auxiliary
13495 def getObjectID(self, obj):
13497 Get internal name of the object based on its study entry.
13498 Note: this method does not provide an unique identifier of the geometry object.
13499 It is an internal function of GEOM component, though it can be used outside GEOM for
13500 appropriate reason (e.g. for identification of geometry object).
13503 obj geometry object
13506 unique object identifier
13509 entry = salome.ObjectToID(obj)
13510 if entry is not None:
13511 lst = entry.split(":")
13513 ID = lst[-1] # -1 means last item in the list
13514 return "GEOM_" + ID
13519 ## Add marker texture. @a Width and @a Height parameters
13520 # specify width and height of the texture in pixels.
13521 # If @a RowData is @c True, @a Texture parameter should represent texture data
13522 # packed into the byte array. If @a RowData is @c False (default), @a Texture
13523 # parameter should be unpacked string, in which '1' symbols represent opaque
13524 # pixels and '0' represent transparent pixels of the texture bitmap.
13526 # @param Width texture width in pixels
13527 # @param Height texture height in pixels
13528 # @param Texture texture data
13529 # @param RowData if @c True, @a Texture data are packed in the byte stream
13530 # @return unique texture identifier
13531 # @ingroup l1_geomBuilder_auxiliary
13532 @ManageTransactions("InsertOp")
13533 def AddTexture(self, Width, Height, Texture, RowData=False):
13535 Add marker texture. Width and Height parameters
13536 specify width and height of the texture in pixels.
13537 If RowData is True, Texture parameter should represent texture data
13538 packed into the byte array. If RowData is False (default), Texture
13539 parameter should be unpacked string, in which '1' symbols represent opaque
13540 pixels and '0' represent transparent pixels of the texture bitmap.
13543 Width texture width in pixels
13544 Height texture height in pixels
13545 Texture texture data
13546 RowData if True, Texture data are packed in the byte stream
13549 return unique texture identifier
13551 if not RowData: Texture = PackData(Texture)
13552 ID = self.InsertOp.AddTexture(Width, Height, Texture)
13553 RaiseIfFailed("AddTexture", self.InsertOp)
13556 ## Transfer not topological data from one GEOM object to another.
13558 # @param theObjectFrom the source object of non-topological data
13559 # @param theObjectTo the destination object of non-topological data
13560 # @param theFindMethod method to search sub-shapes of theObjectFrom
13561 # in shape theObjectTo. Possible values are: GEOM.FSM_GetInPlace,
13562 # GEOM.FSM_GetInPlaceByHistory and GEOM.FSM_GetInPlace_Old.
13563 # Other values of GEOM.find_shape_method are not supported.
13565 # @return True in case of success; False otherwise.
13567 # @ingroup l1_geomBuilder_auxiliary
13569 # @ref swig_TransferData "Example"
13570 @ManageTransactions("InsertOp")
13571 def TransferData(self, theObjectFrom, theObjectTo,
13572 theFindMethod=GEOM.FSM_GetInPlace):
13574 Transfer not topological data from one GEOM object to another.
13577 theObjectFrom the source object of non-topological data
13578 theObjectTo the destination object of non-topological data
13579 theFindMethod method to search sub-shapes of theObjectFrom
13580 in shape theObjectTo. Possible values are:
13581 GEOM.FSM_GetInPlace, GEOM.FSM_GetInPlaceByHistory
13582 and GEOM.FSM_GetInPlace_Old. Other values of
13583 GEOM.find_shape_method are not supported.
13586 True in case of success; False otherwise.
13588 # Example: see GEOM_TestOthers.py
13590 # Example: see GEOM_TestAll.py
13591 isOk = self.InsertOp.TransferData(theObjectFrom,
13592 theObjectTo, theFindMethod)
13593 RaiseIfFailed("TransferData", self.InsertOp)
13596 ## Creates a new folder object. It is a container for any GEOM objects.
13597 # @param Name name of the container
13598 # @param Father parent object. If None,
13599 # folder under 'Geometry' root object will be created.
13600 # @return a new created folder
13601 # @ingroup l1_publish_data
13602 def NewFolder(self, Name, Father=None):
13604 Create a new folder object. It is an auxiliary container for any GEOM objects.
13607 Name name of the container
13608 Father parent object. If None,
13609 folder under 'Geometry' root object will be created.
13612 a new created folder
13614 if not Father: Father = self.father
13615 return self.CreateFolder(Name, Father)
13617 ## Move object to the specified folder
13618 # @param Object object to move
13619 # @param Folder target folder
13620 # @ingroup l1_publish_data
13621 def PutToFolder(self, Object, Folder):
13623 Move object to the specified folder
13626 Object object to move
13627 Folder target folder
13629 self.MoveToFolder(Object, Folder)
13632 ## Move list of objects to the specified folder
13633 # @param ListOfSO list of objects to move
13634 # @param Folder target folder
13635 # @ingroup l1_publish_data
13636 def PutListToFolder(self, ListOfSO, Folder):
13638 Move list of objects to the specified folder
13641 ListOfSO list of objects to move
13642 Folder target folder
13644 self.MoveListToFolder(ListOfSO, Folder)
13647 ## @addtogroup l2_field
13651 # @param shape the shape the field lies on
13652 # @param name the field name
13653 # @param type type of field data: 0 - bool, 1 - int, 2 - double, 3 - string
13654 # @param dimension dimension of the shape the field lies on
13655 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13656 # @param componentNames names of components
13657 # @return a created field
13658 @ManageTransactions("FieldOp")
13659 def CreateField(self, shape, name, type, dimension, componentNames):
13664 shape the shape the field lies on
13665 name the field name
13666 type type of field data
13667 dimension dimension of the shape the field lies on
13668 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13669 componentNames names of components
13674 if isinstance( type, int ):
13675 if type < 0 or type > 3:
13676 raise RuntimeError, "CreateField : Error: data type must be within [0-3] range"
13677 type = [GEOM.FDT_Bool,GEOM.FDT_Int,GEOM.FDT_Double,GEOM.FDT_String][type]
13679 f = self.FieldOp.CreateField( shape, name, type, dimension, componentNames)
13680 RaiseIfFailed("CreateField", self.FieldOp)
13682 geom._autoPublish( f, "", name)
13685 ## Removes a field from the GEOM component
13686 # @param field the field to remove
13687 def RemoveField(self, field):
13688 "Removes a field from the GEOM component"
13690 if isinstance( field, GEOM._objref_GEOM_Field ):
13691 geom.RemoveObject( field )
13692 elif isinstance( field, geomField ):
13693 geom.RemoveObject( field.field )
13695 raise RuntimeError, "RemoveField() : the object is not a field"
13698 ## Returns number of fields on a shape
13699 @ManageTransactions("FieldOp")
13700 def CountFields(self, shape):
13701 "Returns number of fields on a shape"
13702 nb = self.FieldOp.CountFields( shape )
13703 RaiseIfFailed("CountFields", self.FieldOp)
13706 ## Returns all fields on a shape
13707 @ManageTransactions("FieldOp")
13708 def GetFields(self, shape):
13709 "Returns all fields on a shape"
13710 ff = self.FieldOp.GetFields( shape )
13711 RaiseIfFailed("GetFields", self.FieldOp)
13714 ## Returns a field on a shape by its name
13715 @ManageTransactions("FieldOp")
13716 def GetField(self, shape, name):
13717 "Returns a field on a shape by its name"
13718 f = self.FieldOp.GetField( shape, name )
13719 RaiseIfFailed("GetField", self.FieldOp)
13727 # Register the new proxy for GEOM_Gen
13728 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
13731 ## Field on Geometry
13732 # @ingroup l2_field
13733 class geomField( GEOM._objref_GEOM_Field ):
13735 def __init__(self):
13736 GEOM._objref_GEOM_Field.__init__(self)
13737 self.field = GEOM._objref_GEOM_Field
13740 ## Returns the shape the field lies on
13741 def getShape(self):
13742 "Returns the shape the field lies on"
13743 return self.field.GetShape(self)
13745 ## Returns the field name
13747 "Returns the field name"
13748 return self.field.GetName(self)
13750 ## Returns type of field data as integer [0-3]
13752 "Returns type of field data"
13753 return self.field.GetDataType(self)._v
13755 ## Returns type of field data:
13756 # one of GEOM.FDT_Bool, GEOM.FDT_Int, GEOM.FDT_Double, GEOM.FDT_String
13757 def getTypeEnum(self):
13758 "Returns type of field data"
13759 return self.field.GetDataType(self)
13761 ## Returns dimension of the shape the field lies on:
13762 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13763 def getDimension(self):
13764 """Returns dimension of the shape the field lies on:
13765 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape"""
13766 return self.field.GetDimension(self)
13768 ## Returns names of components
13769 def getComponents(self):
13770 "Returns names of components"
13771 return self.field.GetComponents(self)
13773 ## Adds a time step to the field
13774 # @param step the time step number further used as the step identifier
13775 # @param stamp the time step time
13776 # @param values the values of the time step
13777 def addStep(self, step, stamp, values):
13778 "Adds a time step to the field"
13779 stp = self.field.AddStep( self, step, stamp )
13781 raise RuntimeError, \
13782 "Field.addStep() : Error: step %s already exists in this field"%step
13784 geom._autoPublish( stp, "", "Step %s, %s"%(step,stamp))
13785 self.setValues( step, values )
13788 ## Remove a time step from the field
13789 def removeStep(self,step):
13790 "Remove a time step from the field"
13793 stepObj = self.field.GetStep( self, step )
13795 stepSO = geom.myStudy.FindObjectID( stepObj.GetStudyEntry() )
13798 #traceback.print_exc()
13800 self.field.RemoveStep( self, step )
13802 geom.myBuilder.RemoveObjectWithChildren( stepSO )
13805 ## Returns number of time steps in the field
13806 def countSteps(self):
13807 "Returns number of time steps in the field"
13808 return self.field.CountSteps(self)
13810 ## Returns a list of time step IDs in the field
13811 def getSteps(self):
13812 "Returns a list of time step IDs in the field"
13813 return self.field.GetSteps(self)
13815 ## Returns a time step by its ID
13816 def getStep(self,step):
13817 "Returns a time step by its ID"
13818 stp = self.field.GetStep(self, step)
13820 raise RuntimeError, "Step %s is missing from this field"%step
13823 ## Returns the time of the field step
13824 def getStamp(self,step):
13825 "Returns the time of the field step"
13826 return self.getStep(step).GetStamp()
13828 ## Changes the time of the field step
13829 def setStamp(self, step, stamp):
13830 "Changes the time of the field step"
13831 return self.getStep(step).SetStamp(stamp)
13833 ## Returns values of the field step
13834 def getValues(self, step):
13835 "Returns values of the field step"
13836 return self.getStep(step).GetValues()
13838 ## Changes values of the field step
13839 def setValues(self, step, values):
13840 "Changes values of the field step"
13841 stp = self.getStep(step)
13842 errBeg = "Field.setValues(values) : Error: "
13844 ok = stp.SetValues( values )
13845 except Exception, e:
13847 if excStr.find("WrongPythonType") > 0:
13848 raise RuntimeError, errBeg +\
13849 "wrong type of values, %s values are expected"%str(self.getTypeEnum())[4:]
13850 raise RuntimeError, errBeg + str(e)
13852 nbOK = self.field.GetArraySize(self)
13855 raise RuntimeError, errBeg + "len(values) must be %s but not %s"%(nbOK,nbKO)
13857 raise RuntimeError, errBeg + "failed"
13860 pass # end of class geomField
13862 # Register the new proxy for GEOM_Field
13863 omniORB.registerObjref(GEOM._objref_GEOM_Field._NP_RepositoryId, geomField)
13866 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
13867 # interface to GEOM operations.
13872 # salome.salome_init()
13873 # from salome.geom import geomBuilder
13874 # geompy = geomBuilder.New(salome.myStudy)
13876 # @param study SALOME study, generally obtained by salome.myStudy.
13877 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
13878 # @return geomBuilder instance
13879 def New( study, instance=None):
13881 Create a new geomBuilder instance.The geomBuilder class provides the Python
13882 interface to GEOM operations.
13886 salome.salome_init()
13887 from salome.geom import geomBuilder
13888 geompy = geomBuilder.New(salome.myStudy)
13891 study SALOME study, generally obtained by salome.myStudy.
13892 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
13894 geomBuilder instance
13896 #print "New geomBuilder ", study, instance
13903 geom = geomBuilder()
13904 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
13905 geom.init_geom(study)
13909 # Register methods from the plug-ins in the geomBuilder class
13910 plugins_var = os.environ.get( "GEOM_PluginsList" )
13913 if plugins_var is not None:
13914 plugins = plugins_var.split( ":" )
13915 plugins=filter(lambda x: len(x)>0, plugins)
13916 if plugins is not None:
13917 for pluginName in plugins:
13918 pluginBuilderName = pluginName + "Builder"
13920 exec( "from salome.%s.%s import *" % (pluginName, pluginBuilderName))
13921 except Exception, e:
13922 from salome_utils import verbose
13923 print "Exception while loading %s: %s" % ( pluginBuilderName, e )
13925 exec( "from salome.%s import %s" % (pluginName, pluginBuilderName))
13926 plugin = eval( pluginBuilderName )
13928 # add methods from plugin module to the geomBuilder class
13929 for k in dir( plugin ):
13930 if k[0] == '_': continue
13931 method = getattr( plugin, k )
13932 if type( method ).__name__ == 'function':
13933 if not hasattr( geomBuilder, k ):
13934 setattr( geomBuilder, k, method )