2005-11-28 14:57:47 +05:00
<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
< html >
< head >
< title > Grouping Elements< / title >
< meta http-equiv = "content-type" content = "text/html; charset=windows-1252" >
< meta name = "generator" content = "RoboHelp by eHelp Corporation www.ehelp.com" > < style type = "text/css" >
<!--
p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
p.whs2 { margin-top:0pt; margin-bottom:0pt; }
2005-11-30 19:59:56 +05:00
img_whs3 { border:none; width:430px; height:391px; float:none; border-style:none; }
img_whs4 { border:none; float:none; width:463px; height:417px; border-style:none; }
img_whs5 { border:none; width:541px; height:417px; float:none; border-style:none; }
img_whs6 { border:none; width:394px; height:425px; float:none; border-style:none; }
img_whs7 { border:none; float:none; width:368px; height:379px; border-style:none; }
img_whs8 { border:none; float:none; width:344px; height:381px; border-style:none; }
img_whs9 { border:none; width:314px; height:351px; float:none; border-style:none; }
img_whs10 { border:none; float:none; width:319px; height:351px; border-style:none; }
img_whs11 { border:none; float:none; width:304px; height:352px; border-style:none; }
img_whs12 { border:none; width:318px; height:355px; float:none; border-style:none; }
img_whs13 { border:none; float:none; width:318px; height:355px; border-style:none; }
img_whs14 { border:none; float:none; width:320px; height:354px; border-style:none; }
2005-11-28 14:57:47 +05:00
-->
< / style > < script type = "text/javascript" language = "JavaScript" >
<!--
if ((navigator.appName == "Netscape") & & (parseInt(navigator.appVersion) == 4))
{
var strNSS = "< style type = 'text/css' > " ;
strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
strNSS +="< / style > ";
document.write(strNSS);
}
//-->
< / script >
< script type = "text/javascript" language = "JavaScript" title = "WebHelpInlineScript" >
<!--
function reDo() {
if (innerWidth != origWidth || innerHeight != origHeight)
location.reload();
}
if ((parseInt(navigator.appVersion) == 4) & & (navigator.appName == "Netscape")) {
origWidth = innerWidth;
origHeight = innerHeight;
onresize = reDo;
}
onerror = null;
//-->
< / script >
< style type = "text/css" >
<!--
div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
2006-06-01 17:39:17 +06:00
p.WebHelpNavBar { text-align:right; }
2005-11-28 14:57:47 +05:00
-->
< / style > < script type = "text/javascript" language = "javascript1.2" src = "whmsg.js" > < / script >
< script type = "text/javascript" language = "javascript" src = "whver.js" > < / script >
< script type = "text/javascript" language = "javascript1.2" src = "whproxy.js" > < / script >
< script type = "text/javascript" language = "javascript1.2" src = "whutils.js" > < / script >
< script type = "text/javascript" language = "javascript1.2" src = "whtopic.js" > < / script >
2006-06-01 17:39:17 +06:00
< script type = "text/javascript" language = "javascript1.2" >
2005-11-28 14:57:47 +05:00
<!--
if (window.gbWhTopic)
{
2006-06-01 17:39:17 +06:00
if (window.setRelStartPage)
2005-11-28 14:57:47 +05:00
{
addTocInfo("MESH module\nTUI Scripts\nGrouping Elements");
2006-06-01 17:39:17 +06:00
addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
2005-11-28 14:57:47 +05:00
}
if (window.setRelStartPage)
{
2006-06-01 17:39:17 +06:00
setRelStartPage("index.htm");
2005-11-28 14:57:47 +05:00
autoSync(1);
sendSyncInfo();
sendAveInfoOut();
}
2006-06-01 17:39:17 +06:00
2005-11-28 14:57:47 +05:00
}
else
if (window.gbIE4)
document.location.reload();
//-->
< / script >
2006-06-01 17:39:17 +06:00
< / head >
< body > < script type = "text/javascript" language = "javascript1.2" >
<!--
if (window.writeIntopicBar)
writeIntopicBar(4);
//-->
< / script >
2005-11-28 14:57:47 +05:00
< h1 > Grouping Elements< / h1 >
2005-11-30 19:59:56 +05:00
< h3 > < a name = bookmark > Create a Standalone Group< / a > < / h3 >
2005-11-28 14:57:47 +05:00
< p class = "whs1" > < / p >
< p class = "whs1" > import SMESH< / p >
< p class = "whs1" > import SMESH_mechanic< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > smesh =
SMESH_mechanic.smesh< / p >
< p class = "whs1" > mesh =
SMESH_mechanic.mesh< / p >
< p class = "whs1" > salome = SMESH_mechanic.salome< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilterMgr = smesh.CreateFilterManager()< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA >
100< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateMoreThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
100 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # print the result< / p >
< p class = "whs1" > print " Criterion:
Area > 100 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group consisting
of faces with area > 100< / p >
< p class = "whs1" > aGroup = mesh.CreateGroup(
SMESH.FACE, " Area > 100" )< / p >
< p class = "whs1" > aGroup.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > < span style = "font-family: 'Lucida Console', monospace;" > salome.sg.updateObjBrowser(1)< / span >
< / p >
< p class = "whs2" > < / p >
2005-11-30 19:59:56 +05:00
< p class = "whs2" > < img src = "pics/create_group.png" x-maintain-ratio = "TRUE" width = "430px" height = "391px" border = "0" class = "img_whs3" > < / p >
2006-05-06 14:51:48 +06:00
< h3 > < a name = bookmark5 > Create a Group on Geometry< / a > < / h3 >
2005-11-30 19:59:56 +05:00
2006-06-08 20:05:08 +06:00
< p > Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use < b > smesh< / b > package.
< br >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > import salome< / p >
< p class = "whs1" > import geompy< / p >
< p class = "whs1" > < / p >
2006-05-06 14:51:48 +06:00
< p class = "whs1" > import SMESH< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > import StdMeshers< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > smesh = salome.lcc.FindOrLoadComponent(" FactoryServer" ,
" SMESH" )< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create a box< / p >
< p class = "whs1" > box = geompy.MakeBox(0.,
0., 0., 100., 100., 100.)< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # add the box to the study< / p >
< p class = "whs1" > idbox = geompy.addToStudy(box,
" box" )< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # add the first face of
the box to the study< / p >
< p class = "whs1" > subShapeList = geompy.SubShapeAll(box,
geompy.ShapeType[" FACE" ])< / p >
< p class = "whs1" > face = subShapeList[0]< / p >
< p class = "whs1" > name = geompy.SubShapeName(face,
box)< / p >
< p class = "whs1" > idface = geompy.addToStudyInFather(box,
face, name)< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create a hypothesis< / p >
< p class = "whs1" > numberOfSegments
= 7< / p >
< p class = "whs1" > hypNbSeg = smesh.CreateHypothesis(" NumberOfSegments" ,
" libStdMeshersEngine.so" )< / p >
< p class = "whs1" > hypNbSeg.SetNumberOfSegments(numberOfSegments)< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create algorithms< / p >
< p class = "whs1" > regular1D = smesh.CreateHypothesis(" Regular_1D" ,
" libStdMeshersEngine.so" )< / p >
< p class = "whs1" > quad2D = smesh.CreateHypothesis(" Quadrangle_2D" ,
" libStdMeshersEngine.so" )< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # initialize a mesh with
the box< / p >
< p class = "whs1" > mesh = smesh.CreateMesh(box)< / p >
< p class = "whs2" > < / p >
2006-05-06 14:51:48 +06:00
< p class = "whs2" > # add hypotheses and algorithms
to the box< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > mesh.AddHypothesis(box,hypNbSeg)< / p >
< p class = "whs1" > mesh.AddHypothesis(box,regular1D)< / p >
< p class = "whs1" > mesh.AddHypothesis(box,quad2D)< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # compute the mesh< / p >
< p class = "whs1" > ret = smesh.Compute(mesh,box)< / p >
< p class = "whs1" > if ret == 0:< / p >
< p class = "whs1" > print
" probleme when computing the mesh" < / p >
2006-05-06 14:51:48 +06:00
< p class = "whs1" > else:< / p >
< p class = "whs1" > print
" Computation succeded" < / p >
2005-11-30 19:59:56 +05:00
< p class = "whs2" > < / p >
< p class = "whs2" > # create geometry groups
2006-05-06 14:51:48 +06:00
on the face< / p >
2005-11-30 19:59:56 +05:00
2006-05-06 14:51:48 +06:00
< p class = "whs1" > aGeomGroup1 = geompy.CreateGroup(face,
geompy.ShapeType[" FACE" ])< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > geompy.AddObject(aGeomGroup1,
1)< / p >
< p class = "whs1" > < / p >
2006-05-06 14:51:48 +06:00
< p class = "whs1" > aGeomGroup2 = geompy.CreateGroup(face,
geompy.ShapeType[" EDGE" ])< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > geompy.AddObject(aGeomGroup2,
3)< / p >
< p class = "whs1" > geompy.AddObject(aGeomGroup2,
6)< / p >
< p class = "whs1" > geompy.AddObject(aGeomGroup2,
8)< / p >
< p class = "whs1" > geompy.AddObject(aGeomGroup2,
10)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > geompy.addToStudy(aGeomGroup1,
" Group on Faces" )< / p >
< p class = "whs1" > geompy.addToStudy(aGeomGroup2,
" Group on Edges" )< / p >
2006-05-06 14:51:48 +06:00
< p class = "whs2" > < / p >
< p class = "whs2" > # create SMESH groups< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE,
2006-05-06 14:51:48 +06:00
" SMESHGroup1" ,< / p >
< p class = "whs1" > aGeomGroup1)< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE,
" SMESHGroup2" , aGeomGroup2)< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > < span style = "font-family: 'Lucida Console', monospace;" > salome.sg.updateObjBrowser(1)< / span >
2006-05-06 14:51:48 +06:00
< / p >
2005-11-30 19:59:56 +05:00
< p class = "whs2" > < / p >
2005-11-28 14:57:47 +05:00
< h3 > < a name = bookmark1 > Edit a Group< / a > < / h3 >
< p class = "whs1" > import SMESH< / p >
< p class = "whs1" > import SMESH_mechanic< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > smesh =
SMESH_mechanic.smesh< / p >
< p class = "whs1" > mesh =
SMESH_mechanic.mesh< / p >
< p class = "whs1" > salome = SMESH_mechanic.salome< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilterMgr = smesh.CreateFilterManager()< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA >
20< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateMoreThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
30 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area > 20< / p >
< p class = "whs1" > aGroup = mesh.CreateGroup(
SMESH.FACE, " Area > 20" )< / p >
< p class = "whs1" > aGroup.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area > 20 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA >
60< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateMoreThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
60 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create a group of elements
with area [20; 60] by removing elements with area > 60 from group
aGroup < / p >
< p class = "whs1" > aGroup.Remove(anIds)< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # print the result< / p >
< p class = "whs1" > aGroupElemIDs =
aGroup.GetListOfID()< / p >
< p class = "whs1" > print " Criterion:
20 < Area < 60 = " , len( aGroupElemIDs )< / p >
< p class = "whs1" > for i in range(
len( aGroupElemIDs ) ):< / p >
< p class = "whs1" > print
aGroupElemIDs[ i ]< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > < span style = "font-family: 'Lucida Console', monospace;" > salome.sg.updateObjBrowser(1)< / span >
< / p >
< p class = "whs2" > < / p >
2005-11-30 19:59:56 +05:00
< p class = "whs2" > < img src = "pics/editing_groups1.png" x-maintain-ratio = "TRUE" width = "463px" height = "417px" border = "0" class = "img_whs4" > < img src = "pics/editing_groups2.png" x-maintain-ratio = "TRUE" width = "541px" height = "417px" border = "0" class = "img_whs5" > < / p >
2005-11-28 14:57:47 +05:00
< h3 > < a name = bookmark2 > Union of two groups< / a > < / h3 >
< p class = "whs1" > import SMESH< / p >
< p class = "whs1" > import SMESH_mechanic< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > smesh =
SMESH_mechanic.smesh< / p >
< p class = "whs1" > mesh =
SMESH_mechanic.mesh< / p >
< p class = "whs1" > salome = SMESH_mechanic.salome< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilterMgr = smesh.CreateFilterManager()< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA >
20< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateMoreThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
20 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area > 20< / p >
< p class = "whs1" > aGroup1 = mesh.CreateGroup(
SMESH.FACE, " Area > 20" )< / p >
< p class = "whs1" > aGroup1.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area > 20 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA = 20< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateEqualTo()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
20 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create a group by adding
elements with area > 20< / p >
< p class = "whs1" > aGroup2 = mesh.CreateGroup(
SMESH.FACE, " Area = 20" )< / p >
< p class = "whs1" > aGroup2.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area = 20 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create union group :
area > = 20< / p >
< p class = "whs1" > aGroup3 = mesh.UnionGroups(aGroup1,
aGroup2, " Area > = 20" )< / p >
< p class = "whs1" > print " Criterion:
Area > = 20 Nb = " , len( aGroup3.GetListOfID() )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA <
20< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateLessThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
20 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area < 20< / p >
< p class = "whs1" > aGroup4 = mesh.CreateGroup(
SMESH.FACE, " Area < 20" )< / p >
< p class = "whs1" > aGroup4.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area < 20 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create union group :
area > = 20 and area < 20< / p >
< p class = "whs1" > aGroup5 = mesh.UnionGroups(aGroup3,
aGroup4, " Any Area" )< / p >
< p class = "whs1" > print " Criterion:
Any Area Nb = " , len( aGroup5.GetListOfID() )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > salome.sg.updateObjBrowser(1)
< / p >
< p class = "whs1" > < / p >
2005-11-30 19:59:56 +05:00
< p class = "whs1" > < img src = "pics/union_groups1.png" x-maintain-ratio = "TRUE" width = "394px" height = "425px" border = "0" class = "img_whs6" > < / p >
< p class = "whs1" > < / p >
< p class = "whs1" > < img src = "pics/union_groups2.png" x-maintain-ratio = "TRUE" width = "368px" height = "379px" border = "0" class = "img_whs7" > < img src = "pics/union_groups3.png" x-maintain-ratio = "TRUE" width = "344px" height = "381px" border = "0" class = "img_whs8" > < / p >
< p class = "whs1" > < / p >
2005-11-28 14:57:47 +05:00
< h3 > < a name = bookmark3 > Intersection of two groups< / a > < / h3 >
< p class = "whs1" > import SMESH< / p >
< p class = "whs1" > import SMESH_mechanic< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > smesh =
SMESH_mechanic.smesh< / p >
< p class = "whs1" > mesh =
SMESH_mechanic.mesh< / p >
< p class = "whs1" > salome = SMESH_mechanic.salome< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilterMgr = smesh.CreateFilterManager()< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA >
20< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateMoreThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
20 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area > 20< / p >
< p class = "whs1" > aGroup1 = mesh.CreateGroup(
SMESH.FACE, " Area > 20" )< / p >
< p class = "whs1" > aGroup1.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area > 20 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA <
60< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateLessThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
60 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area < 60< / p >
< p class = "whs1" > aGroup2 = mesh.CreateGroup(
SMESH.FACE, " Area < 60" )< / p >
< p class = "whs1" > aGroup2.Add( anIds
)< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area < 60 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create an intersection
of groups : 20 < area < 60< / p >
< p class = "whs1" > aGroup3 = mesh.IntersectGroups(aGroup1,
aGroup2, " 20 < Area < 60" )< / p >
< p class = "whs1" > print " Criterion:
20 < Area < 60 Nb = " , len( aGroup3.GetListOfID() )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > < span style = "font-family: 'Lucida Console', monospace;" > salome.sg.updateObjBrowser(1)< / span >
< / p >
< p class = "whs2" > < / p >
2005-11-30 19:59:56 +05:00
< p class = "whs2" > < img src = "pics/intersect_groups1.png" x-maintain-ratio = "TRUE" width = "314px" height = "351px" border = "0" class = "img_whs9" > < img src = "pics/intersect_groups2.png" x-maintain-ratio = "TRUE" width = "319px" height = "351px" border = "0" class = "img_whs10" > < img src = "pics/intersect_groups3.png" x-maintain-ratio = "TRUE" width = "304px" height = "352px" border = "0" class = "img_whs11" > < / p >
2005-11-28 14:57:47 +05:00
< h3 > < a name = bookmark4 > Cut of two groups< / a > < / h3 >
< p class = "whs1" > import SMESH< / p >
< p class = "whs1" > import SMESH_mechanic< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > smesh =
SMESH_mechanic.smesh< / p >
< p class = "whs1" > mesh =
SMESH_mechanic.mesh< / p >
< p class = "whs1" > salome = SMESH_mechanic.salome< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilterMgr = smesh.CreateFilterManager()< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA >
20< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateMoreThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
20 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area > 20< / p >
< p class = "whs1" > aGroupMain = mesh.CreateGroup(
SMESH.FACE, " Area > 20" )< / p >
< p class = "whs1" > aGroupMain.Add(
anIds )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area > 20 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # Criterion : AREA <
60< / p >
< p class = "whs2" > < / p >
< p class = "whs1" > aFunctor = aFilterMgr.CreateArea()< / p >
< p class = "whs1" > aPredicate = aFilterMgr.CreateLessThan()< / p >
< p class = "whs1" > aPredicate.SetNumFunctor(
aFunctor )< / p >
< p class = "whs1" > aPredicate.SetMargin(
60 )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > aFilter = aFilterMgr.CreateFilter()< / p >
< p class = "whs1" > aFilter.SetPredicate(
aPredicate )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > anIds = aFilter.GetElementsId(
mesh )< / p >
< p class = "whs1" > < / p >
< p class = "whs2" > # create a group by adding
elements with area < 60< / p >
< p class = "whs1" > aGroupTool = mesh.CreateGroup(
SMESH.FACE, " Area < 60" )< / p >
< p class = "whs1" > aGroupTool.Add(
anIds )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > print " Criterion:
Area < 60 Nb = " , len( anIds )< / p >
< p class = "whs1" > for i in range(
len( anIds ) ):< / p >
< p class = "whs1" > print
anIds[ i ]< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > # create an intersection
of groups : area > = 60< / p >
< p class = "whs1" > aGroupRes = mesh.CutGroups(aGroupMain,
aGroupTool, " Area > = 60" )< / p >
< p class = "whs1" > print " Criterion:
Area > = 60 Nb = " , len( aGroupRes.GetListOfID() )< / p >
< p class = "whs1" > < / p >
< p class = "whs1" > salome.sg.updateObjBrowser(1)
< / p >
< p class = "whs1" > < / p >
2005-11-30 19:59:56 +05:00
< p class = "whs2" > < img src = "pics/cut_groups1.png" x-maintain-ratio = "TRUE" width = "318px" height = "355px" border = "0" class = "img_whs12" > < img src = "pics/cut_groups2.png" x-maintain-ratio = "TRUE" width = "318px" height = "355px" border = "0" class = "img_whs13" > < img src = "pics/cut_groups3.png" x-maintain-ratio = "TRUE" width = "320px" height = "354px" border = "0" class = "img_whs14" > < / p >
2005-11-28 14:57:47 +05:00
< script type = "text/javascript" language = "javascript1.2" >
<!--
if (window.writeIntopicBar)
writeIntopicBar(0);
//-->
< / script >
< / body >
< / html >