CATIA VBA 实现距离测量

因为CATIA V5的测量工具接口未暴露给VBA,所以宏记录器无法记录测量代码。但是我们可以通过其他方式使用VBA来实现测距功能。


方法1:参数、关系法

首先,创建类型为Length的参数,并将其值保持为默认值0mm,或者自定义参数名称。然后,添加公式,选择distance (Body, Body)来找到您想要测量的2个图形元素。以下是相应的代码示例:


```vba

Sub CATMain()

   Dim partDocument1 As Document

   Set partDocument1 = CATIA.ActiveDocument

   Dim part1 As Part

   Set part1 = partDocument1.Part

   Dim parameters1 As Parameters

   Set parameters1 = part1.Parameters

   Dim length1 As Dimension

   Set length1 = parameters1.CreateDimension("", "LENGTH", 0.000000)

   length1.Rename "MeasureDistance"

   Dim relations1 As Relations

   Set relations1 = part1.Relations

   Dim formula1 As Formula

   Set formula1 = relations1.CreateFormula("Formula.2", "", length1, "distance(`Geometrical Set.1\MyEndPt1`, `Geometrical Set.1\MyEndPt2`)")

   formula1.Rename "Distance"

   MsgBox "The endpoints are " & length1.ValueAsString & " apart."

End Sub

```


此外,以上的代码也可以用来测量点面间距,只需要稍作修改。


方法2:SPAWorkbench

另一个方法是使用SPAWorkbench属性及方法。以下为参考代码示例:


```vba

Sub CATMain()

   Dim TheSPAWorkbench As Workbench

   Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")

   Dim TheMeasurable As Measurable

   Set TheMeasurable = TheSPAWorkbench.GetMeasurable(reference1)

   Dim MinimumDistance As Double

   MinimumDistance = TheMeasurable.GetMinimumDistance(reference2)

   MsgBox MinimumDistance

End Sub

```


P.S. GetWorkbench命令输入一个string,返回一个Workbench对象。在CATIA里,每个Workbench都有一个对应的ID。


测量一个Product下不同Part元素的距离时, 也可以依靠CreateReferenceFromName方法。以下是相应的代码示例:


```vba

Dim refCLP As Reference

Set refCLP = main_prod.CreateReferenceFromName(main_prod.PartNumber & "/" & prod1.Name & "/" & prods.Item(1).Name & "/!Point1")


Dim TheSPAWorkbench As Workbench

Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")


Dim TheMeasurable

Dim Coordinates(8)

Dim min_dist As Double


'...(代码略)...

```


以上是关于CATIA V5测量工具接口未暴露给VBA的解决方案,希望能对您有所帮助。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空