HyperWorks Solvers

Post: Graphic

Post: Graphic

Previous topic Next topic Expand/collapse all hidden text  

Post: Graphic

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  
hmtoggle_plus1greyXML Format

Model Element

Description

Post_Graphic defines a graphic element that can be used for visualization and also for 3D rigid-rigid body contact. The following types of graphics entities are supported:

3D Geometry

2D Geometry

1D Geometry

Other

Box (Defined from corner)

Box (Defined from center)

Cylinder

Ellipsoid

Frustum

Sphere

SPDP

TriaMesh

Parasolid

DeformSurface

Plane

ParamSurface

Outline

Arc (Defined by radius)

Arc (Defined by reference marker)

Circle (Defined by radius)

Circle (Defined by reference marker)

DeformCurve

LineMesh

Outline

ParamCurve

Point

UserGra

 

BoxDefinedFromCorner

BoxDefinedFromCenter

<Post_Graphic

   id                 = "integer"

   type               = "BoxDefinedFromCorner"

   corner_marker_id   = "integer"

   length_x           = "real"

   length_y           = "real"

   length_z           = "real"

   is_material_inside = {"TRUE" | "FALSE"}

   refinement_level   = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>    

<Post_Graphic

   id                 = "integer"

   type               = "BoxDefinedFromCenter"

   center_marker_id   = "integer"

   length_x           = "real"

   length_y           = "real"

   length_z           = "real"

   is_material_inside = {"TRUE" | "FALSE"}

   refinement_level   = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>  

Cylinder

Frustum

<Post_Graphic

   id                  = "integer"

   type                = "Cylinder"

   center_marker_id    = "integer"

   radius              = "real"

   length              = "real"

   refinement_level    = "integer"

   ends_type           = {   "OPEN"   | "CLOSED" |

                          "TOP_ONLY" | "BOTTOM_ONLY"

                                                       }

   is_material_inside  = {"TRUE" | "FALSE"}

[[  

   label               = "string"

   color               = "integer:integer:integer"      

]]

/>  

<Post_Graphic

   id                  = "integer"

   type                = "Frustum"

   center_marker_id    = "integer"

   top_radius          = "real"

   bottom_radius       = "real"

   length              = "real"

   refinement_level    = "integer"  

   ends_type           = {   "OPEN"   | "CLOSED" |

                          "TOP_ONLY" | "BOTTOM_ONLY"

                                                       }

   is_material_inside  = {"TRUE" | "FALSE"}

[[  

   label               = "string"

   color               = "integer:integer:integer"      

]]

/>  

Ellipsoid

Sphere

<Post_Graphic

   id                  = "integer"

   type                = "Ellipsoid"

   center_marker_id    = "integer"

   x_scale             = "real"

   y_scale             = "real"

   z_scale             = "real"

   refinement_level    = "integer"

   is_material_inside  = {"TRUE" | "FALSE"}

[[  

   label               = "string"

   color               = "integer:integer:integer"      

]]

/>  

<Post_Graphic

   id                  = "integer"

   type                = "SPHERE"

   center_marker_id    = "integer"

   radius              = "real"

   refinement_level    = "integer"

   is_material_inside  = {"TRUE" | "FALSE"}

[[  

   label               = "string"

   color               = "integer:integer:integer"      

]]

/>  

Plane

CircleFromRM

<Post_Graphic

   id                  = "integer"

   type                = "Plane"

   ref_marker_id       = "integer"

   xmin                = "real"

   xmax                = "real"

   ymin                = "real"

   ymax                = "integer"

   refinement_level    = "integer"

[[  

   label               = "string"

   color               = "integer:integer:integer"      

]]

/>  

<Post_Graphic

   id                 = "integer"

   type               = "CircleFromRM"

   center_marker_id   = "integer"

   nseg               = "integer"

   r_marker_id        = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>  

CircleFromRadius

ArcFromRM

<Post_Graphic

   id                 = "integer"

   type               = "CircleFromRadius"

   center_marker_id   = "integer"

   radius             = "real"

   nseg               = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

<Post_Graphic

   id                 = "integer"

   type               = "ArcFromRM"

   center_marker_id   = "integer"

   rangle             = "real"

   nseg               = "integer"

   r_marker_id        = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

ArcFromRadius

Point

<Post_Graphic

   id                 = "integer"

   type               = "ArcFromRadius"

   point_marker_id    = "integer"

   radius             = "real"  

   rangle             = "real"

   nseg               = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

<Post_Graphic

   id                 = "integer"

   type               = "Point"

   ref_marker_id      = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

