MARKER_READ

Modelingユーザー定義のマーカー要素を入力します。

使用

<Reference_Marker
     id                  = "30102040"
     label               = "Joint 3-Marker I"
     body_id             = "30102"
     body_type           = "RigidBody"
     usrsub_param_string = "USER(1,-0.5, 0.3, 0., 1.57079633, 1.57079633, -1.57079633)"
     usrsub_dll_name     = "NULL"
     usrsub_fnc_name     = "MARKER_READ"
/>

フォーマット

Fortranの呼出し構文
SUBROUTINE MARKER_READ (ID, PAR, NPAR, ERRFLG)
C/C++の呼出し構文
void STDCALL MARKER_READ (int *id, double *par, int *npar, int *errflg)
Pythonの呼出し構文
def MARKER_READ(id, par, npar):
    return function errflg = MARKER_READ(id, par, npar)
MATLABの呼出し構文
function errflg = MARKER_READ(id, par, npar)

属性

ID
[整数]
マーカー要素識別子。
PAR
[倍精度]
ユーザー定義のステートメントで提供されたリストにある定数引数を格納した配列。
NPAR
[整数]
PAR配列のエントリの数。
ERRFLAG
[整数]
エラーフラグ。

def MARKER_READ(id, par, npar):
    eflg = 0
    errflg = 0
    r = 3 *[0.0]
    angle = 6*[0.0]
    angle_type = int(par[0])
    r[0] = par[1]
    r[1] = par[2]
    r[2] = par[3]
    if angle_type==0: # DCMTX
        angle[0] = par[4]
        angle[1] = par[5]
        angle[2] = par[6]
        angle[3] = par[7]
        angle[4] = par[8]
        angle[5] = par[9]
    elif (angle_type == 1) | (angle_type == 2):# Euler angles (313 or YPR)
        angle[0] = par[4]
        angle[1] = par[5]
        angle[2] = par[6]
    elif angle_type == 3: # Euler parameters
        angle[0] = par[4]
        angle[1] = par[5]
        angle[2] = par[6]
        angle[3] = par[7]
    else:
        errflg = 1;
        return errflg
    eflg = py_put_marker(id, r, angle_type, angle)
    return errflg

コメント

  1. MARKER_READは、Reference_Marker要素でのみ定義できます。MARKER_READ関数は、解析用にマーカーの位置と方向を取得するためにソルバー初期化中に一度だけ呼び出されます。MARKER_READは、SPLINE_READと同様に機能します。