如何使用Catscript搜索,选择和删除草图中的所有几何

时间:2018-10-09 09:05:07

标签: vba catia

我正在寻求帮助,以找到解决我想法的方法。使用Catscript。

我正在尝试搜索,选择和删除一个特定草图内的所有几何图形(点,线等)。但是我找不到正确的搜索命令来做到这一点。它要么选择整个零件的所有几何形状,但我不想要。还是什么都没有。

有人对此有建议吗?

2 个答案:

答案 0 :(得分:0)

您需要首先通过用户选择或通过搜索名称来选择所需的草图,然后您需要在此选择内搜索2D几何图形(通过高级查询,您可以选择并删除所需的任何图形)。 / p>

答案 1 :(得分:0)

如果您仍在寻找答案,请尝试以下代码:

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Geometrical Set.1")

Dim sketches1 As Sketches
Set sketches1 = hybridBody1.HybridSketches
Dim sketch1
Set sketch1 = sketches1.Item("Sketch.1")

Dim factory2D1 As Factory2D
Set factory2D1 = sketch1.OpenEdition()

Dim geometricElements1 As GeometricElements
Set geometricElements1 = sketch1.GeometricElements

While geometricElements1.Count > 1
    If geometricElements1.Item(geometricElements1.Count).GeometricType <> catGeoTypeAxis2D Then
        Dim Geometry2D
        Set Geometry2D = geometricElements1.Item(geometricElements1.Count)
        Set objHSF = part1.HybridShapeFactory
        Set objRef = part1.CreateReferenceFromObject(Geometry2D)
        objHSF.DeleteObjectForDatum objRef
    End If
Wend

sketch1.CloseEdition
part1.Update

End Sub

但是要小心,使用代码删除所有几何图形不会删除草图! Catia中不能有空草图。将其留空可能会导致各种问题。