TriaMesh

LineMesh

<Post_Graphic

   id                 = "integer"

   type               = "TriaMesh"

   ref_marker_id      = "integer"

   num_triangle       = "integer"  

   refinement_level   = "integer"

   is_material_inside = {"TRUE" | "FALSE"}

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]] >

!--Vertex data

    real  real  real  real  real  real

     ...   ...   ...   ...   ...   ...

     real  real  real  real  real  real

</Post_Graphic>

<Post_Graphic

   id                 = "integer"

   type               = "LineMesh"

   ref_marker_id      = "integer"

   num_line           = "integer"  

[[    

   label              = "string"

   color              = "integer:integer:integer"      

]] >

!--Vertex data

    real  real  real  real  real  real

     ...   ...   ...   ...   ...   ...

     real  real  real  real  real  real

</Post_Graphic>

SPDP

Outline

<Post_Graphic

   id                 = "integer"

   type               = "SPDP"

   i_marker_id        = "integer"

   j_marker_id        = "integer"

   da                 = "real"

   db                 = "real"

   dc                 = "real"

   la                 = "real"

   lb                 = "real"

   lc                 = "real"

   ld                 = "real"

   ncoil              = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

<Post_Graphic

   id                 = "integer"

   type               = "Outline"

   num_marker_id      = "integer"

   marker_id          = "integer:integer:...:integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

ParamCurve

ParamSurface

<Post_Graphic

   id                 = "integer"

   type               = "ParamCurve"

   curve_id           = "integer"

   ref_marker_id      = "integer:integer:...:integer"

   nseg               = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

<Post_Graphic

   id                 = "integer"

   type               = "ParamSurface"

   surface_id         = "integer"

   ref_marker_id      = "integer:integer:...:integer"

   nseg_u             = "integer"

   nseg_v             = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

DeformCurve

DeformSurface

<Post_Graphic

   id                 = "integer"

   type               = "DeformCurve"

   curve_id           = "integer"

   nseg               = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

<Post_Graphic

   id                 = "integer"

   type               = "DeformSurface"

   surface_id         = "integer"

   nseg_u             = "integer"

   nseg_v             = "integer"

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

UserGra

Parasolid

<Post_Graphic

   id                  = "integer"

   type                = "UserGra"

   ref_marker_id       = "integer"

   grasub_increment    = "integer"

   usrsub_param_string = "USER([par1, ..., parn])"

   usrsub_fnc_name     = "string"

{

  [usrsub_dll_name     = "string"         ]

  |

[

   script_name         = "string"

   interpreter         = "PYTHON" | "MATLAB"

]

                                                }

[[  

   label              = "string"

   color              = "integer:integer:integer"      

]]

/>

<Post_Graphic

   id                 = "integer"

   type               = "Parasolid"

   graphic_file       = "string"

   graphic_component  = "string [, string, ..., string]"

   refinement_level   = "integer"

   ref_marker_id      = "integer"

/>

Attributes

id

Element identification number (integer>0).  This number is unique among all the Post_Graphic elements in the model.

label

The name of the Post_Graphic element.

color

The color of the graphic for H3D animation.  Specified as RGB (Red : Green : Blue).

type

Defines the type of graphic entity.  Supported graphic types are:

BoxDefinedFromCorner
BoxDefinedFromCenter
Cylinder
Frustum
Ellipsoid
Sphere
Plane
CircleFromRM
CircleFromRadius
ArcFromRM
ArcFromRadius
Point
TriaMesh
SPDP
Outline
ParamCurve
ParamSurface
DeformCurve
DeformSurface
UserGra
ParaSolid

corner_marker_id

Specifies the ID of a marker in the model. The marker specified is used as the coordinate system for specifying the geometric corner of the BoxDefinedFromCorner graphic type.

ref_marker_id

Specifies the ID of a marker in the model. The marker specified is used as the coordinate system for specifying geometry data. The role of this marker depends on the entity type as described below.

Plane: The ref_marker_id defines a point on the plane.  The z-axis of the marker defines the normal to the plane.
Point: The origin of the ref_marker_id defines the location of this graphic element.
Triamesh: The ref_marker_id defines the coordinate system with respect to which all the vertex coordinates are defined.
Parasolid: Defines the coordinate system with respect to which the Parasolid graphic is located.
LineMesh: The ref_marker_id defines the coordinate system with respect to which all the vertex coordinates are defined.
Param_Curve : The ref_marker_id defines the coordinate system with respect to which the curve points are defined.
Param_Surface : The ref_marker_id defines the coordinate system with respect to which the surface points are defined.
UserGra : Defines the coordinate system with respect to which the user defined graphic’s point data is defined.

