Post: Graphic

Model ElementPost_Graphicは、可視化と3Dボディ接触に使用できるグラフィック要素を定義します。

説明

次のタイプのグラフィックスエンティティがサポートされています:

3D形状 2D形状 1D形状 その他
Box(角から定義)

Box(中心から定義)

Cylinder

Ellipsoid

Frustum

Sphere

SPDP

TriaMesh

Parasolid

DeformSurface

Plane

ParamSurface

Outline

Arc (半径から定義)

Arc (参照マーカーから定義)

Circle(半径から定義)

Circle (参照マーカーから定義)

DeformCurve

LineMesh

Outline

ParamCurve

Point

UserGra

BoxDefinedFromCorner

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

BoxDefinedFromCenter

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

Cylinder

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

Frustrum

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

Ellipsoid

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

Sphere

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

Plane

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

CircleFromRM

<Post_Graphic  
    id                = "integer"  
    type              = "CircleFromRM"  
    center_marker_id  = "integer"  
    nseg              = "integer"  
    r_marker_id       = "integer"
   [label             = "string" ] 
   [color             = "integer:integer:integer" ]
   [hidden            = {"TRUE" | "FALSE"} ]
/>

CircleFromRadius

<Post_Graphic  
    id                = "integer"  
    type              = "CircleFromRadius"  
    center_marker_id  = "integer"  
    radius            = "real"  
    nseg              = "integer"
   [label             = "string" ] 
   [color             = "integer:integer:integer" ]
   [hidden            = {"TRUE" | "FALSE"} ]
/>

ArcFromRm

<Post_Graphic  
    id                = "integer"  
    type              = "ArcFromRM"  
    center_marker_id  = "integer"  
    rangle            = "real"  
    nseg              = "integer"  
    r_marker_id       = "integer"
   [label             = "string" ] 
   [color             = "integer:integer:integer" ]
   [hidden            = {"TRUE" | "FALSE"} ]
/>

ArcFromRadius

<Post_Graphic  
    id                = "integer"  
    type              = "ArcFromRadius"  
    point_marker_i    = "integer"  
    radius            = "real"   
    rangle            = "real"  
    nseg              = "integer"
   [label             = "string" ] 
   [color             = "integer:integer:integer" ]
   [hidden            = {"TRUE" | "FALSE"} ]
/>

Point

<Post_Graphic  
    id                = "integer"  
    type              = "Point"  
    ref_marker_id     = "integer"
   [label             = "string" ] 
   [color             = "integer:integer:integer" ]
   [hidden            = {"TRUE" | "FALSE"} ]
/>

TriaMesh

<Post_Graphic  
    id                 = "integer"  
    type               = "TriaMesh"  
    ref_marker_id      = "integer"  
    num_triangle       = "integer"
    num_point          = "integer"    
    is_material_inside = {"TRUE" | "FALSE"}  
   [label              = "string" ] 
   [color              = "integer:integer:integer" ]
   [hidden             = {"TRUE" | "FALSE"} ]

<!--Node position
      real  real  real  real  real  real 
      ...   ...   ...   ...   ...   ...
      real  real  real  real  real  real
<!-- Tria Connectivity
      integer  integer  ...  integer
      ...   ...   ...   ...   ...
      integer  integer  ...  integer
</Post_Graphic>

LineMesh

<Post_Graphic  
    id                 = "integer"  
    type               = "LineMesh"  
    ref_marker_id      = "integer"  
    num_line           = "integer"
   [label              = "string" ] 
   [color              = "integer:integer:integer" ]
   [hidden             = {"TRUE" | "FALSE"} ]
    > 
!--Vertex data  
      real real real real real real   
      ... ... ... ... ... ...   
      real real real real real real 
</Post_Graphic>

SPDP

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

Outline

