2要素間の測定をマクロで知りたい場合は、結構あるのではないかと思うの
ですが、"2要素間の測定" コマンドはマクロの記録が取れません。
"Unofficial CATIA User Forum"には、サンプルが有ったのですが、
無くなってしまった為、記載しておこうかと思います。
僕が知る限り、方法が2つあります。
式とパラメータを利用する方法
"式で距離を測定できる" 事さえ知っていれば、マクロの記録が取れるので
それ程難しくは無いかと思います。
'vba Sub CATMain() Dim partDocument1 As PartDocument Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim BName1$ BName1 = SelectItemName$("一つ目のボディを選択して下さい : [Esc]=キャンセル", Array("Body")) If Len(BName1) < 1 Then Exit Sub Dim BName2$ BName2 = SelectItemName$("二つ目のボディを選択して下さい : [Esc]=キャンセル", Array("Body")) If Len(BName2) < 1 Then Exit Sub Dim parameters1 As Parameters Set parameters1 = part1.Parameters Dim length1 As Length Set length1 = parameters1.CreateDimension("", "LENGTH", 0#) Dim relations1 As Relations Set relations1 = part1.Relations Dim formula1 As Formula Set formula1 = relations1.CreateFormula("", "", length1, "distance(`" + BName1 + "`,`" + BName2 + "`)") MsgBox CStr(length1.Value) + "mm" '以下 式・パラメータ削除 'Dim Sel As Selection 'Set Sel = CATIA.ActiveDocument.Selection 'With Sel ' .Clear ' .Add formula1 ' .Add length1 ' .Delete 'End With End Sub 'Bodyの選択 Private Function SelectItemName$(ByVal Msg$, ByVal Filter As Variant) Dim Sel As Variant: Set Sel = CATIA.ActiveDocument.Selection Sel.Clear Select Case Sel.SelectElement2(Filter, Msg, False) Case "Cancel", "Undo", "Redo" Exit Function End Select SelectItemName = Sel.Item(1).Value.Name Sel.Clear End Function
実行した際の結果はこのような感じです。
この方法の場合、式とパラメータが作成される為、数値だけ必要な場合は
ちょっと邪魔です。
コード内の "以下 式・パラメータ削除" 以下のコメント化している部分を
実行するようにすれば、これらの邪魔な要素を削除して終了できます。