center_marker_id

Specifies the ID of a marker in the model. The marker specified is used as the coordinate system for specifying the geometry. The role of this marker depends on the entity type as described below.

BoxDefinedFromCenter: The origin of the center_marker_id defines the geometric center of the box.
Cylinder: The center_marker_id defines the center of the bottom circular face of the cylinder.  The z-axis of this marker defines the axis of the cylinder.
Frustum: The center_marker_id defines the center of the bottom circular face of the frustum.  The z-axis of this marker defines the axis of the frustum.
Ellipsoid: The center_marker_id defines the geometric center of the ellipsoid.  The x-, y-, and z-axes of this marker define the semi-major axes of the ellipsoid.
ArcFromRM: The center_marker_id defines the center of the arc. The z-axis of this marker defines the normal to the arc.
ArcFromRadius: The center_marker_id defines the center of the arc. The z-axis of this marker defines the normal to the arc.
CircleFromRM: The center_marker_id defines the center of the arc. The z-axis of this marker defines the normal to the circle.
CircleFromRadius: The center_marker_id defines the center of the arc. The z-axis of this marker defines the normal to the circle.

radius

Defines the radius of a Cylinder, Sphere or Arc graphic type

top_radius

Defines the radius of the top circle of the Cylinder or Frustum graphic type

bottom_radius

Defines the radius of the bottom circle of the Cylinder or Frustum graphic type

length

Defines the length of the Cylinder or Frustum graphic type

length_x

length_y

length_z

Defines the x, y and z dimensions of BoxDefinedFromCorner or BoxDefinedFromCenter graphic type.

ends_type

Specifies whether the ends of the Cylinder or Frustum are open or closed.  Select from OPEN, CLOSED, TOP_ONLY, and BOTTOM_ONLY. See comment number 3 for more details.

refinement_level

Defines the mesh density of BoxDefinedFromCenter, BoxDefinedFromCorner, Ellipsoid, Sphere, Cylinder, Frustum, Plane, TriaMesh and Parasolid graphic elements.

Controlling the refinement level is useful when using the graphic for 3D rigid body contact. A finer mesh will typically yield smoother contact forces than a coarser mesh for the same graphic. It should be noted, however, that increasing the mesh density by a large amount can degrade the solver and/or post processor’s performance. A large value for refinement_level is not recommended unless your contact modeling demands it.

is_material_inside

Specifies if the graphic has material inside or outside. is_material_inside is a boolean flag (TRUE/FALSE).

TRUE means the geometry is solid.  In other words, it is filled with material and its exterior is devoid of material. Consequently, the surface normals of the geometry point outward.

FALSE means the converse:  The exterior of the geometry is filled with material and the interior is devoid of material. In this case, the surface normals of the geometry point inward.

This flag is useful for reversing the surface normals of a geometry for contact simulations

x_scale

Specifies the diameter of the Ellipsoid graphic along the x-axis.

y_scale

Specifies the diameter of the Ellipsoid graphic along the y-axis.

z_scale

Specifies the diameter of the Ellipsoid graphic along the z-axis.

xmin

xmax

ymin

ymax

Define the spatial extent of a Plane graphic entity.  These values are defined in the coordinate system of the ref_marker_id.

nseg

Defines the number of line segments to be used to approximate the circular edges in a CircleFromRadius, CircleFromRM, ArcFromRadius or ArcFromRM. This parameter is also used to defined the number of line segments to represent the curve graphic defined in a ParamCurve or DeformCurve entity.

r_marker_id

Specifies the ID of a marker in the model. This marker is used to compute the radius of the Arc or Circle specified in ArcFromRM or CircleFromRM.

point_marker_id

Specifies the ID of the marker located at the center point of the arc specified in ArcFromRadius.

num_triangle

Defines the number of triangles contained in a Triamesh entity.

num_line

Defines the number of lines contained in a Linemesh entity. A line is defined by specifying the locations (x, y and z) of two vertices. All vertex locations are defined in the coordinate system specified by the ref_marker_id.

num_marker_id

Number of markers whose origins lie on the polyline.

rangle

Defines the angle subtended by an arc. The arc could be of type ArcFromRadius or ArcFromRM.

i_marker_id

Specifies the ID of a marker in the model. This marker serves as one connection point for the SPDP graphic.

j_marker_id