<Post_Graphic  
    id                 = "integer"  
    type               = "Outline"  
    num_marker_id      = "integer"  
    marker_id          = "integer:integer:...:integer"
   [label              = "string" ] 
   [color              = "integer:integer:integer" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

ParamCurve

<Post_Graphic  
    id                 = "integer"  
    type               = "ParamCurve"  
    curve_id           = "integer"  
    ref_marker_id      = "integer:integer:...:integer"  
    nseg               = "integer"
   [label              = "string" ] 
   [color              = "integer:integer:integer" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

ParamSurface

<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" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

DeformCurve

<Post_Graphic  
    id                 = "integer"  
    type               = "DeformCurve"  
    curve_id           = "integer"  
    nseg               = "integer"
   [label              = "string" ] 
   [color              = "integer:integer:integer" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

DeformSurface

<Post_Graphic 
    id                 = "integer"  
    type               = "DeformSurface"  
    surface_id         = "integer"  
    nseg_u             = "integer"  
    nseg_v             = "integer"
   [label              = "string" ] 
   [color              = "integer:integer:integer" ]
   [hidden             = {"TRUE" | "FALSE"} ]
/>

UserGra

<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" ]
   [hidden              = {"TRUE" | "FALSE"} ]
/> 

Parasolid

<Post_Graphic  
    id                  = "integer"  
    type                = "Parasolid"  
    graphic_file        = "string"  
    graphic_component   = "string [, string, ..., string]"  
    refinement_level    = "integer"  
    ref_marker_id       = "integer" 
   [label               = "string" ] 
   [color               = "integer:integer:integer" ]
   [hidden              = {"TRUE" | "FALSE"} ]
/>

属性

id
要素識別番号(整数 > 0)。この番号は、モデル内のすべてのPost_Graphic要素の中で一意です。
label
Post_Graphic要素の名前。
color
H3Dアニメーションのグラフィックの色。RGB (赤 :緑 :青)として指定されます。
hidden(省略可能)
H3Dファイルにグラフィックスが書き込まれないようにします。hiddenTRUEに設定すると、グラフィックはH3Dファイルに表示されず、HyperViewなどのポスト処理ツールで視覚化されません。デフォルトはFALSEです。
type
グラフィックエンティティのタイプを定義します。サポートされているグラフィックタイプは以下のとおりです:
  • BoxDefinedFromCorner
  • BoxDefinedFromCenter
  • Cylinder
  • Frustum
  • Ellipsoid
  • Sphere
  • Plane
  • CircleFromRM
  • CircleFromRadius
  • ArcFromRM
  • ArcFromRadius
  • Point
  • TriaMesh
  • SPDP
  • Outline
  • ParamCurve
  • ParamSurface
  • DeformCurve
  • DeformSurface
  • UserGra
  • ParaSolid
corner_marker_id
モデル内のマーカーのIDを指定します。指定されるマーカーは、BoxDefinedFromCornerグラフィックタイプの形状の角を指定するための座標系として使用します。
ref_marker_id
モデル内のマーカーのIDを指定します。指定されるマーカーは、形状データを指定するための座標系として使用します。このマーカーの役割は、以下のようにエンティティタイプによって異なります。
Plane
ref_marker_idは平面上のポイントを定義します。マーカーのz軸は、平面の垂線を定義します。
Point
ref_marker_idの原点は、このグラフィック要素の位置を定義します。
Triamesh
ref_marker_idは、すべての頂点座標を定義する際の基準となる座標系を定義します。
Parasolid
Parasolidグラフィックを配置する際の基準となる座標系を定義します。
LineMesh
ref_marker_idは、すべての頂点座標を定義する際の基準となる座標系を定義します。
Param_Curve
ref_marker_idは、曲線ポイントを定義する際の基準となる座標系を定義します。
Param_Surface
ref_marker_idは、サーフェスポイントを定義する際の基準となる座標系を定義します。
UserGra
ユーザー定義のグラフィックポイントデータを定義する際の基準となる座標系を定義します。
center_marker_id
モデル内のマーカーのIDを指定します。指定されるマーカーは、形状を指定するための座標系として使用します。このマーカーの役割は、以下のようにエンティティタイプによって異なります。
BoxDefinedFromCenter
center_marker_idの原点は、直方体の幾何中心を定義します。
Cylinder
center_marker_idは、円筒の円形の底面の中心を定義します。このマーカーのz軸は、円筒の軸を定義します。
Frustum
center_marker_idは、錐台の円形の底面の中心を定義します。このマーカーのz軸は、錐台の軸を定義します。
Ellipsoid
center_marker_idは、楕円体の幾何中心を定義します。このマーカーのx、y、およびz軸は、楕円体の長半径を定義します。
ArcFromRM
center_marker_idは、弧の中心を定義します。このマーカーのz軸は、弧の法線を定義します。
ArcFromRadius
center_marker_idは、弧の中心を定義します。このマーカーのz軸は、弧の法線を定義します。
CircleFromRM
center_marker_idは、弧の中心を定義します。このマーカーのz軸は、円の法線を定義します。
CircleFromRadius
center_marker_idは、弧の中心を定義します。このマーカーのz軸は、円の法線を定義します。
radius
Cylinder、Sphere、またはArcのグラフィックタイプの半径を定義します。
top_radius
CylinderまたはFrustumグラフィックタイプの上面の円の半径を定義します。
bottom_radius
CylinderまたはFrustumグラフィックタイプの底面の円の半径を定義します。
length
CylinderまたはFrustumグラフィックタイプの高さを定義します。
length_x, length_y, length_z
BoxDefinedFromCornerまたはBoxDefinedFromCenterグラフィックタイプのx、y、およびz方向の寸法を定義します。
ends_type
CylinderまたはFrustumの終端が開いているか閉じているかを指定します。OPENCLOSEDTOP_ONLY、およびBOTTOM_ONLYから選択します。詳細については、コメント3をご参照ください。
refinement_level
BoxDefinedFromCenter、BoxDefinedFromCorner、Ellipsoid、Sphere、Cylinder、Frustum、Plane、TriaMesh、およびParasolidグラフィック要素のメッシュ密度を定義します。
3D剛体の接触のグラフィックを使用している場合、refinement_levelを制御することは有益です。同じグラフィックに対し、細かいメッシュは通常粗いメッシュより滑らかな接触力を生成します。ただし、メッシュ密度を大幅に上げると、ソルバーやポストプロセッサのパフォーマンスが低下する場合があります。接触のモデリングで必要としない限り、refinement_levelに大きな値を設定することはお勧めしません。
is_material_inside
グラフィックの材料が内側か外側かを指定します。is_material_insideはブールフラグ(TRUE/FALSE)です。
TRUE
形状はソリッドです。つまり、形状は材料で満たされており、その外側に材料はありません。その結果、形状のサーフェス法線は外側を向きます。
FALSE
その反対であることを示します。形状の外側は材料で満たされており、その内側には材料がありません。この場合、形状のサーフェス法線は内側を向きます。
このフラグは、接触シミュレーションで形状のサーフェス法線を反転させる場合に便利です。
x_scale
Ellipsoidグラフィックのx軸に沿った直径を指定します。
y_scale
Ellipsoidグラフィックのy軸に沿った直径を指定します。
z_scale
Ellipsoidグラフィックのz軸に沿った直径を指定します。
xmin, xmax, ymin, ymax
Planeグラフィックエンティティの空間範囲を定義します。これらの値は、ref_marker_idの座標系で定義されます。
nseg
CircleFromRadius、CircleFromRM、ArcFromRadius、またはArcFromRM内の円形エッジを近似するために使用するラインセグメントの数を定義します。このパラメータは、ParamCurveまたはDeformCurveエンティティで定義される曲線グラフィックを表すラインセグメントの数の定義にも使用されます。
r_marker_id
モデル内のマーカーのIDを指定します。このマーカーは、ArcFromRMまたはCircleFromRMで指定されるArcまたはCircleの半径の計算に使用されます。
point_marker_id
ArcFromRadiusで指定される弧の中心点にあるマーカーのIDを指定します。
num_triangle
Triameshエンティティに含まれる三角形の数を定義します。
num_line
Linemeshエンティティに含まれるラインの数を定義します。ラインは、2つの頂点の位置(x、y、およびz)を指定することによって定義されます。すべての頂点位置は、ref_marker_idで指定される座標系で定義されます。
num_marker_id
原点がポリライン上にあるマーカーの数。
rangle
弧によってなす角を定義します。弧はArcFromRadiusまたはArcFromRMのタイプとなります。
i_marker_id
モデル内のマーカーのIDを指定します。このマーカーは、SPDPグラフィックの1つの結合ポイントとして機能します。
j_marker_id
モデル内のマーカーのIDを指定します。このマーカーは、SPDPグラフィック要素の2番目の結合ポイントとして機能します。
Da
SPDPグラフィック要素内のスプリングの直径を定義します。
Db, Dc
スプリングダンパ内のIマーカーとJマーカーでのダンパの直径を定義します。
La
Iマーカーと、それに最も近いダンパの端点との距離を定義します。
Lb
Jマーカーと、それに最も近いダンパの端点との距離を定義します。
Lc
i_marker_idでのダンパの高さを定義します。
Ld
j_marker_idでのダンパの高さを定義します。
ncoil
スプリングダンパグラフィックのスプリング内のコイルの数を定義します。
curve_id
グラフィックを生成するために使用するモデル内のパラメトリックまたは変形可能曲線エンティティのIDを指定します。
ParamCurveグラフィックタイプの場合、curve_idは、モデル内のReference_ParamCurveエンティティのIDを指す必要があります。
DeformCurveグラフィックタイプの場合、curve_idは、モデル内のReference_DeformCurveエンティティのIDを指す必要があります。
surface_id
グラフィックを生成するために使用するモデル内のパラメトリックまたは変形可能サーフェスエンティティのIDを指定します。
ParamSurfaceグラフィックタイプの場合、surface_id は、モデル内のReference_ParamSurfaceエンティティのIDを指す必要があります。
DeformSurfaceグラフィックタイプの場合、surface_idは、モデル内のReference_DeformSurfaceエンティティのIDを指す必要があります。
nseg_u
パラメトリックまたは変形可能サーフェスグラフィックのu座標に沿ったセグメントの数を指定します。
nseg_v
パラメトリックまたは変形可能サーフェスグラフィックのv座標に沿ったセグメントの数を指定します。
nseg
パラメトリックまたは変形可能曲線グラフィックに沿ったセグメントの数を指定します。
graphic_file
Parasolidファイルの場所および名前を指定します。
graphic_component
Parasolidグラフィックファイル内の、剛体接触で考慮されるコンポーネントの名前のコンマ区切りリストを指定します。ここで指定されないコンポーネントは、接触シミュレーションで考慮されません。
grasub_increment
GRASUBが呼び出される増分を指定します。デフォルトは4です。
usrsub_dll_name
ユーザーサブルーチンを含む共有ライブラリのパスと名前を指定します。MotionSolveは、この情報を使用して、実行時に共有ライブラリ内のユーザーサブルーチンを読み込みます。
usrsub_param_string
データファイルからユーザー定義のサブルーチンに渡されるパラメータのリストを指定します。このキーワードは、type = USERSUBが選択されている場合にのみ使用します。この属性は、すべてのタイプのユーザーサブルーチン / スクリプトに共通です。
usrsub_fnc_name
ユーザーサブルーチンGRASUBの代替名を指定します。
script_name
usrsub_fnc_nameで指定されたルーチンを含むユーザー作成スクリプトのパスと名前を指定します。
interpreter
ユーザースクリプトが記述されたインタープリタ型言語を指定します。有効な選択肢は、MATLABまたはPYTHONです。

この例は、Post_Graphicを使用して楕円体グラフィックを作成する方法を示しています。下の図に示すように、長半径a = 10、b = 7、c = 5の楕円体を定義するとします。MotionSolve XML入力は次のようになります:

<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" 
/>


図 1. 寸法(10、7、5)の楕円体

次の例は、MotionSolveでParasolid形状がどのように表されるかを示しています。この例の入力CAD形状を、Parasolidフォーマットで、対応するPost_Graphicモデルステートメントと共に以下に示します。

<Post_Graphic  
    id                  = "900000"  
    type                = "Parasolid"  
    graphic_file        = "../gears.x_t"  
    graphic_component   = "Gear1 Gear2"  
    refinement_level    = "1"  
    ref_marker_id       = "90000000" 
/>


図 2. 2つのベベルギアを表すParasolidグラフィック

コメント

  1. すべてのグラフィックタイプがForce_Contactモデリング要素でサポートされているわけではありません。サポートされているグラフィックタイプは次のとおりです:
    • BoxDefinedFromCorner
    • BoxDefinedFromCenter
    • Cylinder
    • Frustum
    • Ellipsoid
    • Sphere
    • Plane
    • TriaMesh
    • UserGra

      残りのグラフィックタイプは、可視化でのみ使用されます。

  2. BoxDefinedFromCenterおよびBoxDefinedFromCornerグラフィックタイプを下の図に示します。


    図 3. BoxDefinedFromCenterグラフィックタイプ


    図 4. BoxDefinedFromCornerグラフィックタイプ

    BoxDefinedFromCenterとBoxDefinedFromCornerのどちらのグラフィックも、そのx、y、z長さと、それぞれ中心、角のマーカーで定義されます。

  3. CylinderおよびFrustumグラフィックタイプを下の図に示します。


    図 5. Cylinderグラフィックタイプ


    図 6. Frustumグラフィックタイプ

    CylinderおよびFrustumグラフィックは、半径(Frustumの場合は上面と底面)、高さ、および形状の中心にあるマーカーで定義されます。

    これらのグラフィックのTOP端部は負のZ軸の向きに配置される端部で、BOTTOM端部は正のZ軸の向きに配置される端部です。これらのグラフィックは、TOPまたはBOTTOM、あるいはその両方がキャップされているか、どちらもキャップされていない状態で定義できます。これは、属性ends_typeで決まります:
    • ends_type = "OPEN"の場合、CylinderまたはFrustumの端部はどちらも閉じられていません。
    • ends_type = "CLOSED"の場合、CylinderまたはFrustumの端部はどちらも閉じられています。
    • ends_type = "TOP_ONLY"の場合、CylinderまたはFrustumのTOP端部のみが開いています。
    • ends_type = "BOTTOM_ONLY"の場合、CylinderまたはFrustumのBOTTOM端部のみが開いています。
      注: メッシュベースの接触モデルでCylinderまたはFrustumグラフィックを使用する場合は、ends_typeCLOSEDに設定し、CylinderまたはFrustumグラフィックが閉じた状態になるようにしてください。MotionSolveのメッシュベースの接触では、形状が閉じている必要があります。詳細については、MotionSolveユーザーズガイドMotionSolve user guide -> analysis tips -> best practice for running 3d contact models in motionviewMotionSolveをご参照ください。
    • EllipsoidおよびSphereグラフィックタイプを下の図に示します。


      図 7. Ellipsoidグラフィックタイプ


      図 8. Sphereグラフィックタイプ

      EllipsoidおよびSphereグラフィックタイプは、半径(Ellipsoidの場合はx、y、およびz方向、Sphereの場合は1つのみ)および形状の中心にあるマーカーで定義されます。

  4. PlaneおよびSPDPグラフィックタイプを下の図に示します。


    図 9. Planeグラフィックタイプ


    図 10. SPDPグラフィックタイプ

    Planeグラフィックタイプは、空間範囲(xminxmaxyminymax)とマーカーによって定義されます。このマーカーは、平面の中心に配置され、このマーカーのZ軸によって平面の垂線が決まります。空間長さはref_marker_idの座標系(上の図に青で表示)で定義されます。

    SPDPグラフィックタイプは、IおよびJボディの2つの結合マーカー、スプリング内のコイルの数、およびコイルの直径で定義されます。

  5. CircleFromRMおよびCircleFromRadiusグラフィックタイプを下の図に示します。


    図 11. CircleFromRMグラフィックタイプ


    図 12. CircleFromRadiusグラフィックタイプ

    CircleFromRMグラフィックタイプは、2つのマーカーで定義されます。円の原点は、center_marker_idで指定されるマーカーの原点に置かれ、このマーカーのZ軸がこの円の平面の垂線を決定します。r_marker_idの原点を使用して、円の半径を | r cm - r rm | MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2Caerbd9MBZ9 gBHnharuavP1wzZbItLDhis9wBH5garmWu51MyVXgarqqtubsr4rNC HbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaq pepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=x b9adbeGabiWadmWabmqabeqabeqaceabbaGcbaWaaqWaaKazaaiaba GabKOCayaalaGcdaWgaaqcKfaGaeaacaqIJbGaaKyBaaqabaqcKbaG aiaaj2caceqIYbGbaSaakmaaBaaajqwaacqaaiaajkhacaqITbaabe aaaKazaaiacaGLhWUaayjcSdaaaa@43D0@ として特定します。ここで、 r cm MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2Caerbd9MBZ9 gBHnharuavP1wzZbItLDhis9wBH5garmWu51MyVXgarqqtubsr4rNC HbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaq pepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=x b9adbeGabiWadmWabmqabeqabeqaceabbaGcbaqcKbaGaiqajkhaga WcaOWaaSbaaKazbaiabaGaaK4yaiaaj2gaaeqaaaaa@39FF@ center_marker_idの位置、 r rm MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2Caerbd9MBZ9 gBHnharuavP1wzZbItLDhis9wBH5garmWu51MyVXgarqqtubsr4rNC HbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaq pepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=x b9adbeGabiWadmWabmqabeqabeqaceabbaGcbaqcKbaGaiqajkhaga WcaOWaaSbaaKazbaiabaGaaKOCaiaaj2gaaeqaaaaa@3A0E@ r_marker_idの位置です。

    CircleFromRadiusグラフィックタイプは、1つのマーカーと半径で定義されます。円の原点は、center_marker_idで指定されるマーカーの原点に置かれ、このマーカーのZ軸がこの円の平面の垂線を決定します。半径は、radius属性によって指定されます。

    これら両方のグラフィックを可視化するには、多くの直線セグメントを結合して円を描きます。属性nsegは、円を描くために使用する必要のあるセグメントの数を定義します。この値が大きいほど、グラフィックは滑らかに見えます。

  6. ArcFromRMおよびArcFromRadiusグラフィックを下の図に示します。


    図 13. ArcFromRMグラフィックタイプ


    図 14. ArcFromRadiusグラフィックタイプ

    ArcFromRMグラフィックタイプは、2つのマーカーで定義されます。弧の原点は、center_marker_idで指定されるマーカーの原点に設定され、さらにこのマーカーのZ軸がこの円の平面の垂線を決定します。r_marker_idの原点を使用して、円の半径を | r cm - r rm | として特定します。ここで、 r cm MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2Caerbd9MBZ9 gBHnharuavP1wzZbItLDhis9wBH5garmWu51MyVXgarqqtubsr4rNC HbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaq pepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=x b9adbeGabiWadmWabmqabeqabeqaceabbaGcbaGabKOCayaalaWaaS baaSqaaiaajogacaqITbaabeaaaaa@3825@ center_marker_idの位置、 r rm r_marker_idの位置です。弧はcenter_marker_idのY軸から、rangleで定義した開き角だけ反時計回りに描かれます。

    ArcFromRadiusグラフィックタイプは、1つのマーカーと半径で定義されます。弧の原点は、center_marker_idで指定されるマーカーの原点に設定され、さらにこのマーカーのZ軸がこの円の平面の垂線を決定します。半径は、radius属性によって指定されます。弧はcenter_marker_idのY軸から、rangleで定義した開き角だけ反時計回りに描かれます。

    これら両方のグラフィックを可視化するには、多くの直線セグメントを結合して弧を描きます。属性nsegは、弧を描くために使用する必要のあるセグメントの数を定義します。この値が大きいほど、グラフィックは滑らかに見えます。

  7. LineFromMeshおよびPointグラフィックタイプを下の図に示します。


    図 15. LineMeshグラフィックタイプ


    図 16. Pointグラフィックタイプ

    LineFromMeshグラフィックタイプは、多くの頂点を直線と結合します。描画するラインの数は、num_line属性によって指定されます。頂点のX、Y、およびZ位置は、ラインを描画する順序で指定します。上記の例の場合、頂点は次の順序で指定されます:

    (1)
    r 1 x r 1 y r 1 z r 1 r 2 x r 2 y r 2 z r 2 r 2 x r 2 y r 2 z r 2 r 3 x r 3 y r 3 z r 3 ... ... r n x r n y r n z r n r 1 x r 1 y r 1 z r 1 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2Caerbd9MBZ9 gBHnharuavP1wzZbItLDhis9wBH5garmWu51MyVXgarqqtubsr4rNC HbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaq pepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=x b9adbeGabeqadmWabmqaceGabeqaceabbaGceaqabeaajaa4faqabe qacaaabaGcdaagaaqcaaEaauaabeqabmaaaeaacaWGYbGcdaWgaaqc baEaaiaaigdacaWG4baabeaaaKaaGhaacaWGYbGcdaWgaaqcbaEaai aaigdacaWG5baabeaaaKaaGhaacaWGYbGcdaWgaaqcbaEaaiaaigda caWG6baabeaaaaaabaGabmOCayaalaWcdaWgaaadbaGaaGymaaqaba aajaa4caGL44paaeaakmaayaaajaa4baqbaeqabeWaaaqaaiaadkha kmaaBaaajea4baGaaGOmaiaadIhaaeqaaaqcaaEaaiaadkhakmaaBa aajea4baGaaGOmaiaadMhaaeqaaaqcaaEaaiaadkhakmaaBaaajea4 baGaaGOmaiaadQhaaeqaaaaaaeaaceWGYbGbaSaalmaaBaaajia4ba GaaGOmaaqabaaajaa4caGL44paaaaabaqbaeqabeGaaaqaaOWaaGba aKaaGhaafaqabeqadaaabaGaamOCaOWaaSbaaKqaGhaacaaIYaGaam iEaaqabaaajaa4baGaamOCaOWaaSbaaKqaGhaacaaIYaGaamyEaaqa baaajaa4baGaamOCaOWaaSbaaKqaGhaacaaIYaGaamOEaaqabaaaaa qaaiqadkhagaWcaSWaaSbaaKGaGhaacaaIYaaabeaaaKaaGlaawIJ= aaqaaOWaaGbaaKaaGhaafaqabeqadaaabaGaamOCaOWaaSbaaKqaGh aacaaIZaGaamiEaaqabaaajaa4baGaamOCaOWaaSbaaKqaGhaacaaI ZaGaamyEaaqabaaajaa4baGaamOCaOWaaSbaaKqaGhaacaaIZaGaam OEaaqabaaaaaqaaiqadkhagaWcaSWaaSbaaKGaGhaacaaIZaaabeaa aKaaGlaawIJ=aaaaaeaafaqabeqacaaabaGaaiOlaiaac6cacaGGUa aabaGaaiOlaiaac6cacaGGUaaaaaqcaaCaaKaaGxaabeqabiaaaeaa kmaayaaajaa4baqbaeqabeWaaaqaaiaadkhakmaaBaaajea4baGaam OBaiaadIhaaeqaaaqcaaEaaiaadkhakmaaBaaajea4baGaamOBaiaa dMhaaeqaaaqcaaEaaiaadkhakmaaBaaajea4baGaamOBaiaadQhaae qaaaaaaeaaceWGYbGbaSaalmaaBaaajia4baGaamOBaaqabaaajaa4 caGL44paaeaakmaayaaajaa4baqbaeqabeWaaaqaaiaadkhakmaaBa aajea4baGaaGymaiaadIhaaeqaaaqcaaEaaiaadkhakmaaBaaajea4 baGaaGymaiaadMhaaeqaaaqcaaEaaiaadkhakmaaBaaajea4baGaaG ymaiaadQhaaeqaaaaaaeaaceWGYbGbaSaalmaaBaaajia4baGaaGym aaqabaaajaa4caGL44paaaaaaaa@B303@

    上記順序により、r1とr2の間、r2とr3の間などで描画するラインが指定されます。

    Pointグラフィックタイプは、center_marker_idの原点で指定されるポイントとして定義されます。

  8. LineFromMeshおよびPointグラフィックタイプを下の図に示します。


    図 17. TriaMeshグラフィックタイプ


    図 18. Outlineグラフィックタイプ

    TriaMeshグラフィックは、通常、頂点や辺を共有する三角形要素の集合として定義されます。このタイプのメッシュは、一般に、解析でCAD形状を表すために使用されます。三角形自体は2Dです。結合すると、3Dサーフェスを表すことができます。サーフェスには、フリーエッジがあってもなくてもかまいません。さらに、メッシュが隣接するソリッドを定義するという要件はありません。つまり、メッシュのすべてのパートを結合する必要はないということです。

    各三角形でのサーフェス法線は、頂点が反時計回りに指定される場合にその法線が外側を向くように、辺の外積として定義されます。上の図で、法線は次のように定義されます。

    n ^ = ( r 2 - r 1 ) × ( r 3 - r 1 ) .

    Outlineグラフィックは、マーカーIDのリストで定義されます。ポリラインは、これらの各マーカーの原点を通って描画されます。マーカーの数は、num_marker_id属性によって指定されます。

  9. ParamCurveおよびDeformCurveグラフィックタイプを下の図に示します。


    図 19. ParamCurveグラフィックタイプ


    図 20. DeformCurveグラフィックタイプ

    ParamCurveグラフィックタイプは、Reference_ParamCurve要素としてモデルで定義される曲線を表すために使用されます。グラフィックは、curve_idによって定義された曲線上の頂点をつなぐ直線セグメントの数で定義されます。

    DeformCurveグラフィックタイプは、Reference_DeformCurve要素としてモデルで定義される変形可能曲線を表すために使用されます。グラフィックは、curve_idによって定義された曲線上の頂点をつなぐ直線セグメントの数で定義されます。このグラフィックは変形可能曲線を表すため、シミュレーションが進むにつれ、グラフィックは曲線と共に変形します。

    属性nsegは、曲線を描くために使用する必要のあるセグメントの数を定義します。この値が大きいほど、曲線は滑らかに見えます。ポイントの定義方法により、ParamCurveまたはDeformCurveグラフィックは開いた状態にすることも閉じた状態にすることもできます。

  10. ParamSurfaceおよびDeformSurfaceグラフィックタイプを下の図に示します。


    図 21. ParamSurfaceグラフィックタイプ


    図 22. DeformSurfaceグラフィックタイプ

    ParamSurfaceグラフィックタイプは、Reference_ParamSurface要素としてモデルで定義されるサーフェスを表すために使用されます。グラフィックは、surface_idによって定義されたサーフェス上の頂点をつなぐ直線セグメントの数で定義されます。

    DeformSurfaceグラフィックタイプは、Reference_DeformSurface要素としてモデルで定義される変形可能サーフェスを表すために使用されます。グラフィックは、surface_idによって定義されたサーフェス上の頂点をつなぐ直線セグメントの数で定義されます。このグラフィックは変形可能サーフェスを表すため、シミュレーションが進むにつれ、グラフィックはサーフェスと共に変形します。

    属性nseg_uおよびnseg_vは、サーフェスのそれぞれUおよびV方向に沿って曲線を描くために使用する必要のあるセグメントの数を定義します。この値が大きいほど、サーフェスは滑らかに見えます。

  11. Parasolidグラフィックタイプを使用すると、MotionSolveでグラフィックとしてParasolid形状を使用できます。このグラフィックは、Parasolidグラフィックファイルの名前と場所、およびParasolidアセンブリ内のパートの名前で定義されます。

    Parasolid形状をモデルにインポートするには、MotionViewToolsメニューからImport CAD or FEを使用する必要があります。詳細については、チュートリアルMV-1035をご参照ください。

    シミュレーションが完了すると、MotionSolveはParasolid形状をメッシングし、可視化のためアニメーションH3Dファイルに書き込みます。

  12. UserGraグラフィックタイプを使用すると、独自のグラフィックを定義できます。これは、独自のサブルーチンまたはスクリプトを定義することで可能となります。頂点および三角形を作成するには、MotionSolveで提供されているアクセス関数ADD_GRA_NODESET_GRA_NODE、およびADD_GRA_TRIAを使用します。これらのアクセス関数では三角形メッシュを作成でき、これは後でモデル内のグラフィックとして使用することができます。詳細および例については、GRASUBに関するドキュメントをご参照ください。

    GRASUBを使用すると、シミュレーションが進んでグラフィックを再描画したくなったときに特に便利です。

  13. 接触モデリングでCAD形状(IGESやSTPなど)を使用する場合は、ネイティブなCADフォーマットをTriamesh要素に変換する必要があります。これを行うには、以下の2つの方法があります:
    • CADモデルをHyperMeshにインポートし、これをメッシュしてH3Dファイルにエクスポートします。H3DファイルをMotionViewにインポートし、接触を定義します。
    • MotionView内で、MotionViewToolsメニューからImport CAD or FEを選択します。このユーティリティは、HyperMeshを使用して変換を行います。これは、HyperMeshに不慣れなユーザー向けの機能です。
  14. すべてのグラフィックエンティティがアニメーションH3Dファイルに書き込まれ、システムの挙動をHyperViewで可視化することができます。
  15. すべてのプリミティブ3Dグラフィックス(Sphere、Ellipsoid、Cylinder、Frustum、BoxDefinedFromCorner、およびBoxDefinedFromCenter)が、アニメーションH3Dファイルに書き込まれるときに、三角形メッシュ化表現に変換されます。

    それらのメッシュの密度は、パラメータrefinement_levelで制御できます。refinement_levelの値を大きくすると、三角形が追加され、メッシュの密度が高くなります。

    メッシュ密度が高いほど、正確な接触力が得られる傾向にありますが、三角形が多くなると、通常シミュレーション時間が長くなります。

    次の図は、いくつかのプリミティブ3D形状での、精緻化レベルを上げることによる効果を示しています。



    図 23. refinement_level = 0のBox


    図 24. refinement_level = 1のBox


    図 25. refinement_level = 2のBox


    図 26. refinement_level = 2のSphere


    図 27. refinement_level = 3のSphere


    図 28. refinement_level = 4のSphere


    図 29. refinement_level = 1のCylinder


    図 30. refinement_level = 2のCylinder


    図 31. refinement_level = 3のCylinder

    refinement_level属性は、TriaMeshグラフィックタイプで使用することもできます。精緻化レベルを1大きくすると、下の図に示すように、各三角形が4つの三角形に分割されます。註: TriaMeshグラフィックをそのまま使用する場合は、この属性を0に設定するか、これを定義しないでください。



    図 32. refinement_level = 0のTriamesh


    図 33. refinement_level = 1のTriamesh


    図 34. refinement_level = 2のTriamesh
    refinement_levelは、次のグラフィックタイプでサポートされています:
    • BoxDefinedFromCenter
    • BoxDefinedFromCorner
    • Sphere
    • Ellipsoid
    • Cylinder
    • Frustum
    • Plane
    • TriaMesh
    • Parasolid
  16. 接触では、MotionSolveが、できるだけすべてのプリミティブ3Dグラフィックス(Sphere、Ellipsoid、Cylinder、Frustum、BoxDefinedFromCorner、およびBoxDefinedFromCenter)に解析表現を使用して、正確で、高速で、滑らかな接触力を計算しようとします。詳細については、Force: Contactを参照してください。