テンプレートでの関数の活用 その1

Tekla Structures Hint tips
2022
Tekla Structures
2021
Tekla Structures
2020
Tekla Structures
2023
Tekla Structures
2024
Tekla Structures
2025
Tekla Structures
2026
Tekla Structures
Environment
Japan

テンプレートエディタの行コンテンツのルールを活用することで、レポートや図面のテンプレート上で、ある特定の部材のときに行を出力するようなことができます。ここではルールオプション上で活用できる設定をご紹介します。


ポリゴンプレートを抽出したい場合

モデル上の部材の断面タイプを確認する値フィールドとしては、PROFILE_TYPEがあります。ポリゴンプレートで配置した部材はPROFILE_TYPEとして、”POLY”が設定されています。したがってテンプレートエディタで、以下のようなルールを設定することで、モデル上からポリゴンプレートを抽出することができます。
 

if (GetValue("PROFILE_TYPE") == ”POLY") then
  Output()
else
  StepOver()
endif


このポリゴンプレートの抽出については、行プロパティ上の ウィザードボタンを使ってルールを定義することもできます。

 

 

 

Image
HintAndTips_160.png

 



特定の名前を持つ部材を抽出したい場合

部材の名前フィールドに特定の名称が設定されている部材を抽出する場合には、関数matchやfindを使って、ルールを設定することができます。テンプレートエディタで、以下のようなルールを設定することで、部材の名前に”PLATE”という文字列が含まれているものを抽出することができます。
【matchを使った場合】

 

 

if(match(GetValue("NAME"),"*PLATE*")) then
Output()
else
  StepOver()
endif


【findを使った場合】

 

 

if(find(GetValue("NAME"),”PLATE”) >= 0) then
Output()
else
  StepOver()
endif

 

match関数では、関数内で指定した値フィールド(NAME)に、所定の文字(PLATE)がある場合には、TRUEが返されます。設定する文字列には、ワイルドカード(*)や任意の文字(?)、特定の文字([~])を指定することができます。
(例)
大文字または小文字で文字列”PLATE”が定義されている場合 ”*[Pp][Ll][Aa][Tt][Ee]*”
SGPに続く文字列が1桁の任意の文字と”A”の場合   “SGP?A”
SGPに続く文字列が1桁の1~9の文字と”A”の場合   “SGP[123456789]A”

find関数では、関数内で指定した値フィールド(NAME)で、対象の文字列(PLATE)を検索します。検索対象の文字列があった場合には、先頭文字が0として、その文字列の位置を返します。検索対象の文字が含まれない場合には、-1が返されます。


特定のユーザー定義情報(UDA)の値で抽出したい場合

ユーザー定義情報のフィールドに情報が設定されているものを抽出する場合には、関数lengthやIsSetを使って、ルールを設定することができます。テンプレートエディタで、以下のようなルールを設定することで、コメントフィールドに値が設定されたものを抽出することができます。

【lengthを使った場合】

if(length(GetValue("comment")) <=0 )then
Output()
else
  StepOver()
endif

【IsSetを使った場合】

if (IsSet("comment"))  then
Output()
else
  StepOver()
endif

length関数では、指定されたフィールドにデータが定義されている場合には、そのデータの長さ(文字数)が返されます。データが定義されていない場合には、-1が返されます。

IsSet関数では、値フィールドにデータが設定されている場合には、TRUEが返されます。

役に立ちましたか?
送信