Specifies the ID of a marker in the model. This marker serves as the second connection point for the SPDP graphic element.

Da

Defines the diameter of the spring in an SPDP graphic element.

Db, Dc

Define the diameter of the damper at the I marker and at the J marker in a spring-damper.

La

Defines the distance between the I marker and the end of the damper to which it is closest.

Lb

Defines the distance between the J marker and the end of the damper to which it is closest.

Lc

Defines the height of the damper at i_marker_id.

Ld

Defines the height of the damper at j_marker_id.

ncoil

Defines the number of coils in the spring of a spring-damper graphic.

curve_id

Specifies the ID of a parametric or deformable curve entity in the model which will be used to generate the graphic.

For the ParamCurve graphic type, curve_id must point to the ID of a Reference_ParamCurve entity in the model.

For the DeformCurve graphic type, curve_id must point to the ID of a Reference_DeformCurve entity in the model.

surface_id

Specifies the ID of a parametric or deformable surface entity in the model which will be used to generate the graphic.

For the ParamSurface graphic type, surface_id must point to the ID of a Reference_ParamSurface entity in the model.

For the DeformSurface graphic type, surface_id must point to the ID of a Reference_DeformSurface entity in the model.

nseg_u

Specifies the number of segments along the u coordinate of the parametric or deformable surface graphic.

nseg_v

Specifies the number of segments along the v coordinate of the parametric or deformable surface graphic.

nseg

Specifies the number of segments along the parametric or deformable curve graphic.

graphic_file

Specifies the location and name of the Parasolid file.

graphic_component

Specifies a comma separated list of the names of the components in the Parasolid graphic file that are to be considered for the rigid body contact. The components that are not specified here will not be considered during the contact simulation.

grasub_increment

Specifies the increment in which the GRASUB will be called.  The default is 4.

usrsub_dll_name

Specifies the path and name of the shared library containing the user subroutine.  MotionSolve uses this information to load the user subroutine in the shared library at run time.

usrsub_param_string

Specifies a list of parameters that are passed from the data file to the user-defined subroutine.  Use this keyword only when type = USERSUB is selected. This attribute is common to all types of user subroutines/scripts.

usrsub_fnc_name

Specifies an alternative name for the user subroutine GRASUB.

script_name

Specifies the path and name of the user-written script that contains the routine specified by usrsub_fnc_name.

interpreter

Specifies the interpreted language that the user script is written in. Valid choices are MATLAB or PYTHON.

Comments

1.Not all graphic types are supported by the Force_Contact modeling element. The graphic types that are supported are:
BoxDefinedFromCorner
BoxDefinedFromCenter
Cylinder
Frustum
Ellipsoid
Sphere
Plane
TriaMesh
UserGra
Parasolid

The remaining graphic types are used for visualization only.

2.The BoxDefinedFromCenter and BoxDefinedFromCorner graphic types are illustrated in the figure below.

post_graphic_img1

post_graphic_img2

BoxDefinedFromCenter graphic type

BoxDefinedFromCorner graphic type

Both the BoxDefinedFromCenter and BoxDefinedFromCorner graphics are defined by their x, y, z lengths and a marker at the center or the corner, respectively.

3.The Cylinder and Frustum graphic types are illustrated in the figure below.

post_graphic_img3

post_graphic_img4

Cylinder graphic type

Frustum graphic type

The Cylinder and Frustum graphics are defined by the radius (top and bottom in case of Frustum), length and the marker at the center of the geometry.

The TOP end of these graphics is the end that lies toward the negative Z axis, whereas the BOTTOM end is the one that lies toward the positive Z axis. These graphics may be defined with both, either TOP or BOTTOM, or neither ends capped. This is determined by the attribute ends_type:

ends_type = “OPEN” implies that neither ends of the Cylinder or Frustum is closed
ends_type = “CLOSED” implies that both ends of the Cylinder or Frustum is closed
ends_type = “TOP_ONLY” implies that only the TOP end of the Cylinder or Frustum is open
ends_type = “BOTTOM_ONLY” implies that only the BOTTOM end of the Cylinder or Frustum is open

Note:   If you would like to use the Cylinder or Frustum graphic in your mesh based contact model, make sure that ends_type is set to CLOSED so that the Cylinder or Frustum graphic is closed. Closed geometry is a requirement for the mesh based contact in MotionSolve. For more details, see Best Practices for Modeling 3D Contact Models in MotionSolve in the MotionSolve User's Guide.

4.The Ellipsoid and Sphere graphic types are illustrated in the figure below.

