mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-11 16:19:16 +05:00
Adding SetNbThreads in Python to set if compute will be done in parallel
This commit is contained in:
parent
b27f64c6ec
commit
5176bafcd3
@ -156,7 +156,7 @@ module SMESH
|
|||||||
Geom_BALL,
|
Geom_BALL,
|
||||||
Geom_LAST
|
Geom_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* ElementOrder points out entities of what order are requested
|
* ElementOrder points out entities of what order are requested
|
||||||
*/
|
*/
|
||||||
@ -238,7 +238,7 @@ module SMESH
|
|||||||
DRS_FAIL // general failure (exception etc.)
|
DRS_FAIL // general failure (exception etc.)
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief A structure containing information about MED file
|
* \brief A structure containing information about MED file
|
||||||
*/
|
*/
|
||||||
struct MedFileInfo
|
struct MedFileInfo
|
||||||
@ -263,7 +263,7 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
const long EXTRUSION_FLAG_BOUNDARY = 1;
|
const long EXTRUSION_FLAG_BOUNDARY = 1;
|
||||||
const long EXTRUSION_FLAG_SEW = 2;
|
const long EXTRUSION_FLAG_SEW = 2;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Structure used in mesh edit preview data (MeshPreviewStruct)
|
* Structure used in mesh edit preview data (MeshPreviewStruct)
|
||||||
*/
|
*/
|
||||||
@ -344,7 +344,7 @@ module SMESH
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Get geom shape to mesh. A result should not be nil. Use HasShapeToMesh()
|
* Get geom shape to mesh. A result should not be nil. Use HasShapeToMesh()
|
||||||
* to know if a returned shape
|
* to know if a returned shape
|
||||||
*/
|
*/
|
||||||
GEOM::GEOM_Object GetShapeToMesh()
|
GEOM::GEOM_Object GetShapeToMesh()
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
@ -457,7 +457,7 @@ module SMESH
|
|||||||
in SMESH_GroupBase aGroup2,
|
in SMESH_GroupBase aGroup2,
|
||||||
in string name )
|
in string name )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Union of list of groups
|
* Union of list of groups
|
||||||
* New group is created. All mesh elements that are
|
* New group is created. All mesh elements that are
|
||||||
@ -476,7 +476,7 @@ module SMESH
|
|||||||
in SMESH_GroupBase aGroup2,
|
in SMESH_GroupBase aGroup2,
|
||||||
in string name )
|
in string name )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Intersection of list of groups
|
* Intersection of list of groups
|
||||||
* New group is created. All mesh elements that are
|
* New group is created. All mesh elements that are
|
||||||
@ -495,7 +495,7 @@ module SMESH
|
|||||||
in SMESH_GroupBase aToolGroup,
|
in SMESH_GroupBase aToolGroup,
|
||||||
in string name )
|
in string name )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Cut of lists of groups
|
* Cut of lists of groups
|
||||||
* New group is created. All mesh elements that are present in
|
* New group is created. All mesh elements that are present in
|
||||||
@ -505,14 +505,14 @@ module SMESH
|
|||||||
in ListOfGroups aToolGroups,
|
in ListOfGroups aToolGroups,
|
||||||
in string name)
|
in string name)
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Create a group of entities basing on nodes of other groups.
|
* Create a group of entities basing on nodes of other groups.
|
||||||
* \param [in] aListOfGroups - list of either groups, sub-meshes or filters.
|
* \param [in] aListOfGroups - list of either groups, sub-meshes or filters.
|
||||||
* \param [in] anElemType - a type of elements to include to the new group.
|
* \param [in] anElemType - a type of elements to include to the new group.
|
||||||
* \param [in] name - a name of the new group.
|
* \param [in] name - a name of the new group.
|
||||||
* \param [in] nbCommonNodes - criterion of inclusion of an element to the new group.
|
* \param [in] nbCommonNodes - criterion of inclusion of an element to the new group.
|
||||||
* \param [in] underlyingOnly - if \c True, an element is included to the
|
* \param [in] underlyingOnly - if \c True, an element is included to the
|
||||||
* new group provided that it is based on nodes of an element of
|
* new group provided that it is based on nodes of an element of
|
||||||
* \a aListOfGroups
|
* \a aListOfGroups
|
||||||
* \return SMESH_Group - the created group
|
* \return SMESH_Group - the created group
|
||||||
@ -679,12 +679,12 @@ module SMESH
|
|||||||
* med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
|
* med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
|
||||||
* The minor must be between 0 and the current minor version of MED file library.
|
* The minor must be between 0 and the current minor version of MED file library.
|
||||||
* If version is equal to -1, the version is not changed (default).
|
* If version is equal to -1, the version is not changed (default).
|
||||||
* - autoDimension : if @c True, a space dimension for export is defined by mesh
|
* - autoDimension : if @c True, a space dimension for export is defined by mesh
|
||||||
* configuration; for example a planar mesh lying on XOY plane
|
* configuration; for example a planar mesh lying on XOY plane
|
||||||
* will be exported as a mesh in 2D space.
|
* will be exported as a mesh in 2D space.
|
||||||
* If @a autoDimension == @c False, the space dimension is 3.
|
* If @a autoDimension == @c False, the space dimension is 3.
|
||||||
* - fields : list of GEOM fields defined on the shape to mesh.
|
* - fields : list of GEOM fields defined on the shape to mesh.
|
||||||
* - geomAssocFields : each character of this string means a need to export a
|
* - geomAssocFields : each character of this string means a need to export a
|
||||||
* corresponding field; correspondence between fields and characters is following:
|
* corresponding field; correspondence between fields and characters is following:
|
||||||
* - 'v' stands for _vertices_ field;
|
* - 'v' stands for _vertices_ field;
|
||||||
* - 'e' stands for _edges_ field;
|
* - 'e' stands for _edges_ field;
|
||||||
@ -724,7 +724,7 @@ module SMESH
|
|||||||
* encoded in 10*major+minor (for instance, code for med 3.2.1 is 32)
|
* encoded in 10*major+minor (for instance, code for med 3.2.1 is 32)
|
||||||
*/
|
*/
|
||||||
long_array GetMEDVersionsCompatibleForAppend();
|
long_array GetMEDVersionsCompatibleForAppend();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Export Mesh to different Formats
|
* Export Mesh to different Formats
|
||||||
* (UNV supported version is I-DEAS 10)
|
* (UNV supported version is I-DEAS 10)
|
||||||
@ -735,17 +735,17 @@ module SMESH
|
|||||||
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportSTL( in string file,
|
void ExportSTL( in string file,
|
||||||
in boolean isascii ) raises (SALOME::SALOME_Exception);
|
in boolean isascii ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportCGNS( in SMESH_IDSource meshPart,
|
void ExportCGNS( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean overwrite,
|
in boolean overwrite,
|
||||||
in boolean groupElemsByType) raises (SALOME::SALOME_Exception);
|
in boolean groupElemsByType) raises (SALOME::SALOME_Exception);
|
||||||
void ExportGMF( in SMESH_IDSource meshPart,
|
void ExportGMF( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
|
in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
|
||||||
void ExportPartToDAT( in SMESH_IDSource meshPart,
|
void ExportPartToDAT( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportPartToUNV( in SMESH_IDSource meshPart,
|
void ExportPartToUNV( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportPartToSTL( in SMESH_IDSource meshPart,
|
void ExportPartToSTL( in SMESH_IDSource meshPart,
|
||||||
@ -857,10 +857,10 @@ module SMESH
|
|||||||
|
|
||||||
smIdType_array GetNodesId()
|
smIdType_array GetNodesId()
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns type of mesh element
|
* Returns type of mesh element
|
||||||
*/
|
*/
|
||||||
ElementType GetElementType( in smIdType id, in boolean iselem )
|
ElementType GetElementType( in smIdType id, in boolean iselem )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
@ -875,7 +875,7 @@ module SMESH
|
|||||||
|
|
||||||
smIdType_array GetSubMeshNodesId(in long ShapeID, in boolean all )
|
smIdType_array GetSubMeshNodesId(in long ShapeID, in boolean all )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
ElementType GetSubMeshElementType(in long ShapeID)
|
ElementType GetSubMeshElementType(in long ShapeID)
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
@ -899,6 +899,10 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
|
boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set Number of Threads
|
||||||
|
*/
|
||||||
|
void SetNbThreads(in long nbThreads);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Get mesh description
|
* Get mesh description
|
||||||
@ -939,7 +943,7 @@ module SMESH
|
|||||||
long GetShapeID(in smIdType id);
|
long GetShapeID(in smIdType id);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* For given element returns ID of result shape after
|
* For given element returns ID of result shape after
|
||||||
* ::FindShape() from SMESH_MeshEditor
|
* ::FindShape() from SMESH_MeshEditor
|
||||||
* If there is not element for given ID - returns -1
|
* If there is not element for given ID - returns -1
|
||||||
*/
|
*/
|
||||||
@ -1072,7 +1076,7 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
smIdType_array GetElementsByType( in ElementType theType )
|
smIdType_array GetElementsByType( in ElementType theType )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
|
* Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
|
||||||
*/
|
*/
|
||||||
|
@ -385,9 +385,14 @@ class SMESH_EXPORT SMESH_Mesh
|
|||||||
|
|
||||||
std::ostream& Dump(std::ostream & save);
|
std::ostream& Dump(std::ostream & save);
|
||||||
|
|
||||||
|
// Data for parallel computation
|
||||||
|
|
||||||
void Lock() {_my_lock.lock();};
|
void Lock() {_my_lock.lock();};
|
||||||
void Unlock() {_my_lock.unlock();};
|
void Unlock() {_my_lock.unlock();};
|
||||||
|
|
||||||
|
int GetNbThreads(){return _NbThreads;};
|
||||||
|
void SetNbThreads(int nbThreads){_NbThreads=nbThreads;};
|
||||||
|
|
||||||
// Temporary folder used during parallel Computation
|
// Temporary folder used during parallel Computation
|
||||||
boost::filesystem::path tmp_folder;
|
boost::filesystem::path tmp_folder;
|
||||||
|
|
||||||
@ -439,6 +444,7 @@ protected:
|
|||||||
|
|
||||||
// Mutex for multhitreading write in SMESH_Mesh
|
// Mutex for multhitreading write in SMESH_Mesh
|
||||||
std::mutex _my_lock;
|
std::mutex _my_lock;
|
||||||
|
int _NbThreads=0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
SMESH_Mesh();
|
SMESH_Mesh();
|
||||||
|
@ -271,8 +271,7 @@ bool SMESH_subMesh::IsMeshComputed() const
|
|||||||
TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
|
TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
|
||||||
for ( ; exp.More(); exp.Next() )
|
for ( ; exp.More(); exp.Next() )
|
||||||
{
|
{
|
||||||
SMESHDS_SubMesh * smDS = meshDS->MeshElements( exp.Current() );
|
if ( SMESHDS_SubMesh * smDS = meshDS->MeshElements( exp.Current() ) )
|
||||||
if ( smDS )
|
|
||||||
{
|
{
|
||||||
bool computed = (dim > 0) ? smDS->NbElements() : smDS->NbNodes();
|
bool computed = (dim > 0) ? smDS->NbElements() : smDS->NbNodes();
|
||||||
if ( computed )
|
if ( computed )
|
||||||
@ -1595,7 +1594,6 @@ bool SMESH_subMesh::ComputeStateEngine(compute_event event)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO: Replace by call to ParallelCompute
|
|
||||||
ret = algo->Compute((*_father), shape);
|
ret = algo->Compute((*_father), shape);
|
||||||
}
|
}
|
||||||
// algo can set _computeError of submesh
|
// algo can set _computeError of submesh
|
||||||
@ -1656,7 +1654,6 @@ bool SMESH_subMesh::ComputeStateEngine(compute_event event)
|
|||||||
bool isComputeErrorSet = !checkComputeError( algo, ret, shape );
|
bool isComputeErrorSet = !checkComputeError( algo, ret, shape );
|
||||||
if ( isComputeErrorSet )
|
if ( isComputeErrorSet )
|
||||||
ret = false;
|
ret = false;
|
||||||
// TODO: See why IsMeshCompited() returns false
|
|
||||||
// check if anything was built
|
// check if anything was built
|
||||||
TopExp_Explorer subS(shape, _subShape.ShapeType());
|
TopExp_Explorer subS(shape, _subShape.ShapeType());
|
||||||
if ( ret )
|
if ( ret )
|
||||||
@ -2053,9 +2050,7 @@ bool SMESH_subMesh::checkComputeError(SMESH_Algo* theAlgo,
|
|||||||
if ( !_computeError || _computeError->IsOK() )
|
if ( !_computeError || _computeError->IsOK() )
|
||||||
{
|
{
|
||||||
// no error description is set to this sub-mesh, check if any mesh is computed
|
// no error description is set to this sub-mesh, check if any mesh is computed
|
||||||
//TODO: See why this does not work
|
_computeState = IsMeshComputed() ? COMPUTE_OK : FAILED_TO_COMPUTE;
|
||||||
//_computeState = IsMeshComputed() ? COMPUTE_OK : FAILED_TO_COMPUTE;
|
|
||||||
_computeState = COMPUTE_OK;
|
|
||||||
if ( _computeState != COMPUTE_OK )
|
if ( _computeState != COMPUTE_OK )
|
||||||
{
|
{
|
||||||
if ( _subShape.ShapeType() == TopAbs_EDGE &&
|
if ( _subShape.ShapeType() == TopAbs_EDGE &&
|
||||||
|
@ -458,7 +458,7 @@ namespace {
|
|||||||
initialized = true;
|
initialized = true;
|
||||||
filteredArgs.push_back( "SMESH.MED_V2_1" );
|
filteredArgs.push_back( "SMESH.MED_V2_1" );
|
||||||
filteredArgs.push_back( "SMESH.MED_V2_2" );
|
filteredArgs.push_back( "SMESH.MED_V2_2" );
|
||||||
}
|
}
|
||||||
return std::find( filteredArgs.begin(), filteredArgs.end(), theArg ) != filteredArgs.end();
|
return std::find( filteredArgs.begin(), filteredArgs.end(), theArg ) != filteredArgs.end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1827,7 +1827,7 @@ _pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd, const _pyID& meshId):
|
|||||||
const _pyID& meshID = theCreationCmd->GetObject();
|
const _pyID& meshID = theCreationCmd->GetObject();
|
||||||
addFatherMesh( meshID );
|
addFatherMesh( meshID );
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert my creation command
|
// convert my creation command
|
||||||
Handle(_pyCommand) creationCmd = GetCreationCmd();
|
Handle(_pyCommand) creationCmd = GetCreationCmd();
|
||||||
creationCmd->SetObject( SMESH_2smeshpy::SmeshpyName() );
|
creationCmd->SetObject( SMESH_2smeshpy::SmeshpyName() );
|
||||||
@ -2211,7 +2211,7 @@ bool _pyMesh::NeedMeshAccess( const Handle(_pyCommand)& theCommand )
|
|||||||
"GetElemNode","IsMediumNode","IsMediumNodeOfAnyElem","ElemNbEdges","ElemNbFaces",
|
"GetElemNode","IsMediumNode","IsMediumNodeOfAnyElem","ElemNbEdges","ElemNbFaces",
|
||||||
"GetElemFaceNodes", "GetFaceNormal", "FindElementByNodes",
|
"GetElemFaceNodes", "GetFaceNormal", "FindElementByNodes",
|
||||||
"IsPoly","IsQuadratic","BaryCenter","GetHypothesisList", "SetAutoColor", "GetAutoColor",
|
"IsPoly","IsQuadratic","BaryCenter","GetHypothesisList", "SetAutoColor", "GetAutoColor",
|
||||||
"Clear", "ConvertToStandalone", "GetMeshOrder", "SetMeshOrder"
|
"Clear", "ConvertToStandalone", "GetMeshOrder", "SetMeshOrder", "SetNbThreads"
|
||||||
,"" }; // <- mark of end
|
,"" }; // <- mark of end
|
||||||
sameMethods.Insert( names );
|
sameMethods.Insert( names );
|
||||||
}
|
}
|
||||||
@ -2419,7 +2419,7 @@ void _pyMesh::ClearCommands()
|
|||||||
list< Handle(_pySubMesh) >::iterator sm = mySubmeshes.begin();
|
list< Handle(_pySubMesh) >::iterator sm = mySubmeshes.begin();
|
||||||
for ( ; sm != mySubmeshes.end(); ++sm )
|
for ( ; sm != mySubmeshes.end(); ++sm )
|
||||||
(*sm)->ClearCommands();
|
(*sm)->ClearCommands();
|
||||||
|
|
||||||
list< Handle(_pyGroup) >::iterator gr = myGroups.begin();
|
list< Handle(_pyGroup) >::iterator gr = myGroups.begin();
|
||||||
for ( ; gr != myGroups.end(); ++gr )
|
for ( ; gr != myGroups.end(); ++gr )
|
||||||
(*gr)->ClearCommands();
|
(*gr)->ClearCommands();
|
||||||
@ -2579,7 +2579,7 @@ void _pyMeshEditor::Process( const Handle(_pyCommand)& theCommand)
|
|||||||
// 1. Remove "MakeGroups" from the Command
|
// 1. Remove "MakeGroups" from the Command
|
||||||
TCollection_AsciiString aMethod = theCommand->GetMethod();
|
TCollection_AsciiString aMethod = theCommand->GetMethod();
|
||||||
int nbArgsToAdd = diffLastTwoArgsMethods.Contains(aMethod) ? 2 : 1;
|
int nbArgsToAdd = diffLastTwoArgsMethods.Contains(aMethod) ? 2 : 1;
|
||||||
|
|
||||||
if(is0DmethObj)
|
if(is0DmethObj)
|
||||||
pos = pos-2; //Remove "0D" from the Command too
|
pos = pos-2; //Remove "0D" from the Command too
|
||||||
aMethod.Trunc(pos-1);
|
aMethod.Trunc(pos-1);
|
||||||
@ -3410,7 +3410,7 @@ void _pyLayerDistributionHypo::Flush()
|
|||||||
list< Handle(_pyCommand) >::iterator cmd = myArgCommands.begin();
|
list< Handle(_pyCommand) >::iterator cmd = myArgCommands.begin();
|
||||||
_pyID prevNewName;
|
_pyID prevNewName;
|
||||||
for ( cmd = myArgCommands.begin(); cmd != myArgCommands.end(); ++cmd )
|
for ( cmd = myArgCommands.begin(); cmd != myArgCommands.end(); ++cmd )
|
||||||
{
|
{
|
||||||
const _pyID& hyp1dID = (*cmd)->GetArg( 1 );
|
const _pyID& hyp1dID = (*cmd)->GetArg( 1 );
|
||||||
if ( hyp1dID.IsEmpty() ) continue;
|
if ( hyp1dID.IsEmpty() ) continue;
|
||||||
|
|
||||||
@ -3434,7 +3434,7 @@ void _pyLayerDistributionHypo::Flush()
|
|||||||
}
|
}
|
||||||
newName += "_Distribution";
|
newName += "_Distribution";
|
||||||
prevNewName = newName;
|
prevNewName = newName;
|
||||||
|
|
||||||
hyp1d->GetCreationCmd()->SetResultValue( newName );
|
hyp1d->GetCreationCmd()->SetResultValue( newName );
|
||||||
}
|
}
|
||||||
list< Handle(_pyCommand) >& cmds = theGen->GetCommands();
|
list< Handle(_pyCommand) >& cmds = theGen->GetCommands();
|
||||||
@ -4631,7 +4631,7 @@ _pyGroup::_pyGroup(const Handle(_pyCommand)& theCreationCmd, const _pyID & id)
|
|||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Check if "[ group1, group2 ] = mesh.GetGroups()" creation command
|
* \brief Check if "[ group1, group2 ] = mesh.GetGroups()" creation command
|
||||||
* can be cleared
|
* can be cleared
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
@ -4802,7 +4802,7 @@ void _pyFilter::Process( const Handle(_pyCommand)& theCommand)
|
|||||||
|
|
||||||
if ( !myNewID.IsEmpty() )
|
if ( !myNewID.IsEmpty() )
|
||||||
theCommand->SetObject( myNewID );
|
theCommand->SetObject( myNewID );
|
||||||
|
|
||||||
// Convert the following set of commands into smesh.GetFilterFromCriteria(criteria)
|
// Convert the following set of commands into smesh.GetFilterFromCriteria(criteria)
|
||||||
// aFilter0x2aaab0487080 = aFilterManager.CreateFilter()
|
// aFilter0x2aaab0487080 = aFilterManager.CreateFilter()
|
||||||
// aFilter0x2aaab0487080.SetCriteria(aCriteria)
|
// aFilter0x2aaab0487080.SetCriteria(aCriteria)
|
||||||
@ -4845,7 +4845,7 @@ void _pyFilter::Process( const Handle(_pyCommand)& theCommand)
|
|||||||
void _pyFilter::Flush()
|
void _pyFilter::Flush()
|
||||||
{
|
{
|
||||||
if ( myNewID.IsEmpty() ) return;
|
if ( myNewID.IsEmpty() ) return;
|
||||||
|
|
||||||
list< Handle(_pyCommand) >::iterator cmd = myArgCmds.begin();
|
list< Handle(_pyCommand) >::iterator cmd = myArgCmds.begin();
|
||||||
for ( ; cmd != myArgCmds.end(); ++cmd )
|
for ( ; cmd != myArgCmds.end(); ++cmd )
|
||||||
if ( !(*cmd)->IsEmpty() )
|
if ( !(*cmd)->IsEmpty() )
|
||||||
@ -4982,7 +4982,7 @@ _pyHypothesisReader::_pyHypothesisReader()
|
|||||||
// ...
|
// ...
|
||||||
// dim="2">
|
// dim="2">
|
||||||
// <python-wrap>
|
// <python-wrap>
|
||||||
// <accumulative-methods>
|
// <accumulative-methods>
|
||||||
// SetEnforcedVertex,
|
// SetEnforcedVertex,
|
||||||
// SetEnforcedVertexNamed
|
// SetEnforcedVertexNamed
|
||||||
// </accumulative-methods>
|
// </accumulative-methods>
|
||||||
|
@ -2504,7 +2504,7 @@ void SMESH_Mesh_i::CheckGeomModif( bool theIsBreakLink )
|
|||||||
}
|
}
|
||||||
old2newShapeMap.Bind( group->GetShape(), groupsData.back()._shape );
|
old2newShapeMap.Bind( group->GetShape(), groupsData.back()._shape );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// store assigned hypotheses
|
// store assigned hypotheses
|
||||||
@ -6168,8 +6168,8 @@ SMESH::SMESH_Mesh_ptr SMESH_Mesh_i::GetMesh()
|
|||||||
/*!
|
/*!
|
||||||
* \brief Return false if GetMeshInfo() return incorrect information that may
|
* \brief Return false if GetMeshInfo() return incorrect information that may
|
||||||
* happen if mesh data is not yet fully loaded from the file of study.
|
* happen if mesh data is not yet fully loaded from the file of study.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
@ -7035,6 +7035,16 @@ TListOfListOfInt SMESH_Mesh_i::findConcurrentSubMeshes()
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Set the number of threads for a parallel computation
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void SMESH_Mesh_i::SetNbThreads(int nbThreads){
|
||||||
|
_impl->SetNbThreads(nbThreads);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Convert submesh ids into submesh interfaces
|
* \brief Convert submesh ids into submesh interfaces
|
||||||
@ -7227,7 +7237,7 @@ smIdType SMESH_MeshPartDS::MinNodeID() const
|
|||||||
{
|
{
|
||||||
if ( _meshDS ) return _meshDS->MinNodeID();
|
if ( _meshDS ) return _meshDS->MinNodeID();
|
||||||
return NbNodes() == 0 ? 0 : (*_elements[ SMDSAbs_Node ].begin())->GetID();
|
return NbNodes() == 0 ? 0 : (*_elements[ SMDSAbs_Node ].begin())->GetID();
|
||||||
}
|
}
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
smIdType SMESH_MeshPartDS::MaxElementID() const
|
smIdType SMESH_MeshPartDS::MaxElementID() const
|
||||||
{
|
{
|
||||||
|
@ -226,7 +226,7 @@ public:
|
|||||||
const char* file,
|
const char* file,
|
||||||
CORBA::Boolean withRequiredGroups);
|
CORBA::Boolean withRequiredGroups);
|
||||||
|
|
||||||
|
|
||||||
template<class SPECLS>
|
template<class SPECLS>
|
||||||
void ExportPartToMEDCommon(SPECLS& speCls,
|
void ExportPartToMEDCommon(SPECLS& speCls,
|
||||||
SMESH::SMESH_IDSource_ptr meshPart,
|
SMESH::SMESH_IDSource_ptr meshPart,
|
||||||
@ -571,7 +571,7 @@ public:
|
|||||||
* Persistence of geometry tick
|
* Persistence of geometry tick
|
||||||
*/
|
*/
|
||||||
int& MainShapeTick() { return _mainShapeTick; }
|
int& MainShapeTick() { return _mainShapeTick; }
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Sets list of notebook variables used for Mesh operations separated by ":" symbol
|
* Sets list of notebook variables used for Mesh operations separated by ":" symbol
|
||||||
@ -673,6 +673,8 @@ private:
|
|||||||
SMESH::submesh_array_array& theSubMeshOrder,
|
SMESH::submesh_array_array& theSubMeshOrder,
|
||||||
const bool theIsDump);
|
const bool theIsDump);
|
||||||
|
|
||||||
|
void SetNbThreads(int nbThreads);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Finds concurrent sub-meshes
|
* \brief Finds concurrent sub-meshes
|
||||||
*/
|
*/
|
||||||
|
@ -216,7 +216,7 @@ NO_NAME = "NoName"
|
|||||||
def GetName(obj):
|
def GetName(obj):
|
||||||
"""
|
"""
|
||||||
Return a name of an object
|
Return a name of an object
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
object name
|
object name
|
||||||
"""
|
"""
|
||||||
@ -429,26 +429,26 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
def init_smesh(self,geompyD = None):
|
def init_smesh(self,geompyD = None):
|
||||||
"""
|
"""
|
||||||
Set Geometry component
|
Set Geometry component
|
||||||
"""
|
"""
|
||||||
#print("init_smesh")
|
#print("init_smesh")
|
||||||
self.UpdateStudy(geompyD)
|
self.UpdateStudy(geompyD)
|
||||||
notebook.myStudy = salome.myStudy
|
notebook.myStudy = salome.myStudy
|
||||||
|
|
||||||
def Mesh(self, obj=0, name=0):
|
def Mesh(self, obj=0, name=0):
|
||||||
"""
|
"""
|
||||||
Create a mesh. This mesh can be either
|
Create a mesh. This mesh can be either
|
||||||
|
|
||||||
* an empty mesh not bound to geometry, if *obj* == 0
|
* an empty mesh not bound to geometry, if *obj* == 0
|
||||||
* an empty mesh bound to geometry, if *obj* is GEOM.GEOM_Object
|
* an empty mesh bound to geometry, if *obj* is GEOM.GEOM_Object
|
||||||
* a mesh wrapping a :class:`CORBA mesh <SMESH.SMESH_Mesh>` given as *obj* parameter.
|
* a mesh wrapping a :class:`CORBA mesh <SMESH.SMESH_Mesh>` given as *obj* parameter.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
obj: either
|
obj: either
|
||||||
|
|
||||||
1. a :class:`CORBA mesh <SMESH.SMESH_Mesh>` got by calling e.g.
|
1. a :class:`CORBA mesh <SMESH.SMESH_Mesh>` got by calling e.g.
|
||||||
::
|
::
|
||||||
|
|
||||||
salome.myStudy.FindObjectID("0:1:2:3").GetObject()
|
salome.myStudy.FindObjectID("0:1:2:3").GetObject()
|
||||||
|
|
||||||
2. a geometrical object for meshing
|
2. a geometrical object for meshing
|
||||||
3. none.
|
3. none.
|
||||||
@ -648,7 +648,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
if sc:
|
if sc:
|
||||||
sb.LoadWith(sc, self)
|
sb.LoadWith(sc, self)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def SetEnablePublish( self, theIsEnablePublish ):
|
def SetEnablePublish( self, theIsEnablePublish ):
|
||||||
"""
|
"""
|
||||||
Set enable publishing in the study. Calling SetEnablePublish( False ) allows to
|
Set enable publishing in the study. Calling SetEnablePublish( False ) allows to
|
||||||
@ -677,7 +677,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
Create a Mesh object(s) importing data from the given MED file
|
Create a Mesh object(s) importing data from the given MED file
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
a tuple ( list of class :class:`Mesh` instances,
|
a tuple ( list of class :class:`Mesh` instances,
|
||||||
:class:`SMESH.DriverMED_ReadStatus` )
|
:class:`SMESH.DriverMED_ReadStatus` )
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -744,7 +744,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
Returns:
|
Returns:
|
||||||
an instance of class :class:`Mesh`
|
an instance of class :class:`Mesh`
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:meth:`Mesh.Append`
|
:meth:`Mesh.Append`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -778,7 +778,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
Create a mesh by copying a part of another mesh.
|
Create a mesh by copying a part of another mesh.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
meshPart: a part of mesh to copy, either
|
meshPart: a part of mesh to copy, either
|
||||||
:class:`mesh, sub-mesh, group or filter <SMESH.SMESH_IDSource>`.
|
:class:`mesh, sub-mesh, group or filter <SMESH.SMESH_IDSource>`.
|
||||||
To copy nodes or elements not forming any mesh object,
|
To copy nodes or elements not forming any mesh object,
|
||||||
pass result of :meth:`Mesh.GetIDSource` as *meshPart*
|
pass result of :meth:`Mesh.GetIDSource` as *meshPart*
|
||||||
@ -810,7 +810,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
meshName: an optional name of the new mesh. If omitted, the mesh name is kept.
|
meshName: an optional name of the new mesh. If omitted, the mesh name is kept.
|
||||||
toCopyGroups: to create groups in the new mesh.
|
toCopyGroups: to create groups in the new mesh.
|
||||||
toReuseHypotheses: to reuse hypotheses of the *sourceMesh*.
|
toReuseHypotheses: to reuse hypotheses of the *sourceMesh*.
|
||||||
toCopyElements: to copy mesh elements present on non-modified sub-shapes of
|
toCopyElements: to copy mesh elements present on non-modified sub-shapes of
|
||||||
*sourceMesh*.
|
*sourceMesh*.
|
||||||
Returns:
|
Returns:
|
||||||
tuple ( ok, newMesh, newGroups, newSubMeshes, newHypotheses, invalidEntries )
|
tuple ( ok, newMesh, newGroups, newSubMeshes, newHypotheses, invalidEntries )
|
||||||
@ -1285,7 +1285,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
Returns:
|
Returns:
|
||||||
minimum distance value
|
minimum distance value
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:meth:`GetMinDistance`
|
:meth:`GetMinDistance`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -1313,7 +1313,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
:class:`SMESH.Measure` structure or None if input data is invalid
|
:class:`SMESH.Measure` structure or None if input data is invalid
|
||||||
See also:
|
See also:
|
||||||
:meth:`MinDistance`
|
:meth:`MinDistance`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -1360,7 +1360,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
Returns:
|
Returns:
|
||||||
tuple of six values (minX, minY, minZ, maxX, maxY, maxZ)
|
tuple of six values (minX, minY, minZ, maxX, maxY, maxZ)
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:meth:`GetBoundingBox`
|
:meth:`GetBoundingBox`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -1381,7 +1381,7 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
Returns:
|
Returns:
|
||||||
:class:`SMESH.Measure` structure
|
:class:`SMESH.Measure` structure
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:meth:`BoundingBox`
|
:meth:`BoundingBox`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -1460,14 +1460,14 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
def GetGravityCenter(self, obj):
|
def GetGravityCenter(self, obj):
|
||||||
"""
|
"""
|
||||||
Get gravity center of all nodes of a mesh object.
|
Get gravity center of all nodes of a mesh object.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
obj: :class:`mesh, sub-mesh, group or filter <SMESH.SMESH_IDSource>`
|
obj: :class:`mesh, sub-mesh, group or filter <SMESH.SMESH_IDSource>`
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Three components of the gravity center (x,y,z)
|
Three components of the gravity center (x,y,z)
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:meth:`Mesh.BaryCenter`
|
:meth:`Mesh.BaryCenter`
|
||||||
"""
|
"""
|
||||||
if isinstance(obj, Mesh): obj = obj.mesh
|
if isinstance(obj, Mesh): obj = obj.mesh
|
||||||
@ -1481,11 +1481,11 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ):
|
|||||||
"""
|
"""
|
||||||
Computes a radian measure of an angle defined by 3 points: <(p1,p2,p3)
|
Computes a radian measure of an angle defined by 3 points: <(p1,p2,p3)
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
p1,p2,p3: coordinates of 3 points defined by either SMESH.PointStruct
|
p1,p2,p3: coordinates of 3 points defined by either SMESH.PointStruct
|
||||||
or list [x,y,z]
|
or list [x,y,z]
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Angle in radians
|
Angle in radians
|
||||||
"""
|
"""
|
||||||
if isinstance( p1, list ): p1 = PointStruct(*p1)
|
if isinstance( p1, list ): p1 = PointStruct(*p1)
|
||||||
@ -1551,7 +1551,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
It also has methods to define groups of mesh elements, to modify a mesh (by addition of
|
It also has methods to define groups of mesh elements, to modify a mesh (by addition of
|
||||||
new nodes and elements and by changing the existing entities), to get information
|
new nodes and elements and by changing the existing entities), to get information
|
||||||
about a mesh and to export a mesh in different formats.
|
about a mesh and to export a mesh in different formats.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
geom = 0
|
geom = 0
|
||||||
mesh = 0
|
mesh = 0
|
||||||
@ -1843,7 +1843,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
return self.smeshpyD.Evaluate(self.mesh, geom)
|
return self.smeshpyD.Evaluate(self.mesh, geom)
|
||||||
|
|
||||||
|
|
||||||
def Compute(self, geom=0, discardModifs=False, refresh=False):
|
def Compute(self, geom=0, discardModifs=False, refresh=False, nbThreads=0):
|
||||||
"""
|
"""
|
||||||
Compute the mesh and return the status of the computation
|
Compute the mesh and return the status of the computation
|
||||||
|
|
||||||
@ -1853,6 +1853,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
a last total re-compute and that may prevent successful partial re-compute,
|
a last total re-compute and that may prevent successful partial re-compute,
|
||||||
then the mesh is cleaned before Compute()
|
then the mesh is cleaned before Compute()
|
||||||
refresh: if *True*, Object Browser is automatically updated (when running in GUI)
|
refresh: if *True*, Object Browser is automatically updated (when running in GUI)
|
||||||
|
nbThreads: Number of threads to use for a parallel computation
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
True or False
|
True or False
|
||||||
@ -1864,6 +1865,8 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
try:
|
try:
|
||||||
if discardModifs and self.mesh.HasModificationsToDiscard(): # issue 0020693
|
if discardModifs and self.mesh.HasModificationsToDiscard(): # issue 0020693
|
||||||
self.mesh.Clear()
|
self.mesh.Clear()
|
||||||
|
# Setting parallel parameters
|
||||||
|
self.mesh.SetNbThreads(nbThreads)
|
||||||
ok = self.smeshpyD.Compute(self.mesh, geom)
|
ok = self.smeshpyD.Compute(self.mesh, geom)
|
||||||
except SALOME.SALOME_Exception as ex:
|
except SALOME.SALOME_Exception as ex:
|
||||||
print("Mesh computation failed, exception caught:")
|
print("Mesh computation failed, exception caught:")
|
||||||
@ -2081,12 +2084,12 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
def SetMeshOrder(self, submeshes):
|
def SetMeshOrder(self, submeshes):
|
||||||
"""
|
"""
|
||||||
Set priority of sub-meshes. It works in two ways:
|
Set priority of sub-meshes. It works in two ways:
|
||||||
|
|
||||||
* For sub-meshes with assigned algorithms of same dimension generating mesh of
|
* For sub-meshes with assigned algorithms of same dimension generating mesh of
|
||||||
*several dimensions*, it sets the order in which the sub-meshes are computed.
|
*several dimensions*, it sets the order in which the sub-meshes are computed.
|
||||||
* For the rest sub-meshes, it sets the order in which the sub-meshes are checked
|
* For the rest sub-meshes, it sets the order in which the sub-meshes are checked
|
||||||
when looking for meshing parameters to apply to a sub-shape. To impose the
|
when looking for meshing parameters to apply to a sub-shape. To impose the
|
||||||
order in which sub-meshes with uni-dimensional algorithms are computed,
|
order in which sub-meshes with uni-dimensional algorithms are computed,
|
||||||
call **submesh.Compute()** in a desired order.
|
call **submesh.Compute()** in a desired order.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
@ -2300,23 +2303,23 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
meshPart: a part of mesh (:class:`sub-mesh, group or filter <SMESH.SMESH_IDSource>`)
|
meshPart: a part of mesh (:class:`sub-mesh, group or filter <SMESH.SMESH_IDSource>`)
|
||||||
to export instead of the mesh
|
to export instead of the mesh
|
||||||
autoDimension: if *True* (default), a space dimension of a MED mesh can be either
|
autoDimension: if *True* (default), a space dimension of a MED mesh can be either
|
||||||
|
|
||||||
- 1D if all mesh nodes lie on OX coordinate axis, or
|
- 1D if all mesh nodes lie on OX coordinate axis, or
|
||||||
- 2D if all mesh nodes lie on XOY coordinate plane, or
|
- 2D if all mesh nodes lie on XOY coordinate plane, or
|
||||||
- 3D in the rest cases.
|
- 3D in the rest cases.
|
||||||
|
|
||||||
If *autoDimension* is *False*, the space dimension is always 3.
|
If *autoDimension* is *False*, the space dimension is always 3.
|
||||||
fields: list of GEOM fields defined on the shape to mesh.
|
fields: list of GEOM fields defined on the shape to mesh.
|
||||||
geomAssocFields: each character of this string means a need to export a
|
geomAssocFields: each character of this string means a need to export a
|
||||||
corresponding field; correspondence between fields and characters
|
corresponding field; correspondence between fields and characters
|
||||||
is following:
|
is following:
|
||||||
|
|
||||||
- 'v' stands for "_vertices_" field;
|
- 'v' stands for "_vertices_" field;
|
||||||
- 'e' stands for "_edges_" field;
|
- 'e' stands for "_edges_" field;
|
||||||
- 'f' stands for "_faces_" field;
|
- 'f' stands for "_faces_" field;
|
||||||
- 's' stands for "_solids_" field.
|
- 's' stands for "_solids_" field.
|
||||||
|
|
||||||
zTolerance (float): tolerance in Z direction. If Z coordinate of a node is
|
zTolerance (float): tolerance in Z direction. If Z coordinate of a node is
|
||||||
close to zero within a given tolerance, the coordinate is set to zero.
|
close to zero within a given tolerance, the coordinate is set to zero.
|
||||||
If *ZTolerance* is negative (default), the node coordinates are kept as is.
|
If *ZTolerance* is negative (default), the node coordinates are kept as is.
|
||||||
saveNumbers(boolean) : enable saving numbers of nodes and cells.
|
saveNumbers(boolean) : enable saving numbers of nodes and cells.
|
||||||
@ -2371,8 +2374,8 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
the typical use is auto_groups=False.
|
the typical use is auto_groups=False.
|
||||||
version (int): define the version (xy, where version is x.y.z) of MED file format.
|
version (int): define the version (xy, where version is x.y.z) of MED file format.
|
||||||
For instance med 3.2.1 is coded 3*10+2 = 32, med 4.0.0 is coded 4*10+0 = 40.
|
For instance med 3.2.1 is coded 3*10+2 = 32, med 4.0.0 is coded 4*10+0 = 40.
|
||||||
The rules of compatibility to write a mesh in an older version than
|
The rules of compatibility to write a mesh in an older version than
|
||||||
the current version depend on the current version. For instance,
|
the current version depend on the current version. For instance,
|
||||||
with med 4.0 it is possible to write/append med files in 4.0.0 (default)
|
with med 4.0 it is possible to write/append med files in 4.0.0 (default)
|
||||||
or 3.2.1 or 3.3.1 formats.
|
or 3.2.1 or 3.3.1 formats.
|
||||||
If the version is equal to -1, the version is not changed (default).
|
If the version is equal to -1, the version is not changed (default).
|
||||||
@ -2387,8 +2390,8 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
|
|
||||||
If *autoDimension* is *False*, the space dimension is always 3.
|
If *autoDimension* is *False*, the space dimension is always 3.
|
||||||
fields: list of GEOM fields defined on the shape to mesh.
|
fields: list of GEOM fields defined on the shape to mesh.
|
||||||
geomAssocFields: each character of this string means a need to export a
|
geomAssocFields: each character of this string means a need to export a
|
||||||
corresponding field; correspondence between fields and characters
|
corresponding field; correspondence between fields and characters
|
||||||
is following:
|
is following:
|
||||||
|
|
||||||
- 'v' stands for "_vertices_" field;
|
- 'v' stands for "_vertices_" field;
|
||||||
@ -2396,7 +2399,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
- 'f' stands for "_faces_" field;
|
- 'f' stands for "_faces_" field;
|
||||||
- 's' stands for "_solids_" field.
|
- 's' stands for "_solids_" field.
|
||||||
|
|
||||||
zTolerance (float): tolerance in Z direction. If Z coordinate of a node is
|
zTolerance (float): tolerance in Z direction. If Z coordinate of a node is
|
||||||
close to zero within a given tolerance, the coordinate is set to zero.
|
close to zero within a given tolerance, the coordinate is set to zero.
|
||||||
If *ZTolerance* is negative (default), the node coordinates are kept as is.
|
If *ZTolerance* is negative (default), the node coordinates are kept as is.
|
||||||
saveNumbers (boolean) : enable saving numbers of nodes and cells.
|
saveNumbers (boolean) : enable saving numbers of nodes and cells.
|
||||||
@ -2564,7 +2567,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
|
|
||||||
If **autoDimension** is *False*, the space dimension is always 3.
|
If **autoDimension** is *False*, the space dimension is always 3.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
print("WARNING: ExportToMED() is deprecated, use ExportMED() instead")
|
print("WARNING: ExportToMED() is deprecated, use ExportMED() instead")
|
||||||
# process positional arguments
|
# process positional arguments
|
||||||
#args = [i for i in args if i not in [SMESH.MED_V2_1, SMESH.MED_V2_2]] # backward compatibility
|
#args = [i for i in args if i not in [SMESH.MED_V2_1, SMESH.MED_V2_2]] # backward compatibility
|
||||||
@ -2641,7 +2644,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Create an empty standalone mesh group
|
Create an empty standalone mesh group
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
elementType: the :class:`type <SMESH.ElementType>` of elements in the group;
|
elementType: the :class:`type <SMESH.ElementType>` of elements in the group;
|
||||||
either of (SMESH.NODE, SMESH.EDGE, SMESH.FACE, SMESH.VOLUME)
|
either of (SMESH.NODE, SMESH.EDGE, SMESH.FACE, SMESH.VOLUME)
|
||||||
name: the name of the mesh group
|
name: the name of the mesh group
|
||||||
|
|
||||||
@ -2881,7 +2884,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
|
|
||||||
def GetGroups(self, elemType = SMESH.ALL):
|
def GetGroups(self, elemType = SMESH.ALL):
|
||||||
"""
|
"""
|
||||||
Get the list of groups existing in the mesh in the order of creation
|
Get the list of groups existing in the mesh in the order of creation
|
||||||
(starting from the oldest one)
|
(starting from the oldest one)
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
@ -3592,7 +3595,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Return the type of mesh element or node
|
Return the type of mesh element or node
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
the value from :class:`SMESH.ElementType` enumeration.
|
the value from :class:`SMESH.ElementType` enumeration.
|
||||||
Return SMESH.ALL if element or node with the given ID does not exist
|
Return SMESH.ALL if element or node with the given ID does not exist
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -3886,7 +3889,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Returns:
|
Returns:
|
||||||
a list of three double values
|
a list of three double values
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:meth:`smeshBuilder.GetGravityCenter`
|
:meth:`smeshBuilder.GetGravityCenter`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -4004,7 +4007,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Returns:
|
Returns:
|
||||||
tuple of six values (minX, minY, minZ, maxX, maxY, maxZ)
|
tuple of six values (minX, minY, minZ, maxX, maxY, maxZ)
|
||||||
|
|
||||||
See Also:
|
See Also:
|
||||||
:meth:`GetBoundingBox()`
|
:meth:`GetBoundingBox()`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -4027,7 +4030,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Returns:
|
Returns:
|
||||||
:class:`SMESH.Measure` structure
|
:class:`SMESH.Measure` structure
|
||||||
|
|
||||||
See Also:
|
See Also:
|
||||||
:meth:`BoundingBox()`
|
:meth:`BoundingBox()`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -4163,7 +4166,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Returns:
|
Returns:
|
||||||
an object (a new group or a temporary :class:`SMESH.SMESH_IDSource`) holding
|
an object (a new group or a temporary :class:`SMESH.SMESH_IDSource`) holding
|
||||||
IDs of new and/or found 0D elements. IDs of 0D elements
|
IDs of new and/or found 0D elements. IDs of 0D elements
|
||||||
can be retrieved from the returned object by
|
can be retrieved from the returned object by
|
||||||
calling :meth:`GetIDs() <SMESH.SMESH_IDSource.GetIDs>`
|
calling :meth:`GetIDs() <SMESH.SMESH_IDSource.GetIDs>`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -4537,7 +4540,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
edges = self.GetIDSource( edges, SMESH.EDGE )
|
edges = self.GetIDSource( edges, SMESH.EDGE )
|
||||||
unRegister.set( edges )
|
unRegister.set( edges )
|
||||||
return self.editor.Get1DBranches( edges, startNode )
|
return self.editor.Get1DBranches( edges, startNode )
|
||||||
|
|
||||||
def FindSharpEdges( self, angle, addExisting=False ):
|
def FindSharpEdges( self, angle, addExisting=False ):
|
||||||
"""
|
"""
|
||||||
Return sharp edges of faces and non-manifold ones.
|
Return sharp edges of faces and non-manifold ones.
|
||||||
@ -4604,7 +4607,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
def AddNodeOnSegment(self, Node1, Node2, position = 0.5):
|
def AddNodeOnSegment(self, Node1, Node2, position = 0.5):
|
||||||
"""
|
"""
|
||||||
Replace each triangle bound by Node1-Node2 segment with
|
Replace each triangle bound by Node1-Node2 segment with
|
||||||
two triangles by connecting a node made on the link with a node
|
two triangles by connecting a node made on the link with a node
|
||||||
opposite to the link.
|
opposite to the link.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
@ -4874,7 +4877,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
a quadrangle.
|
a quadrangle.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
theElements: the faces to be splitted. This can be either
|
theElements: the faces to be splitted. This can be either
|
||||||
:class:`mesh, sub-mesh, group, filter <SMESH.SMESH_IDSource>`
|
:class:`mesh, sub-mesh, group, filter <SMESH.SMESH_IDSource>`
|
||||||
or a list of face IDs. By default all quadrangles are split
|
or a list of face IDs. By default all quadrangles are split
|
||||||
|
|
||||||
@ -4943,8 +4946,8 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
to numerical functors.
|
to numerical functors.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
* 1 if 1-3 diagonal is better,
|
* 1 if 1-3 diagonal is better,
|
||||||
* 2 if 2-4 diagonal is better,
|
* 2 if 2-4 diagonal is better,
|
||||||
* 0 if error occurs.
|
* 0 if error occurs.
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
@ -5096,7 +5099,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
This operation uses :doc:`pattern_mapping` functionality for splitting.
|
This operation uses :doc:`pattern_mapping` functionality for splitting.
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
theObject: the object from which the list of hexahedrons is taken;
|
theObject: the object from which the list of hexahedrons is taken;
|
||||||
this is :class:`mesh, sub-mesh, group or filter <SMESH.SMESH_IDSource>`
|
this is :class:`mesh, sub-mesh, group or filter <SMESH.SMESH_IDSource>`
|
||||||
theNode000,theNode001: within the range [0,7]; gives the orientation of the
|
theNode000,theNode001: within the range [0,7]; gives the orientation of the
|
||||||
pattern relatively each hexahedron: the (0,0,0) key-point of the pattern
|
pattern relatively each hexahedron: the (0,0,0) key-point of the pattern
|
||||||
@ -5588,7 +5591,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
of all steps, else - size of each step
|
of all steps, else - size of each step
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
the list of created :class:`groups <SMESH.SMESH_GroupBase>` if *MakeGroups* == True,
|
the list of created :class:`groups <SMESH.SMESH_GroupBase>` if *MakeGroups* == True,
|
||||||
empty list otherwise
|
empty list otherwise
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -5644,7 +5647,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
- a list of tree components of the point or
|
- a list of tree components of the point or
|
||||||
- a node ID or
|
- a node ID or
|
||||||
- a GEOM point
|
- a GEOM point
|
||||||
angles: list of angles in radians. Nodes at each extrusion step are rotated
|
angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
anglesVariation: forces the computation of rotation angles as linear
|
anglesVariation: forces the computation of rotation angles as linear
|
||||||
variation of the given *angles* along path steps
|
variation of the given *angles* along path steps
|
||||||
@ -5862,13 +5865,13 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
PathShape: optional shape (edge or wire) which defines the sub-mesh of the mesh defined by *PathObject* if the mesh contains not only path segments, else it can be None
|
PathShape: optional shape (edge or wire) which defines the sub-mesh of the mesh defined by *PathObject* if the mesh contains not only path segments, else it can be None
|
||||||
NodeStart: the first or the last node on the path. Defines the direction of extrusion
|
NodeStart: the first or the last node on the path. Defines the direction of extrusion
|
||||||
HasAngles: not used obsolete
|
HasAngles: not used obsolete
|
||||||
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
LinearVariation: forces the computation of rotation angles as linear
|
LinearVariation: forces the computation of rotation angles as linear
|
||||||
variation of the given Angles along path steps
|
variation of the given Angles along path steps
|
||||||
HasRefPoint: allows using the reference point
|
HasRefPoint: allows using the reference point
|
||||||
RefPoint: optional scaling and rotation center (mass center of the extruded
|
RefPoint: optional scaling and rotation center (mass center of the extruded
|
||||||
elements by default). The User can specify any point as the Reference Point.
|
elements by default). The User can specify any point as the Reference Point.
|
||||||
*RefPoint* can be either GEOM Vertex, [x,y,z] or :class:`SMESH.PointStruct`
|
*RefPoint* can be either GEOM Vertex, [x,y,z] or :class:`SMESH.PointStruct`
|
||||||
MakeGroups: forces the generation of new groups from existing ones
|
MakeGroups: forces the generation of new groups from existing ones
|
||||||
ScaleFactors: optional scale factors to apply during extrusion
|
ScaleFactors: optional scale factors to apply during extrusion
|
||||||
@ -5876,7 +5879,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
else *scaleFactors* [i] is applied to nodes at the i-th extrusion step
|
else *scaleFactors* [i] is applied to nodes at the i-th extrusion step
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
||||||
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>`
|
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>`
|
||||||
Example: :ref:`tui_extrusion_along_path`
|
Example: :ref:`tui_extrusion_along_path`
|
||||||
"""
|
"""
|
||||||
@ -5896,7 +5899,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Angles,AnglesParameters,hasVars = ParseAngles(Angles)
|
Angles,AnglesParameters,hasVars = ParseAngles(Angles)
|
||||||
ScaleFactors,ScalesParameters,hasVars = ParseParameters(ScaleFactors)
|
ScaleFactors,ScalesParameters,hasVars = ParseParameters(ScaleFactors)
|
||||||
Parameters = AnglesParameters + var_separator + \
|
Parameters = AnglesParameters + var_separator + \
|
||||||
RefPoint.parameters + var_separator + ScalesParameters
|
RefPoint.parameters + var_separator + ScalesParameters
|
||||||
self.mesh.SetParameters(Parameters)
|
self.mesh.SetParameters(Parameters)
|
||||||
return self.editor.ExtrusionAlongPathObjects(Nodes, Edges, Faces,
|
return self.editor.ExtrusionAlongPathObjects(Nodes, Edges, Faces,
|
||||||
PathObject, PathShape, NodeStart,
|
PathObject, PathShape, NodeStart,
|
||||||
@ -5917,7 +5920,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
Path: 1D mesh or 1D sub-mesh, along which proceeds the extrusion
|
Path: 1D mesh or 1D sub-mesh, along which proceeds the extrusion
|
||||||
NodeStart: the start node from Path. Defines the direction of extrusion
|
NodeStart: the start node from Path. Defines the direction of extrusion
|
||||||
HasAngles: not used obsolete
|
HasAngles: not used obsolete
|
||||||
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
LinearVariation: forces the computation of rotation angles as linear
|
LinearVariation: forces the computation of rotation angles as linear
|
||||||
variation of the given Angles along path steps
|
variation of the given Angles along path steps
|
||||||
@ -5960,7 +5963,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
PathShape: shape (edge) defines the sub-mesh for the path
|
PathShape: shape (edge) defines the sub-mesh for the path
|
||||||
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
||||||
HasAngles: not used obsolete
|
HasAngles: not used obsolete
|
||||||
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
HasRefPoint: allows using the reference point
|
HasRefPoint: allows using the reference point
|
||||||
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
||||||
@ -6001,7 +6004,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
PathShape: shape (edge) defines the sub-mesh for the path
|
PathShape: shape (edge) defines the sub-mesh for the path
|
||||||
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
||||||
HasAngles: not used obsolete
|
HasAngles: not used obsolete
|
||||||
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
HasRefPoint: allows using the reference point
|
HasRefPoint: allows using the reference point
|
||||||
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
||||||
@ -6012,7 +6015,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
variation of the given Angles along path steps
|
variation of the given Angles along path steps
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
||||||
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` if *MakeGroups* == True,
|
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` if *MakeGroups* == True,
|
||||||
only :class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` otherwise
|
only :class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` otherwise
|
||||||
Example: :ref:`tui_extrusion_along_path`
|
Example: :ref:`tui_extrusion_along_path`
|
||||||
@ -6039,7 +6042,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
PathShape: shape (edge) defines the sub-mesh for the path
|
PathShape: shape (edge) defines the sub-mesh for the path
|
||||||
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
||||||
HasAngles: not used obsolete
|
HasAngles: not used obsolete
|
||||||
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
HasRefPoint: allows using the reference point
|
HasRefPoint: allows using the reference point
|
||||||
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
||||||
@ -6050,7 +6053,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
variation of the given Angles along path steps
|
variation of the given Angles along path steps
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
||||||
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` if *MakeGroups* == True,
|
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` if *MakeGroups* == True,
|
||||||
only :class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` otherwise
|
only :class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` otherwise
|
||||||
Example: :ref:`tui_extrusion_along_path`
|
Example: :ref:`tui_extrusion_along_path`
|
||||||
@ -6077,7 +6080,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
PathShape: shape (edge) defines the sub-mesh for the path
|
PathShape: shape (edge) defines the sub-mesh for the path
|
||||||
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
NodeStart: the first or the last node on the edge. Defines the direction of extrusion
|
||||||
HasAngles: not used obsolete
|
HasAngles: not used obsolete
|
||||||
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
Angles: list of angles in radians. Nodes at each extrusion step are rotated
|
||||||
around *basePoint*, additionally to previous steps.
|
around *basePoint*, additionally to previous steps.
|
||||||
HasRefPoint: allows using the reference point
|
HasRefPoint: allows using the reference point
|
||||||
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
RefPoint: the reference point around which the shape is rotated (the mass center of the shape by default).
|
||||||
@ -6088,7 +6091,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
variation of the given Angles along path steps
|
variation of the given Angles along path steps
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
list of created :class:`groups <SMESH.SMESH_GroupBase>` and
|
||||||
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` if *MakeGroups* == True,
|
:class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` if *MakeGroups* == True,
|
||||||
only :class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` otherwise
|
only :class:`error code <SMESH.SMESH_MeshEditor.Extrusion_Error>` otherwise
|
||||||
Example: :ref:`tui_extrusion_along_path`
|
Example: :ref:`tui_extrusion_along_path`
|
||||||
@ -6498,7 +6501,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
theObject (SMESH.SMESH_IDSource): the source object (mesh, sub-mesh, group or filter)
|
theObject (SMESH.SMESH_IDSource): the source object (mesh, sub-mesh, group or filter)
|
||||||
theValue (float): signed offset size
|
theValue (float): signed offset size
|
||||||
MakeGroups (boolean): forces the generation of new groups from existing ones
|
MakeGroups (boolean): forces the generation of new groups from existing ones
|
||||||
CopyElements (boolean): if *NewMeshName* is empty, True means to keep original elements,
|
CopyElements (boolean): if *NewMeshName* is empty, True means to keep original elements,
|
||||||
False means to remove original elements.
|
False means to remove original elements.
|
||||||
NewMeshName (string): the name of a mesh to create. If empty, offset elements are added to this mesh
|
NewMeshName (string): the name of a mesh to create. If empty, offset elements are added to this mesh
|
||||||
|
|
||||||
@ -6879,7 +6882,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
theElements: container of elements to duplicate. It can be a
|
theElements: container of elements to duplicate. It can be a
|
||||||
:class:`mesh, sub-mesh, group, filter <SMESH.SMESH_IDSource>`
|
:class:`mesh, sub-mesh, group, filter <SMESH.SMESH_IDSource>`
|
||||||
or a list of element IDs. If *theElements* is
|
or a list of element IDs. If *theElements* is
|
||||||
a :class:`Mesh`, elements of highest dimension are duplicated
|
a :class:`Mesh`, elements of highest dimension are duplicated
|
||||||
theGroupName: a name of group to contain the generated elements.
|
theGroupName: a name of group to contain the generated elements.
|
||||||
@ -6889,7 +6892,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
in any group.
|
in any group.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
a :class:`group <SMESH.SMESH_Group>` where the new elements are added.
|
a :class:`group <SMESH.SMESH_Group>` where the new elements are added.
|
||||||
None if *theGroupName* == "".
|
None if *theGroupName* == "".
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -7158,7 +7161,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
return self.editor.CreateHoleSkin( radius, theShape, groupName, theNodesCoords )
|
return self.editor.CreateHoleSkin( radius, theShape, groupName, theNodesCoords )
|
||||||
|
|
||||||
def MakePolyLine(self, segments, groupName='', isPreview=False ):
|
def MakePolyLine(self, segments, groupName='', isPreview=False ):
|
||||||
"""
|
"""
|
||||||
Create a polyline consisting of 1D mesh elements each lying on a 2D element of
|
Create a polyline consisting of 1D mesh elements each lying on a 2D element of
|
||||||
the initial triangle mesh. Positions of new nodes are found by cutting the mesh by the
|
the initial triangle mesh. Positions of new nodes are found by cutting the mesh by the
|
||||||
plane passing through pairs of points specified by each :class:`SMESH.PolySegment` structure.
|
plane passing through pairs of points specified by each :class:`SMESH.PolySegment` structure.
|
||||||
@ -7176,7 +7179,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
segments: list of :class:`SMESH.PolySegment` defining positions of cutting planes.
|
segments: list of :class:`SMESH.PolySegment` defining positions of cutting planes.
|
||||||
groupName: optional name of a group where created mesh segments will be added.
|
groupName: optional name of a group where created mesh segments will be added.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
editor = self.editor
|
editor = self.editor
|
||||||
if isPreview:
|
if isPreview:
|
||||||
editor = self.mesh.GetMeshEditPreviewer()
|
editor = self.mesh.GetMeshEditPreviewer()
|
||||||
@ -7331,10 +7334,10 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
"""
|
"""
|
||||||
Computes a radian measure of an angle defined by 3 nodes: <(node1,node2,node3)
|
Computes a radian measure of an angle defined by 3 nodes: <(node1,node2,node3)
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
node1,node2,node3: IDs of the three nodes
|
node1,node2,node3: IDs of the three nodes
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Angle in radians [0,PI]. -1 if failure case.
|
Angle in radians [0,PI]. -1 if failure case.
|
||||||
"""
|
"""
|
||||||
p1 = self.GetNodeXYZ( node1 )
|
p1 = self.GetNodeXYZ( node1 )
|
||||||
|
Loading…
Reference in New Issue
Block a user