是否可以从 GetSurfaces 函数获取 Brep 名称?(CATIA VBA)

Is it Possible to Get Brep Name from GetSurfaces function? (CATIA VBA)

提问人:liltequilaa 提问时间:9/26/2023 最后编辑:braXliltequilaa 更新时间:9/26/2023 访问量:93

问:

这是我在 Stack 上的第一篇文章,我想问一下是否可以从 get surfaces 函数中获取 BRep 名称。现在,我有

Set annoSurface = myDocument.Selection.Item(1).Value
        surfaceCount = annoSurface.GetSurfacesCount
        ReDim surfaceArray(surfaceCount - 1)
        annoSurface.GetSurfaces surfaceArray
        For j = 0 To surfaceCount - 1
            surfaceNamePath = Split(surfaceArray(j), "/")
            pathLen = UBound(surfaceNamePath) - LBound(surfaceNamePath)
            If surfaceNamePath(1) <> "Annotation Set.1" Then
                ReDim surName(pathLen - 2) As String
                For i = 1 To pathLen - 1
                    surName(i - 1) = surfaceNamePath(i)
                Next i
                surfaceName = Replace(Join(surName, "/"), surName(pathLen - 2), "!" & surName(pathLen - 2))
                Set surfaceRef = Product.CreateReferenceFromName(surfaceName)
                myDocument.Selection.Add surfaceRef
            End If
        Next j

在此代码中,我能够从 CATIA 的 GetSurfaces API 中检索实例名称。从那里,我能够将名称重新排列为可搜索的图面名称。

例如:K0654-50-3567212-00/滑动活塞/操作/孔/制动杆孔/Groove.3/面->滑动活塞/操作/孔/制动杆孔/!凹槽.3

然后,我从新名称创建一个引用,并将其添加到选择中。但是当我添加到选择中时,它会突出显示多个表面。我只想强调 1.在此处输入图像描述 在此处输入图像描述

我实际上不确定从这里开始,我已经看到您可以使用 BRep 来具体说明要选择的表面边界,但我不确定如何仅从 GetSurfaces 函数中获取它。

VBA CATIA卡蒂亚

评论

1赞 C R Johnson 9/26/2023
对不起,不可能。如果注释是通过选择整个特征创建的,即如果没有 /Edge 或 /Face,那么是的,您可以暗示该特征(这就是您正在做的事情)。但是,当它是拓扑子元素(通常为面/边/顶点)时,无法从返回的用户图面字符串中确定它。

答: 暂无答案