post_graphic_img5

post_graphic_img6

Ellipsoid graphic type

Sphere graphic type

The Ellipsoid and Sphere graphic type are defined by the radii (x, y and z for Ellipsoid and a single radius for the Sphere) and the marker located at the center of the geometry.

5.The Plane and SPDP graphic types are illustrated in the figure below.

post_graphic_img7

post_graphic_img8

Plane graphic type

SPDP graphic type

The Plane graphic type is defined by the spatial extent (xmin, xmax, ymin, ymax) and a marker. This marker is positioned at the center of the plane, and the Z axis of this marker determines the normal to the plane. The spatial lengths are defined in the coordinate system of the ref_marker_id (shown in blue above).

The SPDP graphic type is defined by the two attachment markers for the I and J body, the number of coils in the spring and the diameter of the coil.

6.The CircleFromRM and CircleFromRadius graphic types are illustrated in the figure below.

post_graphic_img9

post_graphic_img10

CircleFromRM graphic type

CircleFromRadius graphic type

The CircleFromRM graphic type is defined by two markers. The origin of the circle is centered at the origin of the marker specified by center_marker_id; also the Z axis of this marker determines the normal to the plane of the circle. The origin of the r_marker_id is used to determine the radius of the circle as , whereis the position of the center_marker_id and is the position of the r_marker_id.

The CircleFromRadius graphic type is defined by a marker and the radius. The origin of the circle is centered at the origin of the marker specified by center_marker_id; also the Z axis of this marker determines the normal to the plane of the circle. The radius is specified by the radius attribute.

For visualizing both these graphics, the circle is drawn using a number of straight line segments connected together. The attribute nseg defines the number of segments that should be used to draw the circle. A larger value will result in a smoother looking graphic.

6.The ArcFromRM and ArcFromRadius graphic are illustrated in the figure below.

post_graphic_img11

post_graphic_img12

ArcFromRM graphic type

ArcFromRadius graphic type

The ArcFromRM graphic type is defined by two markers. The origin of the arc is set to the origin of the marker specified by center_marker_id; also the Z axis of this marker determines the normal to the plane of the circle. The origin of the r_marker_id is used to determine the radius of the circle as, whereis the position of the center_marker_id andis the position of the r_marker_id. The arc is drawn starting from the Y axis of the center_marker_id, in a counter clockwise fashion for the included angle, specified by rangle.

The ArcFromRadius graphic type is defined by a marker and the radius. The origin of the arc is set to the origin of the marker specified by center_marker_id; also the Z axis of this marker determines the normal to the plane of the circle. The radius is specified by the radius attribute. The arc is drawn starting from the Y axis of the center_marker_id, in a counter clockwise fashion for the included angle, specified by rangle.

For visualizing both these graphics, the arc is drawn using a number of straight line segments connected together. The attribute nseg defines the number of segments that should be used to draw the arc. A larger value will result in a smoother looking graphic.

7.The LineFromMesh and Point graphic types are illustrated in the figure below.

post_graphic_img13

post_graphic_img14

LineMesh graphic type

Point graphic type

The LineFromMesh graphic type connects a number of vertices with straight lines. The number of lines to be drawn is specified by the num_line attribute. The X, Y and Z positions of the vertices are specified in the order in which the lines are to be drawn. For the above example, the vertices are specified in the following order:

The order above specifies a line to be drawn between r1 and r2, r2 and r3, and so on.

The Point graphic type is defined as the point that is specified by the origin of the center_marker_id.

8.The LineFromMesh and Point graphic types are illustrated in the figure below.

post_graphic_img15

post_graphic_img16

TriaMesh graphic type

Outline graphic type

The TriaMesh graphic is defined as a collection of triangle elements that usually share vertices and edges between them. This type of mesh is commonly used for representing CAD geometry in analysis. The triangles, by themselves are 2D. When connected together, these triangles can represent a 3D surface. The surface may or may not have free edges. Further, there is no requirement that the mesh defines a contiguous solid. In other words, all parts of the mesh need not be connected.

The surface normal at each triangle is defined as the cross product of the edges such that the normal points outward when the vertices are specified in a counter-clockwise manner. In the figure above, the normal is defined as .

The Outline graphic is defined by a list of marker IDs. A poly line is drawn through the origins of each of these markers. The number of markers is specified by the attribute num_marker_id.

10.The ParamCurve and DeformCurve graphic types are illustrated in the figure below.

post_graphic_img17

post_graphic_img18

ParamCurve graphic type

DeformCurve graphic type

