mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-01 04:10:34 +05:00
573 lines
29 KiB
Python
573 lines
29 KiB
Python
# -*- coding: iso-8859-1 -*-
|
|
# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
|
#
|
|
from GEOM import IAdvancedOperations
|
|
|
|
# Engine Library Name
|
|
__libraryName__ = "AdvancedEngine"
|
|
|
|
def GetAdvancedOperations(self):
|
|
anOp = self.GetPluginOperations(self.myStudyId, __libraryName__)
|
|
return anOp._narrow(IAdvancedOperations)
|
|
|
|
## Create a T-shape object with specified caracteristics for the main
|
|
# and the incident pipes (radius, width, half-length).
|
|
# The extremities of the main pipe are located on junctions points P1 and P2.
|
|
# The extremity of the incident pipe is located on junction point P3.
|
|
# If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
|
|
# the main plane of the T-shape is XOY.
|
|
#
|
|
# @param theR1 Internal radius of main pipe
|
|
# @param theW1 Width of main pipe
|
|
# @param theL1 Half-length of main pipe
|
|
# @param theR2 Internal radius of incident pipe (R2 < R1)
|
|
# @param theW2 Width of incident pipe (R2+W2 < R1+W1)
|
|
# @param theL2 Half-length of incident pipe
|
|
#
|
|
# @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
|
|
# @param theP1 1st junction point of main pipe
|
|
# @param theP2 2nd junction point of main pipe
|
|
# @param theP3 Junction point of incident pipe
|
|
#
|
|
# @param theRL Internal radius of left thickness reduction
|
|
# @param theWL Width of left thickness reduction
|
|
# @param theLtransL Length of left transition part
|
|
# @param theLthinL Length of left thin part
|
|
#
|
|
# @param theRR Internal radius of right thickness reduction
|
|
# @param theWR Width of right thickness reduction
|
|
# @param theLtransR Length of right transition part
|
|
# @param theLthinR Length of right thin part
|
|
#
|
|
# @param theRI Internal radius of incident thickness reduction
|
|
# @param theWI Width of incident thickness reduction
|
|
# @param theLtransI Length of incident transition part
|
|
# @param theLthinI Length of incident thin part
|
|
#
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
#
|
|
# @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
|
|
#
|
|
# @ref tui_creation_pipetshape "Example"
|
|
# @ingroup l4_advanced
|
|
def MakePipeTShape (self, theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theHexMesh=True, theP1=None, theP2=None, theP3=None,
|
|
theRL=0, theWL=0, theLtransL=0, theLthinL=0,
|
|
theRR=0, theWR=0, theLtransR=0, theLthinR=0,
|
|
theRI=0, theWI=0, theLtransI=0, theLthinI=0,
|
|
theName=None):
|
|
"""
|
|
Create a T-shape object with specified caracteristics for the main
|
|
and the incident pipes (radius, width, half-length).
|
|
The extremities of the main pipe are located on junctions points P1 and P2.
|
|
The extremity of the incident pipe is located on junction point P3.
|
|
If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
|
|
the main plane of the T-shape is XOY.
|
|
|
|
Parameters:
|
|
theR1 Internal radius of main pipe
|
|
theW1 Width of main pipe
|
|
theL1 Half-length of main pipe
|
|
theR2 Internal radius of incident pipe (R2 < R1)
|
|
theW2 Width of incident pipe (R2+W2 < R1+W1)
|
|
theL2 Half-length of incident pipe
|
|
theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
|
|
theP1 1st junction point of main pipe
|
|
theP2 2nd junction point of main pipe
|
|
theP3 Junction point of incident pipe
|
|
|
|
theRL Internal radius of left thickness reduction
|
|
theWL Width of left thickness reduction
|
|
theLtransL Length of left transition part
|
|
theLthinL Length of left thin part
|
|
|
|
theRR Internal radius of right thickness reduction
|
|
theWR Width of right thickness reduction
|
|
theLtransR Length of right transition part
|
|
theLthinR Length of right thin part
|
|
|
|
theRI Internal radius of incident thickness reduction
|
|
theWI Width of incident thickness reduction
|
|
theLtransI Length of incident transition part
|
|
theLthinI Length of incident thin part
|
|
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
List of GEOM_Object, containing the created shape and propagation groups.
|
|
|
|
Example of usage:
|
|
# create PipeTShape object
|
|
pipetshape = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0)
|
|
# create PipeTShape object with position
|
|
pipetshape_position = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, True, P1, P2, P3)
|
|
# create PipeTShape object with left thickness reduction
|
|
pipetshape_thr = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
|
|
"""
|
|
from salome.geom.geomBuilder import ParseParameters, RaiseIfFailed, _toListOfNames
|
|
theR1, theW1, theL1, theR2, theW2, theL2, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI)
|
|
anOp = GetAdvancedOperations(self)
|
|
if (theP1 and theP2 and theP3):
|
|
anObj = anOp.MakePipeTShapeTRWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRL, theWL, theLtransL, theLthinL,
|
|
theRR, theWR, theLtransR, theLthinR,
|
|
theRI, theWI, theLtransI, theLthinI,
|
|
theHexMesh, theP1, theP2, theP3)
|
|
else:
|
|
anObj = anOp.MakePipeTShapeTR(theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRL, theWL, theLtransL, theLthinL,
|
|
theRR, theWR, theLtransR, theLthinR,
|
|
theRI, theWI, theLtransI, theLthinI,
|
|
theHexMesh)
|
|
pass
|
|
RaiseIfFailed("MakePipeTShape", anOp)
|
|
if Parameters: anObj[0].SetParameters(Parameters)
|
|
self.def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
|
|
self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), self.def_names)
|
|
anOp.UnRegister()
|
|
return anObj
|
|
|
|
## Create a T-shape object with chamfer and with specified caracteristics for the main
|
|
# and the incident pipes (radius, width, half-length). The chamfer is
|
|
# created on the junction of the pipes.
|
|
# The extremities of the main pipe are located on junctions points P1 and P2.
|
|
# The extremity of the incident pipe is located on junction point P3.
|
|
# If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
|
|
# the main plane of the T-shape is XOY.
|
|
# @param theR1 Internal radius of main pipe
|
|
# @param theW1 Width of main pipe
|
|
# @param theL1 Half-length of main pipe
|
|
# @param theR2 Internal radius of incident pipe (R2 < R1)
|
|
# @param theW2 Width of incident pipe (R2+W2 < R1+W1)
|
|
# @param theL2 Half-length of incident pipe
|
|
# @param theH Height of the chamfer.
|
|
# @param theW Width of the chamfer.
|
|
# @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
|
|
# @param theP1 1st junction point of main pipe
|
|
# @param theP2 2nd junction point of main pipe
|
|
# @param theP3 Junction point of incident pipe
|
|
#
|
|
# @param theRL Internal radius of left thickness reduction
|
|
# @param theWL Width of left thickness reduction
|
|
# @param theLtransL Length of left transition part
|
|
# @param theLthinL Length of left thin part
|
|
#
|
|
# @param theRR Internal radius of right thickness reduction
|
|
# @param theWR Width of right thickness reduction
|
|
# @param theLtransR Length of right transition part
|
|
# @param theLthinR Length of right thin part
|
|
#
|
|
# @param theRI Internal radius of incident thickness reduction
|
|
# @param theWI Width of incident thickness reduction
|
|
# @param theLtransI Length of incident transition part
|
|
# @param theLthinI Length of incident thin part
|
|
#
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
#
|
|
# @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
|
|
#
|
|
# @ref tui_creation_pipetshape "Example"
|
|
# @ingroup l4_advanced
|
|
def MakePipeTShapeChamfer (self, theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None,
|
|
theRL=0, theWL=0, theLtransL=0, theLthinL=0,
|
|
theRR=0, theWR=0, theLtransR=0, theLthinR=0,
|
|
theRI=0, theWI=0, theLtransI=0, theLthinI=0,
|
|
theName=None):
|
|
"""
|
|
Create a T-shape object with chamfer and with specified caracteristics for the main
|
|
and the incident pipes (radius, width, half-length). The chamfer is
|
|
created on the junction of the pipes.
|
|
The extremities of the main pipe are located on junctions points P1 and P2.
|
|
The extremity of the incident pipe is located on junction point P3.
|
|
If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
|
|
the main plane of the T-shape is XOY.
|
|
|
|
Parameters:
|
|
theR1 Internal radius of main pipe
|
|
theW1 Width of main pipe
|
|
theL1 Half-length of main pipe
|
|
theR2 Internal radius of incident pipe (R2 < R1)
|
|
theW2 Width of incident pipe (R2+W2 < R1+W1)
|
|
theL2 Half-length of incident pipe
|
|
theH Height of the chamfer.
|
|
theW Width of the chamfer.
|
|
theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
|
|
theP1 1st junction point of main pipe
|
|
theP2 2nd junction point of main pipe
|
|
theP3 Junction point of incident pipe
|
|
|
|
theRL Internal radius of left thickness reduction
|
|
theWL Width of left thickness reduction
|
|
theLtransL Length of left transition part
|
|
theLthinL Length of left thin part
|
|
|
|
theRR Internal radius of right thickness reduction
|
|
theWR Width of right thickness reduction
|
|
theLtransR Length of right transition part
|
|
theLthinR Length of right thin part
|
|
|
|
theRI Internal radius of incident thickness reduction
|
|
theWI Width of incident thickness reduction
|
|
theLtransI Length of incident transition part
|
|
theLthinI Length of incident thin part
|
|
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
List of GEOM_Object, containing the created shape and propagation groups.
|
|
|
|
Example of usage:
|
|
# create PipeTShape with chamfer object
|
|
pipetshapechamfer = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0)
|
|
# create PipeTShape with chamfer object with position
|
|
pipetshapechamfer_position = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, True, P1, P2, P3)
|
|
# create PipeTShape with chamfer object with left thickness reduction
|
|
pipetshapechamfer_thr = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
|
|
"""
|
|
from salome.geom.geomBuilder import ParseParameters, RaiseIfFailed, _toListOfNames
|
|
theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI)
|
|
anOp = GetAdvancedOperations(self)
|
|
if (theP1 and theP2 and theP3):
|
|
anObj = anOp.MakePipeTShapeTRChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRL, theWL, theLtransL, theLthinL,
|
|
theRR, theWR, theLtransR, theLthinR,
|
|
theRI, theWI, theLtransI, theLthinI,
|
|
theH, theW, theHexMesh, theP1, theP2, theP3)
|
|
else:
|
|
anObj = anOp.MakePipeTShapeTRChamfer(theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRL, theWL, theLtransL, theLthinL,
|
|
theRR, theWR, theLtransR, theLthinR,
|
|
theRI, theWI, theLtransI, theLthinI,
|
|
theH, theW, theHexMesh)
|
|
pass
|
|
|
|
RaiseIfFailed("MakePipeTShapeChamfer", anOp)
|
|
if Parameters: anObj[0].SetParameters(Parameters)
|
|
self.def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
|
|
self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), self.def_names)
|
|
anOp.UnRegister()
|
|
return anObj
|
|
|
|
## Create a T-shape object with fillet and with specified caracteristics for the main
|
|
# and the incident pipes (radius, width, half-length). The fillet is
|
|
# created on the junction of the pipes.
|
|
# The extremities of the main pipe are located on junctions points P1 and P2.
|
|
# The extremity of the incident pipe is located on junction point P3.
|
|
# If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
|
|
# the main plane of the T-shape is XOY.
|
|
# @param theR1 Internal radius of main pipe
|
|
# @param theW1 Width of main pipe
|
|
# @param theL1 Half-length of main pipe
|
|
# @param theR2 Internal radius of incident pipe (R2 < R1)
|
|
# @param theW2 Width of incident pipe (R2+W2 < R1+W1)
|
|
# @param theL2 Half-length of incident pipe
|
|
# @param theRF Radius of curvature of fillet.
|
|
# @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
|
|
# @param theP1 1st junction point of main pipe
|
|
# @param theP2 2nd junction point of main pipe
|
|
# @param theP3 Junction point of incident pipe
|
|
#
|
|
# @param theRL Internal radius of left thickness reduction
|
|
# @param theWL Width of left thickness reduction
|
|
# @param theLtransL Length of left transition part
|
|
# @param theLthinL Length of left thin part
|
|
#
|
|
# @param theRR Internal radius of right thickness reduction
|
|
# @param theWR Width of right thickness reduction
|
|
# @param theLtransR Length of right transition part
|
|
# @param theLthinR Length of right thin part
|
|
#
|
|
# @param theRI Internal radius of incident thickness reduction
|
|
# @param theWI Width of incident thickness reduction
|
|
# @param theLtransI Length of incident transition part
|
|
# @param theLthinI Length of incident thin part
|
|
#
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
#
|
|
# @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
|
|
#
|
|
# @ref tui_creation_pipetshape "Example"
|
|
# @ingroup l4_advanced
|
|
def MakePipeTShapeFillet (self, theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None,
|
|
theRL=0, theWL=0, theLtransL=0, theLthinL=0,
|
|
theRR=0, theWR=0, theLtransR=0, theLthinR=0,
|
|
theRI=0, theWI=0, theLtransI=0, theLthinI=0,
|
|
theName=None):
|
|
"""
|
|
Create a T-shape object with fillet and with specified caracteristics for the main
|
|
and the incident pipes (radius, width, half-length). The fillet is
|
|
created on the junction of the pipes.
|
|
The extremities of the main pipe are located on junctions points P1 and P2.
|
|
The extremity of the incident pipe is located on junction point P3.
|
|
|
|
Parameters:
|
|
If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and
|
|
the main plane of the T-shape is XOY.
|
|
theR1 Internal radius of main pipe
|
|
theW1 Width of main pipe
|
|
heL1 Half-length of main pipe
|
|
theR2 Internal radius of incident pipe (R2 < R1)
|
|
theW2 Width of incident pipe (R2+W2 < R1+W1)
|
|
theL2 Half-length of incident pipe
|
|
theRF Radius of curvature of fillet.
|
|
theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True)
|
|
theP1 1st junction point of main pipe
|
|
theP2 2nd junction point of main pipe
|
|
theP3 Junction point of incident pipe
|
|
|
|
theRL Internal radius of left thickness reduction
|
|
theWL Width of left thickness reduction
|
|
theLtransL Length of left transition part
|
|
theLthinL Length of left thin part
|
|
|
|
theRR Internal radius of right thickness reduction
|
|
theWR Width of right thickness reduction
|
|
theLtransR Length of right transition part
|
|
theLthinR Length of right thin part
|
|
|
|
theRI Internal radius of incident thickness reduction
|
|
theWI Width of incident thickness reduction
|
|
theLtransI Length of incident transition part
|
|
theLthinI Length of incident thin part
|
|
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
List of GEOM_Object, containing the created shape and propagation groups.
|
|
|
|
Example of usage:
|
|
# create PipeTShape with fillet object
|
|
pipetshapefillet = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0)
|
|
# create PipeTShape with fillet object with position
|
|
pipetshapefillet_position = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, True, P1, P2, P3)
|
|
# create PipeTShape with fillet object with left thickness reduction
|
|
pipetshapefillet_thr = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, theRL=60, theWL=20, theLtransL=40, theLthinL=20)
|
|
"""
|
|
from salome.geom.geomBuilder import ParseParameters, RaiseIfFailed, _toListOfNames
|
|
theR1, theW1, theL1, theR2, theW2, theL2, theRF, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theRL, theWL, theLtransL, theLthinL, theRR, theWR, theLtransR, theLthinR, theRI, theWI, theLtransI, theLthinI)
|
|
anOp = GetAdvancedOperations(self)
|
|
if (theP1 and theP2 and theP3):
|
|
anObj = anOp.MakePipeTShapeTRFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRL, theWL, theLtransL, theLthinL,
|
|
theRR, theWR, theLtransR, theLthinR,
|
|
theRI, theWI, theLtransI, theLthinI,
|
|
theRF, theHexMesh, theP1, theP2, theP3)
|
|
else:
|
|
anObj = anOp.MakePipeTShapeTRFillet(theR1, theW1, theL1, theR2, theW2, theL2,
|
|
theRL, theWL, theLtransL, theLthinL,
|
|
theRR, theWR, theLtransR, theLthinR,
|
|
theRI, theWI, theLtransI, theLthinI,
|
|
theRF, theHexMesh)
|
|
pass
|
|
RaiseIfFailed("MakePipeTShapeFillet", anOp)
|
|
if Parameters: anObj[0].SetParameters(Parameters)
|
|
self.def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
|
|
self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), self.def_names)
|
|
anOp.UnRegister()
|
|
return anObj
|
|
|
|
## This function allows creating a disk already divided into blocks. It
|
|
# can be used to create divided pipes for later meshing in hexaedra.
|
|
# @param theR Radius of the disk
|
|
# @param theOrientation Orientation of the plane on which the disk will be built
|
|
# 1 = XOY, 2 = OYZ, 3 = OZX
|
|
# @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
#
|
|
# @return New GEOM_Object, containing the created shape.
|
|
#
|
|
# @ref tui_creation_divideddisk "Example"
|
|
# @ingroup l4_advanced
|
|
def MakeDividedDisk(self, theR, theOrientation, thePattern, theName=None):
|
|
"""
|
|
Creates a disk, divided into blocks. It can be used to create divided pipes
|
|
for later meshing in hexaedra.
|
|
|
|
Parameters:
|
|
theR Radius of the disk
|
|
theOrientation Orientation of the plane on which the disk will be built:
|
|
1 = XOY, 2 = OYZ, 3 = OZX
|
|
thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
New GEOM_Object, containing the created shape.
|
|
"""
|
|
from salome.geom.geomBuilder import ParseParameters, RaiseIfFailed, _toListOfNames
|
|
theR, Parameters = ParseParameters(theR)
|
|
anOp = GetAdvancedOperations(self)
|
|
anObj = anOp.MakeDividedDisk(theR, 67.0, theOrientation, thePattern)
|
|
RaiseIfFailed("MakeDividedDisk", anOp)
|
|
if Parameters: anObj.SetParameters(Parameters)
|
|
self._autoPublish(anObj, theName, "dividedDisk")
|
|
anOp.UnRegister()
|
|
return anObj
|
|
|
|
## This function allows creating a disk already divided into blocks. It
|
|
# can be used to create divided pipes for later meshing in hexaedra.
|
|
# @param theCenter Center of the disk
|
|
# @param theVector Normal vector to the plane of the created disk
|
|
# @param theRadius Radius of the disk
|
|
# @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
#
|
|
# @return New GEOM_Object, containing the created shape.
|
|
#
|
|
# @ref tui_creation_divideddisk "Example"
|
|
# @ingroup l4_advanced
|
|
def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern, theName=None):
|
|
"""
|
|
Creates a disk already divided into blocks. It can be used to create divided pipes
|
|
for later meshing in hexaedra.
|
|
|
|
Parameters:
|
|
theCenter Center of the disk
|
|
theVector Normal vector to the plane of the created disk
|
|
theRadius Radius of the disk
|
|
thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
New GEOM_Object, containing the created shape.
|
|
"""
|
|
from salome.geom.geomBuilder import ParseParameters, RaiseIfFailed, _toListOfNames
|
|
theRadius, Parameters = ParseParameters(theRadius)
|
|
anOp = GetAdvancedOperations(self)
|
|
anObj = anOp.MakeDividedDiskPntVecR(theCenter, theVector, theRadius, 67.0, thePattern)
|
|
RaiseIfFailed("MakeDividedDiskPntVecR", anOp)
|
|
if Parameters: anObj.SetParameters(Parameters)
|
|
self._autoPublish(anObj, theName, "dividedDisk")
|
|
anOp.UnRegister()
|
|
return anObj
|
|
|
|
## Builds a cylinder prepared for hexa meshes
|
|
# @param theR Radius of the cylinder
|
|
# @param theH Height of the cylinder
|
|
# @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
#
|
|
# @return New GEOM_Object, containing the created shape.
|
|
#
|
|
# @ref tui_creation_dividedcylinder "Example"
|
|
# @ingroup l4_advanced
|
|
def MakeDividedCylinder(self, theR, theH, thePattern, theName=None):
|
|
"""
|
|
Builds a cylinder prepared for hexa meshes
|
|
|
|
Parameters:
|
|
theR Radius of the cylinder
|
|
theH Height of the cylinder
|
|
thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
New GEOM_Object, containing the created shape.
|
|
"""
|
|
from salome.geom.geomBuilder import ParseParameters, RaiseIfFailed, _toListOfNames
|
|
theR, theH, Parameters = ParseParameters(theR, theH)
|
|
anOp = GetAdvancedOperations(self)
|
|
anObj = anOp.MakeDividedCylinder(theR, theH, thePattern)
|
|
RaiseIfFailed("MakeDividedCylinder", anOp)
|
|
if Parameters: anObj.SetParameters(Parameters)
|
|
self._autoPublish(anObj, theName, "dividedCylinder")
|
|
anOp.UnRegister()
|
|
return anObj
|
|
|
|
## Create a surface from a cloud of points
|
|
# @param thelPoints list of points. Compounds of points are
|
|
# accepted as well.
|
|
# @param theNbMax maximum number of Bezier pieces in the resulting
|
|
# surface.
|
|
# @param theDegMax maximum degree of the resulting BSpline surface.
|
|
# @param theDMax 3D tolerance of initial approximation.
|
|
# @param theName Object name; when specified, this parameter is used
|
|
# for result publication in the study. Otherwise, if automatic
|
|
# publication is switched on, default value is used for result name.
|
|
# @return New GEOM_Object, containing the created shape.
|
|
# @note 3D tolerance of initial approximation represents a tolerance of
|
|
# initial plate surface approximation. If this parameter is equal
|
|
# to 0 (default value) it is computed. In this case an error of
|
|
# initial plate surface computation is used as the approximation
|
|
# tolerance. This error represents a maximal distance between
|
|
# computed plate surface and given points.
|
|
#
|
|
# @ref tui_creation_smoothingsurface "Example"
|
|
# @ingroup l4_advanced
|
|
def MakeSmoothingSurface(self, thelPoints, theNbMax=2, theDegMax=8,
|
|
theDMax=0.0, theName=None):
|
|
"""
|
|
Create a surface from a cloud of points
|
|
|
|
Parameters:
|
|
thelPoints list of points. Compounds of points are
|
|
accepted as well.
|
|
theNbMax maximum number of Bezier pieces in the resulting
|
|
surface.
|
|
theDegMax maximum degree of the resulting BSpline surface.
|
|
theDMax 3D tolerance of initial approximation.
|
|
theName Object name; when specified, this parameter is used
|
|
for result publication in the study. Otherwise, if automatic
|
|
publication is switched on, default value is used for result name.
|
|
|
|
Returns:
|
|
New GEOM_Object, containing the created shape.
|
|
|
|
Note:
|
|
3D tolerance of initial approximation represents a tolerance of
|
|
initial plate surface approximation. If this parameter is equal
|
|
to 0 (default value) it is computed. In this case an error of
|
|
initial plate surface computation is used as the approximation
|
|
tolerance. This error represents a maximal distance between
|
|
computed plate surface and given points.
|
|
"""
|
|
from salome.geom.geomBuilder import RaiseIfFailed
|
|
anOp = GetAdvancedOperations(self)
|
|
anObj = anOp.MakeSmoothingSurface(thelPoints, theNbMax,
|
|
theDegMax, theDMax)
|
|
RaiseIfFailed("MakeSmoothingSurface", anOp)
|
|
self._autoPublish(anObj, theName, "smoothing")
|
|
anOp.UnRegister()
|
|
return anObj
|