Actions Rules for Functional Structure FEMs

You can create an action rule for use with functional structures.

This page discusses:

Arguments

All descriptions refer to objects in the CAA programming guides. The objects for this action are located in Native Apps C++ > Simulation > Physics Simulation > Mesh Creation > Meshing Geometries.

Notes:
  • Action rules take priority over entries in the user interface. If you enter a value in both places, the entry in the action rule is used and the entry in the interface is ignored.
  • The last argument in the table, MeshingRule, includes a full set of mesh parameters. You can use this argument instead of setting the other parameters individually.
Name Type Description
Mesh1DSizeValue LENGTH MeshSizeValue in Beam Mesh Part Attributes
Mesh2DSizeValue LENGTH MeshSizeValue in Surface Quadrangle Mesh Part Attributes
2DHolesSuppression 1: no / 2 yes 2DHolesSuppression in Surface Quadrangle Mesh Part Attributes
2DHolesMaxDiameter LENGTH 2DHolesMaxDiameter in Surface Quadrangle Mesh Part Attributes
AngleBetweenFaces ANGLE AngleBetweenFaces in Surface Quadrangle Mesh Part Attributes
ElementOrder 1: linear / 2: quadratic ElementOrder in Surface Quadrangle Mesh Part Attributes or Beam Mesh Part Attributes
ElementShape 1: quad dominant / 2: quads only / 3: quad minimum ElementShape in Surface Quadrangle Mesh Part Attributes
CurvatureAngle ANGLE CurvatureAngle in Surface Quadrangle Mesh Part Attributes
AutomaticMeshCapture 1: no / 2: yes AutomaticMeshCapture in Surface Quadrangle Mesh Part Attributes
AutomaticMeshCaptureTolValue LENGTH AutomaticMeshCaptureTolValue in Surface Quadrangle Mesh Part Attributes or Beam Mesh Part Attributes
AutomaticCurveCapture 1: no / 2: yes AutomaticCurveCapture in Surface Quadrangle Mesh Part Attributes
ToleranceValue_ProjectCurve LENGTH ToleranceValue of CATFmtExternalCurveLocalSpec in Surface Quadrangle Mesh Part Attributes
ConstraintToleranceValue LENGTH ToleranceValue of CATFmtExternalPointLocalSpec in Surface Quadrangle Mesh Part Attributes
OpeningMeshSize 1: no / 2: yes This attribute is linked to the attribute OpeningMeshSizeValue. "2" enables you to define OpeningMeshSizeValue
OpeningMeshSizeValue LENGTH Size1Value of CATFmtStudioDistributionSpec inSurface Quadrangle Mesh Part Attributes
NbRows 1/2/3 NbRows of CATFmtStudioBoundaryLayerSpec inSurface Quadrangle Mesh Part Attributes
Height1 LENGTH Height1 of CATFmtStudioBoundaryLayerSpec in Surface Quadrangle Mesh Part Attributes
Height2 LENGTH Height2 of CATFmtStudioBoundaryLayerSpec in Surface Quadrangle Mesh Part Attributes
Height3 LENGTH Height13 of CATFmtStudioBoundaryLayerSpec in Surface Quadrangle Mesh Part Attributes
AbsoluteSag 1: no / 2: yes AbsoluteSag in Beam Mesh Part Attributes
AbsoluteSagValue LENGTH AbsoluteSagValue in Beam Mesh Part Attributes
MeshingRule STRING

MeshRule includes the following set of mesh parameters:

  • Mesh1DSizeValue
  • Mesh2DSizeValue
  • 2DHolesSuppression
  • 2DHolesMaxDiameter
  • AngleBetweenFaces
  • ElementOrder
  • ElementShape
  • CurvatureAngle
  • AbsoluteSag
  • AbsoluteSagValue

Sample

The following sample includes all the parameters you can use for structure functional finite element models.

let SFDPanel(SldPanel)
let SFDStiffener(SldStiffener)
let SFDMember(SldMember)
let SFDOpening(SldOpening)

let Category(String)
let AttributeName(String)
let AttributeRealValue(Real)
let AttributeIntegerValue(Integer)

set SFDPanel = Parameters.GetAttributeObject("SldFeature")
set SFDStiffener = Parameters.GetAttributeObject("SldFeature")
set SFDMember = Parameters.GetAttributeObject("SldFeature")
set SFDOpening = Parameters.GetAttributeObject("SldFeature")