The ParamCurve graphic type is used to represent a curve defined in the model as a Reference_ParamCurve element. The graphic is defined by a number of straight line segments connecting vertices on the curve defined by curve_id.

The DeformCurve graphic type is used to represent a deformable curve defined in the model as a Reference_DeformCurve element. The graphic is defined by a number of straight line segments connecting vertices on the curve defined by curve_id. Since this graphic represents a deformable curve, the graphic deforms along with the curve as the simulation progresses.

The attribute nseg defines the number of segments that should be used to draw the curves. A larger value will result in a smoother looking curve. Depending on how the points are defined, the ParamCurve or DeformCurve graphic can be open or closed.

11.The ParamSurface and DeformSurface graphic types are illustrated in the figure below.

post_graphic_img19

post_graphic_img20

ParamSurface graphic type

DeformSurface graphic type

The ParamSurface graphic type is used to represent a surface defined in the model as a Reference_ParamSurface element. The graphic is defined by a number of straight line segments connecting vertices on the surface defined by surface_id.

The DeformSurface graphic type is used to represent a deformable surface defined in the model as a Reference_DeformSurface element. The graphic is defined by a number of straight line segments connecting vertices on the surface defined by surface_id. Since this graphic represents a deformable surface, the graphic deforms along with the surface as the simulation progresses.

The attribute nseg_u and nseg_v defines the number of segments that should be used to draw the curves along the U and V directions of the surface respectively. Larger values will result in a smoother looking surface.

12.The Parasolid graphic type allows you to use Parasolid geometry as a graphic in MotionSolve. The graphic is defined by the name and location of the Parasolid graphic file and the name(s) of the parts in the Parasolid assembly.

Specifying your geometry as a Parasolid graphic offers an advantage when using the graphic for contact simulations. Since there is no discretization of the surface into triangles, the surface of the Parasolid graphic is smoother than its meshed counterpart, resulting in smoother contact forces.

To import Parasolid geometry into your model, you must use Import CAD or FE from the Tools menu in MotionView. Please see tutorial MV-1035 for more information.

After the simulation is complete, MotionSolve tessellates the Parasolid geometry and writes it to the animation H3D file for visualization.

13.The UserGra graphic type allows you to define your own graphic. This can be done by defining your own subroutine or script. You can create vertices and triangles using the access functions ADD_GRA_NODE, SET_GRA_NODE and ADD_GRA_TRIA provided by MotionSolve. These access functions allow you to create a triangular mesh that can be then used as a graphic in your model. For more information and examples, please refer to the documentation on GRASUB.

Using a GRASUB is particularly useful when you would like to redraw your graphic as the simulation progresses.

14.If you want to use CAD geometry (other than Parasolid geometry, for example IGES, STP etc.) for contact modeling, then the native CAD format needs to be converted to Triamesh elements.  This can be done in two ways:
Import the CAD model into HyperMesh, mesh it, and export the H3D file. Import this H3D file into MotionView and define contact.
From within MotionView, select Import CAD or FE from the Tools menu in MotionView.  This utility uses HyperMesh to perform the translation.  It is intended for those who are not familiar with HyperMesh.
15.All graphic entities are written to the animation H3D file so the system behavior can be visualized in HyperView.
16.All primitive 3D graphics (Sphere, Ellipsoid, Cylinder, Frustum, BoxDefinedFromCorner and BoxDefinedFromCenter) are converted to a triangular meshed representation when they are used for contact simulations and also when they are written to the animation H3D file.

The density of their mesh can be controlled by the parameter refinement_level. A higher value of refinement_level increases the mesh density by adding more and more triangles.

A higher mesh density tends to produce more accurate contact forces, however adding more triangles usually increases the simulation time.

The following figures show the effect of increasing refinement level on some of the primitive 3D shapes.

post_graphic_img21

post_graphic_img22

post_graphic_img23

Box with refinement_level = 0

Box with refinement_level = 1

Box with refinement_level = 2

 

 

post_graphic_img24

 

post_graphic_img25

post_graphic_img26

Sphere with refinement_level = 2

Sphere with refinement_level = 3

Sphere with refinement_level = 4

 

post_graphic_img27

post_graphic_img28

post_graphic_img29

Cylinder with refinement_level = 1

Cylinder with refinement_level = 2

Cylinder with refinement_level = 3

The refinement_level attribute may also be used for a TriaMesh graphic type. Increasing the refinement level by 1 results in each triangle being divided into 4 triangles as illustrated in the figures below. Note: if you wish to use your TriaMesh graphic as is, set this attribute to 0 or do not define it.

