【问题标题】:How do I measure a non-updated point in CATIA VBA?如何在 CATIA VBA 中测量未更新的点?
【发布时间】:2014-11-21 23:50:49
【问题描述】:

我正在尝试制作一个点测量工具,但是每当我的循环偶然发现一个未更新的点时,它就会使我的 Measurable 崩溃。如何测量?

【问题讨论】:

    标签: vba api catia


    【解决方案1】:

    四处搜索后,您似乎无法测量任何未更新的几何图形。

    您可以使用 MecMod 零件库中的 UpdateObject 方法更新一个对象。既然你有一个更新的对象,那就运行可测量的方法。

    像这样:

    CurPart.UpdateObject Obj1
    

    如果由于几何问题而无法更新几何,您可以随时通过错误检查(草率)跳过它,或使用命令“IsUpToDate”检查几何是否已更新。

    像这样:

    If CurPart.IsUpToDate(Obj1) = true then
         Meas.GetPoint PTArr
    End If
    

    确保将对象名称保存在数组中,以便您可以提示用户列出所有未测量的对象。

    【讨论】:

      【解决方案2】:

      你总是可以隔离几何,然后你可以测量并删除它,如果你不再需要它了..

      这是一个示例,它创建了第一个几何集合中第一个点的独立副本,无论是否更新,而原始点保持不变。

      Sub makePointDatum()
          Dim sPoint As HybridShapePointExplicit, oPart As Part, oHSF As HybridShapeFactory
          Set oPart = CATIA.ActiveDocument.Part
          Set oHSF = oPart.HybridShapeFactory
      
          Set sPoint = oHSF.AddNewPointDatum(oPart.HybridBodies.Item(1).HybridShapes.Item(1))
          oPart.UpdateObject sPoint
          oPart.HybridBodies.Item(1).AppendHybridShape sPoint
      End Sub
      

      【讨论】:

      • 技术上是的,你可以这样做,但是生成一堆基准几何来测量它是非常昂贵的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      相关资源
      最近更新 更多