1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 # GEOM GEOM_SWIG : binding of C++ implementation with Python
22 # File : geomBuilder.py
23 # Author : Paul RASCLE, EDF
27 \namespace geomBuilder
28 \brief Module geomBuilder
32 ## @defgroup geomBuilder geomBuilder Python module
37 ## By default, all functions of geomBuilder Python module do not publish
38 ## resulting geometrical objects. This can be done in the Python script
39 ## by means of \ref geomBuilder.geomBuilder.addToStudy() "addToStudy()"
40 ## or \ref geomBuilder.geomBuilder.addToStudyInFather() "addToStudyInFather()"
43 ## However, it is possible to publish result data in the study
44 ## automatically. For this, almost each function of
45 ## \ref geomBuilder.geomBuilder "geomBuilder" class has
46 ## an additional @a theName parameter (@c None by default).
47 ## As soon as non-empty string value is passed to this parameter,
48 ## the result object is published in the study automatically.
50 ## For example, consider the following Python script:
54 ## from salome.geom import geomBuilder
55 ## geompy = geomBuilder.New(salome.myStudy)
56 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100) # box is not published in the study yet
57 ## geompy.addToStudy(box, "box") # explicit publishing
60 ## Last two lines can be replaced by one-line instruction:
63 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100, theName="box") # box is published in the study with "box" name
69 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100, "box") # box is published in the study with "box" name
72 ## Note, that some functions produce more than one geometrical objects. For example,
73 ## \ref geomBuilder.geomBuilder.GetNonBlocks() "GetNonBlocks()" function returns two objects:
74 ## group of all non-hexa solids and group of all non-quad faces.
75 ## For such functions it is possible to specify separate names for results.
80 ## # create and publish cylinder
81 ## cyl = geompy.MakeCylinderRH(100, 100, "cylinder")
82 ## # get non blocks from cylinder
83 ## g1, g2 = geompy.GetNonBlocks(cyl, theName="nonblock")
86 ## Above example will publish both result compounds (first with non-hexa solids and
87 ## second with non-quad faces) as two items, both named "nonblock".
88 ## However, if second command is invoked as
91 ## g1, g2 = geompy.GetNonBlocks(cyl, theName=("nonhexa", "nonquad"))
94 ## ... the first compound will be published with "nonhexa" name, and second will be named "nonquad".
96 ## Automatic publication of all results can be also enabled/disabled by means of the function
97 ## \ref geomBuilder.geomBuilder.addToStudyAuto() "addToStudyAuto()". The automatic publishing
98 ## is managed by the numeric parameter passed to this function:
99 ## - if @a maxNbSubShapes = 0, automatic publishing is disabled.
100 ## - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
101 ## maximum number of sub-shapes allowed for publishing is unlimited; any negative
102 ## value passed as parameter has the same effect.
103 ## - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
104 ## maximum number of sub-shapes allowed for publishing is set to specified value.
106 ## When automatic publishing is enabled, you even do not need to pass @a theName parameter
107 ## to the functions creating objects, instead default names will be used. However, you
108 ## can always change the behavior, by passing explicit name to the @a theName parameter
109 ## and it will be used instead default one.
110 ## The publishing of the collections of objects will be done according to the above
111 ## mentioned rules (maximum allowed number of sub-shapes).
117 ## from salome.geom import geomBuilder
118 ## geompy = geomBuilder.New(salome.myStudy)
119 ## geompy.addToStudyAuto() # enable automatic publication
120 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100)
121 ## # the box is created and published in the study with default name
122 ## geompy.addToStudyAuto(5) # set max allowed number of sub-shapes to 5
123 ## vertices = geompy.SubShapeAll(box, geomBuilder.ShapeType['VERTEX'])
124 ## # only 5 first vertices will be published, with default names
125 ## print len(vertices)
126 ## # note, that result value still containes all 8 vertices
127 ## geompy.addToStudyAuto(-1) # disable automatic publication
130 ## This feature can be used, for example, for debugging purposes.
133 ## - Use automatic publication feature with caution. When it is enabled, any function of
134 ## \ref geomBuilder.geomBuilder "geomBuilder" class publishes the results in the study,
135 ## that can lead to the huge size of the study data tree.
136 ## For example, repeating call of \ref geomBuilder.geomBuilder.SubShapeAll() "SubShapeAll()"
137 ## command on the same main shape each time will publish all child objects, that will lead
138 ## to a lot of duplicated items in the study.
139 ## - Sub-shapes are automatically published as child items of the parent main shape in the study if main
140 ## shape was also published before. Otherwise, sub-shapes are published as top-level objects.
141 ## - Some functions of \ref geomBuilder.geomBuilder "geomBuilder" class do not have
142 ## \a theName parameter (and, thus, do not support automatic publication).
143 ## For example, some transformation operations like
144 ## \ref geomBuilder.geomBuilder.TranslateDXDYDZ() "TranslateDXDYDZ()".
145 ## Refer to the documentation to check if some function has such possibility.
147 ## It is possible to customize the representation of the geometrical
148 ## data in the data tree; this can be done by using folders. A folder can
149 ## be created in the study tree using function
150 ## \ref geomBuilder.geomBuilder.NewFolder() "NewFolder()"
151 ## (by default it is created under the "Geometry" root object).
152 ## As soon as folder is created, any published geometry object
153 ## can be moved into it.
159 ## from salome.geom import geomBuilder
160 ## geompy = geomBuilder.New(salome.myStudy)
161 ## box = geompy.MakeBoxDXDYDZ(100, 100, 100, "Box")
162 ## # the box was created and published in the study
163 ## folder = geompy.NewFolder("Primitives")
164 ## # an empty "Primitives" folder was created under default "Geometry" root object
165 ## geompy.PutToFolder(box, folder)
166 ## # the box was moved into "Primitives" folder
169 ## Subfolders are also can be created by specifying another folder as a parent:
172 ## subfolder = geompy.NewFolder("3D", folder)
173 ## # "3D" folder was created under "Primitives" folder
177 ## - Folder container is just a representation layer object that
178 ## deals with already published objects only. So, any geometry object
179 ## should be published in the study (for example, with
180 ## \ref geomBuilder.geomBuilder.PutToFolder() "addToStudy()" function)
181 ## BEFORE moving it into any existing folder.
182 ## - \ref geomBuilder.geomBuilder.PutToFolder() "PutToFolder()" function
183 ## does not change physical position of geometry object in the study tree,
184 ## it only affects on the representation of the data tree.
185 ## - It is impossible to publish geometry object using any folder as father.
187 ## \defgroup l1_publish_data
188 ## \defgroup l1_geomBuilder_auxiliary
189 ## \defgroup l1_geomBuilder_purpose
192 ## @defgroup l1_publish_data Publishing results in SALOME study
194 ## @defgroup l1_geomBuilder_auxiliary Auxiliary data structures and methods
196 ## @defgroup l1_geomBuilder_purpose All package methods, grouped by their purpose
198 ## @defgroup l2_import_export Importing/exporting geometrical objects
199 ## @defgroup l2_creating Creating geometrical objects
201 ## @defgroup l3_basic_go Creating Basic Geometric Objects
203 ## @defgroup l4_curves Creating Curves
206 ## @defgroup l3_3d_primitives Creating 3D Primitives
207 ## @defgroup l3_complex Creating Complex Objects
208 ## @defgroup l3_groups Working with groups
209 ## @defgroup l3_blocks Building by blocks
211 ## @defgroup l4_blocks_measure Check and Improve
214 ## @defgroup l3_sketcher Sketcher
215 ## @defgroup l3_advanced Creating Advanced Geometrical Objects
217 ## @defgroup l4_decompose Decompose objects
218 ## @defgroup l4_decompose_d Decompose objects deprecated methods
219 ## @defgroup l4_access Access to sub-shapes by their unique IDs inside the main shape
220 ## @defgroup l4_obtain Access to sub-shapes by a criteria
221 ## @defgroup l4_advanced Advanced objects creation functions
226 ## @defgroup l2_transforming Transforming geometrical objects
228 ## @defgroup l3_basic_op Basic Operations
229 ## @defgroup l3_boolean Boolean Operations
230 ## @defgroup l3_transform Transformation Operations
231 ## @defgroup l3_transform_d Transformation Operations deprecated methods
232 ## @defgroup l3_local Local Operations (Fillet, Chamfer and other Features)
233 ## @defgroup l3_blocks_op Blocks Operations
234 ## @defgroup l3_healing Repairing Operations
235 ## @defgroup l3_restore_ss Restore presentation parameters and a tree of sub-shapes
238 ## @defgroup l2_measure Using measurement tools
239 ## @defgroup l2_field Field on Geometry
243 # initialize SALOME session in try/except block
244 # to avoid problems in some cases, e.g. when generating documentation
252 from salome_notebook import *
259 from salome.geom.gsketcher import Sketcher3D, Sketcher2D, Polyline2D
262 def _toListOfNames(_names, _size=-1):
265 if type(_names) in [types.ListType, types.TupleType]:
266 for i in _names: l.append(i)
269 if l and len(l) < _size:
270 for i in range(len(l), _size): l.append("%s_%d"%(l[0],i))
273 # Decorator function to manage transactions for all geometric operations.
274 def ManageTransactions(theOpeName):
275 def MTDecorator(theFunction):
276 # To keep the original function name an documentation.
277 @functools.wraps(theFunction)
278 def OpenCallClose(self, *args, **kwargs):
280 anOperation = getattr(self, theOpeName)
281 anOperation.StartOperation()
284 res = theFunction(self, *args, **kwargs)
286 anOperation.FinishOperation()
290 anOperation.AbortOperation()
295 ## Raise an Error, containing the Method_name, if Operation is Failed
296 ## @ingroup l1_geomBuilder_auxiliary
297 def RaiseIfFailed (Method_name, Operation):
298 if Operation.IsDone() == 0 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]
603 # @ingroup l1_geomBuilder_auxiliary
604 kind = GEOM.GEOM_IKindOfShape
611 #print "==== __new__ ", engine, geom, doLcc, created
613 # geom engine is either retrieved from engine, or created
615 # Following test avoids a recursive loop
618 # geom engine not created: existing engine found
620 if doLcc and not created:
622 # FindOrLoadComponent called:
623 # 1. CORBA resolution of server
624 # 2. the __new__ method is called again
625 #print "==== FindOrLoadComponent ", engine, geom, doLcc, created
626 geom = lcc.FindOrLoadComponent( "FactoryServer", "GEOM" )
629 # FindOrLoadComponent not called
631 # geomBuilder instance is created from lcc.FindOrLoadComponent
632 #print "==== super ", engine, geom, doLcc, created
633 geom = super(geomBuilder,cls).__new__(cls)
636 # geom engine not created: existing engine found
637 #print "==== existing ", engine, geom, doLcc, created
639 #print "return geom 1 ", geom
642 #print "return geom 2 ", geom
647 #print "-------- geomBuilder __init__ --- ", created, self
650 GEOM._objref_GEOM_Gen.__init__(self)
651 self.myMaxNbSubShapesAllowed = 0 # auto-publishing is disabled by default
652 self.myBuilder = None
671 ## Process object publication in the study, as follows:
672 # - if @a theName is specified (not None), the object is published in the study
673 # with this name, not taking into account "auto-publishing" option;
674 # - if @a theName is NOT specified, the object is published in the study
675 # (using default name, which can be customized using @a theDefaultName parameter)
676 # only if auto-publishing is switched on.
678 # @param theObj object, a subject for publishing
679 # @param theName object name for study
680 # @param theDefaultName default name for the auto-publishing
682 # @sa addToStudyAuto()
683 def _autoPublish(self, theObj, theName, theDefaultName="noname"):
685 def _item_name(_names, _defname, _idx=-1):
686 if not _names: _names = _defname
687 if type(_names) in [types.ListType, types.TupleType]:
689 if _idx >= len(_names) or not _names[_idx]:
690 if type(_defname) not in [types.ListType, types.TupleType]:
691 _name = "%s_%d"%(_defname, _idx+1)
692 elif len(_defname) > 0 and _idx >= 0 and _idx < len(_defname):
693 _name = _defname[_idx]
695 _name = "%noname_%d"%(dn, _idx+1)
701 # must be wrong usage
706 _name = "%s_%d"%(_names, _idx+1)
712 def _publish( _name, _obj ):
714 if isinstance( _obj, GEOM._objref_GEOM_Field ):
715 fatherObj = _obj.GetShape()
716 elif isinstance( _obj, GEOM._objref_GEOM_FieldStep ):
717 fatherObj = _obj.GetField()
718 elif not _obj.IsMainShape():
719 fatherObj = _obj.GetMainShape()
721 if fatherObj and fatherObj.GetStudyEntry():
722 self.addToStudyInFather(fatherObj, _obj, _name)
724 self.addToStudy(_obj, _name)
730 if not theName and not self.myMaxNbSubShapesAllowed:
731 return # nothing to do: auto-publishing is disabled
732 if not theName and not theDefaultName:
733 return # neither theName nor theDefaultName is given
735 if type(theObj) in [types.ListType, types.TupleType]:
736 # list of objects is being published
739 if not obj: continue # bad object
740 name = _item_name(theName, theDefaultName, idx)
741 _publish( name, obj )
743 if not theName and idx == self.myMaxNbSubShapesAllowed: break
747 # single object is published
748 name = _item_name(theName, theDefaultName)
749 _publish( name, theObj )
752 ## @addtogroup l1_geomBuilder_auxiliary
754 def init_geom(self,theStudy):
755 self.myStudy = theStudy
756 self.myStudyId = self.myStudy._get_StudyId()
757 self.myBuilder = self.myStudy.NewBuilder()
758 self.father = self.myStudy.FindComponent("GEOM")
759 notebook.myStudy = theStudy
760 if self.father is None:
761 self.father = self.myBuilder.NewComponent("GEOM")
762 A1 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributeName")
763 FName = A1._narrow(SALOMEDS.AttributeName)
764 FName.SetValue("Geometry")
765 A2 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributePixMap")
766 aPixmap = A2._narrow(SALOMEDS.AttributePixMap)
767 aPixmap.SetPixMap("ICON_OBJBROWSER_Geometry")
768 self.myBuilder.DefineComponentInstance(self.father,self)
770 self.BasicOp = self.GetIBasicOperations (self.myStudyId)
771 self.CurvesOp = self.GetICurvesOperations (self.myStudyId)
772 self.PrimOp = self.GetI3DPrimOperations (self.myStudyId)
773 self.ShapesOp = self.GetIShapesOperations (self.myStudyId)
774 self.HealOp = self.GetIHealingOperations (self.myStudyId)
775 self.InsertOp = self.GetIInsertOperations (self.myStudyId)
776 self.BoolOp = self.GetIBooleanOperations (self.myStudyId)
777 self.TrsfOp = self.GetITransformOperations(self.myStudyId)
778 self.LocalOp = self.GetILocalOperations (self.myStudyId)
779 self.MeasuOp = self.GetIMeasureOperations (self.myStudyId)
780 self.BlocksOp = self.GetIBlocksOperations (self.myStudyId)
781 self.GroupOp = self.GetIGroupOperations (self.myStudyId)
782 self.FieldOp = self.GetIFieldOperations (self.myStudyId)
784 # set GEOM as root in the use case tree
785 self.myUseCaseBuilder = self.myStudy.GetUseCaseBuilder()
786 self.myUseCaseBuilder.SetRootCurrent()
787 self.myUseCaseBuilder.Append(self.father)
789 # load data from the study file, if necessary
790 self.myBuilder.LoadWith(self.father, self)
793 def GetPluginOperations(self, studyID, libraryName):
794 op = GEOM._objref_GEOM_Gen.GetPluginOperations(self, studyID, libraryName)
797 ## Enable / disable results auto-publishing
799 # The automatic publishing is managed in the following way:
800 # - if @a maxNbSubShapes = 0, automatic publishing is disabled.
801 # - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
802 # maximum number of sub-shapes allowed for publishing is unlimited; any negative
803 # value passed as parameter has the same effect.
804 # - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
805 # maximum number of sub-shapes allowed for publishing is set to specified value.
807 # @param maxNbSubShapes maximum number of sub-shapes allowed for publishing.
808 # @ingroup l1_publish_data
809 def addToStudyAuto(self, maxNbSubShapes=-1):
811 Enable / disable results auto-publishing
813 The automatic publishing is managed in the following way:
814 - if @a maxNbSubShapes = 0, automatic publishing is disabled;
815 - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
816 maximum number of sub-shapes allowed for publishing is unlimited; any negative
817 value passed as parameter has the same effect.
818 - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
819 maximum number of sub-shapes allowed for publishing is set to this value.
822 maxNbSubShapes maximum number of sub-shapes allowed for publishing.
825 geompy.addToStudyAuto() # enable auto-publishing
826 geompy.MakeBoxDXDYDZ(100) # box is created and published with default name
827 geompy.addToStudyAuto(0) # disable auto-publishing
829 self.myMaxNbSubShapesAllowed = max(-1, maxNbSubShapes)
832 ## Dump component to the Python script
833 # This method overrides IDL function to allow default values for the parameters.
834 def DumpPython(self, theStudy, theIsPublished=True, theIsMultiFile=True):
836 Dump component to the Python script
837 This method overrides IDL function to allow default values for the parameters.
839 return GEOM._objref_GEOM_Gen.DumpPython(self, theStudy, theIsPublished, theIsMultiFile)
841 ## Get name for sub-shape aSubObj of shape aMainObj
843 # @ref swig_SubShapeName "Example"
844 @ManageTransactions("ShapesOp")
845 def SubShapeName(self,aSubObj, aMainObj):
847 Get name for sub-shape aSubObj of shape aMainObj
849 # Example: see GEOM_TestAll.py
851 #aSubId = orb.object_to_string(aSubObj)
852 #aMainId = orb.object_to_string(aMainObj)
853 #index = gg.getIndexTopology(aSubId, aMainId)
854 #name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
855 index = self.ShapesOp.GetTopologyIndex(aMainObj, aSubObj)
856 name = self.ShapesOp.GetShapeTypeString(aSubObj) + "_%d"%(index)
859 ## Publish in study aShape with name aName
861 # \param aShape the shape to be published
862 # \param aName the name for the shape
863 # \param doRestoreSubShapes if True, finds and publishes also
864 # sub-shapes of <VAR>aShape</VAR>, corresponding to its arguments
865 # and published sub-shapes of arguments
866 # \param theArgs,theFindMethod,theInheritFirstArg see RestoreSubShapes() for
867 # these arguments description
868 # \return study entry of the published shape in form of string
870 # @ingroup l1_publish_data
871 # @ref swig_all_addtostudy "Example"
872 def addToStudy(self, aShape, aName, doRestoreSubShapes=False,
873 theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False):
875 Publish in study aShape with name aName
878 aShape the shape to be published
879 aName the name for the shape
880 doRestoreSubShapes if True, finds and publishes also
881 sub-shapes of aShape, corresponding to its arguments
882 and published sub-shapes of arguments
883 theArgs,theFindMethod,theInheritFirstArg see geompy.RestoreSubShapes() for
884 these arguments description
887 study entry of the published shape in form of string
890 id_block1 = geompy.addToStudy(Block1, "Block 1")
892 # Example: see GEOM_TestAll.py
894 aSObject = self.AddInStudy(self.myStudy, aShape, aName, None)
895 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
896 if doRestoreSubShapes:
897 self.RestoreSubShapesSO(self.myStudy, aSObject, theArgs,
898 theFindMethod, theInheritFirstArg, True )
900 print "addToStudy() failed"
902 return aShape.GetStudyEntry()
904 ## Publish in study aShape with name aName as sub-object of previously published aFather
905 # \param aFather previously published object
906 # \param aShape the shape to be published as sub-object of <VAR>aFather</VAR>
907 # \param aName the name for the shape
909 # \return study entry of the published shape in form of string
911 # @ingroup l1_publish_data
912 # @ref swig_all_addtostudyInFather "Example"
913 def addToStudyInFather(self, aFather, aShape, aName):
915 Publish in study aShape with name aName as sub-object of previously published aFather
918 aFather previously published object
919 aShape the shape to be published as sub-object of aFather
920 aName the name for the shape
923 study entry of the published shape in form of string
925 # Example: see GEOM_TestAll.py
927 aSObject = self.AddInStudy(self.myStudy, aShape, aName, aFather)
928 if aSObject and aName: aSObject.SetAttrString("AttributeName", aName)
930 print "addToStudyInFather() failed"
932 return aShape.GetStudyEntry()
934 ## Unpublish object in study
936 # \param obj the object to be unpublished
937 def hideInStudy(self, obj):
939 Unpublish object in study
942 obj the object to be unpublished
944 ior = salome.orb.object_to_string(obj)
945 aSObject = self.myStudy.FindObjectIOR(ior)
946 if aSObject is not None:
947 genericAttribute = self.myBuilder.FindOrCreateAttribute(aSObject, "AttributeDrawable")
948 drwAttribute = genericAttribute._narrow(SALOMEDS.AttributeDrawable)
949 drwAttribute.SetDrawable(False)
950 # hide references if any
951 vso = self.myStudy.FindDependances(aSObject);
953 genericAttribute = self.myBuilder.FindOrCreateAttribute(refObj, "AttributeDrawable")
954 drwAttribute = genericAttribute._narrow(SALOMEDS.AttributeDrawable)
955 drwAttribute.SetDrawable(False)
959 # end of l1_geomBuilder_auxiliary
962 ## @addtogroup l3_restore_ss
965 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
966 # To be used from python scripts out of addToStudy() (non-default usage)
967 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
968 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
969 # If this list is empty, all operation arguments will be published
970 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
971 # their sub-shapes. Value from enumeration GEOM.find_shape_method.
972 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
973 # Do not publish sub-shapes in place of arguments, but only
974 # in place of sub-shapes of the first argument,
975 # because the whole shape corresponds to the first argument.
976 # Mainly to be used after transformations, but it also can be
977 # usefull after partition with one object shape, and some other
978 # operations, where only the first argument has to be considered.
979 # If theObject has only one argument shape, this flag is automatically
980 # considered as True, not regarding really passed value.
981 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
982 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
983 # \return list of published sub-shapes
985 # @ref tui_restore_prs_params "Example"
986 def RestoreSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
987 theInheritFirstArg=False, theAddPrefix=True):
989 Publish sub-shapes, standing for arguments and sub-shapes of arguments
990 To be used from python scripts out of geompy.addToStudy (non-default usage)
993 theObject published GEOM.GEOM_Object, arguments of which will be published
994 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
995 If this list is empty, all operation arguments will be published
996 theFindMethod method to search sub-shapes, corresponding to arguments and
997 their sub-shapes. Value from enumeration GEOM.find_shape_method.
998 theInheritFirstArg set properties of the first argument for theObject.
999 Do not publish sub-shapes in place of arguments, but only
1000 in place of sub-shapes of the first argument,
1001 because the whole shape corresponds to the first argument.
1002 Mainly to be used after transformations, but it also can be
1003 usefull after partition with one object shape, and some other
1004 operations, where only the first argument has to be considered.
1005 If theObject has only one argument shape, this flag is automatically
1006 considered as True, not regarding really passed value.
1007 theAddPrefix add prefix "from_" to names of restored sub-shapes,
1008 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
1010 list of published sub-shapes
1012 # Example: see GEOM_TestAll.py
1013 return self.RestoreSubShapesO(self.myStudy, theObject, theArgs,
1014 theFindMethod, theInheritFirstArg, theAddPrefix)
1016 ## Publish sub-shapes, standing for arguments and sub-shapes of arguments
1017 # To be used from python scripts out of addToStudy() (non-default usage)
1018 # \param theObject published GEOM.GEOM_Object, arguments of which will be published
1019 # \param theArgs list of GEOM.GEOM_Object, operation arguments to be published.
1020 # If this list is empty, all operation arguments will be published
1021 # \param theFindMethod method to search sub-shapes, corresponding to arguments and
1022 # their sub-shapes. Value from enumeration GEOM::find_shape_method.
1023 # \param theInheritFirstArg set properties of the first argument for <VAR>theObject</VAR>.
1024 # Do not publish sub-shapes in place of arguments, but only
1025 # in place of sub-shapes of the first argument,
1026 # because the whole shape corresponds to the first argument.
1027 # Mainly to be used after transformations, but it also can be
1028 # usefull after partition with one object shape, and some other
1029 # operations, where only the first argument has to be considered.
1030 # If theObject has only one argument shape, this flag is automatically
1031 # considered as True, not regarding really passed value.
1032 # \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
1033 # and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
1034 # \return list of published sub-shapes
1036 # @ref tui_restore_prs_params "Example"
1037 def RestoreGivenSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace,
1038 theInheritFirstArg=False, theAddPrefix=True):
1040 Publish sub-shapes, standing for arguments and sub-shapes of arguments
1041 To be used from python scripts out of geompy.addToStudy() (non-default usage)
1044 theObject published GEOM.GEOM_Object, arguments of which will be published
1045 theArgs list of GEOM.GEOM_Object, operation arguments to be published.
1046 If this list is empty, all operation arguments will be published
1047 theFindMethod method to search sub-shapes, corresponding to arguments and
1048 their sub-shapes. Value from enumeration GEOM::find_shape_method.
1049 theInheritFirstArg set properties of the first argument for theObject.
1050 Do not publish sub-shapes in place of arguments, but only
1051 in place of sub-shapes of the first argument,
1052 because the whole shape corresponds to the first argument.
1053 Mainly to be used after transformations, but it also can be
1054 usefull after partition with one object shape, and some other
1055 operations, where only the first argument has to be considered.
1056 If theObject has only one argument shape, this flag is automatically
1057 considered as True, not regarding really passed value.
1058 theAddPrefix add prefix "from_" to names of restored sub-shapes,
1059 and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
1062 list of published sub-shapes
1064 # Example: see GEOM_TestAll.py
1065 return self.RestoreGivenSubShapesO(self.myStudy, theObject, theArgs,
1066 theFindMethod, theInheritFirstArg, theAddPrefix)
1068 # end of l3_restore_ss
1071 ## @addtogroup l3_basic_go
1074 ## Create point by three coordinates.
1075 # @param theX The X coordinate of the point.
1076 # @param theY The Y coordinate of the point.
1077 # @param theZ The Z coordinate of the point.
1078 # @param theName Object name; when specified, this parameter is used
1079 # for result publication in the study. Otherwise, if automatic
1080 # publication is switched on, default value is used for result name.
1082 # @return New GEOM.GEOM_Object, containing the created point.
1084 # @ref tui_creation_point "Example"
1085 @ManageTransactions("BasicOp")
1086 def MakeVertex(self, theX, theY, theZ, theName=None):
1088 Create point by three coordinates.
1091 theX The X coordinate of the point.
1092 theY The Y coordinate of the point.
1093 theZ The Z coordinate of the point.
1094 theName Object name; when specified, this parameter is used
1095 for result publication in the study. Otherwise, if automatic
1096 publication is switched on, default value is used for result name.
1099 New GEOM.GEOM_Object, containing the created point.
1101 # Example: see GEOM_TestAll.py
1102 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1103 anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
1104 RaiseIfFailed("MakePointXYZ", self.BasicOp)
1105 anObj.SetParameters(Parameters)
1106 self._autoPublish(anObj, theName, "vertex")
1109 ## Create a point, distant from the referenced point
1110 # on the given distances along the coordinate axes.
1111 # @param theReference The referenced point.
1112 # @param theX Displacement from the referenced point along OX axis.
1113 # @param theY Displacement from the referenced point along OY axis.
1114 # @param theZ Displacement from the referenced point along OZ axis.
1115 # @param theName Object name; when specified, this parameter is used
1116 # for result publication in the study. Otherwise, if automatic
1117 # publication is switched on, default value is used for result name.
1119 # @return New GEOM.GEOM_Object, containing the created point.
1121 # @ref tui_creation_point "Example"
1122 @ManageTransactions("BasicOp")
1123 def MakeVertexWithRef(self, theReference, theX, theY, theZ, theName=None):
1125 Create a point, distant from the referenced point
1126 on the given distances along the coordinate axes.
1129 theReference The referenced point.
1130 theX Displacement from the referenced point along OX axis.
1131 theY Displacement from the referenced point along OY axis.
1132 theZ Displacement from the referenced point along OZ axis.
1133 theName Object name; when specified, this parameter is used
1134 for result publication in the study. Otherwise, if automatic
1135 publication is switched on, default value is used for result name.
1138 New GEOM.GEOM_Object, containing the created point.
1140 # Example: see GEOM_TestAll.py
1141 theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ)
1142 anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
1143 RaiseIfFailed("MakePointWithReference", self.BasicOp)
1144 anObj.SetParameters(Parameters)
1145 self._autoPublish(anObj, theName, "vertex")
1148 ## Create a point, corresponding to the given parameter on the given curve.
1149 # @param theRefCurve The referenced curve.
1150 # @param theParameter Value of parameter on the referenced curve.
1151 # @param takeOrientationIntoAccount flag that tells if it is necessary
1152 # to take the curve's orientation into account for the
1153 # operation. I.e. if this flag is set, the results for the same
1154 # parameters (except the value 0.5) is different for forward
1155 # and reversed curves. If it is not set the result is the same.
1156 # @param theName Object name; when specified, this parameter is used
1157 # for result publication in the study. Otherwise, if automatic
1158 # publication is switched on, default value is used for result name.
1160 # @return New GEOM.GEOM_Object, containing the created point.
1162 # @ref tui_creation_point "Example"
1163 @ManageTransactions("BasicOp")
1164 def MakeVertexOnCurve(self, theRefCurve, theParameter,
1165 takeOrientationIntoAccount=False, theName=None):
1167 Create a point, corresponding to the given parameter on the given curve.
1170 theRefCurve The referenced curve.
1171 theParameter Value of parameter on the referenced curve.
1172 takeOrientationIntoAccount flag that tells if it is necessary
1173 to take the curve's orientation into account for the
1174 operation. I.e. if this flag is set, the results for
1175 the same parameters (except the value 0.5) is different
1176 for forward and reversed curves. If it is not set
1177 the result is the same.
1178 theName Object name; when specified, this parameter is used
1179 for result publication in the study. Otherwise, if automatic
1180 publication is switched on, default value is used for result name.
1183 New GEOM.GEOM_Object, containing the created point.
1186 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25)
1188 # Example: see GEOM_TestAll.py
1189 theParameter, takeOrientationIntoAccount, Parameters = ParseParameters(
1190 theParameter, takeOrientationIntoAccount)
1191 anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter,
1192 takeOrientationIntoAccount)
1193 RaiseIfFailed("MakePointOnCurve", self.BasicOp)
1194 anObj.SetParameters(Parameters)
1195 self._autoPublish(anObj, theName, "vertex")
1198 ## Create a point by projection give coordinates on the given curve
1199 # @param theRefCurve The referenced curve.
1200 # @param theX X-coordinate in 3D space
1201 # @param theY Y-coordinate in 3D space
1202 # @param theZ Z-coordinate in 3D space
1203 # @param theName Object name; when specified, this parameter is used
1204 # for result publication in the study. Otherwise, if automatic
1205 # publication is switched on, default value is used for result name.
1207 # @return New GEOM.GEOM_Object, containing the created point.
1209 # @ref tui_creation_point "Example"
1210 @ManageTransactions("BasicOp")
1211 def MakeVertexOnCurveByCoord(self, theRefCurve, theX, theY, theZ, theName=None):
1213 Create a point by projection give coordinates on the given curve
1216 theRefCurve The referenced curve.
1217 theX X-coordinate in 3D space
1218 theY Y-coordinate in 3D space
1219 theZ Z-coordinate in 3D space
1220 theName Object name; when specified, this parameter is used
1221 for result publication in the study. Otherwise, if automatic
1222 publication is switched on, default value is used for result name.
1225 New GEOM.GEOM_Object, containing the created point.
1228 p_on_arc3 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10)
1230 # Example: see GEOM_TestAll.py
1231 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1232 anObj = self.BasicOp.MakePointOnCurveByCoord(theRefCurve, theX, theY, theZ)
1233 RaiseIfFailed("MakeVertexOnCurveByCoord", self.BasicOp)
1234 anObj.SetParameters(Parameters)
1235 self._autoPublish(anObj, theName, "vertex")
1238 ## Create a point, corresponding to the given length on the given curve.
1239 # @param theRefCurve The referenced curve.
1240 # @param theLength Length on the referenced curve. It can be negative.
1241 # @param theStartPoint Point allowing to choose the direction for the calculation
1242 # of the length. If None, start from the first point of theRefCurve.
1243 # @param theName Object name; when specified, this parameter is used
1244 # for result publication in the study. Otherwise, if automatic
1245 # publication is switched on, default value is used for result name.
1247 # @return New GEOM.GEOM_Object, containing the created point.
1249 # @ref tui_creation_point "Example"
1250 @ManageTransactions("BasicOp")
1251 def MakeVertexOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
1253 Create a point, corresponding to the given length on the given curve.
1256 theRefCurve The referenced curve.
1257 theLength Length on the referenced curve. It can be negative.
1258 theStartPoint Point allowing to choose the direction for the calculation
1259 of the length. If None, start from the first point of theRefCurve.
1260 theName Object name; when specified, this parameter is used
1261 for result publication in the study. Otherwise, if automatic
1262 publication is switched on, default value is used for result name.
1265 New GEOM.GEOM_Object, containing the created point.
1267 # Example: see GEOM_TestAll.py
1268 theLength, Parameters = ParseParameters(theLength)
1269 anObj = self.BasicOp.MakePointOnCurveByLength(theRefCurve, theLength, theStartPoint)
1270 RaiseIfFailed("MakePointOnCurveByLength", self.BasicOp)
1271 anObj.SetParameters(Parameters)
1272 self._autoPublish(anObj, theName, "vertex")
1275 ## Create a point, corresponding to the given parameters on the
1277 # @param theRefSurf The referenced surface.
1278 # @param theUParameter Value of U-parameter on the referenced surface.
1279 # @param theVParameter Value of V-parameter on the referenced surface.
1280 # @param theName Object name; when specified, this parameter is used
1281 # for result publication in the study. Otherwise, if automatic
1282 # publication is switched on, default value is used for result name.
1284 # @return New GEOM.GEOM_Object, containing the created point.
1286 # @ref swig_MakeVertexOnSurface "Example"
1287 @ManageTransactions("BasicOp")
1288 def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter, theName=None):
1290 Create a point, corresponding to the given parameters on the
1294 theRefSurf The referenced surface.
1295 theUParameter Value of U-parameter on the referenced surface.
1296 theVParameter Value of V-parameter on the referenced surface.
1297 theName Object name; when specified, this parameter is used
1298 for result publication in the study. Otherwise, if automatic
1299 publication is switched on, default value is used for result name.
1302 New GEOM.GEOM_Object, containing the created point.
1305 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8)
1307 theUParameter, theVParameter, Parameters = ParseParameters(theUParameter, theVParameter)
1308 # Example: see GEOM_TestAll.py
1309 anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter)
1310 RaiseIfFailed("MakePointOnSurface", self.BasicOp)
1311 anObj.SetParameters(Parameters);
1312 self._autoPublish(anObj, theName, "vertex")
1315 ## Create a point by projection give coordinates on the given surface
1316 # @param theRefSurf The referenced surface.
1317 # @param theX X-coordinate in 3D space
1318 # @param theY Y-coordinate in 3D space
1319 # @param theZ Z-coordinate in 3D space
1320 # @param theName Object name; when specified, this parameter is used
1321 # for result publication in the study. Otherwise, if automatic
1322 # publication is switched on, default value is used for result name.
1324 # @return New GEOM.GEOM_Object, containing the created point.
1326 # @ref swig_MakeVertexOnSurfaceByCoord "Example"
1327 @ManageTransactions("BasicOp")
1328 def MakeVertexOnSurfaceByCoord(self, theRefSurf, theX, theY, theZ, theName=None):
1330 Create a point by projection give coordinates on the given surface
1333 theRefSurf The referenced surface.
1334 theX X-coordinate in 3D space
1335 theY Y-coordinate in 3D space
1336 theZ Z-coordinate in 3D space
1337 theName Object name; when specified, this parameter is used
1338 for result publication in the study. Otherwise, if automatic
1339 publication is switched on, default value is used for result name.
1342 New GEOM.GEOM_Object, containing the created point.
1345 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.)
1347 theX, theY, theZ, Parameters = ParseParameters(theX, theY, theZ)
1348 # Example: see GEOM_TestAll.py
1349 anObj = self.BasicOp.MakePointOnSurfaceByCoord(theRefSurf, theX, theY, theZ)
1350 RaiseIfFailed("MakeVertexOnSurfaceByCoord", self.BasicOp)
1351 anObj.SetParameters(Parameters);
1352 self._autoPublish(anObj, theName, "vertex")
1355 ## Create a point, which lays on the given face.
1356 # The point will lay in arbitrary place of the face.
1357 # The only condition on it is a non-zero distance to the face boundary.
1358 # Such point can be used to uniquely identify the face inside any
1359 # shape in case, when the shape does not contain overlapped faces.
1360 # @param theFace The referenced face.
1361 # @param theName Object name; when specified, this parameter is used
1362 # for result publication in the study. Otherwise, if automatic
1363 # publication is switched on, default value is used for result name.
1365 # @return New GEOM.GEOM_Object, containing the created point.
1367 # @ref swig_MakeVertexInsideFace "Example"
1368 @ManageTransactions("BasicOp")
1369 def MakeVertexInsideFace (self, theFace, theName=None):
1371 Create a point, which lays on the given face.
1372 The point will lay in arbitrary place of the face.
1373 The only condition on it is a non-zero distance to the face boundary.
1374 Such point can be used to uniquely identify the face inside any
1375 shape in case, when the shape does not contain overlapped faces.
1378 theFace The referenced face.
1379 theName Object name; when specified, this parameter is used
1380 for result publication in the study. Otherwise, if automatic
1381 publication is switched on, default value is used for result name.
1384 New GEOM.GEOM_Object, containing the created point.
1387 p_on_face = geompy.MakeVertexInsideFace(Face)
1389 # Example: see GEOM_TestAll.py
1390 anObj = self.BasicOp.MakePointOnFace(theFace)
1391 RaiseIfFailed("MakeVertexInsideFace", self.BasicOp)
1392 self._autoPublish(anObj, theName, "vertex")
1395 ## Create a point on intersection of two lines.
1396 # @param theRefLine1, theRefLine2 The referenced lines.
1397 # @param theName Object name; when specified, this parameter is used
1398 # for result publication in the study. Otherwise, if automatic
1399 # publication is switched on, default value is used for result name.
1401 # @return New GEOM.GEOM_Object, containing the created point.
1403 # @ref swig_MakeVertexOnLinesIntersection "Example"
1404 @ManageTransactions("BasicOp")
1405 def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2, theName=None):
1407 Create a point on intersection of two lines.
1410 theRefLine1, theRefLine2 The referenced lines.
1411 theName Object name; when specified, this parameter is used
1412 for result publication in the study. Otherwise, if automatic
1413 publication is switched on, default value is used for result name.
1416 New GEOM.GEOM_Object, containing the created point.
1418 # Example: see GEOM_TestAll.py
1419 anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2)
1420 RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp)
1421 self._autoPublish(anObj, theName, "vertex")
1424 ## Create a tangent, corresponding to the given parameter on the given curve.
1425 # @param theRefCurve The referenced curve.
1426 # @param theParameter Value of parameter on the referenced curve.
1427 # @param theName Object name; when specified, this parameter is used
1428 # for result publication in the study. Otherwise, if automatic
1429 # publication is switched on, default value is used for result name.
1431 # @return New GEOM.GEOM_Object, containing the created tangent.
1433 # @ref swig_MakeTangentOnCurve "Example"
1434 @ManageTransactions("BasicOp")
1435 def MakeTangentOnCurve(self, theRefCurve, theParameter, theName=None):
1437 Create a tangent, corresponding to the given parameter on the given curve.
1440 theRefCurve The referenced curve.
1441 theParameter Value of parameter on the referenced curve.
1442 theName Object name; when specified, this parameter is used
1443 for result publication in the study. Otherwise, if automatic
1444 publication is switched on, default value is used for result name.
1447 New GEOM.GEOM_Object, containing the created tangent.
1450 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7)
1452 anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter)
1453 RaiseIfFailed("MakeTangentOnCurve", self.BasicOp)
1454 self._autoPublish(anObj, theName, "tangent")
1457 ## Create a tangent plane, corresponding to the given parameter on the given face.
1458 # @param theFace The face for which tangent plane should be built.
1459 # @param theParameterV vertical value of the center point (0.0 - 1.0).
1460 # @param theParameterU horisontal value of the center point (0.0 - 1.0).
1461 # @param theTrimSize the size of plane.
1462 # @param theName Object name; when specified, this parameter is used
1463 # for result publication in the study. Otherwise, if automatic
1464 # publication is switched on, default value is used for result name.
1466 # @return New GEOM.GEOM_Object, containing the created tangent.
1468 # @ref swig_MakeTangentPlaneOnFace "Example"
1469 @ManageTransactions("BasicOp")
1470 def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize, theName=None):
1472 Create a tangent plane, corresponding to the given parameter on the given face.
1475 theFace The face for which tangent plane should be built.
1476 theParameterV vertical value of the center point (0.0 - 1.0).
1477 theParameterU horisontal value of the center point (0.0 - 1.0).
1478 theTrimSize the size of plane.
1479 theName Object name; when specified, this parameter is used
1480 for result publication in the study. Otherwise, if automatic
1481 publication is switched on, default value is used for result name.
1484 New GEOM.GEOM_Object, containing the created tangent.
1487 an_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
1489 anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize)
1490 RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp)
1491 self._autoPublish(anObj, theName, "tangent")
1494 ## Create a vector with the given components.
1495 # @param theDX X component of the vector.
1496 # @param theDY Y component of the vector.
1497 # @param theDZ Z component of the vector.
1498 # @param theName Object name; when specified, this parameter is used
1499 # for result publication in the study. Otherwise, if automatic
1500 # publication is switched on, default value is used for result name.
1502 # @return New GEOM.GEOM_Object, containing the created vector.
1504 # @ref tui_creation_vector "Example"
1505 @ManageTransactions("BasicOp")
1506 def MakeVectorDXDYDZ(self, theDX, theDY, theDZ, theName=None):
1508 Create a vector with the given components.
1511 theDX X component of the vector.
1512 theDY Y component of the vector.
1513 theDZ Z component of the vector.
1514 theName Object name; when specified, this parameter is used
1515 for result publication in the study. Otherwise, if automatic
1516 publication is switched on, default value is used for result name.
1519 New GEOM.GEOM_Object, containing the created vector.
1521 # Example: see GEOM_TestAll.py
1522 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
1523 anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
1524 RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp)
1525 anObj.SetParameters(Parameters)
1526 self._autoPublish(anObj, theName, "vector")
1529 ## Create a vector between two points.
1530 # @param thePnt1 Start point for the vector.
1531 # @param thePnt2 End point for the vector.
1532 # @param theName Object name; when specified, this parameter is used
1533 # for result publication in the study. Otherwise, if automatic
1534 # publication is switched on, default value is used for result name.
1536 # @return New GEOM.GEOM_Object, containing the created vector.
1538 # @ref tui_creation_vector "Example"
1539 @ManageTransactions("BasicOp")
1540 def MakeVector(self, thePnt1, thePnt2, theName=None):
1542 Create a vector between two points.
1545 thePnt1 Start point for the vector.
1546 thePnt2 End point for the vector.
1547 theName Object name; when specified, this parameter is used
1548 for result publication in the study. Otherwise, if automatic
1549 publication is switched on, default value is used for result name.
1552 New GEOM.GEOM_Object, containing the created vector.
1554 # Example: see GEOM_TestAll.py
1555 anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2)
1556 RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp)
1557 self._autoPublish(anObj, theName, "vector")
1560 ## Create a line, passing through the given point
1561 # and parrallel to the given direction
1562 # @param thePnt Point. The resulting line will pass through it.
1563 # @param theDir Direction. The resulting line will be parallel to it.
1564 # @param theName Object name; when specified, this parameter is used
1565 # for result publication in the study. Otherwise, if automatic
1566 # publication is switched on, default value is used for result name.
1568 # @return New GEOM.GEOM_Object, containing the created line.
1570 # @ref tui_creation_line "Example"
1571 @ManageTransactions("BasicOp")
1572 def MakeLine(self, thePnt, theDir, theName=None):
1574 Create a line, passing through the given point
1575 and parrallel to the given direction
1578 thePnt Point. The resulting line will pass through it.
1579 theDir Direction. The resulting line will be parallel to it.
1580 theName Object name; when specified, this parameter is used
1581 for result publication in the study. Otherwise, if automatic
1582 publication is switched on, default value is used for result name.
1585 New GEOM.GEOM_Object, containing the created line.
1587 # Example: see GEOM_TestAll.py
1588 anObj = self.BasicOp.MakeLine(thePnt, theDir)
1589 RaiseIfFailed("MakeLine", self.BasicOp)
1590 self._autoPublish(anObj, theName, "line")
1593 ## Create a line, passing through the given points
1594 # @param thePnt1 First of two points, defining the line.
1595 # @param thePnt2 Second of two points, defining the line.
1596 # @param theName Object name; when specified, this parameter is used
1597 # for result publication in the study. Otherwise, if automatic
1598 # publication is switched on, default value is used for result name.
1600 # @return New GEOM.GEOM_Object, containing the created line.
1602 # @ref tui_creation_line "Example"
1603 @ManageTransactions("BasicOp")
1604 def MakeLineTwoPnt(self, thePnt1, thePnt2, theName=None):
1606 Create a line, passing through the given points
1609 thePnt1 First of two points, defining the line.
1610 thePnt2 Second of two points, defining the line.
1611 theName Object name; when specified, this parameter is used
1612 for result publication in the study. Otherwise, if automatic
1613 publication is switched on, default value is used for result name.
1616 New GEOM.GEOM_Object, containing the created line.
1618 # Example: see GEOM_TestAll.py
1619 anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
1620 RaiseIfFailed("MakeLineTwoPnt", self.BasicOp)
1621 self._autoPublish(anObj, theName, "line")
1624 ## Create a line on two faces intersection.
1625 # @param theFace1 First of two faces, defining the line.
1626 # @param theFace2 Second of two faces, defining the line.
1627 # @param theName Object name; when specified, this parameter is used
1628 # for result publication in the study. Otherwise, if automatic
1629 # publication is switched on, default value is used for result name.
1631 # @return New GEOM.GEOM_Object, containing the created line.
1633 # @ref swig_MakeLineTwoFaces "Example"
1634 @ManageTransactions("BasicOp")
1635 def MakeLineTwoFaces(self, theFace1, theFace2, theName=None):
1637 Create a line on two faces intersection.
1640 theFace1 First of two faces, defining the line.
1641 theFace2 Second of two faces, defining the line.
1642 theName Object name; when specified, this parameter is used
1643 for result publication in the study. Otherwise, if automatic
1644 publication is switched on, default value is used for result name.
1647 New GEOM.GEOM_Object, containing the created line.
1649 # Example: see GEOM_TestAll.py
1650 anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2)
1651 RaiseIfFailed("MakeLineTwoFaces", self.BasicOp)
1652 self._autoPublish(anObj, theName, "line")
1655 ## Create a plane, passing through the given point
1656 # and normal to the given vector.
1657 # @param thePnt Point, the plane has to pass through.
1658 # @param theVec Vector, defining the plane normal direction.
1659 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1660 # @param theName Object name; when specified, this parameter is used
1661 # for result publication in the study. Otherwise, if automatic
1662 # publication is switched on, default value is used for result name.
1664 # @return New GEOM.GEOM_Object, containing the created plane.
1666 # @ref tui_creation_plane "Example"
1667 @ManageTransactions("BasicOp")
1668 def MakePlane(self, thePnt, theVec, theTrimSize, theName=None):
1670 Create a plane, passing through the given point
1671 and normal to the given vector.
1674 thePnt Point, the plane has to pass through.
1675 theVec Vector, defining the plane normal direction.
1676 theTrimSize Half size of a side of quadrangle face, representing the plane.
1677 theName Object name; when specified, this parameter is used
1678 for result publication in the study. Otherwise, if automatic
1679 publication is switched on, default value is used for result name.
1682 New GEOM.GEOM_Object, containing the created plane.
1684 # Example: see GEOM_TestAll.py
1685 theTrimSize, Parameters = ParseParameters(theTrimSize);
1686 anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
1687 RaiseIfFailed("MakePlanePntVec", self.BasicOp)
1688 anObj.SetParameters(Parameters)
1689 self._autoPublish(anObj, theName, "plane")
1692 ## Create a plane, passing through the three given points
1693 # @param thePnt1 First of three points, defining the plane.
1694 # @param thePnt2 Second of three points, defining the plane.
1695 # @param thePnt3 Fird of three points, defining the plane.
1696 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1697 # @param theName Object name; when specified, this parameter is used
1698 # for result publication in the study. Otherwise, if automatic
1699 # publication is switched on, default value is used for result name.
1701 # @return New GEOM.GEOM_Object, containing the created plane.
1703 # @ref tui_creation_plane "Example"
1704 @ManageTransactions("BasicOp")
1705 def MakePlaneThreePnt(self, thePnt1, thePnt2, thePnt3, theTrimSize, theName=None):
1707 Create a plane, passing through the three given points
1710 thePnt1 First of three points, defining the plane.
1711 thePnt2 Second of three points, defining the plane.
1712 thePnt3 Fird of three points, defining the plane.
1713 theTrimSize Half size of a side of quadrangle face, representing the plane.
1714 theName Object name; when specified, this parameter is used
1715 for result publication in the study. Otherwise, if automatic
1716 publication is switched on, default value is used for result name.
1719 New GEOM.GEOM_Object, containing the created plane.
1721 # Example: see GEOM_TestAll.py
1722 theTrimSize, Parameters = ParseParameters(theTrimSize);
1723 anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
1724 RaiseIfFailed("MakePlaneThreePnt", self.BasicOp)
1725 anObj.SetParameters(Parameters)
1726 self._autoPublish(anObj, theName, "plane")
1729 ## Create a plane, similar to the existing one, but with another size of representing face.
1730 # @param theFace Referenced plane or LCS(Marker).
1731 # @param theTrimSize New half size of a side of quadrangle face, representing the plane.
1732 # @param theName Object name; when specified, this parameter is used
1733 # for result publication in the study. Otherwise, if automatic
1734 # publication is switched on, default value is used for result name.
1736 # @return New GEOM.GEOM_Object, containing the created plane.
1738 # @ref tui_creation_plane "Example"
1739 @ManageTransactions("BasicOp")
1740 def MakePlaneFace(self, theFace, theTrimSize, theName=None):
1742 Create a plane, similar to the existing one, but with another size of representing face.
1745 theFace Referenced plane or LCS(Marker).
1746 theTrimSize New half size of a side of quadrangle face, representing the plane.
1747 theName Object name; when specified, this parameter is used
1748 for result publication in the study. Otherwise, if automatic
1749 publication is switched on, default value is used for result name.
1752 New GEOM.GEOM_Object, containing the created plane.
1754 # Example: see GEOM_TestAll.py
1755 theTrimSize, Parameters = ParseParameters(theTrimSize);
1756 anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize)
1757 RaiseIfFailed("MakePlaneFace", self.BasicOp)
1758 anObj.SetParameters(Parameters)
1759 self._autoPublish(anObj, theName, "plane")
1762 ## Create a plane, passing through the 2 vectors
1763 # with center in a start point of the first vector.
1764 # @param theVec1 Vector, defining center point and plane direction.
1765 # @param theVec2 Vector, defining the plane normal direction.
1766 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1767 # @param theName Object name; when specified, this parameter is used
1768 # for result publication in the study. Otherwise, if automatic
1769 # publication is switched on, default value is used for result name.
1771 # @return New GEOM.GEOM_Object, containing the created plane.
1773 # @ref tui_creation_plane "Example"
1774 @ManageTransactions("BasicOp")
1775 def MakePlane2Vec(self, theVec1, theVec2, theTrimSize, theName=None):
1777 Create a plane, passing through the 2 vectors
1778 with center in a start point of the first vector.
1781 theVec1 Vector, defining center point and plane direction.
1782 theVec2 Vector, defining the plane normal direction.
1783 theTrimSize Half size of a side of quadrangle face, representing the plane.
1784 theName Object name; when specified, this parameter is used
1785 for result publication in the study. Otherwise, if automatic
1786 publication is switched on, default value is used for result name.
1789 New GEOM.GEOM_Object, containing the created plane.
1791 # Example: see GEOM_TestAll.py
1792 theTrimSize, Parameters = ParseParameters(theTrimSize);
1793 anObj = self.BasicOp.MakePlane2Vec(theVec1, theVec2, theTrimSize)
1794 RaiseIfFailed("MakePlane2Vec", self.BasicOp)
1795 anObj.SetParameters(Parameters)
1796 self._autoPublish(anObj, theName, "plane")
1799 ## Create a plane, based on a Local coordinate system.
1800 # @param theLCS coordinate system, defining plane.
1801 # @param theTrimSize Half size of a side of quadrangle face, representing the plane.
1802 # @param theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1803 # @param theName Object name; when specified, this parameter is used
1804 # for result publication in the study. Otherwise, if automatic
1805 # publication is switched on, default value is used for result name.
1807 # @return New GEOM.GEOM_Object, containing the created plane.
1809 # @ref tui_creation_plane "Example"
1810 @ManageTransactions("BasicOp")
1811 def MakePlaneLCS(self, theLCS, theTrimSize, theOrientation, theName=None):
1813 Create a plane, based on a Local coordinate system.
1816 theLCS coordinate system, defining plane.
1817 theTrimSize Half size of a side of quadrangle face, representing the plane.
1818 theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
1819 theName Object name; when specified, this parameter is used
1820 for result publication in the study. Otherwise, if automatic
1821 publication is switched on, default value is used for result name.
1824 New GEOM.GEOM_Object, containing the created plane.
1826 # Example: see GEOM_TestAll.py
1827 theTrimSize, Parameters = ParseParameters(theTrimSize);
1828 anObj = self.BasicOp.MakePlaneLCS(theLCS, theTrimSize, theOrientation)
1829 RaiseIfFailed("MakePlaneLCS", self.BasicOp)
1830 anObj.SetParameters(Parameters)
1831 self._autoPublish(anObj, theName, "plane")
1834 ## Create a local coordinate system.
1835 # @param OX,OY,OZ Three coordinates of coordinate system origin.
1836 # @param XDX,XDY,XDZ Three components of OX direction
1837 # @param YDX,YDY,YDZ Three components of OY direction
1838 # @param theName Object name; when specified, this parameter is used
1839 # for result publication in the study. Otherwise, if automatic
1840 # publication is switched on, default value is used for result name.
1842 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1844 # @ref swig_MakeMarker "Example"
1845 @ManageTransactions("BasicOp")
1846 def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, theName=None):
1848 Create a local coordinate system.
1851 OX,OY,OZ Three coordinates of coordinate system origin.
1852 XDX,XDY,XDZ Three components of OX direction
1853 YDX,YDY,YDZ Three components of OY direction
1854 theName Object name; when specified, this parameter is used
1855 for result publication in the study. Otherwise, if automatic
1856 publication is switched on, default value is used for result name.
1859 New GEOM.GEOM_Object, containing the created coordinate system.
1861 # Example: see GEOM_TestAll.py
1862 OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, Parameters = ParseParameters(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ);
1863 anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ)
1864 RaiseIfFailed("MakeMarker", self.BasicOp)
1865 anObj.SetParameters(Parameters)
1866 self._autoPublish(anObj, theName, "lcs")
1869 ## Create a local coordinate system from shape.
1870 # @param theShape The initial shape to detect the coordinate system.
1871 # @param theName Object name; when specified, this parameter is used
1872 # for result publication in the study. Otherwise, if automatic
1873 # publication is switched on, default value is used for result name.
1875 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1877 # @ref tui_creation_lcs "Example"
1878 @ManageTransactions("BasicOp")
1879 def MakeMarkerFromShape(self, theShape, theName=None):
1881 Create a local coordinate system from shape.
1884 theShape The initial shape to detect the coordinate system.
1885 theName Object name; when specified, this parameter is used
1886 for result publication in the study. Otherwise, if automatic
1887 publication is switched on, default value is used for result name.
1890 New GEOM.GEOM_Object, containing the created coordinate system.
1892 anObj = self.BasicOp.MakeMarkerFromShape(theShape)
1893 RaiseIfFailed("MakeMarkerFromShape", self.BasicOp)
1894 self._autoPublish(anObj, theName, "lcs")
1897 ## Create a local coordinate system from point and two vectors.
1898 # @param theOrigin Point of coordinate system origin.
1899 # @param theXVec Vector of X direction
1900 # @param theYVec Vector of Y direction
1901 # @param theName Object name; when specified, this parameter is used
1902 # for result publication in the study. Otherwise, if automatic
1903 # publication is switched on, default value is used for result name.
1905 # @return New GEOM.GEOM_Object, containing the created coordinate system.
1907 # @ref tui_creation_lcs "Example"
1908 @ManageTransactions("BasicOp")
1909 def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec, theName=None):
1911 Create a local coordinate system from point and two vectors.
1914 theOrigin Point of coordinate system origin.
1915 theXVec Vector of X direction
1916 theYVec Vector of Y direction
1917 theName Object name; when specified, this parameter is used
1918 for result publication in the study. Otherwise, if automatic
1919 publication is switched on, default value is used for result name.
1922 New GEOM.GEOM_Object, containing the created coordinate system.
1925 anObj = self.BasicOp.MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec)
1926 RaiseIfFailed("MakeMarkerPntTwoVec", self.BasicOp)
1927 self._autoPublish(anObj, theName, "lcs")
1930 # end of l3_basic_go
1933 ## @addtogroup l4_curves
1936 ## Create an arc of circle, passing through three given points.
1937 # @param thePnt1 Start point of the arc.
1938 # @param thePnt2 Middle point of the arc.
1939 # @param thePnt3 End point of the arc.
1940 # @param theName Object name; when specified, this parameter is used
1941 # for result publication in the study. Otherwise, if automatic
1942 # publication is switched on, default value is used for result name.
1944 # @return New GEOM.GEOM_Object, containing the created arc.
1946 # @ref swig_MakeArc "Example"
1947 @ManageTransactions("CurvesOp")
1948 def MakeArc(self, thePnt1, thePnt2, thePnt3, theName=None):
1950 Create an arc of circle, passing through three given points.
1953 thePnt1 Start point of the arc.
1954 thePnt2 Middle point of the arc.
1955 thePnt3 End point of the arc.
1956 theName Object name; when specified, this parameter is used
1957 for result publication in the study. Otherwise, if automatic
1958 publication is switched on, default value is used for result name.
1961 New GEOM.GEOM_Object, containing the created arc.
1963 # Example: see GEOM_TestAll.py
1964 anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3)
1965 RaiseIfFailed("MakeArc", self.CurvesOp)
1966 self._autoPublish(anObj, theName, "arc")
1969 ## Create an arc of circle from a center and 2 points.
1970 # @param thePnt1 Center of the arc
1971 # @param thePnt2 Start point of the arc. (Gives also the radius of the arc)
1972 # @param thePnt3 End point of the arc (Gives also a direction)
1973 # @param theSense Orientation of the arc
1974 # @param theName Object name; when specified, this parameter is used
1975 # for result publication in the study. Otherwise, if automatic
1976 # publication is switched on, default value is used for result name.
1978 # @return New GEOM.GEOM_Object, containing the created arc.
1980 # @ref swig_MakeArc "Example"
1981 @ManageTransactions("CurvesOp")
1982 def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False, theName=None):
1984 Create an arc of circle from a center and 2 points.
1987 thePnt1 Center of the arc
1988 thePnt2 Start point of the arc. (Gives also the radius of the arc)
1989 thePnt3 End point of the arc (Gives also a direction)
1990 theSense Orientation of the arc
1991 theName Object name; when specified, this parameter is used
1992 for result publication in the study. Otherwise, if automatic
1993 publication is switched on, default value is used for result name.
1996 New GEOM.GEOM_Object, containing the created arc.
1998 # Example: see GEOM_TestAll.py
1999 anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense)
2000 RaiseIfFailed("MakeArcCenter", self.CurvesOp)
2001 self._autoPublish(anObj, theName, "arc")
2004 ## Create an arc of ellipse, of center and two points.
2005 # @param theCenter Center of the arc.
2006 # @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
2007 # @param thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
2008 # @param theName Object name; when specified, this parameter is used
2009 # for result publication in the study. Otherwise, if automatic
2010 # publication is switched on, default value is used for result name.
2012 # @return New GEOM.GEOM_Object, containing the created arc.
2014 # @ref swig_MakeArc "Example"
2015 @ManageTransactions("CurvesOp")
2016 def MakeArcOfEllipse(self, theCenter, thePnt1, thePnt2, theName=None):
2018 Create an arc of ellipse, of center and two points.
2021 theCenter Center of the arc.
2022 thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
2023 thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
2024 theName Object name; when specified, this parameter is used
2025 for result publication in the study. Otherwise, if automatic
2026 publication is switched on, default value is used for result name.
2029 New GEOM.GEOM_Object, containing the created arc.
2031 # Example: see GEOM_TestAll.py
2032 anObj = self.CurvesOp.MakeArcOfEllipse(theCenter, thePnt1, thePnt2)
2033 RaiseIfFailed("MakeArcOfEllipse", self.CurvesOp)
2034 self._autoPublish(anObj, theName, "arc")
2037 ## Create a circle with given center, normal vector and radius.
2038 # @param thePnt Circle center.
2039 # @param theVec Vector, normal to the plane of the circle.
2040 # @param theR Circle radius.
2041 # @param theName Object name; when specified, this parameter is used
2042 # for result publication in the study. Otherwise, if automatic
2043 # publication is switched on, default value is used for result name.
2045 # @return New GEOM.GEOM_Object, containing the created circle.
2047 # @ref tui_creation_circle "Example"
2048 @ManageTransactions("CurvesOp")
2049 def MakeCircle(self, thePnt, theVec, theR, theName=None):
2051 Create a circle with given center, normal vector and radius.
2054 thePnt Circle center.
2055 theVec Vector, normal to the plane of the circle.
2057 theName Object name; when specified, this parameter is used
2058 for result publication in the study. Otherwise, if automatic
2059 publication is switched on, default value is used for result name.
2062 New GEOM.GEOM_Object, containing the created circle.
2064 # Example: see GEOM_TestAll.py
2065 theR, Parameters = ParseParameters(theR)
2066 anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR)
2067 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
2068 anObj.SetParameters(Parameters)
2069 self._autoPublish(anObj, theName, "circle")
2072 ## Create a circle with given radius.
2073 # Center of the circle will be in the origin of global
2074 # coordinate system and normal vector will be codirected with Z axis
2075 # @param theR Circle radius.
2076 # @param theName Object name; when specified, this parameter is used
2077 # for result publication in the study. Otherwise, if automatic
2078 # publication is switched on, default value is used for result name.
2080 # @return New GEOM.GEOM_Object, containing the created circle.
2081 @ManageTransactions("CurvesOp")
2082 def MakeCircleR(self, theR, theName=None):
2084 Create a circle with given radius.
2085 Center of the circle will be in the origin of global
2086 coordinate system and normal vector will be codirected with Z axis
2090 theName Object name; when specified, this parameter is used
2091 for result publication in the study. Otherwise, if automatic
2092 publication is switched on, default value is used for result name.
2095 New GEOM.GEOM_Object, containing the created circle.
2097 anObj = self.CurvesOp.MakeCirclePntVecR(None, None, theR)
2098 RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
2099 self._autoPublish(anObj, theName, "circle")
2102 ## Create a circle, passing through three given points
2103 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
2104 # @param theName Object name; when specified, this parameter is used
2105 # for result publication in the study. Otherwise, if automatic
2106 # publication is switched on, default value is used for result name.
2108 # @return New GEOM.GEOM_Object, containing the created circle.
2110 # @ref tui_creation_circle "Example"
2111 @ManageTransactions("CurvesOp")
2112 def MakeCircleThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2114 Create a circle, passing through three given points
2117 thePnt1,thePnt2,thePnt3 Points, defining the circle.
2118 theName Object name; when specified, this parameter is used
2119 for result publication in the study. Otherwise, if automatic
2120 publication is switched on, default value is used for result name.
2123 New GEOM.GEOM_Object, containing the created circle.
2125 # Example: see GEOM_TestAll.py
2126 anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
2127 RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp)
2128 self._autoPublish(anObj, theName, "circle")
2131 ## Create a circle, with given point1 as center,
2132 # passing through the point2 as radius and laying in the plane,
2133 # defined by all three given points.
2134 # @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
2135 # @param theName Object name; when specified, this parameter is used
2136 # for result publication in the study. Otherwise, if automatic
2137 # publication is switched on, default value is used for result name.
2139 # @return New GEOM.GEOM_Object, containing the created circle.
2141 # @ref swig_MakeCircle "Example"
2142 @ManageTransactions("CurvesOp")
2143 def MakeCircleCenter2Pnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2145 Create a circle, with given point1 as center,
2146 passing through the point2 as radius and laying in the plane,
2147 defined by all three given points.
2150 thePnt1,thePnt2,thePnt3 Points, defining the circle.
2151 theName Object name; when specified, this parameter is used
2152 for result publication in the study. Otherwise, if automatic
2153 publication is switched on, default value is used for result name.
2156 New GEOM.GEOM_Object, containing the created circle.
2158 # Example: see GEOM_example6.py
2159 anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3)
2160 RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp)
2161 self._autoPublish(anObj, theName, "circle")
2164 ## Create an ellipse with given center, normal vector and radiuses.
2165 # @param thePnt Ellipse center.
2166 # @param theVec Vector, normal to the plane of the ellipse.
2167 # @param theRMajor Major ellipse radius.
2168 # @param theRMinor Minor ellipse radius.
2169 # @param theVecMaj Vector, direction of the ellipse's main axis.
2170 # @param theName Object name; when specified, this parameter is used
2171 # for result publication in the study. Otherwise, if automatic
2172 # publication is switched on, default value is used for result name.
2174 # @return New GEOM.GEOM_Object, containing the created ellipse.
2176 # @ref tui_creation_ellipse "Example"
2177 @ManageTransactions("CurvesOp")
2178 def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor, theVecMaj=None, theName=None):
2180 Create an ellipse with given center, normal vector and radiuses.
2183 thePnt Ellipse center.
2184 theVec Vector, normal to the plane of the ellipse.
2185 theRMajor Major ellipse radius.
2186 theRMinor Minor ellipse radius.
2187 theVecMaj Vector, direction of the ellipse's main axis.
2188 theName Object name; when specified, this parameter is used
2189 for result publication in the study. Otherwise, if automatic
2190 publication is switched on, default value is used for result name.
2193 New GEOM.GEOM_Object, containing the created ellipse.
2195 # Example: see GEOM_TestAll.py
2196 theRMajor, theRMinor, Parameters = ParseParameters(theRMajor, theRMinor)
2197 if theVecMaj is not None:
2198 anObj = self.CurvesOp.MakeEllipseVec(thePnt, theVec, theRMajor, theRMinor, theVecMaj)
2200 anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor)
2202 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2203 anObj.SetParameters(Parameters)
2204 self._autoPublish(anObj, theName, "ellipse")
2207 ## Create an ellipse with given radiuses.
2208 # Center of the ellipse will be in the origin of global
2209 # coordinate system and normal vector will be codirected with Z axis
2210 # @param theRMajor Major ellipse radius.
2211 # @param theRMinor Minor ellipse radius.
2212 # @param theName Object name; when specified, this parameter is used
2213 # for result publication in the study. Otherwise, if automatic
2214 # publication is switched on, default value is used for result name.
2216 # @return New GEOM.GEOM_Object, containing the created ellipse.
2217 @ManageTransactions("CurvesOp")
2218 def MakeEllipseRR(self, theRMajor, theRMinor, theName=None):
2220 Create an ellipse with given radiuses.
2221 Center of the ellipse will be in the origin of global
2222 coordinate system and normal vector will be codirected with Z axis
2225 theRMajor Major ellipse radius.
2226 theRMinor Minor ellipse radius.
2227 theName Object name; when specified, this parameter is used
2228 for result publication in the study. Otherwise, if automatic
2229 publication is switched on, default value is used for result name.
2232 New GEOM.GEOM_Object, containing the created ellipse.
2234 anObj = self.CurvesOp.MakeEllipse(None, None, theRMajor, theRMinor)
2235 RaiseIfFailed("MakeEllipse", self.CurvesOp)
2236 self._autoPublish(anObj, theName, "ellipse")
2239 ## Create a polyline on the set of points.
2240 # @param thePoints Sequence of points for the polyline.
2241 # @param theIsClosed If True, build a closed wire.
2242 # @param theName Object name; when specified, this parameter is used
2243 # for result publication in the study. Otherwise, if automatic
2244 # publication is switched on, default value is used for result name.
2246 # @return New GEOM.GEOM_Object, containing the created polyline.
2248 # @ref tui_creation_curve "Example"
2249 @ManageTransactions("CurvesOp")
2250 def MakePolyline(self, thePoints, theIsClosed=False, theName=None):
2252 Create a polyline on the set of points.
2255 thePoints Sequence of points for the polyline.
2256 theIsClosed If True, build a closed wire.
2257 theName Object name; when specified, this parameter is used
2258 for result publication in the study. Otherwise, if automatic
2259 publication is switched on, default value is used for result name.
2262 New GEOM.GEOM_Object, containing the created polyline.
2264 # Example: see GEOM_TestAll.py
2265 anObj = self.CurvesOp.MakePolyline(thePoints, theIsClosed)
2266 RaiseIfFailed("MakePolyline", self.CurvesOp)
2267 self._autoPublish(anObj, theName, "polyline")
2270 ## Create bezier curve on the set of points.
2271 # @param thePoints Sequence of points for the bezier curve.
2272 # @param theIsClosed If True, build a closed curve.
2273 # @param theName Object name; when specified, this parameter is used
2274 # for result publication in the study. Otherwise, if automatic
2275 # publication is switched on, default value is used for result name.
2277 # @return New GEOM.GEOM_Object, containing the created bezier curve.
2279 # @ref tui_creation_curve "Example"
2280 @ManageTransactions("CurvesOp")
2281 def MakeBezier(self, thePoints, theIsClosed=False, theName=None):
2283 Create bezier curve on the set of points.
2286 thePoints Sequence of points for the bezier curve.
2287 theIsClosed If True, build a closed curve.
2288 theName Object name; when specified, this parameter is used
2289 for result publication in the study. Otherwise, if automatic
2290 publication is switched on, default value is used for result name.
2293 New GEOM.GEOM_Object, containing the created bezier curve.
2295 # Example: see GEOM_TestAll.py
2296 anObj = self.CurvesOp.MakeSplineBezier(thePoints, theIsClosed)
2297 RaiseIfFailed("MakeSplineBezier", self.CurvesOp)
2298 self._autoPublish(anObj, theName, "bezier")
2301 ## Create B-Spline curve on the set of points.
2302 # @param thePoints Sequence of points for the B-Spline curve.
2303 # @param theIsClosed If True, build a closed curve.
2304 # @param theDoReordering If TRUE, the algo does not follow the order of
2305 # \a thePoints but searches for the closest vertex.
2306 # @param theName Object name; when specified, this parameter is used
2307 # for result publication in the study. Otherwise, if automatic
2308 # publication is switched on, default value is used for result name.
2310 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2312 # @ref tui_creation_curve "Example"
2313 @ManageTransactions("CurvesOp")
2314 def MakeInterpol(self, thePoints, theIsClosed=False, theDoReordering=False, theName=None):
2316 Create B-Spline curve on the set of points.
2319 thePoints Sequence of points for the B-Spline curve.
2320 theIsClosed If True, build a closed curve.
2321 theDoReordering If True, the algo does not follow the order of
2322 thePoints but searches for the closest vertex.
2323 theName Object name; when specified, this parameter is used
2324 for result publication in the study. Otherwise, if automatic
2325 publication is switched on, default value is used for result name.
2328 New GEOM.GEOM_Object, containing the created B-Spline curve.
2330 # Example: see GEOM_TestAll.py
2331 anObj = self.CurvesOp.MakeSplineInterpolation(thePoints, theIsClosed, theDoReordering)
2332 RaiseIfFailed("MakeInterpol", self.CurvesOp)
2333 self._autoPublish(anObj, theName, "bspline")
2336 ## Create B-Spline curve on the set of points.
2337 # @param thePoints Sequence of points for the B-Spline curve.
2338 # @param theFirstVec Vector object, defining the curve direction at its first point.
2339 # @param theLastVec Vector object, defining the curve direction at its last point.
2340 # @param theName Object name; when specified, this parameter is used
2341 # for result publication in the study. Otherwise, if automatic
2342 # publication is switched on, default value is used for result name.
2344 # @return New GEOM.GEOM_Object, containing the created B-Spline curve.
2346 # @ref tui_creation_curve "Example"
2347 @ManageTransactions("CurvesOp")
2348 def MakeInterpolWithTangents(self, thePoints, theFirstVec, theLastVec, theName=None):
2350 Create B-Spline curve on the set of points.
2353 thePoints Sequence of points for the B-Spline curve.
2354 theFirstVec Vector object, defining the curve direction at its first point.
2355 theLastVec Vector object, defining the curve direction at its last point.
2356 theName Object name; when specified, this parameter is used
2357 for result publication in the study. Otherwise, if automatic
2358 publication is switched on, default value is used for result name.
2361 New GEOM.GEOM_Object, containing the created B-Spline curve.
2363 # Example: see GEOM_TestAll.py
2364 anObj = self.CurvesOp.MakeSplineInterpolWithTangents(thePoints, theFirstVec, theLastVec)
2365 RaiseIfFailed("MakeInterpolWithTangents", self.CurvesOp)
2366 self._autoPublish(anObj, theName, "bspline")
2369 ## Creates a curve using the parametric definition of the basic points.
2370 # @param thexExpr parametric equation of the coordinates X.
2371 # @param theyExpr parametric equation of the coordinates Y.
2372 # @param thezExpr parametric equation of the coordinates Z.
2373 # @param theParamMin the minimal value of the parameter.
2374 # @param theParamMax the maximum value of the parameter.
2375 # @param theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2376 # @param theCurveType the type of the curve,
2377 # one of GEOM.Polyline, GEOM.Bezier, GEOM.Interpolation.
2378 # @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.
2379 # @param theName Object name; when specified, this parameter is used
2380 # for result publication in the study. Otherwise, if automatic
2381 # publication is switched on, default value is used for result name.
2383 # @return New GEOM.GEOM_Object, containing the created curve.
2385 # @ref tui_creation_curve "Example"
2386 @ManageTransactions("CurvesOp")
2387 def MakeCurveParametric(self, thexExpr, theyExpr, thezExpr,
2388 theParamMin, theParamMax, theParamStep, theCurveType, theNewMethod=False, theName=None ):
2390 Creates a curve using the parametric definition of the basic points.
2393 thexExpr parametric equation of the coordinates X.
2394 theyExpr parametric equation of the coordinates Y.
2395 thezExpr parametric equation of the coordinates Z.
2396 theParamMin the minimal value of the parameter.
2397 theParamMax the maximum value of the parameter.
2398 theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
2399 theCurveType the type of the curve,
2400 one of GEOM.Polyline, GEOM.Bezier, GEOM.Interpolation.
2401 theNewMethod flag for switching to the new method if the flag is set to false a deprecated
2402 method is used which can lead to a bug.
2403 theName Object name; when specified, this parameter is used
2404 for result publication in the study. Otherwise, if automatic
2405 publication is switched on, default value is used for result name.
2408 New GEOM.GEOM_Object, containing the created curve.
2410 theParamMin,theParamMax,theParamStep,Parameters = ParseParameters(theParamMin,theParamMax,theParamStep)
2412 anObj = self.CurvesOp.MakeCurveParametricNew(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2414 anObj = self.CurvesOp.MakeCurveParametric(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)
2415 RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp)
2416 anObj.SetParameters(Parameters)
2417 self._autoPublish(anObj, theName, "curve")
2420 ## Create an isoline curve on a face.
2421 # @param theFace the face for which an isoline is created.
2422 # @param IsUIsoline True for U-isoline creation; False for V-isoline
2424 # @param theParameter the U parameter for U-isoline or V parameter
2426 # @param theName Object name; when specified, this parameter is used
2427 # for result publication in the study. Otherwise, if automatic
2428 # publication is switched on, default value is used for result name.
2430 # @return New GEOM.GEOM_Object, containing the created isoline edge or
2431 # a compound of edges.
2433 # @ref tui_creation_curve "Example"
2434 @ManageTransactions("CurvesOp")
2435 def MakeIsoline(self, theFace, IsUIsoline, theParameter, theName=None):
2437 Create an isoline curve on a face.
2440 theFace the face for which an isoline is created.
2441 IsUIsoline True for U-isoline creation; False for V-isoline
2443 theParameter the U parameter for U-isoline or V parameter
2445 theName Object name; when specified, this parameter is used
2446 for result publication in the study. Otherwise, if automatic
2447 publication is switched on, default value is used for result name.
2450 New GEOM.GEOM_Object, containing the created isoline edge or a
2453 # Example: see GEOM_TestAll.py
2454 anObj = self.CurvesOp.MakeIsoline(theFace, IsUIsoline, theParameter)
2455 RaiseIfFailed("MakeIsoline", self.CurvesOp)
2457 self._autoPublish(anObj, theName, "U-Isoline")
2459 self._autoPublish(anObj, theName, "V-Isoline")
2465 ## @addtogroup l3_sketcher
2468 ## Create a sketcher (wire or face), following the textual description,
2469 # passed through <VAR>theCommand</VAR> argument. \n
2470 # Edges of the resulting wire or face will be arcs of circles and/or linear segments. \n
2471 # Format of the description string have to be the following:
2473 # "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2476 # - x1, y1 are coordinates of the first sketcher point (zero by default),
2478 # - "R angle" : Set the direction by angle
2479 # - "D dx dy" : Set the direction by DX & DY
2482 # - "TT x y" : Create segment by point at X & Y
2483 # - "T dx dy" : Create segment by point with DX & DY
2484 # - "L length" : Create segment by direction & Length
2485 # - "IX x" : Create segment by direction & Intersect. X
2486 # - "IY y" : Create segment by direction & Intersect. Y
2489 # - "C radius length" : Create arc by direction, radius and length(in degree)
2490 # - "AA x y": Create arc by point at X & Y
2491 # - "A dx dy" : Create arc by point with DX & DY
2492 # - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2493 # - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2494 # - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2495 # - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2498 # - "WW" : Close Wire (to finish)
2499 # - "WF" : Close Wire and build face (to finish)
2502 # - Flag1 (= reverse) is 0 or 2 ...
2503 # - if 0 the drawn arc is the one of lower angle (< Pi)
2504 # - if 2 the drawn arc ius the one of greater angle (> Pi)
2507 # - Flag2 (= control tolerance) is 0 or 1 ...
2508 # - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2509 # - if 1 the wire is built only if the end point is on the arc
2510 # with a tolerance of 10^-7 on the distance else the creation fails
2512 # @param theCommand String, defining the sketcher in local
2513 # coordinates of the working plane.
2514 # @param theWorkingPlane Nine double values, defining origin,
2515 # OZ and OX directions of the working plane.
2516 # @param theName Object name; when specified, this parameter is used
2517 # for result publication in the study. Otherwise, if automatic
2518 # publication is switched on, default value is used for result name.
2520 # @return New GEOM.GEOM_Object, containing the created wire.
2522 # @ref tui_sketcher_page "Example"
2523 @ManageTransactions("CurvesOp")
2524 def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0], theName=None):
2526 Create a sketcher (wire or face), following the textual description, passed
2527 through theCommand argument.
2528 Edges of the resulting wire or face will be arcs of circles and/or linear segments.
2529 Format of the description string have to be the following:
2530 "Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"
2532 - x1, y1 are coordinates of the first sketcher point (zero by default),
2534 - "R angle" : Set the direction by angle
2535 - "D dx dy" : Set the direction by DX & DY
2537 - "TT x y" : Create segment by point at X & Y
2538 - "T dx dy" : Create segment by point with DX & DY
2539 - "L length" : Create segment by direction & Length
2540 - "IX x" : Create segment by direction & Intersect. X
2541 - "IY y" : Create segment by direction & Intersect. Y
2543 - "C radius length" : Create arc by direction, radius and length(in degree)
2544 - "AA x y": Create arc by point at X & Y
2545 - "A dx dy" : Create arc by point with DX & DY
2546 - "UU x y radius flag1": Create arc by point at X & Y with given radiUs
2547 - "U dx dy radius flag1" : Create arc by point with DX & DY with given radiUs
2548 - "EE x y xc yc flag1 flag2": Create arc by point at X & Y with given cEnter coordinates
2549 - "E dx dy dxc dyc radius flag1 flag2" : Create arc by point with DX & DY with given cEnter coordinates
2551 - "WW" : Close Wire (to finish)
2552 - "WF" : Close Wire and build face (to finish)
2554 - Flag1 (= reverse) is 0 or 2 ...
2555 - if 0 the drawn arc is the one of lower angle (< Pi)
2556 - if 2 the drawn arc ius the one of greater angle (> Pi)
2558 - Flag2 (= control tolerance) is 0 or 1 ...
2559 - if 0 the specified end point can be at a distance of the arc greater than the tolerance (10^-7)
2560 - if 1 the wire is built only if the end point is on the arc
2561 with a tolerance of 10^-7 on the distance else the creation fails
2564 theCommand String, defining the sketcher in local
2565 coordinates of the working plane.
2566 theWorkingPlane Nine double values, defining origin,
2567 OZ and OX directions of the working plane.
2568 theName Object name; when specified, this parameter is used
2569 for result publication in the study. Otherwise, if automatic
2570 publication is switched on, default value is used for result name.
2573 New GEOM.GEOM_Object, containing the created wire.
2575 # Example: see GEOM_TestAll.py
2576 theCommand,Parameters = ParseSketcherCommand(theCommand)
2577 anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
2578 RaiseIfFailed("MakeSketcher", self.CurvesOp)
2579 anObj.SetParameters(Parameters)
2580 self._autoPublish(anObj, theName, "wire")
2583 ## Create a sketcher (wire or face), following the textual description,
2584 # passed through <VAR>theCommand</VAR> argument. \n
2585 # For format of the description string see MakeSketcher() method.\n
2586 # @param theCommand String, defining the sketcher in local
2587 # coordinates of the working plane.
2588 # @param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2589 # @param theName Object name; when specified, this parameter is used
2590 # for result publication in the study. Otherwise, if automatic
2591 # publication is switched on, default value is used for result name.
2593 # @return New GEOM.GEOM_Object, containing the created wire.
2595 # @ref tui_sketcher_page "Example"
2596 @ManageTransactions("CurvesOp")
2597 def MakeSketcherOnPlane(self, theCommand, theWorkingPlane, theName=None):
2599 Create a sketcher (wire or face), following the textual description,
2600 passed through theCommand argument.
2601 For format of the description string see geompy.MakeSketcher() method.
2604 theCommand String, defining the sketcher in local
2605 coordinates of the working plane.
2606 theWorkingPlane Planar Face or LCS(Marker) of the working plane.
2607 theName Object name; when specified, this parameter is used
2608 for result publication in the study. Otherwise, if automatic
2609 publication is switched on, default value is used for result name.
2612 New GEOM.GEOM_Object, containing the created wire.
2614 theCommand,Parameters = ParseSketcherCommand(theCommand)
2615 anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
2616 RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp)
2617 anObj.SetParameters(Parameters)
2618 self._autoPublish(anObj, theName, "wire")
2621 ## Obtain a 2D sketcher interface
2622 # @return An instance of @ref gsketcher.Sketcher2D "Sketcher2D" interface
2623 def Sketcher2D (self):
2625 Obtain a 2D sketcher interface.
2628 sk = geompy.Sketcher2D()
2630 sk.addSegmentRelative(15, 70)
2631 sk.addSegmentPerpY(50)
2632 sk.addArcRadiusRelative(25, 15, 14.5, 0)
2633 sk.addArcCenterAbsolute(1, 1, 50, 50, 0, 0)
2634 sk.addArcDirectionRadiusLength(20, 20, 101, 162.13)
2636 Sketch_1 = sk.wire(geomObj_1)
2638 sk = Sketcher2D (self)
2641 ## Create a sketcher wire, following the numerical description,
2642 # passed through <VAR>theCoordinates</VAR> argument. \n
2643 # @param theCoordinates double values, defining points to create a wire,
2645 # @param theName Object name; when specified, this parameter is used
2646 # for result publication in the study. Otherwise, if automatic
2647 # publication is switched on, default value is used for result name.
2649 # @return New GEOM.GEOM_Object, containing the created wire.
2651 # @ref tui_3dsketcher_page "Example"
2652 @ManageTransactions("CurvesOp")
2653 def Make3DSketcher(self, theCoordinates, theName=None):
2655 Create a sketcher wire, following the numerical description,
2656 passed through theCoordinates argument.
2659 theCoordinates double values, defining points to create a wire,
2661 theName Object name; when specified, this parameter is used
2662 for result publication in the study. Otherwise, if automatic
2663 publication is switched on, default value is used for result name.
2666 New GEOM_Object, containing the created wire.
2668 theCoordinates,Parameters = ParseParameters(theCoordinates)
2669 anObj = self.CurvesOp.Make3DSketcher(theCoordinates)
2670 RaiseIfFailed("Make3DSketcher", self.CurvesOp)
2671 anObj.SetParameters(Parameters)
2672 self._autoPublish(anObj, theName, "wire")
2675 ## Obtain a 3D sketcher interface
2676 # @return An instance of @ref gsketcher.Sketcher3D "Sketcher3D" interface
2678 # @ref tui_3dsketcher_page "Example"
2679 def Sketcher3D (self):
2681 Obtain a 3D sketcher interface.
2684 sk = geompy.Sketcher3D()
2685 sk.addPointsAbsolute(0,0,0, 70,0,0)
2686 sk.addPointsRelative(0, 0, 130)
2687 sk.addPointAnglesLength("OXY", 50, 0, 100)
2688 sk.addPointAnglesLength("OXZ", 30, 80, 130)
2690 a3D_Sketcher_1 = sk.wire()
2692 sk = Sketcher3D (self)
2695 ## Obtain a 2D polyline creation interface
2696 # @return An instance of @ref gsketcher.Polyline2D "Polyline2D" interface
2698 # @ref tui_3dsketcher_page "Example"
2699 def Polyline2D (self):
2701 Obtain a 2D polyline creation interface.
2704 pl = geompy.Polyline2D()
2705 pl.addSection("section 1", GEOM.Polyline, True)
2706 pl.addPoints(0, 0, 10, 0, 10, 10)
2707 pl.addSection("section 2", GEOM.Interpolation, False)
2708 pl.addPoints(20, 0, 30, 0, 30, 10)
2709 resultObj = pl.result(WorkingPlane)
2711 pl = Polyline2D (self)
2714 # end of l3_sketcher
2717 ## @addtogroup l3_3d_primitives
2720 ## Create a box by coordinates of two opposite vertices.
2722 # @param x1,y1,z1 double values, defining first point it.
2723 # @param x2,y2,z2 double values, defining first point it.
2724 # @param theName Object name; when specified, this parameter is used
2725 # for result publication in the study. Otherwise, if automatic
2726 # publication is switched on, default value is used for result name.
2728 # @return New GEOM.GEOM_Object, containing the created box.
2730 # @ref tui_creation_box "Example"
2731 def MakeBox(self, x1, y1, z1, x2, y2, z2, theName=None):
2733 Create a box by coordinates of two opposite vertices.
2736 x1,y1,z1 double values, defining first point.
2737 x2,y2,z2 double values, defining second point.
2738 theName Object name; when specified, this parameter is used
2739 for result publication in the study. Otherwise, if automatic
2740 publication is switched on, default value is used for result name.
2743 New GEOM.GEOM_Object, containing the created box.
2745 # Example: see GEOM_TestAll.py
2746 pnt1 = self.MakeVertex(x1,y1,z1)
2747 pnt2 = self.MakeVertex(x2,y2,z2)
2748 # note: auto-publishing is done in self.MakeBoxTwoPnt()
2749 return self.MakeBoxTwoPnt(pnt1, pnt2, theName)
2751 ## Create a box with specified dimensions along the coordinate axes
2752 # and with edges, parallel to the coordinate axes.
2753 # Center of the box will be at point (DX/2, DY/2, DZ/2).
2754 # @param theDX Length of Box edges, parallel to OX axis.
2755 # @param theDY Length of Box edges, parallel to OY axis.
2756 # @param theDZ Length of Box edges, parallel to OZ axis.
2757 # @param theName Object name; when specified, this parameter is used
2758 # for result publication in the study. Otherwise, if automatic
2759 # publication is switched on, default value is used for result name.
2761 # @return New GEOM.GEOM_Object, containing the created box.
2763 # @ref tui_creation_box "Example"
2764 @ManageTransactions("PrimOp")
2765 def MakeBoxDXDYDZ(self, theDX, theDY, theDZ, theName=None):
2767 Create a box with specified dimensions along the coordinate axes
2768 and with edges, parallel to the coordinate axes.
2769 Center of the box will be at point (DX/2, DY/2, DZ/2).
2772 theDX Length of Box edges, parallel to OX axis.
2773 theDY Length of Box edges, parallel to OY axis.
2774 theDZ Length of Box edges, parallel to OZ axis.
2775 theName Object name; when specified, this parameter is used
2776 for result publication in the study. Otherwise, if automatic
2777 publication is switched on, default value is used for result name.
2780 New GEOM.GEOM_Object, containing the created box.
2782 # Example: see GEOM_TestAll.py
2783 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
2784 anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
2785 RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp)
2786 anObj.SetParameters(Parameters)
2787 self._autoPublish(anObj, theName, "box")
2790 ## Create a box with two specified opposite vertices,
2791 # and with edges, parallel to the coordinate axes
2792 # @param thePnt1 First of two opposite vertices.
2793 # @param thePnt2 Second of two opposite vertices.
2794 # @param theName Object name; when specified, this parameter is used
2795 # for result publication in the study. Otherwise, if automatic
2796 # publication is switched on, default value is used for result name.
2798 # @return New GEOM.GEOM_Object, containing the created box.
2800 # @ref tui_creation_box "Example"
2801 @ManageTransactions("PrimOp")
2802 def MakeBoxTwoPnt(self, thePnt1, thePnt2, theName=None):
2804 Create a box with two specified opposite vertices,
2805 and with edges, parallel to the coordinate axes
2808 thePnt1 First of two opposite vertices.
2809 thePnt2 Second of two opposite vertices.
2810 theName Object name; when specified, this parameter is used
2811 for result publication in the study. Otherwise, if automatic
2812 publication is switched on, default value is used for result name.
2815 New GEOM.GEOM_Object, containing the created box.
2817 # Example: see GEOM_TestAll.py
2818 anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
2819 RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp)
2820 self._autoPublish(anObj, theName, "box")
2823 ## Create a face with specified dimensions with edges parallel to coordinate axes.
2824 # @param theH height of Face.
2825 # @param theW width of Face.
2826 # @param theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
2827 # @param theName Object name; when specified, this parameter is used
2828 # for result publication in the study. Otherwise, if automatic
2829 # publication is switched on, default value is used for result name.
2831 # @return New GEOM.GEOM_Object, containing the created face.
2833 # @ref tui_creation_face "Example"
2834 @ManageTransactions("PrimOp")
2835 def MakeFaceHW(self, theH, theW, theOrientation, theName=None):
2837 Create a face with specified dimensions with edges parallel to coordinate axes.
2840 theH height of Face.
2842 theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
2843 theName Object name; when specified, this parameter is used
2844 for result publication in the study. Otherwise, if automatic
2845 publication is switched on, default value is used for result name.
2848 New GEOM.GEOM_Object, containing the created face.
2850 # Example: see GEOM_TestAll.py
2851 theH,theW,Parameters = ParseParameters(theH, theW)
2852 anObj = self.PrimOp.MakeFaceHW(theH, theW, theOrientation)
2853 RaiseIfFailed("MakeFaceHW", self.PrimOp)
2854 anObj.SetParameters(Parameters)
2855 self._autoPublish(anObj, theName, "rectangle")
2858 ## Create a face from another plane and two sizes,
2859 # vertical size and horisontal size.
2860 # @param theObj Normale vector to the creating face or
2862 # @param theH Height (vertical size).
2863 # @param theW Width (horisontal size).
2864 # @param theName Object name; when specified, this parameter is used
2865 # for result publication in the study. Otherwise, if automatic
2866 # publication is switched on, default value is used for result name.
2868 # @return New GEOM.GEOM_Object, containing the created face.
2870 # @ref tui_creation_face "Example"
2871 @ManageTransactions("PrimOp")
2872 def MakeFaceObjHW(self, theObj, theH, theW, theName=None):
2874 Create a face from another plane and two sizes,
2875 vertical size and horisontal size.
2878 theObj Normale vector to the creating face or
2880 theH Height (vertical size).
2881 theW Width (horisontal size).
2882 theName Object name; when specified, this parameter is used
2883 for result publication in the study. Otherwise, if automatic
2884 publication is switched on, default value is used for result name.
2887 New GEOM_Object, containing the created face.
2889 # Example: see GEOM_TestAll.py
2890 theH,theW,Parameters = ParseParameters(theH, theW)
2891 anObj = self.PrimOp.MakeFaceObjHW(theObj, theH, theW)
2892 RaiseIfFailed("MakeFaceObjHW", self.PrimOp)
2893 anObj.SetParameters(Parameters)
2894 self._autoPublish(anObj, theName, "rectangle")
2897 ## Create a disk with given center, normal vector and radius.
2898 # @param thePnt Disk center.
2899 # @param theVec Vector, normal to the plane of the disk.
2900 # @param theR Disk radius.
2901 # @param theName Object name; when specified, this parameter is used
2902 # for result publication in the study. Otherwise, if automatic
2903 # publication is switched on, default value is used for result name.
2905 # @return New GEOM.GEOM_Object, containing the created disk.
2907 # @ref tui_creation_disk "Example"
2908 @ManageTransactions("PrimOp")
2909 def MakeDiskPntVecR(self, thePnt, theVec, theR, theName=None):
2911 Create a disk with given center, normal vector and radius.
2915 theVec Vector, normal to the plane of the disk.
2917 theName Object name; when specified, this parameter is used
2918 for result publication in the study. Otherwise, if automatic
2919 publication is switched on, default value is used for result name.
2922 New GEOM.GEOM_Object, containing the created disk.
2924 # Example: see GEOM_TestAll.py
2925 theR,Parameters = ParseParameters(theR)
2926 anObj = self.PrimOp.MakeDiskPntVecR(thePnt, theVec, theR)
2927 RaiseIfFailed("MakeDiskPntVecR", self.PrimOp)
2928 anObj.SetParameters(Parameters)
2929 self._autoPublish(anObj, theName, "disk")
2932 ## Create a disk, passing through three given points
2933 # @param thePnt1,thePnt2,thePnt3 Points, defining the disk.
2934 # @param theName Object name; when specified, this parameter is used
2935 # for result publication in the study. Otherwise, if automatic
2936 # publication is switched on, default value is used for result name.
2938 # @return New GEOM.GEOM_Object, containing the created disk.
2940 # @ref tui_creation_disk "Example"
2941 @ManageTransactions("PrimOp")
2942 def MakeDiskThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
2944 Create a disk, passing through three given points
2947 thePnt1,thePnt2,thePnt3 Points, defining the disk.
2948 theName Object name; when specified, this parameter is used
2949 for result publication in the study. Otherwise, if automatic
2950 publication is switched on, default value is used for result name.
2953 New GEOM.GEOM_Object, containing the created disk.
2955 # Example: see GEOM_TestAll.py
2956 anObj = self.PrimOp.MakeDiskThreePnt(thePnt1, thePnt2, thePnt3)
2957 RaiseIfFailed("MakeDiskThreePnt", self.PrimOp)
2958 self._autoPublish(anObj, theName, "disk")
2961 ## Create a disk with specified dimensions along OX-OY coordinate axes.
2962 # @param theR Radius of Face.
2963 # @param theOrientation set the orientation belong axis OXY or OYZ or OZX
2964 # @param theName Object name; when specified, this parameter is used
2965 # for result publication in the study. Otherwise, if automatic
2966 # publication is switched on, default value is used for result name.
2968 # @return New GEOM.GEOM_Object, containing the created disk.
2970 # @ref tui_creation_face "Example"
2971 @ManageTransactions("PrimOp")
2972 def MakeDiskR(self, theR, theOrientation, theName=None):
2974 Create a disk with specified dimensions along OX-OY coordinate axes.
2977 theR Radius of Face.
2978 theOrientation set the orientation belong axis OXY or OYZ or OZX
2979 theName Object name; when specified, this parameter is used
2980 for result publication in the study. Otherwise, if automatic
2981 publication is switched on, default value is used for result name.
2984 New GEOM.GEOM_Object, containing the created disk.
2987 Disk3 = geompy.MakeDiskR(100., 1)
2989 # Example: see GEOM_TestAll.py
2990 theR,Parameters = ParseParameters(theR)
2991 anObj = self.PrimOp.MakeDiskR(theR, theOrientation)
2992 RaiseIfFailed("MakeDiskR", self.PrimOp)
2993 anObj.SetParameters(Parameters)
2994 self._autoPublish(anObj, theName, "disk")
2997 ## Create a cylinder with given base point, axis, radius and height.
2998 # @param thePnt Central point of cylinder base.
2999 # @param theAxis Cylinder axis.
3000 # @param theR Cylinder radius.
3001 # @param theH Cylinder height.
3002 # @param theName Object name; when specified, this parameter is used
3003 # for result publication in the study. Otherwise, if automatic
3004 # publication is switched on, default value is used for result name.
3006 # @return New GEOM.GEOM_Object, containing the created cylinder.
3008 # @ref tui_creation_cylinder "Example"
3009 @ManageTransactions("PrimOp")
3010 def MakeCylinder(self, thePnt, theAxis, theR, theH, theName=None):
3012 Create a cylinder with given base point, axis, radius and height.
3015 thePnt Central point of cylinder base.
3016 theAxis Cylinder axis.
3017 theR Cylinder radius.
3018 theH Cylinder height.
3019 theName Object name; when specified, this parameter is used
3020 for result publication in the study. Otherwise, if automatic
3021 publication is switched on, default value is used for result name.
3024 New GEOM.GEOM_Object, containing the created cylinder.
3026 # Example: see GEOM_TestAll.py
3027 theR,theH,Parameters = ParseParameters(theR, theH)
3028 anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
3029 RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp)
3030 anObj.SetParameters(Parameters)
3031 self._autoPublish(anObj, theName, "cylinder")
3034 ## Create a portion of cylinder with given base point, axis, radius, height and angle.
3035 # @param thePnt Central point of cylinder base.
3036 # @param theAxis Cylinder axis.
3037 # @param theR Cylinder radius.
3038 # @param theH Cylinder height.
3039 # @param theA Cylinder angle in radians.
3040 # @param theName Object name; when specified, this parameter is used
3041 # for result publication in the study. Otherwise, if automatic
3042 # publication is switched on, default value is used for result name.
3044 # @return New GEOM.GEOM_Object, containing the created cylinder.
3046 # @ref tui_creation_cylinder "Example"
3047 @ManageTransactions("PrimOp")
3048 def MakeCylinderA(self, thePnt, theAxis, theR, theH, theA, theName=None):
3050 Create a portion of cylinder with given base point, axis, radius, height and angle.
3053 thePnt Central point of cylinder base.
3054 theAxis Cylinder axis.
3055 theR Cylinder radius.
3056 theH Cylinder height.
3057 theA Cylinder angle in radians.
3058 theName Object name; when specified, this parameter is used
3059 for result publication in the study. Otherwise, if automatic
3060 publication is switched on, default value is used for result name.
3063 New GEOM.GEOM_Object, containing the created cylinder.
3065 # Example: see GEOM_TestAll.py
3067 if isinstance(theA,str):
3069 theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
3071 theA = theA*math.pi/180.
3072 if theA<=0. or theA>=2*math.pi:
3073 raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
3074 anObj = self.PrimOp.MakeCylinderPntVecRHA(thePnt, theAxis, theR, theH, theA)
3075 RaiseIfFailed("MakeCylinderPntVecRHA", self.PrimOp)
3076 anObj.SetParameters(Parameters)
3077 self._autoPublish(anObj, theName, "cylinder")
3080 ## Create a cylinder with given radius and height at
3081 # the origin of coordinate system. Axis of the cylinder
3082 # will be collinear to the OZ axis of the coordinate system.
3083 # @param theR Cylinder radius.
3084 # @param theH Cylinder height.
3085 # @param theName Object name; when specified, this parameter is used
3086 # for result publication in the study. Otherwise, if automatic
3087 # publication is switched on, default value is used for result name.
3089 # @return New GEOM.GEOM_Object, containing the created cylinder.
3091 # @ref tui_creation_cylinder "Example"
3092 @ManageTransactions("PrimOp")
3093 def MakeCylinderRH(self, theR, theH, theName=None):
3095 Create a cylinder with given radius and height at
3096 the origin of coordinate system. Axis of the cylinder
3097 will be collinear to the OZ axis of the coordinate system.
3100 theR Cylinder radius.
3101 theH Cylinder height.
3102 theName Object name; when specified, this parameter is used
3103 for result publication in the study. Otherwise, if automatic
3104 publication is switched on, default value is used for result name.
3107 New GEOM.GEOM_Object, containing the created cylinder.
3109 # Example: see GEOM_TestAll.py
3110 theR,theH,Parameters = ParseParameters(theR, theH)
3111 anObj = self.PrimOp.MakeCylinderRH(theR, theH)
3112 RaiseIfFailed("MakeCylinderRH", self.PrimOp)
3113 anObj.SetParameters(Parameters)
3114 self._autoPublish(anObj, theName, "cylinder")
3117 ## Create a portion of cylinder with given radius, height and angle at
3118 # the origin of coordinate system. Axis of the cylinder
3119 # will be collinear to the OZ axis of the coordinate system.
3120 # @param theR Cylinder radius.
3121 # @param theH Cylinder height.
3122 # @param theA Cylinder angle in radians.
3123 # @param theName Object name; when specified, this parameter is used
3124 # for result publication in the study. Otherwise, if automatic
3125 # publication is switched on, default value is used for result name.
3127 # @return New GEOM.GEOM_Object, containing the created cylinder.
3129 # @ref tui_creation_cylinder "Example"
3130 @ManageTransactions("PrimOp")
3131 def MakeCylinderRHA(self, theR, theH, theA, theName=None):
3133 Create a portion of cylinder with given radius, height and angle at
3134 the origin of coordinate system. Axis of the cylinder
3135 will be collinear to the OZ axis of the coordinate system.
3138 theR Cylinder radius.
3139 theH Cylinder height.
3140 theA Cylinder angle in radians.
3141 theName Object name; when specified, this parameter is used
3142 for result publication in the study. Otherwise, if automatic
3143 publication is switched on, default value is used for result name.
3146 New GEOM.GEOM_Object, containing the created cylinder.
3148 # Example: see GEOM_TestAll.py
3150 if isinstance(theA,str):
3152 theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
3154 theA = theA*math.pi/180.
3155 if theA<=0. or theA>=2*math.pi:
3156 raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
3157 anObj = self.PrimOp.MakeCylinderRHA(theR, theH, theA)
3158 RaiseIfFailed("MakeCylinderRHA", self.PrimOp)
3159 anObj.SetParameters(Parameters)
3160 self._autoPublish(anObj, theName, "cylinder")
3163 ## Create a sphere with given center and radius.
3164 # @param thePnt Sphere center.
3165 # @param theR Sphere radius.
3166 # @param theName Object name; when specified, this parameter is used
3167 # for result publication in the study. Otherwise, if automatic
3168 # publication is switched on, default value is used for result name.
3170 # @return New GEOM.GEOM_Object, containing the created sphere.
3172 # @ref tui_creation_sphere "Example"
3173 @ManageTransactions("PrimOp")
3174 def MakeSpherePntR(self, thePnt, theR, theName=None):
3176 Create a sphere with given center and radius.
3179 thePnt Sphere center.
3181 theName Object name; when specified, this parameter is used
3182 for result publication in the study. Otherwise, if automatic
3183 publication is switched on, default value is used for result name.
3186 New GEOM.GEOM_Object, containing the created sphere.
3188 # Example: see GEOM_TestAll.py
3189 theR,Parameters = ParseParameters(theR)
3190 anObj = self.PrimOp.MakeSpherePntR(thePnt, theR)
3191 RaiseIfFailed("MakeSpherePntR", self.PrimOp)
3192 anObj.SetParameters(Parameters)
3193 self._autoPublish(anObj, theName, "sphere")
3196 ## Create a sphere with given center and radius.
3197 # @param x,y,z Coordinates of sphere center.
3198 # @param theR Sphere radius.
3199 # @param theName Object name; when specified, this parameter is used
3200 # for result publication in the study. Otherwise, if automatic
3201 # publication is switched on, default value is used for result name.
3203 # @return New GEOM.GEOM_Object, containing the created sphere.
3205 # @ref tui_creation_sphere "Example"
3206 def MakeSphere(self, x, y, z, theR, theName=None):
3208 Create a sphere with given center and radius.
3211 x,y,z Coordinates of sphere center.
3213 theName Object name; when specified, this parameter is used
3214 for result publication in the study. Otherwise, if automatic
3215 publication is switched on, default value is used for result name.
3218 New GEOM.GEOM_Object, containing the created sphere.
3220 # Example: see GEOM_TestAll.py
3221 point = self.MakeVertex(x, y, z)
3222 # note: auto-publishing is done in self.MakeSpherePntR()
3223 anObj = self.MakeSpherePntR(point, theR, theName)
3226 ## Create a sphere with given radius at the origin of coordinate system.
3227 # @param theR Sphere radius.
3228 # @param theName Object name; when specified, this parameter is used
3229 # for result publication in the study. Otherwise, if automatic
3230 # publication is switched on, default value is used for result name.
3232 # @return New GEOM.GEOM_Object, containing the created sphere.
3234 # @ref tui_creation_sphere "Example"
3235 @ManageTransactions("PrimOp")
3236 def MakeSphereR(self, theR, theName=None):
3238 Create a sphere with given radius at the origin of coordinate system.
3242 theName Object name; when specified, this parameter is used
3243 for result publication in the study. Otherwise, if automatic
3244 publication is switched on, default value is used for result name.
3247 New GEOM.GEOM_Object, containing the created sphere.
3249 # Example: see GEOM_TestAll.py
3250 theR,Parameters = ParseParameters(theR)
3251 anObj = self.PrimOp.MakeSphereR(theR)
3252 RaiseIfFailed("MakeSphereR", self.PrimOp)
3253 anObj.SetParameters(Parameters)
3254 self._autoPublish(anObj, theName, "sphere")
3257 ## Create a cone with given base point, axis, height and radiuses.
3258 # @param thePnt Central point of the first cone base.
3259 # @param theAxis Cone axis.
3260 # @param theR1 Radius of the first cone base.
3261 # @param theR2 Radius of the second cone base.
3262 # \note If both radiuses are non-zero, the cone will be truncated.
3263 # \note If the radiuses are equal, a cylinder will be created instead.
3264 # @param theH Cone height.
3265 # @param theName Object name; when specified, this parameter is used
3266 # for result publication in the study. Otherwise, if automatic
3267 # publication is switched on, default value is used for result name.
3269 # @return New GEOM.GEOM_Object, containing the created cone.
3271 # @ref tui_creation_cone "Example"
3272 @ManageTransactions("PrimOp")
3273 def MakeCone(self, thePnt, theAxis, theR1, theR2, theH, theName=None):
3275 Create a cone with given base point, axis, height and radiuses.
3278 thePnt Central point of the first cone base.
3280 theR1 Radius of the first cone base.
3281 theR2 Radius of the second cone base.
3283 theName Object name; when specified, this parameter is used
3284 for result publication in the study. Otherwise, if automatic
3285 publication is switched on, default value is used for result name.
3288 If both radiuses are non-zero, the cone will be truncated.
3289 If the radiuses are equal, a cylinder will be created instead.
3292 New GEOM.GEOM_Object, containing the created cone.
3294 # Example: see GEOM_TestAll.py
3295 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
3296 anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
3297 RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp)
3298 anObj.SetParameters(Parameters)
3299 self._autoPublish(anObj, theName, "cone")
3302 ## Create a cone with given height and radiuses at
3303 # the origin of coordinate system. Axis of the cone will
3304 # be collinear to the OZ axis of the coordinate system.
3305 # @param theR1 Radius of the first cone base.
3306 # @param theR2 Radius of the second cone base.
3307 # \note If both radiuses are non-zero, the cone will be truncated.
3308 # \note If the radiuses are equal, a cylinder will be created instead.
3309 # @param theH Cone height.
3310 # @param theName Object name; when specified, this parameter is used
3311 # for result publication in the study. Otherwise, if automatic
3312 # publication is switched on, default value is used for result name.
3314 # @return New GEOM.GEOM_Object, containing the created cone.
3316 # @ref tui_creation_cone "Example"
3317 @ManageTransactions("PrimOp")
3318 def MakeConeR1R2H(self, theR1, theR2, theH, theName=None):
3320 Create a cone with given height and radiuses at
3321 the origin of coordinate system. Axis of the cone will
3322 be collinear to the OZ axis of the coordinate system.
3325 theR1 Radius of the first cone base.
3326 theR2 Radius of the second cone base.
3328 theName Object name; when specified, this parameter is used
3329 for result publication in the study. Otherwise, if automatic
3330 publication is switched on, default value is used for result name.
3333 If both radiuses are non-zero, the cone will be truncated.
3334 If the radiuses are equal, a cylinder will be created instead.
3337 New GEOM.GEOM_Object, containing the created cone.
3339 # Example: see GEOM_TestAll.py
3340 theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH)
3341 anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH)
3342 RaiseIfFailed("MakeConeR1R2H", self.PrimOp)
3343 anObj.SetParameters(Parameters)
3344 self._autoPublish(anObj, theName, "cone")
3347 ## Create a torus with given center, normal vector and radiuses.
3348 # @param thePnt Torus central point.
3349 # @param theVec Torus axis of symmetry.
3350 # @param theRMajor Torus major radius.
3351 # @param theRMinor Torus minor radius.
3352 # @param theName Object name; when specified, this parameter is used
3353 # for result publication in the study. Otherwise, if automatic
3354 # publication is switched on, default value is used for result name.
3356 # @return New GEOM.GEOM_Object, containing the created torus.
3358 # @ref tui_creation_torus "Example"
3359 @ManageTransactions("PrimOp")
3360 def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor, theName=None):
3362 Create a torus with given center, normal vector and radiuses.
3365 thePnt Torus central point.
3366 theVec Torus axis of symmetry.
3367 theRMajor Torus major radius.
3368 theRMinor Torus minor radius.
3369 theName Object name; when specified, this parameter is used
3370 for result publication in the study. Otherwise, if automatic
3371 publication is switched on, default value is used for result name.
3374 New GEOM.GEOM_Object, containing the created torus.
3376 # Example: see GEOM_TestAll.py
3377 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3378 anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
3379 RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp)
3380 anObj.SetParameters(Parameters)
3381 self._autoPublish(anObj, theName, "torus")
3384 ## Create a torus with given radiuses at the origin of coordinate system.
3385 # @param theRMajor Torus major radius.
3386 # @param theRMinor Torus minor radius.
3387 # @param theName Object name; when specified, this parameter is used
3388 # for result publication in the study. Otherwise, if automatic
3389 # publication is switched on, default value is used for result name.
3391 # @return New GEOM.GEOM_Object, containing the created torus.
3393 # @ref tui_creation_torus "Example"
3394 @ManageTransactions("PrimOp")
3395 def MakeTorusRR(self, theRMajor, theRMinor, theName=None):
3397 Create a torus with given radiuses at the origin of coordinate system.
3400 theRMajor Torus major radius.
3401 theRMinor Torus minor radius.
3402 theName Object name; when specified, this parameter is used
3403 for result publication in the study. Otherwise, if automatic
3404 publication is switched on, default value is used for result name.
3407 New GEOM.GEOM_Object, containing the created torus.
3409 # Example: see GEOM_TestAll.py
3410 theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor)
3411 anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor)
3412 RaiseIfFailed("MakeTorusRR", self.PrimOp)
3413 anObj.SetParameters(Parameters)
3414 self._autoPublish(anObj, theName, "torus")
3417 # end of l3_3d_primitives
3420 ## @addtogroup l3_complex
3423 ## Create a shape by extrusion of the base shape along a vector, defined by two points.
3424 # @param theBase Base shape to be extruded.
3425 # @param thePoint1 First end of extrusion vector.
3426 # @param thePoint2 Second end of extrusion vector.
3427 # @param theScaleFactor Use it to make prism with scaled second base.
3428 # Nagative value means not scaled second base.
3429 # @param theName Object name; when specified, this parameter is used
3430 # for result publication in the study. Otherwise, if automatic
3431 # publication is switched on, default value is used for result name.
3433 # @return New GEOM.GEOM_Object, containing the created prism.
3435 # @ref tui_creation_prism "Example"
3436 @ManageTransactions("PrimOp")
3437 def MakePrism(self, theBase, thePoint1, thePoint2, theScaleFactor = -1.0, theName=None):
3439 Create a shape by extrusion of the base shape along a vector, defined by two points.
3442 theBase Base shape to be extruded.
3443 thePoint1 First end of extrusion vector.
3444 thePoint2 Second end of extrusion vector.
3445 theScaleFactor Use it to make prism with scaled second base.
3446 Nagative value means not scaled second base.
3447 theName Object name; when specified, this parameter is used
3448 for result publication in the study. Otherwise, if automatic
3449 publication is switched on, default value is used for result name.
3452 New GEOM.GEOM_Object, containing the created prism.
3454 # Example: see GEOM_TestAll.py
3457 if theScaleFactor > 0:
3458 theScaleFactor,Parameters = ParseParameters(theScaleFactor)
3459 anObj = self.PrimOp.MakePrismTwoPntWithScaling(theBase, thePoint1, thePoint2, theScaleFactor)
3461 anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2)
3462 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3463 anObj.SetParameters(Parameters)
3464 self._autoPublish(anObj, theName, "prism")
3467 ## Create a shape by extrusion of the base shape along a
3468 # vector, defined by two points, in 2 Ways (forward/backward).
3469 # @param theBase Base shape to be extruded.
3470 # @param thePoint1 First end of extrusion vector.
3471 # @param thePoint2 Second end of extrusion vector.
3472 # @param theName Object name; when specified, this parameter is used
3473 # for result publication in the study. Otherwise, if automatic
3474 # publication is switched on, default value is used for result name.
3476 # @return New GEOM.GEOM_Object, containing the created prism.
3478 # @ref tui_creation_prism "Example"
3479 @ManageTransactions("PrimOp")
3480 def MakePrism2Ways(self, theBase, thePoint1, thePoint2, theName=None):
3482 Create a shape by extrusion of the base shape along a
3483 vector, defined by two points, in 2 Ways (forward/backward).
3486 theBase Base shape to be extruded.
3487 thePoint1 First end of extrusion vector.
3488 thePoint2 Second end of extrusion vector.
3489 theName Object name; when specified, this parameter is used
3490 for result publication in the study. Otherwise, if automatic
3491 publication is switched on, default value is used for result name.
3494 New GEOM.GEOM_Object, containing the created prism.
3496 # Example: see GEOM_TestAll.py
3497 anObj = self.PrimOp.MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2)
3498 RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
3499 self._autoPublish(anObj, theName, "prism")
3502 ## Create a shape by extrusion of the base shape along the vector,
3503 # i.e. all the space, transfixed by the base shape during its translation
3504 # along the vector on the given distance.
3505 # @param theBase Base shape to be extruded.
3506 # @param theVec Direction of extrusion.
3507 # @param theH Prism dimension along theVec.
3508 # @param theScaleFactor Use it to make prism with scaled second base.
3509 # Negative value means not scaled second base.
3510 # @param theName Object name; when specified, this parameter is used
3511 # for result publication in the study. Otherwise, if automatic
3512 # publication is switched on, default value is used for result name.
3514 # @return New GEOM.GEOM_Object, containing the created prism.
3516 # @ref tui_creation_prism "Example"
3517 @ManageTransactions("PrimOp")
3518 def MakePrismVecH(self, theBase, theVec, theH, theScaleFactor = -1.0, theName=None):
3520 Create a shape by extrusion of the base shape along the vector,
3521 i.e. all the space, transfixed by the base shape during its translation
3522 along the vector on the given distance.
3525 theBase Base shape to be extruded.
3526 theVec Direction of extrusion.
3527 theH Prism dimension along theVec.
3528 theScaleFactor Use it to make prism with scaled second base.
3529 Negative value means not scaled second base.
3530 theName Object name; when specified, this parameter is used
3531 for result publication in the study. Otherwise, if automatic
3532 publication is switched on, default value is used for result name.
3535 New GEOM.GEOM_Object, containing the created prism.
3537 # Example: see GEOM_TestAll.py
3540 if theScaleFactor > 0:
3541 theH,theScaleFactor,Parameters = ParseParameters(theH,theScaleFactor)
3542 anObj = self.PrimOp.MakePrismVecHWithScaling(theBase, theVec, theH, theScaleFactor)
3544 theH,Parameters = ParseParameters(theH)
3545 anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
3546 RaiseIfFailed("MakePrismVecH", self.PrimOp)
3547 anObj.SetParameters(Parameters)
3548 self._autoPublish(anObj, theName, "prism")
3551 ## Create a shape by extrusion of the base shape along the vector,
3552 # i.e. all the space, transfixed by the base shape during its translation
3553 # along the vector on the given distance in 2 Ways (forward/backward).
3554 # @param theBase Base shape to be extruded.
3555 # @param theVec Direction of extrusion.
3556 # @param theH Prism dimension along theVec in forward direction.
3557 # @param theName Object name; when specified, this parameter is used
3558 # for result publication in the study. Otherwise, if automatic
3559 # publication is switched on, default value is used for result name.
3561 # @return New GEOM.GEOM_Object, containing the created prism.
3563 # @ref tui_creation_prism "Example"
3564 @ManageTransactions("PrimOp")
3565 def MakePrismVecH2Ways(self, theBase, theVec, theH, theName=None):
3567 Create a shape by extrusion of the base shape along the vector,
3568 i.e. all the space, transfixed by the base shape during its translation
3569 along the vector on the given distance in 2 Ways (forward/backward).
3572 theBase Base shape to be extruded.
3573 theVec Direction of extrusion.
3574 theH Prism dimension along theVec in forward direction.
3575 theName Object name; when specified, this parameter is used
3576 for result publication in the study. Otherwise, if automatic
3577 publication is switched on, default value is used for result name.
3580 New GEOM.GEOM_Object, containing the created prism.
3582 # Example: see GEOM_TestAll.py
3583 theH,Parameters = ParseParameters(theH)
3584 anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH)
3585 RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp)
3586 anObj.SetParameters(Parameters)
3587 self._autoPublish(anObj, theName, "prism")
3590 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3591 # @param theBase Base shape to be extruded.
3592 # @param theDX, theDY, theDZ Directions of extrusion.
3593 # @param theScaleFactor Use it to make prism with scaled second base.
3594 # Nagative value means not scaled second base.
3595 # @param theName Object name; when specified, this parameter is used
3596 # for result publication in the study. Otherwise, if automatic
3597 # publication is switched on, default value is used for result name.
3599 # @return New GEOM.GEOM_Object, containing the created prism.
3601 # @ref tui_creation_prism "Example"
3602 @ManageTransactions("PrimOp")
3603 def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ, theScaleFactor = -1.0, theName=None):
3605 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3608 theBase Base shape to be extruded.
3609 theDX, theDY, theDZ Directions of extrusion.
3610 theScaleFactor Use it to make prism with scaled second base.
3611 Nagative value means not scaled second base.
3612 theName Object name; when specified, this parameter is used
3613 for result publication in the study. Otherwise, if automatic
3614 publication is switched on, default value is used for result name.
3617 New GEOM.GEOM_Object, containing the created prism.
3619 # Example: see GEOM_TestAll.py
3622 if theScaleFactor > 0:
3623 theDX,theDY,theDZ,theScaleFactor,Parameters = ParseParameters(theDX, theDY, theDZ, theScaleFactor)
3624 anObj = self.PrimOp.MakePrismDXDYDZWithScaling(theBase, theDX, theDY, theDZ, theScaleFactor)
3626 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3627 anObj = self.PrimOp.MakePrismDXDYDZ(theBase, theDX, theDY, theDZ)
3628 RaiseIfFailed("MakePrismDXDYDZ", self.PrimOp)
3629 anObj.SetParameters(Parameters)
3630 self._autoPublish(anObj, theName, "prism")
3633 ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
3634 # i.e. all the space, transfixed by the base shape during its translation
3635 # along the vector on the given distance in 2 Ways (forward/backward).
3636 # @param theBase Base shape to be extruded.
3637 # @param theDX, theDY, theDZ Directions of extrusion.
3638 # @param theName Object name; when specified, this parameter is used
3639 # for result publication in the study. Otherwise, if automatic
3640 # publication is switched on, default value is used for result name.
3642 # @return New GEOM.GEOM_Object, containing the created prism.
3644 # @ref tui_creation_prism "Example"
3645 @ManageTransactions("PrimOp")
3646 def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ, theName=None):
3648 Create a shape by extrusion of the base shape along the dx, dy, dz direction
3649 i.e. all the space, transfixed by the base shape during its translation
3650 along the vector on the given distance in 2 Ways (forward/backward).
3653 theBase Base shape to be extruded.
3654 theDX, theDY, theDZ Directions of extrusion.
3655 theName Object name; when specified, this parameter is used
3656 for result publication in the study. Otherwise, if automatic
3657 publication is switched on, default value is used for result name.
3660 New GEOM.GEOM_Object, containing the created prism.
3662 # Example: see GEOM_TestAll.py
3663 theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ)
3664 anObj = self.PrimOp.MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ)
3665 RaiseIfFailed("MakePrismDXDYDZ2Ways", self.PrimOp)
3666 anObj.SetParameters(Parameters)
3667 self._autoPublish(anObj, theName, "prism")
3670 ## Create a shape by revolution of the base shape around the axis
3671 # on the given angle, i.e. all the space, transfixed by the base
3672 # shape during its rotation around the axis on the given angle.
3673 # @param theBase Base shape to be rotated.
3674 # @param theAxis Rotation axis.
3675 # @param theAngle Rotation angle in radians.
3676 # @param theName Object name; when specified, this parameter is used
3677 # for result publication in the study. Otherwise, if automatic
3678 # publication is switched on, default value is used for result name.
3680 # @return New GEOM.GEOM_Object, containing the created revolution.
3682 # @ref tui_creation_revolution "Example"
3683 @ManageTransactions("PrimOp")
3684 def MakeRevolution(self, theBase, theAxis, theAngle, theName=None):
3686 Create a shape by revolution of the base shape around the axis
3687 on the given angle, i.e. all the space, transfixed by the base
3688 shape during its rotation around the axis on the given angle.
3691 theBase Base shape to be rotated.
3692 theAxis Rotation axis.
3693 theAngle Rotation angle in radians.
3694 theName Object name; when specified, this parameter is used
3695 for result publication in the study. Otherwise, if automatic
3696 publication is switched on, default value is used for result name.
3699 New GEOM.GEOM_Object, containing the created revolution.
3701 # Example: see GEOM_TestAll.py
3702 theAngle,Parameters = ParseParameters(theAngle)
3703 anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
3704 RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
3705 anObj.SetParameters(Parameters)
3706 self._autoPublish(anObj, theName, "revolution")
3709 ## Create a shape by revolution of the base shape around the axis
3710 # on the given angle, i.e. all the space, transfixed by the base
3711 # shape during its rotation around the axis on the given angle in
3712 # both directions (forward/backward)
3713 # @param theBase Base shape to be rotated.
3714 # @param theAxis Rotation axis.
3715 # @param theAngle Rotation angle in radians.
3716 # @param theName Object name; when specified, this parameter is used
3717 # for result publication in the study. Otherwise, if automatic
3718 # publication is switched on, default value is used for result name.
3720 # @return New GEOM.GEOM_Object, containing the created revolution.
3722 # @ref tui_creation_revolution "Example"
3723 @ManageTransactions("PrimOp")
3724 def MakeRevolution2Ways(self, theBase, theAxis, theAngle, theName=None):
3726 Create a shape by revolution of the base shape around the axis
3727 on the given angle, i.e. all the space, transfixed by the base
3728 shape during its rotation around the axis on the given angle in
3729 both directions (forward/backward).
3732 theBase Base shape to be rotated.
3733 theAxis Rotation axis.
3734 theAngle Rotation angle in radians.
3735 theName Object name; when specified, this parameter is used
3736 for result publication in the study. Otherwise, if automatic
3737 publication is switched on, default value is used for result name.
3740 New GEOM.GEOM_Object, containing the created revolution.
3742 theAngle,Parameters = ParseParameters(theAngle)
3743 anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle)
3744 RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp)
3745 anObj.SetParameters(Parameters)
3746 self._autoPublish(anObj, theName, "revolution")
3749 ## Create a face from a given set of contours.
3750 # @param theContours either a list or a compound of edges/wires.
3751 # @param theMinDeg a minimal degree of BSpline surface to create.
3752 # @param theMaxDeg a maximal degree of BSpline surface to create.
3753 # @param theTol2D a 2d tolerance to be reached.
3754 # @param theTol3D a 3d tolerance to be reached.
3755 # @param theNbIter a number of iteration of approximation algorithm.
3756 # @param theMethod Kind of method to perform filling operation
3757 # (see GEOM.filling_oper_method enum).
3758 # @param isApprox if True, BSpline curves are generated in the process
3759 # of surface construction. By default it is False, that means
3760 # the surface is created using given curves. The usage of
3761 # Approximation makes the algorithm work slower, but allows
3762 # building the surface for rather complex cases.
3763 # @param theName Object name; when specified, this parameter is used
3764 # for result publication in the study. Otherwise, if automatic
3765 # publication is switched on, default value is used for result name.
3767 # @return New GEOM.GEOM_Object (face), containing the created filling surface.
3769 # @ref tui_creation_filling "Example"
3770 @ManageTransactions("PrimOp")
3771 def MakeFilling(self, theContours, theMinDeg=2, theMaxDeg=5, theTol2D=0.0001,
3772 theTol3D=0.0001, theNbIter=0, theMethod=GEOM.FOM_Default, isApprox=0, theName=None):
3774 Create a face from a given set of contours.
3777 theContours either a list or a compound of edges/wires.
3778 theMinDeg a minimal degree of BSpline surface to create.
3779 theMaxDeg a maximal degree of BSpline surface to create.
3780 theTol2D a 2d tolerance to be reached.
3781 theTol3D a 3d tolerance to be reached.
3782 theNbIter a number of iteration of approximation algorithm.
3783 theMethod Kind of method to perform filling operation
3784 (see GEOM.filling_oper_method enum).
3785 isApprox if True, BSpline curves are generated in the process
3786 of surface construction. By default it is False, that means
3787 the surface is created using given curves. The usage of
3788 Approximation makes the algorithm work slower, but allows
3789 building the surface for rather complex cases.
3790 theName Object name; when specified, this parameter is used
3791 for result publication in the study. Otherwise, if automatic
3792 publication is switched on, default value is used for result name.
3795 New GEOM.GEOM_Object (face), containing the created filling surface.
3798 filling = geompy.MakeFilling(compound, 2, 5, 0.0001, 0.0001, 5)
3800 # Example: see GEOM_TestAll.py
3801 theMinDeg,theMaxDeg,theTol2D,theTol3D,theNbIter,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter)
3802 anObj = self.PrimOp.MakeFilling(ToList(theContours), theMinDeg, theMaxDeg,
3803 theTol2D, theTol3D, theNbIter,
3804 theMethod, isApprox)
3805 RaiseIfFailed("MakeFilling", self.PrimOp)
3806 anObj.SetParameters(Parameters)
3807 self._autoPublish(anObj, theName, "filling")
3811 ## Create a face from a given set of contours.
3812 # This method corresponds to MakeFilling() with isApprox=True.
3813 # @param theContours either a list or a compound of edges/wires.
3814 # @param theMinDeg a minimal degree of BSpline surface to create.
3815 # @param theMaxDeg a maximal degree of BSpline surface to create.
3816 # @param theTol3D a 3d tolerance to be reached.
3817 # @param theName Object name; when specified, this parameter is used
3818 # for result publication in the study. Otherwise, if automatic
3819 # publication is switched on, default value is used for result name.
3821 # @return New GEOM.GEOM_Object (face), containing the created filling surface.
3823 # @ref tui_creation_filling "Example"
3824 @ManageTransactions("PrimOp")
3825 def MakeFillingNew(self, theContours, theMinDeg=2, theMaxDeg=5, theTol3D=0.0001, theName=None):
3827 Create a filling from the given compound of contours.
3828 This method corresponds to MakeFilling() with isApprox=True.
3831 theContours either a list or a compound of edges/wires.
3832 theMinDeg a minimal degree of BSpline surface to create.
3833 theMaxDeg a maximal degree of BSpline surface to create.
3834 theTol3D a 3d tolerance to be reached.
3835 theName Object name; when specified, this parameter is used
3836 for result publication in the study. Otherwise, if automatic
3837 publication is switched on, default value is used for result name.
3840 New GEOM.GEOM_Object (face), containing the created filling surface.
3843 filling = geompy.MakeFillingNew(compound, 2, 5, 0.0001)
3845 # Example: see GEOM_TestAll.py
3846 theMinDeg,theMaxDeg,theTol3D,Parameters = ParseParameters(theMinDeg, theMaxDeg, theTol3D)
3847 anObj = self.PrimOp.MakeFilling(ToList(theContours), theMinDeg, theMaxDeg,
3848 0, theTol3D, 0, GEOM.FOM_Default, True)
3849 RaiseIfFailed("MakeFillingNew", self.PrimOp)
3850 anObj.SetParameters(Parameters)
3851 self._autoPublish(anObj, theName, "filling")
3854 ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3855 # @param theSeqSections - set of specified sections.
3856 # @param theModeSolid - mode defining building solid or shell
3857 # @param thePreci - precision 3D used for smoothing
3858 # @param theRuled - mode defining type of the result surfaces (ruled or smoothed).
3859 # @param theName Object name; when specified, this parameter is used
3860 # for result publication in the study. Otherwise, if automatic
3861 # publication is switched on, default value is used for result name.
3863 # @return New GEOM.GEOM_Object, containing the created shell or solid.
3865 # @ref swig_todo "Example"
3866 @ManageTransactions("PrimOp")
3867 def MakeThruSections(self, theSeqSections, theModeSolid, thePreci, theRuled, theName=None):
3869 Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
3872 theSeqSections - set of specified sections.
3873 theModeSolid - mode defining building solid or shell
3874 thePreci - precision 3D used for smoothing
3875 theRuled - mode defining type of the result surfaces (ruled or smoothed).
3876 theName Object name; when specified, this parameter is used
3877 for result publication in the study. Otherwise, if automatic
3878 publication is switched on, default value is used for result name.
3881 New GEOM.GEOM_Object, containing the created shell or solid.
3883 # Example: see GEOM_TestAll.py
3884 anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
3885 RaiseIfFailed("MakeThruSections", self.PrimOp)
3886 self._autoPublish(anObj, theName, "filling")
3889 ## Create a shape by extrusion of the base shape along
3890 # the path shape. The path shape can be a wire or an edge. It is
3891 # possible to generate groups along with the result by means of
3892 # setting the flag \a IsGenerateGroups.<BR>
3893 # If \a thePath is a closed edge or wire and \a IsGenerateGroups is
3894 # set, an error is occured. If \a thePath is not closed edge/wire,
3895 # the following groups are returned:
3896 # - If \a theBase is unclosed edge or wire: "Down", "Up", "Side1",
3898 # - If \a theBase is closed edge or wire, face or shell: "Down", "Up",
3901 # "Down" and "Up" groups contain:
3902 # - Edges if \a theBase is edge or wire;
3903 # - Faces if \a theBase is face or shell.<BR>
3905 # "Side1" and "Side2" groups contain edges generated from the first
3906 # and last vertices of \a theBase. The first and last vertices are
3907 # determined taking into account edge/wire orientation.<BR>
3908 # "Other" group represents faces generated from the bounding edges of
3911 # @param theBase Base shape to be extruded.
3912 # @param thePath Path shape to extrude the base shape along it.
3913 # @param IsGenerateGroups flag that tells if it is necessary to
3914 # create groups. It is equal to False by default.
3915 # @param theName Object name; when specified, this parameter is used
3916 # for result publication in the study. Otherwise, if automatic
3917 # publication is switched on, default value is used for result name.
3919 # @return New GEOM.GEOM_Object, containing the created pipe if
3920 # \a IsGenerateGroups is not set. Otherwise it returns new
3921 # GEOM.ListOfGO. Its first element is the created pipe, the
3922 # remaining ones are created groups.
3924 # @ref tui_creation_pipe "Example"
3925 @ManageTransactions("PrimOp")
3926 def MakePipe(self, theBase, thePath,
3927 IsGenerateGroups=False, theName=None):
3929 Create a shape by extrusion of the base shape along
3930 the path shape. The path shape can be a wire or an edge. It is
3931 possible to generate groups along with the result by means of
3932 setting the flag IsGenerateGroups.
3933 If thePath is a closed edge or wire and IsGenerateGroups is
3934 set, an error is occured. If thePath is not closed edge/wire,
3935 the following groups are returned:
3936 - If theBase is unclosed edge or wire: "Down", "Up", "Side1",
3938 - If theBase is closed edge or wire, face or shell: "Down", "Up",
3940 "Down" and "Up" groups contain:
3941 - Edges if theBase is edge or wire;
3942 - Faces if theBase is face or shell.
3943 "Side1" and "Side2" groups contain edges generated from the first
3944 and last vertices of theBase. The first and last vertices are
3945 determined taking into account edge/wire orientation.
3946 "Other" group represents faces generated from the bounding edges of
3950 theBase Base shape to be extruded.
3951 thePath Path shape to extrude the base shape along it.
3952 IsGenerateGroups flag that tells if it is necessary to
3953 create groups. It is equal to False by default.
3954 theName Object name; when specified, this parameter is used
3955 for result publication in the study. Otherwise, if automatic
3956 publication is switched on, default value is used for result name.
3959 New GEOM.GEOM_Object, containing the created pipe if
3960 IsGenerateGroups is not set. Otherwise it returns new
3961 GEOM.ListOfGO. Its first element is the created pipe, the
3962 remaining ones are created groups.
3964 # Example: see GEOM_TestAll.py
3965 aList = self.PrimOp.MakePipe(theBase, thePath, IsGenerateGroups)
3966 RaiseIfFailed("MakePipe", self.PrimOp)
3968 if IsGenerateGroups:
3969 self._autoPublish(aList, theName, "pipe")
3972 self._autoPublish(aList[0], theName, "pipe")
3975 ## Create a shape by extrusion of the profile shape along
3976 # the path shape. The path shape can be a wire or an edge.
3977 # the several profiles can be specified in the several locations of path.
3978 # It is possible to generate groups along with the result by means of
3979 # setting the flag \a IsGenerateGroups. For detailed information on
3980 # groups that can be created please see the method MakePipe().
3981 # @param theSeqBases - list of Bases shape to be extruded.
3982 # @param theLocations - list of locations on the path corresponding
3983 # specified list of the Bases shapes. Number of locations
3984 # should be equal to number of bases or list of locations can be empty.
3985 # @param thePath - Path shape to extrude the base shape along it.
3986 # @param theWithContact - the mode defining that the section is translated to be in
3987 # contact with the spine.
3988 # @param theWithCorrection - defining that the section is rotated to be
3989 # orthogonal to the spine tangent in the correspondent point
3990 # @param IsGenerateGroups - flag that tells if it is necessary to
3991 # create groups. It is equal to False by default.
3992 # @param theName Object name; when specified, this parameter is used
3993 # for result publication in the study. Otherwise, if automatic
3994 # publication is switched on, default value is used for result name.
3996 # @return New GEOM.GEOM_Object, containing the created pipe if
3997 # \a IsGenerateGroups is not set. Otherwise it returns new
3998 # GEOM.ListOfGO. Its first element is the created pipe, the
3999 # remaining ones are created groups.
4001 # @ref tui_creation_pipe_with_diff_sec "Example"
4002 @ManageTransactions("PrimOp")
4003 def MakePipeWithDifferentSections(self, theSeqBases,
4004 theLocations, thePath,
4005 theWithContact, theWithCorrection,
4006 IsGenerateGroups=False, theName=None):
4008 Create a shape by extrusion of the profile shape along
4009 the path shape. The path shape can be a wire or an edge.
4010 the several profiles can be specified in the several locations of path.
4011 It is possible to generate groups along with the result by means of
4012 setting the flag IsGenerateGroups. For detailed information on
4013 groups that can be created please see the method geompy.MakePipe().
4016 theSeqBases - list of Bases shape to be extruded.
4017 theLocations - list of locations on the path corresponding
4018 specified list of the Bases shapes. Number of locations
4019 should be equal to number of bases or list of locations can be empty.
4020 thePath - Path shape to extrude the base shape along it.
4021 theWithContact - the mode defining that the section is translated to be in
4022 contact with the spine(0/1)
4023 theWithCorrection - defining that the section is rotated to be
4024 orthogonal to the spine tangent in the correspondent point (0/1)
4025 IsGenerateGroups - flag that tells if it is necessary to
4026 create groups. It is equal to False by default.
4027 theName Object name; when specified, this parameter is used
4028 for result publication in the study. Otherwise, if automatic
4029 publication is switched on, default value is used for result name.
4032 New GEOM.GEOM_Object, containing the created pipe if
4033 IsGenerateGroups is not set. Otherwise it returns new
4034 GEOM.ListOfGO. Its first element is the created pipe, the
4035 remaining ones are created groups.
4037 aList = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
4038 theLocations, thePath,
4039 theWithContact, theWithCorrection,
4040 False, IsGenerateGroups)
4041 RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp)
4043 if IsGenerateGroups:
4044 self._autoPublish(aList, theName, "pipe")
4047 self._autoPublish(aList[0], theName, "pipe")
4050 ## Create a shape by extrusion of the profile shape along
4051 # the path shape. This function is a version of
4052 # MakePipeWithDifferentSections() with the same parameters, except
4053 # eliminated theWithContact and theWithCorrection. So it is
4054 # possible to find the description of all parameters is in this
4055 # method. The difference is that this method performs the operation
4056 # step by step, i.e. it creates pipes between each pair of neighbor
4057 # sections and fuses them into a single shape.
4059 # @ref tui_creation_pipe_with_diff_sec "Example"
4060 @ManageTransactions("PrimOp")
4061 def MakePipeWithDifferentSectionsBySteps(self, theSeqBases,
4062 theLocations, thePath,
4063 IsGenerateGroups=False, theName=None):
4065 Create a shape by extrusion of the profile shape along
4066 the path shape. This function is a version of
4067 MakePipeWithDifferentSections() with the same parameters, except
4068 eliminated theWithContact and theWithCorrection. So it is
4069 possible to find the description of all parameters is in this
4070 method. The difference is that this method performs the operation
4071 step by step, i.e. it creates pipes between each pair of neighbor
4072 sections and fuses them into a single shape.
4074 aList = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
4075 theLocations, thePath,
4077 True, IsGenerateGroups)
4078 RaiseIfFailed("MakePipeWithDifferentSectionsBySteps", self.PrimOp)
4080 if IsGenerateGroups:
4081 self._autoPublish(aList, theName, "pipe")
4084 self._autoPublish(aList[0], theName, "pipe")
4087 ## Create a shape by extrusion of the profile shape along
4088 # the path shape. The path shape can be a wire or an edge.
4089 # the several profiles can be specified in the several locations of path.
4090 # It is possible to generate groups along with the result by means of
4091 # setting the flag \a IsGenerateGroups. For detailed information on
4092 # groups that can be created please see the method MakePipe().
4093 # @param theSeqBases - list of Bases shape to be extruded. Base shape must be
4094 # shell or face. If number of faces in neighbour sections
4095 # aren't coincided result solid between such sections will
4096 # be created using external boundaries of this shells.
4097 # @param theSeqSubBases - list of corresponding sub-shapes of section shapes.
4098 # This list is used for searching correspondences between
4099 # faces in the sections. Size of this list must be equal
4100 # to size of list of base shapes.
4101 # @param theLocations - list of locations on the path corresponding
4102 # specified list of the Bases shapes. Number of locations
4103 # should be equal to number of bases. First and last
4104 # locations must be coincided with first and last vertexes
4105 # of path correspondingly.
4106 # @param thePath - Path shape to extrude the base shape along it.
4107 # @param theWithContact - the mode defining that the section is translated to be in
4108 # contact with the spine.
4109 # @param theWithCorrection - defining that the section is rotated to be
4110 # orthogonal to the spine tangent in the correspondent point
4111 # @param IsGenerateGroups - flag that tells if it is necessary to
4112 # create groups. It is equal to False by default.
4113 # @param theName Object name; when specified, this parameter is used
4114 # for result publication in the study. Otherwise, if automatic
4115 # publication is switched on, default value is used for result name.
4117 # @return New GEOM.GEOM_Object, containing the created solids if
4118 # \a IsGenerateGroups is not set. Otherwise it returns new
4119 # GEOM.ListOfGO. Its first element is the created solids, the
4120 # remaining ones are created groups.
4122 # @ref tui_creation_pipe_with_shell_sec "Example"
4123 @ManageTransactions("PrimOp")
4124 def MakePipeWithShellSections(self, theSeqBases, theSeqSubBases,
4125 theLocations, thePath,
4126 theWithContact, theWithCorrection,
4127 IsGenerateGroups=False, theName=None):
4129 Create a shape by extrusion of the profile shape along
4130 the path shape. The path shape can be a wire or an edge.
4131 the several profiles can be specified in the several locations of path.
4132 It is possible to generate groups along with the result by means of
4133 setting the flag IsGenerateGroups. For detailed information on
4134 groups that can be created please see the method geompy.MakePipe().
4137 theSeqBases - list of Bases shape to be extruded. Base shape must be
4138 shell or face. If number of faces in neighbour sections
4139 aren't coincided result solid between such sections will
4140 be created using external boundaries of this shells.
4141 theSeqSubBases - list of corresponding sub-shapes of section shapes.
4142 This list is used for searching correspondences between
4143 faces in the sections. Size of this list must be equal
4144 to size of list of base shapes.
4145 theLocations - list of locations on the path corresponding
4146 specified list of the Bases shapes. Number of locations
4147 should be equal to number of bases. First and last
4148 locations must be coincided with first and last vertexes
4149 of path correspondingly.
4150 thePath - Path shape to extrude the base shape along it.
4151 theWithContact - the mode defining that the section is translated to be in
4152 contact with the spine (0/1)
4153 theWithCorrection - defining that the section is rotated to be
4154 orthogonal to the spine tangent in the correspondent point (0/1)
4155 IsGenerateGroups - flag that tells if it is necessary to
4156 create groups. It is equal to False by default.
4157 theName Object name; when specified, this parameter is used
4158 for result publication in the study. Otherwise, if automatic
4159 publication is switched on, default value is used for result name.
4162 New GEOM.GEOM_Object, containing the created solids if
4163 IsGenerateGroups is not set. Otherwise it returns new
4164 GEOM.ListOfGO. Its first element is the created solids, the
4165 remaining ones are created groups.
4167 aList = self.PrimOp.MakePipeWithShellSections(theSeqBases, theSeqSubBases,
4168 theLocations, thePath,
4169 theWithContact, theWithCorrection,
4171 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
4173 if IsGenerateGroups:
4174 self._autoPublish(aList, theName, "pipe")
4177 self._autoPublish(aList[0], theName, "pipe")
4180 ## Create a shape by extrusion of the profile shape along
4181 # the path shape. This function is used only for debug pipe
4182 # functionality - it is a version of function MakePipeWithShellSections()
4183 # which give a possibility to recieve information about
4184 # creating pipe between each pair of sections step by step.
4185 @ManageTransactions("PrimOp")
4186 def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases,
4187 theLocations, thePath,
4188 theWithContact, theWithCorrection,
4189 IsGenerateGroups=False, theName=None):
4191 Create a shape by extrusion of the profile shape along
4192 the path shape. This function is used only for debug pipe
4193 functionality - it is a version of previous function
4194 geompy.MakePipeWithShellSections() which give a possibility to
4195 recieve information about creating pipe between each pair of
4196 sections step by step.
4199 nbsect = len(theSeqBases)
4200 nbsubsect = len(theSeqSubBases)
4201 #print "nbsect = ",nbsect
4202 for i in range(1,nbsect):
4204 tmpSeqBases = [ theSeqBases[i-1], theSeqBases[i] ]
4205 tmpLocations = [ theLocations[i-1], theLocations[i] ]
4207 if nbsubsect>0: tmpSeqSubBases = [ theSeqSubBases[i-1], theSeqSubBases[i] ]
4208 aList = self.PrimOp.MakePipeWithShellSections(tmpSeqBases, tmpSeqSubBases,
4209 tmpLocations, thePath,
4210 theWithContact, theWithCorrection,
4212 if self.PrimOp.IsDone() == 0:
4213 print "Problems with pipe creation between ",i," and ",i+1," sections"
4214 RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
4217 print "Pipe between ",i," and ",i+1," sections is OK"
4218 res.append(aList[0])
4222 resc = self.MakeCompound(res)
4223 #resc = self.MakeSewing(res, 0.001)
4224 #print "resc: ",resc
4225 self._autoPublish(resc, theName, "pipe")
4228 ## Create solids between given sections.
4229 # It is possible to generate groups along with the result by means of
4230 # setting the flag \a IsGenerateGroups. For detailed information on
4231 # groups that can be created please see the method MakePipe().
4232 # @param theSeqBases - list of sections (shell or face).
4233 # @param theLocations - list of corresponding vertexes
4234 # @param IsGenerateGroups - flag that tells if it is necessary to
4235 # create groups. It is equal to False by default.
4236 # @param theName Object name; when specified, this parameter is used
4237 # for result publication in the study. Otherwise, if automatic
4238 # publication is switched on, default value is used for result name.
4240 # @return New GEOM.GEOM_Object, containing the created solids if
4241 # \a IsGenerateGroups is not set. Otherwise it returns new
4242 # GEOM.ListOfGO. Its first element is the created solids, the
4243 # remaining ones are created groups.
4245 # @ref tui_creation_pipe_without_path "Example"
4246 @ManageTransactions("PrimOp")
4247 def MakePipeShellsWithoutPath(self, theSeqBases, theLocations,
4248 IsGenerateGroups=False, theName=None):
4250 Create solids between given sections.
4251 It is possible to generate groups along with the result by means of
4252 setting the flag IsGenerateGroups. For detailed information on
4253 groups that can be created please see the method geompy.MakePipe().
4256 theSeqBases - list of sections (shell or face).
4257 theLocations - list of corresponding vertexes
4258 IsGenerateGroups - flag that tells if it is necessary to
4259 create groups. It is equal to False by default.
4260 theName Object name; when specified, this parameter is used
4261 for result publication in the study. Otherwise, if automatic
4262 publication is switched on, default value is used for result name.
4265 New GEOM.GEOM_Object, containing the created solids if
4266 IsGenerateGroups is not set. Otherwise it returns new
4267 GEOM.ListOfGO. Its first element is the created solids, the
4268 remaining ones are created groups.
4270 aList = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations,
4272 RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp)
4274 if IsGenerateGroups:
4275 self._autoPublish(aList, theName, "pipe")
4278 self._autoPublish(aList[0], theName, "pipe")
4281 ## Create a shape by extrusion of the base shape along
4282 # the path shape with constant bi-normal direction along the given vector.
4283 # The path shape can be a wire or an edge.
4284 # It is possible to generate groups along with the result by means of
4285 # setting the flag \a IsGenerateGroups. For detailed information on
4286 # groups that can be created please see the method MakePipe().
4287 # @param theBase Base shape to be extruded.
4288 # @param thePath Path shape to extrude the base shape along it.
4289 # @param theVec Vector defines a constant binormal direction to keep the
4290 # same angle beetween the direction and the sections
4291 # along the sweep surface.
4292 # @param IsGenerateGroups flag that tells if it is necessary to
4293 # create groups. It is equal to False by default.
4294 # @param theName Object name; when specified, this parameter is used
4295 # for result publication in the study. Otherwise, if automatic
4296 # publication is switched on, default value is used for result name.
4298 # @return New GEOM.GEOM_Object, containing the created pipe if
4299 # \a IsGenerateGroups is not set. Otherwise it returns new
4300 # GEOM.ListOfGO. Its first element is the created pipe, the
4301 # remaining ones are created groups.
4303 # @ref tui_creation_pipe "Example"
4304 @ManageTransactions("PrimOp")
4305 def MakePipeBiNormalAlongVector(self, theBase, thePath, theVec,
4306 IsGenerateGroups=False, theName=None):
4308 Create a shape by extrusion of the base shape along
4309 the path shape with constant bi-normal direction along the given vector.
4310 The path shape can be a wire or an edge.
4311 It is possible to generate groups along with the result by means of
4312 setting the flag IsGenerateGroups. For detailed information on
4313 groups that can be created please see the method geompy.MakePipe().
4316 theBase Base shape to be extruded.
4317 thePath Path shape to extrude the base shape along it.
4318 theVec Vector defines a constant binormal direction to keep the
4319 same angle beetween the direction and the sections
4320 along the sweep surface.
4321 IsGenerateGroups flag that tells if it is necessary to
4322 create groups. It is equal to False by default.
4323 theName Object name; when specified, this parameter is used
4324 for result publication in the study. Otherwise, if automatic
4325 publication is switched on, default value is used for result name.
4328 New GEOM.GEOM_Object, containing the created pipe if
4329 IsGenerateGroups is not set. Otherwise it returns new
4330 GEOM.ListOfGO. Its first element is the created pipe, the
4331 remaining ones are created groups.
4333 # Example: see GEOM_TestAll.py
4334 aList = self.PrimOp.MakePipeBiNormalAlongVector(theBase, thePath,
4335 theVec, IsGenerateGroups)
4336 RaiseIfFailed("MakePipeBiNormalAlongVector", self.PrimOp)
4338 if IsGenerateGroups:
4339 self._autoPublish(aList, theName, "pipe")
4342 self._autoPublish(aList[0], theName, "pipe")
4345 ## Makes a thick solid from a shape. If the input is a surface shape
4346 # (face or shell) the result is a thick solid. If an input shape is
4347 # a solid the result is a hollowed solid with removed faces.
4348 # @param theShape Face or Shell to get thick solid or solid to get
4350 # @param theThickness Thickness of the resulting solid
4351 # @param theFacesIDs the list of face IDs to be removed from the
4352 # result. It is ignored if \a theShape is a face or a shell.
4353 # It is empty by default.
4354 # @param theInside If true the thickness is applied towards inside
4355 # @param theName Object name; when specified, this parameter is used
4356 # for result publication in the study. Otherwise, if automatic
4357 # publication is switched on, default value is used for result name.
4359 # @return New GEOM.GEOM_Object, containing the created solid
4361 # @ref tui_creation_thickness "Example"
4362 @ManageTransactions("PrimOp")
4363 def MakeThickSolid(self, theShape, theThickness,
4364 theFacesIDs=[], theInside=False, theName=None):
4366 Make a thick solid from a shape. If the input is a surface shape
4367 (face or shell) the result is a thick solid. If an input shape is
4368 a solid the result is a hollowed solid with removed faces.
4371 theShape Face or Shell to get thick solid or solid to get
4373 theThickness Thickness of the resulting solid
4374 theFacesIDs the list of face IDs to be removed from the
4375 result. It is ignored if theShape is a face or a
4376 shell. It is empty by default.
4377 theInside If true the thickness is applied towards inside
4378 theName Object name; when specified, this parameter is used
4379 for result publication in the study. Otherwise, if automatic
4380 publication is switched on, default value is used for result name.
4383 New GEOM.GEOM_Object, containing the created solid
4385 # Example: see GEOM_TestAll.py
4386 theThickness,Parameters = ParseParameters(theThickness)
4387 anObj = self.PrimOp.MakeThickening(theShape, theFacesIDs,
4388 theThickness, True, theInside)
4389 RaiseIfFailed("MakeThickSolid", self.PrimOp)
4390 anObj.SetParameters(Parameters)
4391 self._autoPublish(anObj, theName, "thickSolid")
4395 ## Modifies a shape to make it a thick solid. If the input is a surface
4396 # shape (face or shell) the result is a thick solid. If an input shape
4397 # is a solid the result is a hollowed solid with removed faces.
4398 # @param theShape Face or Shell to get thick solid or solid to get
4400 # @param theThickness Thickness of the resulting solid
4401 # @param theFacesIDs the list of face IDs to be removed from the
4402 # result. It is ignored if \a theShape is a face or a shell.
4403 # It is empty by default.
4404 # @param theInside If true the thickness is applied towards inside
4406 # @return The modified shape
4408 # @ref tui_creation_thickness "Example"
4409 @ManageTransactions("PrimOp")
4410 def Thicken(self, theShape, theThickness, theFacesIDs=[], theInside=False):
4412 Modifies a shape to make it a thick solid. If the input is a
4413 surface shape (face or shell) the result is a thick solid. If
4414 an input shape is a solid the result is a hollowed solid with
4418 theShape Face or Shell to get thick solid or solid to get
4420 theThickness Thickness of the resulting solid
4421 theFacesIDs the list of face IDs to be removed from the
4422 result. It is ignored if \a theShape is a face or
4423 a shell. It is empty by default.
4424 theInside If true the thickness is applied towards inside
4429 # Example: see GEOM_TestAll.py
4430 theThickness,Parameters = ParseParameters(theThickness)
4431 anObj = self.PrimOp.MakeThickening(theShape, theFacesIDs,
4432 theThickness, False, theInside)
4433 RaiseIfFailed("Thicken", self.PrimOp)
4434 anObj.SetParameters(Parameters)
4437 ## Build a middle path of a pipe-like shape.
4438 # The path shape can be a wire or an edge.
4439 # @param theShape It can be closed or unclosed pipe-like shell
4440 # or a pipe-like solid.
4441 # @param theBase1, theBase2 Two bases of the supposed pipe. This
4442 # should be wires or faces of theShape.
4443 # @param theName Object name; when specified, this parameter is used
4444 # for result publication in the study. Otherwise, if automatic
4445 # publication is switched on, default value is used for result name.
4447 # @note It is not assumed that exact or approximate copy of theShape
4448 # can be obtained by applying existing Pipe operation on the
4449 # resulting "Path" wire taking theBase1 as the base - it is not
4450 # always possible; though in some particular cases it might work
4451 # it is not guaranteed. Thus, RestorePath function should not be
4452 # considered as an exact reverse operation of the Pipe.
4454 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
4455 # source pipe's "path".
4457 # @ref tui_creation_pipe_path "Example"
4458 @ManageTransactions("PrimOp")
4459 def RestorePath (self, theShape, theBase1, theBase2, theName=None):
4461 Build a middle path of a pipe-like shape.
4462 The path shape can be a wire or an edge.
4465 theShape It can be closed or unclosed pipe-like shell
4466 or a pipe-like solid.
4467 theBase1, theBase2 Two bases of the supposed pipe. This
4468 should be wires or faces of theShape.
4469 theName Object name; when specified, this parameter is used
4470 for result publication in the study. Otherwise, if automatic
4471 publication is switched on, default value is used for result name.
4474 New GEOM_Object, containing an edge or wire that represent
4477 anObj = self.PrimOp.RestorePath(theShape, theBase1, theBase2)
4478 RaiseIfFailed("RestorePath", self.PrimOp)
4479 self._autoPublish(anObj, theName, "path")
4482 ## Build a middle path of a pipe-like shape.
4483 # The path shape can be a wire or an edge.
4484 # @param theShape It can be closed or unclosed pipe-like shell
4485 # or a pipe-like solid.
4486 # @param listEdges1, listEdges2 Two bases of the supposed pipe. This
4487 # should be lists of edges of theShape.
4488 # @param theName Object name; when specified, this parameter is used
4489 # for result publication in the study. Otherwise, if automatic
4490 # publication is switched on, default value is used for result name.
4492 # @note It is not assumed that exact or approximate copy of theShape
4493 # can be obtained by applying existing Pipe operation on the
4494 # resulting "Path" wire taking theBase1 as the base - it is not
4495 # always possible; though in some particular cases it might work
4496 # it is not guaranteed. Thus, RestorePath function should not be
4497 # considered as an exact reverse operation of the Pipe.
4499 # @return New GEOM.GEOM_Object, containing an edge or wire that represent
4500 # source pipe's "path".
4502 # @ref tui_creation_pipe_path "Example"
4503 @ManageTransactions("PrimOp")
4504 def RestorePathEdges (self, theShape, listEdges1, listEdges2, theName=None):
4506 Build a middle path of a pipe-like shape.
4507 The path shape can be a wire or an edge.
4510 theShape It can be closed or unclosed pipe-like shell
4511 or a pipe-like solid.
4512 listEdges1, listEdges2 Two bases of the supposed pipe. This
4513 should be lists of edges of theShape.
4514 theName Object name; when specified, this parameter is used
4515 for result publication in the study. Otherwise, if automatic
4516 publication is switched on, default value is used for result name.
4519 New GEOM_Object, containing an edge or wire that represent
4522 anObj = self.PrimOp.RestorePathEdges(theShape, listEdges1, listEdges2)
4523 RaiseIfFailed("RestorePath", self.PrimOp)
4524 self._autoPublish(anObj, theName, "path")
4530 ## @addtogroup l3_basic_go
4533 ## Create a linear edge with specified ends.
4534 # @param thePnt1 Point for the first end of edge.
4535 # @param thePnt2 Point for the second end of edge.
4536 # @param theName Object name; when specified, this parameter is used
4537 # for result publication in the study. Otherwise, if automatic
4538 # publication is switched on, default value is used for result name.
4540 # @return New GEOM.GEOM_Object, containing the created edge.
4542 # @ref tui_creation_edge "Example"
4543 @ManageTransactions("ShapesOp")
4544 def MakeEdge(self, thePnt1, thePnt2, theName=None):
4546 Create a linear edge with specified ends.
4549 thePnt1 Point for the first end of edge.
4550 thePnt2 Point for the second end of edge.
4551 theName Object name; when specified, this parameter is used
4552 for result publication in the study. Otherwise, if automatic
4553 publication is switched on, default value is used for result name.
4556 New GEOM.GEOM_Object, containing the created edge.
4558 # Example: see GEOM_TestAll.py
4559 anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2)
4560 RaiseIfFailed("MakeEdge", self.ShapesOp)
4561 self._autoPublish(anObj, theName, "edge")
4564 ## Create a new edge, corresponding to the given length on the given curve.
4565 # @param theRefCurve The referenced curve (edge).
4566 # @param theLength Length on the referenced curve. It can be negative.
4567 # @param theStartPoint Any point can be selected for it, the new edge will begin
4568 # at the end of \a theRefCurve, close to the selected point.
4569 # If None, start from the first point of \a theRefCurve.
4570 # @param theName Object name; when specified, this parameter is used
4571 # for result publication in the study. Otherwise, if automatic
4572 # publication is switched on, default value is used for result name.
4574 # @return New GEOM.GEOM_Object, containing the created edge.
4576 # @ref tui_creation_edge "Example"
4577 @ManageTransactions("ShapesOp")
4578 def MakeEdgeOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
4580 Create a new edge, corresponding to the given length on the given curve.
4583 theRefCurve The referenced curve (edge).
4584 theLength Length on the referenced curve. It can be negative.
4585 theStartPoint Any point can be selected for it, the new edge will begin
4586 at the end of theRefCurve, close to the selected point.
4587 If None, start from the first point of theRefCurve.
4588 theName Object name; when specified, this parameter is used
4589 for result publication in the study. Otherwise, if automatic
4590 publication is switched on, default value is used for result name.
4593 New GEOM.GEOM_Object, containing the created edge.
4595 # Example: see GEOM_TestAll.py
4596 theLength, Parameters = ParseParameters(theLength)
4597 anObj = self.ShapesOp.MakeEdgeOnCurveByLength(theRefCurve, theLength, theStartPoint)
4598 RaiseIfFailed("MakeEdgeOnCurveByLength", self.ShapesOp)
4599 anObj.SetParameters(Parameters)
4600 self._autoPublish(anObj, theName, "edge")
4603 ## Create an edge from specified wire.
4604 # @param theWire source Wire
4605 # @param theLinearTolerance linear tolerance value (default = 1e-07)
4606 # @param theAngularTolerance angular tolerance value (default = 1e-12)
4607 # @param theName Object name; when specified, this parameter is used
4608 # for result publication in the study. Otherwise, if automatic
4609 # publication is switched on, default value is used for result name.
4611 # @return New GEOM.GEOM_Object, containing the created edge.
4613 # @ref tui_creation_edge "Example"
4614 @ManageTransactions("ShapesOp")
4615 def MakeEdgeWire(self, theWire, theLinearTolerance = 1e-07, theAngularTolerance = 1e-12, theName=None):
4617 Create an edge from specified wire.
4621 theLinearTolerance linear tolerance value (default = 1e-07)
4622 theAngularTolerance angular tolerance value (default = 1e-12)
4623 theName Object name; when specified, this parameter is used
4624 for result publication in the study. Otherwise, if automatic
4625 publication is switched on, default value is used for result name.
4628 New GEOM.GEOM_Object, containing the created edge.
4630 # Example: see GEOM_TestAll.py
4631 anObj = self.ShapesOp.MakeEdgeWire(theWire, theLinearTolerance, theAngularTolerance)
4632 RaiseIfFailed("MakeEdgeWire", self.ShapesOp)
4633 self._autoPublish(anObj, theName, "edge")
4636 ## Create a wire from the set of edges and wires.
4637 # @param theEdgesAndWires List of edges and/or wires.
4638 # @param theTolerance Maximum distance between vertices, that will be merged.
4639 # Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion())
4640 # @param theName Object name; when specified, this parameter is used
4641 # for result publication in the study. Otherwise, if automatic
4642 # publication is switched on, default value is used for result name.
4644 # @return New GEOM.GEOM_Object, containing the created wire.
4646 # @ref tui_creation_wire "Example"
4647 @ManageTransactions("ShapesOp")
4648 def MakeWire(self, theEdgesAndWires, theTolerance = 1e-07, theName=None):
4650 Create a wire from the set of edges and wires.
4653 theEdgesAndWires List of edges and/or wires.
4654 theTolerance Maximum distance between vertices, that will be merged.
4655 Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion()).
4656 theName Object name; when specified, this parameter is used
4657 for result publication in the study. Otherwise, if automatic
4658 publication is switched on, default value is used for result name.
4661 New GEOM.GEOM_Object, containing the created wire.
4663 # Example: see GEOM_TestAll.py
4664 anObj = self.ShapesOp.MakeWire(theEdgesAndWires, theTolerance)
4665 RaiseIfFailed("MakeWire", self.ShapesOp)
4666 self._autoPublish(anObj, theName, "wire")
4669 ## Create a face on the given wire.
4670 # @param theWire closed Wire or Edge to build the face on.
4671 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4672 # If the tolerance of the obtained planar face is less
4673 # than 1e-06, this face will be returned, otherwise the
4674 # algorithm tries to build any suitable face on the given
4675 # wire and prints a warning message.
4676 # @param theName Object name; when specified, this parameter is used
4677 # for result publication in the study. Otherwise, if automatic
4678 # publication is switched on, default value is used for result name.
4680 # @return New GEOM.GEOM_Object, containing the created face.
4682 # @ref tui_creation_face "Example"
4683 @ManageTransactions("ShapesOp")
4684 def MakeFace(self, theWire, isPlanarWanted, theName=None):
4686 Create a face on the given wire.
4689 theWire closed Wire or Edge to build the face on.
4690 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4691 If the tolerance of the obtained planar face is less
4692 than 1e-06, this face will be returned, otherwise the
4693 algorithm tries to build any suitable face on the given
4694 wire and prints a warning message.
4695 theName Object name; when specified, this parameter is used
4696 for result publication in the study. Otherwise, if automatic
4697 publication is switched on, default value is used for result name.
4700 New GEOM.GEOM_Object, containing the created face.
4702 # Example: see GEOM_TestAll.py
4703 anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted)
4704 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4705 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4707 RaiseIfFailed("MakeFace", self.ShapesOp)
4708 self._autoPublish(anObj, theName, "face")
4711 ## Create a face on the given wires set.
4712 # @param theWires List of closed wires or edges to build the face on.
4713 # @param isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4714 # If the tolerance of the obtained planar face is less
4715 # than 1e-06, this face will be returned, otherwise the
4716 # algorithm tries to build any suitable face on the given
4717 # wire and prints a warning message.
4718 # @param theName Object name; when specified, this parameter is used
4719 # for result publication in the study. Otherwise, if automatic
4720 # publication is switched on, default value is used for result name.
4722 # @return New GEOM.GEOM_Object, containing the created face.
4724 # @ref tui_creation_face "Example"
4725 @ManageTransactions("ShapesOp")
4726 def MakeFaceWires(self, theWires, isPlanarWanted, theName=None):
4728 Create a face on the given wires set.
4731 theWires List of closed wires or edges to build the face on.
4732 isPlanarWanted If TRUE, the algorithm tries to build a planar face.
4733 If the tolerance of the obtained planar face is less
4734 than 1e-06, this face will be returned, otherwise the
4735 algorithm tries to build any suitable face on the given
4736 wire and prints a warning message.
4737 theName Object name; when specified, this parameter is used
4738 for result publication in the study. Otherwise, if automatic
4739 publication is switched on, default value is used for result name.
4742 New GEOM.GEOM_Object, containing the created face.
4744 # Example: see GEOM_TestAll.py
4745 anObj = self.ShapesOp.MakeFaceWires(ToList(theWires), isPlanarWanted)
4746 if isPlanarWanted and anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
4747 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
4749 RaiseIfFailed("MakeFaceWires", self.ShapesOp)
4750 self._autoPublish(anObj, theName, "face")
4753 ## See MakeFaceWires() method for details.
4755 # @ref tui_creation_face "Example 1"
4756 # \n @ref swig_MakeFaces "Example 2"
4757 def MakeFaces(self, theWires, isPlanarWanted, theName=None):
4759 See geompy.MakeFaceWires() method for details.
4761 # Example: see GEOM_TestOthers.py
4762 # note: auto-publishing is done in self.MakeFaceWires()
4763 anObj = self.MakeFaceWires(theWires, isPlanarWanted, theName)
4766 ## Create a face based on a surface from given face bounded
4768 # @param theFace the face whose surface is used to create a new face.
4769 # @param theWire the wire that will bound a new face.
4770 # @param theName Object name; when specified, this parameter is used
4771 # for result publication in the study. Otherwise, if automatic
4772 # publication is switched on, default value is used for result name.
4774 # @return New GEOM.GEOM_Object, containing the created face.
4776 # @ref tui_creation_face "Example"
4777 @ManageTransactions("ShapesOp")
4778 def MakeFaceFromSurface(self, theFace, theWire, theName=None):
4780 Create a face based on a surface from given face bounded
4784 theFace the face whose surface is used to create a new face.
4785 theWire the wire that will bound a new face.
4786 theName Object name; when specified, this parameter is used
4787 for result publication in the study. Otherwise, if automatic
4788 publication is switched on, default value is used for result name.
4791 New GEOM.GEOM_Object, containing the created face.
4793 # Example: see GEOM_TestAll.py
4794 anObj = self.ShapesOp.MakeFaceFromSurface(theFace, theWire)
4795 RaiseIfFailed("MakeFaceFromSurface", self.ShapesOp)
4796 self._autoPublish(anObj, theName, "face")
4799 ## Create a face from a set of edges with the given constraints.
4800 # @param theConstraints List of edges and constraint faces (as a sequence of a Edge + Face couples):
4801 # - edges should form a closed wire;
4802 # - for each edge, constraint face is optional: if a constraint face is missing
4803 # for some edge, this means that there no constraint associated with this edge.
4804 # @param theName Object name; when specified, this parameter is used
4805 # for result publication in the study. Otherwise, if automatic
4806 # publication is switched on, default value is used for result name.
4808 # @return New GEOM.GEOM_Object, containing the created face.
4810 # @ref tui_creation_face "Example"
4811 @ManageTransactions("ShapesOp")
4812 def MakeFaceWithConstraints(self, theConstraints, theName=None):
4814 Create a face from a set of edges with the given constraints.
4817 theConstraints List of edges and constraint faces (as a sequence of a Edge + Face couples):
4818 - edges should form a closed wire;
4819 - for each edge, constraint face is optional: if a constraint face is missing
4820 for some edge, this means that there no constraint associated with this edge.
4821 theName Object name; when specified, this parameter is used
4822 for result publication in the study. Otherwise, if automatic
4823 publication is switched on, default value is used for result name.
4826 New GEOM.GEOM_Object, containing the created face.
4828 # Example: see GEOM_TestAll.py
4829 anObj = self.ShapesOp.MakeFaceWithConstraints(theConstraints)
4831 RaiseIfFailed("MakeFaceWithConstraints", self.ShapesOp)
4832 self._autoPublish(anObj, theName, "face")
4835 ## Create a shell from the set of faces and shells.
4836 # @param theFacesAndShells List of faces and/or shells.
4837 # @param theName Object name; when specified, this parameter is used
4838 # for result publication in the study. Otherwise, if automatic
4839 # publication is switched on, default value is used for result name.
4841 # @return New GEOM.GEOM_Object, containing the created shell.
4843 # @ref tui_creation_shell "Example"
4844 @ManageTransactions("ShapesOp")
4845 def MakeShell(self, theFacesAndShells, theName=None):
4847 Create a shell from the set of faces and shells.
4850 theFacesAndShells List of faces and/or shells.
4851 theName Object name; when specified, this parameter is used
4852 for result publication in the study. Otherwise, if automatic
4853 publication is switched on, default value is used for result name.
4856 New GEOM.GEOM_Object, containing the created shell.
4858 # Example: see GEOM_TestAll.py
4859 anObj = self.ShapesOp.MakeShell( ToList( theFacesAndShells ))
4860 RaiseIfFailed("MakeShell", self.ShapesOp)
4861 self._autoPublish(anObj, theName, "shell")
4864 ## Create a solid, bounded by the given shells.
4865 # @param theShells Sequence of bounding shells.
4866 # @param theName Object name; when specified, this parameter is used
4867 # for result publication in the study. Otherwise, if automatic
4868 # publication is switched on, default value is used for result name.
4870 # @return New GEOM.GEOM_Object, containing the created solid.
4872 # @ref tui_creation_solid "Example"
4873 @ManageTransactions("ShapesOp")
4874 def MakeSolid(self, theShells, theName=None):
4876 Create a solid, bounded by the given shells.
4879 theShells Sequence of bounding shells.
4880 theName Object name; when specified, this parameter is used
4881 for result publication in the study. Otherwise, if automatic
4882 publication is switched on, default value is used for result name.
4885 New GEOM.GEOM_Object, containing the created solid.
4887 # Example: see GEOM_TestAll.py
4888 theShells = ToList(theShells)
4889 if len(theShells) == 1:
4890 descr = self._IsGoodForSolid(theShells[0])
4892 # raise RuntimeError, "MakeSolidShells : " + descr
4893 if descr == "WRN_SHAPE_UNCLOSED":
4894 raise RuntimeError, "MakeSolidShells : Unable to create solid from unclosed shape"
4895 anObj = self.ShapesOp.MakeSolidShells(theShells)
4896 RaiseIfFailed("MakeSolidShells", self.ShapesOp)
4897 self._autoPublish(anObj, theName, "solid")
4900 ## Create a compound of the given shapes.
4901 # @param theShapes List of shapes to put in compound.
4902 # @param theName Object name; when specified, this parameter is used
4903 # for result publication in the study. Otherwise, if automatic
4904 # publication is switched on, default value is used for result name.
4906 # @return New GEOM.GEOM_Object, containing the created compound.
4908 # @ref tui_creation_compound "Example"
4909 @ManageTransactions("ShapesOp")
4910 def MakeCompound(self, theShapes, theName=None):
4912 Create a compound of the given shapes.
4915 theShapes List of shapes to put in compound.
4916 theName Object name; when specified, this parameter is used
4917 for result publication in the study. Otherwise, if automatic
4918 publication is switched on, default value is used for result name.
4921 New GEOM.GEOM_Object, containing the created compound.
4923 # Example: see GEOM_TestAll.py
4924 anObj = self.ShapesOp.MakeCompound(ToList(theShapes))
4925 RaiseIfFailed("MakeCompound", self.ShapesOp)
4926 self._autoPublish(anObj, theName, "compound")
4929 ## Create a solid (or solids) from the set of faces and/or shells.
4930 # @param theFacesOrShells List of faces and/or shells.
4931 # @param isIntersect If TRUE, forces performing intersections
4932 # between arguments; otherwise (default) intersection is not performed.
4933 # @param theName Object name; when specified, this parameter is used
4934 # for result publication in the study. Otherwise, if automatic
4935 # publication is switched on, default value is used for result name.
4937 # @return New GEOM.GEOM_Object, containing the created solid (or compound of solids).
4939 # @ref tui_creation_solid_from_faces "Example"
4940 @ManageTransactions("ShapesOp")
4941 def MakeSolidFromConnectedFaces(self, theFacesOrShells, isIntersect = False, theName=None):
4943 Create a solid (or solids) from the set of connected faces and/or shells.
4946 theFacesOrShells List of faces and/or shells.
4947 isIntersect If TRUE, forces performing intersections
4948 between arguments; otherwise (default) intersection is not performed
4949 theName Object name; when specified, this parameter is used.
4950 for result publication in the study. Otherwise, if automatic
4951 publication is switched on, default value is used for result name.
4954 New GEOM.GEOM_Object, containing the created solid (or compound of solids).
4956 # Example: see GEOM_TestAll.py
4957 anObj = self.ShapesOp.MakeSolidFromConnectedFaces(theFacesOrShells, isIntersect)
4958 RaiseIfFailed("MakeSolidFromConnectedFaces", self.ShapesOp)
4959 self._autoPublish(anObj, theName, "solid")
4962 # end of l3_basic_go
4965 ## @addtogroup l2_measure
4968 ## Gives quantity of faces in the given shape.
4969 # @param theShape Shape to count faces of.
4970 # @return Quantity of faces.
4972 # @ref swig_NumberOf "Example"
4973 @ManageTransactions("ShapesOp")
4974 def NumberOfFaces(self, theShape):
4976 Gives quantity of faces in the given shape.
4979 theShape Shape to count faces of.
4984 # Example: see GEOM_TestOthers.py
4985 nb_faces = self.ShapesOp.NumberOfFaces(theShape)
4986 RaiseIfFailed("NumberOfFaces", self.ShapesOp)
4989 ## Gives quantity of edges in the given shape.
4990 # @param theShape Shape to count edges of.
4991 # @return Quantity of edges.
4993 # @ref swig_NumberOf "Example"
4994 @ManageTransactions("ShapesOp")
4995 def NumberOfEdges(self, theShape):
4997 Gives quantity of edges in the given shape.
5000 theShape Shape to count edges of.
5005 # Example: see GEOM_TestOthers.py
5006 nb_edges = self.ShapesOp.NumberOfEdges(theShape)
5007 RaiseIfFailed("NumberOfEdges", self.ShapesOp)
5010 ## Gives quantity of sub-shapes of type theShapeType in the given shape.
5011 # @param theShape Shape to count sub-shapes of.
5012 # @param theShapeType Type of sub-shapes to count (see ShapeType())
5013 # @return Quantity of sub-shapes of given type.
5015 # @ref swig_NumberOf "Example"
5016 @ManageTransactions("ShapesOp")
5017 def NumberOfSubShapes(self, theShape, theShapeType):
5019 Gives quantity of sub-shapes of type theShapeType in the given shape.
5022 theShape Shape to count sub-shapes of.
5023 theShapeType Type of sub-shapes to count (see geompy.ShapeType)
5026 Quantity of sub-shapes of given type.
5028 # Example: see GEOM_TestOthers.py
5029 nb_ss = self.ShapesOp.NumberOfSubShapes(theShape, theShapeType)
5030 RaiseIfFailed("NumberOfSubShapes", self.ShapesOp)
5033 ## Gives quantity of solids in the given shape.
5034 # @param theShape Shape to count solids in.
5035 # @return Quantity of solids.
5037 # @ref swig_NumberOf "Example"
5038 @ManageTransactions("ShapesOp")
5039 def NumberOfSolids(self, theShape):
5041 Gives quantity of solids in the given shape.
5044 theShape Shape to count solids in.
5049 # Example: see GEOM_TestOthers.py
5050 nb_solids = self.ShapesOp.NumberOfSubShapes(theShape, self.ShapeType["SOLID"])
5051 RaiseIfFailed("NumberOfSolids", self.ShapesOp)
5057 ## @addtogroup l3_healing
5060 ## Reverses an orientation the given shape.
5061 # @param theShape Shape to be reversed.
5062 # @param theName Object name; when specified, this parameter is used
5063 # for result publication in the study. Otherwise, if automatic
5064 # publication is switched on, default value is used for result name.
5066 # @return The reversed copy of theShape.
5068 # @ref swig_ChangeOrientation "Example"
5069 @ManageTransactions("ShapesOp")
5070 def ChangeOrientation(self, theShape, theName=None):
5072 Reverses an orientation the given shape.
5075 theShape Shape to be reversed.
5076 theName Object name; when specified, this parameter is used
5077 for result publication in the study. Otherwise, if automatic
5078 publication is switched on, default value is used for result name.
5081 The reversed copy of theShape.
5083 # Example: see GEOM_TestAll.py
5084 anObj = self.ShapesOp.ChangeOrientation(theShape)
5085 RaiseIfFailed("ChangeOrientation", self.ShapesOp)
5086 self._autoPublish(anObj, theName, "reversed")
5089 ## See ChangeOrientation() method for details.
5091 # @ref swig_OrientationChange "Example"
5092 def OrientationChange(self, theShape, theName=None):
5094 See geompy.ChangeOrientation method for details.
5096 # Example: see GEOM_TestOthers.py
5097 # note: auto-publishing is done in self.ChangeOrientation()
5098 anObj = self.ChangeOrientation(theShape, theName)
5104 ## @addtogroup l4_obtain
5107 ## Retrieve all free faces from the given shape.
5108 # Free face is a face, which is not shared between two shells of the shape.
5109 # @param theShape Shape to find free faces in.
5110 # @return List of IDs of all free faces, contained in theShape.
5112 # @ref tui_free_faces_page "Example"
5113 @ManageTransactions("ShapesOp")
5114 def GetFreeFacesIDs(self,theShape):
5116 Retrieve all free faces from the given shape.
5117 Free face is a face, which is not shared between two shells of the shape.
5120 theShape Shape to find free faces in.
5123 List of IDs of all free faces, contained in theShape.
5125 # Example: see GEOM_TestOthers.py
5126 anIDs = self.ShapesOp.GetFreeFacesIDs(theShape)
5127 RaiseIfFailed("GetFreeFacesIDs", self.ShapesOp)
5130 ## Get all sub-shapes of theShape1 of the given type, shared with theShape2.
5131 # @param theShape1 Shape to find sub-shapes in.
5132 # @param theShape2 Shape to find shared sub-shapes with.
5133 # @param theShapeType Type of sub-shapes to be retrieved.
5134 # @param theName Object name; when specified, this parameter is used
5135 # for result publication in the study. Otherwise, if automatic
5136 # publication is switched on, default value is used for result name.
5138 # @return List of sub-shapes of theShape1, shared with theShape2.
5140 # @ref swig_GetSharedShapes "Example"
5141 @ManageTransactions("ShapesOp")
5142 def GetSharedShapes(self, theShape1, theShape2, theShapeType, theName=None):
5144 Get all sub-shapes of theShape1 of the given type, shared with theShape2.
5147 theShape1 Shape to find sub-shapes in.
5148 theShape2 Shape to find shared sub-shapes with.
5149 theShapeType Type of sub-shapes to be retrieved.
5150 theName Object name; when specified, this parameter is used
5151 for result publication in the study. Otherwise, if automatic
5152 publication is switched on, default value is used for result name.
5155 List of sub-shapes of theShape1, shared with theShape2.
5157 # Example: see GEOM_TestOthers.py
5158 aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType)
5159 RaiseIfFailed("GetSharedShapes", self.ShapesOp)
5160 self._autoPublish(aList, theName, "shared")
5163 ## Get sub-shapes, shared by input shapes.
5164 # @param theShapes Either a list or compound of shapes to find common sub-shapes of.
5165 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType()).
5166 # @param theMultiShare Specifies what type of shares should be checked:
5167 # - @c True (default): search sub-shapes from 1st input shape shared with all other input shapes;
5168 # - @c False: causes to search sub-shapes shared between couples of input shapes.
5169 # @param theName Object name; when specified, this parameter is used
5170 # for result publication in the study. Otherwise, if automatic
5171 # publication is switched on, default value is used for result name.
5173 # @note If @a theShapes contains single compound, the shares between all possible couples of
5174 # its top-level shapes are returned; otherwise, only shares between 1st input shape
5175 # and all rest input shapes are returned.
5177 # @return List of all found sub-shapes.
5180 # - @ref tui_shared_shapes "Example 1"
5181 # - @ref swig_GetSharedShapes "Example 2"
5182 @ManageTransactions("ShapesOp")
5183 def GetSharedShapesMulti(self, theShapes, theShapeType, theMultiShare=True, theName=None):
5185 Get sub-shapes, shared by input shapes.
5188 theShapes Either a list or compound of shapes to find common sub-shapes of.
5189 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType).
5190 theMultiShare Specifies what type of shares should be checked:
5191 - True (default): search sub-shapes from 1st input shape shared with all other input shapes;
5192 - False: causes to search sub-shapes shared between couples of input shapes.
5193 theName Object name; when specified, this parameter is used
5194 for result publication in the study. Otherwise, if automatic
5195 publication is switched on, default value is used for result name.
5197 Note: if theShapes contains single compound, the shares between all possible couples of
5198 its top-level shapes are returned; otherwise, only shares between 1st input shape
5199 and all rest input shapes are returned.
5202 List of all found sub-shapes.
5204 # Example: see GEOM_TestOthers.py
5205 aList = self.ShapesOp.GetSharedShapesMulti(ToList(theShapes), theShapeType, theMultiShare)
5206 RaiseIfFailed("GetSharedShapesMulti", self.ShapesOp)
5207 self._autoPublish(aList, theName, "shared")
5210 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5211 # situated relatively the specified plane by the certain way,
5212 # defined through <VAR>theState</VAR> parameter.
5213 # @param theShape Shape to find sub-shapes of.
5214 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5215 # @param theAx1 Vector (or line, or linear edge), specifying normal
5216 # direction and location of the plane to find shapes on.
5217 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5218 # @param theName Object name; when specified, this parameter is used
5219 # for result publication in the study. Otherwise, if automatic
5220 # publication is switched on, default value is used for result name.
5222 # @return List of all found sub-shapes.
5224 # @ref swig_GetShapesOnPlane "Example"
5225 @ManageTransactions("ShapesOp")
5226 def GetShapesOnPlane(self, theShape, theShapeType, theAx1, theState, theName=None):
5228 Find in theShape all sub-shapes of type theShapeType,
5229 situated relatively the specified plane by the certain way,
5230 defined through theState parameter.
5233 theShape Shape to find sub-shapes of.
5234 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5235 theAx1 Vector (or line, or linear edge), specifying normal
5236 direction and location of the plane to find shapes on.
5237 theState The state of the sub-shapes to find (see GEOM::shape_state)
5238 theName Object name; when specified, this parameter is used
5239 for result publication in the study. Otherwise, if automatic
5240 publication is switched on, default value is used for result name.
5243 List of all found sub-shapes.
5245 # Example: see GEOM_TestOthers.py
5246 aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState)
5247 RaiseIfFailed("GetShapesOnPlane", self.ShapesOp)
5248 self._autoPublish(aList, theName, "shapeOnPlane")
5251 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5252 # situated relatively the specified plane by the certain way,
5253 # defined through <VAR>theState</VAR> parameter.
5254 # @param theShape Shape to find sub-shapes of.
5255 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5256 # @param theAx1 Vector (or line, or linear edge), specifying normal
5257 # direction and location of the plane to find shapes on.
5258 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5260 # @return List of all found sub-shapes indices.
5262 # @ref swig_GetShapesOnPlaneIDs "Example"
5263 @ManageTransactions("ShapesOp")
5264 def GetShapesOnPlaneIDs(self, theShape, theShapeType, theAx1, theState):
5266 Find in theShape all sub-shapes of type theShapeType,
5267 situated relatively the specified plane by the certain way,
5268 defined through theState parameter.
5271 theShape Shape to find sub-shapes of.
5272 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5273 theAx1 Vector (or line, or linear edge), specifying normal
5274 direction and location of the plane to find shapes on.
5275 theState The state of the sub-shapes to find (see GEOM::shape_state)
5278 List of all found sub-shapes indices.
5280 # Example: see GEOM_TestOthers.py
5281 aList = self.ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState)
5282 RaiseIfFailed("GetShapesOnPlaneIDs", self.ShapesOp)
5285 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5286 # situated relatively the specified plane by the certain way,
5287 # defined through <VAR>theState</VAR> parameter.
5288 # @param theShape Shape to find sub-shapes of.
5289 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5290 # @param theAx1 Vector (or line, or linear edge), specifying normal
5291 # direction of the plane to find shapes on.
5292 # @param thePnt Point specifying location of the plane to find shapes on.
5293 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5294 # @param theName Object name; when specified, this parameter is used
5295 # for result publication in the study. Otherwise, if automatic
5296 # publication is switched on, default value is used for result name.
5298 # @return List of all found sub-shapes.
5300 # @ref swig_GetShapesOnPlaneWithLocation "Example"
5301 @ManageTransactions("ShapesOp")
5302 def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState, theName=None):
5304 Find in theShape all sub-shapes of type theShapeType,
5305 situated relatively the specified plane by the certain way,
5306 defined through theState parameter.
5309 theShape Shape to find sub-shapes of.
5310 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5311 theAx1 Vector (or line, or linear edge), specifying normal
5312 direction and location of the plane to find shapes on.
5313 thePnt Point specifying location of the plane to find shapes on.
5314 theState The state of the sub-shapes to find (see GEOM::shape_state)
5315 theName Object name; when specified, this parameter is used
5316 for result publication in the study. Otherwise, if automatic
5317 publication is switched on, default value is used for result name.
5320 List of all found sub-shapes.
5322 # Example: see GEOM_TestOthers.py
5323 aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType,
5324 theAx1, thePnt, theState)
5325 RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp)
5326 self._autoPublish(aList, theName, "shapeOnPlane")
5329 ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
5330 # situated relatively the specified plane by the certain way,
5331 # defined through <VAR>theState</VAR> parameter.
5332 # @param theShape Shape to find sub-shapes of.
5333 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5334 # @param theAx1 Vector (or line, or linear edge), specifying normal
5335 # direction of the plane to find shapes on.
5336 # @param thePnt Point specifying location of the plane to find shapes on.
5337 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5339 # @return List of all found sub-shapes indices.
5341 # @ref swig_GetShapesOnPlaneWithLocationIDs "Example"
5342 @ManageTransactions("ShapesOp")
5343 def GetShapesOnPlaneWithLocationIDs(self, theShape, theShapeType, theAx1, thePnt, theState):
5345 Find in theShape all sub-shapes of type theShapeType,
5346 situated relatively the specified plane by the certain way,
5347 defined through theState parameter.
5350 theShape Shape to find sub-shapes of.
5351 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5352 theAx1 Vector (or line, or linear edge), specifying normal
5353 direction and location of the plane to find shapes on.
5354 thePnt Point specifying location of the plane to find shapes on.
5355 theState The state of the sub-shapes to find (see GEOM::shape_state)
5358 List of all found sub-shapes indices.
5360 # Example: see GEOM_TestOthers.py
5361 aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType,
5362 theAx1, thePnt, theState)
5363 RaiseIfFailed("GetShapesOnPlaneWithLocationIDs", self.ShapesOp)
5366 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5367 # the specified cylinder by the certain way, defined through \a theState parameter.
5368 # @param theShape Shape to find sub-shapes of.
5369 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5370 # @param theAxis Vector (or line, or linear edge), specifying
5371 # axis of the cylinder to find shapes on.
5372 # @param theRadius Radius of the cylinder to find shapes on.
5373 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5374 # @param theName Object name; when specified, this parameter is used
5375 # for result publication in the study. Otherwise, if automatic
5376 # publication is switched on, default value is used for result name.
5378 # @return List of all found sub-shapes.
5380 # @ref swig_GetShapesOnCylinder "Example"
5381 @ManageTransactions("ShapesOp")
5382 def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState, theName=None):
5384 Find in theShape all sub-shapes of type theShapeType, situated relatively
5385 the specified cylinder by the certain way, defined through theState parameter.
5388 theShape Shape to find sub-shapes of.
5389 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5390 theAxis Vector (or line, or linear edge), specifying
5391 axis of the cylinder to find shapes on.
5392 theRadius Radius of the cylinder to find shapes on.
5393 theState The state of the sub-shapes to find (see GEOM::shape_state)
5394 theName Object name; when specified, this parameter is used
5395 for result publication in the study. Otherwise, if automatic
5396 publication is switched on, default value is used for result name.
5399 List of all found sub-shapes.
5401 # Example: see GEOM_TestOthers.py
5402 aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState)
5403 RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp)
5404 self._autoPublish(aList, theName, "shapeOnCylinder")
5407 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5408 # the specified cylinder by the certain way, defined through \a theState parameter.
5409 # @param theShape Shape to find sub-shapes of.
5410 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5411 # @param theAxis Vector (or line, or linear edge), specifying
5412 # axis of the cylinder to find shapes on.
5413 # @param theRadius Radius of the cylinder to find shapes on.
5414 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5416 # @return List of all found sub-shapes indices.
5418 # @ref swig_GetShapesOnCylinderIDs "Example"
5419 @ManageTransactions("ShapesOp")
5420 def GetShapesOnCylinderIDs(self, theShape, theShapeType, theAxis, theRadius, theState):
5422 Find in theShape all sub-shapes of type theShapeType, situated relatively
5423 the specified cylinder by the certain way, defined through theState parameter.
5426 theShape Shape to find sub-shapes of.
5427 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5428 theAxis Vector (or line, or linear edge), specifying
5429 axis of the cylinder to find shapes on.
5430 theRadius Radius of the cylinder to find shapes on.
5431 theState The state of the sub-shapes to find (see GEOM::shape_state)
5434 List of all found sub-shapes indices.
5436 # Example: see GEOM_TestOthers.py
5437 aList = self.ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState)
5438 RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp)
5441 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5442 # the specified cylinder by the certain way, defined through \a theState parameter.
5443 # @param theShape Shape to find sub-shapes of.
5444 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5445 # @param theAxis Vector (or line, or linear edge), specifying
5446 # axis of the cylinder to find shapes on.
5447 # @param thePnt Point specifying location of the bottom of the cylinder.
5448 # @param theRadius Radius of the cylinder to find shapes on.
5449 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5450 # @param theName Object name; when specified, this parameter is used
5451 # for result publication in the study. Otherwise, if automatic
5452 # publication is switched on, default value is used for result name.
5454 # @return List of all found sub-shapes.
5456 # @ref swig_GetShapesOnCylinderWithLocation "Example"
5457 @ManageTransactions("ShapesOp")
5458 def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState, theName=None):
5460 Find in theShape all sub-shapes of type theShapeType, situated relatively
5461 the specified cylinder by the certain way, defined through theState parameter.
5464 theShape Shape to find sub-shapes of.
5465 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5466 theAxis Vector (or line, or linear edge), specifying
5467 axis of the cylinder to find shapes on.
5468 theRadius Radius of the cylinder to find shapes on.
5469 theState The state of the sub-shapes to find (see GEOM::shape_state)
5470 theName Object name; when specified, this parameter is used
5471 for result publication in the study. Otherwise, if automatic
5472 publication is switched on, default value is used for result name.
5475 List of all found sub-shapes.
5477 # Example: see GEOM_TestOthers.py
5478 aList = self.ShapesOp.GetShapesOnCylinderWithLocation(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
5479 RaiseIfFailed("GetShapesOnCylinderWithLocation", self.ShapesOp)
5480 self._autoPublish(aList, theName, "shapeOnCylinder")
5483 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5484 # the specified cylinder by the certain way, defined through \a theState parameter.
5485 # @param theShape Shape to find sub-shapes of.
5486 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5487 # @param theAxis Vector (or line, or linear edge), specifying
5488 # axis of the cylinder to find shapes on.
5489 # @param thePnt Point specifying location of the bottom of the cylinder.
5490 # @param theRadius Radius of the cylinder to find shapes on.
5491 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5493 # @return List of all found sub-shapes indices
5495 # @ref swig_GetShapesOnCylinderWithLocationIDs "Example"
5496 @ManageTransactions("ShapesOp")
5497 def GetShapesOnCylinderWithLocationIDs(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
5499 Find in theShape all sub-shapes of type theShapeType, situated relatively
5500 the specified cylinder by the certain way, defined through theState parameter.
5503 theShape Shape to find sub-shapes of.
5504 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5505 theAxis Vector (or line, or linear edge), specifying
5506 axis of the cylinder to find shapes on.
5507 theRadius Radius of the cylinder to find shapes on.
5508 theState The state of the sub-shapes to find (see GEOM::shape_state)
5511 List of all found sub-shapes indices.
5513 # Example: see GEOM_TestOthers.py
5514 aList = self.ShapesOp.GetShapesOnCylinderWithLocationIDs(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
5515 RaiseIfFailed("GetShapesOnCylinderWithLocationIDs", self.ShapesOp)
5518 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5519 # the specified sphere by the certain way, defined through \a theState parameter.
5520 # @param theShape Shape to find sub-shapes of.
5521 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5522 # @param theCenter Point, specifying center of the sphere to find shapes on.
5523 # @param theRadius Radius of the sphere to find shapes on.
5524 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5525 # @param theName Object name; when specified, this parameter is used
5526 # for result publication in the study. Otherwise, if automatic
5527 # publication is switched on, default value is used for result name.
5529 # @return List of all found sub-shapes.
5531 # @ref swig_GetShapesOnSphere "Example"
5532 @ManageTransactions("ShapesOp")
5533 def GetShapesOnSphere(self, theShape, theShapeType, theCenter, theRadius, theState, theName=None):
5535 Find in theShape all sub-shapes of type theShapeType, situated relatively
5536 the specified sphere by the certain way, defined through theState parameter.
5539 theShape Shape to find sub-shapes of.
5540 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5541 theCenter Point, specifying center of the sphere to find shapes on.
5542 theRadius Radius of the sphere to find shapes on.
5543 theState The state of the sub-shapes to find (see GEOM::shape_state)
5544 theName Object name; when specified, this parameter is used
5545 for result publication in the study. Otherwise, if automatic
5546 publication is switched on, default value is used for result name.
5549 List of all found sub-shapes.
5551 # Example: see GEOM_TestOthers.py
5552 aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState)
5553 RaiseIfFailed("GetShapesOnSphere", self.ShapesOp)
5554 self._autoPublish(aList, theName, "shapeOnSphere")
5557 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5558 # the specified sphere by the certain way, defined through \a theState parameter.
5559 # @param theShape Shape to find sub-shapes of.
5560 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5561 # @param theCenter Point, specifying center of the sphere to find shapes on.
5562 # @param theRadius Radius of the sphere to find shapes on.
5563 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5565 # @return List of all found sub-shapes indices.
5567 # @ref swig_GetShapesOnSphereIDs "Example"
5568 @ManageTransactions("ShapesOp")
5569 def GetShapesOnSphereIDs(self, theShape, theShapeType, theCenter, theRadius, theState):
5571 Find in theShape all sub-shapes of type theShapeType, situated relatively
5572 the specified sphere by the certain way, defined through theState parameter.
5575 theShape Shape to find sub-shapes of.
5576 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5577 theCenter Point, specifying center of the sphere to find shapes on.
5578 theRadius Radius of the sphere to find shapes on.
5579 theState The state of the sub-shapes to find (see GEOM::shape_state)
5582 List of all found sub-shapes indices.
5584 # Example: see GEOM_TestOthers.py
5585 aList = self.ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState)
5586 RaiseIfFailed("GetShapesOnSphereIDs", self.ShapesOp)
5589 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5590 # the specified quadrangle by the certain way, defined through \a theState parameter.
5591 # @param theShape Shape to find sub-shapes of.
5592 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5593 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
5594 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
5595 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5596 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5597 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5598 # @param theName Object name; when specified, this parameter is used
5599 # for result publication in the study. Otherwise, if automatic
5600 # publication is switched on, default value is used for result name.
5602 # @return List of all found sub-shapes.
5604 # @ref swig_GetShapesOnQuadrangle "Example"
5605 @ManageTransactions("ShapesOp")
5606 def GetShapesOnQuadrangle(self, theShape, theShapeType,
5607 theTopLeftPoint, theTopRigthPoint,
5608 theBottomLeftPoint, theBottomRigthPoint, theState, theName=None):
5610 Find in theShape all sub-shapes of type theShapeType, situated relatively
5611 the specified quadrangle by the certain way, defined through theState parameter.
5614 theShape Shape to find sub-shapes of.
5615 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5616 theTopLeftPoint Point, specifying top left corner of a quadrangle
5617 theTopRigthPoint Point, specifying top right corner of a quadrangle
5618 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5619 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5620 theState The state of the sub-shapes to find (see GEOM::shape_state)
5621 theName Object name; when specified, this parameter is used
5622 for result publication in the study. Otherwise, if automatic
5623 publication is switched on, default value is used for result name.
5626 List of all found sub-shapes.
5628 # Example: see GEOM_TestOthers.py
5629 aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType,
5630 theTopLeftPoint, theTopRigthPoint,
5631 theBottomLeftPoint, theBottomRigthPoint, theState)
5632 RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp)
5633 self._autoPublish(aList, theName, "shapeOnQuadrangle")
5636 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5637 # the specified quadrangle by the certain way, defined through \a theState parameter.
5638 # @param theShape Shape to find sub-shapes of.
5639 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5640 # @param theTopLeftPoint Point, specifying top left corner of a quadrangle
5641 # @param theTopRigthPoint Point, specifying top right corner of a quadrangle
5642 # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5643 # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5644 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5646 # @return List of all found sub-shapes indices.
5648 # @ref swig_GetShapesOnQuadrangleIDs "Example"
5649 @ManageTransactions("ShapesOp")
5650 def GetShapesOnQuadrangleIDs(self, theShape, theShapeType,
5651 theTopLeftPoint, theTopRigthPoint,
5652 theBottomLeftPoint, theBottomRigthPoint, theState):
5654 Find in theShape all sub-shapes of type theShapeType, situated relatively
5655 the specified quadrangle by the certain way, defined through theState parameter.
5658 theShape Shape to find sub-shapes of.
5659 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5660 theTopLeftPoint Point, specifying top left corner of a quadrangle
5661 theTopRigthPoint Point, specifying top right corner of a quadrangle
5662 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
5663 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
5664 theState The state of the sub-shapes to find (see GEOM::shape_state)
5667 List of all found sub-shapes indices.
5670 # Example: see GEOM_TestOthers.py
5671 aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType,
5672 theTopLeftPoint, theTopRigthPoint,
5673 theBottomLeftPoint, theBottomRigthPoint, theState)
5674 RaiseIfFailed("GetShapesOnQuadrangleIDs", self.ShapesOp)
5677 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5678 # the specified \a theBox by the certain way, defined through \a theState parameter.
5679 # @param theBox Shape for relative comparing.
5680 # @param theShape Shape to find sub-shapes of.
5681 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5682 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5683 # @param theName Object name; when specified, this parameter is used
5684 # for result publication in the study. Otherwise, if automatic
5685 # publication is switched on, default value is used for result name.
5687 # @return List of all found sub-shapes.
5689 # @ref swig_GetShapesOnBox "Example"
5690 @ManageTransactions("ShapesOp")
5691 def GetShapesOnBox(self, theBox, theShape, theShapeType, theState, theName=None):
5693 Find in theShape all sub-shapes of type theShapeType, situated relatively
5694 the specified theBox by the certain way, defined through theState parameter.
5697 theBox Shape for relative comparing.
5698 theShape Shape to find sub-shapes of.
5699 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5700 theState The state of the sub-shapes to find (see GEOM::shape_state)
5701 theName Object name; when specified, this parameter is used
5702 for result publication in the study. Otherwise, if automatic
5703 publication is switched on, default value is used for result name.
5706 List of all found sub-shapes.
5708 # Example: see GEOM_TestOthers.py
5709 aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState)
5710 RaiseIfFailed("GetShapesOnBox", self.ShapesOp)
5711 self._autoPublish(aList, theName, "shapeOnBox")
5714 ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
5715 # the specified \a theBox by the certain way, defined through \a theState parameter.
5716 # @param theBox Shape for relative comparing.
5717 # @param theShape Shape to find sub-shapes of.
5718 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5719 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5721 # @return List of all found sub-shapes indices.
5723 # @ref swig_GetShapesOnBoxIDs "Example"
5724 @ManageTransactions("ShapesOp")
5725 def GetShapesOnBoxIDs(self, theBox, theShape, theShapeType, theState):
5727 Find in theShape all sub-shapes of type theShapeType, situated relatively
5728 the specified theBox by the certain way, defined through theState parameter.
5731 theBox Shape for relative comparing.
5732 theShape Shape to find sub-shapes of.
5733 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5734 theState The state of the sub-shapes to find (see GEOM::shape_state)
5737 List of all found sub-shapes indices.
5739 # Example: see GEOM_TestOthers.py
5740 aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState)
5741 RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp)
5744 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5745 # situated relatively the specified \a theCheckShape by the
5746 # certain way, defined through \a theState parameter.
5747 # @param theCheckShape Shape for relative comparing. It must be a solid.
5748 # @param theShape Shape to find sub-shapes of.
5749 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5750 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5751 # @param theName Object name; when specified, this parameter is used
5752 # for result publication in the study. Otherwise, if automatic
5753 # publication is switched on, default value is used for result name.
5755 # @return List of all found sub-shapes.
5757 # @ref swig_GetShapesOnShape "Example"
5758 @ManageTransactions("ShapesOp")
5759 def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5761 Find in theShape all sub-shapes of type theShapeType,
5762 situated relatively the specified theCheckShape by the
5763 certain way, defined through theState parameter.
5766 theCheckShape Shape for relative comparing. It must be a solid.
5767 theShape Shape to find sub-shapes of.
5768 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5769 theState The state of the sub-shapes to find (see GEOM::shape_state)
5770 theName Object name; when specified, this parameter is used
5771 for result publication in the study. Otherwise, if automatic
5772 publication is switched on, default value is used for result name.
5775 List of all found sub-shapes.
5777 # Example: see GEOM_TestOthers.py
5778 aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape,
5779 theShapeType, theState)
5780 RaiseIfFailed("GetShapesOnShape", self.ShapesOp)
5781 self._autoPublish(aList, theName, "shapeOnShape")
5784 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5785 # situated relatively the specified \a theCheckShape by the
5786 # certain way, defined through \a theState parameter.
5787 # @param theCheckShape Shape for relative comparing. It must be a solid.
5788 # @param theShape Shape to find sub-shapes of.
5789 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5790 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5791 # @param theName Object name; when specified, this parameter is used
5792 # for result publication in the study. Otherwise, if automatic
5793 # publication is switched on, default value is used for result name.
5795 # @return All found sub-shapes as compound.
5797 # @ref swig_GetShapesOnShapeAsCompound "Example"
5798 @ManageTransactions("ShapesOp")
5799 def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState, theName=None):
5801 Find in theShape all sub-shapes of type theShapeType,
5802 situated relatively the specified theCheckShape by the
5803 certain way, defined through theState parameter.
5806 theCheckShape Shape for relative comparing. It must be a solid.
5807 theShape Shape to find sub-shapes of.
5808 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5809 theState The state of the sub-shapes to find (see GEOM::shape_state)
5810 theName Object name; when specified, this parameter is used
5811 for result publication in the study. Otherwise, if automatic
5812 publication is switched on, default value is used for result name.
5815 All found sub-shapes as compound.
5817 # Example: see GEOM_TestOthers.py
5818 anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape,
5819 theShapeType, theState)
5820 RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp)
5821 self._autoPublish(anObj, theName, "shapeOnShape")
5824 ## Find in \a theShape all sub-shapes of type \a theShapeType,
5825 # situated relatively the specified \a theCheckShape by the
5826 # certain way, defined through \a theState parameter.
5827 # @param theCheckShape Shape for relative comparing. It must be a solid.
5828 # @param theShape Shape to find sub-shapes of.
5829 # @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
5830 # @param theState The state of the sub-shapes to find (see GEOM::shape_state)
5832 # @return List of all found sub-shapes indices.
5834 # @ref swig_GetShapesOnShapeIDs "Example"
5835 @ManageTransactions("ShapesOp")
5836 def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState):
5838 Find in theShape all sub-shapes of type theShapeType,
5839 situated relatively the specified theCheckShape by the
5840 certain way, defined through theState parameter.
5843 theCheckShape Shape for relative comparing. It must be a solid.
5844 theShape Shape to find sub-shapes of.
5845 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
5846 theState The state of the sub-shapes to find (see GEOM::shape_state)
5849 List of all found sub-shapes indices.
5851 # Example: see GEOM_TestOthers.py
5852 aList = self.ShapesOp.GetShapesOnShapeIDs(theCheckShape, theShape,
5853 theShapeType, theState)
5854 RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp)
5857 ## Get sub-shape(s) of theShapeWhere, which are
5858 # coincident with \a theShapeWhat or could be a part of it.
5859 # @param theShapeWhere Shape to find sub-shapes of.
5860 # @param theShapeWhat Shape, specifying what to find.
5861 # @param isNewImplementation implementation of GetInPlace functionality
5862 # (default = False, old alghorithm based on shape properties)
5863 # @param theName Object name; when specified, this parameter is used
5864 # for result publication in the study. Otherwise, if automatic
5865 # publication is switched on, default value is used for result name.
5867 # @return Group of all found sub-shapes or a single found sub-shape.
5869 # @note This function has a restriction on argument shapes.
5870 # If \a theShapeWhere has curved parts with significantly
5871 # outstanding centres (i.e. the mass centre of a part is closer to
5872 # \a theShapeWhat than to the part), such parts will not be found.
5873 # @image html get_in_place_lost_part.png
5875 # @ref swig_GetInPlace "Example"
5876 @ManageTransactions("ShapesOp")
5877 def GetInPlace(self, theShapeWhere, theShapeWhat, isNewImplementation = False, theName=None):
5879 Get sub-shape(s) of theShapeWhere, which are
5880 coincident with theShapeWhat or could be a part of it.
5883 theShapeWhere Shape to find sub-shapes of.
5884 theShapeWhat Shape, specifying what to find.
5885 isNewImplementation Implementation of GetInPlace functionality
5886 (default = False, old alghorithm based on shape properties)
5887 theName Object name; when specified, this parameter is used
5888 for result publication in the study. Otherwise, if automatic
5889 publication is switched on, default value is used for result name.
5892 Group of all found sub-shapes or a single found sub-shape.
5896 This function has a restriction on argument shapes.
5897 If theShapeWhere has curved parts with significantly
5898 outstanding centres (i.e. the mass centre of a part is closer to
5899 theShapeWhat than to the part), such parts will not be found.
5901 # Example: see GEOM_TestOthers.py
5903 if isNewImplementation:
5904 anObj = self.ShapesOp.GetInPlace(theShapeWhere, theShapeWhat)
5906 anObj = self.ShapesOp.GetInPlaceOld(theShapeWhere, theShapeWhat)
5908 RaiseIfFailed("GetInPlace", self.ShapesOp)
5909 self._autoPublish(anObj, theName, "inplace")
5912 ## Get sub-shape(s) of \a theShapeWhere, which are
5913 # coincident with \a theShapeWhat or could be a part of it.
5915 # Implementation of this method is based on a saved history of an operation,
5916 # produced \a theShapeWhere. The \a theShapeWhat must be among this operation's
5917 # arguments (an argument shape or a sub-shape of an argument shape).
5918 # The operation could be the Partition or one of boolean operations,
5919 # performed on simple shapes (not on compounds).
5921 # @param theShapeWhere Shape to find sub-shapes of.
5922 # @param theShapeWhat Shape, specifying what to find (must be in the
5923 # building history of the ShapeWhere).
5924 # @param theName Object name; when specified, this parameter is used
5925 # for result publication in the study. Otherwise, if automatic
5926 # publication is switched on, default value is used for result name.
5928 # @return Group of all found sub-shapes or a single found sub-shape.
5930 # @ref swig_GetInPlace "Example"
5931 @ManageTransactions("ShapesOp")
5932 def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat, theName=None):
5934 Implementation of this method is based on a saved history of an operation,
5935 produced theShapeWhere. The theShapeWhat must be among this operation's
5936 arguments (an argument shape or a sub-shape of an argument shape).
5937 The operation could be the Partition or one of boolean operations,
5938 performed on simple shapes (not on compounds).
5941 theShapeWhere Shape to find sub-shapes of.
5942 theShapeWhat Shape, specifying what to find (must be in the
5943 building history of the ShapeWhere).
5944 theName Object name; when specified, this parameter is used
5945 for result publication in the study. Otherwise, if automatic
5946 publication is switched on, default value is used for result name.
5949 Group of all found sub-shapes or a single found sub-shape.
5951 # Example: see GEOM_TestOthers.py
5952 anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)
5953 RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp)
5954 self._autoPublish(anObj, theName, "inplace")
5957 ## Get sub-shape of theShapeWhere, which is
5958 # equal to \a theShapeWhat.
5959 # @param theShapeWhere Shape to find sub-shape of.
5960 # @param theShapeWhat Shape, specifying what to find.
5961 # @param theName Object name; when specified, this parameter is used
5962 # for result publication in the study. Otherwise, if automatic
5963 # publication is switched on, default value is used for result name.
5965 # @return New GEOM.GEOM_Object for found sub-shape.
5967 # @ref swig_GetSame "Example"
5968 @ManageTransactions("ShapesOp")
5969 def GetSame(self, theShapeWhere, theShapeWhat, theName=None):
5971 Get sub-shape of theShapeWhere, which is
5972 equal to theShapeWhat.
5975 theShapeWhere Shape to find sub-shape of.
5976 theShapeWhat Shape, specifying what to find.
5977 theName Object name; when specified, this parameter is used
5978 for result publication in the study. Otherwise, if automatic
5979 publication is switched on, default value is used for result name.
5982 New GEOM.GEOM_Object for found sub-shape.
5984 anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat)
5985 RaiseIfFailed("GetSame", self.ShapesOp)
5986 self._autoPublish(anObj, theName, "sameShape")
5990 ## Get sub-shape indices of theShapeWhere, which is
5991 # equal to \a theShapeWhat.
5992 # @param theShapeWhere Shape to find sub-shape of.
5993 # @param theShapeWhat Shape, specifying what to find.
5994 # @return List of all found sub-shapes indices.
5996 # @ref swig_GetSame "Example"
5997 @ManageTransactions("ShapesOp")
5998 def GetSameIDs(self, theShapeWhere, theShapeWhat):
6000 Get sub-shape indices of theShapeWhere, which is
6001 equal to theShapeWhat.
6004 theShapeWhere Shape to find sub-shape of.
6005 theShapeWhat Shape, specifying what to find.
6008 List of all found sub-shapes indices.
6010 anObj = self.ShapesOp.GetSameIDs(theShapeWhere, theShapeWhat)
6011 RaiseIfFailed("GetSameIDs", self.ShapesOp)
6014 ## Resize the input edge with the new Min and Max parameters.
6015 # The input edge parameters range is [0, 1]. If theMin parameter is
6016 # negative, the input edge is extended, otherwise it is shrinked by
6017 # theMin parameter. If theMax is greater than 1, the edge is extended,
6018 # otherwise it is shrinked by theMax parameter.
6019 # @param theEdge the input edge to be resized.
6020 # @param theMin the minimal parameter value.
6021 # @param theMax the maximal parameter value.
6022 # @param theName Object name; when specified, this parameter is used
6023 # for result publication in the study. Otherwise, if automatic
6024 # publication is switched on, default value is used for result name.
6025 # @return New GEOM.GEOM_Object, containing the created edge.
6027 # @ref tui_extend "Example"
6028 @ManageTransactions("ShapesOp")
6029 def ExtendEdge(self, theEdge, theMin, theMax, theName=None):
6031 Resize the input edge with the new Min and Max parameters.
6032 The input edge parameters range is [0, 1]. If theMin parameter is
6033 negative, the input edge is extended, otherwise it is shrinked by
6034 theMin parameter. If theMax is greater than 1, the edge is extended,
6035 otherwise it is shrinked by theMax parameter.
6038 theEdge the input edge to be resized.
6039 theMin the minimal parameter value.
6040 theMax the maximal parameter value.
6041 theName Object name; when specified, this parameter is used
6042 for result publication in the study. Otherwise, if automatic
6043 publication is switched on, default value is used for result name.
6046 New GEOM.GEOM_Object, containing the created edge.
6048 theMin, theMax, Parameters = ParseParameters(theMin, theMax)
6049 anObj = self.ShapesOp.ExtendEdge(theEdge, theMin, theMax)
6050 RaiseIfFailed("ExtendEdge", self.ShapesOp)
6051 anObj.SetParameters(Parameters)
6052 self._autoPublish(anObj, theName, "edge")
6055 ## Resize the input face with the new UMin, UMax, VMin and VMax
6056 # parameters. The input face U and V parameters range is [0, 1]. If
6057 # theUMin parameter is negative, the input face is extended, otherwise
6058 # it is shrinked along U direction by theUMin parameter. If theUMax is
6059 # greater than 1, the face is extended, otherwise it is shrinked along
6060 # U direction by theUMax parameter. So as for theVMin, theVMax and
6061 # V direction of the input face.
6062 # @param theFace the input face to be resized.
6063 # @param theUMin the minimal U parameter value.
6064 # @param theUMax the maximal U parameter value.
6065 # @param theVMin the minimal V parameter value.
6066 # @param theVMax the maximal V parameter value.
6067 # @param theName Object name; when specified, this parameter is used
6068 # for result publication in the study. Otherwise, if automatic
6069 # publication is switched on, default value is used for result name.
6070 # @return New GEOM.GEOM_Object, containing the created face.
6072 # @ref tui_extend "Example"
6073 @ManageTransactions("ShapesOp")
6074 def ExtendFace(self, theFace, theUMin, theUMax,
6075 theVMin, theVMax, theName=None):
6077 Resize the input face with the new UMin, UMax, VMin and VMax
6078 parameters. The input face U and V parameters range is [0, 1]. If
6079 theUMin parameter is negative, the input face is extended, otherwise
6080 it is shrinked along U direction by theUMin parameter. If theUMax is
6081 greater than 1, the face is extended, otherwise it is shrinked along
6082 U direction by theUMax parameter. So as for theVMin, theVMax and
6083 V direction of the input face.
6086 theFace the input face to be resized.
6087 theUMin the minimal U parameter value.
6088 theUMax the maximal U parameter value.
6089 theVMin the minimal V parameter value.
6090 theVMax the maximal V parameter value.
6091 theName Object name; when specified, this parameter is used
6092 for result publication in the study. Otherwise, if automatic
6093 publication is switched on, default value is used for result name.
6096 New GEOM.GEOM_Object, containing the created face.
6098 theUMin, theUMax, theVMin, theVMax, Parameters = ParseParameters(theUMin, theUMax, theVMin, theVMax)
6099 anObj = self.ShapesOp.ExtendFace(theFace, theUMin, theUMax,
6101 RaiseIfFailed("ExtendFace", self.ShapesOp)
6102 anObj.SetParameters(Parameters)
6103 self._autoPublish(anObj, theName, "face")
6106 ## This function takes some face as input parameter and creates new
6107 # GEOM_Object, i.e. topological shape by extracting underlying surface
6108 # of the source face and limiting it by the Umin, Umax, Vmin, Vmax
6109 # parameters of the source face (in the parametrical space).
6110 # @param theFace the input face.
6111 # @param theName Object name; when specified, this parameter is used
6112 # for result publication in the study. Otherwise, if automatic
6113 # publication is switched on, default value is used for result name.
6114 # @return New GEOM.GEOM_Object, containing the created face.
6116 # @ref tui_creation_surface "Example"
6117 @ManageTransactions("ShapesOp")
6118 def MakeSurfaceFromFace(self, theFace, theName=None):
6120 This function takes some face as input parameter and creates new
6121 GEOM_Object, i.e. topological shape by extracting underlying surface
6122 of the source face and limiting it by the Umin, Umax, Vmin, Vmax
6123 parameters of the source face (in the parametrical space).
6126 theFace the input face.
6127 theName Object name; when specified, this parameter is used
6128 for result publication in the study. Otherwise, if automatic
6129 publication is switched on, default value is used for result name.
6132 New GEOM.GEOM_Object, containing the created face.
6134 anObj = self.ShapesOp.MakeSurfaceFromFace(theFace)
6135 RaiseIfFailed("MakeSurfaceFromFace", self.ShapesOp)
6136 self._autoPublish(anObj, theName, "surface")
6142 ## @addtogroup l4_access
6145 ## Obtain a composite sub-shape of <VAR>aShape</VAR>, composed from sub-shapes
6146 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
6147 # @param aShape Shape to get sub-shape of.
6148 # @param ListOfID List of sub-shapes indices.
6149 # @param theName Object name; when specified, this parameter is used
6150 # for result publication in the study. Otherwise, if automatic
6151 # publication is switched on, default value is used for result name.
6153 # @return Found sub-shape.
6155 # @ref swig_all_decompose "Example"
6156 def GetSubShape(self, aShape, ListOfID, theName=None):
6158 Obtain a composite sub-shape of aShape, composed from sub-shapes
6159 of aShape, selected by their unique IDs inside aShape
6162 aShape Shape to get sub-shape of.
6163 ListOfID List of sub-shapes indices.
6164 theName Object name; when specified, this parameter is used
6165 for result publication in the study. Otherwise, if automatic
6166 publication is switched on, default value is used for result name.
6171 # Example: see GEOM_TestAll.py
6172 anObj = self.AddSubShape(aShape,ListOfID)
6173 self._autoPublish(anObj, theName, "subshape")
6176 ## Obtain unique ID of sub-shape <VAR>aSubShape</VAR> inside <VAR>aShape</VAR>
6177 # of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
6178 # @param aShape Shape to get sub-shape of.
6179 # @param aSubShape Sub-shapes of aShape.
6180 # @return ID of found sub-shape.
6182 # @ref swig_all_decompose "Example"
6183 @ManageTransactions("LocalOp")
6184 def GetSubShapeID(self, aShape, aSubShape):
6186 Obtain unique ID of sub-shape aSubShape inside aShape
6187 of aShape, selected by their unique IDs inside aShape
6190 aShape Shape to get sub-shape of.
6191 aSubShape Sub-shapes of aShape.
6194 ID of found sub-shape.
6196 # Example: see GEOM_TestAll.py
6197 anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape)
6198 RaiseIfFailed("GetSubShapeIndex", self.LocalOp)
6201 ## Obtain unique IDs of sub-shapes <VAR>aSubShapes</VAR> inside <VAR>aShape</VAR>
6202 # This function is provided for performance purpose. The complexity is O(n) with n
6203 # the number of subobjects of aShape
6204 # @param aShape Shape to get sub-shape of.
6205 # @param aSubShapes Sub-shapes of aShape.
6206 # @return list of IDs of found sub-shapes.
6208 # @ref swig_all_decompose "Example"
6209 @ManageTransactions("ShapesOp")
6210 def GetSubShapesIDs(self, aShape, aSubShapes):
6212 Obtain a list of IDs of sub-shapes aSubShapes inside aShape
6213 This function is provided for performance purpose. The complexity is O(n) with n
6214 the number of subobjects of aShape
6217 aShape Shape to get sub-shape of.
6218 aSubShapes Sub-shapes of aShape.
6221 List of IDs of found sub-shape.
6223 # Example: see GEOM_TestAll.py
6224 anIDs = self.ShapesOp.GetSubShapesIndices(aShape, aSubShapes)
6225 RaiseIfFailed("GetSubShapesIndices", self.ShapesOp)
6231 ## @addtogroup l4_decompose
6234 ## Get all sub-shapes and groups of \a theShape,
6235 # that were created already by any other methods.
6236 # @param theShape Any shape.
6237 # @param theGroupsOnly If this parameter is TRUE, only groups will be
6238 # returned, else all found sub-shapes and groups.
6239 # @return List of existing sub-objects of \a theShape.
6241 # @ref swig_all_decompose "Example"
6242 @ManageTransactions("ShapesOp")
6243 def GetExistingSubObjects(self, theShape, theGroupsOnly = False):
6245 Get all sub-shapes and groups of theShape,
6246 that were created already by any other methods.
6250 theGroupsOnly If this parameter is TRUE, only groups will be
6251 returned, else all found sub-shapes and groups.
6254 List of existing sub-objects of theShape.
6256 # Example: see GEOM_TestAll.py
6257 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, theGroupsOnly)
6258 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
6261 ## Get all groups of \a theShape,
6262 # that were created already by any other methods.
6263 # @param theShape Any shape.
6264 # @return List of existing groups of \a theShape.
6266 # @ref swig_all_decompose "Example"
6267 @ManageTransactions("ShapesOp")
6268 def GetGroups(self, theShape):
6270 Get all groups of theShape,
6271 that were created already by any other methods.
6277 List of existing groups of theShape.
6279 # Example: see GEOM_TestAll.py
6280 ListObj = self.ShapesOp.GetExistingSubObjects(theShape, True)
6281 RaiseIfFailed("GetExistingSubObjects", self.ShapesOp)
6284 ## Explode a shape on sub-shapes of a given type.
6285 # If the shape itself matches the type, it is also returned.
6286 # @param aShape Shape to be exploded.
6287 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6288 # @param theName Object name; when specified, this parameter is used
6289 # for result publication in the study. Otherwise, if automatic
6290 # publication is switched on, default value is used for result name.
6292 # @return List of sub-shapes of type theShapeType, contained in theShape.
6294 # @ref swig_all_decompose "Example"
6295 @ManageTransactions("ShapesOp")
6296 def SubShapeAll(self, aShape, aType, theName=None):
6298 Explode a shape on sub-shapes of a given type.
6299 If the shape itself matches the type, it is also returned.
6302 aShape Shape to be exploded.
6303 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6304 theName Object name; when specified, this parameter is used
6305 for result publication in the study. Otherwise, if automatic
6306 publication is switched on, default value is used for result name.
6309 List of sub-shapes of type theShapeType, contained in theShape.
6311 # Example: see GEOM_TestAll.py
6312 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), False)
6313 RaiseIfFailed("SubShapeAll", self.ShapesOp)
6314 self._autoPublish(ListObj, theName, "subshape")
6317 ## Explode a shape on sub-shapes of a given type.
6318 # @param aShape Shape to be exploded.
6319 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6320 # @return List of IDs of sub-shapes.
6322 # @ref swig_all_decompose "Example"
6323 @ManageTransactions("ShapesOp")
6324 def SubShapeAllIDs(self, aShape, aType):
6326 Explode a shape on sub-shapes of a given type.
6329 aShape Shape to be exploded (see geompy.ShapeType)
6330 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6333 List of IDs of sub-shapes.
6335 ListObj = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), False)
6336 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6339 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
6340 # selected by their indices in list of all sub-shapes of type <VAR>aType</VAR>.
6341 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6342 # @param aShape Shape to get sub-shape of.
6343 # @param ListOfInd List of sub-shapes indices.
6344 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6345 # @param theName Object name; when specified, this parameter is used
6346 # for result publication in the study. Otherwise, if automatic
6347 # publication is switched on, default value is used for result name.
6349 # @return A compound of sub-shapes of aShape.
6351 # @ref swig_all_decompose "Example"
6352 def SubShape(self, aShape, aType, ListOfInd, theName=None):
6354 Obtain a compound of sub-shapes of aShape,
6355 selected by their indices in list of all sub-shapes of type aType.
6356 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6359 aShape Shape to get sub-shape of.
6360 ListOfID List of sub-shapes indices.
6361 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6362 theName Object name; when specified, this parameter is used
6363 for result publication in the study. Otherwise, if automatic
6364 publication is switched on, default value is used for result name.
6367 A compound of sub-shapes of aShape.
6369 # Example: see GEOM_TestAll.py
6371 AllShapeIDsList = self.SubShapeAllIDs(aShape, EnumToLong( aType ))
6372 for ind in ListOfInd:
6373 ListOfIDs.append(AllShapeIDsList[ind - 1])
6374 # note: auto-publishing is done in self.GetSubShape()
6375 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6378 ## Explode a shape on sub-shapes of a given type.
6379 # Sub-shapes will be sorted taking into account their gravity centers,
6380 # to provide stable order of sub-shapes.
6381 # If the shape itself matches the type, it is also returned.
6382 # @param aShape Shape to be exploded.
6383 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6384 # @param theName Object name; when specified, this parameter is used
6385 # for result publication in the study. Otherwise, if automatic
6386 # publication is switched on, default value is used for result name.
6388 # @return List of sub-shapes of type theShapeType, contained in theShape.
6390 # @ref swig_SubShapeAllSorted "Example"
6391 @ManageTransactions("ShapesOp")
6392 def SubShapeAllSortedCentres(self, aShape, aType, theName=None):
6394 Explode a shape on sub-shapes of a given type.
6395 Sub-shapes will be sorted taking into account their gravity centers,
6396 to provide stable order of sub-shapes.
6397 If the shape itself matches the type, it is also returned.
6400 aShape Shape to be exploded.
6401 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6402 theName Object name; when specified, this parameter is used
6403 for result publication in the study. Otherwise, if automatic
6404 publication is switched on, default value is used for result name.
6407 List of sub-shapes of type theShapeType, contained in theShape.
6409 # Example: see GEOM_TestAll.py
6410 ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), True)
6411 RaiseIfFailed("SubShapeAllSortedCentres", self.ShapesOp)
6412 self._autoPublish(ListObj, theName, "subshape")
6415 ## Explode a shape on sub-shapes of a given type.
6416 # Sub-shapes will be sorted taking into account their gravity centers,
6417 # to provide stable order of sub-shapes.
6418 # @param aShape Shape to be exploded.
6419 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6420 # @return List of IDs of sub-shapes.
6422 # @ref swig_all_decompose "Example"
6423 @ManageTransactions("ShapesOp")
6424 def SubShapeAllSortedCentresIDs(self, aShape, aType):
6426 Explode a shape on sub-shapes of a given type.
6427 Sub-shapes will be sorted taking into account their gravity centers,
6428 to provide stable order of sub-shapes.
6431 aShape Shape to be exploded.
6432 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6435 List of IDs of sub-shapes.
6437 ListIDs = self.ShapesOp.GetAllSubShapesIDs(aShape, EnumToLong( aType ), True)
6438 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6441 ## Obtain a compound of sub-shapes of <VAR>aShape</VAR>,
6442 # selected by they indices in sorted list of all sub-shapes of type <VAR>aType</VAR>.
6443 # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6444 # @param aShape Shape to get sub-shape of.
6445 # @param ListOfInd List of sub-shapes indices.
6446 # @param aType Type of sub-shapes to be retrieved (see ShapeType())
6447 # @param theName Object name; when specified, this parameter is used
6448 # for result publication in the study. Otherwise, if automatic
6449 # publication is switched on, default value is used for result name.
6451 # @return A compound of sub-shapes of aShape.
6453 # @ref swig_all_decompose "Example"
6454 def SubShapeSortedCentres(self, aShape, aType, ListOfInd, theName=None):
6456 Obtain a compound of sub-shapes of aShape,
6457 selected by they indices in sorted list of all sub-shapes of type aType.
6458 Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]
6461 aShape Shape to get sub-shape of.
6462 ListOfID List of sub-shapes indices.
6463 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
6464 theName Object name; when specified, this parameter is used
6465 for result publication in the study. Otherwise, if automatic
6466 publication is switched on, default value is used for result name.
6469 A compound of sub-shapes of aShape.
6471 # Example: see GEOM_TestAll.py
6473 AllShapeIDsList = self.SubShapeAllSortedCentresIDs(aShape, EnumToLong( aType ))
6474 for ind in ListOfInd:
6475 ListOfIDs.append(AllShapeIDsList[ind - 1])
6476 # note: auto-publishing is done in self.GetSubShape()
6477 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6480 ## Extract shapes (excluding the main shape) of given type.
6481 # @param aShape The shape.
6482 # @param aType The shape type (see ShapeType())
6483 # @param isSorted Boolean flag to switch sorting on/off.
6484 # @param theName Object name; when specified, this parameter is used
6485 # for result publication in the study. Otherwise, if automatic
6486 # publication is switched on, default value is used for result name.
6488 # @return List of sub-shapes of type aType, contained in aShape.
6490 # @ref swig_FilletChamfer "Example"
6491 @ManageTransactions("ShapesOp")
6492 def ExtractShapes(self, aShape, aType, isSorted = False, theName=None):
6494 Extract shapes (excluding the main shape) of given type.
6498 aType The shape type (see geompy.ShapeType)
6499 isSorted Boolean flag to switch sorting on/off.
6500 theName Object name; when specified, this parameter is used
6501 for result publication in the study. Otherwise, if automatic
6502 publication is switched on, default value is used for result name.
6505 List of sub-shapes of type aType, contained in aShape.
6507 # Example: see GEOM_TestAll.py
6508 ListObj = self.ShapesOp.ExtractSubShapes(aShape, EnumToLong( aType ), isSorted)
6509 RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
6510 self._autoPublish(ListObj, theName, "subshape")
6513 ## Get a set of sub-shapes defined by their unique IDs inside <VAR>aShape</VAR>
6514 # @param aShape Main shape.
6515 # @param anIDs List of unique IDs of sub-shapes inside <VAR>aShape</VAR>.
6516 # @param theName Object name; when specified, this parameter is used
6517 # for result publication in the study. Otherwise, if automatic
6518 # publication is switched on, default value is used for result name.
6519 # @return List of GEOM.GEOM_Object, corresponding to found sub-shapes.
6521 # @ref swig_all_decompose "Example"
6522 @ManageTransactions("ShapesOp")
6523 def SubShapes(self, aShape, anIDs, theName=None):
6525 Get a set of sub-shapes defined by their unique IDs inside theMainShape
6529 anIDs List of unique IDs of sub-shapes inside theMainShape.
6530 theName Object name; when specified, this parameter is used
6531 for result publication in the study. Otherwise, if automatic
6532 publication is switched on, default value is used for result name.
6535 List of GEOM.GEOM_Object, corresponding to found sub-shapes.
6537 # Example: see GEOM_TestAll.py
6538 ListObj = self.ShapesOp.MakeSubShapes(aShape, anIDs)
6539 RaiseIfFailed("SubShapes", self.ShapesOp)
6540 self._autoPublish(ListObj, theName, "subshape")
6543 ## Explode a shape into edges sorted in a row from a starting point.
6544 # @param theShape the shape to be exploded on edges.
6545 # @param theStartPoint the starting point.
6546 # @param theName Object name; when specified, this parameter is used
6547 # for result publication in the study. Otherwise, if automatic
6548 # publication is switched on, default value is used for result name.
6549 # @return List of GEOM.GEOM_Object that is actually an ordered list
6550 # of edges sorted in a row from a starting point.
6552 # @ref swig_GetSubShapeEdgeSorted "Example"
6553 @ManageTransactions("ShapesOp")
6554 def GetSubShapeEdgeSorted(self, theShape, theStartPoint, theName=None):
6556 Explode a shape into edges sorted in a row from a starting point.
6559 theShape the shape to be exploded on edges.
6560 theStartPoint the starting point.
6561 theName Object name; when specified, this parameter is used
6562 for result publication in the study. Otherwise, if automatic
6563 publication is switched on, default value is used for result name.
6566 List of GEOM.GEOM_Object that is actually an ordered list
6567 of edges sorted in a row from a starting point.
6569 # Example: see GEOM_TestAll.py
6570 ListObj = self.ShapesOp.GetSubShapeEdgeSorted(theShape, theStartPoint)
6571 RaiseIfFailed("GetSubShapeEdgeSorted", self.ShapesOp)
6572 self._autoPublish(ListObj, theName, "SortedEdges")
6575 ## Check if the object is a sub-object of another GEOM object.
6576 # @param aSubObject Checked sub-object (or its parent object, in case if
6577 # \a theSubObjectIndex is non-zero).
6578 # @param anObject An object that is checked for ownership (or its parent object,
6579 # in case if \a theObjectIndex is non-zero).
6580 # @param aSubObjectIndex When non-zero, specifies a sub-shape index that
6581 # identifies a sub-object within its parent specified via \a theSubObject.
6582 # @param anObjectIndex When non-zero, specifies a sub-shape index that
6583 # identifies an object within its parent specified via \a theObject.
6584 # @return TRUE, if the given object contains sub-object.
6585 @ManageTransactions("ShapesOp")
6586 def IsSubShapeBelongsTo(self, aSubObject, anObject, aSubObjectIndex = 0, anObjectIndex = 0):
6588 Check if the object is a sub-object of another GEOM object.
6591 aSubObject Checked sub-object (or its parent object, in case if
6592 \a theSubObjectIndex is non-zero).
6593 anObject An object that is checked for ownership (or its parent object,
6594 in case if \a theObjectIndex is non-zero).
6595 aSubObjectIndex When non-zero, specifies a sub-shape index that
6596 identifies a sub-object within its parent specified via \a theSubObject.
6597 anObjectIndex When non-zero, specifies a sub-shape index that
6598 identifies an object within its parent specified via \a theObject.
6601 TRUE, if the given object contains sub-object.
6603 IsOk = self.ShapesOp.IsSubShapeBelongsTo(aSubObject, aSubObjectIndex, anObject, anObjectIndex)
6604 RaiseIfFailed("IsSubShapeBelongsTo", self.ShapesOp)
6607 # end of l4_decompose
6610 ## @addtogroup l4_decompose_d
6613 ## Deprecated method
6614 # It works like SubShapeAllSortedCentres(), but wrongly
6615 # defines centres of faces, shells and solids.
6616 @ManageTransactions("ShapesOp")
6617 def SubShapeAllSorted(self, aShape, aType, theName=None):
6620 It works like geompy.SubShapeAllSortedCentres, but wrongly
6621 defines centres of faces, shells and solids.
6623 ListObj = self.ShapesOp.MakeExplode(aShape, EnumToLong( aType ), True)
6624 RaiseIfFailed("MakeExplode", self.ShapesOp)
6625 self._autoPublish(ListObj, theName, "subshape")
6628 ## Deprecated method
6629 # It works like SubShapeAllSortedCentresIDs(), but wrongly
6630 # defines centres of faces, shells and solids.
6631 @ManageTransactions("ShapesOp")
6632 def SubShapeAllSortedIDs(self, aShape, aType):
6635 It works like geompy.SubShapeAllSortedCentresIDs, but wrongly
6636 defines centres of faces, shells and solids.
6638 ListIDs = self.ShapesOp.SubShapeAllIDs(aShape, EnumToLong( aType ), True)
6639 RaiseIfFailed("SubShapeAllIDs", self.ShapesOp)
6642 ## Deprecated method
6643 # It works like SubShapeSortedCentres(), but has a bug
6644 # (wrongly defines centres of faces, shells and solids).
6645 def SubShapeSorted(self, aShape, aType, ListOfInd, theName=None):
6648 It works like geompy.SubShapeSortedCentres, but has a bug
6649 (wrongly defines centres of faces, shells and solids).
6652 AllShapeIDsList = self.SubShapeAllSortedIDs(aShape, EnumToLong( aType ))
6653 for ind in ListOfInd:
6654 ListOfIDs.append(AllShapeIDsList[ind - 1])
6655 # note: auto-publishing is done in self.GetSubShape()
6656 anObj = self.GetSubShape(aShape, ListOfIDs, theName)
6659 # end of l4_decompose_d
6662 ## @addtogroup l3_healing
6665 ## Apply a sequence of Shape Healing operators to the given object.
6666 # @param theShape Shape to be processed.
6667 # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
6668 # @param theParameters List of names of parameters
6669 # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
6670 # @param theValues List of values of parameters, in the same order
6671 # as parameters are listed in <VAR>theParameters</VAR> list.
6672 # @param theName Object name; when specified, this parameter is used
6673 # for result publication in the study. Otherwise, if automatic
6674 # publication is switched on, default value is used for result name.
6676 # <b> Operators and Parameters: </b> \n
6678 # * \b FixShape - corrects invalid shapes. \n
6679 # - \b FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them. \n
6680 # - \b FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction. \n
6682 # * \b FixFaceSize - removes small faces, such as spots and strips.\n
6683 # - \b FixFaceSize.Tolerance - defines minimum possible face size. \n
6684 # - \b DropSmallEdges - removes edges, which merge with neighbouring edges. \n
6685 # - \b DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.\n
6686 # - \b DropSmallSolids - either removes small solids or merges them with neighboring ones. \n
6687 # - \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
6688 # - \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
6689 # - \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
6691 # * \b SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical
6692 # surfaces in segments using a certain angle. \n
6693 # - \b SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
6694 # if Angle=180, four if Angle=90, etc). \n
6695 # - \b SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.\n
6697 # * \b SplitClosedFaces - splits closed faces in segments.
6698 # The number of segments depends on the number of splitting points.\n
6699 # - \b SplitClosedFaces.NbSplitPoints - the number of splitting points.\n
6701 # * \b SplitContinuity - splits shapes to reduce continuities of curves and surfaces.\n
6702 # - \b SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.\n
6703 # - \b SplitContinuity.SurfaceContinuity - required continuity for surfaces.\n
6704 # - \b SplitContinuity.CurveContinuity - required continuity for curves.\n
6705 # This and the previous parameters can take the following values:\n
6706 # \b Parametric \b Continuity \n
6707 # \b C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces
6708 # are coincidental. The curves or surfaces may still meet at an angle, giving rise to a sharp corner or edge).\n
6709 # \b C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces are parallel,
6710 # ruling out sharp edges).\n
6711 # \b C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves or surfaces
6712 # are of the same magnitude).\n
6713 # \b CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of curves
6714 # or surfaces (d/du C(u)) are the same at junction. \n
6715 # \b Geometric \b Continuity \n
6716 # \b G1: first derivatives are proportional at junction.\n
6717 # The curve tangents thus have the same direction, but not necessarily the same magnitude.
6718 # i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b, k*c).\n
6719 # \b G2: first and second derivatives are proportional at junction.
6720 # As the names imply, geometric continuity requires the geometry to be continuous, while parametric
6721 # continuity requires that the underlying parameterization was continuous as well.
6722 # Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.\n
6724 # * \b BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:\n
6725 # - \b BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.\n
6726 # - \b BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.\n
6727 # - \b BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.\n
6728 # - \b BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation
6729 # with the specified parameters.\n
6730 # - \b BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation
6731 # with the specified parameters.\n
6732 # - \b BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.\n
6733 # - \b BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.\n
6734 # - \b BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.\n
6735 # - \b BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.\n
6737 # * \b ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.\n
6738 # - \b ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.\n
6739 # - \b ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.\n
6740 # - \b ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.\n
6741 # - \b ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.\n
6743 # * \b SameParameter - fixes edges of 2D and 3D curves not having the same parameter.\n
6744 # - \b SameParameter.Tolerance3d - defines tolerance for fixing of edges.\n
6747 # @return New GEOM.GEOM_Object, containing processed shape.
6749 # \n @ref tui_shape_processing "Example"
6750 @ManageTransactions("HealOp")
6751 def ProcessShape(self, theShape, theOperators, theParameters, theValues, theName=None):
6753 Apply a sequence of Shape Healing operators to the given object.
6756 theShape Shape to be processed.
6757 theValues List of values of parameters, in the same order
6758 as parameters are listed in theParameters list.
6759 theOperators List of names of operators ('FixShape', 'SplitClosedFaces', etc.).
6760 theParameters List of names of parameters
6761 ('FixShape.Tolerance3d', 'SplitClosedFaces.NbSplitPoints', etc.).
6762 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 Operators and Parameters:
6768 * FixShape - corrects invalid shapes.
6769 * FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them.
6770 * FixShape.MaxTolerance3d - maximal possible tolerance of the shape after correction.
6771 * FixFaceSize - removes small faces, such as spots and strips.
6772 * FixFaceSize.Tolerance - defines minimum possible face size.
6773 * DropSmallEdges - removes edges, which merge with neighbouring edges.
6774 * DropSmallEdges.Tolerance3d - defines minimum possible distance between two parallel edges.
6775 * DropSmallSolids - either removes small solids or merges them with neighboring ones.
6776 * 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.
6777 * 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.
6778 * 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.
6780 * SplitAngle - splits faces based on conical surfaces, surfaces of revolution and cylindrical surfaces
6781 in segments using a certain angle.
6782 * SplitAngle.Angle - the central angle of the resulting segments (i.e. we obtain two segments
6783 if Angle=180, four if Angle=90, etc).
6784 * SplitAngle.MaxTolerance - maximum possible tolerance among the resulting segments.
6785 * SplitClosedFaces - splits closed faces in segments. The number of segments depends on the number of
6787 * SplitClosedFaces.NbSplitPoints - the number of splitting points.
6788 * SplitContinuity - splits shapes to reduce continuities of curves and surfaces.
6789 * SplitContinuity.Tolerance3d - 3D tolerance for correction of geometry.
6790 * SplitContinuity.SurfaceContinuity - required continuity for surfaces.
6791 * SplitContinuity.CurveContinuity - required continuity for curves.
6792 This and the previous parameters can take the following values:
6794 Parametric Continuity:
6795 C0 (Positional Continuity): curves are joined (the end positions of curves or surfaces are
6796 coincidental. The curves or surfaces may still meet at an angle,
6797 giving rise to a sharp corner or edge).
6798 C1 (Tangential Continuity): first derivatives are equal (the end vectors of curves or surfaces
6799 are parallel, ruling out sharp edges).
6800 C2 (Curvature Continuity): first and second derivatives are equal (the end vectors of curves
6801 or surfaces are of the same magnitude).
6802 CN N-th derivatives are equal (both the direction and the magnitude of the Nth derivatives of
6803 curves or surfaces (d/du C(u)) are the same at junction.
6805 Geometric Continuity:
6806 G1: first derivatives are proportional at junction.
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).
6809 G2: first and second derivatives are proportional at junction. As the names imply,
6810 geometric continuity requires the geometry to be continuous, while parametric continuity requires
6811 that the underlying parameterization was continuous as well. Parametric continuity of order n implies
6812 geometric continuity of order n, but not vice-versa.
6813 * BsplineRestriction - converts curves and surfaces to Bsplines and processes them with the following parameters:
6814 * BSplineRestriction.SurfaceMode - approximation of surfaces if restriction is necessary.
6815 * BSplineRestriction.Curve3dMode - conversion of any 3D curve to BSpline and approximation.
6816 * BSplineRestriction.Curve2dMode - conversion of any 2D curve to BSpline and approximation.
6817 * BSplineRestriction.Tolerance3d - defines the possibility of surfaces and 3D curves approximation with
6818 the specified parameters.
6819 * BSplineRestriction.Tolerance2d - defines the possibility of surfaces and 2D curves approximation with
6820 the specified parameters.
6821 * BSplineRestriction.RequiredDegree - required degree of the resulting BSplines.
6822 * BSplineRestriction.RequiredNbSegments - required maximum number of segments of resultant BSplines.
6823 * BSplineRestriction.Continuity3d - continuity of the resulting surfaces and 3D curves.
6824 * BSplineRestriction.Continuity2d - continuity of the resulting 2D curves.
6825 * ToBezier - converts curves and surfaces of any type to Bezier curves and surfaces.
6826 * ToBezier.SurfaceMode - if checked in, allows conversion of surfaces.
6827 * ToBezier.Curve3dMode - if checked in, allows conversion of 3D curves.
6828 * ToBezier.Curve2dMode - if checked in, allows conversion of 2D curves.
6829 * ToBezier.MaxTolerance - defines tolerance for detection and correction of problems.
6830 * SameParameter - fixes edges of 2D and 3D curves not having the same parameter.
6831 * SameParameter.Tolerance3d - defines tolerance for fixing of edges.
6834 New GEOM.GEOM_Object, containing processed shape.
6836 Note: For more information look through SALOME Geometry User's Guide->
6837 -> Introduction to Geometry-> Repairing Operations-> Shape Processing
6839 # Example: see GEOM_TestHealing.py
6840 theValues,Parameters = ParseList(theValues)
6841 anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
6842 # To avoid script failure in case of good argument shape
6843 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
6845 RaiseIfFailed("ProcessShape", self.HealOp)
6846 for string in (theOperators + theParameters):
6847 Parameters = ":" + Parameters
6849 anObj.SetParameters(Parameters)
6850 self._autoPublish(anObj, theName, "healed")
6853 ## Remove faces from the given object (shape).
6854 # @param theObject Shape to be processed.
6855 # @param theFaces Indices of faces to be removed, if EMPTY then the method
6856 # removes ALL faces of the given object.
6857 # @param theName Object name; when specified, this parameter is used
6858 # for result publication in the study. Otherwise, if automatic
6859 # publication is switched on, default value is used for result name.
6861 # @return New GEOM.GEOM_Object, containing processed shape.
6863 # @ref tui_suppress_faces "Example"
6864 @ManageTransactions("HealOp")
6865 def SuppressFaces(self, theObject, theFaces, theName=None):
6867 Remove faces from the given object (shape).
6870 theObject Shape to be processed.
6871 theFaces Indices of faces to be removed, if EMPTY then the method
6872 removes ALL faces of the given object.
6873 theName Object name; when specified, this parameter is used
6874 for result publication in the study. Otherwise, if automatic
6875 publication is switched on, default value is used for result name.
6878 New GEOM.GEOM_Object, containing processed shape.
6880 # Example: see GEOM_TestHealing.py
6881 anObj = self.HealOp.SuppressFaces(theObject, theFaces)
6882 RaiseIfFailed("SuppressFaces", self.HealOp)
6883 self._autoPublish(anObj, theName, "suppressFaces")
6886 ## Sewing of faces into a single shell.
6887 # @param ListShape Shapes to be processed.
6888 # @param theTolerance Required tolerance value.
6889 # @param AllowNonManifold Flag that allows non-manifold sewing.
6890 # @param theName Object name; when specified, this parameter is used
6891 # for result publication in the study. Otherwise, if automatic
6892 # publication is switched on, default value is used for result name.
6894 # @return New GEOM.GEOM_Object, containing a result shell.
6896 # @ref tui_sewing "Example"
6897 def MakeSewing(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
6899 Sewing of faces into a single shell.
6902 ListShape Shapes to be processed.
6903 theTolerance Required tolerance value.
6904 AllowNonManifold Flag that allows non-manifold sewing.
6905 theName Object name; when specified, this parameter is used
6906 for result publication in the study. Otherwise, if automatic
6907 publication is switched on, default value is used for result name.
6910 New GEOM.GEOM_Object, containing containing a result shell.
6912 # Example: see GEOM_TestHealing.py
6913 # note: auto-publishing is done in self.Sew()
6914 anObj = self.Sew(ListShape, theTolerance, AllowNonManifold, theName)
6917 ## Sewing of faces into a single shell.
6918 # @param ListShape Shapes to be processed.
6919 # @param theTolerance Required tolerance value.
6920 # @param AllowNonManifold Flag that allows non-manifold sewing.
6921 # @param theName Object name; when specified, this parameter is used
6922 # for result publication in the study. Otherwise, if automatic
6923 # publication is switched on, default value is used for result name.
6925 # @return New GEOM.GEOM_Object, containing a result shell.
6926 @ManageTransactions("HealOp")
6927 def Sew(self, ListShape, theTolerance, AllowNonManifold=False, theName=None):
6929 Sewing of faces into a single shell.
6932 ListShape Shapes to be processed.
6933 theTolerance Required tolerance value.
6934 AllowNonManifold Flag that allows non-manifold sewing.
6935 theName Object name; when specified, this parameter is used
6936 for result publication in the study. Otherwise, if automatic
6937 publication is switched on, default value is used for result name.
6940 New GEOM.GEOM_Object, containing a result shell.
6942 # Example: see MakeSewing() above
6943 theTolerance,Parameters = ParseParameters(theTolerance)
6944 if AllowNonManifold:
6945 anObj = self.HealOp.SewAllowNonManifold( ToList( ListShape ), theTolerance)
6947 anObj = self.HealOp.Sew( ToList( ListShape ), theTolerance)
6948 # To avoid script failure in case of good argument shape
6949 # (Fix of test cases geom/bugs11/L7,L8)
6950 if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg":
6952 RaiseIfFailed("Sew", self.HealOp)
6953 anObj.SetParameters(Parameters)
6954 self._autoPublish(anObj, theName, "sewed")
6957 ## Rebuild the topology of theSolids by removing
6958 # the faces that are shared by several solids.
6959 # @param theSolids A compound or a list of solids to be processed.
6960 # @param theName Object name; when specified, this parameter is used
6961 # for result publication in the study. Otherwise, if automatic
6962 # publication is switched on, default value is used for result name.
6964 # @return New GEOM.GEOM_Object, containing processed shape.
6966 # @ref tui_remove_webs "Example"
6967 @ManageTransactions("HealOp")
6968 def RemoveInternalFaces (self, theSolids, theName=None):
6970 Rebuild the topology of theSolids by removing
6971 the faces that are shared by several solids.
6974 theSolids A compound or a list of solids to be processed.
6975 theName Object name; when specified, this parameter is used
6976 for result publication in the study. Otherwise, if automatic
6977 publication is switched on, default value is used for result name.
6980 New GEOM.GEOM_Object, containing processed shape.
6982 # Example: see GEOM_TestHealing.py
6983 anObj = self.HealOp.RemoveInternalFaces(ToList(theSolids))
6984 RaiseIfFailed("RemoveInternalFaces", self.HealOp)
6985 self._autoPublish(anObj, theName, "removeWebs")
6988 ## Remove internal wires and edges from the given object (face).
6989 # @param theObject Shape to be processed.
6990 # @param theWires Indices of wires to be removed, if EMPTY then the method
6991 # removes ALL internal wires of the given object.
6992 # @param theName Object name; when specified, this parameter is used
6993 # for result publication in the study. Otherwise, if automatic
6994 # publication is switched on, default value is used for result name.
6996 # @return New GEOM.GEOM_Object, containing processed shape.
6998 # @ref tui_suppress_internal_wires "Example"
6999 @ManageTransactions("HealOp")
7000 def SuppressInternalWires(self, theObject, theWires, theName=None):
7002 Remove internal wires and edges from the given object (face).
7005 theObject Shape to be processed.
7006 theWires Indices of wires to be removed, if EMPTY then the method
7007 removes ALL internal wires of the given object.
7008 theName Object name; when specified, this parameter is used
7009 for result publication in the study. Otherwise, if automatic
7010 publication is switched on, default value is used for result name.
7013 New GEOM.GEOM_Object, containing processed shape.
7015 # Example: see GEOM_TestHealing.py
7016 anObj = self.HealOp.RemoveIntWires(theObject, theWires)
7017 RaiseIfFailed("RemoveIntWires", self.HealOp)
7018 self._autoPublish(anObj, theName, "suppressWires")
7021 ## Remove internal closed contours (holes) from the given object.
7022 # @param theObject Shape to be processed.
7023 # @param theWires Indices of wires to be removed, if EMPTY then the method
7024 # removes ALL internal holes of the given object
7025 # @param 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.
7029 # @return New GEOM.GEOM_Object, containing processed shape.
7031 # @ref tui_suppress_holes "Example"
7032 @ManageTransactions("HealOp")
7033 def SuppressHoles(self, theObject, theWires, theName=None):
7035 Remove internal closed contours (holes) from the given object.
7038 theObject Shape to be processed.
7039 theWires Indices of wires to be removed, if EMPTY then the method
7040 removes ALL internal holes of the given object
7041 theName Object name; when specified, this parameter is used
7042 for result publication in the study. Otherwise, if automatic
7043 publication is switched on, default value is used for result name.
7046 New GEOM.GEOM_Object, containing processed shape.
7048 # Example: see GEOM_TestHealing.py
7049 anObj = self.HealOp.FillHoles(theObject, theWires)
7050 RaiseIfFailed("FillHoles", self.HealOp)
7051 self._autoPublish(anObj, theName, "suppressHoles")
7054 ## Close an open wire.
7055 # @param theObject Shape to be processed.
7056 # @param theWires Indexes of edge(s) and wire(s) to be closed within <VAR>theObject</VAR>'s shape,
7057 # if [ ], then <VAR>theObject</VAR> itself is a wire.
7058 # @param isCommonVertex If True : closure by creation of a common vertex,
7059 # If False : closure by creation of an edge between ends.
7060 # @param theName Object name; when specified, this parameter is used
7061 # for result publication in the study. Otherwise, if automatic
7062 # publication is switched on, default value is used for result name.
7064 # @return New GEOM.GEOM_Object, containing processed shape.
7066 # @ref tui_close_contour "Example"
7067 @ManageTransactions("HealOp")
7068 def CloseContour(self,theObject, theWires, isCommonVertex, theName=None):
7073 theObject Shape to be processed.
7074 theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape,
7075 if [ ], then theObject itself is a wire.
7076 isCommonVertex If True : closure by creation of a common vertex,
7077 If False : closure by creation of an edge between ends.
7078 theName Object name; when specified, this parameter is used
7079 for result publication in the study. Otherwise, if automatic
7080 publication is switched on, default value is used for result name.
7083 New GEOM.GEOM_Object, containing processed shape.
7085 # Example: see GEOM_TestHealing.py
7086 anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex)
7087 RaiseIfFailed("CloseContour", self.HealOp)
7088 self._autoPublish(anObj, theName, "closeContour")
7091 ## Addition of a point to a given edge object.
7092 # @param theObject Shape to be processed.
7093 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
7094 # if -1, then theObject itself is the edge.
7095 # @param theValue Value of parameter on edge or length parameter,
7096 # depending on \a isByParameter.
7097 # @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1], \n
7098 # if FALSE : \a theValue is treated as a length parameter [0..1]
7099 # @param theName Object name; when specified, this parameter is used
7100 # for result publication in the study. Otherwise, if automatic
7101 # publication is switched on, default value is used for result name.
7103 # @return New GEOM.GEOM_Object, containing processed shape.
7105 # @ref tui_add_point_on_edge "Example"
7106 @ManageTransactions("HealOp")
7107 def DivideEdge(self, theObject, theEdgeIndex, theValue, isByParameter, theName=None):
7109 Addition of a point to a given edge object.
7112 theObject Shape to be processed.
7113 theEdgeIndex Index of edge to be divided within theObject's shape,
7114 if -1, then theObject itself is the edge.
7115 theValue Value of parameter on edge or length parameter,
7116 depending on isByParameter.
7117 isByParameter If TRUE : theValue is treated as a curve parameter [0..1],
7118 if FALSE : theValue is treated as a length parameter [0..1]
7119 theName Object name; when specified, this parameter is used
7120 for result publication in the study. Otherwise, if automatic
7121 publication is switched on, default value is used for result name.
7124 New GEOM.GEOM_Object, containing processed shape.
7126 # Example: see GEOM_TestHealing.py
7127 theEdgeIndex,theValue,isByParameter,Parameters = ParseParameters(theEdgeIndex,theValue,isByParameter)
7128 anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
7129 RaiseIfFailed("DivideEdge", self.HealOp)
7130 anObj.SetParameters(Parameters)
7131 self._autoPublish(anObj, theName, "divideEdge")
7134 ## Addition of points to a given edge of \a theObject by projecting
7135 # other points to the given edge.
7136 # @param theObject Shape to be processed.
7137 # @param theEdgeIndex Index of edge to be divided within theObject's shape,
7138 # if -1, then theObject itself is the edge.
7139 # @param thePoints List of points to project to theEdgeIndex-th edge.
7140 # @param theName Object name; when specified, this parameter is used
7141 # for result publication in the study. Otherwise, if automatic
7142 # publication is switched on, default value is used for result name.
7144 # @return New GEOM.GEOM_Object, containing processed shape.
7146 # @ref tui_add_point_on_edge "Example"
7147 @ManageTransactions("HealOp")
7148 def DivideEdgeByPoint(self, theObject, theEdgeIndex, thePoints, theName=None):
7150 Addition of points to a given edge of \a theObject by projecting
7151 other points to the given edge.
7154 theObject Shape to be processed.
7155 theEdgeIndex The edge or its index to be divided within theObject's shape,
7156 if -1, then theObject itself is the edge.
7157 thePoints List of points to project to theEdgeIndex-th edge.
7158 theName Object name; when specified, this parameter is used
7159 for result publication in the study. Otherwise, if automatic
7160 publication is switched on, default value is used for result name.
7163 New GEOM.GEOM_Object, containing processed shape.
7165 # Example: see GEOM_TestHealing.py
7166 if isinstance( theEdgeIndex, GEOM._objref_GEOM_Object ):
7167 theEdgeIndex = self.GetSubShapeID( theObject, theEdgeIndex )
7168 anObj = self.HealOp.DivideEdgeByPoint(theObject, theEdgeIndex, ToList( thePoints ))
7169 RaiseIfFailed("DivideEdgeByPoint", self.HealOp)
7170 self._autoPublish(anObj, theName, "divideEdge")
7173 ## Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
7174 # @param theWire Wire to minimize the number of C1 continuous edges in.
7175 # @param theVertices A list of vertices to suppress. If the list
7176 # is empty, all vertices in a wire will be assumed.
7177 # @param theName Object name; when specified, this parameter is used
7178 # for result publication in the study. Otherwise, if automatic
7179 # publication is switched on, default value is used for result name.
7181 # @return New GEOM.GEOM_Object with modified wire.
7183 # @ref tui_fuse_collinear_edges "Example"
7184 @ManageTransactions("HealOp")
7185 def FuseCollinearEdgesWithinWire(self, theWire, theVertices = [], theName=None):
7187 Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
7190 theWire Wire to minimize the number of C1 continuous edges in.
7191 theVertices A list of vertices to suppress. If the list
7192 is empty, all vertices in a wire will be assumed.
7193 theName Object name; when specified, this parameter is used
7194 for result publication in the study. Otherwise, if automatic
7195 publication is switched on, default value is used for result name.
7198 New GEOM.GEOM_Object with modified wire.
7200 anObj = self.HealOp.FuseCollinearEdgesWithinWire(theWire, theVertices)
7201 RaiseIfFailed("FuseCollinearEdgesWithinWire", self.HealOp)
7202 self._autoPublish(anObj, theName, "fuseEdges")
7205 ## Change orientation of the given object. Updates given shape.
7206 # @param theObject Shape to be processed.
7207 # @return Updated <var>theObject</var>
7209 # @ref swig_todo "Example"
7210 @ManageTransactions("HealOp")
7211 def ChangeOrientationShell(self,theObject):
7213 Change orientation of the given object. Updates given shape.
7216 theObject Shape to be processed.
7221 theObject = self.HealOp.ChangeOrientation(theObject)
7222 RaiseIfFailed("ChangeOrientation", self.HealOp)
7225 ## Change orientation of the given object.
7226 # @param theObject Shape to be processed.
7227 # @param theName Object name; when specified, this parameter is used
7228 # for result publication in the study. Otherwise, if automatic
7229 # publication is switched on, default value is used for result name.
7231 # @return New GEOM.GEOM_Object, containing processed shape.
7233 # @ref swig_todo "Example"
7234 @ManageTransactions("HealOp")
7235 def ChangeOrientationShellCopy(self, theObject, theName=None):
7237 Change orientation of the given object.
7240 theObject Shape to be processed.
7241 theName Object name; when specified, this parameter is used
7242 for result publication in the study. Otherwise, if automatic
7243 publication is switched on, default value is used for result name.
7246 New GEOM.GEOM_Object, containing processed shape.
7248 anObj = self.HealOp.ChangeOrientationCopy(theObject)
7249 RaiseIfFailed("ChangeOrientationCopy", self.HealOp)
7250 self._autoPublish(anObj, theName, "reversed")
7253 ## Try to limit tolerance of the given object by value \a theTolerance.
7254 # @param theObject Shape to be processed.
7255 # @param theTolerance Required tolerance value.
7256 # @param theName Object name; when specified, this parameter is used
7257 # for result publication in the study. Otherwise, if automatic
7258 # publication is switched on, default value is used for result name.
7260 # @return New GEOM.GEOM_Object, containing processed shape.
7262 # @ref tui_limit_tolerance "Example"
7263 @ManageTransactions("HealOp")
7264 def LimitTolerance(self, theObject, theTolerance = 1e-07, theName=None):
7266 Try to limit tolerance of the given object by value theTolerance.
7269 theObject Shape to be processed.
7270 theTolerance Required tolerance value.
7271 theName Object name; when specified, this parameter is used
7272 for result publication in the study. Otherwise, if automatic
7273 publication is switched on, default value is used for result name.
7276 New GEOM.GEOM_Object, containing processed shape.
7278 anObj = self.HealOp.LimitTolerance(theObject, theTolerance)
7279 RaiseIfFailed("LimitTolerance", self.HealOp)
7280 self._autoPublish(anObj, theName, "limitTolerance")
7283 ## Get a list of wires (wrapped in GEOM.GEOM_Object-s),
7284 # that constitute a free boundary of the given shape.
7285 # @param theObject Shape to get free boundary of.
7286 # @param theName Object name; when specified, this parameter is used
7287 # for result publication in the study. Otherwise, if automatic
7288 # publication is switched on, default value is used for result name.
7290 # @return [\a status, \a theClosedWires, \a theOpenWires]
7291 # \n \a status: FALSE, if an error(s) occured during the method execution.
7292 # \n \a theClosedWires: Closed wires on the free boundary of the given shape.
7293 # \n \a theOpenWires: Open wires on the free boundary of the given shape.
7295 # @ref tui_free_boundaries_page "Example"
7296 @ManageTransactions("HealOp")
7297 def GetFreeBoundary(self, theObject, theName=None):
7299 Get a list of wires (wrapped in GEOM.GEOM_Object-s),
7300 that constitute a free boundary of the given shape.
7303 theObject Shape to get free boundary of.
7304 theName Object name; when specified, this parameter is used
7305 for result publication in the study. Otherwise, if automatic
7306 publication is switched on, default value is used for result name.
7309 [status, theClosedWires, theOpenWires]
7310 status: FALSE, if an error(s) occured during the method execution.
7311 theClosedWires: Closed wires on the free boundary of the given shape.
7312 theOpenWires: Open wires on the free boundary of the given shape.
7314 # Example: see GEOM_TestHealing.py
7315 anObj = self.HealOp.GetFreeBoundary( ToList( theObject ))
7316 RaiseIfFailed("GetFreeBoundary", self.HealOp)
7317 self._autoPublish(anObj[1], theName, "closedWire")
7318 self._autoPublish(anObj[2], theName, "openWire")
7321 ## Replace coincident faces in \a theShapes by one face.
7322 # @param theShapes Initial shapes, either a list or compound of shapes.
7323 # @param theTolerance Maximum distance between faces, which can be considered as coincident.
7324 # @param doKeepNonSolids If FALSE, only solids will present in the result,
7325 # otherwise all initial shapes.
7326 # @param theName Object name; when specified, this parameter is used
7327 # for result publication in the study. Otherwise, if automatic
7328 # publication is switched on, default value is used for result name.
7330 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7332 # @ref tui_glue_faces "Example"
7333 @ManageTransactions("ShapesOp")
7334 def MakeGlueFaces(self, theShapes, theTolerance, doKeepNonSolids=True, theName=None):
7336 Replace coincident faces in theShapes by one face.
7339 theShapes Initial shapes, either a list or compound of shapes.
7340 theTolerance Maximum distance between faces, which can be considered as coincident.
7341 doKeepNonSolids If FALSE, only solids will present in the result,
7342 otherwise all initial shapes.
7343 theName Object name; when specified, this parameter is used
7344 for result publication in the study. Otherwise, if automatic
7345 publication is switched on, default value is used for result name.
7348 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7350 # Example: see GEOM_Spanner.py
7351 theTolerance,Parameters = ParseParameters(theTolerance)
7352 anObj = self.ShapesOp.MakeGlueFaces(ToList(theShapes), theTolerance, doKeepNonSolids)
7354 raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
7355 anObj.SetParameters(Parameters)
7356 self._autoPublish(anObj, theName, "glueFaces")
7359 ## Find coincident faces in \a theShapes for possible gluing.
7360 # @param theShapes Initial shapes, either a list or compound of shapes.
7361 # @param theTolerance Maximum distance between faces,
7362 # which can be considered as coincident.
7363 # @param theName Object name; when specified, this parameter is used
7364 # for result publication in the study. Otherwise, if automatic
7365 # publication is switched on, default value is used for result name.
7367 # @return GEOM.ListOfGO
7369 # @ref tui_glue_faces "Example"
7370 @ManageTransactions("ShapesOp")
7371 def GetGlueFaces(self, theShapes, theTolerance, theName=None):
7373 Find coincident faces in theShapes for possible gluing.
7376 theShapes Initial shapes, either a list or compound of shapes.
7377 theTolerance Maximum distance between faces,
7378 which can be considered as coincident.
7379 theName Object name; when specified, this parameter is used
7380 for result publication in the study. Otherwise, if automatic
7381 publication is switched on, default value is used for result name.
7386 anObj = self.ShapesOp.GetGlueFaces(ToList(theShapes), theTolerance)
7387 RaiseIfFailed("GetGlueFaces", self.ShapesOp)
7388 self._autoPublish(anObj, theName, "facesToGlue")
7391 ## Replace coincident faces in \a theShapes by one face
7392 # in compliance with given list of faces
7393 # @param theShapes Initial shapes, either a list or compound of shapes.
7394 # @param theTolerance Maximum distance between faces,
7395 # which can be considered as coincident.
7396 # @param theFaces List of faces for gluing.
7397 # @param doKeepNonSolids If FALSE, only solids will present in the result,
7398 # otherwise all initial shapes.
7399 # @param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
7400 # will be glued, otherwise only the edges,
7401 # belonging to <VAR>theFaces</VAR>.
7402 # @param theName Object name; when specified, this parameter is used
7403 # for result publication in the study. Otherwise, if automatic
7404 # publication is switched on, default value is used for result name.
7406 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7408 # @ref tui_glue_faces "Example"
7409 @ManageTransactions("ShapesOp")
7410 def MakeGlueFacesByList(self, theShapes, theTolerance, theFaces,
7411 doKeepNonSolids=True, doGlueAllEdges=True, theName=None):
7413 Replace coincident faces in theShapes by one face
7414 in compliance with given list of faces
7417 theShapes theShapes Initial shapes, either a list or compound of shapes.
7418 theTolerance Maximum distance between faces,
7419 which can be considered as coincident.
7420 theFaces List of faces for gluing.
7421 doKeepNonSolids If FALSE, only solids will present in the result,
7422 otherwise all initial shapes.
7423 doGlueAllEdges If TRUE, all coincident edges of theShape
7424 will be glued, otherwise only the edges,
7425 belonging to theFaces.
7426 theName Object name; when specified, this parameter is used
7427 for result publication in the study. Otherwise, if automatic
7428 publication is switched on, default value is used for result name.
7431 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
7433 anObj = self.ShapesOp.MakeGlueFacesByList(ToList(theShapes), theTolerance, ToList(theFaces),
7434 doKeepNonSolids, doGlueAllEdges)
7436 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
7437 self._autoPublish(anObj, theName, "glueFaces")
7440 ## Replace coincident edges in \a theShapes by one edge.
7441 # @param theShapes Initial shapes, either a list or compound of shapes.
7442 # @param theTolerance Maximum distance between edges, which can be considered as coincident.
7443 # @param theName Object name; when specified, this parameter is used
7444 # for result publication in the study. Otherwise, if automatic
7445 # publication is switched on, default value is used for result name.
7447 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7449 # @ref tui_glue_edges "Example"
7450 @ManageTransactions("ShapesOp")
7451 def MakeGlueEdges(self, theShapes, theTolerance, theName=None):
7453 Replace coincident edges in theShapes by one edge.
7456 theShapes Initial shapes, either a list or compound of shapes.
7457 theTolerance Maximum distance between edges, which can be considered as coincident.
7458 theName Object name; when specified, this parameter is used
7459 for result publication in the study. Otherwise, if automatic
7460 publication is switched on, default value is used for result name.
7463 New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7465 theTolerance,Parameters = ParseParameters(theTolerance)
7466 anObj = self.ShapesOp.MakeGlueEdges(ToList(theShapes), theTolerance)
7468 raise RuntimeError, "MakeGlueEdges : " + self.ShapesOp.GetErrorCode()
7469 anObj.SetParameters(Parameters)
7470 self._autoPublish(anObj, theName, "glueEdges")
7473 ## Find coincident edges in \a theShapes for possible gluing.
7474 # @param theShapes Initial shapes, either a list or compound of shapes.
7475 # @param theTolerance Maximum distance between edges,
7476 # which can be considered as coincident.
7477 # @param theName Object name; when specified, this parameter is used
7478 # for result publication in the study. Otherwise, if automatic
7479 # publication is switched on, default value is used for result name.
7481 # @return GEOM.ListOfGO
7483 # @ref tui_glue_edges "Example"
7484 @ManageTransactions("ShapesOp")
7485 def GetGlueEdges(self, theShapes, theTolerance, theName=None):
7487 Find coincident edges in theShapes for possible gluing.
7490 theShapes Initial shapes, either a list or compound of shapes.
7491 theTolerance Maximum distance between edges,
7492 which can be considered as coincident.
7493 theName Object name; when specified, this parameter is used
7494 for result publication in the study. Otherwise, if automatic
7495 publication is switched on, default value is used for result name.
7500 anObj = self.ShapesOp.GetGlueEdges(ToList(theShapes), theTolerance)
7501 RaiseIfFailed("GetGlueEdges", self.ShapesOp)
7502 self._autoPublish(anObj, theName, "edgesToGlue")
7505 ## Replace coincident edges in theShapes by one edge
7506 # in compliance with given list of edges.
7507 # @param theShapes Initial shapes, either a list or compound of shapes.
7508 # @param theTolerance Maximum distance between edges,
7509 # which can be considered as coincident.
7510 # @param theEdges List of edges for gluing.
7511 # @param theName Object name; when specified, this parameter is used
7512 # for result publication in the study. Otherwise, if automatic
7513 # publication is switched on, default value is used for result name.
7515 # @return New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7517 # @ref tui_glue_edges "Example"
7518 @ManageTransactions("ShapesOp")
7519 def MakeGlueEdgesByList(self, theShapes, theTolerance, theEdges, theName=None):
7521 Replace coincident edges in theShapes by one edge
7522 in compliance with given list of edges.
7525 theShapes Initial shapes, either a list or compound of shapes.
7526 theTolerance Maximum distance between edges,
7527 which can be considered as coincident.
7528 theEdges List of edges for gluing.
7529 theName Object name; when specified, this parameter is used
7530 for result publication in the study. Otherwise, if automatic
7531 publication is switched on, default value is used for result name.
7534 New GEOM.GEOM_Object, containing copies of theShapes without coincident edges.
7536 anObj = self.ShapesOp.MakeGlueEdgesByList(ToList(theShapes), theTolerance, theEdges)
7538 raise RuntimeError, "MakeGlueEdgesByList : " + self.ShapesOp.GetErrorCode()
7539 self._autoPublish(anObj, theName, "glueEdges")
7545 ## @addtogroup l3_boolean Boolean Operations
7548 # -----------------------------------------------------------------------------
7549 # Boolean (Common, Cut, Fuse, Section)
7550 # -----------------------------------------------------------------------------
7552 ## Perform one of boolean operations on two given shapes.
7553 # @param theShape1 First argument for boolean operation.
7554 # @param theShape2 Second argument for boolean operation.
7555 # @param theOperation Indicates the operation to be done:\n
7556 # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
7557 # @param checkSelfInte The flag that tells if the arguments should
7558 # be checked for self-intersection prior to the operation.
7559 # @param theName Object name; when specified, this parameter is used
7560 # for result publication in the study. Otherwise, if automatic
7561 # publication is switched on, default value is used for result name.
7563 # @note This algorithm doesn't find all types of self-intersections.
7564 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7565 # vertex/face and edge/face intersections. Face/face
7566 # intersections detection is switched off as it is a
7567 # time-consuming operation that gives an impact on performance.
7568 # To find all self-intersections please use
7569 # CheckSelfIntersections() method.
7571 # @return New GEOM.GEOM_Object, containing the result shape.
7573 # @ref tui_fuse "Example"
7574 @ManageTransactions("BoolOp")
7575 def MakeBoolean(self, theShape1, theShape2, theOperation, checkSelfInte=False, theName=None):
7577 Perform one of boolean operations on two given shapes.
7580 theShape1 First argument for boolean operation.
7581 theShape2 Second argument for boolean operation.
7582 theOperation Indicates the operation to be done:
7583 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
7584 checkSelfInte The flag that tells if the arguments should
7585 be checked for self-intersection prior to
7587 theName Object name; when specified, this parameter is used
7588 for result publication in the study. Otherwise, if automatic
7589 publication is switched on, default value is used for result name.
7592 This algorithm doesn't find all types of self-intersections.
7593 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7594 vertex/face and edge/face intersections. Face/face
7595 intersections detection is switched off as it is a
7596 time-consuming operation that gives an impact on performance.
7597 To find all self-intersections please use
7598 CheckSelfIntersections() method.
7601 New GEOM.GEOM_Object, containing the result shape.
7603 # Example: see GEOM_TestAll.py
7604 anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation, checkSelfInte)
7605 RaiseIfFailed("MakeBoolean", self.BoolOp)
7606 def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
7607 self._autoPublish(anObj, theName, def_names[theOperation])
7610 ## Perform Common boolean operation on two given shapes.
7611 # @param theShape1 First argument for boolean operation.
7612 # @param theShape2 Second argument for boolean operation.
7613 # @param checkSelfInte The flag that tells if the arguments should
7614 # be checked for self-intersection prior to the operation.
7615 # @param theName Object name; when specified, this parameter is used
7616 # for result publication in the study. Otherwise, if automatic
7617 # publication is switched on, default value is used for result name.
7619 # @note This algorithm doesn't find all types of self-intersections.
7620 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7621 # vertex/face and edge/face intersections. Face/face
7622 # intersections detection is switched off as it is a
7623 # time-consuming operation that gives an impact on performance.
7624 # To find all self-intersections please use
7625 # CheckSelfIntersections() method.
7627 # @return New GEOM.GEOM_Object, containing the result shape.
7629 # @ref tui_common "Example 1"
7630 # \n @ref swig_MakeCommon "Example 2"
7631 def MakeCommon(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7633 Perform Common boolean operation on two given shapes.
7636 theShape1 First argument for boolean operation.
7637 theShape2 Second argument for boolean operation.
7638 checkSelfInte The flag that tells if the arguments should
7639 be checked for self-intersection prior to
7641 theName Object name; when specified, this parameter is used
7642 for result publication in the study. Otherwise, if automatic
7643 publication is switched on, default value is used for result name.
7646 This algorithm doesn't find all types of self-intersections.
7647 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7648 vertex/face and edge/face intersections. Face/face
7649 intersections detection is switched off as it is a
7650 time-consuming operation that gives an impact on performance.
7651 To find all self-intersections please use
7652 CheckSelfIntersections() method.
7655 New GEOM.GEOM_Object, containing the result shape.
7657 # Example: see GEOM_TestOthers.py
7658 # note: auto-publishing is done in self.MakeBoolean()
7659 return self.MakeBoolean(theShape1, theShape2, 1, checkSelfInte, theName)
7661 ## Perform Cut boolean operation on two given shapes.
7662 # @param theShape1 First argument for boolean operation.
7663 # @param theShape2 Second argument for boolean operation.
7664 # @param checkSelfInte The flag that tells if the arguments should
7665 # be checked for self-intersection prior to the operation.
7666 # @param theName Object name; when specified, this parameter is used
7667 # for result publication in the study. Otherwise, if automatic
7668 # publication is switched on, default value is used for result name.
7670 # @note This algorithm doesn't find all types of self-intersections.
7671 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7672 # vertex/face and edge/face intersections. Face/face
7673 # intersections detection is switched off as it is a
7674 # time-consuming operation that gives an impact on performance.
7675 # To find all self-intersections please use
7676 # CheckSelfIntersections() method.
7678 # @return New GEOM.GEOM_Object, containing the result shape.
7680 # @ref tui_cut "Example 1"
7681 # \n @ref swig_MakeCommon "Example 2"
7682 def MakeCut(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7684 Perform Cut boolean operation on two given shapes.
7687 theShape1 First argument for boolean operation.
7688 theShape2 Second argument for boolean operation.
7689 checkSelfInte The flag that tells if the arguments should
7690 be checked for self-intersection prior to
7692 theName Object name; when specified, this parameter is used
7693 for result publication in the study. Otherwise, if automatic
7694 publication is switched on, default value is used for result name.
7697 This algorithm doesn't find all types of self-intersections.
7698 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7699 vertex/face and edge/face intersections. Face/face
7700 intersections detection is switched off as it is a
7701 time-consuming operation that gives an impact on performance.
7702 To find all self-intersections please use
7703 CheckSelfIntersections() method.
7706 New GEOM.GEOM_Object, containing the result shape.
7709 # Example: see GEOM_TestOthers.py
7710 # note: auto-publishing is done in self.MakeBoolean()
7711 return self.MakeBoolean(theShape1, theShape2, 2, checkSelfInte, theName)
7713 ## Perform Fuse boolean operation on two given shapes.
7714 # @param theShape1 First argument for boolean operation.
7715 # @param theShape2 Second argument for boolean operation.
7716 # @param checkSelfInte The flag that tells if the arguments should
7717 # be checked for self-intersection prior to the operation.
7718 # @param rmExtraEdges The flag that tells if Remove Extra Edges
7719 # operation should be performed during the operation.
7720 # @param theName Object name; when specified, this parameter is used
7721 # for result publication in the study. Otherwise, if automatic
7722 # publication is switched on, default value is used for result name.
7724 # @note This algorithm doesn't find all types of self-intersections.
7725 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7726 # vertex/face and edge/face intersections. Face/face
7727 # intersections detection is switched off as it is a
7728 # time-consuming operation that gives an impact on performance.
7729 # To find all self-intersections please use
7730 # CheckSelfIntersections() method.
7732 # @return New GEOM.GEOM_Object, containing the result shape.
7734 # @ref tui_fuse "Example 1"
7735 # \n @ref swig_MakeCommon "Example 2"
7736 @ManageTransactions("BoolOp")
7737 def MakeFuse(self, theShape1, theShape2, checkSelfInte=False,
7738 rmExtraEdges=False, theName=None):
7740 Perform Fuse boolean operation on two given shapes.
7743 theShape1 First argument for boolean operation.
7744 theShape2 Second argument for boolean operation.
7745 checkSelfInte The flag that tells if the arguments should
7746 be checked for self-intersection prior to
7748 rmExtraEdges The flag that tells if Remove Extra Edges
7749 operation should be performed during the operation.
7750 theName Object name; when specified, this parameter is used
7751 for result publication in the study. Otherwise, if automatic
7752 publication is switched on, default value is used for result name.
7755 This algorithm doesn't find all types of self-intersections.
7756 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7757 vertex/face and edge/face intersections. Face/face
7758 intersections detection is switched off as it is a
7759 time-consuming operation that gives an impact on performance.
7760 To find all self-intersections please use
7761 CheckSelfIntersections() method.
7764 New GEOM.GEOM_Object, containing the result shape.
7767 # Example: see GEOM_TestOthers.py
7768 anObj = self.BoolOp.MakeFuse(theShape1, theShape2,
7769 checkSelfInte, rmExtraEdges)
7770 RaiseIfFailed("MakeFuse", self.BoolOp)
7771 self._autoPublish(anObj, theName, "fuse")
7774 ## Perform Section boolean operation on two given shapes.
7775 # @param theShape1 First argument for boolean operation.
7776 # @param theShape2 Second argument for boolean operation.
7777 # @param checkSelfInte The flag that tells if the arguments should
7778 # be checked for self-intersection prior to the operation.
7779 # If a self-intersection detected the operation fails.
7780 # @param theName Object name; when specified, this parameter is used
7781 # for result publication in the study. Otherwise, if automatic
7782 # publication is switched on, default value is used for result name.
7783 # @return New GEOM.GEOM_Object, containing the result shape.
7785 # @ref tui_section "Example 1"
7786 # \n @ref swig_MakeCommon "Example 2"
7787 def MakeSection(self, theShape1, theShape2, checkSelfInte=False, theName=None):
7789 Perform Section boolean operation on two given shapes.
7792 theShape1 First argument for boolean operation.
7793 theShape2 Second argument for boolean operation.
7794 checkSelfInte The flag that tells if the arguments should
7795 be checked for self-intersection prior to the operation.
7796 If a self-intersection detected the operation fails.
7797 theName Object name; when specified, this parameter is used
7798 for result publication in the study. Otherwise, if automatic
7799 publication is switched on, default value is used for result name.
7801 New GEOM.GEOM_Object, containing the result shape.
7804 # Example: see GEOM_TestOthers.py
7805 # note: auto-publishing is done in self.MakeBoolean()
7806 return self.MakeBoolean(theShape1, theShape2, 4, checkSelfInte, theName)
7808 ## Perform Fuse boolean operation on the list of shapes.
7809 # @param theShapesList Shapes to be fused.
7810 # @param checkSelfInte The flag that tells if the arguments should
7811 # be checked for self-intersection prior to the operation.
7812 # @param rmExtraEdges The flag that tells if Remove Extra Edges
7813 # operation should be performed during the operation.
7814 # @param theName Object name; when specified, this parameter is used
7815 # for result publication in the study. Otherwise, if automatic
7816 # publication is switched on, default value is used for result name.
7818 # @note This algorithm doesn't find all types of self-intersections.
7819 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7820 # vertex/face and edge/face intersections. Face/face
7821 # intersections detection is switched off as it is a
7822 # time-consuming operation that gives an impact on performance.
7823 # To find all self-intersections please use
7824 # CheckSelfIntersections() method.
7826 # @return New GEOM.GEOM_Object, containing the result shape.
7828 # @ref tui_fuse "Example 1"
7829 # \n @ref swig_MakeCommon "Example 2"
7830 @ManageTransactions("BoolOp")
7831 def MakeFuseList(self, theShapesList, checkSelfInte=False,
7832 rmExtraEdges=False, theName=None):
7834 Perform Fuse boolean operation on the list of shapes.
7837 theShapesList Shapes to be fused.
7838 checkSelfInte The flag that tells if the arguments should
7839 be checked for self-intersection prior to
7841 rmExtraEdges The flag that tells if Remove Extra Edges
7842 operation should be performed during the operation.
7843 theName Object name; when specified, this parameter is used
7844 for result publication in the study. Otherwise, if automatic
7845 publication is switched on, default value is used for result name.
7848 This algorithm doesn't find all types of self-intersections.
7849 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7850 vertex/face and edge/face intersections. Face/face
7851 intersections detection is switched off as it is a
7852 time-consuming operation that gives an impact on performance.
7853 To find all self-intersections please use
7854 CheckSelfIntersections() method.
7857 New GEOM.GEOM_Object, containing the result shape.
7860 # Example: see GEOM_TestOthers.py
7861 anObj = self.BoolOp.MakeFuseList(theShapesList, checkSelfInte,
7863 RaiseIfFailed("MakeFuseList", self.BoolOp)
7864 self._autoPublish(anObj, theName, "fuse")
7867 ## Perform Common boolean operation on the list of shapes.
7868 # @param theShapesList Shapes for Common operation.
7869 # @param checkSelfInte The flag that tells if the arguments should
7870 # be checked for self-intersection prior to the operation.
7871 # @param theName Object name; when specified, this parameter is used
7872 # for result publication in the study. Otherwise, if automatic
7873 # publication is switched on, default value is used for result name.
7875 # @note This algorithm doesn't find all types of self-intersections.
7876 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7877 # vertex/face and edge/face intersections. Face/face
7878 # intersections detection is switched off as it is a
7879 # time-consuming operation that gives an impact on performance.
7880 # To find all self-intersections please use
7881 # CheckSelfIntersections() method.
7883 # @return New GEOM.GEOM_Object, containing the result shape.
7885 # @ref tui_common "Example 1"
7886 # \n @ref swig_MakeCommon "Example 2"
7887 @ManageTransactions("BoolOp")
7888 def MakeCommonList(self, theShapesList, checkSelfInte=False, theName=None):
7890 Perform Common boolean operation on the list of shapes.
7893 theShapesList Shapes for Common operation.
7894 checkSelfInte The flag that tells if the arguments should
7895 be checked for self-intersection prior to
7897 theName Object name; when specified, this parameter is used
7898 for result publication in the study. Otherwise, if automatic
7899 publication is switched on, default value is used for result name.
7902 This algorithm doesn't find all types of self-intersections.
7903 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7904 vertex/face and edge/face intersections. Face/face
7905 intersections detection is switched off as it is a
7906 time-consuming operation that gives an impact on performance.
7907 To find all self-intersections please use
7908 CheckSelfIntersections() method.
7911 New GEOM.GEOM_Object, containing the result shape.
7914 # Example: see GEOM_TestOthers.py
7915 anObj = self.BoolOp.MakeCommonList(theShapesList, checkSelfInte)
7916 RaiseIfFailed("MakeCommonList", self.BoolOp)
7917 self._autoPublish(anObj, theName, "common")
7920 ## Perform Cut boolean operation on one object and the list of tools.
7921 # @param theMainShape The object of the operation.
7922 # @param theShapesList The list of tools of the operation.
7923 # @param checkSelfInte The flag that tells if the arguments should
7924 # be checked for self-intersection prior to the operation.
7925 # @param theName Object name; when specified, this parameter is used
7926 # for result publication in the study. Otherwise, if automatic
7927 # publication is switched on, default value is used for result name.
7929 # @note This algorithm doesn't find all types of self-intersections.
7930 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7931 # vertex/face and edge/face intersections. Face/face
7932 # intersections detection is switched off as it is a
7933 # time-consuming operation that gives an impact on performance.
7934 # To find all self-intersections please use
7935 # CheckSelfIntersections() method.
7937 # @return New GEOM.GEOM_Object, containing the result shape.
7939 # @ref tui_cut "Example 1"
7940 # \n @ref swig_MakeCommon "Example 2"
7941 @ManageTransactions("BoolOp")
7942 def MakeCutList(self, theMainShape, theShapesList, checkSelfInte=False, theName=None):
7944 Perform Cut boolean operation on one object and the list of tools.
7947 theMainShape The object of the operation.
7948 theShapesList The list of tools of the operation.
7949 checkSelfInte The flag that tells if the arguments should
7950 be checked for self-intersection prior to
7952 theName Object name; when specified, this parameter is used
7953 for result publication in the study. Otherwise, if automatic
7954 publication is switched on, default value is used for result name.
7957 This algorithm doesn't find all types of self-intersections.
7958 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
7959 vertex/face and edge/face intersections. Face/face
7960 intersections detection is switched off as it is a
7961 time-consuming operation that gives an impact on performance.
7962 To find all self-intersections please use
7963 CheckSelfIntersections() method.
7966 New GEOM.GEOM_Object, containing the result shape.
7969 # Example: see GEOM_TestOthers.py
7970 anObj = self.BoolOp.MakeCutList(theMainShape, theShapesList, checkSelfInte)
7971 RaiseIfFailed("MakeCutList", self.BoolOp)
7972 self._autoPublish(anObj, theName, "cut")
7978 ## @addtogroup l3_basic_op
7981 ## Perform partition operation.
7982 # @param ListShapes Shapes to be intersected.
7983 # @param ListTools Shapes to intersect theShapes.
7984 # @param Limit Type of resulting shapes (see ShapeType()).\n
7985 # If this parameter is set to -1 ("Auto"), most appropriate shape limit
7986 # type will be detected automatically.
7987 # @param KeepNonlimitShapes if this parameter == 0, then only shapes of
7988 # target type (equal to Limit) are kept in the result,
7989 # else standalone shapes of lower dimension
7990 # are kept also (if they exist).
7992 # @param theName Object name; when specified, this parameter is used
7993 # for result publication in the study. Otherwise, if automatic
7994 # publication is switched on, default value is used for result name.
7996 # @note Each compound from ListShapes and ListTools will be exploded
7997 # in order to avoid possible intersection between shapes from this compound.
7999 # After implementation new version of PartitionAlgo (October 2006)
8000 # other parameters are ignored by current functionality. They are kept
8001 # in this function only for support old versions.
8002 # @param ListKeepInside Shapes, outside which the results will be deleted.
8003 # Each shape from theKeepInside must belong to theShapes also.
8004 # @param ListRemoveInside Shapes, inside which the results will be deleted.
8005 # Each shape from theRemoveInside must belong to theShapes also.
8006 # @param RemoveWebs If TRUE, perform Glue 3D algorithm.
8007 # @param ListMaterials Material indices for each shape. Make sence,
8008 # only if theRemoveWebs is TRUE.
8010 # @return New GEOM.GEOM_Object, containing the result shapes.
8012 # @ref tui_partition "Example"
8013 @ManageTransactions("BoolOp")
8014 def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
8015 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
8016 KeepNonlimitShapes=0, theName=None):
8018 Perform partition operation.
8021 ListShapes Shapes to be intersected.
8022 ListTools Shapes to intersect theShapes.
8023 Limit Type of resulting shapes (see geompy.ShapeType)
8024 If this parameter is set to -1 ("Auto"), most appropriate shape limit
8025 type will be detected automatically.
8026 KeepNonlimitShapes if this parameter == 0, then only shapes of
8027 target type (equal to Limit) are kept in the result,
8028 else standalone shapes of lower dimension
8029 are kept also (if they exist).
8031 theName Object name; when specified, this parameter is used
8032 for result publication in the study. Otherwise, if automatic
8033 publication is switched on, default value is used for result name.
8035 Each compound from ListShapes and ListTools will be exploded
8036 in order to avoid possible intersection between shapes from
8039 After implementation new version of PartitionAlgo (October 2006) other
8040 parameters are ignored by current functionality. They are kept in this
8041 function only for support old versions.
8044 ListKeepInside Shapes, outside which the results will be deleted.
8045 Each shape from theKeepInside must belong to theShapes also.
8046 ListRemoveInside Shapes, inside which the results will be deleted.
8047 Each shape from theRemoveInside must belong to theShapes also.
8048 RemoveWebs If TRUE, perform Glue 3D algorithm.
8049 ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
8052 New GEOM.GEOM_Object, containing the result shapes.
8054 # Example: see GEOM_TestAll.py
8055 if Limit == self.ShapeType["AUTO"]:
8056 # automatic detection of the most appropriate shape limit type
8058 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
8059 Limit = EnumToLong(lim)
8061 anObj = self.BoolOp.MakePartition(ListShapes, ListTools,
8062 ListKeepInside, ListRemoveInside,
8063 Limit, RemoveWebs, ListMaterials,
8064 KeepNonlimitShapes);
8065 RaiseIfFailed("MakePartition", self.BoolOp)
8066 self._autoPublish(anObj, theName, "partition")
8069 ## Perform partition operation.
8070 # This method may be useful if it is needed to make a partition for
8071 # compound contains nonintersected shapes. Performance will be better
8072 # since intersection between shapes from compound is not performed.
8074 # Description of all parameters as in previous method MakePartition().
8075 # One additional parameter is provided:
8076 # @param checkSelfInte The flag that tells if the arguments should
8077 # be checked for self-intersection prior to the operation.
8079 # @note This algorithm doesn't find all types of self-intersections.
8080 # It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8081 # vertex/face and edge/face intersections. Face/face
8082 # intersections detection is switched off as it is a
8083 # time-consuming operation that gives an impact on performance.
8084 # To find all self-intersections please use
8085 # CheckSelfIntersections() method.
8087 # @note Passed compounds (via ListShapes or via ListTools)
8088 # have to consist of nonintersecting shapes.
8090 # @return New GEOM.GEOM_Object, containing the result shapes.
8092 # @ref swig_todo "Example"
8093 @ManageTransactions("BoolOp")
8094 def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
8095 ListKeepInside=[], ListRemoveInside=[],
8096 Limit=ShapeType["AUTO"], RemoveWebs=0,
8097 ListMaterials=[], KeepNonlimitShapes=0,
8098 checkSelfInte=False, theName=None):
8100 Perform partition operation.
8101 This method may be useful if it is needed to make a partition for
8102 compound contains nonintersected shapes. Performance will be better
8103 since intersection between shapes from compound is not performed.
8106 Description of all parameters as in method geompy.MakePartition.
8107 One additional parameter is provided:
8108 checkSelfInte The flag that tells if the arguments should
8109 be checked for self-intersection prior to
8113 This algorithm doesn't find all types of self-intersections.
8114 It is tuned to detect vertex/vertex, vertex/edge, edge/edge,
8115 vertex/face and edge/face intersections. Face/face
8116 intersections detection is switched off as it is a
8117 time-consuming operation that gives an impact on performance.
8118 To find all self-intersections please use
8119 CheckSelfIntersections() method.
8122 Passed compounds (via ListShapes or via ListTools)
8123 have to consist of nonintersecting shapes.
8126 New GEOM.GEOM_Object, containing the result shapes.
8128 if Limit == self.ShapeType["AUTO"]:
8129 # automatic detection of the most appropriate shape limit type
8131 for s in ListShapes: lim = min( lim, s.GetMaxShapeType() )
8132 Limit = EnumToLong(lim)
8134 anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
8135 ListKeepInside, ListRemoveInside,
8136 Limit, RemoveWebs, ListMaterials,
8137 KeepNonlimitShapes, checkSelfInte);
8138 RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
8139 self._autoPublish(anObj, theName, "partition")
8142 ## See method MakePartition() for more information.
8144 # @ref tui_partition "Example 1"
8145 # \n @ref swig_Partition "Example 2"
8146 def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
8147 Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
8148 KeepNonlimitShapes=0, theName=None):
8150 See method geompy.MakePartition for more information.
8152 # Example: see GEOM_TestOthers.py
8153 # note: auto-publishing is done in self.MakePartition()
8154 anObj = self.MakePartition(ListShapes, ListTools,
8155 ListKeepInside, ListRemoveInside,
8156 Limit, RemoveWebs, ListMaterials,
8157 KeepNonlimitShapes, theName);
8160 ## Perform partition of the Shape with the Plane
8161 # @param theShape Shape to be intersected.
8162 # @param thePlane Tool shape, to intersect theShape.
8163 # @param theName Object name; when specified, this parameter is used
8164 # for result publication in the study. Otherwise, if automatic
8165 # publication is switched on, default value is used for result name.
8167 # @return New GEOM.GEOM_Object, containing the result shape.
8169 # @note This operation is a shortcut to the more general @ref MakePartition
8170 # operation, where @a theShape specifies single "object" (shape being partitioned)
8171 # and @a thePlane specifies single "tool" (intersector shape). Other parameters of
8172 # @ref MakePartition operation have default values:
8173 # - @a Limit: GEOM::SHAPE (shape limit corresponds to the type of @a theShape)
8174 # - @a KeepNonlimitShapes: 0
8175 # - @a KeepInside, @a RemoveInside, @a RemoveWebs,
8176 # @a Materials (obsolete parameters): empty
8178 # @note I.e. the following two operations are equivalent:
8180 # Result = geompy.MakeHalfPartition(Object, Plane)
8181 # Result = geompy.MakePartition([Object], [Plane])
8184 # @sa MakePartition, MakePartitionNonSelfIntersectedShape
8186 # @ref tui_partition "Example"
8187 @ManageTransactions("BoolOp")
8188 def MakeHalfPartition(self, theShape, thePlane, theName=None):
8190 Perform partition of the Shape with the Plane
8193 theShape Shape to be intersected.
8194 thePlane Tool shape, to intersect theShape.
8195 theName Object name; when specified, this parameter is used
8196 for result publication in the study. Otherwise, if automatic
8197 publication is switched on, default value is used for result name.
8200 New GEOM.GEOM_Object, containing the result shape.
8202 Note: This operation is a shortcut to the more general MakePartition
8203 operation, where theShape specifies single "object" (shape being partitioned)
8204 and thePlane specifies single "tool" (intersector shape). Other parameters of
8205 MakePartition operation have default values:
8206 - Limit: GEOM::SHAPE (shape limit corresponds to the type of theShape)
8207 - KeepNonlimitShapes: 0
8208 - KeepInside, RemoveInside, RemoveWebs, Materials (obsolete parameters): empty
8210 I.e. the following two operations are equivalent:
8211 Result = geompy.MakeHalfPartition(Object, Plane)
8212 Result = geompy.MakePartition([Object], [Plane])
8214 # Example: see GEOM_TestAll.py
8215 anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
8216 RaiseIfFailed("MakeHalfPartition", self.BoolOp)
8217 self._autoPublish(anObj, theName, "partition")
8220 # end of l3_basic_op
8223 ## @addtogroup l3_transform
8226 ## Translate the given object along the vector, specified
8227 # by its end points.
8228 # @param theObject The object to be translated.
8229 # @param thePoint1 Start point of translation vector.
8230 # @param thePoint2 End point of translation vector.
8231 # @param theCopy Flag used to translate object itself or create a copy.
8232 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8233 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8234 @ManageTransactions("TrsfOp")
8235 def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
8237 Translate the given object along the vector, specified by its end points.
8240 theObject The object to be translated.
8241 thePoint1 Start point of translation vector.
8242 thePoint2 End point of translation vector.
8243 theCopy Flag used to translate object itself or create a copy.
8246 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8247 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8250 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
8252 anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
8253 RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
8256 ## Translate the given object along the vector, specified
8257 # by its end points, creating its copy before the translation.
8258 # @param theObject The object to be translated.
8259 # @param thePoint1 Start point of translation vector.
8260 # @param thePoint2 End point of translation vector.
8261 # @param theName Object name; when specified, this parameter is used
8262 # for result publication in the study. Otherwise, if automatic
8263 # publication is switched on, default value is used for result name.
8265 # @return New GEOM.GEOM_Object, containing the translated object.
8267 # @ref tui_translation "Example 1"
8268 # \n @ref swig_MakeTranslationTwoPoints "Example 2"
8269 @ManageTransactions("TrsfOp")
8270 def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
8272 Translate the given object along the vector, specified
8273 by its end points, creating its copy before the translation.
8276 theObject The object to be translated.
8277 thePoint1 Start point of translation vector.
8278 thePoint2 End point of translation vector.
8279 theName Object name; when specified, this parameter is used
8280 for result publication in the study. Otherwise, if automatic
8281 publication is switched on, default value is used for result name.
8284 New GEOM.GEOM_Object, containing the translated object.
8286 # Example: see GEOM_TestAll.py
8287 anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
8288 RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
8289 self._autoPublish(anObj, theName, "translated")
8292 ## Translate the given object along the vector, specified by its components.
8293 # @param theObject The object to be translated.
8294 # @param theDX,theDY,theDZ Components of translation vector.
8295 # @param theCopy Flag used to translate object itself or create a copy.
8296 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8297 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8299 # @ref tui_translation "Example"
8300 @ManageTransactions("TrsfOp")
8301 def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
8303 Translate the given object along the vector, specified by its components.
8306 theObject The object to be translated.
8307 theDX,theDY,theDZ Components of translation vector.
8308 theCopy Flag used to translate object itself or create a copy.
8311 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8312 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8314 # Example: see GEOM_TestAll.py
8315 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
8317 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
8319 anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
8320 anObj.SetParameters(Parameters)
8321 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
8324 ## Translate the given object along the vector, specified
8325 # by its components, creating its copy before the translation.
8326 # @param theObject The object to be translated.
8327 # @param theDX,theDY,theDZ Components of translation vector.
8328 # @param theName Object name; when specified, this parameter is used
8329 # for result publication in the study. Otherwise, if automatic
8330 # publication is switched on, default value is used for result name.
8332 # @return New GEOM.GEOM_Object, containing the translated object.
8334 # @ref tui_translation "Example"
8335 @ManageTransactions("TrsfOp")
8336 def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
8338 Translate the given object along the vector, specified
8339 by its components, creating its copy before the translation.
8342 theObject The object to be translated.
8343 theDX,theDY,theDZ Components of translation vector.
8344 theName Object name; when specified, this parameter is used
8345 for result publication in the study. Otherwise, if automatic
8346 publication is switched on, default value is used for result name.
8349 New GEOM.GEOM_Object, containing the translated object.
8351 # Example: see GEOM_TestAll.py
8352 theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
8353 anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
8354 anObj.SetParameters(Parameters)
8355 RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
8356 self._autoPublish(anObj, theName, "translated")
8359 ## Translate the given object along the given vector.
8360 # @param theObject The object to be translated.
8361 # @param theVector The translation vector.
8362 # @param theCopy Flag used to translate object itself or create a copy.
8363 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8364 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8365 @ManageTransactions("TrsfOp")
8366 def TranslateVector(self, theObject, theVector, theCopy=False):
8368 Translate the given object along the given vector.
8371 theObject The object to be translated.
8372 theVector The translation vector.
8373 theCopy Flag used to translate object itself or create a copy.
8376 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8377 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8380 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
8382 anObj = self.TrsfOp.TranslateVector(theObject, theVector)
8383 RaiseIfFailed("TranslateVector", self.TrsfOp)
8386 ## Translate the given object along the given vector,
8387 # creating its copy before the translation.
8388 # @param theObject The object to be translated.
8389 # @param theVector The translation vector.
8390 # @param theName Object name; when specified, this parameter is used
8391 # for result publication in the study. Otherwise, if automatic
8392 # publication is switched on, default value is used for result name.
8394 # @return New GEOM.GEOM_Object, containing the translated object.
8396 # @ref tui_translation "Example"
8397 @ManageTransactions("TrsfOp")
8398 def MakeTranslationVector(self, theObject, theVector, theName=None):
8400 Translate the given object along the given vector,
8401 creating its copy before the translation.
8404 theObject The object to be translated.
8405 theVector The translation vector.
8406 theName Object name; when specified, this parameter is used
8407 for result publication in the study. Otherwise, if automatic
8408 publication is switched on, default value is used for result name.
8411 New GEOM.GEOM_Object, containing the translated object.
8413 # Example: see GEOM_TestAll.py
8414 anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
8415 RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
8416 self._autoPublish(anObj, theName, "translated")
8419 ## Translate the given object along the given vector on given distance.
8420 # @param theObject The object to be translated.
8421 # @param theVector The translation vector.
8422 # @param theDistance The translation distance.
8423 # @param theCopy Flag used to translate object itself or create a copy.
8424 # @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8425 # new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
8427 # @ref tui_translation "Example"
8428 @ManageTransactions("TrsfOp")
8429 def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
8431 Translate the given object along the given vector on given distance.
8434 theObject The object to be translated.
8435 theVector The translation vector.
8436 theDistance The translation distance.
8437 theCopy Flag used to translate object itself or create a copy.
8440 Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8441 new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
8443 # Example: see GEOM_TestAll.py
8444 theDistance,Parameters = ParseParameters(theDistance)
8445 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy)
8446 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
8447 anObj.SetParameters(Parameters)
8450 ## Translate the given object along the given vector on given distance,
8451 # creating its copy before the translation.
8452 # @param theObject The object to be translated.
8453 # @param theVector The translation vector.
8454 # @param theDistance The translation distance.
8455 # @param theName Object name; when specified, this parameter is used
8456 # for result publication in the study. Otherwise, if automatic
8457 # publication is switched on, default value is used for result name.
8459 # @return New GEOM.GEOM_Object, containing the translated object.
8461 # @ref tui_translation "Example"
8462 @ManageTransactions("TrsfOp")
8463 def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
8465 Translate the given object along the given vector on given distance,
8466 creating its copy before the translation.
8469 theObject The object to be translated.
8470 theVector The translation vector.
8471 theDistance The translation distance.
8472 theName Object name; when specified, this parameter is used
8473 for result publication in the study. Otherwise, if automatic
8474 publication is switched on, default value is used for result name.
8477 New GEOM.GEOM_Object, containing the translated object.
8479 # Example: see GEOM_TestAll.py
8480 theDistance,Parameters = ParseParameters(theDistance)
8481 anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
8482 RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
8483 anObj.SetParameters(Parameters)
8484 self._autoPublish(anObj, theName, "translated")
8487 ## Rotate the given object around the given axis on the given angle.
8488 # @param theObject The object to be rotated.
8489 # @param theAxis Rotation axis.
8490 # @param theAngle Rotation angle in radians.
8491 # @param theCopy Flag used to rotate object itself or create a copy.
8493 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8494 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
8496 # @ref tui_rotation "Example"
8497 @ManageTransactions("TrsfOp")
8498 def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
8500 Rotate the given object around the given axis on the given angle.
8503 theObject The object to be rotated.
8504 theAxis Rotation axis.
8505 theAngle Rotation angle in radians.
8506 theCopy Flag used to rotate object itself or create a copy.
8509 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8510 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
8512 # Example: see GEOM_TestAll.py
8514 if isinstance(theAngle,str):
8516 theAngle, Parameters = ParseParameters(theAngle)
8518 theAngle = theAngle*math.pi/180.0
8520 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
8522 anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
8523 RaiseIfFailed("Rotate", self.TrsfOp)
8524 anObj.SetParameters(Parameters)
8527 ## Rotate the given object around the given axis
8528 # on the given angle, creating its copy before the rotation.
8529 # @param theObject The object to be rotated.
8530 # @param theAxis Rotation axis.
8531 # @param theAngle Rotation angle in radians.
8532 # @param theName Object name; when specified, this parameter is used
8533 # for result publication in the study. Otherwise, if automatic
8534 # publication is switched on, default value is used for result name.
8536 # @return New GEOM.GEOM_Object, containing the rotated object.
8538 # @ref tui_rotation "Example"
8539 @ManageTransactions("TrsfOp")
8540 def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
8542 Rotate the given object around the given axis
8543 on the given angle, creating its copy before the rotatation.
8546 theObject The object to be rotated.
8547 theAxis Rotation axis.
8548 theAngle Rotation angle in radians.
8549 theName Object name; when specified, this parameter is used
8550 for result publication in the study. Otherwise, if automatic
8551 publication is switched on, default value is used for result name.
8554 New GEOM.GEOM_Object, containing the rotated object.
8556 # Example: see GEOM_TestAll.py
8558 if isinstance(theAngle,str):
8560 theAngle, Parameters = ParseParameters(theAngle)
8562 theAngle = theAngle*math.pi/180.0
8563 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
8564 RaiseIfFailed("RotateCopy", self.TrsfOp)
8565 anObj.SetParameters(Parameters)
8566 self._autoPublish(anObj, theName, "rotated")
8569 ## Rotate given object around vector perpendicular to plane
8570 # containing three points.
8571 # @param theObject The object to be rotated.
8572 # @param theCentPoint central point the axis is the vector perpendicular to the plane
8573 # containing the three points.
8574 # @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
8575 # @param theCopy Flag used to rotate object itself or create a copy.
8576 # @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8577 # new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
8578 @ManageTransactions("TrsfOp")
8579 def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
8581 Rotate given object around vector perpendicular to plane
8582 containing three points.
8585 theObject The object to be rotated.
8586 theCentPoint central point the axis is the vector perpendicular to the plane
8587 containing the three points.
8588 thePoint1,thePoint2 points in a perpendicular plane of the axis.
8589 theCopy Flag used to rotate object itself or create a copy.
8592 Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8593 new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
8596 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
8598 anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
8599 RaiseIfFailed("RotateThreePoints", self.TrsfOp)
8602 ## Rotate given object around vector perpendicular to plane
8603 # containing three points, creating its copy before the rotatation.
8604 # @param theObject The object to be rotated.
8605 # @param theCentPoint central point the axis is the vector perpendicular to the plane
8606 # containing the three points.
8607 # @param thePoint1,thePoint2 in a perpendicular plane of the axis.
8608 # @param theName Object name; when specified, this parameter is used
8609 # for result publication in the study. Otherwise, if automatic
8610 # publication is switched on, default value is used for result name.
8612 # @return New GEOM.GEOM_Object, containing the rotated object.
8614 # @ref tui_rotation "Example"
8615 @ManageTransactions("TrsfOp")
8616 def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
8618 Rotate given object around vector perpendicular to plane
8619 containing three points, creating its copy before the rotatation.
8622 theObject The object to be rotated.
8623 theCentPoint central point the axis is the vector perpendicular to the plane
8624 containing the three points.
8625 thePoint1,thePoint2 in a perpendicular plane of the axis.
8626 theName Object name; when specified, this parameter is used
8627 for result publication in the study. Otherwise, if automatic
8628 publication is switched on, default value is used for result name.
8631 New GEOM.GEOM_Object, containing the rotated object.
8633 # Example: see GEOM_TestAll.py
8634 anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
8635 RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
8636 self._autoPublish(anObj, theName, "rotated")
8639 ## Scale the given object by the specified factor.
8640 # @param theObject The object to be scaled.
8641 # @param thePoint Center point for scaling.
8642 # Passing None for it means scaling relatively the origin of global CS.
8643 # @param theFactor Scaling factor value.
8644 # @param theCopy Flag used to scale object itself or create a copy.
8645 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8646 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
8647 @ManageTransactions("TrsfOp")
8648 def Scale(self, theObject, thePoint, theFactor, theCopy=False):
8650 Scale the given object by the specified factor.
8653 theObject The object to be scaled.
8654 thePoint Center point for scaling.
8655 Passing None for it means scaling relatively the origin of global CS.
8656 theFactor Scaling factor value.
8657 theCopy Flag used to scale object itself or create a copy.
8660 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8661 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
8663 # Example: see GEOM_TestAll.py
8664 theFactor, Parameters = ParseParameters(theFactor)
8666 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
8668 anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
8669 RaiseIfFailed("Scale", self.TrsfOp)
8670 anObj.SetParameters(Parameters)
8673 ## Scale the given object by the factor, creating its copy before the scaling.
8674 # @param theObject The object to be scaled.
8675 # @param thePoint Center point for scaling.
8676 # Passing None for it means scaling relatively the origin of global CS.
8677 # @param theFactor Scaling factor value.
8678 # @param theName Object name; when specified, this parameter is used
8679 # for result publication in the study. Otherwise, if automatic
8680 # publication is switched on, default value is used for result name.
8682 # @return New GEOM.GEOM_Object, containing the scaled shape.
8684 # @ref tui_scale "Example"
8685 @ManageTransactions("TrsfOp")
8686 def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
8688 Scale the given object by the factor, creating its copy before the scaling.
8691 theObject The object to be scaled.
8692 thePoint Center point for scaling.
8693 Passing None for it means scaling relatively the origin of global CS.
8694 theFactor Scaling factor value.
8695 theName Object name; when specified, this parameter is used
8696 for result publication in the study. Otherwise, if automatic
8697 publication is switched on, default value is used for result name.
8700 New GEOM.GEOM_Object, containing the scaled shape.
8702 # Example: see GEOM_TestAll.py
8703 theFactor, Parameters = ParseParameters(theFactor)
8704 anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
8705 RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
8706 anObj.SetParameters(Parameters)
8707 self._autoPublish(anObj, theName, "scaled")
8710 ## Scale the given object by different factors along coordinate axes.
8711 # @param theObject The object to be scaled.
8712 # @param thePoint Center point for scaling.
8713 # Passing None for it means scaling relatively the origin of global CS.
8714 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8715 # @param theCopy Flag used to scale object itself or create a copy.
8716 # @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8717 # new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
8718 @ManageTransactions("TrsfOp")
8719 def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
8721 Scale the given object by different factors along coordinate axes.
8724 theObject The object to be scaled.
8725 thePoint Center point for scaling.
8726 Passing None for it means scaling relatively the origin of global CS.
8727 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8728 theCopy Flag used to scale object itself or create a copy.
8731 Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8732 new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
8734 # Example: see GEOM_TestAll.py
8735 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
8737 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
8738 theFactorX, theFactorY, theFactorZ)
8740 anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
8741 theFactorX, theFactorY, theFactorZ)
8742 RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
8743 anObj.SetParameters(Parameters)
8746 ## Scale the given object by different factors along coordinate axes,
8747 # creating its copy before the scaling.
8748 # @param theObject The object to be scaled.
8749 # @param thePoint Center point for scaling.
8750 # Passing None for it means scaling relatively the origin of global CS.
8751 # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8752 # @param theName Object name; when specified, this parameter is used
8753 # for result publication in the study. Otherwise, if automatic
8754 # publication is switched on, default value is used for result name.
8756 # @return New GEOM.GEOM_Object, containing the scaled shape.
8758 # @ref swig_scale "Example"
8759 @ManageTransactions("TrsfOp")
8760 def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
8762 Scale the given object by different factors along coordinate axes,
8763 creating its copy before the scaling.
8766 theObject The object to be scaled.
8767 thePoint Center point for scaling.
8768 Passing None for it means scaling relatively the origin of global CS.
8769 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
8770 theName Object name; when specified, this parameter is used
8771 for result publication in the study. Otherwise, if automatic
8772 publication is switched on, default value is used for result name.
8775 New GEOM.GEOM_Object, containing the scaled shape.
8777 # Example: see GEOM_TestAll.py
8778 theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
8779 anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
8780 theFactorX, theFactorY, theFactorZ)
8781 RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
8782 anObj.SetParameters(Parameters)
8783 self._autoPublish(anObj, theName, "scaled")
8786 ## Mirror an object relatively the given plane.
8787 # @param theObject The object to be mirrored.
8788 # @param thePlane Plane of symmetry.
8789 # @param theCopy Flag used to mirror object itself or create a copy.
8790 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8791 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8792 @ManageTransactions("TrsfOp")
8793 def MirrorByPlane(self, theObject, thePlane, theCopy=False):
8795 Mirror an object relatively the given plane.
8798 theObject The object to be mirrored.
8799 thePlane Plane of symmetry.
8800 theCopy Flag used to mirror object itself or create a copy.
8803 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8804 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8807 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
8809 anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
8810 RaiseIfFailed("MirrorByPlane", self.TrsfOp)
8813 ## Create an object, symmetrical
8814 # to the given one relatively the given plane.
8815 # @param theObject The object to be mirrored.
8816 # @param thePlane Plane of symmetry.
8817 # @param theName Object name; when specified, this parameter is used
8818 # for result publication in the study. Otherwise, if automatic
8819 # publication is switched on, default value is used for result name.
8821 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8823 # @ref tui_mirror "Example"
8824 @ManageTransactions("TrsfOp")
8825 def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
8827 Create an object, symmetrical to the given one relatively the given plane.
8830 theObject The object to be mirrored.
8831 thePlane Plane of symmetry.
8832 theName Object name; when specified, this parameter is used
8833 for result publication in the study. Otherwise, if automatic
8834 publication is switched on, default value is used for result name.
8837 New GEOM.GEOM_Object, containing the mirrored shape.
8839 # Example: see GEOM_TestAll.py
8840 anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
8841 RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
8842 self._autoPublish(anObj, theName, "mirrored")
8845 ## Mirror an object relatively the given axis.
8846 # @param theObject The object to be mirrored.
8847 # @param theAxis Axis of symmetry.
8848 # @param theCopy Flag used to mirror object itself or create a copy.
8849 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8850 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8851 @ManageTransactions("TrsfOp")
8852 def MirrorByAxis(self, theObject, theAxis, theCopy=False):
8854 Mirror an object relatively the given axis.
8857 theObject The object to be mirrored.
8858 theAxis Axis of symmetry.
8859 theCopy Flag used to mirror object itself or create a copy.
8862 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8863 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8866 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
8868 anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
8869 RaiseIfFailed("MirrorByAxis", self.TrsfOp)
8872 ## Create an object, symmetrical
8873 # to the given one relatively the given axis.
8874 # @param theObject The object to be mirrored.
8875 # @param theAxis Axis of symmetry.
8876 # @param theName Object name; when specified, this parameter is used
8877 # for result publication in the study. Otherwise, if automatic
8878 # publication is switched on, default value is used for result name.
8880 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8882 # @ref tui_mirror "Example"
8883 @ManageTransactions("TrsfOp")
8884 def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
8886 Create an object, symmetrical to the given one relatively the given axis.
8889 theObject The object to be mirrored.
8890 theAxis Axis of symmetry.
8891 theName Object name; when specified, this parameter is used
8892 for result publication in the study. Otherwise, if automatic
8893 publication is switched on, default value is used for result name.
8896 New GEOM.GEOM_Object, containing the mirrored shape.
8898 # Example: see GEOM_TestAll.py
8899 anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
8900 RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
8901 self._autoPublish(anObj, theName, "mirrored")
8904 ## Mirror an object relatively the given point.
8905 # @param theObject The object to be mirrored.
8906 # @param thePoint Point of symmetry.
8907 # @param theCopy Flag used to mirror object itself or create a copy.
8908 # @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8909 # new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
8910 @ManageTransactions("TrsfOp")
8911 def MirrorByPoint(self, theObject, thePoint, theCopy=False):
8913 Mirror an object relatively the given point.
8916 theObject The object to be mirrored.
8917 thePoint Point of symmetry.
8918 theCopy Flag used to mirror object itself or create a copy.
8921 Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8922 new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
8924 # Example: see GEOM_TestAll.py
8926 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
8928 anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
8929 RaiseIfFailed("MirrorByPoint", self.TrsfOp)
8932 ## Create an object, symmetrical
8933 # to the given one relatively the given point.
8934 # @param theObject The object to be mirrored.
8935 # @param thePoint Point of symmetry.
8936 # @param theName Object name; when specified, this parameter is used
8937 # for result publication in the study. Otherwise, if automatic
8938 # publication is switched on, default value is used for result name.
8940 # @return New GEOM.GEOM_Object, containing the mirrored shape.
8942 # @ref tui_mirror "Example"
8943 @ManageTransactions("TrsfOp")
8944 def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
8946 Create an object, symmetrical
8947 to the given one relatively the given point.
8950 theObject The object to be mirrored.
8951 thePoint Point of symmetry.
8952 theName Object name; when specified, this parameter is used
8953 for result publication in the study. Otherwise, if automatic
8954 publication is switched on, default value is used for result name.
8957 New GEOM.GEOM_Object, containing the mirrored shape.
8959 # Example: see GEOM_TestAll.py
8960 anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
8961 RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
8962 self._autoPublish(anObj, theName, "mirrored")
8965 ## Modify the location of the given object.
8966 # @param theObject The object to be displaced.
8967 # @param theStartLCS Coordinate system to perform displacement from it.\n
8968 # If \a theStartLCS is NULL, displacement
8969 # will be performed from global CS.\n
8970 # If \a theObject itself is used as \a theStartLCS,
8971 # its location will be changed to \a theEndLCS.
8972 # @param theEndLCS Coordinate system to perform displacement to it.
8973 # @param theCopy Flag used to displace object itself or create a copy.
8974 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
8975 # new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
8976 @ManageTransactions("TrsfOp")
8977 def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
8979 Modify the Location of the given object by LCS, creating its copy before the setting.
8982 theObject The object to be displaced.
8983 theStartLCS Coordinate system to perform displacement from it.
8984 If theStartLCS is NULL, displacement
8985 will be performed from global CS.
8986 If theObject itself is used as theStartLCS,
8987 its location will be changed to theEndLCS.
8988 theEndLCS Coordinate system to perform displacement to it.
8989 theCopy Flag used to displace object itself or create a copy.
8992 Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
8993 new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
8995 # Example: see GEOM_TestAll.py
8997 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
8999 anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
9000 RaiseIfFailed("Displace", self.TrsfOp)
9003 ## Modify the Location of the given object by LCS,
9004 # creating its copy before the setting.
9005 # @param theObject The object to be displaced.
9006 # @param theStartLCS Coordinate system to perform displacement from it.\n
9007 # If \a theStartLCS is NULL, displacement
9008 # will be performed from global CS.\n
9009 # If \a theObject itself is used as \a theStartLCS,
9010 # its location will be changed to \a theEndLCS.
9011 # @param theEndLCS Coordinate system to perform displacement to it.
9012 # @param theName Object name; when specified, this parameter is used
9013 # for result publication in the study. Otherwise, if automatic
9014 # publication is switched on, default value is used for result name.
9016 # @return New GEOM.GEOM_Object, containing the displaced shape.
9018 # @ref tui_modify_location "Example"
9019 @ManageTransactions("TrsfOp")
9020 def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
9022 Modify the Location of the given object by LCS, creating its copy before the setting.
9025 theObject The object to be displaced.
9026 theStartLCS Coordinate system to perform displacement from it.
9027 If theStartLCS is NULL, displacement
9028 will be performed from global CS.
9029 If theObject itself is used as theStartLCS,
9030 its location will be changed to theEndLCS.
9031 theEndLCS Coordinate system to perform displacement to it.
9032 theName Object name; when specified, this parameter is used
9033 for result publication in the study. Otherwise, if automatic
9034 publication is switched on, default value is used for result name.
9037 New GEOM.GEOM_Object, containing the displaced shape.
9040 # create local coordinate systems
9041 cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
9042 cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0)
9043 # modify the location of the given object
9044 position = geompy.MakePosition(cylinder, cs1, cs2)
9046 # Example: see GEOM_TestAll.py
9047 anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
9048 RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
9049 self._autoPublish(anObj, theName, "displaced")
9052 ## Modify the Location of the given object by Path.
9053 # @param theObject The object to be displaced.
9054 # @param thePath Wire or Edge along that the object will be translated.
9055 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
9056 # @param theCopy is to create a copy objects if true.
9057 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
9058 # @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
9059 # new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
9061 # @ref tui_modify_location "Example"
9062 @ManageTransactions("TrsfOp")
9063 def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
9065 Modify the Location of the given object by Path.
9068 theObject The object to be displaced.
9069 thePath Wire or Edge along that the object will be translated.
9070 theDistance progress of Path (0 = start location, 1 = end of path location).
9071 theCopy is to create a copy objects if true.
9072 theReverse 0 - for usual direction, 1 - to reverse path direction.
9075 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
9076 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
9079 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
9081 # Example: see GEOM_TestAll.py
9082 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse)
9083 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
9086 ## Modify the Location of the given object by Path, creating its copy before the operation.
9087 # @param theObject The object to be displaced.
9088 # @param thePath Wire or Edge along that the object will be translated.
9089 # @param theDistance progress of Path (0 = start location, 1 = end of path location).
9090 # @param theReverse 0 - for usual direction, 1 - to reverse path direction.
9091 # @param theName Object name; when specified, this parameter is used
9092 # for result publication in the study. Otherwise, if automatic
9093 # publication is switched on, default value is used for result name.
9095 # @return New GEOM.GEOM_Object, containing the displaced shape.
9096 @ManageTransactions("TrsfOp")
9097 def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
9099 Modify the Location of the given object by Path, creating its copy before the operation.
9102 theObject The object to be displaced.
9103 thePath Wire or Edge along that the object will be translated.
9104 theDistance progress of Path (0 = start location, 1 = end of path location).
9105 theReverse 0 - for usual direction, 1 - to reverse path direction.
9106 theName Object name; when specified, this parameter is used
9107 for result publication in the study. Otherwise, if automatic
9108 publication is switched on, default value is used for result name.
9111 New GEOM.GEOM_Object, containing the displaced shape.
9113 # Example: see GEOM_TestAll.py
9114 anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
9115 RaiseIfFailed("PositionAlongPath", self.TrsfOp)
9116 self._autoPublish(anObj, theName, "displaced")
9119 ## Offset given shape.
9120 # @param theObject The base object for the offset.
9121 # @param theOffset Offset value.
9122 # @param theCopy Flag used to offset object itself or create a copy.
9123 # @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
9124 # new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
9125 @ManageTransactions("TrsfOp")
9126 def Offset(self, theObject, theOffset, theCopy=False):
9131 theObject The base object for the offset.
9132 theOffset Offset value.
9133 theCopy Flag used to offset object itself or create a copy.
9136 Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
9137 new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
9139 theOffset, Parameters = ParseParameters(theOffset)
9141 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
9143 anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
9144 RaiseIfFailed("Offset", self.TrsfOp)
9145 anObj.SetParameters(Parameters)
9148 ## Create new object as offset of the given one.
9149 # @param theObject The base object for the offset.
9150 # @param theOffset Offset value.
9151 # @param theName Object name; when specified, this parameter is used
9152 # for result publication in the study. Otherwise, if automatic
9153 # publication is switched on, default value is used for result name.
9155 # @return New GEOM.GEOM_Object, containing the offset object.
9157 # @ref tui_offset "Example"
9158 @ManageTransactions("TrsfOp")
9159 def MakeOffset(self, theObject, theOffset, theName=None):
9161 Create new object as offset of the given one.
9164 theObject The base object for the offset.
9165 theOffset Offset value.
9166 theName Object name; when specified, this parameter is used
9167 for result publication in the study. Otherwise, if automatic
9168 publication is switched on, default value is used for result name.
9171 New GEOM.GEOM_Object, containing the offset object.
9174 box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
9175 # create a new object as offset of the given object
9176 offset = geompy.MakeOffset(box, 70.)
9178 # Example: see GEOM_TestAll.py
9179 theOffset, Parameters = ParseParameters(theOffset)
9180 anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
9181 RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
9182 anObj.SetParameters(Parameters)
9183 self._autoPublish(anObj, theName, "offset")
9186 ## Create new object as projection of the given one on another.
9187 # @param theSource The source object for the projection. It can be a point, edge or wire.
9188 # Edge and wire are acceptable if @a theTarget is a face.
9189 # @param theTarget The target object. It can be planar or cylindrical face, edge or wire.
9190 # @param theName Object name; when specified, this parameter is used
9191 # for result publication in the study. Otherwise, if automatic
9192 # publication is switched on, default value is used for result name.
9194 # @return New GEOM.GEOM_Object, containing the projection.
9196 # @ref tui_projection "Example"
9197 @ManageTransactions("TrsfOp")
9198 def MakeProjection(self, theSource, theTarget, theName=None):
9200 Create new object as projection of the given one on another.
9203 theSource The source object for the projection. It can be a point, edge or wire.
9204 Edge and wire are acceptable if theTarget is a face.
9205 theTarget The target object. It can be planar or cylindrical face, edge or wire.
9206 theName Object name; when specified, this parameter is used
9207 for result publication in the study. Otherwise, if automatic
9208 publication is switched on, default value is used for result name.
9211 New GEOM.GEOM_Object, containing the projection.
9213 # Example: see GEOM_TestAll.py
9214 anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
9215 RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
9216 self._autoPublish(anObj, theName, "projection")
9219 ## Create a projection of the given point on a wire or an edge.
9220 # If there are no solutions or there are 2 or more solutions It throws an
9222 # @param thePoint the point to be projected.
9223 # @param theWire the wire. The edge is accepted as well.
9224 # @param theName Object name; when specified, this parameter is used
9225 # for result publication in the study. Otherwise, if automatic
9226 # publication is switched on, default value is used for result name.
9228 # @return [\a u, \a PointOnEdge, \a EdgeInWireIndex]
9229 # \n \a u: The parameter of projection point on edge.
9230 # \n \a PointOnEdge: The projection point.
9231 # \n \a EdgeInWireIndex: The index of an edge in a wire.
9233 # @ref tui_projection "Example"
9234 @ManageTransactions("TrsfOp")
9235 def MakeProjectionOnWire(self, thePoint, theWire, theName=None):
9237 Create a projection of the given point on a wire or an edge.
9238 If there are no solutions or there are 2 or more solutions It throws an
9242 thePoint the point to be projected.
9243 theWire the wire. The edge is accepted as well.
9244 theName Object name; when specified, this parameter is used
9245 for result publication in the study. Otherwise, if automatic
9246 publication is switched on, default value is used for result name.
9249 [u, PointOnEdge, EdgeInWireIndex]
9250 u: The parameter of projection point on edge.
9251 PointOnEdge: The projection point.
9252 EdgeInWireIndex: The index of an edge in a wire.
9254 # Example: see GEOM_TestAll.py
9255 anObj = self.TrsfOp.ProjectPointOnWire(thePoint, theWire)
9256 RaiseIfFailed("ProjectPointOnWire", self.TrsfOp)
9257 self._autoPublish(anObj[1], theName, "projection")
9260 # -----------------------------------------------------------------------------
9262 # -----------------------------------------------------------------------------
9264 ## Translate the given object along the given vector a given number times
9265 # @param theObject The object to be translated.
9266 # @param theVector Direction of the translation. DX if None.
9267 # @param theStep Distance to translate on.
9268 # @param theNbTimes Quantity of translations to be done.
9269 # @param theName Object name; when specified, this parameter is used
9270 # for result publication in the study. Otherwise, if automatic
9271 # publication is switched on, default value is used for result name.
9273 # @return New GEOM.GEOM_Object, containing compound of all
9274 # the shapes, obtained after each translation.
9276 # @ref tui_multi_translation "Example"
9277 @ManageTransactions("TrsfOp")
9278 def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
9280 Translate the given object along the given vector a given number times
9283 theObject The object to be translated.
9284 theVector Direction of the translation. DX if None.
9285 theStep Distance to translate on.
9286 theNbTimes Quantity of translations to be done.
9287 theName Object name; when specified, this parameter is used
9288 for result publication in the study. Otherwise, if automatic
9289 publication is switched on, default value is used for result name.
9292 New GEOM.GEOM_Object, containing compound of all
9293 the shapes, obtained after each translation.
9296 r1d = geompy.MakeMultiTranslation1D(prism, vect, 20, 4)
9298 # Example: see GEOM_TestAll.py
9299 theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes)
9300 anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
9301 RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
9302 anObj.SetParameters(Parameters)
9303 self._autoPublish(anObj, theName, "multitranslation")
9306 ## Conseqently apply two specified translations to theObject specified number of times.
9307 # @param theObject The object to be translated.
9308 # @param theVector1 Direction of the first translation. DX if None.
9309 # @param theStep1 Step of the first translation.
9310 # @param theNbTimes1 Quantity of translations to be done along theVector1.
9311 # @param theVector2 Direction of the second translation. DY if None.
9312 # @param theStep2 Step of the second translation.
9313 # @param theNbTimes2 Quantity of translations to be done along theVector2.
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 New GEOM.GEOM_Object, containing compound of all
9319 # the shapes, obtained after each translation.
9321 # @ref tui_multi_translation "Example"
9322 @ManageTransactions("TrsfOp")
9323 def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
9324 theVector2, theStep2, theNbTimes2, theName=None):
9326 Conseqently apply two specified translations to theObject specified number of times.
9329 theObject The object to be translated.
9330 theVector1 Direction of the first translation. DX if None.
9331 theStep1 Step of the first translation.
9332 theNbTimes1 Quantity of translations to be done along theVector1.
9333 theVector2 Direction of the second translation. DY if None.
9334 theStep2 Step of the second translation.
9335 theNbTimes2 Quantity of translations to be done along theVector2.
9336 theName Object name; when specified, this parameter is used
9337 for result publication in the study. Otherwise, if automatic
9338 publication is switched on, default value is used for result name.
9341 New GEOM.GEOM_Object, containing compound of all
9342 the shapes, obtained after each translation.
9345 tr2d = geompy.MakeMultiTranslation2D(prism, vect1, 20, 4, vect2, 80, 3)
9347 # Example: see GEOM_TestAll.py
9348 theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2)
9349 anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
9350 theVector2, theStep2, theNbTimes2)
9351 RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
9352 anObj.SetParameters(Parameters)
9353 self._autoPublish(anObj, theName, "multitranslation")
9356 ## Rotate the given object around the given axis a given number times.
9357 # Rotation angle will be 2*PI/theNbTimes.
9358 # @param theObject The object to be rotated.
9359 # @param theAxis The rotation axis. DZ if None.
9360 # @param theNbTimes Quantity of rotations to be done.
9361 # @param theName Object name; when specified, this parameter is used
9362 # for result publication in the study. Otherwise, if automatic
9363 # publication is switched on, default value is used for result name.
9365 # @return New GEOM.GEOM_Object, containing compound of all the
9366 # shapes, obtained after each rotation.
9368 # @ref tui_multi_rotation "Example"
9369 @ManageTransactions("TrsfOp")
9370 def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
9372 Rotate the given object around the given axis a given number times.
9373 Rotation angle will be 2*PI/theNbTimes.
9376 theObject The object to be rotated.
9377 theAxis The rotation axis. DZ if None.
9378 theNbTimes Quantity of rotations to be done.
9379 theName Object name; when specified, this parameter is used
9380 for result publication in the study. Otherwise, if automatic
9381 publication is switched on, default value is used for result name.
9384 New GEOM.GEOM_Object, containing compound of all the
9385 shapes, obtained after each rotation.
9388 rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
9390 # Example: see GEOM_TestAll.py
9391 theNbTimes, Parameters = ParseParameters(theNbTimes)
9392 anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
9393 RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
9394 anObj.SetParameters(Parameters)
9395 self._autoPublish(anObj, theName, "multirotation")
9398 ## Rotate the given object around the given axis
9399 # a given number times on the given angle.
9400 # @param theObject The object to be rotated.
9401 # @param theAxis The rotation axis. DZ if None.
9402 # @param theAngleStep Rotation angle in radians.
9403 # @param theNbTimes Quantity of rotations to be done.
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 the
9409 # shapes, obtained after each rotation.
9411 # @ref tui_multi_rotation "Example"
9412 @ManageTransactions("TrsfOp")
9413 def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
9415 Rotate the given object around the given axis
9416 a given number times on the given angle.
9419 theObject The object to be rotated.
9420 theAxis The rotation axis. DZ if None.
9421 theAngleStep Rotation angle in radians.
9422 theNbTimes Quantity of rotations to be done.
9423 theName Object name; when specified, this parameter is used
9424 for result publication in the study. Otherwise, if automatic
9425 publication is switched on, default value is used for result name.
9428 New GEOM.GEOM_Object, containing compound of all the
9429 shapes, obtained after each rotation.
9432 rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
9434 # Example: see GEOM_TestAll.py
9435 theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
9436 anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
9437 RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
9438 anObj.SetParameters(Parameters)
9439 self._autoPublish(anObj, theName, "multirotation")
9442 ## Rotate the given object around the given axis a given
9443 # number times and multi-translate each rotation result.
9444 # Rotation angle will be 2*PI/theNbTimes1.
9445 # Translation direction passes through center of gravity
9446 # of rotated shape and its projection on the rotation axis.
9447 # @param theObject The object to be rotated.
9448 # @param theAxis Rotation axis. DZ if None.
9449 # @param theNbTimes1 Quantity of rotations to be done.
9450 # @param theRadialStep Translation distance.
9451 # @param theNbTimes2 Quantity of translations to be done.
9452 # @param theName Object name; when specified, this parameter is used
9453 # for result publication in the study. Otherwise, if automatic
9454 # publication is switched on, default value is used for result name.
9456 # @return New GEOM.GEOM_Object, containing compound of all the
9457 # shapes, obtained after each transformation.
9459 # @ref tui_multi_rotation "Example"
9460 @ManageTransactions("TrsfOp")
9461 def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
9463 Rotate the given object around the
9464 given axis on the given angle a given number
9465 times and multi-translate each rotation result.
9466 Translation direction passes through center of gravity
9467 of rotated shape and its projection on the rotation axis.
9470 theObject The object to be rotated.
9471 theAxis Rotation axis. DZ if None.
9472 theNbTimes1 Quantity of rotations to be done.
9473 theRadialStep Translation distance.
9474 theNbTimes2 Quantity of translations to be done.
9475 theName Object name; when specified, this parameter is used
9476 for result publication in the study. Otherwise, if automatic
9477 publication is switched on, default value is used for result name.
9480 New GEOM.GEOM_Object, containing compound of all the
9481 shapes, obtained after each transformation.
9484 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
9486 # Example: see GEOM_TestAll.py
9487 theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
9488 anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
9489 RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
9490 anObj.SetParameters(Parameters)
9491 self._autoPublish(anObj, theName, "multirotation")
9494 ## Rotate the given object around the
9495 # given axis on the given angle a given number
9496 # times and multi-translate each rotation result.
9497 # Translation direction passes through center of gravity
9498 # of rotated shape and its projection on the rotation axis.
9499 # @param theObject The object to be rotated.
9500 # @param theAxis Rotation axis. DZ if None.
9501 # @param theAngleStep Rotation angle in radians.
9502 # @param theNbTimes1 Quantity of rotations to be done.
9503 # @param theRadialStep Translation distance.
9504 # @param theNbTimes2 Quantity of translations to be done.
9505 # @param theName Object name; when specified, this parameter is used
9506 # for result publication in the study. Otherwise, if automatic
9507 # publication is switched on, default value is used for result name.
9509 # @return New GEOM.GEOM_Object, containing compound of all the
9510 # shapes, obtained after each transformation.
9512 # @ref tui_multi_rotation "Example"
9513 @ManageTransactions("TrsfOp")
9514 def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
9516 Rotate the given object around the
9517 given axis on the given angle a given number
9518 times and multi-translate each rotation result.
9519 Translation direction passes through center of gravity
9520 of rotated shape and its projection on the rotation axis.
9523 theObject The object to be rotated.
9524 theAxis Rotation axis. DZ if None.
9525 theAngleStep Rotation angle in radians.
9526 theNbTimes1 Quantity of rotations to be done.
9527 theRadialStep Translation distance.
9528 theNbTimes2 Quantity of translations to be done.
9529 theName Object name; when specified, this parameter is used
9530 for result publication in the study. Otherwise, if automatic
9531 publication is switched on, default value is used for result name.
9534 New GEOM.GEOM_Object, containing compound of all the
9535 shapes, obtained after each transformation.
9538 rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
9540 # Example: see GEOM_TestAll.py
9541 theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
9542 anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
9543 RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
9544 anObj.SetParameters(Parameters)
9545 self._autoPublish(anObj, theName, "multirotation")
9548 ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
9550 # @ref swig_MakeMultiRotation "Example"
9551 def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
9553 The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
9556 pz = geompy.MakeVertex(0, 0, 100)
9557 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9558 MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
9560 # Example: see GEOM_TestOthers.py
9561 aVec = self.MakeLine(aPoint,aDir)
9562 # note: auto-publishing is done in self.MultiRotate1D()
9563 anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
9566 ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
9568 # @ref swig_MakeMultiRotation "Example"
9569 def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
9571 The same, as geompy.MultiRotate1D, but axis is given by direction and point
9574 pz = geompy.MakeVertex(0, 0, 100)
9575 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9576 MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
9578 # Example: see GEOM_TestOthers.py
9579 aVec = self.MakeLine(aPoint,aDir)
9580 # note: auto-publishing is done in self.MultiRotate1D()
9581 anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
9584 ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
9586 # @ref swig_MakeMultiRotation "Example"
9587 def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
9589 The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
9592 pz = geompy.MakeVertex(0, 0, 100)
9593 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9594 MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
9596 # Example: see GEOM_TestOthers.py
9597 aVec = self.MakeLine(aPoint,aDir)
9598 # note: auto-publishing is done in self.MultiRotate2DNbTimes()
9599 anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
9602 ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
9604 # @ref swig_MakeMultiRotation "Example"
9605 def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
9607 The same, as MultiRotate2DByStep(), but axis is given by direction and point
9610 pz = geompy.MakeVertex(0, 0, 100)
9611 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9612 MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
9614 # Example: see GEOM_TestOthers.py
9615 aVec = self.MakeLine(aPoint,aDir)
9616 # note: auto-publishing is done in self.MultiRotate2D()
9617 anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
9621 # Compute a wire or a face that represents a projection of the source
9622 # shape onto cylinder. The cylinder's coordinate system is the same
9623 # as the global coordinate system.
9625 # @param theObject The object to be projected. It can be either
9626 # a planar wire or a face.
9627 # @param theRadius The radius of the cylinder.
9628 # @param theStartAngle The starting angle in radians from
9629 # the cylinder's X axis around Z axis. The angle from which
9630 # the projection is started.
9631 # @param theAngleLength The projection length angle in radians.
9632 # The angle in which to project the total length of the wire.
9633 # If it is negative the projection is not scaled and natural
9634 # wire length is kept for the projection.
9635 # @param theAngleRotation The desired angle in radians between
9636 # the tangent vector to the first curve at the first point of
9637 # the theObject's projection in 2D space and U-direction of
9638 # cylinder's 2D space.
9639 # @param theName Object name; when specified, this parameter is used
9640 # for result publication in the study. Otherwise, if automatic
9641 # publication is switched on, default value is used for result name.
9643 # @return New GEOM.GEOM_Object, containing the result shape. The result
9644 # represents a wire or a face that represents a projection of
9645 # the source shape onto a cylinder.
9647 # @ref tui_projection "Example"
9648 def MakeProjectionOnCylinder (self, theObject, theRadius,
9649 theStartAngle=0.0, theAngleLength=-1.0,
9650 theAngleRotation=0.0,
9653 Compute a wire or a face that represents a projection of the source
9654 shape onto cylinder. The cylinder's coordinate system is the same
9655 as the global coordinate system.
9658 theObject The object to be projected. It can be either
9659 a planar wire or a face.
9660 theRadius The radius of the cylinder.
9661 theStartAngle The starting angle in radians from the cylinder's X axis
9662 around Z axis. The angle from which the projection is started.
9663 theAngleLength The projection length angle in radians. The angle in which
9664 to project the total length of the wire. If it is negative the
9665 projection is not scaled and natural wire length is kept for
9667 theAngleRotation The desired angle in radians between
9668 the tangent vector to the first curve at the first
9669 point of the theObject's projection in 2D space and
9670 U-direction of cylinder's 2D space.
9671 theName Object name; when specified, this parameter is used
9672 for result publication in the study. Otherwise, if automatic
9673 publication is switched on, default value is used for result name.
9676 New GEOM.GEOM_Object, containing the result shape. The result
9677 represents a wire or a face that represents a projection of
9678 the source shape onto a cylinder.
9680 # Example: see GEOM_TestAll.py
9681 flagStartAngle = False
9682 if isinstance(theStartAngle,str):
9683 flagStartAngle = True
9684 flagAngleLength = False
9685 if isinstance(theAngleLength,str):
9686 flagAngleLength = True
9687 flagAngleRotation = False
9688 if isinstance(theAngleRotation,str):
9689 flagAngleRotation = True
9690 theRadius, theStartAngle, theAngleLength, theAngleRotation, Parameters = ParseParameters(
9691 theRadius, theStartAngle, theAngleLength, theAngleRotation)
9693 theStartAngle = theStartAngle*math.pi/180.
9695 theAngleLength = theAngleLength*math.pi/180.
9696 if flagAngleRotation:
9697 theAngleRotation = theAngleRotation*math.pi/180.
9698 anObj = self.TrsfOp.MakeProjectionOnCylinder(theObject, theRadius,
9699 theStartAngle, theAngleLength, theAngleRotation)
9700 RaiseIfFailed("MakeProjectionOnCylinder", self.TrsfOp)
9701 anObj.SetParameters(Parameters)
9702 self._autoPublish(anObj, theName, "projection")
9705 # end of l3_transform
9708 ## @addtogroup l3_transform_d
9711 ## Deprecated method. Use MultiRotate1DNbTimes instead.
9712 def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
9714 Deprecated method. Use MultiRotate1DNbTimes instead.
9716 print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
9717 return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
9719 ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
9720 # This method is DEPRECATED. Use MultiRotate2DByStep() instead.
9721 @ManageTransactions("TrsfOp")
9722 def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
9724 The same, as MultiRotate2DByStep(), but theAngle is in degrees.
9725 This method is DEPRECATED. Use MultiRotate2DByStep() instead.
9728 rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
9730 print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
9731 theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
9732 anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
9733 RaiseIfFailed("MultiRotate2D", self.TrsfOp)
9734 anObj.SetParameters(Parameters)
9735 self._autoPublish(anObj, theName, "multirotation")
9738 ## The same, as MultiRotate1D(), but axis is given by direction and point
9739 # This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
9740 def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
9742 The same, as geompy.MultiRotate1D, but axis is given by direction and point.
9743 This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
9746 pz = geompy.MakeVertex(0, 0, 100)
9747 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9748 MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
9750 print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
9751 aVec = self.MakeLine(aPoint,aDir)
9752 # note: auto-publishing is done in self.MultiRotate1D()
9753 anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
9756 ## The same, as MultiRotate2D(), but axis is given by direction and point
9757 # This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
9758 def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
9760 The same, as MultiRotate2D(), but axis is given by direction and point
9761 This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
9764 pz = geompy.MakeVertex(0, 0, 100)
9765 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
9766 MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
9768 print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
9769 aVec = self.MakeLine(aPoint,aDir)
9770 # note: auto-publishing is done in self.MultiRotate2D()
9771 anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
9774 # end of l3_transform_d
9777 ## @addtogroup l3_local
9780 ## Perform a fillet on all edges of the given shape.
9781 # @param theShape Shape, to perform fillet on.
9782 # @param theR Fillet radius.
9783 # @param theName Object name; when specified, this parameter is used
9784 # for result publication in the study. Otherwise, if automatic
9785 # publication is switched on, default value is used for result name.
9787 # @return New GEOM.GEOM_Object, containing the result shape.
9789 # @ref tui_fillet "Example 1"
9790 # \n @ref swig_MakeFilletAll "Example 2"
9791 @ManageTransactions("LocalOp")
9792 def MakeFilletAll(self, theShape, theR, theName=None):
9794 Perform a fillet on all edges of the given shape.
9797 theShape Shape, to perform fillet on.
9799 theName Object name; when specified, this parameter is used
9800 for result publication in the study. Otherwise, if automatic
9801 publication is switched on, default value is used for result name.
9804 New GEOM.GEOM_Object, containing the result shape.
9807 filletall = geompy.MakeFilletAll(prism, 10.)
9809 # Example: see GEOM_TestOthers.py
9810 theR,Parameters = ParseParameters(theR)
9811 anObj = self.LocalOp.MakeFilletAll(theShape, theR)
9812 RaiseIfFailed("MakeFilletAll", self.LocalOp)
9813 anObj.SetParameters(Parameters)
9814 self._autoPublish(anObj, theName, "fillet")
9817 ## Perform a fillet on the specified edges/faces of the given shape
9818 # @param theShape Shape, to perform fillet on.
9819 # @param theR Fillet radius.
9820 # @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
9821 # @param theListShapes Global indices of edges/faces to perform fillet on.
9822 # @param theName Object name; when specified, this parameter is used
9823 # for result publication in the study. Otherwise, if automatic
9824 # publication is switched on, default value is used for result name.
9826 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
9828 # @return New GEOM.GEOM_Object, containing the result shape.
9830 # @ref tui_fillet "Example"
9831 @ManageTransactions("LocalOp")
9832 def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
9834 Perform a fillet on the specified edges/faces of the given shape
9837 theShape Shape, to perform fillet on.
9839 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
9840 theListShapes Global indices of edges/faces to perform fillet on.
9841 theName Object name; when specified, this parameter is used
9842 for result publication in the study. Otherwise, if automatic
9843 publication is switched on, default value is used for result name.
9846 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
9849 New GEOM.GEOM_Object, containing the result shape.
9852 # get the list of IDs (IDList) for the fillet
9853 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
9855 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
9856 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
9857 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
9858 # make a fillet on the specified edges of the given shape
9859 fillet = geompy.MakeFillet(prism, 10., geompy.ShapeType["EDGE"], IDlist_e)
9861 # Example: see GEOM_TestAll.py
9862 theR,Parameters = ParseParameters(theR)
9864 if theShapeType == self.ShapeType["EDGE"]:
9865 anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
9866 RaiseIfFailed("MakeFilletEdges", self.LocalOp)
9868 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
9869 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
9870 anObj.SetParameters(Parameters)
9871 self._autoPublish(anObj, theName, "fillet")
9874 ## The same that MakeFillet() but with two Fillet Radius R1 and R2
9875 @ManageTransactions("LocalOp")
9876 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
9878 The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
9881 # get the list of IDs (IDList) for the fillet
9882 prism_edges = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["EDGE"])
9884 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
9885 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
9886 IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
9887 # make a fillet on the specified edges of the given shape
9888 fillet = geompy.MakeFillet(prism, 10., 15., geompy.ShapeType["EDGE"], IDlist_e)
9890 theR1,theR2,Parameters = ParseParameters(theR1,theR2)
9892 if theShapeType == self.ShapeType["EDGE"]:
9893 anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
9894 RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
9896 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
9897 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
9898 anObj.SetParameters(Parameters)
9899 self._autoPublish(anObj, theName, "fillet")
9902 ## Perform a fillet on the specified edges of the given shape
9903 # @param theShape Wire Shape to perform fillet on.
9904 # @param theR Fillet radius.
9905 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
9906 # \note Global index of sub-shape can be obtained, using method GetSubShapeID()
9907 # \note The list of vertices could be empty,
9908 # in this case fillet will done done at all vertices in wire
9909 # @param doIgnoreSecantVertices If FALSE, fillet radius is always limited
9910 # by the length of the edges, nearest to the fillet vertex.
9911 # But sometimes the next edge is C1 continuous with the one, nearest to
9912 # the fillet point, and such two (or more) edges can be united to allow
9913 # bigger radius. Set this flag to TRUE to allow collinear edges union,
9914 # thus ignoring the secant vertex (vertices).
9915 # @param theName Object name; when specified, this parameter is used
9916 # for result publication in the study. Otherwise, if automatic
9917 # publication is switched on, default value is used for result name.
9919 # @return New GEOM.GEOM_Object, containing the result shape.
9921 # @ref tui_fillet2d "Example"
9922 @ManageTransactions("LocalOp")
9923 def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
9925 Perform a fillet on the specified edges of the given shape
9928 theShape Wire Shape to perform fillet on.
9930 theListOfVertexes Global indices of vertexes to perform fillet on.
9931 doIgnoreSecantVertices If FALSE, fillet radius is always limited
9932 by the length of the edges, nearest to the fillet vertex.
9933 But sometimes the next edge is C1 continuous with the one, nearest to
9934 the fillet point, and such two (or more) edges can be united to allow
9935 bigger radius. Set this flag to TRUE to allow collinear edges union,
9936 thus ignoring the secant vertex (vertices).
9937 theName Object name; when specified, this parameter is used
9938 for result publication in the study. Otherwise, if automatic
9939 publication is switched on, default value is used for result name.
9941 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
9943 The list of vertices could be empty,in this case fillet will done done at all vertices in wire
9946 New GEOM.GEOM_Object, containing the result shape.
9950 Wire_1 = geompy.MakeWire([Edge_12, Edge_7, Edge_11, Edge_6, Edge_1,Edge_4])
9951 # make fillet at given wire vertices with giver radius
9952 Fillet_1D_1 = geompy.MakeFillet1D(Wire_1, 55, [3, 4, 6, 8, 10])
9954 # Example: see GEOM_TestAll.py
9955 theR,doIgnoreSecantVertices,Parameters = ParseParameters(theR,doIgnoreSecantVertices)
9956 anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
9957 RaiseIfFailed("MakeFillet1D", self.LocalOp)
9958 anObj.SetParameters(Parameters)
9959 self._autoPublish(anObj, theName, "fillet")
9962 ## Perform a fillet at the specified vertices of the given face/shell.
9963 # @param theShape Face or Shell shape to perform fillet on.
9964 # @param theR Fillet radius.
9965 # @param theListOfVertexes Global indices of vertexes to perform fillet on.
9966 # @param theName Object name; when specified, this parameter is used
9967 # for result publication in the study. Otherwise, if automatic
9968 # publication is switched on, default value is used for result name.
9970 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
9972 # @return New GEOM.GEOM_Object, containing the result shape.
9974 # @ref tui_fillet2d "Example"
9975 @ManageTransactions("LocalOp")
9976 def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
9978 Perform a fillet at the specified vertices of the given face/shell.
9981 theShape Face or Shell shape to perform fillet on.
9983 theListOfVertexes Global indices of vertexes to perform fillet on.
9984 theName Object name; when specified, this parameter is used
9985 for result publication in the study. Otherwise, if automatic
9986 publication is switched on, default value is used for result name.
9988 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
9991 New GEOM.GEOM_Object, containing the result shape.
9994 face = geompy.MakeFaceHW(100, 100, 1)
9995 fillet2d = geompy.MakeFillet2D(face, 30, [7, 9])
9997 # Example: see GEOM_TestAll.py
9998 theR,Parameters = ParseParameters(theR)
9999 anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
10000 RaiseIfFailed("MakeFillet2D", self.LocalOp)
10001 anObj.SetParameters(Parameters)
10002 self._autoPublish(anObj, theName, "fillet")
10005 ## Perform a symmetric chamfer on all edges of the given shape.
10006 # @param theShape Shape, to perform chamfer on.
10007 # @param theD Chamfer size along each face.
10008 # @param theName Object name; when specified, this parameter is used
10009 # for result publication in the study. Otherwise, if automatic
10010 # publication is switched on, default value is used for result name.
10012 # @return New GEOM.GEOM_Object, containing the result shape.
10014 # @ref tui_chamfer "Example 1"
10015 # \n @ref swig_MakeChamferAll "Example 2"
10016 @ManageTransactions("LocalOp")
10017 def MakeChamferAll(self, theShape, theD, theName=None):
10019 Perform a symmetric chamfer on all edges of the given shape.
10022 theShape Shape, to perform chamfer on.
10023 theD Chamfer size along each face.
10024 theName Object name; when specified, this parameter is used
10025 for result publication in the study. Otherwise, if automatic
10026 publication is switched on, default value is used for result name.
10029 New GEOM.GEOM_Object, containing the result shape.
10032 chamfer_all = geompy.MakeChamferAll(prism, 10.)
10034 # Example: see GEOM_TestOthers.py
10035 theD,Parameters = ParseParameters(theD)
10036 anObj = self.LocalOp.MakeChamferAll(theShape, theD)
10037 RaiseIfFailed("MakeChamferAll", self.LocalOp)
10038 anObj.SetParameters(Parameters)
10039 self._autoPublish(anObj, theName, "chamfer")
10042 ## Perform a chamfer on edges, common to the specified faces,
10043 # with distance D1 on the Face1
10044 # @param theShape Shape, to perform chamfer on.
10045 # @param theD1 Chamfer size along \a theFace1.
10046 # @param theD2 Chamfer size along \a theFace2.
10047 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
10048 # @param theName Object name; when specified, this parameter is used
10049 # for result publication in the study. Otherwise, if automatic
10050 # publication is switched on, default value is used for result name.
10052 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10054 # @return New GEOM.GEOM_Object, containing the result shape.
10056 # @ref tui_chamfer "Example"
10057 @ManageTransactions("LocalOp")
10058 def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
10060 Perform a chamfer on edges, common to the specified faces,
10061 with distance D1 on the Face1
10064 theShape Shape, to perform chamfer on.
10065 theD1 Chamfer size along theFace1.
10066 theD2 Chamfer size along theFace2.
10067 theFace1,theFace2 Global indices of two faces of theShape.
10068 theName Object name; when specified, this parameter is used
10069 for result publication in the study. Otherwise, if automatic
10070 publication is switched on, default value is used for result name.
10073 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10076 New GEOM.GEOM_Object, containing the result shape.
10079 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
10080 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
10081 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
10082 chamfer_e = geompy.MakeChamferEdge(prism, 10., 10., f_ind_1, f_ind_2)
10084 # Example: see GEOM_TestAll.py
10085 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10086 anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
10087 RaiseIfFailed("MakeChamferEdge", self.LocalOp)
10088 anObj.SetParameters(Parameters)
10089 self._autoPublish(anObj, theName, "chamfer")
10092 ## Perform a chamfer on edges
10093 # @param theShape Shape, to perform chamfer on.
10094 # @param theD Chamfer length
10095 # @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10096 # @param theFace1,theFace2 Global indices of two faces of \a theShape.
10097 # @param theName Object name; when specified, this parameter is used
10098 # for result publication in the study. Otherwise, if automatic
10099 # publication is switched on, default value is used for result name.
10101 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10103 # @return New GEOM.GEOM_Object, containing the result shape.
10104 @ManageTransactions("LocalOp")
10105 def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
10107 Perform a chamfer on edges
10110 theShape Shape, to perform chamfer on.
10111 theD1 Chamfer size along theFace1.
10112 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
10113 theFace1,theFace2 Global indices of two faces of theShape.
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 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
10122 New GEOM.GEOM_Object, containing the result shape.
10125 prism_faces = geompy.SubShapeAllSortedCentres(prism, geompy.ShapeType["FACE"])
10126 f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
10127 f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
10129 chamfer_e = geompy.MakeChamferEdge(prism, 10., ang, f_ind_1, f_ind_2)
10132 if isinstance(theAngle,str):
10134 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10136 theAngle = theAngle*math.pi/180.0
10137 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
10138 RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
10139 anObj.SetParameters(Parameters)
10140 self._autoPublish(anObj, theName, "chamfer")
10143 ## Perform a chamfer on all edges of the specified faces,
10144 # with distance D1 on the first specified face (if several for one edge)
10145 # @param theShape Shape, to perform chamfer on.
10146 # @param theD1 Chamfer size along face from \a theFaces. If both faces,
10147 # connected to the edge, are in \a theFaces, \a theD1
10148 # will be get along face, which is nearer to \a theFaces beginning.
10149 # @param theD2 Chamfer size along another of two faces, connected to the edge.
10150 # @param theFaces Sequence of global indices of faces of \a theShape.
10151 # @param theName Object name; when specified, this parameter is used
10152 # for result publication in the study. Otherwise, if automatic
10153 # publication is switched on, default value is used for result name.
10155 # @note Global index of sub-shape can be obtained, using method GetSubShapeID().
10157 # @return New GEOM.GEOM_Object, containing the result shape.
10159 # @ref tui_chamfer "Example"
10160 @ManageTransactions("LocalOp")
10161 def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
10163 Perform a chamfer on all edges of the specified faces,
10164 with distance D1 on the first specified face (if several for one edge)
10167 theShape Shape, to perform chamfer on.
10168 theD1 Chamfer size along face from theFaces. If both faces,
10169 connected to the edge, are in theFaces, theD1
10170 will be get along face, which is nearer to theFaces beginning.
10171 theD2 Chamfer size along another of two faces, connected to the edge.
10172 theFaces Sequence of global indices of faces of theShape.
10173 theName Object name; when specified, this parameter is used
10174 for result publication in the study. Otherwise, if automatic
10175 publication is switched on, default value is used for result name.
10177 Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
10180 New GEOM.GEOM_Object, containing the result shape.
10182 # Example: see GEOM_TestAll.py
10183 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10184 anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
10185 RaiseIfFailed("MakeChamferFaces", self.LocalOp)
10186 anObj.SetParameters(Parameters)
10187 self._autoPublish(anObj, theName, "chamfer")
10190 ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
10191 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10193 # @ref swig_FilletChamfer "Example"
10194 @ManageTransactions("LocalOp")
10195 def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
10197 The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
10198 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10201 if isinstance(theAngle,str):
10203 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10205 theAngle = theAngle*math.pi/180.0
10206 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
10207 RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
10208 anObj.SetParameters(Parameters)
10209 self._autoPublish(anObj, theName, "chamfer")
10212 ## Perform a chamfer on edges,
10213 # with distance D1 on the first specified face (if several for one edge)
10214 # @param theShape Shape, to perform chamfer on.
10215 # @param theD1,theD2 Chamfer size
10216 # @param theEdges Sequence of edges of \a theShape.
10217 # @param theName Object name; when specified, this parameter is used
10218 # for result publication in the study. Otherwise, if automatic
10219 # publication is switched on, default value is used for result name.
10221 # @return New GEOM.GEOM_Object, containing the result shape.
10223 # @ref swig_FilletChamfer "Example"
10224 @ManageTransactions("LocalOp")
10225 def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
10227 Perform a chamfer on edges,
10228 with distance D1 on the first specified face (if several for one edge)
10231 theShape Shape, to perform chamfer on.
10232 theD1,theD2 Chamfer size
10233 theEdges Sequence of edges of theShape.
10234 theName Object name; when specified, this parameter is used
10235 for result publication in the study. Otherwise, if automatic
10236 publication is switched on, default value is used for result name.
10239 New GEOM.GEOM_Object, containing the result shape.
10241 theD1,theD2,Parameters = ParseParameters(theD1,theD2)
10242 anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
10243 RaiseIfFailed("MakeChamferEdges", self.LocalOp)
10244 anObj.SetParameters(Parameters)
10245 self._autoPublish(anObj, theName, "chamfer")
10248 ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
10249 # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10250 @ManageTransactions("LocalOp")
10251 def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
10253 The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
10254 theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
10257 if isinstance(theAngle,str):
10259 theD,theAngle,Parameters = ParseParameters(theD,theAngle)
10261 theAngle = theAngle*math.pi/180.0
10262 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
10263 RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
10264 anObj.SetParameters(Parameters)
10265 self._autoPublish(anObj, theName, "chamfer")
10268 ## @sa MakeChamferEdge(), MakeChamferFaces()
10270 # @ref swig_MakeChamfer "Example"
10271 def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
10273 See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
10275 # Example: see GEOM_TestOthers.py
10277 # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
10278 if aShapeType == self.ShapeType["EDGE"]:
10279 anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
10281 anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
10284 ## Remove material from a solid by extrusion of the base shape on the given distance.
10285 # @param theInit Shape to remove material from. It must be a solid or
10286 # a compound made of a single solid.
10287 # @param theBase Closed edge or wire defining the base shape to be extruded.
10288 # @param theH Prism dimension along the normal to theBase
10289 # @param theAngle Draft angle in degrees.
10290 # @param theInvert If true material changes the direction
10291 # @param theName Object name; when specified, this parameter is used
10292 # for result publication in the study. Otherwise, if automatic
10293 # publication is switched on, default value is used for result name.
10295 # @return New GEOM.GEOM_Object, containing the initial shape with removed material
10297 # @ref tui_creation_prism "Example"
10298 @ManageTransactions("PrimOp")
10299 def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theInvert=False, theName=None):
10301 Add material to a solid by extrusion of the base shape on the given distance.
10304 theInit Shape to remove material from. It must be a solid or a compound made of a single solid.
10305 theBase Closed edge or wire defining the base shape to be extruded.
10306 theH Prism dimension along the normal to theBase
10307 theAngle Draft angle in degrees.
10308 theInvert If true material changes the direction.
10309 theName Object name; when specified, this parameter is used
10310 for result publication in the study. Otherwise, if automatic
10311 publication is switched on, default value is used for result name.
10314 New GEOM.GEOM_Object, containing the initial shape with removed material.
10316 # Example: see GEOM_TestAll.py
10317 theH,theAngle,Parameters = ParseParameters(theH,theAngle)
10318 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False, theInvert)
10319 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
10320 anObj.SetParameters(Parameters)
10321 self._autoPublish(anObj, theName, "extrudedCut")
10324 ## Add material to a solid by extrusion of the base shape on the given distance.
10325 # @param theInit Shape to add material to. It must be a solid or
10326 # a compound made of a single solid.
10327 # @param theBase Closed edge or wire defining the base shape to be extruded.
10328 # @param theH Prism dimension along the normal to theBase
10329 # @param theAngle Draft angle in degrees.
10330 # @param theInvert If true material changes the direction
10331 # @param theName Object name; when specified, this parameter is used
10332 # for result publication in the study. Otherwise, if automatic
10333 # publication is switched on, default value is used for result name.
10335 # @return New GEOM.GEOM_Object, containing the initial shape with added material
10337 # @ref tui_creation_prism "Example"
10338 @ManageTransactions("PrimOp")
10339 def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theInvert=False, theName=None):
10341 Add material to a solid by extrusion of the base shape on the given distance.
10344 theInit Shape to add material to. It must be a solid or a compound made of a single solid.
10345 theBase Closed edge or wire defining the base shape to be extruded.
10346 theH Prism dimension along the normal to theBase
10347 theAngle Draft angle in degrees.
10348 theInvert If true material changes the direction.
10349 theName Object name; when specified, this parameter is used
10350 for result publication in the study. Otherwise, if automatic
10351 publication is switched on, default value is used for result name.
10354 New GEOM.GEOM_Object, containing the initial shape with added material.
10356 # Example: see GEOM_TestAll.py
10357 theH,theAngle,Parameters = ParseParameters(theH,theAngle)
10358 anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True, theInvert)
10359 RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
10360 anObj.SetParameters(Parameters)
10361 self._autoPublish(anObj, theName, "extrudedBoss")
10367 ## @addtogroup l3_basic_op
10370 ## Perform an Archimde operation on the given shape with given parameters.
10371 # The object presenting the resulting face is returned.
10372 # @param theShape Shape to be put in water.
10373 # @param theWeight Weight of the shape.
10374 # @param theWaterDensity Density of the water.
10375 # @param theMeshDeflection Deflection of the mesh, using to compute the section.
10376 # @param theName Object name; when specified, this parameter is used
10377 # for result publication in the study. Otherwise, if automatic
10378 # publication is switched on, default value is used for result name.
10380 # @return New GEOM.GEOM_Object, containing a section of \a theShape
10381 # by a plane, corresponding to water level.
10383 # @ref tui_archimede "Example"
10384 @ManageTransactions("LocalOp")
10385 def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
10387 Perform an Archimde operation on the given shape with given parameters.
10388 The object presenting the resulting face is returned.
10391 theShape Shape to be put in water.
10392 theWeight Weight of the shape.
10393 theWaterDensity Density of the water.
10394 theMeshDeflection Deflection of the mesh, using to compute the section.
10395 theName Object name; when specified, this parameter is used
10396 for result publication in the study. Otherwise, if automatic
10397 publication is switched on, default value is used for result name.
10400 New GEOM.GEOM_Object, containing a section of theShape
10401 by a plane, corresponding to water level.
10403 # Example: see GEOM_TestAll.py
10404 theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters(
10405 theWeight,theWaterDensity,theMeshDeflection)
10406 anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
10407 RaiseIfFailed("MakeArchimede", self.LocalOp)
10408 anObj.SetParameters(Parameters)
10409 self._autoPublish(anObj, theName, "archimede")
10412 # end of l3_basic_op
10415 ## @addtogroup l2_measure
10418 ## Get point coordinates
10419 # @return [x, y, z]
10421 # @ref tui_point_coordinates_page "Example"
10422 @ManageTransactions("MeasuOp")
10423 def PointCoordinates(self,Point):
10425 Get point coordinates
10430 # Example: see GEOM_TestMeasures.py
10431 aTuple = self.MeasuOp.PointCoordinates(Point)
10432 RaiseIfFailed("PointCoordinates", self.MeasuOp)
10435 ## Get vector coordinates
10436 # @return [x, y, z]
10438 # @ref tui_measurement_tools_page "Example"
10439 def VectorCoordinates(self,Vector):
10441 Get vector coordinates
10447 p1=self.GetFirstVertex(Vector)
10448 p2=self.GetLastVertex(Vector)
10450 X1=self.PointCoordinates(p1)
10451 X2=self.PointCoordinates(p2)
10453 return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
10456 ## Compute cross product
10457 # @return vector w=u^v
10459 # @ref tui_measurement_tools_page "Example"
10460 def CrossProduct(self, Vector1, Vector2):
10462 Compute cross product
10464 Returns: vector w=u^v
10466 u=self.VectorCoordinates(Vector1)
10467 v=self.VectorCoordinates(Vector2)
10468 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])
10472 ## Compute cross product
10473 # @return dot product p=u.v
10475 # @ref tui_measurement_tools_page "Example"
10476 def DotProduct(self, Vector1, Vector2):
10478 Compute cross product
10480 Returns: dot product p=u.v
10482 u=self.VectorCoordinates(Vector1)
10483 v=self.VectorCoordinates(Vector2)
10484 p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
10489 ## Get summarized length of all wires,
10490 # area of surface and volume of the given shape.
10491 # @param theShape Shape to define properties of.
10492 # @return [theLength, theSurfArea, theVolume]\n
10493 # theLength: Summarized length of all wires of the given shape.\n
10494 # theSurfArea: Area of surface of the given shape.\n
10495 # theVolume: Volume of the given shape.
10497 # @ref tui_basic_properties_page "Example"
10498 @ManageTransactions("MeasuOp")
10499 def BasicProperties(self,theShape):
10501 Get summarized length of all wires,
10502 area of surface and volume of the given shape.
10505 theShape Shape to define properties of.
10508 [theLength, theSurfArea, theVolume]
10509 theLength: Summarized length of all wires of the given shape.
10510 theSurfArea: Area of surface of the given shape.
10511 theVolume: Volume of the given shape.
10513 # Example: see GEOM_TestMeasures.py
10514 aTuple = self.MeasuOp.GetBasicProperties(theShape)
10515 RaiseIfFailed("GetBasicProperties", self.MeasuOp)
10518 ## Get parameters of bounding box of the given shape
10519 # @param theShape Shape to obtain bounding box of.
10520 # @param precise TRUE for precise computation; FALSE for fast one.
10521 # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
10522 # Xmin,Xmax: Limits of shape along OX axis.
10523 # Ymin,Ymax: Limits of shape along OY axis.
10524 # Zmin,Zmax: Limits of shape along OZ axis.
10526 # @ref tui_bounding_box_page "Example"
10527 @ManageTransactions("MeasuOp")
10528 def BoundingBox (self, theShape, precise=False):
10530 Get parameters of bounding box of the given shape
10533 theShape Shape to obtain bounding box of.
10534 precise TRUE for precise computation; FALSE for fast one.
10537 [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax]
10538 Xmin,Xmax: Limits of shape along OX axis.
10539 Ymin,Ymax: Limits of shape along OY axis.
10540 Zmin,Zmax: Limits of shape along OZ axis.
10542 # Example: see GEOM_TestMeasures.py
10543 aTuple = self.MeasuOp.GetBoundingBox(theShape, precise)
10544 RaiseIfFailed("GetBoundingBox", self.MeasuOp)
10547 ## Get bounding box of the given shape
10548 # @param theShape Shape to obtain bounding box of.
10549 # @param precise TRUE for precise computation; FALSE for fast one.
10550 # @param theName Object name; when specified, this parameter is used
10551 # for result publication in the study. Otherwise, if automatic
10552 # publication is switched on, default value is used for result name.
10554 # @return New GEOM.GEOM_Object, containing the created box.
10556 # @ref tui_bounding_box_page "Example"
10557 @ManageTransactions("MeasuOp")
10558 def MakeBoundingBox (self, theShape, precise=False, theName=None):
10560 Get bounding box of the given shape
10563 theShape Shape to obtain bounding box of.
10564 precise TRUE for precise computation; FALSE for fast one.
10565 theName Object name; when specified, this parameter is used
10566 for result publication in the study. Otherwise, if automatic
10567 publication is switched on, default value is used for result name.
10570 New GEOM.GEOM_Object, containing the created box.
10572 # Example: see GEOM_TestMeasures.py
10573 anObj = self.MeasuOp.MakeBoundingBox(theShape, precise)
10574 RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
10575 self._autoPublish(anObj, theName, "bndbox")
10578 ## Get inertia matrix and moments of inertia of theShape.
10579 # @param theShape Shape to calculate inertia of.
10580 # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
10581 # I(1-3)(1-3): Components of the inertia matrix of the given shape.
10582 # Ix,Iy,Iz: Moments of inertia of the given shape.
10584 # @ref tui_inertia_page "Example"
10585 @ManageTransactions("MeasuOp")
10586 def Inertia(self,theShape):
10588 Get inertia matrix and moments of inertia of theShape.
10591 theShape Shape to calculate inertia of.
10594 [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
10595 I(1-3)(1-3): Components of the inertia matrix of the given shape.
10596 Ix,Iy,Iz: Moments of inertia of the given shape.
10598 # Example: see GEOM_TestMeasures.py
10599 aTuple = self.MeasuOp.GetInertia(theShape)
10600 RaiseIfFailed("GetInertia", self.MeasuOp)
10603 ## Get if coords are included in the shape (ST_IN or ST_ON)
10604 # @param theShape Shape
10605 # @param coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
10606 # @param tolerance to be used (default is 1.0e-7)
10607 # @return list_of_boolean = [res1, res2, ...]
10608 @ManageTransactions("MeasuOp")
10609 def AreCoordsInside(self, theShape, coords, tolerance=1.e-7):
10611 Get if coords are included in the shape (ST_IN or ST_ON)
10615 coords list of points coordinates [x1, y1, z1, x2, y2, z2, ...]
10616 tolerance to be used (default is 1.0e-7)
10619 list_of_boolean = [res1, res2, ...]
10621 return self.MeasuOp.AreCoordsInside(theShape, coords, tolerance)
10623 ## Get minimal distance between the given shapes.
10624 # @param theShape1,theShape2 Shapes to find minimal distance between.
10625 # @return Value of the minimal distance between the given shapes.
10627 # @ref tui_min_distance_page "Example"
10628 @ManageTransactions("MeasuOp")
10629 def MinDistance(self, theShape1, theShape2):
10631 Get minimal distance between the given shapes.
10634 theShape1,theShape2 Shapes to find minimal distance between.
10637 Value of the minimal distance between the given shapes.
10639 # Example: see GEOM_TestMeasures.py
10640 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
10641 RaiseIfFailed("GetMinDistance", self.MeasuOp)
10644 ## Get minimal distance between the given shapes.
10645 # @param theShape1,theShape2 Shapes to find minimal distance between.
10646 # @return Value of the minimal distance between the given shapes, in form of list
10647 # [Distance, DX, DY, DZ].
10649 # @ref tui_min_distance_page "Example"
10650 @ManageTransactions("MeasuOp")
10651 def MinDistanceComponents(self, theShape1, theShape2):
10653 Get minimal distance between the given shapes.
10656 theShape1,theShape2 Shapes to find minimal distance between.
10659 Value of the minimal distance between the given shapes, in form of list
10660 [Distance, DX, DY, DZ]
10662 # Example: see GEOM_TestMeasures.py
10663 aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
10664 RaiseIfFailed("GetMinDistance", self.MeasuOp)
10665 aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
10668 ## Get closest points of the given shapes.
10669 # @param theShape1,theShape2 Shapes to find closest points of.
10670 # @return The number of found solutions (-1 in case of infinite number of
10671 # solutions) and a list of (X, Y, Z) coordinates for all couples of points.
10673 # @ref tui_min_distance_page "Example"
10674 @ManageTransactions("MeasuOp")
10675 def ClosestPoints (self, theShape1, theShape2):
10677 Get closest points of the given shapes.
10680 theShape1,theShape2 Shapes to find closest points of.
10683 The number of found solutions (-1 in case of infinite number of
10684 solutions) and a list of (X, Y, Z) coordinates for all couples of points.
10686 # Example: see GEOM_TestMeasures.py
10687 aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
10688 RaiseIfFailed("ClosestPoints", self.MeasuOp)
10691 ## Get angle between the given shapes in degrees.
10692 # @param theShape1,theShape2 Lines or linear edges to find angle between.
10693 # @note If both arguments are vectors, the angle is computed in accordance
10694 # with their orientations, otherwise the minimum angle is computed.
10695 # @return Value of the angle between the given shapes in degrees.
10697 # @ref tui_angle_page "Example"
10698 @ManageTransactions("MeasuOp")
10699 def GetAngle(self, theShape1, theShape2):
10701 Get angle between the given shapes in degrees.
10704 theShape1,theShape2 Lines or linear edges to find angle between.
10707 If both arguments are vectors, the angle is computed in accordance
10708 with their orientations, otherwise the minimum angle is computed.
10711 Value of the angle between the given shapes in degrees.
10713 # Example: see GEOM_TestMeasures.py
10714 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
10715 RaiseIfFailed("GetAngle", self.MeasuOp)
10718 ## Get angle between the given shapes in radians.
10719 # @param theShape1,theShape2 Lines or linear edges to find angle between.
10720 # @note If both arguments are vectors, the angle is computed in accordance
10721 # with their orientations, otherwise the minimum angle is computed.
10722 # @return Value of the angle between the given shapes in radians.
10724 # @ref tui_angle_page "Example"
10725 @ManageTransactions("MeasuOp")
10726 def GetAngleRadians(self, theShape1, theShape2):
10728 Get angle between the given shapes in radians.
10731 theShape1,theShape2 Lines or linear edges to find angle between.
10735 If both arguments are vectors, the angle is computed in accordance
10736 with their orientations, otherwise the minimum angle is computed.
10739 Value of the angle between the given shapes in radians.
10741 # Example: see GEOM_TestMeasures.py
10742 anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180.
10743 RaiseIfFailed("GetAngle", self.MeasuOp)
10746 ## Get angle between the given vectors in degrees.
10747 # @param theShape1,theShape2 Vectors to find angle between.
10748 # @param theFlag If True, the normal vector is defined by the two vectors cross,
10749 # if False, the opposite vector to the normal vector is used.
10750 # @return Value of the angle between the given vectors in degrees.
10752 # @ref tui_angle_page "Example"
10753 @ManageTransactions("MeasuOp")
10754 def GetAngleVectors(self, theShape1, theShape2, theFlag = True):
10756 Get angle between the given vectors in degrees.
10759 theShape1,theShape2 Vectors to find angle between.
10760 theFlag If True, the normal vector is defined by the two vectors cross,
10761 if False, the opposite vector to the normal vector is used.
10764 Value of the angle between the given vectors in degrees.
10766 anAngle = self.MeasuOp.GetAngleBtwVectors(theShape1, theShape2)
10768 anAngle = 360. - anAngle
10769 RaiseIfFailed("GetAngleVectors", self.MeasuOp)
10772 ## The same as GetAngleVectors, but the result is in radians.
10773 def GetAngleRadiansVectors(self, theShape1, theShape2, theFlag = True):
10775 Get angle between the given vectors in radians.
10778 theShape1,theShape2 Vectors to find angle between.
10779 theFlag If True, the normal vector is defined by the two vectors cross,
10780 if False, the opposite vector to the normal vector is used.
10783 Value of the angle between the given vectors in radians.
10785 anAngle = self.GetAngleVectors(theShape1, theShape2, theFlag)*math.pi/180.
10788 ## @name Curve Curvature Measurement
10789 # Methods for receiving radius of curvature of curves
10790 # in the given point
10793 ## Measure curvature of a curve at a point, set by parameter.
10794 # @param theCurve a curve.
10795 # @param theParam parameter.
10796 # @return radius of curvature of \a theCurve.
10798 # @ref swig_todo "Example"
10799 @ManageTransactions("MeasuOp")
10800 def CurveCurvatureByParam(self, theCurve, theParam):
10802 Measure curvature of a curve at a point, set by parameter.
10806 theParam parameter.
10809 radius of curvature of theCurve.
10811 # Example: see GEOM_TestMeasures.py
10812 aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam)
10813 RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp)
10816 ## Measure curvature of a curve at a point.
10817 # @param theCurve a curve.
10818 # @param thePoint given point.
10819 # @return radius of curvature of \a theCurve.
10821 # @ref swig_todo "Example"
10822 @ManageTransactions("MeasuOp")
10823 def CurveCurvatureByPoint(self, theCurve, thePoint):
10825 Measure curvature of a curve at a point.
10829 thePoint given point.
10832 radius of curvature of theCurve.
10834 aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint)
10835 RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp)
10839 ## @name Surface Curvature Measurement
10840 # Methods for receiving max and min radius of curvature of surfaces
10841 # in the given point
10844 ## Measure max radius of curvature of surface.
10845 # @param theSurf the given surface.
10846 # @param theUParam Value of U-parameter on the referenced surface.
10847 # @param theVParam Value of V-parameter on the referenced surface.
10848 # @return max radius of curvature of theSurf.
10850 ## @ref swig_todo "Example"
10851 @ManageTransactions("MeasuOp")
10852 def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
10854 Measure max radius of curvature of surface.
10857 theSurf the given surface.
10858 theUParam Value of U-parameter on the referenced surface.
10859 theVParam Value of V-parameter on the referenced surface.
10862 max radius of curvature of theSurf.
10864 # Example: see GEOM_TestMeasures.py
10865 aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
10866 RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp)
10869 ## Measure max radius of curvature of surface in the given point
10870 # @param theSurf the given surface.
10871 # @param thePoint given point.
10872 # @return max radius of curvature of theSurf.
10874 ## @ref swig_todo "Example"
10875 @ManageTransactions("MeasuOp")
10876 def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint):
10878 Measure max radius of curvature of surface in the given point.
10881 theSurf the given surface.
10882 thePoint given point.
10885 max radius of curvature of theSurf.
10887 aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint)
10888 RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp)
10891 ## Measure min radius of curvature of surface.
10892 # @param theSurf the given surface.
10893 # @param theUParam Value of U-parameter on the referenced surface.
10894 # @param theVParam Value of V-parameter on the referenced surface.
10895 # @return min radius of curvature of theSurf.
10897 ## @ref swig_todo "Example"
10898 @ManageTransactions("MeasuOp")
10899 def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam):
10901 Measure min radius of curvature of surface.
10904 theSurf the given surface.
10905 theUParam Value of U-parameter on the referenced surface.
10906 theVParam Value of V-parameter on the referenced surface.
10909 Min radius of curvature of theSurf.
10911 aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam)
10912 RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp)
10915 ## Measure min radius of curvature of surface in the given point
10916 # @param theSurf the given surface.
10917 # @param thePoint given point.
10918 # @return min radius of curvature of theSurf.
10920 ## @ref swig_todo "Example"
10921 @ManageTransactions("MeasuOp")
10922 def MinSurfaceCurvatureByPoint(self, theSurf, thePoint):
10924 Measure min radius of curvature of surface in the given point.
10927 theSurf the given surface.
10928 thePoint given point.
10931 Min radius of curvature of theSurf.
10933 aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint)
10934 RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp)
10938 ## Get min and max tolerances of sub-shapes of theShape
10939 # @param theShape Shape, to get tolerances of.
10940 # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n
10941 # FaceMin,FaceMax: Min and max tolerances of the faces.\n
10942 # EdgeMin,EdgeMax: Min and max tolerances of the edges.\n
10943 # VertMin,VertMax: Min and max tolerances of the vertices.
10945 # @ref tui_tolerance_page "Example"
10946 @ManageTransactions("MeasuOp")
10947 def Tolerance(self,theShape):
10949 Get min and max tolerances of sub-shapes of theShape
10952 theShape Shape, to get tolerances of.
10955 [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]
10956 FaceMin,FaceMax: Min and max tolerances of the faces.
10957 EdgeMin,EdgeMax: Min and max tolerances of the edges.
10958 VertMin,VertMax: Min and max tolerances of the vertices.
10960 # Example: see GEOM_TestMeasures.py
10961 aTuple = self.MeasuOp.GetTolerance(theShape)
10962 RaiseIfFailed("GetTolerance", self.MeasuOp)
10965 ## Obtain description of the given shape (number of sub-shapes of each type)
10966 # @param theShape Shape to be described.
10967 # @return Description of the given shape.
10969 # @ref tui_whatis_page "Example"
10970 @ManageTransactions("MeasuOp")
10971 def WhatIs(self,theShape):
10973 Obtain description of the given shape (number of sub-shapes of each type)
10976 theShape Shape to be described.
10979 Description of the given shape.
10981 # Example: see GEOM_TestMeasures.py
10982 aDescr = self.MeasuOp.WhatIs(theShape)
10983 RaiseIfFailed("WhatIs", self.MeasuOp)
10986 ## Obtain quantity of shapes of the given type in \a theShape.
10987 # If \a theShape is of type \a theType, it is also counted.
10988 # @param theShape Shape to be described.
10989 # @param theType the given ShapeType().
10990 # @return Quantity of shapes of type \a theType in \a theShape.
10992 # @ref tui_measurement_tools_page "Example"
10993 def NbShapes (self, theShape, theType):
10995 Obtain quantity of shapes of the given type in theShape.
10996 If theShape is of type theType, it is also counted.
10999 theShape Shape to be described.
11000 theType the given geompy.ShapeType
11003 Quantity of shapes of type theType in theShape.
11005 # Example: see GEOM_TestMeasures.py
11006 listSh = self.SubShapeAllIDs(theShape, theType)
11010 ## Obtain quantity of shapes of each type in \a theShape.
11011 # The \a theShape is also counted.
11012 # @param theShape Shape to be described.
11013 # @return Dictionary of ShapeType() with bound quantities of shapes.
11015 # @ref tui_measurement_tools_page "Example"
11016 def ShapeInfo (self, theShape):
11018 Obtain quantity of shapes of each type in theShape.
11019 The theShape is also counted.
11022 theShape Shape to be described.
11025 Dictionary of geompy.ShapeType with bound quantities of shapes.
11027 # Example: see GEOM_TestMeasures.py
11029 for typeSh in self.ShapeType:
11030 if typeSh in ( "AUTO", "SHAPE" ): continue
11031 listSh = self.SubShapeAllIDs(theShape, self.ShapeType[typeSh])
11037 def GetCreationInformation(self, theShape):
11039 infos = theShape.GetCreationInformation()
11042 opName = info.operationName
11043 if not opName: opName = "no info available"
11044 if res: res += "\n"
11045 res += "Operation: " + opName
11047 for parVal in info.params:
11048 res += "\n \t%s = %s" % ( parVal.name, parVal.value )
11051 ## Get a point, situated at the centre of mass of theShape.
11052 # @param theShape Shape to define centre of mass of.
11053 # @param theName Object name; when specified, this parameter is used
11054 # for result publication in the study. Otherwise, if automatic
11055 # publication is switched on, default value is used for result name.
11057 # @return New GEOM.GEOM_Object, containing the created point.
11059 # @ref tui_center_of_mass_page "Example"
11060 @ManageTransactions("MeasuOp")
11061 def MakeCDG(self, theShape, theName=None):
11063 Get a point, situated at the centre of mass of theShape.
11066 theShape Shape to define centre of mass of.
11067 theName Object name; when specified, this parameter is used
11068 for result publication in the study. Otherwise, if automatic
11069 publication is switched on, default value is used for result name.
11072 New GEOM.GEOM_Object, containing the created point.
11074 # Example: see GEOM_TestMeasures.py
11075 anObj = self.MeasuOp.GetCentreOfMass(theShape)
11076 RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
11077 self._autoPublish(anObj, theName, "centerOfMass")
11080 ## Get a vertex sub-shape by index depended with orientation.
11081 # @param theShape Shape to find sub-shape.
11082 # @param theIndex Index to find vertex by this index (starting from zero)
11083 # @param theName Object name; when specified, this parameter is used
11084 # for result publication in the study. Otherwise, if automatic
11085 # publication is switched on, default value is used for result name.
11087 # @return New GEOM.GEOM_Object, containing the created vertex.
11089 # @ref tui_measurement_tools_page "Example"
11090 @ManageTransactions("MeasuOp")
11091 def GetVertexByIndex(self, theShape, theIndex, theName=None):
11093 Get a vertex sub-shape by index depended with orientation.
11096 theShape Shape to find sub-shape.
11097 theIndex Index to find vertex by this index (starting from zero)
11098 theName Object name; when specified, this parameter is used
11099 for result publication in the study. Otherwise, if automatic
11100 publication is switched on, default value is used for result name.
11103 New GEOM.GEOM_Object, containing the created vertex.
11105 # Example: see GEOM_TestMeasures.py
11106 anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
11107 RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
11108 self._autoPublish(anObj, theName, "vertex")
11111 ## Get the first vertex of wire/edge depended orientation.
11112 # @param theShape Shape to find first vertex.
11113 # @param theName Object name; when specified, this parameter is used
11114 # for result publication in the study. Otherwise, if automatic
11115 # publication is switched on, default value is used for result name.
11117 # @return New GEOM.GEOM_Object, containing the created vertex.
11119 # @ref tui_measurement_tools_page "Example"
11120 def GetFirstVertex(self, theShape, theName=None):
11122 Get the first vertex of wire/edge depended orientation.
11125 theShape Shape to find first vertex.
11126 theName Object name; when specified, this parameter is used
11127 for result publication in the study. Otherwise, if automatic
11128 publication is switched on, default value is used for result name.
11131 New GEOM.GEOM_Object, containing the created vertex.
11133 # Example: see GEOM_TestMeasures.py
11134 # note: auto-publishing is done in self.GetVertexByIndex()
11135 return self.GetVertexByIndex(theShape, 0, theName)
11137 ## Get the last vertex of wire/edge depended orientation.
11138 # @param theShape Shape to find last vertex.
11139 # @param theName Object name; when specified, this parameter is used
11140 # for result publication in the study. Otherwise, if automatic
11141 # publication is switched on, default value is used for result name.
11143 # @return New GEOM.GEOM_Object, containing the created vertex.
11145 # @ref tui_measurement_tools_page "Example"
11146 def GetLastVertex(self, theShape, theName=None):
11148 Get the last vertex of wire/edge depended orientation.
11151 theShape Shape to find last vertex.
11152 theName Object name; when specified, this parameter is used
11153 for result publication in the study. Otherwise, if automatic
11154 publication is switched on, default value is used for result name.
11157 New GEOM.GEOM_Object, containing the created vertex.
11159 # Example: see GEOM_TestMeasures.py
11160 nb_vert = self.NumberOfSubShapes(theShape, self.ShapeType["VERTEX"])
11161 # note: auto-publishing is done in self.GetVertexByIndex()
11162 return self.GetVertexByIndex(theShape, (nb_vert-1), theName)
11164 ## Get a normale to the given face. If the point is not given,
11165 # the normale is calculated at the center of mass.
11166 # @param theFace Face to define normale of.
11167 # @param theOptionalPoint Point to compute the normale at.
11168 # @param theName Object name; when specified, this parameter is used
11169 # for result publication in the study. Otherwise, if automatic
11170 # publication is switched on, default value is used for result name.
11172 # @return New GEOM.GEOM_Object, containing the created vector.
11174 # @ref swig_todo "Example"
11175 @ManageTransactions("MeasuOp")
11176 def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
11178 Get a normale to the given face. If the point is not given,
11179 the normale is calculated at the center of mass.
11182 theFace Face to define normale of.
11183 theOptionalPoint Point to compute the normale at.
11184 theName Object name; when specified, this parameter is used
11185 for result publication in the study. Otherwise, if automatic
11186 publication is switched on, default value is used for result name.
11189 New GEOM.GEOM_Object, containing the created vector.
11191 # Example: see GEOM_TestMeasures.py
11192 anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
11193 RaiseIfFailed("GetNormal", self.MeasuOp)
11194 self._autoPublish(anObj, theName, "normal")
11197 ## Print shape errors obtained from CheckShape.
11198 # @param theShape Shape that was checked.
11199 # @param theShapeErrors the shape errors obtained by CheckShape.
11200 # @param theReturnStatus If 0 the description of problem is printed.
11201 # If 1 the description of problem is returned.
11202 # @return If theReturnStatus is equal to 1 the description is returned.
11203 # Otherwise doesn't return anything.
11205 # @ref tui_check_shape_page "Example"
11206 @ManageTransactions("MeasuOp")
11207 def PrintShapeErrors(self, theShape, theShapeErrors, theReturnStatus = 0):
11209 Print shape errors obtained from CheckShape.
11212 theShape Shape that was checked.
11213 theShapeErrors the shape errors obtained by CheckShape.
11214 theReturnStatus If 0 the description of problem is printed.
11215 If 1 the description of problem is returned.
11218 If theReturnStatus is equal to 1 the description is returned.
11219 Otherwise doesn't return anything.
11221 # Example: see GEOM_TestMeasures.py
11222 Descr = self.MeasuOp.PrintShapeErrors(theShape, theShapeErrors)
11223 if theReturnStatus == 1:
11228 ## Check a topology of the given shape.
11229 # @param theShape Shape to check validity of.
11230 # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, \n
11231 # if TRUE, the shape's geometry will be checked also.
11232 # @param theReturnStatus If 0 and if theShape is invalid, a description
11233 # of problem is printed.
11234 # If 1 isValid flag and the description of
11235 # problem is returned.
11236 # If 2 isValid flag and the list of error data
11238 # @return TRUE, if the shape "seems to be valid".
11239 # If theShape is invalid, prints a description of problem.
11240 # If theReturnStatus is equal to 1 the description is returned
11241 # along with IsValid flag.
11242 # If theReturnStatus is equal to 2 the list of error data is
11243 # returned along with IsValid flag.
11245 # @ref tui_check_shape_page "Example"
11246 @ManageTransactions("MeasuOp")
11247 def CheckShape(self,theShape, theIsCheckGeom = 0, theReturnStatus = 0):
11249 Check a topology of the given shape.
11252 theShape Shape to check validity of.
11253 theIsCheckGeom If FALSE, only the shape's topology will be checked,
11254 if TRUE, the shape's geometry will be checked also.
11255 theReturnStatus If 0 and if theShape is invalid, a description
11256 of problem is printed.
11257 If 1 IsValid flag and the description of
11258 problem is returned.
11259 If 2 IsValid flag and the list of error data
11263 TRUE, if the shape "seems to be valid".
11264 If theShape is invalid, prints a description of problem.
11265 If theReturnStatus is equal to 1 the description is returned
11266 along with IsValid flag.
11267 If theReturnStatus is equal to 2 the list of error data is
11268 returned along with IsValid flag.
11270 # Example: see GEOM_TestMeasures.py
11272 (IsValid, ShapeErrors) = self.MeasuOp.CheckShapeWithGeometry(theShape)
11273 RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
11275 (IsValid, ShapeErrors) = self.MeasuOp.CheckShape(theShape)
11276 RaiseIfFailed("CheckShape", self.MeasuOp)
11278 if theReturnStatus == 0:
11279 Descr = self.MeasuOp.PrintShapeErrors(theShape, ShapeErrors)
11281 if theReturnStatus == 1:
11282 Descr = self.MeasuOp.PrintShapeErrors(theShape, ShapeErrors)
11283 return (IsValid, Descr)
11284 elif theReturnStatus == 2:
11285 return (IsValid, ShapeErrors)
11288 ## Detect self-intersections in the given shape.
11289 # @param theShape Shape to check.
11290 # @param theCheckLevel is the level of self-intersection check.
11291 # Possible input values are:
11292 # - GEOM.SI_V_V(0) - only V/V interferences
11293 # - GEOM.SI_V_E(1) - V/V and V/E interferences
11294 # - GEOM.SI_E_E(2) - V/V, V/E and E/E interferences
11295 # - GEOM.SI_V_F(3) - V/V, V/E, E/E and V/F interferences
11296 # - GEOM.SI_E_F(4) - V/V, V/E, E/E, V/F and E/F interferences
11297 # - GEOM.SI_ALL(5) - all interferences.
11298 # @return TRUE, if the shape contains no self-intersections.
11300 # @ref tui_check_self_intersections_page "Example"
11301 @ManageTransactions("MeasuOp")
11302 def CheckSelfIntersections(self, theShape, theCheckLevel = GEOM.SI_ALL):
11304 Detect self-intersections in the given shape.
11307 theShape Shape to check.
11308 theCheckLevel is the level of self-intersection check.
11309 Possible input values are:
11310 - GEOM.SI_V_V(0) - only V/V interferences
11311 - GEOM.SI_V_E(1) - V/V and V/E interferences
11312 - GEOM.SI_E_E(2) - V/V, V/E and E/E interferences
11313 - GEOM.SI_V_F(3) - V/V, V/E, E/E and V/F interferences
11314 - GEOM.SI_E_F(4) - V/V, V/E, E/E, V/F and E/F interferences
11315 - GEOM.SI_ALL(5) - all interferences.
11318 TRUE, if the shape contains no self-intersections.
11320 # Example: see GEOM_TestMeasures.py
11321 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersections(theShape, EnumToLong(theCheckLevel))
11322 RaiseIfFailed("CheckSelfIntersections", self.MeasuOp)
11325 ## Detect self-intersections of the given shape with algorithm based on mesh intersections.
11326 # @param theShape Shape to check.
11327 # @param theDeflection Linear deflection coefficient that specifies quality of tesselation:
11328 # - if \a theDeflection <= 0, default deflection 0.001 is used
11329 # @param theTolerance Specifies a distance between sub-shapes used for detecting gaps:
11330 # - if \a theTolerance <= 0, algorithm detects intersections (default behavior)
11331 # - if \a theTolerance > 0, algorithm detects gaps
11332 # @return TRUE, if the shape contains no self-intersections.
11334 # @ref tui_check_self_intersections_fast_page "Example"
11335 @ManageTransactions("MeasuOp")
11336 def CheckSelfIntersectionsFast(self, theShape, theDeflection = 0.001, theTolerance = 0.0):
11338 Detect self-intersections of the given shape with algorithm based on mesh intersections.
11341 theShape Shape to check.
11342 theDeflection Linear deflection coefficient that specifies quality of tesselation:
11343 - if theDeflection <= 0, default deflection 0.001 is used
11344 theTolerance Specifies a distance between shapes used for detecting gaps:
11345 - if theTolerance <= 0, algorithm detects intersections (default behavior)
11346 - if theTolerance > 0, algorithm detects gaps
11349 TRUE, if the shape contains no self-intersections.
11351 # Example: see GEOM_TestMeasures.py
11352 (IsValid, Pairs) = self.MeasuOp.CheckSelfIntersectionsFast(theShape, theDeflection, theTolerance)
11353 RaiseIfFailed("CheckSelfIntersectionsFast", self.MeasuOp)
11356 ## Detect intersections of the given shapes with algorithm based on mesh intersections.
11357 # @param theShape1 First source object
11358 # @param theShape2 Second source object
11359 # @param theTolerance Specifies a distance between shapes used for detecting gaps:
11360 # - if \a theTolerance <= 0, algorithm detects intersections (default behavior)
11361 # - if \a theTolerance > 0, algorithm detects gaps
11362 # @param theDeflection Linear deflection coefficient that specifies quality of tesselation:
11363 # - if \a theDeflection <= 0, default deflection 0.001 is used
11364 # @return TRUE, if there are intersections (gaps) between source shapes
11365 # @return List of sub-shapes IDs from 1st shape that localize intersection.
11366 # @return List of sub-shapes IDs from 2nd shape that localize intersection.
11368 # @ref tui_fast_intersection_page "Example"
11369 @ManageTransactions("MeasuOp")
11370 def FastIntersect(self, theShape1, theShape2, theTolerance = 0.0, theDeflection = 0.001):
11372 Detect intersections of the given shapes with algorithm based on mesh intersections.
11375 theShape1 First source object
11376 theShape2 Second source object
11377 theTolerance Specifies a distance between shapes used for detecting gaps:
11378 - if theTolerance <= 0, algorithm detects intersections (default behavior)
11379 - if theTolerance > 0, algorithm detects gaps
11380 theDeflection Linear deflection coefficient that specifies quality of tesselation:
11381 - if theDeflection <= 0, default deflection 0.001 is used
11384 TRUE, if there are intersections (gaps) between source shapes
11385 List of sub-shapes IDs from 1st shape that localize intersection.
11386 List of sub-shapes IDs from 2nd shape that localize intersection.
11388 # Example: see GEOM_TestMeasures.py
11389 IsOk, Res1, Res2 = self.MeasuOp.FastIntersect(theShape1, theShape2, theTolerance, theDeflection)
11390 RaiseIfFailed("FastIntersect", self.MeasuOp)
11391 return IsOk, Res1, Res2
11393 ## Get position (LCS) of theShape.
11395 # Origin of the LCS is situated at the shape's center of mass.
11396 # Axes of the LCS are obtained from shape's location or,
11397 # if the shape is a planar face, from position of its plane.
11399 # @param theShape Shape to calculate position of.
11400 # @return [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
11401 # Ox,Oy,Oz: Coordinates of shape's LCS origin.
11402 # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
11403 # Xx,Xy,Xz: Coordinates of shape's LCS X direction.
11405 # @ref swig_todo "Example"
11406 @ManageTransactions("MeasuOp")
11407 def GetPosition(self,theShape):
11409 Get position (LCS) of theShape.
11410 Origin of the LCS is situated at the shape's center of mass.
11411 Axes of the LCS are obtained from shape's location or,
11412 if the shape is a planar face, from position of its plane.
11415 theShape Shape to calculate position of.
11418 [Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz].
11419 Ox,Oy,Oz: Coordinates of shape's LCS origin.
11420 Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction.
11421 Xx,Xy,Xz: Coordinates of shape's LCS X direction.
11423 # Example: see GEOM_TestMeasures.py
11424 aTuple = self.MeasuOp.GetPosition(theShape)
11425 RaiseIfFailed("GetPosition", self.MeasuOp)
11428 ## Get kind of theShape.
11430 # @param theShape Shape to get a kind of.
11431 # @return Returns a kind of shape in terms of <VAR>GEOM.GEOM_IKindOfShape.shape_kind</VAR> enumeration
11432 # and a list of parameters, describing the shape.
11433 # @note Concrete meaning of each value, returned via \a theIntegers
11434 # or \a theDoubles list depends on the kind() of the shape.
11436 # @ref swig_todo "Example"
11437 @ManageTransactions("MeasuOp")
11438 def KindOfShape(self,theShape):
11440 Get kind of theShape.
11443 theShape Shape to get a kind of.
11446 a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration
11447 and a list of parameters, describing the shape.
11449 Concrete meaning of each value, returned via theIntegers
11450 or theDoubles list depends on the geompy.kind of the shape
11452 # Example: see GEOM_TestMeasures.py
11453 aRoughTuple = self.MeasuOp.KindOfShape(theShape)
11454 RaiseIfFailed("KindOfShape", self.MeasuOp)
11456 aKind = aRoughTuple[0]
11457 anInts = aRoughTuple[1]
11458 aDbls = aRoughTuple[2]
11460 # Now there is no exception from this rule:
11461 aKindTuple = [aKind] + aDbls + anInts
11463 # If they are we will regroup parameters for such kind of shape.
11465 #if aKind == kind.SOME_KIND:
11466 # # SOME_KIND int int double int double double
11467 # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]]
11471 ## Returns the string that describes if the shell is good for solid.
11472 # This is a support method for MakeSolid.
11474 # @param theShell the shell to be checked.
11475 # @return Returns a string that describes the shell validity for
11476 # solid construction.
11477 @ManageTransactions("MeasuOp")
11478 def _IsGoodForSolid(self, theShell):
11480 Returns the string that describes if the shell is good for solid.
11481 This is a support method for MakeSolid.
11484 theShell the shell to be checked.
11487 Returns a string that describes the shell validity for
11488 solid construction.
11490 aDescr = self.MeasuOp.IsGoodForSolid(theShell)
11493 # end of l2_measure
11496 ## @addtogroup l2_import_export
11499 ## Import a shape from the BREP, IGES, STEP or other file
11500 # (depends on given format) with given name.
11502 # Note: this function is deprecated, it is kept for backward compatibility only
11503 # Use Import<FormatName> instead, where <FormatName> is a name of desirable format to import.
11505 # @param theFileName The file, containing the shape.
11506 # @param theFormatName Specify format for the file reading.
11507 # Available formats can be obtained with InsertOp.ImportTranslators() method.
11508 # If format 'IGES_SCALE' is used instead of 'IGES' or
11509 # format 'STEP_SCALE' is used instead of 'STEP',
11510 # length unit will be set to 'meter' and result model will be scaled.
11511 # @param theName Object name; when specified, this parameter is used
11512 # for result publication in the study. Otherwise, if automatic
11513 # publication is switched on, default value is used for result name.
11515 # @return New GEOM.GEOM_Object, containing the imported shape.
11516 # If material names are imported it returns the list of
11517 # objects. The first one is the imported object followed by
11519 # @note Auto publishing is allowed for the shape itself. Imported
11520 # material groups are not automatically published.
11522 # @ref swig_Import_Export "Example"
11523 @ManageTransactions("InsertOp")
11524 def ImportFile(self, theFileName, theFormatName, theName=None):
11526 Import a shape from the BREP, IGES, STEP or other file
11527 (depends on given format) with given name.
11529 Note: this function is deprecated, it is kept for backward compatibility only
11530 Use Import<FormatName> instead, where <FormatName> is a name of desirable format to import.
11533 theFileName The file, containing the shape.
11534 theFormatName Specify format for the file reading.
11535 Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
11536 If format 'IGES_SCALE' is used instead of 'IGES' or
11537 format 'STEP_SCALE' is used instead of 'STEP',
11538 length unit will be set to 'meter' and result model will be scaled.
11539 theName Object name; when specified, this parameter is used
11540 for result publication in the study. Otherwise, if automatic
11541 publication is switched on, default value is used for result name.
11544 New GEOM.GEOM_Object, containing the imported shape.
11545 If material names are imported it returns the list of
11546 objects. The first one is the imported object followed by
11549 Auto publishing is allowed for the shape itself. Imported
11550 material groups are not automatically published.
11552 # Example: see GEOM_TestOthers.py
11554 WARNING: Function ImportFile is deprecated, use Import<FormatName> instead,
11555 where <FormatName> is a name of desirable format for importing.
11557 aListObj = self.InsertOp.ImportFile(theFileName, theFormatName)
11558 RaiseIfFailed("ImportFile", self.InsertOp)
11559 aNbObj = len(aListObj)
11561 self._autoPublish(aListObj[0], theName, "imported")
11566 ## Deprecated analog of ImportFile()
11567 def Import(self, theFileName, theFormatName, theName=None):
11569 Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
11571 # note: auto-publishing is done in self.ImportFile()
11572 return self.ImportFile(theFileName, theFormatName, theName)
11574 ## Read a shape from the binary stream, containing its bounding representation (BRep).
11575 # @note This method will not be dumped to the python script by DumpStudy functionality.
11576 # @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
11577 # @param theStream The BRep binary stream.
11578 # @param theName Object name; when specified, this parameter is used
11579 # for result publication in the study. Otherwise, if automatic
11580 # publication is switched on, default value is used for result name.
11582 # @return New GEOM_Object, containing the shape, read from theStream.
11584 # @ref swig_Import_Export "Example"
11585 @ManageTransactions("InsertOp")
11586 def RestoreShape (self, theStream, theName=None):
11588 Read a shape from the binary stream, containing its bounding representation (BRep).
11591 shape.GetShapeStream() method can be used to obtain the shape's BRep stream.
11594 theStream The BRep binary stream.
11595 theName Object name; when specified, this parameter is used
11596 for result publication in the study. Otherwise, if automatic
11597 publication is switched on, default value is used for result name.
11600 New GEOM_Object, containing the shape, read from theStream.
11602 # Example: see GEOM_TestOthers.py
11603 anObj = self.InsertOp.RestoreShape(theStream)
11604 RaiseIfFailed("RestoreShape", self.InsertOp)
11605 self._autoPublish(anObj, theName, "restored")
11608 ## Export the given shape into a file with given name.
11610 # Note: this function is deprecated, it is kept for backward compatibility only
11611 # Use Export<FormatName> instead, where <FormatName> is a name of desirable format to export.
11613 # @param theObject Shape to be stored in the file.
11614 # @param theFileName Name of the file to store the given shape in.
11615 # @param theFormatName Specify format for the shape storage.
11616 # Available formats can be obtained with
11617 # geompy.InsertOp.ExportTranslators()[0] method.
11619 # @ref swig_Import_Export "Example"
11620 @ManageTransactions("InsertOp")
11621 def Export(self, theObject, theFileName, theFormatName):
11623 Export the given shape into a file with given name.
11625 Note: this function is deprecated, it is kept for backward compatibility only
11626 Use Export<FormatName> instead, where <FormatName> is a name of desirable format to export.
11629 theObject Shape to be stored in the file.
11630 theFileName Name of the file to store the given shape in.
11631 theFormatName Specify format for the shape storage.
11632 Available formats can be obtained with
11633 geompy.InsertOp.ExportTranslators()[0] method.
11635 # Example: see GEOM_TestOthers.py
11637 WARNING: Function Export is deprecated, use Export<FormatName> instead,
11638 where <FormatName> is a name of desirable format for exporting.
11640 self.InsertOp.Export(theObject, theFileName, theFormatName)
11641 if self.InsertOp.IsDone() == 0:
11642 raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode()
11646 # end of l2_import_export
11649 ## @addtogroup l3_blocks
11652 ## Create a quadrangle face from four edges. Order of Edges is not
11653 # important. It is not necessary that edges share the same vertex.
11654 # @param E1,E2,E3,E4 Edges for the face bound.
11655 # @param theName Object name; when specified, this parameter is used
11656 # for result publication in the study. Otherwise, if automatic
11657 # publication is switched on, default value is used for result name.
11659 # @return New GEOM.GEOM_Object, containing the created face.
11661 # @ref tui_building_by_blocks_page "Example"
11662 @ManageTransactions("BlocksOp")
11663 def MakeQuad(self, E1, E2, E3, E4, theName=None):
11665 Create a quadrangle face from four edges. Order of Edges is not
11666 important. It is not necessary that edges share the same vertex.
11669 E1,E2,E3,E4 Edges for the face bound.
11670 theName Object name; when specified, this parameter is used
11671 for result publication in the study. Otherwise, if automatic
11672 publication is switched on, default value is used for result name.
11675 New GEOM.GEOM_Object, containing the created face.
11678 qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
11680 # Example: see GEOM_Spanner.py
11681 anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
11682 RaiseIfFailed("MakeQuad", self.BlocksOp)
11683 self._autoPublish(anObj, theName, "quad")
11686 ## Create a quadrangle face on two edges.
11687 # The missing edges will be built by creating the shortest ones.
11688 # @param E1,E2 Two opposite edges for the face.
11689 # @param theName Object name; when specified, this parameter is used
11690 # for result publication in the study. Otherwise, if automatic
11691 # publication is switched on, default value is used for result name.
11693 # @return New GEOM.GEOM_Object, containing the created face.
11695 # @ref tui_building_by_blocks_page "Example"
11696 @ManageTransactions("BlocksOp")
11697 def MakeQuad2Edges(self, E1, E2, theName=None):
11699 Create a quadrangle face on two edges.
11700 The missing edges will be built by creating the shortest ones.
11703 E1,E2 Two opposite edges for the face.
11704 theName Object name; when specified, this parameter is used
11705 for result publication in the study. Otherwise, if automatic
11706 publication is switched on, default value is used for result name.
11709 New GEOM.GEOM_Object, containing the created face.
11713 p1 = geompy.MakeVertex( 0., 0., 0.)
11714 p2 = geompy.MakeVertex(150., 30., 0.)
11715 p3 = geompy.MakeVertex( 0., 120., 50.)
11716 p4 = geompy.MakeVertex( 0., 40., 70.)
11718 edge1 = geompy.MakeEdge(p1, p2)
11719 edge2 = geompy.MakeEdge(p3, p4)
11720 # create a quadrangle face from two edges
11721 qface2 = geompy.MakeQuad2Edges(edge1, edge2)
11723 # Example: see GEOM_Spanner.py
11724 anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
11725 RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
11726 self._autoPublish(anObj, theName, "quad")
11729 ## Create a quadrangle face with specified corners.
11730 # The missing edges will be built by creating the shortest ones.
11731 # @param V1,V2,V3,V4 Corner vertices for the face.
11732 # @param theName Object name; when specified, this parameter is used
11733 # for result publication in the study. Otherwise, if automatic
11734 # publication is switched on, default value is used for result name.
11736 # @return New GEOM.GEOM_Object, containing the created face.
11738 # @ref tui_building_by_blocks_page "Example 1"
11739 # \n @ref swig_MakeQuad4Vertices "Example 2"
11740 @ManageTransactions("BlocksOp")
11741 def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
11743 Create a quadrangle face with specified corners.
11744 The missing edges will be built by creating the shortest ones.
11747 V1,V2,V3,V4 Corner vertices for the face.
11748 theName Object name; when specified, this parameter is used
11749 for result publication in the study. Otherwise, if automatic
11750 publication is switched on, default value is used for result name.
11753 New GEOM.GEOM_Object, containing the created face.
11757 p1 = geompy.MakeVertex( 0., 0., 0.)
11758 p2 = geompy.MakeVertex(150., 30., 0.)
11759 p3 = geompy.MakeVertex( 0., 120., 50.)
11760 p4 = geompy.MakeVertex( 0., 40., 70.)
11761 # create a quadrangle from four points in its corners
11762 qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
11764 # Example: see GEOM_Spanner.py
11765 anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
11766 RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
11767 self._autoPublish(anObj, theName, "quad")
11770 ## Create a hexahedral solid, bounded by the six given faces. Order of
11771 # faces is not important. It is not necessary that Faces share the same edge.
11772 # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
11773 # @param theName Object name; when specified, this parameter is used
11774 # for result publication in the study. Otherwise, if automatic
11775 # publication is switched on, default value is used for result name.
11777 # @return New GEOM.GEOM_Object, containing the created solid.
11779 # @ref tui_building_by_blocks_page "Example 1"
11780 # \n @ref swig_MakeHexa "Example 2"
11781 @ManageTransactions("BlocksOp")
11782 def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
11784 Create a hexahedral solid, bounded by the six given faces. Order of
11785 faces is not important. It is not necessary that Faces share the same edge.
11788 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
11789 theName Object name; when specified, this parameter is used
11790 for result publication in the study. Otherwise, if automatic
11791 publication is switched on, default value is used for result name.
11794 New GEOM.GEOM_Object, containing the created solid.
11797 solid = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
11799 # Example: see GEOM_Spanner.py
11800 anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
11801 RaiseIfFailed("MakeHexa", self.BlocksOp)
11802 self._autoPublish(anObj, theName, "hexa")
11805 ## Create a hexahedral solid between two given faces.
11806 # The missing faces will be built by creating the smallest ones.
11807 # @param F1,F2 Two opposite faces for the hexahedral solid.
11808 # @param theName Object name; when specified, this parameter is used
11809 # for result publication in the study. Otherwise, if automatic
11810 # publication is switched on, default value is used for result name.
11812 # @return New GEOM.GEOM_Object, containing the created solid.
11814 # @ref tui_building_by_blocks_page "Example 1"
11815 # \n @ref swig_MakeHexa2Faces "Example 2"
11816 @ManageTransactions("BlocksOp")
11817 def MakeHexa2Faces(self, F1, F2, theName=None):
11819 Create a hexahedral solid between two given faces.
11820 The missing faces will be built by creating the smallest ones.
11823 F1,F2 Two opposite faces for the hexahedral solid.
11824 theName Object name; when specified, this parameter is used
11825 for result publication in the study. Otherwise, if automatic
11826 publication is switched on, default value is used for result name.
11829 New GEOM.GEOM_Object, containing the created solid.
11832 solid1 = geompy.MakeHexa2Faces(qface1, qface2)
11834 # Example: see GEOM_Spanner.py
11835 anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
11836 RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
11837 self._autoPublish(anObj, theName, "hexa")
11843 ## @addtogroup l3_blocks_op
11846 ## Get a vertex, found in the given shape by its coordinates.
11847 # @param theShape Block or a compound of blocks.
11848 # @param theX,theY,theZ Coordinates of the sought vertex.
11849 # @param theEpsilon Maximum allowed distance between the resulting
11850 # vertex and point with the given coordinates.
11851 # @param theName Object name; when specified, this parameter is used
11852 # for result publication in the study. Otherwise, if automatic
11853 # publication is switched on, default value is used for result name.
11855 # @return New GEOM.GEOM_Object, containing the found vertex.
11857 # @ref swig_GetPoint "Example"
11858 @ManageTransactions("BlocksOp")
11859 def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
11861 Get a vertex, found in the given shape by its coordinates.
11864 theShape Block or a compound of blocks.
11865 theX,theY,theZ Coordinates of the sought vertex.
11866 theEpsilon Maximum allowed distance between the resulting
11867 vertex and point with the given coordinates.
11868 theName Object name; when specified, this parameter is used
11869 for result publication in the study. Otherwise, if automatic
11870 publication is switched on, default value is used for result name.
11873 New GEOM.GEOM_Object, containing the found vertex.
11876 pnt = geompy.GetPoint(shape, -50, 50, 50, 0.01)
11878 # Example: see GEOM_TestOthers.py
11879 anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
11880 RaiseIfFailed("GetPoint", self.BlocksOp)
11881 self._autoPublish(anObj, theName, "vertex")
11884 ## Find a vertex of the given shape, which has minimal distance to the given point.
11885 # @param theShape Any shape.
11886 # @param thePoint Point, close to the desired vertex.
11887 # @param theName Object name; when specified, this parameter is used
11888 # for result publication in the study. Otherwise, if automatic
11889 # publication is switched on, default value is used for result name.
11891 # @return New GEOM.GEOM_Object, containing the found vertex.
11893 # @ref swig_GetVertexNearPoint "Example"
11894 @ManageTransactions("BlocksOp")
11895 def GetVertexNearPoint(self, theShape, thePoint, theName=None):
11897 Find a vertex of the given shape, which has minimal distance to the given point.
11900 theShape Any shape.
11901 thePoint Point, close to the desired vertex.
11902 theName Object name; when specified, this parameter is used
11903 for result publication in the study. Otherwise, if automatic
11904 publication is switched on, default value is used for result name.
11907 New GEOM.GEOM_Object, containing the found vertex.
11910 pmidle = geompy.MakeVertex(50, 0, 50)
11911 edge1 = geompy.GetEdgeNearPoint(blocksComp, pmidle)
11913 # Example: see GEOM_TestOthers.py
11914 anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
11915 RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
11916 self._autoPublish(anObj, theName, "vertex")
11919 ## Get an edge, found in the given shape by two given vertices.
11920 # @param theShape Block or a compound of blocks.
11921 # @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
11922 # @param theName Object name; when specified, this parameter is used
11923 # for result publication in the study. Otherwise, if automatic
11924 # publication is switched on, default value is used for result name.
11926 # @return New GEOM.GEOM_Object, containing the found edge.
11928 # @ref swig_GetEdge "Example"
11929 @ManageTransactions("BlocksOp")
11930 def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
11932 Get an edge, found in the given shape by two given vertices.
11935 theShape Block or a compound of blocks.
11936 thePoint1,thePoint2 Points, close to the ends of the desired edge.
11937 theName Object name; when specified, this parameter is used
11938 for result publication in the study. Otherwise, if automatic
11939 publication is switched on, default value is used for result name.
11942 New GEOM.GEOM_Object, containing the found edge.
11944 # Example: see GEOM_Spanner.py
11945 anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
11946 RaiseIfFailed("GetEdge", self.BlocksOp)
11947 self._autoPublish(anObj, theName, "edge")
11950 ## Find an edge of the given shape, which has minimal distance to the given point.
11951 # @param theShape Block or a compound of blocks.
11952 # @param thePoint Point, close to the desired edge.
11953 # @param theName Object name; when specified, this parameter is used
11954 # for result publication in the study. Otherwise, if automatic
11955 # publication is switched on, default value is used for result name.
11957 # @return New GEOM.GEOM_Object, containing the found edge.
11959 # @ref swig_GetEdgeNearPoint "Example"
11960 @ManageTransactions("BlocksOp")
11961 def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
11963 Find an edge of the given shape, which has minimal distance to the given point.
11966 theShape Block or a compound of blocks.
11967 thePoint Point, close to the desired edge.
11968 theName Object name; when specified, this parameter is used
11969 for result publication in the study. Otherwise, if automatic
11970 publication is switched on, default value is used for result name.
11973 New GEOM.GEOM_Object, containing the found edge.
11975 # Example: see GEOM_TestOthers.py
11976 anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
11977 RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
11978 self._autoPublish(anObj, theName, "edge")
11981 ## Returns a face, found in the given shape by four given corner vertices.
11982 # @param theShape Block or a compound of blocks.
11983 # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
11984 # @param theName Object name; when specified, this parameter is used
11985 # for result publication in the study. Otherwise, if automatic
11986 # publication is switched on, default value is used for result name.
11988 # @return New GEOM.GEOM_Object, containing the found face.
11990 # @ref swig_todo "Example"
11991 @ManageTransactions("BlocksOp")
11992 def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
11994 Returns a face, found in the given shape by four given corner vertices.
11997 theShape Block or a compound of blocks.
11998 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
11999 theName Object name; when specified, this parameter is used
12000 for result publication in the study. Otherwise, if automatic
12001 publication is switched on, default value is used for result name.
12004 New GEOM.GEOM_Object, containing the found face.
12006 # Example: see GEOM_Spanner.py
12007 anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
12008 RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
12009 self._autoPublish(anObj, theName, "face")
12012 ## Get a face of block, found in the given shape by two given edges.
12013 # @param theShape Block or a compound of blocks.
12014 # @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
12015 # @param theName Object name; when specified, this parameter is used
12016 # for result publication in the study. Otherwise, if automatic
12017 # publication is switched on, default value is used for result name.
12019 # @return New GEOM.GEOM_Object, containing the found face.
12021 # @ref swig_todo "Example"
12022 @ManageTransactions("BlocksOp")
12023 def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
12025 Get a face of block, found in the given shape by two given edges.
12028 theShape Block or a compound of blocks.
12029 theEdge1,theEdge2 Edges, close to the edges of the desired face.
12030 theName Object name; when specified, this parameter is used
12031 for result publication in the study. Otherwise, if automatic
12032 publication is switched on, default value is used for result name.
12035 New GEOM.GEOM_Object, containing the found face.
12037 # Example: see GEOM_Spanner.py
12038 anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
12039 RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
12040 self._autoPublish(anObj, theName, "face")
12043 ## Find a face, opposite to the given one in the given block.
12044 # @param theBlock Must be a hexahedral solid.
12045 # @param theFace Face of \a theBlock, opposite to the desired face.
12046 # @param theName Object name; when specified, this parameter is used
12047 # for result publication in the study. Otherwise, if automatic
12048 # publication is switched on, default value is used for result name.
12050 # @return New GEOM.GEOM_Object, containing the found face.
12052 # @ref swig_GetOppositeFace "Example"
12053 @ManageTransactions("BlocksOp")
12054 def GetOppositeFace(self, theBlock, theFace, theName=None):
12056 Find a face, opposite to the given one in the given block.
12059 theBlock Must be a hexahedral solid.
12060 theFace Face of theBlock, opposite to the desired face.
12061 theName Object name; when specified, this parameter is used
12062 for result publication in the study. Otherwise, if automatic
12063 publication is switched on, default value is used for result name.
12066 New GEOM.GEOM_Object, containing the found face.
12068 # Example: see GEOM_Spanner.py
12069 anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
12070 RaiseIfFailed("GetOppositeFace", self.BlocksOp)
12071 self._autoPublish(anObj, theName, "face")
12074 ## Find a face of the given shape, which has minimal distance to the given point.
12075 # @param theShape Block or a compound of blocks.
12076 # @param thePoint Point, close to the desired face.
12077 # @param theName Object name; when specified, this parameter is used
12078 # for result publication in the study. Otherwise, if automatic
12079 # publication is switched on, default value is used for result name.
12081 # @return New GEOM.GEOM_Object, containing the found face.
12083 # @ref swig_GetFaceNearPoint "Example"
12084 @ManageTransactions("BlocksOp")
12085 def GetFaceNearPoint(self, theShape, thePoint, theName=None):
12087 Find a face of the given shape, which has minimal distance to the given point.
12090 theShape Block or a compound of blocks.
12091 thePoint Point, close to the desired face.
12092 theName Object name; when specified, this parameter is used
12093 for result publication in the study. Otherwise, if automatic
12094 publication is switched on, default value is used for result name.
12097 New GEOM.GEOM_Object, containing the found face.
12099 # Example: see GEOM_Spanner.py
12100 anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
12101 RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
12102 self._autoPublish(anObj, theName, "face")
12105 ## Find a face of block, whose outside normale has minimal angle with the given vector.
12106 # @param theBlock Block or a compound of blocks.
12107 # @param theVector Vector, close to the normale of the desired face.
12108 # @param theName Object name; when specified, this parameter is used
12109 # for result publication in the study. Otherwise, if automatic
12110 # publication is switched on, default value is used for result name.
12112 # @return New GEOM.GEOM_Object, containing the found face.
12114 # @ref swig_todo "Example"
12115 @ManageTransactions("BlocksOp")
12116 def GetFaceByNormale(self, theBlock, theVector, theName=None):
12118 Find a face of block, whose outside normale has minimal angle with the given vector.
12121 theBlock Block or a compound of blocks.
12122 theVector Vector, close to the normale of the desired face.
12123 theName Object name; when specified, this parameter is used
12124 for result publication in the study. Otherwise, if automatic
12125 publication is switched on, default value is used for result name.
12128 New GEOM.GEOM_Object, containing the found face.
12130 # Example: see GEOM_Spanner.py
12131 anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
12132 RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
12133 self._autoPublish(anObj, theName, "face")
12136 ## Find all sub-shapes of type \a theShapeType of the given shape,
12137 # which have minimal distance to the given point.
12138 # @param theShape Any shape.
12139 # @param thePoint Point, close to the desired shape.
12140 # @param theShapeType Defines what kind of sub-shapes is searched GEOM::shape_type
12141 # @param theTolerance The tolerance for distances comparison. All shapes
12142 # with distances to the given point in interval
12143 # [minimal_distance, minimal_distance + theTolerance] will be gathered.
12144 # @param theName Object name; when specified, this parameter is used
12145 # for result publication in the study. Otherwise, if automatic
12146 # publication is switched on, default value is used for result name.
12148 # @return New GEOM_Object, containing a group of all found shapes.
12150 # @ref swig_GetShapesNearPoint "Example"
12151 @ManageTransactions("BlocksOp")
12152 def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
12154 Find all sub-shapes of type theShapeType of the given shape,
12155 which have minimal distance to the given point.
12158 theShape Any shape.
12159 thePoint Point, close to the desired shape.
12160 theShapeType Defines what kind of sub-shapes is searched (see GEOM::shape_type)
12161 theTolerance The tolerance for distances comparison. All shapes
12162 with distances to the given point in interval
12163 [minimal_distance, minimal_distance + theTolerance] will be gathered.
12164 theName Object name; when specified, this parameter is used
12165 for result publication in the study. Otherwise, if automatic
12166 publication is switched on, default value is used for result name.
12169 New GEOM_Object, containing a group of all found shapes.
12171 # Example: see GEOM_TestOthers.py
12172 anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
12173 RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
12174 self._autoPublish(anObj, theName, "group")
12177 # end of l3_blocks_op
12180 ## @addtogroup l4_blocks_measure
12183 ## Check, if the compound of blocks is given.
12184 # To be considered as a compound of blocks, the
12185 # given shape must satisfy the following conditions:
12186 # - Each element of the compound should be a Block (6 faces).
12187 # - Each face should be a quadrangle, i.e. it should have only 1 wire
12188 # with 4 edges. If <VAR>theIsUseC1</VAR> is set to True and
12189 # there are more than 4 edges in the only wire of a face,
12190 # this face is considered to be quadrangle if it has 4 bounds
12191 # (1 or more edge) of C1 continuity.
12192 # - A connection between two Blocks should be an entire quadrangle face or an entire edge.
12193 # - The compound should be connexe.
12194 # - The glue between two quadrangle faces should be applied.
12195 # @param theCompound The compound to check.
12196 # @param theIsUseC1 Flag to check if there are 4 bounds on a face
12197 # taking into account C1 continuity.
12198 # @param theAngTolerance the angular tolerance to check if two neighbor
12199 # edges are codirectional in the common vertex with this
12200 # tolerance. This parameter is used only if
12201 # <VAR>theIsUseC1</VAR> is set to True.
12202 # @return TRUE, if the given shape is a compound of blocks.
12203 # If theCompound is not valid, prints all discovered errors.
12205 # @ref tui_check_compound_of_blocks_page "Example 1"
12206 # \n @ref swig_CheckCompoundOfBlocks "Example 2"
12207 @ManageTransactions("BlocksOp")
12208 def CheckCompoundOfBlocks(self,theCompound, theIsUseC1 = False,
12209 theAngTolerance = 1.e-12):
12211 Check, if the compound of blocks is given.
12212 To be considered as a compound of blocks, the
12213 given shape must satisfy the following conditions:
12214 - Each element of the compound should be a Block (6 faces).
12215 - Each face should be a quadrangle, i.e. it should have only 1 wire
12216 with 4 edges. If theIsUseC1 is set to True and
12217 there are more than 4 edges in the only wire of a face,
12218 this face is considered to be quadrangle if it has 4 bounds
12219 (1 or more edge) of C1 continuity.
12220 - A connection between two Blocks should be an entire quadrangle face or an entire edge.
12221 - The compound should be connexe.
12222 - The glue between two quadrangle faces should be applied.
12225 theCompound The compound to check.
12226 theIsUseC1 Flag to check if there are 4 bounds on a face
12227 taking into account C1 continuity.
12228 theAngTolerance the angular tolerance to check if two neighbor
12229 edges are codirectional in the common vertex with this
12230 tolerance. This parameter is used only if
12231 theIsUseC1 is set to True.
12234 TRUE, if the given shape is a compound of blocks.
12235 If theCompound is not valid, prints all discovered errors.
12237 # Example: see GEOM_Spanner.py
12240 aTolerance = theAngTolerance
12241 (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound, aTolerance)
12242 RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp)
12244 Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors)
12248 ## Retrieve all non blocks solids and faces from \a theShape.
12249 # @param theShape The shape to explore.
12250 # @param theIsUseC1 Flag to check if there are 4 bounds on a face
12251 # taking into account C1 continuity.
12252 # @param theAngTolerance the angular tolerance to check if two neighbor
12253 # edges are codirectional in the common vertex with this
12254 # tolerance. This parameter is used only if
12255 # <VAR>theIsUseC1</VAR> is set to True.
12256 # @param theName Object name; when specified, this parameter is used
12257 # for result publication in the study. Otherwise, if automatic
12258 # publication is switched on, default value is used for result name.
12260 # @return A tuple of two GEOM_Objects. The first object is a group of all
12261 # non block solids (= not 6 faces, or with 6 faces, but with the
12262 # presence of non-quadrangular faces). The second object is a
12263 # group of all non quadrangular faces (= faces with more then
12264 # 1 wire or, if <VAR>theIsUseC1</VAR> is set to True, faces
12265 # with 1 wire with not 4 edges that do not form 4 bounds of
12268 # @ref tui_get_non_blocks_page "Example 1"
12269 # \n @ref swig_GetNonBlocks "Example 2"
12270 @ManageTransactions("BlocksOp")
12271 def GetNonBlocks (self, theShape, theIsUseC1 = False,
12272 theAngTolerance = 1.e-12, theName=None):
12274 Retrieve all non blocks solids and faces from theShape.
12277 theShape The shape to explore.
12278 theIsUseC1 Flag to check if there are 4 bounds on a face
12279 taking into account C1 continuity.
12280 theAngTolerance the angular tolerance to check if two neighbor
12281 edges are codirectional in the common vertex with this
12282 tolerance. This parameter is used only if
12283 theIsUseC1 is set to True.
12284 theName Object name; when specified, this parameter is used
12285 for result publication in the study. Otherwise, if automatic
12286 publication is switched on, default value is used for result name.
12289 A tuple of two GEOM_Objects. The first object is a group of all
12290 non block solids (= not 6 faces, or with 6 faces, but with the
12291 presence of non-quadrangular faces). The second object is a
12292 group of all non quadrangular faces (= faces with more then
12293 1 wire or, if <VAR>theIsUseC1</VAR> is set to True, faces
12294 with 1 wire with not 4 edges that do not form 4 bounds of
12298 (res_sols, res_faces) = geompy.GetNonBlocks(myShape1)
12300 # Example: see GEOM_Spanner.py
12303 aTolerance = theAngTolerance
12304 aTuple = self.BlocksOp.GetNonBlocks(theShape, aTolerance)
12305 RaiseIfFailed("GetNonBlocks", self.BlocksOp)
12306 self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
12309 ## Remove all seam and degenerated edges from \a theShape.
12310 # Unite faces and edges, sharing one surface. It means that
12311 # this faces must have references to one C++ surface object (handle).
12312 # @param theShape The compound or single solid to remove irregular edges from.
12313 # @param doUnionFaces If True, then unite faces. If False (the default value),
12314 # do not unite faces.
12315 # @param theName Object name; when specified, this parameter is used
12316 # for result publication in the study. Otherwise, if automatic
12317 # publication is switched on, default value is used for result name.
12319 # @return Improved shape.
12321 # @ref swig_RemoveExtraEdges "Example"
12322 @ManageTransactions("BlocksOp")
12323 def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
12325 Remove all seam and degenerated edges from theShape.
12326 Unite faces and edges, sharing one surface. It means that
12327 this faces must have references to one C++ surface object (handle).
12330 theShape The compound or single solid to remove irregular edges from.
12331 doUnionFaces If True, then unite faces. If False (the default value),
12332 do not unite faces.
12333 theName Object name; when specified, this parameter is used
12334 for result publication in the study. Otherwise, if automatic
12335 publication is switched on, default value is used for result name.
12340 # Example: see GEOM_TestOthers.py
12341 nbFacesOptimum = -1 # -1 means do not unite faces
12342 if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
12343 anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
12344 RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
12345 self._autoPublish(anObj, theName, "removeExtraEdges")
12348 ## Performs union faces of \a theShape
12349 # Unite faces sharing one surface. It means that
12350 # these faces must have references to one C++ surface object (handle).
12351 # @param theShape The compound or single solid that contains faces
12352 # to perform union.
12353 # @param theName Object name; when specified, this parameter is used
12354 # for result publication in the study. Otherwise, if automatic
12355 # publication is switched on, default value is used for result name.
12357 # @return Improved shape.
12359 # @ref swig_UnionFaces "Example"
12360 @ManageTransactions("BlocksOp")
12361 def UnionFaces(self, theShape, theName=None):
12363 Performs union faces of theShape.
12364 Unite faces sharing one surface. It means that
12365 these faces must have references to one C++ surface object (handle).
12368 theShape The compound or single solid that contains faces
12370 theName Object name; when specified, this parameter is used
12371 for result publication in the study. Otherwise, if automatic
12372 publication is switched on, default value is used for result name.
12377 # Example: see GEOM_TestOthers.py
12378 anObj = self.BlocksOp.UnionFaces(theShape)
12379 RaiseIfFailed("UnionFaces", self.BlocksOp)
12380 self._autoPublish(anObj, theName, "unionFaces")
12383 ## Check, if the given shape is a blocks compound.
12384 # Fix all detected errors.
12385 # \note Single block can be also fixed by this method.
12386 # @param theShape The compound to check and improve.
12387 # @param theName Object name; when specified, this parameter is used
12388 # for result publication in the study. Otherwise, if automatic
12389 # publication is switched on, default value is used for result name.
12391 # @return Improved compound.
12393 # @ref swig_CheckAndImprove "Example"
12394 @ManageTransactions("BlocksOp")
12395 def CheckAndImprove(self, theShape, theName=None):
12397 Check, if the given shape is a blocks compound.
12398 Fix all detected errors.
12401 Single block can be also fixed by this method.
12404 theShape The compound to check and improve.
12405 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.
12412 # Example: see GEOM_TestOthers.py
12413 anObj = self.BlocksOp.CheckAndImprove(theShape)
12414 RaiseIfFailed("CheckAndImprove", self.BlocksOp)
12415 self._autoPublish(anObj, theName, "improved")
12418 # end of l4_blocks_measure
12421 ## @addtogroup l3_blocks_op
12424 ## Get all the blocks, contained in the given compound.
12425 # @param theCompound The compound to explode.
12426 # @param theMinNbFaces If solid has lower number of faces, it is not a block.
12427 # @param theMaxNbFaces If solid has higher number of faces, it is not a block.
12428 # @param theName Object name; when specified, this parameter is used
12429 # for result publication in the study. Otherwise, if automatic
12430 # publication is switched on, default value is used for result name.
12432 # @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
12434 # @return List of GEOM.GEOM_Object, containing the retrieved blocks.
12436 # @ref tui_explode_on_blocks "Example 1"
12437 # \n @ref swig_MakeBlockExplode "Example 2"
12438 @ManageTransactions("BlocksOp")
12439 def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
12441 Get all the blocks, contained in the given compound.
12444 theCompound The compound to explode.
12445 theMinNbFaces If solid has lower number of faces, it is not a block.
12446 theMaxNbFaces If solid has higher number of faces, it is not a block.
12447 theName Object name; when specified, this parameter is used
12448 for result publication in the study. Otherwise, if automatic
12449 publication is switched on, default value is used for result name.
12452 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
12455 List of GEOM.GEOM_Object, containing the retrieved blocks.
12457 # Example: see GEOM_TestOthers.py
12458 theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces)
12459 aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
12460 RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
12461 for anObj in aList:
12462 anObj.SetParameters(Parameters)
12464 self._autoPublish(aList, theName, "block")
12467 ## Find block, containing the given point inside its volume or on boundary.
12468 # @param theCompound Compound, to find block in.
12469 # @param thePoint Point, close to the desired block. If the point lays on
12470 # boundary between some blocks, we return block with nearest center.
12471 # @param theName Object name; when specified, this parameter is used
12472 # for result publication in the study. Otherwise, if automatic
12473 # publication is switched on, default value is used for result name.
12475 # @return New GEOM.GEOM_Object, containing the found block.
12477 # @ref swig_todo "Example"
12478 @ManageTransactions("BlocksOp")
12479 def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
12481 Find block, containing the given point inside its volume or on boundary.
12484 theCompound Compound, to find block in.
12485 thePoint Point, close to the desired block. If the point lays on
12486 boundary between some blocks, we return block with nearest center.
12487 theName Object name; when specified, this parameter is used
12488 for result publication in the study. Otherwise, if automatic
12489 publication is switched on, default value is used for result name.
12492 New GEOM.GEOM_Object, containing the found block.
12494 # Example: see GEOM_Spanner.py
12495 anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
12496 RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
12497 self._autoPublish(anObj, theName, "block")
12500 ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
12501 # @param theCompound Compound, to find block in.
12502 # @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
12503 # @param theName Object name; when specified, this parameter is used
12504 # for result publication in the study. Otherwise, if automatic
12505 # publication is switched on, default value is used for result name.
12507 # @return New GEOM.GEOM_Object, containing the found block.
12509 # @ref swig_GetBlockByParts "Example"
12510 @ManageTransactions("BlocksOp")
12511 def GetBlockByParts(self, theCompound, theParts, theName=None):
12513 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
12516 theCompound Compound, to find block in.
12517 theParts List of faces and/or edges and/or vertices to be parts of the found block.
12518 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.
12523 New GEOM_Object, containing the found block.
12525 # Example: see GEOM_TestOthers.py
12526 anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
12527 RaiseIfFailed("GetBlockByParts", self.BlocksOp)
12528 self._autoPublish(anObj, theName, "block")
12531 ## Return all blocks, containing all the elements, passed as the parts.
12532 # @param theCompound Compound, to find blocks in.
12533 # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
12534 # @param theName Object name; when specified, this parameter is used
12535 # for result publication in the study. Otherwise, if automatic
12536 # publication is switched on, default value is used for result name.
12538 # @return List of GEOM.GEOM_Object, containing the found blocks.
12540 # @ref swig_todo "Example"
12541 @ManageTransactions("BlocksOp")
12542 def GetBlocksByParts(self, theCompound, theParts, theName=None):
12544 Return all blocks, containing all the elements, passed as the parts.
12547 theCompound Compound, to find blocks in.
12548 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
12549 theName Object name; when specified, this parameter is used
12550 for result publication in the study. Otherwise, if automatic
12551 publication is switched on, default value is used for result name.
12554 List of GEOM.GEOM_Object, containing the found blocks.
12556 # Example: see GEOM_Spanner.py
12557 aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
12558 RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
12559 self._autoPublish(aList, theName, "block")
12562 ## Multi-transformate block and glue the result.
12563 # Transformation is defined so, as to superpose direction faces.
12564 # @param Block Hexahedral solid to be multi-transformed.
12565 # @param DirFace1 ID of First direction face.
12566 # @param DirFace2 ID of Second direction face.
12567 # @param NbTimes Quantity of transformations to be done.
12568 # @param theName Object name; when specified, this parameter is used
12569 # for result publication in the study. Otherwise, if automatic
12570 # publication is switched on, default value is used for result name.
12572 # @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
12574 # @return New GEOM.GEOM_Object, containing the result shape.
12576 # @ref tui_multi_transformation "Example"
12577 @ManageTransactions("BlocksOp")
12578 def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
12580 Multi-transformate block and glue the result.
12581 Transformation is defined so, as to superpose direction faces.
12584 Block Hexahedral solid to be multi-transformed.
12585 DirFace1 ID of First direction face.
12586 DirFace2 ID of Second direction face.
12587 NbTimes Quantity of transformations to be done.
12588 theName Object name; when specified, this parameter is used
12589 for result publication in the study. Otherwise, if automatic
12590 publication is switched on, default value is used for result name.
12593 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
12596 New GEOM.GEOM_Object, containing the result shape.
12598 # Example: see GEOM_Spanner.py
12599 DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes)
12600 anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
12601 RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
12602 anObj.SetParameters(Parameters)
12603 self._autoPublish(anObj, theName, "transformed")
12606 ## Multi-transformate block and glue the result.
12607 # @param Block Hexahedral solid to be multi-transformed.
12608 # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
12609 # @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
12610 # @param NbTimesU,NbTimesV Quantity of transformations to be done.
12611 # @param theName Object name; when specified, this parameter is used
12612 # for result publication in the study. Otherwise, if automatic
12613 # publication is switched on, default value is used for result name.
12615 # @return New GEOM.GEOM_Object, containing the result shape.
12617 # @ref tui_multi_transformation "Example"
12618 @ManageTransactions("BlocksOp")
12619 def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
12620 DirFace1V, DirFace2V, NbTimesV, theName=None):
12622 Multi-transformate block and glue the result.
12625 Block Hexahedral solid to be multi-transformed.
12626 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
12627 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
12628 NbTimesU,NbTimesV Quantity of transformations to be done.
12629 theName Object name; when specified, this parameter is used
12630 for result publication in the study. Otherwise, if automatic
12631 publication is switched on, default value is used for result name.
12634 New GEOM.GEOM_Object, containing the result shape.
12636 # Example: see GEOM_Spanner.py
12637 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters(
12638 DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV)
12639 anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
12640 DirFace1V, DirFace2V, NbTimesV)
12641 RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
12642 anObj.SetParameters(Parameters)
12643 self._autoPublish(anObj, theName, "transformed")
12646 ## Build all possible propagation groups.
12647 # Propagation group is a set of all edges, opposite to one (main)
12648 # edge of this group directly or through other opposite edges.
12649 # Notion of Opposite Edge make sence only on quadrangle face.
12650 # @param theShape Shape to build propagation groups on.
12651 # @param theName Object name; when specified, this parameter is used
12652 # for result publication in the study. Otherwise, if automatic
12653 # publication is switched on, default value is used for result name.
12655 # @return List of GEOM.GEOM_Object, each of them is a propagation group.
12657 # @ref swig_Propagate "Example"
12658 @ManageTransactions("BlocksOp")
12659 def Propagate(self, theShape, theName=None):
12661 Build all possible propagation groups.
12662 Propagation group is a set of all edges, opposite to one (main)
12663 edge of this group directly or through other opposite edges.
12664 Notion of Opposite Edge make sence only on quadrangle face.
12667 theShape Shape to build propagation groups on.
12668 theName Object name; when specified, this parameter is used
12669 for result publication in the study. Otherwise, if automatic
12670 publication is switched on, default value is used for result name.
12673 List of GEOM.GEOM_Object, each of them is a propagation group.
12675 # Example: see GEOM_TestOthers.py
12676 listChains = self.BlocksOp.Propagate(theShape)
12677 RaiseIfFailed("Propagate", self.BlocksOp)
12678 self._autoPublish(listChains, theName, "propagate")
12681 # end of l3_blocks_op
12684 ## @addtogroup l3_groups
12687 ## Creates a new group which will store sub-shapes of theMainShape
12688 # @param theMainShape is a GEOM object on which the group is selected
12689 # @param theShapeType defines a shape type of the group (see GEOM::shape_type)
12690 # @param theName Object name; when specified, this parameter is used
12691 # for result publication in the study. Otherwise, if automatic
12692 # publication is switched on, default value is used for result name.
12694 # @return a newly created GEOM group (GEOM.GEOM_Object)
12696 # @ref tui_working_with_groups_page "Example 1"
12697 # \n @ref swig_CreateGroup "Example 2"
12698 @ManageTransactions("GroupOp")
12699 def CreateGroup(self, theMainShape, theShapeType, theName=None):
12701 Creates a new group which will store sub-shapes of theMainShape
12704 theMainShape is a GEOM object on which the group is selected
12705 theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
12706 "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
12707 theName Object name; when specified, this parameter is used
12708 for result publication in the study. Otherwise, if automatic
12709 publication is switched on, default value is used for result name.
12712 a newly created GEOM group
12715 group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
12718 # Example: see GEOM_TestOthers.py
12719 anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
12720 RaiseIfFailed("CreateGroup", self.GroupOp)
12721 self._autoPublish(anObj, theName, "group")
12724 ## Adds a sub-object with ID theSubShapeId to the group
12725 # @param theGroup is a GEOM group to which the new sub-shape is added
12726 # @param theSubShapeID is a sub-shape ID in the main object.
12727 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
12729 # @ref tui_working_with_groups_page "Example"
12730 @ManageTransactions("GroupOp")
12731 def AddObject(self,theGroup, theSubShapeID):
12733 Adds a sub-object with ID theSubShapeId to the group
12736 theGroup is a GEOM group to which the new sub-shape is added
12737 theSubShapeID is a sub-shape ID in the main object.
12740 Use method GetSubShapeID() to get an unique ID of the sub-shape
12742 # Example: see GEOM_TestOthers.py
12743 self.GroupOp.AddObject(theGroup, theSubShapeID)
12744 if self.GroupOp.GetErrorCode() != "PAL_ELEMENT_ALREADY_PRESENT":
12745 RaiseIfFailed("AddObject", self.GroupOp)
12749 ## Removes a sub-object with ID \a theSubShapeId from the group
12750 # @param theGroup is a GEOM group from which the new sub-shape is removed
12751 # @param theSubShapeID is a sub-shape ID in the main object.
12752 # \note Use method GetSubShapeID() to get an unique ID of the sub-shape
12754 # @ref tui_working_with_groups_page "Example"
12755 @ManageTransactions("GroupOp")
12756 def RemoveObject(self,theGroup, theSubShapeID):
12758 Removes a sub-object with ID theSubShapeId from the group
12761 theGroup is a GEOM group from which the new sub-shape is removed
12762 theSubShapeID is a sub-shape ID in the main object.
12765 Use method GetSubShapeID() to get an unique ID of the sub-shape
12767 # Example: see GEOM_TestOthers.py
12768 self.GroupOp.RemoveObject(theGroup, theSubShapeID)
12769 RaiseIfFailed("RemoveObject", self.GroupOp)
12772 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12773 # @param theGroup is a GEOM group to which the new sub-shapes are added.
12774 # @param theSubShapes is a list of sub-shapes to be added.
12776 # @ref tui_working_with_groups_page "Example"
12777 @ManageTransactions("GroupOp")
12778 def UnionList (self,theGroup, theSubShapes):
12780 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12783 theGroup is a GEOM group to which the new sub-shapes are added.
12784 theSubShapes is a list of sub-shapes to be added.
12786 # Example: see GEOM_TestOthers.py
12787 self.GroupOp.UnionList(theGroup, theSubShapes)
12788 RaiseIfFailed("UnionList", self.GroupOp)
12791 ## Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12792 # @param theGroup is a GEOM group to which the new sub-shapes are added.
12793 # @param theSubShapes is a list of indices of sub-shapes to be added.
12795 # @ref swig_UnionIDs "Example"
12796 @ManageTransactions("GroupOp")
12797 def UnionIDs(self,theGroup, theSubShapes):
12799 Adds to the group all the given shapes. No errors, if some shapes are alredy included.
12802 theGroup is a GEOM group to which the new sub-shapes are added.
12803 theSubShapes is a list of indices of sub-shapes to be added.
12805 # Example: see GEOM_TestOthers.py
12806 self.GroupOp.UnionIDs(theGroup, theSubShapes)
12807 RaiseIfFailed("UnionIDs", self.GroupOp)
12810 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
12811 # @param theGroup is a GEOM group from which the sub-shapes are removed.
12812 # @param theSubShapes is a list of sub-shapes to be removed.
12814 # @ref tui_working_with_groups_page "Example"
12815 @ManageTransactions("GroupOp")
12816 def DifferenceList (self,theGroup, theSubShapes):
12818 Removes from the group all the given shapes. No errors, if some shapes are not included.
12821 theGroup is a GEOM group from which the sub-shapes are removed.
12822 theSubShapes is a list of sub-shapes to be removed.
12824 # Example: see GEOM_TestOthers.py
12825 self.GroupOp.DifferenceList(theGroup, theSubShapes)
12826 RaiseIfFailed("DifferenceList", self.GroupOp)
12829 ## Removes from the group all the given shapes. No errors, if some shapes are not included.
12830 # @param theGroup is a GEOM group from which the sub-shapes are removed.
12831 # @param theSubShapes is a list of indices of sub-shapes to be removed.
12833 # @ref swig_DifferenceIDs "Example"
12834 @ManageTransactions("GroupOp")
12835 def DifferenceIDs(self,theGroup, theSubShapes):
12837 Removes from the group all the given shapes. No errors, if some shapes are not included.
12840 theGroup is a GEOM group from which the sub-shapes are removed.
12841 theSubShapes is a list of indices of sub-shapes to be removed.
12843 # Example: see GEOM_TestOthers.py
12844 self.GroupOp.DifferenceIDs(theGroup, theSubShapes)
12845 RaiseIfFailed("DifferenceIDs", self.GroupOp)
12848 ## Union of two groups.
12849 # New group is created. It will contain all entities
12850 # which are present in groups theGroup1 and theGroup2.
12851 # @param theGroup1, theGroup2 are the initial GEOM groups
12852 # to create the united group from.
12853 # @param theName Object name; when specified, this parameter is used
12854 # for result publication in the study. Otherwise, if automatic
12855 # publication is switched on, default value is used for result name.
12857 # @return a newly created GEOM group.
12859 # @ref tui_union_groups_anchor "Example"
12860 @ManageTransactions("GroupOp")
12861 def UnionGroups (self, theGroup1, theGroup2, theName=None):
12863 Union of two groups.
12864 New group is created. It will contain all entities
12865 which are present in groups theGroup1 and theGroup2.
12868 theGroup1, theGroup2 are the initial GEOM groups
12869 to create the united group from.
12870 theName Object name; when specified, this parameter is used
12871 for result publication in the study. Otherwise, if automatic
12872 publication is switched on, default value is used for result name.
12875 a newly created GEOM group.
12877 # Example: see GEOM_TestOthers.py
12878 aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
12879 RaiseIfFailed("UnionGroups", self.GroupOp)
12880 self._autoPublish(aGroup, theName, "group")
12883 ## Intersection of two groups.
12884 # New group is created. It will contain only those entities
12885 # which are present in both groups theGroup1 and theGroup2.
12886 # @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
12887 # @param theName Object name; when specified, this parameter is used
12888 # for result publication in the study. Otherwise, if automatic
12889 # publication is switched on, default value is used for result name.
12891 # @return a newly created GEOM group.
12893 # @ref tui_intersect_groups_anchor "Example"
12894 @ManageTransactions("GroupOp")
12895 def IntersectGroups (self, theGroup1, theGroup2, theName=None):
12897 Intersection of two groups.
12898 New group is created. It will contain only those entities
12899 which are present in both groups theGroup1 and theGroup2.
12902 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
12903 theName Object name; when specified, this parameter is used
12904 for result publication in the study. Otherwise, if automatic
12905 publication is switched on, default value is used for result name.
12908 a newly created GEOM group.
12910 # Example: see GEOM_TestOthers.py
12911 aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
12912 RaiseIfFailed("IntersectGroups", self.GroupOp)
12913 self._autoPublish(aGroup, theName, "group")
12916 ## Cut of two groups.
12917 # New group is created. It will contain entities which are
12918 # present in group theGroup1 but are not present in group theGroup2.
12919 # @param theGroup1 is a GEOM group to include elements of.
12920 # @param theGroup2 is a GEOM group to exclude elements of.
12921 # @param theName Object name; when specified, this parameter is used
12922 # for result publication in the study. Otherwise, if automatic
12923 # publication is switched on, default value is used for result name.
12925 # @return a newly created GEOM group.
12927 # @ref tui_cut_groups_anchor "Example"
12928 @ManageTransactions("GroupOp")
12929 def CutGroups (self, theGroup1, theGroup2, theName=None):
12932 New group is created. It will contain entities which are
12933 present in group theGroup1 but are not present in group theGroup2.
12936 theGroup1 is a GEOM group to include elements of.
12937 theGroup2 is a GEOM group to exclude elements of.
12938 theName Object name; when specified, this parameter is used
12939 for result publication in the study. Otherwise, if automatic
12940 publication is switched on, default value is used for result name.
12943 a newly created GEOM group.
12945 # Example: see GEOM_TestOthers.py
12946 aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
12947 RaiseIfFailed("CutGroups", self.GroupOp)
12948 self._autoPublish(aGroup, theName, "group")
12951 ## Union of list of groups.
12952 # New group is created. It will contain all entities that are
12953 # present in groups listed in theGList.
12954 # @param theGList is a list of GEOM groups to create the united group from.
12955 # @param theName Object name; when specified, this parameter is used
12956 # for result publication in the study. Otherwise, if automatic
12957 # publication is switched on, default value is used for result name.
12959 # @return a newly created GEOM group.
12961 # @ref tui_union_groups_anchor "Example"
12962 @ManageTransactions("GroupOp")
12963 def UnionListOfGroups (self, theGList, theName=None):
12965 Union of list of groups.
12966 New group is created. It will contain all entities that are
12967 present in groups listed in theGList.
12970 theGList is a list of GEOM groups to create the united group from.
12971 theName Object name; when specified, this parameter is used
12972 for result publication in the study. Otherwise, if automatic
12973 publication is switched on, default value is used for result name.
12976 a newly created GEOM group.
12978 # Example: see GEOM_TestOthers.py
12979 aGroup = self.GroupOp.UnionListOfGroups(theGList)
12980 RaiseIfFailed("UnionListOfGroups", self.GroupOp)
12981 self._autoPublish(aGroup, theName, "group")
12984 ## Cut of lists of groups.
12985 # New group is created. It will contain only entities
12986 # which are present in groups listed in theGList.
12987 # @param theGList is a list of GEOM groups to include elements of.
12988 # @param theName Object name; when specified, this parameter is used
12989 # for result publication in the study. Otherwise, if automatic
12990 # publication is switched on, default value is used for result name.
12992 # @return a newly created GEOM group.
12994 # @ref tui_intersect_groups_anchor "Example"
12995 @ManageTransactions("GroupOp")
12996 def IntersectListOfGroups (self, theGList, theName=None):
12998 Cut of lists of groups.
12999 New group is created. It will contain only entities
13000 which are present in groups listed in theGList.
13003 theGList is a list of GEOM groups to include elements of.
13004 theName Object name; when specified, this parameter is used
13005 for result publication in the study. Otherwise, if automatic
13006 publication is switched on, default value is used for result name.
13009 a newly created GEOM group.
13011 # Example: see GEOM_TestOthers.py
13012 aGroup = self.GroupOp.IntersectListOfGroups(theGList)
13013 RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
13014 self._autoPublish(aGroup, theName, "group")
13017 ## Cut of lists of groups.
13018 # New group is created. It will contain only entities
13019 # which are present in groups listed in theGList1 but
13020 # are not present in groups from theGList2.
13021 # @param theGList1 is a list of GEOM groups to include elements of.
13022 # @param theGList2 is a list of GEOM groups to exclude elements of.
13023 # @param theName Object name; when specified, this parameter is used
13024 # for result publication in the study. Otherwise, if automatic
13025 # publication is switched on, default value is used for result name.
13027 # @return a newly created GEOM group.
13029 # @ref tui_cut_groups_anchor "Example"
13030 @ManageTransactions("GroupOp")
13031 def CutListOfGroups (self, theGList1, theGList2, theName=None):
13033 Cut of lists of groups.
13034 New group is created. It will contain only entities
13035 which are present in groups listed in theGList1 but
13036 are not present in groups from theGList2.
13039 theGList1 is a list of GEOM groups to include elements of.
13040 theGList2 is a list of GEOM groups to exclude elements of.
13041 theName Object name; when specified, this parameter is used
13042 for result publication in the study. Otherwise, if automatic
13043 publication is switched on, default value is used for result name.
13046 a newly created GEOM group.
13048 # Example: see GEOM_TestOthers.py
13049 aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
13050 RaiseIfFailed("CutListOfGroups", self.GroupOp)
13051 self._autoPublish(aGroup, theName, "group")
13054 ## Returns a list of sub-objects ID stored in the group
13055 # @param theGroup is a GEOM group for which a list of IDs is requested
13057 # @ref swig_GetObjectIDs "Example"
13058 @ManageTransactions("GroupOp")
13059 def GetObjectIDs(self,theGroup):
13061 Returns a list of sub-objects ID stored in the group
13064 theGroup is a GEOM group for which a list of IDs is requested
13066 # Example: see GEOM_TestOthers.py
13067 ListIDs = self.GroupOp.GetObjects(theGroup)
13068 RaiseIfFailed("GetObjects", self.GroupOp)
13071 ## Returns a type of sub-objects stored in the group
13072 # @param theGroup is a GEOM group which type is returned.
13074 # @ref swig_GetType "Example"
13075 @ManageTransactions("GroupOp")
13076 def GetType(self,theGroup):
13078 Returns a type of sub-objects stored in the group
13081 theGroup is a GEOM group which type is returned.
13083 # Example: see GEOM_TestOthers.py
13084 aType = self.GroupOp.GetType(theGroup)
13085 RaiseIfFailed("GetType", self.GroupOp)
13088 ## Convert a type of geom object from id to string value
13089 # @param theId is a GEOM obect type id.
13090 # @return type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
13091 # @ref swig_GetType "Example"
13092 def ShapeIdToType(self, theId):
13094 Convert a type of geom object from id to string value
13097 theId is a GEOM obect type id.
13100 type of geom object (POINT, VECTOR, PLANE, LINE, TORUS, ... )
13127 return "REVOLUTION"
13175 return "FREE_BOUNDS"
13183 return "THRUSECTIONS"
13185 return "COMPOUNDFILTER"
13187 return "SHAPES_ON_SHAPE"
13189 return "ELLIPSE_ARC"
13191 return "3DSKETCHER"
13197 return "PIPETSHAPE"
13198 return "Shape Id not exist."
13200 ## Returns a main shape associated with the group
13201 # @param theGroup is a GEOM group for which a main shape object is requested
13202 # @return a GEOM object which is a main shape for theGroup
13204 # @ref swig_GetMainShape "Example"
13205 @ManageTransactions("GroupOp")
13206 def GetMainShape(self,theGroup):
13208 Returns a main shape associated with the group
13211 theGroup is a GEOM group for which a main shape object is requested
13214 a GEOM object which is a main shape for theGroup
13216 Example of usage: BoxCopy = geompy.GetMainShape(CreateGroup)
13218 # Example: see GEOM_TestOthers.py
13219 anObj = self.GroupOp.GetMainShape(theGroup)
13220 RaiseIfFailed("GetMainShape", self.GroupOp)
13223 ## Create group of edges of theShape, whose length is in range [min_length, max_length].
13224 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
13225 # @param theShape given shape (see GEOM.GEOM_Object)
13226 # @param min_length minimum length of edges of theShape
13227 # @param max_length maximum length of edges of theShape
13228 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13229 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13230 # @param theName Object name; when specified, this parameter is used
13231 # for result publication in the study. Otherwise, if automatic
13232 # publication is switched on, default value is used for result name.
13234 # @return a newly created GEOM group of edges
13236 # @@ref swig_todo "Example"
13237 def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
13239 Create group of edges of theShape, whose length is in range [min_length, max_length].
13240 If include_min/max == 0, edges with length == min/max_length will not be included in result.
13243 theShape given shape
13244 min_length minimum length of edges of theShape
13245 max_length maximum length of edges of theShape
13246 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13247 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13248 theName Object name; when specified, this parameter is used
13249 for result publication in the study. Otherwise, if automatic
13250 publication is switched on, default value is used for result name.
13253 a newly created GEOM group of edges.
13255 edges = self.SubShapeAll(theShape, self.ShapeType["EDGE"])
13256 edges_in_range = []
13258 Props = self.BasicProperties(edge)
13259 if min_length <= Props[0] and Props[0] <= max_length:
13260 if (not include_min) and (min_length == Props[0]):
13263 if (not include_max) and (Props[0] == max_length):
13266 edges_in_range.append(edge)
13268 if len(edges_in_range) <= 0:
13269 print "No edges found by given criteria"
13272 # note: auto-publishing is done in self.CreateGroup()
13273 group_edges = self.CreateGroup(theShape, self.ShapeType["EDGE"], theName)
13274 self.UnionList(group_edges, edges_in_range)
13278 ## Create group of edges of selected shape, whose length is in range [min_length, max_length].
13279 # If include_min/max == 0, edges with length == min/max_length will not be included in result.
13280 # @param min_length minimum length of edges of selected shape
13281 # @param max_length maximum length of edges of selected shape
13282 # @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13283 # @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13284 # @return a newly created GEOM group of edges
13285 # @ref swig_todo "Example"
13286 def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1):
13288 Create group of edges of selected shape, whose length is in range [min_length, max_length].
13289 If include_min/max == 0, edges with length == min/max_length will not be included in result.
13292 min_length minimum length of edges of selected shape
13293 max_length maximum length of edges of selected shape
13294 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
13295 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
13298 a newly created GEOM group of edges.
13300 nb_selected = sg.SelectedCount()
13301 if nb_selected < 1:
13302 print "Select a shape before calling this function, please."
13304 if nb_selected > 1:
13305 print "Only one shape must be selected"
13308 id_shape = sg.getSelected(0)
13309 shape = IDToObject( id_shape )
13311 group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
13315 if include_min: left_str = " <= "
13316 if include_max: right_str = " <= "
13318 self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
13319 + left_str + "length" + right_str + `max_length`)
13321 sg.updateObjBrowser(1)
13328 #@@ insert new functions before this line @@ do not remove this line @@#
13330 ## Create a copy of the given object
13332 # @param theOriginal geometry object for copy
13333 # @param theName Object name; when specified, this parameter is used
13334 # for result publication in the study. Otherwise, if automatic
13335 # publication is switched on, default value is used for result name.
13337 # @return New GEOM_Object, containing the copied shape.
13339 # @ingroup l1_geomBuilder_auxiliary
13340 # @ref swig_MakeCopy "Example"
13341 @ManageTransactions("InsertOp")
13342 def MakeCopy(self, theOriginal, theName=None):
13344 Create a copy of the given object
13347 theOriginal geometry object for copy
13348 theName Object name; when specified, this parameter is used
13349 for result publication in the study. Otherwise, if automatic
13350 publication is switched on, default value is used for result name.
13353 New GEOM_Object, containing the copied shape.
13355 Example of usage: Copy = geompy.MakeCopy(Box)
13357 # Example: see GEOM_TestAll.py
13358 anObj = self.InsertOp.MakeCopy(theOriginal)
13359 RaiseIfFailed("MakeCopy", self.InsertOp)
13360 self._autoPublish(anObj, theName, "copy")
13363 ## Add Path to load python scripts from
13364 # @param Path a path to load python scripts from
13365 # @ingroup l1_geomBuilder_auxiliary
13366 def addPath(self,Path):
13368 Add Path to load python scripts from
13371 Path a path to load python scripts from
13373 if (sys.path.count(Path) < 1):
13374 sys.path.append(Path)
13378 ## Load marker texture from the file
13379 # @param Path a path to the texture file
13380 # @return unique texture identifier
13381 # @ingroup l1_geomBuilder_auxiliary
13382 @ManageTransactions("InsertOp")
13383 def LoadTexture(self, Path):
13385 Load marker texture from the file
13388 Path a path to the texture file
13391 unique texture identifier
13393 # Example: see GEOM_TestAll.py
13394 ID = self.InsertOp.LoadTexture(Path)
13395 RaiseIfFailed("LoadTexture", self.InsertOp)
13398 ## Get internal name of the object based on its study entry
13399 # @note This method does not provide an unique identifier of the geometry object.
13400 # @note This is internal function of GEOM component, though it can be used outside it for
13401 # appropriate reason (e.g. for identification of geometry object).
13402 # @param obj geometry object
13403 # @return unique object identifier
13404 # @ingroup l1_geomBuilder_auxiliary
13405 def getObjectID(self, obj):
13407 Get internal name of the object based on its study entry.
13408 Note: this method does not provide an unique identifier of the geometry object.
13409 It is an internal function of GEOM component, though it can be used outside GEOM for
13410 appropriate reason (e.g. for identification of geometry object).
13413 obj geometry object
13416 unique object identifier
13419 entry = salome.ObjectToID(obj)
13420 if entry is not None:
13421 lst = entry.split(":")
13423 ID = lst[-1] # -1 means last item in the list
13424 return "GEOM_" + ID
13429 ## Add marker texture. @a Width and @a Height parameters
13430 # specify width and height of the texture in pixels.
13431 # If @a RowData is @c True, @a Texture parameter should represent texture data
13432 # packed into the byte array. If @a RowData is @c False (default), @a Texture
13433 # parameter should be unpacked string, in which '1' symbols represent opaque
13434 # pixels and '0' represent transparent pixels of the texture bitmap.
13436 # @param Width texture width in pixels
13437 # @param Height texture height in pixels
13438 # @param Texture texture data
13439 # @param RowData if @c True, @a Texture data are packed in the byte stream
13440 # @return unique texture identifier
13441 # @ingroup l1_geomBuilder_auxiliary
13442 @ManageTransactions("InsertOp")
13443 def AddTexture(self, Width, Height, Texture, RowData=False):
13445 Add marker texture. Width and Height parameters
13446 specify width and height of the texture in pixels.
13447 If RowData is True, Texture parameter should represent texture data
13448 packed into the byte array. If RowData is False (default), Texture
13449 parameter should be unpacked string, in which '1' symbols represent opaque
13450 pixels and '0' represent transparent pixels of the texture bitmap.
13453 Width texture width in pixels
13454 Height texture height in pixels
13455 Texture texture data
13456 RowData if True, Texture data are packed in the byte stream
13459 return unique texture identifier
13461 if not RowData: Texture = PackData(Texture)
13462 ID = self.InsertOp.AddTexture(Width, Height, Texture)
13463 RaiseIfFailed("AddTexture", self.InsertOp)
13466 ## Transfer not topological data from one GEOM object to another.
13468 # @param theObjectFrom the source object of non-topological data
13469 # @param theObjectTo the destination object of non-topological data
13470 # @param theFindMethod method to search sub-shapes of theObjectFrom
13471 # in shape theObjectTo. Possible values are: GEOM.FSM_GetInPlace,
13472 # GEOM.FSM_GetInPlaceByHistory and GEOM.FSM_GetInPlace_Old.
13473 # Other values of GEOM.find_shape_method are not supported.
13475 # @return True in case of success; False otherwise.
13477 # @ingroup l1_geomBuilder_auxiliary
13479 # @ref swig_TransferData "Example"
13480 @ManageTransactions("InsertOp")
13481 def TransferData(self, theObjectFrom, theObjectTo,
13482 theFindMethod=GEOM.FSM_GetInPlace):
13484 Transfer not topological data from one GEOM object to another.
13487 theObjectFrom the source object of non-topological data
13488 theObjectTo the destination object of non-topological data
13489 theFindMethod method to search sub-shapes of theObjectFrom
13490 in shape theObjectTo. Possible values are:
13491 GEOM.FSM_GetInPlace, GEOM.FSM_GetInPlaceByHistory
13492 and GEOM.FSM_GetInPlace_Old. Other values of
13493 GEOM.find_shape_method are not supported.
13496 True in case of success; False otherwise.
13498 # Example: see GEOM_TestOthers.py
13500 # Example: see GEOM_TestAll.py
13501 isOk = self.InsertOp.TransferData(theObjectFrom,
13502 theObjectTo, theFindMethod)
13503 RaiseIfFailed("TransferData", self.InsertOp)
13506 ## Creates a new folder object. It is a container for any GEOM objects.
13507 # @param Name name of the container
13508 # @param Father parent object. If None,
13509 # folder under 'Geometry' root object will be created.
13510 # @return a new created folder
13511 # @ingroup l1_publish_data
13512 def NewFolder(self, Name, Father=None):
13514 Create a new folder object. It is an auxiliary container for any GEOM objects.
13517 Name name of the container
13518 Father parent object. If None,
13519 folder under 'Geometry' root object will be created.
13522 a new created folder
13524 if not Father: Father = self.father
13525 return self.CreateFolder(Name, Father)
13527 ## Move object to the specified folder
13528 # @param Object object to move
13529 # @param Folder target folder
13530 # @ingroup l1_publish_data
13531 def PutToFolder(self, Object, Folder):
13533 Move object to the specified folder
13536 Object object to move
13537 Folder target folder
13539 self.MoveToFolder(Object, Folder)
13542 ## Move list of objects to the specified folder
13543 # @param ListOfSO list of objects to move
13544 # @param Folder target folder
13545 # @ingroup l1_publish_data
13546 def PutListToFolder(self, ListOfSO, Folder):
13548 Move list of objects to the specified folder
13551 ListOfSO list of objects to move
13552 Folder target folder
13554 self.MoveListToFolder(ListOfSO, Folder)
13557 ## @addtogroup l2_field
13561 # @param shape the shape the field lies on
13562 # @param name the field name
13563 # @param type type of field data: 0 - bool, 1 - int, 2 - double, 3 - string
13564 # @param dimension dimension of the shape the field lies on
13565 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13566 # @param componentNames names of components
13567 # @return a created field
13568 @ManageTransactions("FieldOp")
13569 def CreateField(self, shape, name, type, dimension, componentNames):
13574 shape the shape the field lies on
13575 name the field name
13576 type type of field data
13577 dimension dimension of the shape the field lies on
13578 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13579 componentNames names of components
13584 if isinstance( type, int ):
13585 if type < 0 or type > 3:
13586 raise RuntimeError, "CreateField : Error: data type must be within [0-3] range"
13587 type = [GEOM.FDT_Bool,GEOM.FDT_Int,GEOM.FDT_Double,GEOM.FDT_String][type]
13589 f = self.FieldOp.CreateField( shape, name, type, dimension, componentNames)
13590 RaiseIfFailed("CreateField", self.FieldOp)
13592 geom._autoPublish( f, "", name)
13595 ## Removes a field from the GEOM component
13596 # @param field the field to remove
13597 def RemoveField(self, field):
13598 "Removes a field from the GEOM component"
13600 if isinstance( field, GEOM._objref_GEOM_Field ):
13601 geom.RemoveObject( field )
13602 elif isinstance( field, geomField ):
13603 geom.RemoveObject( field.field )
13605 raise RuntimeError, "RemoveField() : the object is not a field"
13608 ## Returns number of fields on a shape
13609 @ManageTransactions("FieldOp")
13610 def CountFields(self, shape):
13611 "Returns number of fields on a shape"
13612 nb = self.FieldOp.CountFields( shape )
13613 RaiseIfFailed("CountFields", self.FieldOp)
13616 ## Returns all fields on a shape
13617 @ManageTransactions("FieldOp")
13618 def GetFields(self, shape):
13619 "Returns all fields on a shape"
13620 ff = self.FieldOp.GetFields( shape )
13621 RaiseIfFailed("GetFields", self.FieldOp)
13624 ## Returns a field on a shape by its name
13625 @ManageTransactions("FieldOp")
13626 def GetField(self, shape, name):
13627 "Returns a field on a shape by its name"
13628 f = self.FieldOp.GetField( shape, name )
13629 RaiseIfFailed("GetField", self.FieldOp)
13637 # Register the new proxy for GEOM_Gen
13638 omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geomBuilder)
13641 ## Field on Geometry
13642 # @ingroup l2_field
13643 class geomField( GEOM._objref_GEOM_Field ):
13645 def __init__(self):
13646 GEOM._objref_GEOM_Field.__init__(self)
13647 self.field = GEOM._objref_GEOM_Field
13650 ## Returns the shape the field lies on
13651 def getShape(self):
13652 "Returns the shape the field lies on"
13653 return self.field.GetShape(self)
13655 ## Returns the field name
13657 "Returns the field name"
13658 return self.field.GetName(self)
13660 ## Returns type of field data as integer [0-3]
13662 "Returns type of field data"
13663 return self.field.GetDataType(self)._v
13665 ## Returns type of field data:
13666 # one of GEOM.FDT_Bool, GEOM.FDT_Int, GEOM.FDT_Double, GEOM.FDT_String
13667 def getTypeEnum(self):
13668 "Returns type of field data"
13669 return self.field.GetDataType(self)
13671 ## Returns dimension of the shape the field lies on:
13672 # 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape
13673 def getDimension(self):
13674 """Returns dimension of the shape the field lies on:
13675 0 - VERTEX, 1 - EDGE, 2 - FACE, 3 - SOLID, -1 - whole shape"""
13676 return self.field.GetDimension(self)
13678 ## Returns names of components
13679 def getComponents(self):
13680 "Returns names of components"
13681 return self.field.GetComponents(self)
13683 ## Adds a time step to the field
13684 # @param step the time step number further used as the step identifier
13685 # @param stamp the time step time
13686 # @param values the values of the time step
13687 def addStep(self, step, stamp, values):
13688 "Adds a time step to the field"
13689 stp = self.field.AddStep( self, step, stamp )
13691 raise RuntimeError, \
13692 "Field.addStep() : Error: step %s already exists in this field"%step
13694 geom._autoPublish( stp, "", "Step %s, %s"%(step,stamp))
13695 self.setValues( step, values )
13698 ## Remove a time step from the field
13699 def removeStep(self,step):
13700 "Remove a time step from the field"
13703 stepObj = self.field.GetStep( self, step )
13705 stepSO = geom.myStudy.FindObjectID( stepObj.GetStudyEntry() )
13708 #traceback.print_exc()
13710 self.field.RemoveStep( self, step )
13712 geom.myBuilder.RemoveObjectWithChildren( stepSO )
13715 ## Returns number of time steps in the field
13716 def countSteps(self):
13717 "Returns number of time steps in the field"
13718 return self.field.CountSteps(self)
13720 ## Returns a list of time step IDs in the field
13721 def getSteps(self):
13722 "Returns a list of time step IDs in the field"
13723 return self.field.GetSteps(self)
13725 ## Returns a time step by its ID
13726 def getStep(self,step):
13727 "Returns a time step by its ID"
13728 stp = self.field.GetStep(self, step)
13730 raise RuntimeError, "Step %s is missing from this field"%step
13733 ## Returns the time of the field step
13734 def getStamp(self,step):
13735 "Returns the time of the field step"
13736 return self.getStep(step).GetStamp()
13738 ## Changes the time of the field step
13739 def setStamp(self, step, stamp):
13740 "Changes the time of the field step"
13741 return self.getStep(step).SetStamp(stamp)
13743 ## Returns values of the field step
13744 def getValues(self, step):
13745 "Returns values of the field step"
13746 return self.getStep(step).GetValues()
13748 ## Changes values of the field step
13749 def setValues(self, step, values):
13750 "Changes values of the field step"
13751 stp = self.getStep(step)
13752 errBeg = "Field.setValues(values) : Error: "
13754 ok = stp.SetValues( values )
13755 except Exception, e:
13757 if excStr.find("WrongPythonType") > 0:
13758 raise RuntimeError, errBeg +\
13759 "wrong type of values, %s values are expected"%str(self.getTypeEnum())[4:]
13760 raise RuntimeError, errBeg + str(e)
13762 nbOK = self.field.GetArraySize(self)
13765 raise RuntimeError, errBeg + "len(values) must be %s but not %s"%(nbOK,nbKO)
13767 raise RuntimeError, errBeg + "failed"
13770 pass # end of class geomField
13772 # Register the new proxy for GEOM_Field
13773 omniORB.registerObjref(GEOM._objref_GEOM_Field._NP_RepositoryId, geomField)
13776 ## Create a new geomBuilder instance.The geomBuilder class provides the Python
13777 # interface to GEOM operations.
13782 # salome.salome_init()
13783 # from salome.geom import geomBuilder
13784 # geompy = geomBuilder.New(salome.myStudy)
13786 # @param study SALOME study, generally obtained by salome.myStudy.
13787 # @param instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
13788 # @return geomBuilder instance
13789 def New( study, instance=None):
13791 Create a new geomBuilder instance.The geomBuilder class provides the Python
13792 interface to GEOM operations.
13796 salome.salome_init()
13797 from salome.geom import geomBuilder
13798 geompy = geomBuilder.New(salome.myStudy)
13801 study SALOME study, generally obtained by salome.myStudy.
13802 instance CORBA proxy of GEOM Engine. If None, the default Engine is used.
13804 geomBuilder instance
13806 #print "New geomBuilder ", study, instance
13813 geom = geomBuilder()
13814 assert isinstance(geom,geomBuilder), "Geom engine class is %s but should be geomBuilder.geomBuilder. Import geomBuilder before creating the instance."%geom.__class__
13815 geom.init_geom(study)
13819 # Register methods from the plug-ins in the geomBuilder class
13820 plugins_var = os.environ.get( "GEOM_PluginsList" )
13823 if plugins_var is not None:
13824 plugins = plugins_var.split( ":" )
13825 plugins=filter(lambda x: len(x)>0, plugins)
13826 if plugins is not None:
13827 for pluginName in plugins:
13828 pluginBuilderName = pluginName + "Builder"
13830 exec( "from salome.%s.%s import *" % (pluginName, pluginBuilderName))
13831 except Exception, e:
13832 from salome_utils import verbose
13833 print "Exception while loading %s: %s" % ( pluginBuilderName, e )
13835 exec( "from salome.%s import %s" % (pluginName, pluginBuilderName))
13836 plugin = eval( pluginBuilderName )
13838 # add methods from plugin module to the geomBuilder class
13839 for k in dir( plugin ):
13840 if k[0] == '_': continue
13841 method = getattr( plugin, k )
13842 if type( method ).__name__ == 'function':
13843 if not hasattr( geomBuilder, k ):
13844 setattr( geomBuilder, k, method )