post_graphic_img30

post_graphic_img31

post_graphic_img32

Triamesh with refinement_level = 0

Triamesh with refinement_level = 1

Triamesh with refinement_level = 2

The refinement_level is supported for the following graphic types:

BoxDefinedFromCenter
BoxDefinedFromCorner
Sphere
Ellipsoid
Cylinder
Frustum
Plane
TriaMesh
Parasolid

Example

This example illustrates how an ellipsoid graphic may be created using Post_Graphic. Assume an ellipsoid with semi major axes, a = 10, b = 7, c = 5 is to be defined as shown in the image below.  The MotionSolve XML input is:

<Post_Graphic

  id                 = "90000"

  type               = "Ellipsoid"

  center_marker_id   = "90000000"

  x_scale            = "10"

  y_scale            = "7"

  z_scale            = "5"

  refinement_level   = "3"

  is_material_inside = "TRUE"

/>

post_graphic_img33

 

An ellipsoid of dimension (10, 7, 5)

The next example illustrates how a Parasolid geometry is represented in MotionSolve. The input CAD geometry for this example is shown below in Parasolid format along with the corresponding Post_Graphic model statement.

post_graphic_img34

<Post_Graphic

    id                = "900000"

    type              = "Parasolid"

    graphic_file      = "../gears.x_t"

    graphic_component = "Gear1 Gear2"

    refinement_level  = "1"

    ref_marker_id     = "90000000"

/>

Parasolid graphic representing two bevel gears

 

hmtoggle_plus1greyPython Format

Model Element

Description

GRAPHICS defines a graphic element that can be used for visualization and also for 3D rigid-rigid body contact. The following types of graphics entities are supported.

Box (defined from corner)

Plane

Surface

Box (defined from center)

Frustum

Arc (defined by radius)

Cylinder

SPDP

Arc (defined by RM)

Ellipsoid

Outline

Circle (defined by radius)

TriaMesh

Point

Circle (defined by RM)

External

 

Curve

All of these can be visualized. Only the graphics in bold above may be used for contact modeling.

Declaration

def GRAPHICS(id, LABEL="", TYPE="", CM=0.0, RADIUS=0.0, RANGLE=0.0, CORNER=0, X=0.0, Y=0.0, Z=0.0, CID=0, CRM=0, LENGTH=0.0, TOP=0.0, BOTTOM=0.0, RM=0, XMIN=0.0, XMAX=0.0, YMIN=0.0, YMAX=0.0, XSCALE=0.0, YSCALE=0.0, ZSCALE=0.0, FILE="", ELEMENT="", I=0, J=0, COILS=0, DA=0.0, DB=0.0, DC=0.0, LA=0.0, LB=0.0, LC=0.0, LD=0.0, SEG=0, OUTLINE=[], REFINEMENT_LEVEL=NaN):

Attributes

id

Element identification number (integer>0).  This number is unique among all the GRAPHICS elements in the model.

LABEL

The name of the GRAPHICS element.

TYPE

Defines the type of graphic entity.

CM

Specifies the ID of a marker in the model.  The marker specified is used as the coordinate system for specifying the geometry.  The role of this marker depends on the entity type as described below.

CYLINDER: The CM defines the center of the bottom circular face of the cylinder.  The z-axis of this marker defines the axis of the cylinder.
FRUSTUM: The CM defines the center of the bottom circular face of the frustum.  The z-axis of this marker defines the axis of the frustum.
ELLIPSOID: The CM defines the geometric center of the ellipsoid.  The x-, y-, and z-axes of this marker define the semi-major axes of the ellipsoid.
ARC: The CM defines the center of the arc.  The z-axis of this marker defines the normal to the arc.
CIRCLE: The CM defines the center of the arc.  The z-axis of this marker defines the normal to the circle.

RADIUS

Defines the radius of a CYLINDER, CIRCLE, or ARC graphic type.

RANGLE

Defines the angle subtended by an ARC.

CORNER

Specifies the ID of a marker in the model.  The Marker specified is used as the coordinate system for specifying the geometric corner of the BOX graphic type.  The dimensions of the box are defined in the coordinate system of this Marker.

X

Defines the x dimension of a BOX graphic type.

Y

Defines the y dimension of a BOX graphic type.

Z

Defines the z dimension of a BOX graphic type.

CID

For type CURVE, this must point to the corresponding CURVE entity in the model.

CRM

Specifies the MARKER ID that is used as the coordinate system for the specification of the geometry data.  The role of this marker depends on the entity type as described below.

