SPLINE_READ
ModelingReference_Spline要素で使用するxデータ、yデータ、およびオプションでzデータをファイルから読み取るために使用します。
使用
<Reference_Spline
id = "301001"
usrsub_dll_name = "c:\work\test.dll"
file_name = "c:\data\spring1.dat"
block_name = "spring_force">
</ Reference_Spline>
フォーマット
- Fortranの呼出し構文
-
SUBROUTINE SPLINE_READ (ID, FILE_NAME, BLOCK_NAME, ERRFLG)
- C/C++の呼出し構文
-
void STDCALL SPLINE_READ (int *id, char *file_name, int file_name_len, char *block_name, int block_name_len, int *errflg)
- Pythonの呼出し構文
-
def SPLINE_READ(id, file_name, block_name): return errflag
- MATLABの呼出し構文
-
function errflg = SPLINE_READ(id, file_name, block_name)
属性
- ID
- [整数]
- FILE_NAME
- [CHARACTER*(*)]
- BLOCK_NAME
- [CHARACTER*(*)]
出力
- ERRFLG
- [論理]
例
- 下の例は、Pythonスクリプト言語を使用したSPLINE_READユーザーサブルーチンを示しています:
def SPLINE_READ(id, file_name, block_name): x =6*[0.0] y =6*[0.0] x[0] =0.0 x[1] =0.3 x[2] =0.5 x[3] =1.0 x[4] =1.5 x[5] =2.0 y[0] =0.0 y[1] =0.0 y[2] =0.0 y[3] = -0.05 y[4] = -0.15 y[5] = -0.3 z =0.0 errflg = py_put_spline(id, x, y, z) return errflg
- 下の例では、SPLINE_READサブルーチンを使用して、外部ファイルdata.txtから読み取った値をReference_Splineモデル要素に入力します。
- モデル要素:
<Reference_Spline id = "301001" label = "Excite" interpreter = "Python" script_name = "read_curve.py" usrsub_fnc_name = "SPLINE_READ" file_name = "data.txt" block_name = "dummy" linear_extrap = "TRUE" />
- 外部ファイルdata.txtには、次のようなx値とy値のコンマ区切りリストが含まれています:
0, 0 0.1, 4.045084972 0.2, 4.755282581 0.3, 1.545084972 0.4, -2.938926261 0.5, -5 0.6, -2.938926261 0.7, 1.545084972 0.8, 4.755282581 0.9, 4.045084972 1, 1.07195E-14 1.1, -4.045084972 1.2, -4.755282581 1.3, -1.545084972 1.4, 2.938926261 …
- ユーザーサブルーチンSPLINE_READは、次のように、Pythonスクリプト言語で記述されます:
# # This is an example for a spline read # def SPLINE_READ(id, file_name,block_name): x_ = [] y_ = [] # Open the external file for reading f = open(file_name, 'r') # Loop throught the file contents to get x,y values while 1: line = f.readline() if not line: break cols = line.split(',') x_.append(float(cols[0])) temp = cols[1].split('\n') y_.append(float(temp[0])) z_ = 0.0 # Use py_put_spline to put the x, y, z values into reference_spline errflg = py_put_spline(id, x_, y_, z_) return errflg
- モデル要素: