smesh/doc/salome/gui/SMESH/defining_hypotheses_tui.htm

883 lines
20 KiB
HTML
Raw Normal View History

2005-11-28 14:57:47 +05:00
<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
<head>
<title>Defining hypotheses TUI</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
<!--
P { margin-top:0pt; margin-bottom:0pt; }
LI.kadov-P { }
-->
</style><style type="text/css">
<!--
p.whs1 { font-weight:bold; }
p.whs2 { font-family:'Lucida Console' , monospace; }
p.whs3 { font-family:'Times New Roman' , serif; }
p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
p.whs6 { margin-top:0pt; margin-bottom:0pt; }
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.whs4 {margin-top:1pt;margin-bottom:1pt; }";
strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
strNSS += "p.whs6 {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; }
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>
<script type="text/javascript" language="javascript1.2">
2005-11-28 14:57:47 +05:00
<!--
if (window.gbWhTopic)
{
if (window.setRelStartPage)
2005-11-28 14:57:47 +05:00
{
addTocInfo("MESH module\nTUI Scripts\nDefining Hypotheses");
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)
{
setRelStartPage("index.htm");
2005-11-28 14:57:47 +05:00
autoSync(1);
sendSyncInfo();
sendAveInfoOut();
}
2005-11-28 14:57:47 +05:00
}
else
if (window.gbIE4)
document.location.reload();
//-->
</script>
</head>
<body><script type="text/javascript" language="javascript1.2">
<!--
if (window.writeIntopicBar)
writeIntopicBar(4);
//-->
</script>
2005-11-28 14:57:47 +05:00
<h1>Defining Hypotheses and Algorithms</h1>
<h3>Defining 1D Hypotheses</h3>
<p class="whs1"><a name=bookmark>1D Arithmetic</a></p>
<p>&nbsp;</p>
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
geompy</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs2">import smesh</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">box = geompy.MakeBoxDXDYDZ(10.,
10., 10.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">geompy.addToStudy(box,
&quot;Box&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a hexahedral
mesh on the box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa = smesh.Mesh(box,
&quot;Box : hexahedrical mesh&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a Regular 1D
algorithm for edges</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D = hexa.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># define &quot;Arithmetic1D&quot;
hypothesis to cut all edges in several segments with increasing arithmetic
length </p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D.Arithmetic1D(1,
4)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a quadrangle
2D algorithm for faces</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Quadrangle()</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a hexahedron
3D algorithm for solids</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Hexahedron()</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Compute() </p>
<p class="whs2">&nbsp;</p>
<h4><a name=bookmark9>Deflection 1D and Number of Segments</a></h4>
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
geompy</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs2">import smesh</p>
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a face from
arc and straight segment</p>
<p class="whs2">px = geompy.MakeVertex(100.,
0. &nbsp;, 0.
&nbsp;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">py = geompy.MakeVertex(0.
&nbsp;, 100.,
0. &nbsp;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">pz = geompy.MakeVertex(0.
&nbsp;, 0. &nbsp;,
100.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs2">exy = geompy.MakeEdge(px,
py)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">arc = geompy.MakeArc(py,
pz, px)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs2">wire = geompy.MakeWire([exy,
arc])</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs2">isPlanarFace = 1</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">face1 = geompy.MakeFace(wire,
isPlanarFace)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">geompy.addToStudy(face1,&quot;Face1&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># get edges from the
face</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">e_straight,e_arc =
geompy.SubShapeAll(face1, geompy.ShapeType[&quot;EDGE&quot;])</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">geompy.addToStudyInFather(face1,
e_arc, &quot;Arc Edge&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># create hexahedral mesh</p>
<p class="whs2">hexa = smesh.Mesh(face1,
&quot;Face : triangle mesh&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;NumberOfSegments&quot;
hypothesis to cut a straight edge in a fixed number of segments</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D = hexa.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D.NumberOfSegments(6)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;MaxElementArea&quot;
hypothesis</p>
<p class="whs2">algo2D = hexa.Triangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo2D.MaxElementArea(70.0)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define a local &quot;Deflection1D&quot;
hypothesis on the arc</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local = hexa.Segment(e_arc)</p>
<p class="whs2">algo_local.Deflection1D(1.0)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># compute the mesh</p>
<p class="whs2">hexa.Compute() </p>
<h4><a name=bookmark2>Start and End Length</a></h4>
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from
geompy import *</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs2">import smesh</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">box = MakeBoxDXDYDZ(10.,
10., 10.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">addToStudy(box, &quot;Box&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># get one edge of the
box to put local hypothesis on</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">p5 = MakeVertex(5.,
0., 0.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">EdgeX = GetEdgeNearPoint(box,
p5)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">addToStudyInFather(box,
EdgeX, &quot;Edge [0,0,0 - 10,0,0]&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a hexahedral
mesh on the box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa = smesh.Mesh(box,
&quot;Box : hexahedrical mesh&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># set algorithms</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D = hexa.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Quadrangle()</p>
<p class="whs2">hexa.Hexahedron()</p>
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;NumberOfSegments&quot;
hypothesis to cut an edge in a fixed number of segments</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D.NumberOfSegments(4)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a local hypothesis</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;StartEndLength&quot;
hypothesis to cut an edge in several segments with increasing geometric
length</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local.StartEndLength(1,
6)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># define &quot;Propagation&quot;
hypothesis that propagates all other hypothesis</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># on all edges on the
opposite side in case of quadrangular faces</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local.Propagation()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Compute() </p>
2005-11-28 14:57:47 +05:00
<h4><a name=bookmark3>Average Length</a></h4>
2005-11-28 14:57:47 +05:00
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from
geompy import *</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs2">import smesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">box = MakeBoxDXDYDZ(10.,
10., 10.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">addToStudy(box, &quot;Box&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># get one edge of the
box to put local hypothesis on</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">p5 = MakeVertex(5.,
0., 0.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">EdgeX = GetEdgeNearPoint(box,
p5)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">addToStudyInFather(box,
EdgeX, &quot;Edge [0,0,0 - 10,0,0]&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a hexahedral
mesh on the box</p>
<p class="whs2">hexa = smesh.Mesh(box,
&quot;Box : hexahedrical mesh&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># set algorithms</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D = hexa.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Quadrangle()</p>
<p class="whs2">hexa.Hexahedron()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;NumberOfSegments&quot;
hypothesis to cut all edges in a fixed number of segments</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D.NumberOfSegments(4)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a sub-mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;LocalLength&quot;
hypothesis to cut an edge in several segments with the same length</p>
<p class="whs2">algo_local.LocalLength(2.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;Propagation&quot;
hypothesis that propagates all other hypothesis</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># on all edges on the
opposite side in case of quadrangular faces</p>
<p class="whs2">algo_local.Propagation()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># compute the mesh</p>
<p class="whs2">hexa.Compute() </p>
<h3>Defining 2D and 3D hypotheses</h3>
<h4><a name=bookmark4>Maximum Element Area</a></h4>
<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import
smesh</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs4">import salome</p>
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># create a face</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">px &nbsp;&nbsp;=
geompy.MakeVertex(100., 0. &nbsp;,
0. &nbsp;)</p>
<p class="whs4">py &nbsp;&nbsp;=
geompy.MakeVertex(0. &nbsp;,
100., 0. &nbsp;)</p>
<p class="whs4">pz &nbsp;&nbsp;=
geompy.MakeVertex(0. &nbsp;,
0. &nbsp;, 100.)</p>
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">vxy = geompy.MakeVector(px,
py)</p>
<p class="whs4">arc = geompy.MakeArc(py,
pz, px)</p>
<p class="whs4">wire = geompy.MakeWire([vxy,
arc])</p>
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">isPlanarFace = 1</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">face = geompy.MakeFace(wire,
2005-11-28 14:57:47 +05:00
isPlanarFace)</p>
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># add the face in the
study</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">id_face = geompy.addToStudy(face,
&quot;Face to be meshed&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># create a mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">tria_mesh = smesh.Mesh(face,
&quot;Face : triangulation&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># define 1D meshing:</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo = tria_mesh.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo.NumberOfSegments(20)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># define 2D meshing:</p>
2005-11-28 14:57:47 +05:00
<p class="whs5">&nbsp;</p>
<p class="whs5"># assign triangulation
algorithm</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo = tria_mesh.Triangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># apply &quot;Max Element
Area&quot; hypothesis to each triangle</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo.MaxElementArea(100)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs5"># compute the mesh</p>
<p class="whs4">tria_mesh.Compute()
&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
<h4><a name=bookmark5>Maximum Element Volume</a></h4>
<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import
geompy</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs4">import smesh</p>
<p class="whs4">&nbsp;</p>
<p class="whs5"># create a cylinder</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">cyl = geompy.MakeCylinderRH(30.,
50.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">geompy.addToStudy(cyl,
&quot;cyl&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
<p class="whs5"># create a mesh on
the cylinder</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">tetra = smesh.Mesh(cyl,
&quot;Cylinder : tetrahedrical mesh&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
<p class="whs5"># assign algorithms</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo1D = tetra.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo2D = tetra.Triangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
<p class="whs5"># assign 1D and 2D
hypotheses</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo1D.NumberOfSegments(7)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo2D.MaxElementArea(150.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
<p class="whs5"># assign Max Element
Volume hypothesis</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo3D.MaxElementVolume(200.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
<p class="whs5"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">ret = tetra.Compute()</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">if ret == 0:</p>
<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print
&quot;probleme when computing the mesh&quot;</p>
<p class="whs4">else:</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print
&quot;Computation succeded&quot; </p>
2005-11-28 14:57:47 +05:00
<h4><a name=bookmark6>Length from Edges</a></h4>
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
geompy</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs2">import smesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create sketchers</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F
0 0:TT 70 0:TT 70 70:TT 0 70:WW&quot;)</p>
<p class="whs2">sketcher2 = geompy.MakeSketcher(&quot;Sketcher:F
20 20:TT 50 20:TT 50 50:TT 20 50:WW&quot;)</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a face from
two wires</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">isPlanarFace = 1</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">face1 = geompy.MakeFaces([sketcher1,
sketcher2], isPlanarFace)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">geompy.addToStudy(face1,
&quot;Face1&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">tria = smesh.Mesh(face1,
2005-11-28 14:57:47 +05:00
&quot;Face : triangle 2D mesh&quot;)</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># Define 1D meshing</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D = tria.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D.NumberOfSegments(2)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create and assign the
algorithm for 2D meshing with triangles</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo2D = tria.Triangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create and assign &quot;LengthFromEdges&quot;
hypothesis to build triangles<span style="font-family: 'Times New Roman', serif;">
based on the length of the edges taken from the wire</span></p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo2D.LengthFromEdges()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">tria.Compute() </p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<h3>Defining Additional Hypotheses</h3>
2005-11-28 14:57:47 +05:00
<h4><a name=bookmark7>Propagation</a></h4>
<p class="whs2">from geompy import
*</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">import smesh</p>
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">box = MakeBoxDXDYDZ(10.,
10., 10.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">addToStudy(box, &quot;Box&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># get one edge of the
box to put local hypothesis on</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">p5 = MakeVertex(5.,
0., 0.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">EdgeX = GetEdgeNearPoint(box,
p5)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">addToStudyInFather(box,
EdgeX, &quot;Edge [0,0,0 - 10,0,0]&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># create a hexahedral
mesh on the box</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa = smesh.Mesh(box,
&quot;Box : hexahedrical mesh&quot;)</p>
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># set global algorithms
and hypotheses</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D = hexa.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Quadrangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">hexa.Hexahedron()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo1D.NumberOfSegments(4)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># create a sub-mesh with
local 1D hypothesis and propagation</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># define &quot;Arithmetic1D&quot;
hypothesis to cut an edge in several segments with increasing length</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local.Arithmetic1D(1,
4)</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
<p class="whs3"># define &quot;Propagation&quot;
hypothesis that propagates all other 1D hypotheses</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># from all edges on the
opposite side of a face in case of quadrangular faces</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">algo_local.Propagation()</p>
2005-11-28 14:57:47 +05:00
<p class="whs2">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs3"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p><span style="font-family: 'Lucida Console', monospace;">hexa.Compute()</span>
</p>
2005-11-28 14:57:47 +05:00
<h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>
2005-11-28 14:57:47 +05:00
<p class="whs4">import geompy</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">import smesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a box</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">box = geompy.MakeBoxDXDYDZ(10.,
10., 10.)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">geompy.addToStudy(box,
&quot;Box&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># 1. Create a hexahedral
2005-11-28 14:57:47 +05:00
mesh on the box</p>
<p class="whs4">hexa = smesh.Mesh(box,
&quot;Box : hexahedrical mesh&quot;)</p>
<p class="whs6">&nbsp;</p>
<p class="whs6"># create a Regular 1D algorithm
for edges</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo1D = hexa.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a quadrangle 2D
algorithm for faces</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo2D = hexa.Quadrangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a hexahedron 3D
algorithm for solids</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo3D = hexa.Hexahedron()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># define hypotheses</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo1D.Arithmetic1D(1,
2005-11-28 14:57:47 +05:00
4)</p>
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">hexa.Compute()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># 2. Create a tetrahedral
mesh on the box</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">tetra = smesh.Mesh(box,
&quot;Box : tetrahedrical mesh&quot;)</p>
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a Regular 1D algorithm
for edges</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo1D = tetra.Segment()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a Mefisto 2D algorithm
for faces</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo2D = tetra.Triangle()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a Netgen 3D algorithm
for solids</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># define hypotheses</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo1D.Arithmetic1D(1,
4)</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo2D.LengthFromEdges()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">tetra.Compute()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># 3. Create a tetrahedral
mesh on the box with NETGEN_2D3D algorithm</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">tetraN = smesh.Mesh(box,
&quot;Box : tetrahedrical mesh by NETGEN_2D3D&quot;)</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># create a Netgen_2D3D
algorithm for solids</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">is3D = 1</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">algo3D = tetraN.Netgen(is3D)</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># define hypotheses</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">n23_params = algo3D.Parameters()</p>
2005-11-28 14:57:47 +05:00
<p class="whs6">&nbsp;</p>
2005-11-28 14:57:47 +05:00
<p class="whs6"># compute the mesh</p>
2005-11-28 14:57:47 +05:00
<p class="whs4">tetraN.Compute()
</p>
2005-11-28 14:57:47 +05:00
<script type="text/javascript" language="javascript1.2">
<!--
if (window.writeIntopicBar)
writeIntopicBar(0);
//-->
</script>
</body>
</html>