<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html
  SYSTEM "about:legacy-compat">
<html xmlns:mml = "http://www.w3.org/1998/Math/MathML" lang = "en"><head><meta charset = "UTF-8"/><meta name = "copyright" content = "(C) Copyright 2020"/><meta name = "DC.rights.owner" content = "(C) Copyright 2020"/><meta name = "DC.type" content = "concept"/><meta name = "abstract" content = "Couple design nodes in such a way that a stampable, turnable, or drillable surface is maintained."/><meta name = "description" content = "Couple design nodes in such a way that a stampable, turnable, or drillable surface is maintained."/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-linkShape.htm"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-shape-desArea-lsSurfSpline"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Stampable, Turnable, and Drillable Surfaces</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-shape-desArea-lsSurfSpline">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Stampable, Turnable, and Drillable Surfaces</h1></td></tr><tr><td class = "DocHeader4" colspan = "2"/></tr><tr><td class = "DocHeader3"><table class = "DocHeaderIntro" id = "table12"><tr><td class = "Intro1Only"><p class = "header"><p class = "abstract">
<span class = "shortdesc"> Couple design nodes in such a way that a stampable, turnable, or drillable surface
is maintained. </span>

</p>
<p>This page discusses: </p><ul><li><a href = "#tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfStamp-ctrl" id = "toc_rg" title = "">Stampable Surface (SURF_STAMP) for Shape Controller</a></li><li><a href = "#tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfStamp-sens" id = "toc_rg" title = "">Stampable Surface (SURF_STAMP) for Shape Sensitivity</a></li><li><a href = "#tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfTurn-ctrl" id = "toc_rg" title = "">Turnable Surface (SURF_TURN) for Shape Controller</a></li><li><a href = "#tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfTurn-sens" id = "toc_rg" title = "">Turnable Surface (SURF_TURN) for Shape Sensitivity</a></li><li><a href = "#tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfDrill" id = "toc_rg" title = "">Drillable Surface (SURF_DRILL)</a></li></ul>
</p></td></tr></table></td><td class = "DocHeader2"><table class = "DocTopicsSeeAlso" id = "table13"><tr><td class = "TopicsTitle">See Also</td></tr></table><table class = "DocTopicsInOtherGuides" id = "table14"><tr><td height = "8px"/></tr><tr><td class = "TopicsTitleNormal">In Other Guides</td></tr><tr><td><a title = "Defines link conditions (coupling conditions) for nodes in shape optimization." href = "../TsoCmdMap/tso-r-cmd-linkShape.htm">LINK_SHAPE</a></td></tr></table></td></tr></table>




<div class = "body conbody">

<p>
<table class = "table" id = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0"><caption/><colgroup><col style = "width:33.33333333333333%"/><col style = "width:33.33333333333333%"/><col style = "width:33.33333333333333%"/></colgroup><thead class = "thead">
<tr class = "row">
<th class = "entry" id = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__1">CLIENT / Applicable for</th>
<th class = "entry align-center" id = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__2">SHAPE_CONTROLLER</th>
<th class = "entry align-center" id = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__3">SHAPE_SENSITIVITY</th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__1">SURF_STAMP</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__3">OK</td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__1">SURF_TURN</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__3">OK</td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__1">SURF_DRILL</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-lsSurfSpline__table_6099BD74075547A6B49BAD65887849A0__entry__3">-</td>
</tr>
</tbody></table>
</p>

<div class = "section" id = "tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfStamp-ctrl"><h2 class = "title sectiontitle">Stampable Surface (SURF_STAMP) for Shape Controller</h2>

<p>Maintaining a stampable surface during optimization involves defining
a stamping direction. The stamping domain is defined using a node group.
The direction defined by the <code class = "ph codeph">CLIENT_DIR</code> parameter specifies
the stamping direction. The link condition is defined using the following
parameters:</p>
<pre class = "codeblock">
<code class = "ph codeph">
CLIENT     = SURF_STAMP
CLIENT_DIR = &lt;x_1&gt;,&lt;x_2&gt;,&lt;x_3&gt;
CS         = name_of_coord_system
</code>
</pre>
<p>The main nodes are found using the standard main criterion. The stamping
surface is defined using the given stamping direction and the cutting
edge automatically generated by <span class = "ph">Tosca Structure</span>.
All nodes of the node group are linked to this surface.</p>
<p>An additional demolding direction can be included:</p>
<pre class = "codeblock">
<code class = "ph codeph"> 
DEMOLD_DIR = &lt;x_1&gt;,&lt;x_2&gt;,&lt;x_3&gt;</code>
</pre>
<p>The demolding direction must be orthogonal to the client direction. Therefore, <span class = "ph">Tosca Structure</span> projects the demold vector onto a plane normal to the client direction.</p>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-usr-shape-desArea-lsSurfSpline__ul_9AA068EE88184A97BCC1429076439D16">
<li class = "li"> This link condition allows the definition of stamping
                            restrictions to arbitrary meshes. No special meshing conditions must be
                            taken into consideration. </li>