if( NULL <> SFDPanel)
{
	set Category = SFDPanel.Category
	if("DeckPanel" == Category )
	{
		Parameters.SetAttributeInteger("AutomaticMeshCapture", 2)
		Parameters.SetAttributeDimension("AutomaticMeshCaptureTolValue", .006, "LENGTH")
		Parameters.SetAttributeInteger("AutomaticCurveCapture", 1)	
		Parameters.SetAttributeString("MeshingRule", "<MeshingRules Version = \"1\">
		<Rule Type = \"CATFmtSurfaceQuadMeshRule\" Activity = \"true\" PersistentSpec = \"false\">
		  <Parameters>
		      <ElementOrder IValue = \"1\"/>
		      <ElementShape IValue = \"1\" DefaultValue=\"1\"/>
		      <MeshSize Unit = \"MM\" DValue = \"840\"/>
		      <AutoMap BValue = \"false\"/>
		  </Parameters>
		</Rule>
		<Rule Type = \"CATFmtSurfaceQuadTopologyRule\" Activity = \"true\" PersistentSpec = \"false\">
		    <Parameters>
		      <AngleBetweenCurves Unit = \"DEGREE\" DValue = \"20\" DefaultValue=\"20\"/>
		      <AngleBetweenFaces Unit = \"DEGREE\" DValue = \"20\" DefaultValue=\"20\"/>
		      <CurvatureAngle Unit = \"DEGREE\" DValue = \"20\" DefaultValue=\"20\"/>
		      <GeometrySimplification Unit = \"MM\" DValue = \"5\" Use=\"2\" FValue=\"MeshSize,0.5*MeshSize\"/>
		      <LogosSuppression BValue = \"false\"/>
		      <LogosMaxHeigth Unit = \"MM\" DValue = \"1\" Use=\"2\" FValue=\"MeshSize,0.1*MeshSize\"/>
		      <LogosMaxSize Unit = \"MM\" DValue = \"10\" Use=\"2\" FValue=\"MeshSize,MeshSize\" /> 
		  </Parameters>
		</Rule>
		<Rule Type = \"CATFmtSurfaceQuadQualityRule\" Activity = \"true\" PersistentSpec = \"false\">
		  <Parameters>
		      <WarpAngle Unit = \"DEGREE\" DValue = \"15\" DefaultValue=\"15\"/>
		      <MinAngleTria Unit = \"DEGREE\" DValue = \"19\" DefaultValue=\"19\"/>
		      <MinAngleQuad Unit = \"DEGREE\" DValue = \"45\" DefaultValue=\"45\"/>
		      <MaxAngleTria Unit = \"DEGREE\" DValue = \"135\" DefaultValue=\"135\"/>
		      <MaxAngleQuad Unit = \"DEGREE\" DValue = \"135\" DefaultValue=\"135\"/>
		      <MinLength Unit = \"MM\" DValue = \"5\" Use=\"2\" FValue=\"MeshSize,0.5*MeshSize\"/>
		      <MaxLength Unit = \"MM\" DValue = \"20\" Use=\"2\"  FValue=\"MeshSize,2.0*MeshSize\"/>
		      <Jacobian DValue = \"0.01\" Use=\"0\" DefaultValue=\"0.01\"/>    
		  </Parameters>
		</Rule>
		<Rule Type = \"CATFmtStNodalDeviationRule\" Activity = \"true\" PersistentSpec = \"false\">
		  <Parameters>
		      <MaxDeviationFromConstraint Unit = \"MM\" DValue = \"0.1\"  Use=\"2\" DefaultValue=\"0.1\" FValue=\"MeshSize,0.05*MeshSize\"/>
		      <MaxDeviationFromSurface Unit = \"MM\" DValue = \"0.01\"  Use=\"0\" DefaultValue=\"0.01\" FValue=\"MeshSize,0.005*MeshSize\"/>
		      <MaxDeviationFromBoundary Unit = \"MM\" DValue = \"0.1\" Use=\"0\" DefaultValue=\"0.1\" FValue=\"MeshSize,0.05*MeshSize\"/>
		  </Parameters>
		</Rule>
	       	 </MeshingRules>")
	}
}
else if( NULL <> SFDMember)
{
	set Category = SFDMember.Category
	if("Beam" == Category )
	{		
		Parameters.SetAttributeInteger("AutomaticMeshCapture", 2)
		Parameters.SetAttributeDimension("AutomaticMeshCaptureTolValue", .006, "LENGTH")
		Parameters.SetAttributeString("MeshingRule", "<MeshingRules Version = \"1\">
		<Rule Type = \"CATFmtBeamMeshRule\" Activity = \"true\" PersistentSpec = \"false\">
		  <Parameters>
		    <ElementOrder IValue = \"1\"/>
		    <MeshSize Unit = \"MM\" DValue = \"600\"/>
		    <MinimalMesh BValue = \"false\"/>
		    <AbsoluteSag Unit = \"MM\" DValue = \"1\" Use=\"0\"/>
		    <ProportionalSag DValue = \"0.2\" Use=\"0\"/>
		    <MinMeshSize Unit = \"MM\" DValue = \"1\" Use=\"2\" FValue=\"MeshSize,0.1*MeshSize\"/>
		  </Parameters>
		</Rule>
		<Rule Type = \"CATFmtBeamTopologyRule\" Activity = \"true\" PersistentSpec = \"false\">
		  <Parameters>
		    <AngleBetweenCurves Unit = \"DEGREE\" DValue = \"20\" DefaultValue=\"20\"/>
		  </Parameters>
		</Rule>
		</MeshingRules>")		
	}
}
else if( NULL <> SFDOpening)
{
	set Category = SFDOpening.Category
	if("ManHole" == Category )
	{
		Parameters.SetAttributeInteger("OpeningMeshSize", 2)	
		Parameters.SetAttributeReal("OpeningMeshSizeValue", 200)	
	}
	else if("LighteningHole" == Category )
	{
		Parameters.SetAttributeReal("NbRows", 3)
		Parameters.SetAttributeReal("Height1", 100)	
		Parameters.SetAttributeReal("Height2", 200)		
		Parameters.SetAttributeReal("Height3", 300)				
	}	
}