CURVE – Defines the MARKER ID that defines the coordinate system in which the curve points are defined.

LENGTH

Defines the length of the CYLINDER or FRUSTUM graphic type.

TOP

Defines the radius of the top circle of the FRUSTUM graphic type.

BOTTOM

Defines the radius of the bottom circle of the FRUSTUM graphic type.

RM

Specifies the MARKER ID that is used as the coordinate system for the specification of the geometry data.  The role of this marker depends on the entity type as described below.

Plane: Defines a point on the plane.  The z-axis of the Reference_Marker defines the normal to the plane.

Point: The origin of the Reference_Marker ER defines the location of the POINT graphic element.

XMIN

Defines the start of the spatial extent of a PLANE graphic entity in x direction.  This value is defined in the coordinate system of the RM.

XMAX

Defines the end of the spatial extent of a PLANE graphic entity in x direction.  This value is defined in the coordinate system of the RM.

YMIN

Defines the start of the spatial extent of a PLANE graphic entity in y direction. This value is defined in the coordinate system of the RM.

YMAX

Defines the end of the spatial extent of a PLANE graphic entity in y direction. This value is defined in the coordinate system of the RM.

XSCALE

Specifies the diameter of the ELLIPSOID graphic along the x-axis.

YSCALE

Specifies the diameter of the ELLIPSOID graphic along the y-axis.

ZSCALE

Specifies the diameter of the ELLIPSOID graphic along the z-axis.

FILE

Specifies the location and name of an EXTERNAL file.

ELEMENT

Specifies the component or element that will be used from the EXTERNAL file.

REFINMENT_LEVEL

Defines the mesh density of BOX, ELLIPSOID, CYLINDER, FRUSTUM, PLANE, and EXTERNAL graphic elements.

Controlling the REFINEMENT_LEVEL is useful when using the graphic for 3D rigid body contact.  A finer mesh will typically yield smoother contact forces than a coarser mesh for the same graphic.  It should be noted, however, that increasing the mesh density by a large amount can degrade the solver and/or post processor’s performance.  A large value for REFINEMENT_LEVEL is not recommended unless your contact modeling demands it.

I

Specifies the ID of a marker in the model.  This marker serves as one connection point for the SPDP graphic.

J

Specifies the ID of a marker in the model.  This marker serves as the second connection point for the SPDP graphic element.

COILS

Defines the number of coils in the spring of a spring-damper graphic.

DA

Defines the diameter of the spring in an SPDP graphic element.

DB

Define the diameters of the damper at the I marker in a spring-damper.

DC

Define the diameters of the damper at the J marker in a spring-damper.

LA

Defines the distance between the I marker and the end of the damper to which it is closest.

LB

Defines the distance between the J marker and the end of the damper to which it is closest.

LC

Defines the height of the damper at I marker.

LD

Defines the height of the damper at J marker.

SEG

Defines the number of line segments to be used to approximate the circular edges in a CIRCLE or ARC.

OUTLINE

Defines the list of RM elements used in an OUTLINE graphic entity.  A polyline is fitted through three origins of the specified RM.  Note that the RM may belong to different bodies, in which case the size of the graphic entity changes during the simulation.

Comments

See Post_Graphic

Example

This example illustrates how an ellipsoid graphic may be created using GRAPHICS.

GRAPHICS(90000, LABEL="", TYPE="ELLIPSOID", CM=900000000, XSCALE=10, YSCALE=7, ZSCALE=5)

 

The next example illustrates how Parasolid geometry is represented in MotionSolve.

GRAPHICS(900000, TYPE="EXTERNAL", RM=90000000, FILE="../gears.x_t", ELEMENT="Gear1 Gear2"):

See Also:

Force_Contact

Model Statements

Command Statements

Functions

Notation and Syntax

The following MDL Model statements:

*Graphic() - box

*Graphic() - coil spring

*Graphic() - cylinder

*Graphic() - DeformableCurve

*Graphic() - DeformableSurface

*Graphic() - file

*Graphic() - outline - body-point

*Graphic() - outline - markers

*Graphic() - outline - PointToCurveJoint

*Graphic() - outline - polybeam

*Graphic() - sphere

*Graphic() - tire

*Graphic() - tube

*Graphic() - user-defined graphic

*GraphicPair() - box pair

*GraphicPair() - coil spring pair

*GraphicPair() - cylinder pair

*GraphicPair() - sphere pair

*GraphicPair() - tire

*GraphicPair() - user-defined graphic pair