<li class = "li"> It is possible to define stamping restrictions
for initial components that  are not stampable in the beginning of the optimization
procedure. However, this is not recommended because the conditions for stamping are
met in the first design cycle. This might lead to large node displacements and a
distorted finite element mesh. </li>
</ul></p></span></td></tr></table>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfStamp-sens"><p><map name = "FPMap1"><area href = "#hj-top" title = "Back to Top" shape = "rect" coords = "416, 0, 435, 10"/></map><span class = "itemsprite"/></p><h2 class = "title sectiontitle">Stampable Surface (SURF_STAMP) for Shape Sensitivity</h2>

<p>A surface is stampable if all nodes lie in the same plane.
Enforcing stampable surfaces is supported for sensitivity-based shape optimizations as well.
The most important parameter is the stamping direction, defined by the <code class = "ph codeph">CLIENT_DIR</code> parameter.
Another mandatory parameter is the main group, that defines the reference edge or cutting edge for the plane where all nodes shall be moved in.
The link condition is defined using the following
parameters:</p>
<pre class = "codeblock">
<code class = "ph codeph">
CLIENT     = SURF_STAMP
CLIENT_DIR = &lt;x_1&gt;,&lt;x_2&gt;,&lt;x_3&gt;
CS         = name_of_coord_system
MAIN       = NDGR, main_node_group
</code>
</pre>

<p> In the figure below, the green dotted points are used as the stamping area and the green
highlighted edge is used as the main group. <br/><img class = "image" id = "tso-c-usr-shape-desArea-lsSurfSpline__image_tso-c-usr-shape-desArea-link-surfStamp-sens-carrier" src = "../TsoUserImages/tso-c-usr-shape-desArea-link-surfStamp-sens-carrier.png" width = "400"/><br/>
</p>


<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<p>
<ul class = "ul">
<li class = "li">This link condition allows the definition of stamping restrictions to arbitrary
meshes. No special meshing conditions must be taken into consideration. </li>
<li class = "li">The only allowed main criterion is <code class = "ph codeph">MAIN = NDGR, &lt;node_group&gt;</code>.</li>
</ul>
</p>
</span></td></tr></table>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfTurn-ctrl"><p><map name = "FPMap1"><area href = "#hj-top" title = "Back to Top" shape = "rect" coords = "416, 0, 435, 10"/></map><span class = "itemsprite"/></p><h2 class = "title sectiontitle">Turnable Surface (SURF_TURN) for Shape Controller</h2>

<p> Maintaining a turnable surface during optimization involves defining a rotation axis. The
domain that assures a turnable surface is defined using a node group; all nodes of the
specified surface node group are checked for rotation symmetry in the given rotation axis.
The link condition is defined using the following parameters: </p>
<pre class = "codeblock">
<code class = "ph codeph">
CLIENT     = SURF_TURN
CLIENT_DIR = &lt;x_1&gt;,&lt;x_2&gt;,&lt;x_3&gt;
CS         = name_of_coord_system
</code>
</pre>
<p>
The direction defined by the <code class = "ph codeph">CLIENT_DIR</code> and the origin
of the coordinate system specify the exact position and direction of
the rotation axis.
</p>
<p> The main nodes are found using the standard main criteria. In
addition, the criteria <code class = "ph codeph">MAIN = AUTO</code> is available for compatibility
reasons with sensitivity-based shape optimization. It can be seen as an alias for
<code class = "ph codeph">MAIN = MAX</code>. The turning surface is defined using the given
rotation axis and the cutting edge automatically generated by <span class = "ph">Tosca Structure</span>. All nodes of the node group are linked to this surface. </p>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-usr-shape-desArea-lsSurfSpline__ul_E7FC00643056467B9D71FBDD47126A44">
<li class = "li">
This link condition allows the definition of turning restrictions to
arbitrary meshes. No special meshing conditions must be taken into
consideration.
</li>
<li class = "li"> The referenced coordinate system must lie
exactly on the rotation axis as the algorithm always orientates the surface toward the
coordinate system. If nonsymmetrical effects occur during optimization, the correct
position of the coordinate system must be checked. </li>
<li class = "li">
It is possible to define turning restrictions for initial components
that are not turnable in the beginning of the optimization procedure.
However, this is not recommended because the conditions for turning are
met in the first design cycle. This might lead to large node displacements
and a distorted finite element mesh.
</li>
</ul></p></span></td></tr></table>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfTurn-sens"><p><map name = "FPMap1"><area href = "#hj-top" title = "Back to Top" shape = "rect" coords = "416, 0, 435, 10"/></map><span class = "itemsprite"/></p><h2 class = "title sectiontitle">Turnable Surface (SURF_TURN) for Shape Sensitivity</h2>

<p>The <code class = "ph codeph">SURF_TURN</code> manufacturing constraint for sensitivity-based shape optimization can be used
to achieve a turnable or rotational symmetric surface.</p>
<p>The important parameters are the rotational axis <code class = "ph codeph">CLIENT_DIR</code>, together with the origin,
specified by a coordinate system <code class = "ph codeph">CS</code>.
Next, the specification of "driving" area (<code class = "ph codeph">MAIN</code>) is a necessary part of the setup. It can
either be defined by providing a node group (<code class = "ph codeph">NDGR, &lt;node group name&gt;</code>), which gives very good control,
or by letting <span class = "ph">Tosca</span> find an appropriate area, which is very simple on the setup side but can fail  for complicated surfaces.</p>

