iLogic では、Inventor のパーツ、アセンブリ、および図面ドキュメントの iProperty を設定および取得するルール関数が提供されています。ルールを使用して設計を新しい構造に移行または修正する際には、設計ドキュメントの iProperty を最新状態に維持する必要があります。iProperty は、修正する部品表に対して最新である必要があります。また、ルールは、ドキュメントの iProperty 値を読み取って、それらの値に応答するために使用できます。たとえば、材料のプロパティが変わったとき、ルールによってパーツの厚さを変えることができます。パーツの質量が最大または最小値を超えた場合にルールによって変更を開始することができます。手動で設定できる iProperty は、ルールを使用して設定または読み取りを行うことができます。
iProperty 関数にアクセスするには、[スニペット]領域の[システム]タブで[iProperty]ノードを展開します。
構文
iProperties.Value("property tab name", "property name")
ルールを含むドキュメントでプロパティ値を読み取るか設定します。
iProperties.Value("filename.ipt", "property tab name", "property name")
アセンブリ レベルのルールで、パーツまたはサブアセンブリの iProperty にアクセスするために使用します。
パーツまたはサブアセンブリのファイル名が変更された場合は、ルールのテキストも変更されます。
ファイル名を使用するよりも、(カスタマイズ後の)コンポーネント名を使用することをお勧めします。
iProperties.Value("custom component name", "property tab name", "property name")
コンポーネントでプロパティ値の設定または読み取りを行います。この関数では、ファイル名ではなくコンポーネント名を使用します。ファイル参照が変更された場合もコンポーネント名が変更されないようにカスタマイズします(元の既定名から変更します)。
例
iProperty 値の設定:
iProperties.Value("Project", "Stock Number") = "302A"
iProperty 値の読み取り:
MyStringParam = iProperties.Value("Project", "Stock Number")
カスタム iProperty 値の設定:
iProperties.Value("Custom", "Age") = 41 'number type iProperties.Value("Custom", "Company") = "Autodesk, Inc" 'text type iProperties.Value("Custom", "Date") = CDate("11/1/2008") ' date type iProperties.Value("Custom", "Insured") = true 'yes or no type
カスタム iProperty 値の読み取り:
age = iProperties.Value("Custom", "Age") company = iProperties.Value("Custom", "Company") thedate = CStr(iProperties.Value("Custom", "Date")) insured = iProperties.Value("Custom", "Insured")
注意事項
Work_In_Progress = 1 Pending = 2 Released = 3 iProperties.Value("Status", "Design State") = Pending
非推奨の関数
前の iLogic では、次の関数を使用してアセンブリ内のパーツから iProperty を取得していました。
iProperties.ValueInDoc("filename.ipt", "property tab name", "property name")
ファイル名を参照します。
iProperties.ValueInComponent("custom component name", "property tab name", "property name")
コンポーネント名を参照します。
これらの関数は、[ルールを編集]ダイアログ ボックスの[スニペット]領域では利用できませんが、ルールで使用した場合には機能します。ただし、これらの古い関数よりも iProperties.Value 関数の方を使用してください。
この関数によって、Autodesk Inventor の異なる言語バージョンで、同じドキュメントを使用できるようになります。ルール内の材料および色に英語名を使用すると、モデルの移植性が向上します。この関数を True に設定した場合は、材料や色の名前を返す関数が、英語名を返します。Autodesk Inventor インストールの言語と同じ言語の名前を使用して材料や色の名前を設定できます。ただし、統一化のために、英語名を使用することをお勧めします。次の関数は、iProperties.StylesInEnglish の値を True に設定したときに、英語名を返します。
ドキュメントの材料の設定および読み取りを行います
材料を設定するときは、アクティブな標準物理材質一覧に表示されている正確な材料名(大文字と小文字を区別)を使用してください。材料の値は、常に引用符で囲んだテキスト文字列です。
例
材料を設定するには、次のように記述します。
iProperties.Material = "Gold"
材料を読み取るには、次のように記述します。
MyStringParam = iProperties.Material
ファイル名の指定により、アセンブリ内のパーツの設定または読み取りを行います。
アセンブリ レベルのルールで、コンポーネント名を指定してアセンブリ内のパーツの材料にアクセスするために使用します。
パーツの現在の色の設定および読み取りを行います。Part Color の値は、テキスト文字列であり、引用符で囲みます。色の変更は、現在の材料の値に影響しません。
この関数はパーツのみに対して機能します。
例
色を設定するには、次のように記述します。
iProperties.PartColor = "Green" iProperties.PartColor = "As Material"
色を読み取るには、次のように記述します。
MyStringParam = iProperties.PartColor
ルールを含むパーツまたはアセンブリ ドキュメントの質量の読み取りまたは書き込みを行います。
質量を書き込むと、計算質量よりも優先されます。計算値を復元するには、質量に -1 を設定します。
iProperties.Mass(“filename.ipt”)
アセンブリ内のパーツまたはサブアセンブリの質量をファイル名の指定により読み取るか、書き込みます。
iProperties.Mass(“component name:1”)
アセンブリ内のコンポーネントの質量をコンポーネント名の指定により読み取るか、書き込みます。この関数は、バーチャル コンポーネントの質量の読み取りまたは書き込みにも使用することができます。
例
質量を読み取るには、次のように記述します。
MyMassParam = iProperties.Mass MyMassParam = iProperties.Mass("component:1") MyMassParam = iProperties.Mass("mypart.ipt")
質量を設定するには、次のように記述します(自動計算よりも優先されます)。
iProperties.Mass = 3 kg iProperties.Mass("virtual_component") = 233 g iProperties.Mass("mypart.ipt") = 4.2 lb massiProperties.Mass = -1 'set the mass back to automatic calculation
ルールを含むドキュメントの体積の読み取りまたは書き込みを行います。
iProperties.Volume(“filename.ipt”)
ルールを含むパーツまたはサブアセンブリの体積をファイル名の指定により読み取るか、書き込みます。
iProperties.Volume(“component:1”)
アセンブリ内のコンポーネントの体積をコンポーネント名の指定により読み取るか、書き込みます。この関数は、バーチャル コンポーネントの体積の読み取りまたは書き込みにも使用することができます。
例
体積を読み取るには、次のように記述します。
MyVolumeParam = iProperties.Volume MyVolumeParam = iProperties.Volume("component:1") MyVolumeParam = iProperties.Volume("mypart.ipt")
体積を設定するには、次のように記述します(自動計算よりも優先されます)。
iProperties.Volume = 12.4 in^3 iProperties.Volume("virtual_component") = 542 cm^3 iProperties.Volume("mypart.ipt") = 12.8 in^3 iProperties.Volume = -1 'set it back to automatic calculation
ルールを含むドキュメントのモデルの重心を読み取ります。
構文
pt = iProperties.CenterOfGravity
pt は Inventor.Point 型の変数です。詳細は、Inventor API のヘルプを参照してください。ルール ドキュメントの単位で表現された、点の X、Y、Z 値を読み取ります。
cx = pt.X cy = pt.Y cz = pt.Z
pt = iProperties.CenterOfGravity("component")
アセンブリ内のコンポーネントの重心をコンポーネント名の指定によって読み取ります。
ルールを含むドキュメントのモデルの表面積を読み取ります。
構文
surfaceArea = iProperties.Area
surfaceArea = iProperties.Area(“component:1”)
アセンブリ内のコンポーネントの表面積をコンポーネント名の指定により読み取ります。