Surface

Model ElementSurfaceは、3D空間でパラメトリックサーフェス要素を定義します。

クラス名

Surface

説明

2つの自由パラメータ(uv)について1つのパラメトリックサーフェスが定義されます。これは、サーフェス上の任意のポイントPの3つの座標(x、y、z)が2つの自由パラメータuおよびvの関数であることを意味します。サーフェスには3つのメソッドがあります。

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
id Int ()   ×
label Str ()
uclosed Bool (False)
vclosed Bool (False)
minpar Double ([-1, -1], count=2)
maxpar Double ([1, 1], count=2)
function Function ("SURSUB")  
routine Routine ()  

使用法

#1: Defined in a compiled user-written subroutine
Surface (function=userString, routine=string, optional_attributes)

#2: Defined in a Python script
Surface (function=userString, routine=functionPointer, optional_attributes)

属性

コンパイルされたユーザー作成サブルーチンで定義
function
文字列
データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。
function属性は必須です。
routine
文字列
ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のSurfaceの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。
例: routine="/staff/Altair/engine.dll::mySurface"
  • "/staff/Altair/ engine.dllはDLLです。
  • "mySurface"は、計算を実行するこのDLL内の関数です。
属性routineは省略可能です。指定しない場合、routineはデフォルトでSURSUBになります。
Python関数で定義
function
文字列
データファイルからユーザー定義のPython関数に渡されるパラメータのリスト。
function属性は必須です。
routine
Python内の呼び出し可能な関数へのポインタ。
例: routine=mySurface"
  • mySurfaceは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
属性routineは省略可能です。指定しない場合、routineはデフォルトでSURSUBになります。
オプション属性 - すべての記述方法に使用できます。
id
整数
要素識別番号を指定します。この番号は、モデル内のすべてのSurfaceオブジェクトの中で一意にする必要があります。
この属性は省略可能です。MotionSolveは、IDが指定されていない場合、自動的にこれを作成します。
値の範囲:id > 0
label
文字列
Surfaceオブジェクトの名前を指定します。
この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
uclosed
ブール
uパラメトリック空間でサーフェスが閉じている場合、Trueを選択します。uパラメトリック空間でサーフェスが開いている場合、Falseを選択します。
uclosed属性は省略可能です。指定しない場合は、デフォルトでFalseになります。
vclosed
ブール
uパラメトリック空間でサーフェスが閉じている場合、Trueを選択します。vパラメトリック空間でサーフェスが開いている場合、Falseを選択します。
vclosed属性は省略可能です。指定しない場合は、デフォルトでFalseになります。
minpar
2つの倍精度値のリスト。
uvの最小値のリストを指定します。
minpar属性は省略可能です。指定しない場合は、デフォルトで[-1,-1]になります。
注: 指定する場合は、minpar < maxparです。
maxpar
2つの倍精度値のリスト。
uvの最大値のリストを指定します。
maxpar属性は省略可能です。指定しない場合は、デフォルトで[+1,+1]になります。
注: 指定する場合は、minpar < maxparです。

ユーザーサブルーチンで円筒サーフェスを定義します。
#Define the surface in the function cylindricalSurface ()
from math importsin, cos, pi
def cylindricalSurface (id, par, npar, u, v, iord, iflag):

  values = []
  r      = par [0]

  if iord ==0:
    values.append (r * cos (u))   #  x
    values.append (r * sin (u))   #  y
    values.append (v)             #  z

  elifiord ==1:
   values.append (-r * sin (u))   # dx / du
   values.append ( r * cos (u))   # dy / du
   values.append (0.0)            # dz / du
   values.append (0.0)            # dx / dv
   values.append (0.0)# dy / dv
   values.append (1.0)# dz / dv

  elifiord ==2:
   values.append (-r * cos (u))   # d2x / du du
   values.append (-r * sin (u))   # d2y / du du
   values.append (0.0)            # d2z / du du
   values.append (0.0)            # d2x / du dv
   values.append (0.0)            # d2y / du dv
   values.append (0.0)            # d2z / du dv
   values.append (0.0)            # d2x / dv dv
   values.append (0.0)            # d2y / dv dv
   values.append (0.0)            # d2z / dv dv

  elif iord == 3:
   values.append ( r * sin (u))   # d3x / du du du
   values.append (-r * cos (u))   # d3y / du du du
   values.append (0.0)            # d3z / du du du
   values.append (0.0)            # d3x / du du dv
   values.append (0.0)            # d3y / du du dv
   values.append (0.0)            # d3z / du du dv
   values.append (0.0)            # d3x / du dv dv
   values.append (0.0)            # d3y / du dv dv
   values.append (0.0)            # d3z / du dv dv
   values.append (0.0)            # d3x / dv dv dv
   values.append (0.0)            # d3y / dv dv dv
   values.append (0.0)            # d3z / dv dv dv
  
  # Return the computed values
  return values

# Define the Surface and refer to the user-subroutine cylindricalSurface ()
mysurface = Surface (function="user (10)", routine=cylindricalSurface, uclosed=True, vclosed=False, minpar=[0, -150], maxpar=[2*pi, 150])

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. Surfaceの詳細については、Reference: Parametric Surfaceをご参照ください。