<p>The link condition is defined using the following parameters:</p>
<pre class = "codeblock">
<code class = "ph codeph">
CLIENT     = SURF_STAMP
CLIENT_DIR = &lt;x_1&gt;,&lt;x_2&gt;,&lt;x_3&gt;
CS         = name_of_coord_system
MAIN       = NDGR, main_node_group | AUTO
</code>
</pre>

<p> In the figure below, the green dotted points are used as turning area and the blue
highlighted edge is used as the driving area.
<br/><img class = "image" id = "tso-c-usr-shape-desArea-lsSurfSpline__image_tso-c-usr-shape-desArea-link-surfTurn-sens-shaft" src = "../TsoUserImages/tso-c-usr-shape-desArea-link-surfTurn-sens-shaft.png" width = "400"/><br/>
</p>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<p>
<ul class = "ul">
<li class = "li">This link condition allows the definition of turning restrictions to arbitrary
meshes. No special meshing conditions must be taken into consideration. </li>
<li class = "li">The turnable surface must be connected. Otherwise, define two or more commands: one
for every disconnected area.</li>
<li class = "li">The command item <code class = "ph codeph">MAIN = AUTO</code> simplifies the setup, but it fails
in some cases: Think of the node coordinates being expressed in cylindrical
coordinates with the rotation axis as the z-direction. Then all nodes having the same
radius coordinate, must be specifiable in at least one of the other two coordinates.
For example, a "donut" like shape is impossible. Unfortunately such a failure is not
detected, which leads to the recommendation to use the <code class = "ph codeph">MAIN = NDGR,
..</code> option. </li>
<li class = "li">When using the command item <code class = "ph codeph">MAIN = AUTO</code>, a new node group with name <code class = "ph codeph">_&lt;DVC_IdName&gt;_SurfTurn_AutoMain_</code> is created,
where <code class = "ph codeph">&lt;DVC_IdName&gt;</code> is the ID_NAME of the DVCON_SHAPE command triggering the SURF_TURN manufacturing constraint.</li>
</ul>
</p>
</span></td></tr></table>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-lsSurfSpline__tso-c-usr-shape-desArea-link-surfDrill"><p><map name = "FPMap1"><area href = "#hj-top" title = "Back to Top" shape = "rect" coords = "416, 0, 435, 10"/></map><span class = "itemsprite"/></p><h2 class = "title sectiontitle">Drillable Surface (SURF_DRILL)</h2>

<p> The drill restriction is a combination of the turning and the demolding restriction.
Maintaining a drillable surface during optimization involves defining the drill axis and the
drill feed. The drilling domain is defined using a node group; all nodes of the
specified surface node group are checked for drilling in the given drill direction. The link
condition is defined using the following parameter: </p>
<pre class = "codeblock">
<code class = "ph codeph">
CLIENT     = SURF_DRILL
CLIENT_DIR = &lt;x_1&gt;,&lt;x_2&gt;,&lt;x_3&gt;
CS         = name_of_coord_system
ANGLE      = &lt;real&gt; (0° &lt; angle &lt; 45°)
</code>
</pre>
<p>The direction defined by the <code class = "ph codeph">CLIENT_DIR</code> and the origin
of the coordinate system specify the exact position and direction of
the drill axis, the angle specifies a minimum surface angle.</p>
<p>The shape of the drilling surface can be specified with an additional
undercut tolerance. The term 'drilling surface' in this case should
be interpreted in a more general sense.</p>
<pre class = "codeblock">
<code class = "ph codeph"> UNDERCUT_TOL = &lt;real&gt; (&gt;0)</code>
</pre>
<table class = "table" id = "tso-c-usr-shape-desArea-lsSurfSpline__ae233122"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-usr-shape-desArea-lsSurfSpline__image_5DE38349A3184ABA8299B142D49DA31B" src = "../TsoUserImages/ae038eb0.jpg" width = "585" height = "195"/><br/></td>
</tr>
</tbody></table>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p><ul class = "ul">
<li class = "li">This link condition allows the definition of turning restrictions to
arbitrary meshes. No special meshing conditions must be taken into
consideration.</li>
<li class = "li"> The referenced coordinate system must lie exactly on the rotation axis as the algorithm
always orientates the surface toward the coordinate system. If nonsymmetrical effects
occur during optimization, the correct position of the coordinate system must be
checked. </li>
<li class = "li">It is possible to define turning restrictions for initial components
that are not turnable in the beginning of the optimization procedure.
However, this is not recommended because the conditions for turning are
met in the first design cycle. This might lead to large node displacements
and a distorted finite element mesh.</li>
</ul></p></span></td></tr></table>


</div>


</div>

<div class = "related-links"/></td></tr></table><script type = "text/javascript" src = "../DSDocUI_Bottom34.js">/* */</script></body>
</html>
