変数の式の関数
変数の式の関数
関数を使用して、パラメータ変数の値を計算することができます。変数の式は、常に等号(=)で始まります。
詳細については、「 パラメーター変数を使用してオブジェクト プロパティを設定する 」を参照してください。
算術演算子
算術演算子を使用して、数値を返す式を組み合わせることができます。次の算術演算子を使用することができます。
演算子 |
説明 |
注記 |
---|---|---|
+ |
加算 |
パラメータの文字列を作成するときにも使用します。 |
- |
減算 |
|
* |
乗算 |
乗算は除算より高速です。 =D1*0.5 は =D1/2 より高速です。 |
/ |
除算 |
論理演算子および比較演算子
論理演算子と比較演算子は、 if ステートメント内で使用します。 if-then-else ステートメントを使用すると、条件をテストし、その結果に従って値を設定できます。
例:
=if (D1>200) then 20 else 10 endif
次の演算子をifステートメント内で使用することができます。
演算子 |
説明 |
例 |
---|---|---|
== |
両側が等しい |
|
!= |
両側が等しくない |
|
< |
左側が小さい |
|
<= |
左側が小さいか等しい |
|
> |
右側が小さい |
|
>= |
右側が小さいか等しい |
|
&& |
論理AND 両方の条件がtrueである |
=if (D1==200 && D2<40) then 6 else 0 endif D1が200かつD2が40未満の場合、結果は6になり、それ以外の場合は0になります。 |
|| |
論理OR 一方の条件だけがtrueである |
=if (D1==200 || D2<40) then 6 else 0 endif D1が200であるか、またはD2が40未満の場合、結果は6になり、それ以外の場合は0になります。 |
参照関数
参照関数は、別のオブジェクトのプロパティ (副部材のプレートの厚さなど) を参照する場合に使用します。 Tekla Structures では、システム レベルでオブジェクトを参照するため、オブジェクトのプロパティが変更されると、参照関数の値も変更されます。
次の参照関数を使用することができます。
関数 |
説明 |
例 |
---|---|---|
fTpl("template attribute", "object GUID") |
指定されたオブジェクトGUIDを持つオブジェクトのテンプレート属性の値を返します。 |
=fTpl("WEIGHT","ID50B8559A-0000-010B-3133-353432373038") GUIDがID50B8559A-0000-010B-3133-353432373038であるオブジェクトの重量を返します。 |
fP("user-defined attribute", "object GUID") |
指定されたオブジェクトGUIDを持つオブジェクトのユーザー定義情報の値を返します。 |
=fP("comment", "ID50B8559A-0000-010B-3133-353432373038") GUIDがID50B8559A-0000-010B-3133-353432373038であるオブジェクトのユーザー定義情報 コメント を返します。 |
fValueOf("parameter") |
パラメータの値を返します。 |
式が =P2+"*"+P3 の場合、結果は P2*P3 になります。 =fValueOf("P2")+"*"+fValueOf("P3") で、P2=780およびP3=480の場合、結果は 780*480 になります。 |
fRebarCatalogValue(BarGrade, BarSize, Usage, FieldName) |
オブジェクトの鉄筋カタログの値を返します。 Usage は、2("Tie")または1("Main")に設定することができます。 FieldName は、次のいずれかにする必要があります。
|
fRebarCatalogValue("A500HW", "10", 1, 2) 鉄筋の等級がA500HWであるオブジェクトのサイズ、用途、および重量を返します。 |
参照関数としてのASCIIファイル
ASCII ファイルを参照してデータを取得できます。 Tekla Structures によるファイルの検索は、次の順序に従います。
-
モデル
-
..\TeklaStructuresModels\<model>\CustomComponentDialogFiles\
-
プロジェクト(詳細設定 XS_PROJECT を使用して設定)
-
企業(詳細設定 XS_FIRM を使用して設定)
-
システム(詳細設定 XS_SYSTEM を使用して設定)
ファイルを読み込む際の形式は次のとおりです。
fVF("filename", "key_value_of_row", column_number)
-
行のキー値は一意のテキスト値です。
-
列番号は1から始まるインデックスです。
ASCIIファイルの各行の末尾にスペースを入力します。そうしないと、情報が正しく読み込まれません。
例
[ 変数 ] ダイアログ ボックスの [ 式 ] ボックスに、 =fVF("Overlap.dat", "MET-202Z25", 5) という関数を入力した場合、この関数は、 Overlap.dat ファイルから、プロファイル MET-202Z25 の値 16.0 を取得します。
-
行のキー値(MET-202Z25)
-
列番号(5)
数学関数
数学関数を使用して、より複雑な数学式を作成することができます。次の関数を使用することができます。
関数 |
説明 |
例 |
---|---|---|
fabs(パラメータ) |
パラメータの絶対値を返します。 |
D1 = -15の場合、 =fabs(D1) は 15を返します。 |
exp(指数) |
e を累乗した値を返します。 e はオイラー数です。 |
D1 = 2の場合、 =exp(D1) は 7.39を返します。 |
ln(パラメータ) |
パラメータの自然対数(底 e )を返します。 |
P2 = 15の場合、 =ln(P2) は 2.71を返します。 |
log(パラメータ) |
パラメータの対数(底10)を返します。 |
D1 = 100の場合、 =log(D1) は 2を返します。 |
sqrt(パラメータ) |
パラメータの平方根を返します。 |
D1 = 16の場合、 =sqrt(D1) は 4を返します。 |
mod(割られる数, 割る数) |
除算の剰余を返します。 |
D1 = 16の場合、 =mod(D1, 5) は 1を返します。 |
pow(基数, 指数) |
基数を指定した指数で累乗した値を返します。 |
D1 = 3の場合、 =pow(D1, D2) 9を返します。 |
hypot(辺1,辺2) |
斜辺を返します。
|
D1 = 3およびD2 = 4の場合、 =hypot(D1, D2) は 5を返します。 |
n!(パラメータ) |
パラメータの階乗を返します。 |
P2 = 4の場合、 =n!(P2) は 24を返します。 (1*2*3*4) |
round(パラメータ, 精度) |
パラメータを指定の精度に丸めた値を返します。 |
P1 = 10.567の場合、 =round(P1, 0.1) は 10.600を返します。 |
PI |
piの値を小数第31位まで返します。 |
=PI は3.1415926535897932384626433832795を返します。 |
統計関数
統計関数を使用して、合計および平均を計算したり、値を丸めることができます。次の統計関数を使用することができます。
関数 |
説明 |
例(P1 = 1.4、P2 = 2.3) |
---|---|---|
ceil() |
パラメータ以上の最小の整数を返します。 |
=ceil(P1) は2を返します。 |
floor() |
パラメータ以下の最大の整数を返します。 |
=floor(P1) は1を返します。 |
min() |
最小のパラメータを返します。 |
=min(P1, P2) は1.4を返します。 |
max() |
最大のパラメータを返します。 |
=max(P1, P2) は2.3を返します。 |
sum() |
パラメータの合計を返します。 |
=sum(P1, P2) は3.7を返します。 |
sqsum() |
パラメータの2乗の合計、つまり、(パラメータ1)2 + (パラメータ2)2の値を返します。 |
=sqsum(P1, P2) は7.25を返します。 |
ave() |
パラメータの平均を返します。 |
=ave(P1, P2) は1.85を返します。 |
sqave() |
パラメータの2乗の平均を返します。 |
=sqave(P1, P2) は3.625を返します。 |
例: ceilおよびfloor統計関数
この例では、次のパラメータ変数があるとします。
-
梁の長さ: P1 = 3500
-
支柱間隔: P2 = 450
P1 / P2 = 7.7778
ceil および floor 統計関数を使用して値を丸め、丸めた値を梁の支柱の数として使用できます。
-
=ceil(P1/P2) は8を返します。
-
=floor(P1/P2) は7を返します。
データ型変換関数
データ型変換関数を使用して、別のデータ型に値を変換することができます。次のデータ型変換関数を使用することができます。
関数 |
説明 |
例 |
---|---|---|
int() |
データを整数に変換します。 |
プロファイルの寸法を計算する場合に特に役立ちます。 [ オプション ] ダイアログ ボックスで小数点が 0 に設定されている場合、 =int(100.0132222000) は 100 を返します。 |
double() |
データをdouble型に変換します。 |
|
string() |
データを文字列に変換します。 |
|
imp()
|
フィート・インチ単位を変換します。 フィート・インチ単位ではなく、この関数を計算に使用します。計算にフィート・インチ単位を直接使用することはできません。 |
以降の例では、 [オプション] ダイアログボックスで長さ単位がmmに、小数点が2に設定されています。 =imp(1,1,1,2) は、1フィート1 1/2インチを意味し、342.90 mmを返します。 =imp(1,1,2) は、1 1/2インチを意味し、38.10 mmを返します。 =imp(1,2) は、1/2インチを意味し、12.70 mmを返します。 =imp(1) は、1インチを意味し、25.40 mmを返します。 =3’/3" は使用できませんが、 =imp(36)/imp(3) は大丈夫です。 |
vwu(値, 単位) |
長さ値と角度値を変換します。有効な単位は以下のとおりです。
|
[ オプション ] ダイアログ ボックスで長さ単位が mm に、小数点が 2 に設定されている場合、 =vwu(4.0,"in") は 101.60 mm を返します。 [ オプション ] ダイアログ ボックスで角度が度に、小数点が 2 に設定されている場合、 =vwu(2.0,"rad") は 114.59 度を返します。 |
単位は、 [ファイル] メニュー > 設定 > オプション > 単位と小数点 の設定によって異なります。
文字列演算
文字列演算を使用して、文字列を操作できます。変数の式では、文字列を引用符で囲む必要があります。
次の文字列演算子を使用することができます。
演算 |
説明 |
例(P1 = "PL100*10") |
---|---|---|
match(パラメータ1, パラメータ2) |
2つのパラメータが等しい場合は1、異なる場合は0を返します。 match 関数では、ワイルドカード * 、 ? 、および [ ] を使用することもできます。 |
=match(P1, "PL100*10") は1を返します。 PFCで始まるすべてのプロファイルを受け取る場合: =match(P4, "PFC*") PFC で始まり、高さが 2、3、4、または 5 で始まるプロファイルを受け取る場合: =match(P4, "PFC[2345]*") PFC で始まり、高さが 200、300、400、または 500 で、幅が 7 で始まるプロファイルを受け取る場合: =match(P4, "PFC[2345]00?7*") |
length(パラメータ) |
パラメータの文字数を返します。 |
=length(P1) は8を返します。 |
find(パラメータ, 文字列) |
指定した文字列の順序番号(ゼロから開始)を返します。指定した文字列がパラメータで見つからない場合は-1を返します。 |
=find(P1, "*") は5を返します。 |
getat(パラメータ, n) |
パラメータのn番目(ゼロから開始)の文字を返します。 |
=getat(P1, 1) は"L"を返します。 |
setat(パラメータ, n, 文字) |
パラメータのn番目(ゼロから開始)の文字を指定した文字に設定します。 |
=setat(P1, 0, "B") は"BL100*10"を返します。 |
mid(文字列, n, x) |
文字列のn番目(ゼロから開始)の文字からx文字を返します。最後の引数(x)を省略した場合は、文字列の最後の部分を返します。 |
=mid(P1,2,3) は"100"を返します。 |
reverse(文字列) |
指定した文字列を反転させます。 |
=reverse(P1) は"01*001LP"を返します。 |
例1
P2 = 100 と P3 = 10の2つの変数を使用してプロファイルサイズPL100*10を定義するには、次のように式を入力します。
="PL"+P2+"*"+P3
例2
Tekla Structures では、ボルト間隔を文字列として処理します。ボルト間隔を定義するには、 [値のタイプ] を [距離リスト] に設定し、次のように式を入力します。
=P1+" "+P2
P1 = 100 ( length )で、P2 = 200 ( length )の場合、結果は100 200になります。
三角関数
三角関数を使用して、角度を計算することができます。次の三角関数を使用することができます。
関数 |
説明 |
例 |
---|---|---|
sin() |
正弦値を返します。 |
=sin(d45) は0.71を返します。 |
cos() |
余弦値を返します。 |
=cos(d45) は0.71を返します。 |
tan() |
正接値を返します。 |
=tan(d45) は1.00を返します。 |
asin() |
sin()の逆関数。値をラジアンで返します。 |
=asin(1) は 1.571 rad (ラジアン) を返します。 |
acos() |
cos()の逆関数。値をラジアンで返します。 |
=acos(1) は 0 rad (ラジアン) を返します。 |
atan() |
tan()の逆関数。値をラジアンで返します。 |
=atan(1) は 0.785 rad (ラジアン) を返します。 |
sinh() |
双曲線正弦値を返します。 |
=sinh(d45) は0.87を返します。 |
cosh() |
双曲線余弦値を返します。 |
=cosh(d45) は1.32を返します。 |
tanh() |
双曲線正接値を返します。 |
=tanh(d45) は0.66を返します。 |
atan2() |
正接が2つの数値の商である角度を返します。値をラジアンで返します。 |
=atan2(1,3) は0.32を返します。 |
変数の式で三角関数を使用する場合は、単位を示す頭マークを含める必要があります。頭マークを含めていない場合、 Tekla Structures ではデフォルトの単位としてラジアンが使用されます。
-
dは度数を表します(例: sin(d180) )。
-
rはラジアンを表します(デフォルト)(例: sin(r3.14) または sin(3.14) )。
マーケットサイズ関数
カスタムコンポーネントでマーケットサイズ関数を使用して、使用可能なマーケットサイズから適切なプレート寸法(通常はプレートの厚さ)を選択します。たとえば、プレートの厚さは梁のウェブに適合する必要があります。
関数 |
説明 |
例 |
---|---|---|
fMarketSize(材質, 厚さ, 増分値) |
指定した厚さに基づいて、 marketsize.dat ファイルから材質の次に使用可能なマーケットサイズを返します。 ファイルは、 ..\environments\your_environment\profil フォルダまたはシステムフォルダに格納されている必要があります。 増分値には、次のサイズへの増分を示す数値を入力します(デフォルト値は0)。 |
=fMarketSize("S235JR", 10, 0) |
例
この例では、次のデータは marketsize.dat に含まれています。
S235JR,6,9,12,16,19,22 SS400,1.6,2.3,3.2,4.5,6,9,12,16,19,22,25,28,32,38 DEFAULT,6,9,12,16,19,22,25,28,32,38
行の最初の項目は材質であり、その後に使用可能なプレート厚がミリメートル単位で示されています。DEFAULT行には、他のすべての材質で使用可能な厚さが示されています。
上記のデータでは、関数 =fMarketSize("S235JR",10,0) は12を返し、 =fMarketSize("S235JR",10,1) は16(1サイズ上)を返します。
部材接続タイプ関数
部材接続タイプ関数を使用し、メイン部材 (柱または梁) を基準として、副梁の斜角度、勾配角度、および軸回転角度を返すことができます。次の部材接続タイプ関数を使用することができます。
関数 |
説明 |
例 |
---|---|---|
fAD("skew", GUID) |
指定のGUIDを持つ副部材の斜角度を返します。 |
=fAD("skew","ID50B8559A-0000-010B-3133-353432373038") は45を返します。 ID50B8559A-0000-010B-3133-353432373038は副部材のGUIDです。副部材は、メイン部材に対して45度の角度に位置します。 |
fAD("slope", GUID) |
指定のGUIDを持つ副部材の勾配角度を返します。 |
=fAD("slope","ID50B8559A-0000-010B-3133-353432373038") |
fAD("cant", GUID) |
指定のGUIDを持つ副部材の軸回転角度を返します。 |
=fAD("cant","ID50B8559A-0000-010B-3133-353432373038") |
-
これらの関数は、勾配角度および斜角度の正と負の値を返しません。これらの関数を使用して、上下の勾配や左右の傾きを指定することはできません。
-
返される最大斜角度は45度です。
-
Tekla Structures では、勾配角度と斜角度を分離するために、角度は2次元で計算されます。たとえば、勾配角度を計算するときには、斜角度は考慮に入れられません。このため、副部材がメイン部材の周りを何度回転しても、勾配角度の値は同じままです。
斜角度を含めた実際の3次元勾配角度を計算するには、次の数式を使用することができます。
TRUE_SLOPE = atan( tan(SLOPE) * cos(SKEW))
例1
勾配と斜は柱に接続する梁を基準とします。
側面ビュー |
上面ビュー |
|
|
- 柱
- 梁
- 勾配
- 斜
例2
梁が2本の場合、 勾配 は実際にはもう一方の梁に接続する梁の水平方向の傾きであり、メイン部材を基準とする梁の垂直方向の勾配は、実際には 斜 角度になります。
側面ビュー |
上面ビュー |
|
|
- 斜
- 勾配