計測関数は、距離、角度、面積、周長、およびオブジェクト範囲の単位を検出して返すために使用します。
計測関数にアクセスするには、iLogic の[ルールを編集]ダイアログの[スニペット]領域にある[システム]タブで、[計測]ノードを展開します。
2 つのエンティティ間の距離または角度を計測することができます(角度の場合 3 つのエンティティ間も可)。計測する両方のエンティティを名前で指定します。次の名前を参照できます。
エンティティは、同じパーツまたはアセンブリ内に存在するか、アセンブリ内の別のコンポーネントに存在するものを指定できます。
また、アセンブリ内の 2 つのコンポーネント間を計測することもできます。これには、各コンポーネントの最も近い点を検出して、それらの距離をレポートします。
ルール内の計測関数の前に、RuleParametersOutput および InventorVb.DocumentUpdate() 関数を(この順序で)実行します。これらの関数を使用することで、計測関数は更新された Inventor モデルで計測できます。
2 つの点、平面、軸間の最短距離を計測します。さらに、平面と点、平面と軸、点と軸の値の距離も計測できます。
構文
Measure.MinimumDistance("entityName1","entityName2")
例
2 点間を計測するには、次のように記述します。
distance = Measure.MinimumDistance("Work Point1", "Work Point2")
(1) 作業点 1 (2) 作業点 2
点と軸の間を計測するには、次のように記述します。
distance = Measure.MinimumDistance(“Work Point1”, “Work Axis1”)
(1) 作業点 1 (2) 作業軸 1
2 つの軸間を計測するには、次のように記述します。
distance = Measure.MinimumDistance("Work Axis1", "Work Axis2")
(1) 作業軸 1 (2) 作業軸 2
2 つの平面間を計測するには、次のように記述します。
distance = Measure.MinimumDistance(“Work Plane1”, “Work Plane2”)
(1) 作業平面 1 (2) 作業平面 2
Measure.MinimumDistance("componentName1", "entityName1", "componentName2", "entityName2")
アセンブリ内の 2 つのコンポーネント間のエンティティの距離を計測します。このエンティティには、点、平面、および軸を指定できます。
たとえば、アセンブリ内の 2 つのコンポーネントで、平面間の距離を計測するには、次のように記述します。
distance = Measure.MinimumDistance(“Wheel1”, “Workplane1”, “Wheel2”, Workplane2”)
(1) ホイール 1 作業平面 1 (2) ホイール 2 作業平面 2
Measure.MinimumDistance("componentName1", "componentName2")
アセンブリの 2 つのコンポーネント間の最短距離を計測します。次の例のようにコンポーネントを 1 つのオブジェクトとみなして、これらのコンポーネント上の最短点を検出します。
distance = Measure.MinimumDistance("partA:1", "partB:1") distance = Measure.MinimumDistance("Wheel1", "Wheel2")
(1) ホイール 1 (2) ホイール 2
平行ではない軸を計測する際の注意
アセンブリが 2 つのブロックで構成されていると仮定します。ブロック間の面の角度は 60 度です。各ブロックには、互いに向き合った面に穴が 1 つあります。これらの 2 つの穴の軸は、平行ではなく、同一平面上にもない線で、交差しています。次のように関数を記述したとします。
distance = Measure.MinimumDistance("Block1","Axis1","Block2","Axis1")
この場合、軸線が無限の長さであると仮定されて計測が行われるものと予想すると、距離は 0 になります。ただし、Measure.MinimumDistance 関数を使用した場合、軸の位置を表すために使用されている 2 つのマーカーの最短の端点で距離が計測されます。つまり、計測は有限の線分について実行され、返される値は 1.36 インチになります。
(1) 軸 1 (2) ブロック 1 (3) 軸 2 (4) ブロック 2
このような結果にならないようにするには、穴の軸を表す線分を手動で延長します。これで、Measure.MinimumDistance 関数は 0 インチを返すようになり交差している線分に対する予想と同じになります。
(1) ブロック 1 (2) 軸 1 (3) 軸 2 (4) ブロック 2
2 つのエンティティ間の角度、または 3 つの点によって定義された角度を計測します。
angle = Measure.Angle("entityName1", "entityName2")
パーツまたはアセンブリ内の 2 つのエンティティ間の角度を計測します。2 つの軸、2 つの面、軸と平面間の角度を計測できます。エンティティには、作業フィーチャや iMate を指定できます。
angle = Measure.Angle("componentName1", "entityName1", "componentName2", "entityName2")
アセンブリ レベルにある 2 つのコンポーネントの 2 つのエンティティについて角度を計測します。2 つの軸、2 つの面、軸と平面間の角度を計測できます。
angle = Measure.Angle("point1", "point2", "point3")
3 点で定義された角度を計測します。この値は 2 つの線分間の角度に相当します。
この場合 "point2" は、角の頂点です。次の例を参照してください。
angle = Measure.Angle("Work Point1", "Work Point2", "Work Point3")
(1) 作業点 1 (2) 作業点 2 (頂点) (3) 作業点 3
angle = Measure.Angle("componentName1", "point1", "componentName2", "point2", "componentName3", "point3")
3 点で定義された角度を計測します。"point2" は、角の頂点を定義します。各点には、異なるコンポーネント内の点を指定することもできます。
(1) 作業点 1 コンポーネント 1 (2) 作業点 2 コンポーネント 2 (角の頂点) (3) 作業点 3 コンポーネント 3 (4) 74.02 度
スケッチの領域の面積を計測します。この関数は、スケッチ内の閉じた外形線で囲まれた領域の面積の合計を計測します。
構文
Measure.Area(“SketchName”)
例
1 つの閉じた外形線の場合、この外形線で囲まれた面積を計測します。
面積: 3.14 = 平方インチ
スケッチに複数の閉じた外形線がある場合、外形線で囲まれた面積の合計が計算されます。
面積: 6.28 = 平方インチ
複数の閉じた外形線が交差している場合は、重なり合った部分の面積は無視されて、囲まれた面積の合計が計算されます。
面積: 6.28 = 平方インチ
スケッチに複数の外形線があり、一方の外形線が他方に完全に囲まれている場合、Measure.Area関数は、2·つの面積の差を返します。
面積: 1.37 = 平方インチ
Measure.Perimeter(“SketchName”)
スケッチ内の閉じた外形線の周長の合計を計測します。スケッチに閉じた外形線が 1 つ含まれている場合、外形線の周長が計算されます。
構文
size = Measure.Perimeter("Sketch1")
例
スケッチに閉じた外形線が 1 つ含まれている場合、外形線の周長が計算されます。
周長: 6 インチ
スケッチに、交差していない複数の閉じた外形線がある場合、すべての外形線の周長の合計が計算されます。
周長: 9 インチ
スケッチに、交差した複数の閉じた外形線がある場合、すべての外形線の周長の合計が計算されます。
周長: 12 インチ
構文
Measure.ExtentsLength
モデルの(赤い軸に沿った)X 範囲を計測します。
Measure.ExtentsWidth
モデルの(緑色の軸に沿った)Y 範囲を計測します。
Measure.ExtentsHeight
モデルの(青い軸に沿った)Z 範囲を計測します。