新建CATvba文件,插入模块,复制粘贴以下代码,运行宏即可。
Sub CATmain()
On Error Resume Next
Set catia = GetObject(, "CATIA.Application")
If Err.Number <> 0 Then
Set catia = CreateObject("CATIA.Application")
catia.Visible = True
End If
dim oActDoc as object
Set oActDoc = catia.ActiveDocument
On Error GoTo 0
Dim iStatus As String
Dim i As Integer
iStatus = InputBox("请输入 1 或者 2 ," & Chr(13) & Chr(13) & "2《=====》隐藏(2表示隐藏)" & Chr(13) & Chr(13) & "或" & Chr(13) & Chr(13) & "1《=====》显示(1表示显示)", "一键隐藏或显示CATIA窗口点-线-坐标系等非实体曲面元素", 2)
If StrPtr(iStatus) = 0 Then '判断输入框中的【取消】按钮
MsgBox "你点击了“取消”,或按了“ESC” 键"
Exit Sub
End If
If Len(iStatus) = 0 Then '判断输入框中的“空值”
MsgBox ("非法输入,请输入“1”或“2”。" & Chr(13) & Chr(13) & "你输入的是:空值 ")
Exit Sub
End If
If Asc(CVar(iStatus)) <> 49 and Asc(CVar(iStatus)) <> 50 Then
MsgBox ("非法输入,请输入“1”或“2”。" & Chr(13) & Chr(13) & "你输入的是: " & iStatus)
Exit Sub
End If
i = CVar(iStatus) - 1
HideDatumsConstraints oActDoc, i
MsgBox ("CATIA窗口点-线-坐标系-平面等非实体元素,操作已完成。")
End Sub
Sub HideDatumsConstraints(prodoc As Document, intshow As Integer)
On Error Resume Next
Dim selection1 As selection
Set selection1 = prodoc.selection
selection1.Clear
selection1.Search "(((CATStFreeStyleSearch.Plane + CATPrtSearch.Plane) + CATGmoSearch.Plane) + CATSpdSearch.Plane),all"
selection1.VisProperties.SetShow intshow
selection1.Clear
selection1.Search "(((CATStFreeStyleSearch.AxisSystem + CATPrtSearch.AxisSystem) + CATGmoSearch.AxisSystem) + CATSpdSearch.AxisSystem),all"
selection1.VisProperties.SetShow intshow
selection1.Clear
selection1.Search "((((((CATStFreeStyleSearch.Point + CAT2DLSearch.2DPoint) + CATSketchSearch.2DPoint) + CATDrwSearch.2DPoint) + CATPrtSearch.Point) + CATGmoSearch.Point) + CATSpdSearch.Point),all"
selection1.VisProperties.SetShow intshow
selection1.Clear
selection1.Search "((((((CATStFreeStyleSearch.Curve + CAT2DLSearch.2DCurve) + CATSketchSearch.2DCurve) + CATDrwSearch.2DCurve) + CATPrtSearch.Curve) + CATGmoSearch.Curve) + CATSpdSearch.Curve),all"
selection1.VisProperties.SetShow intshow
selection1.Clear
'selection1.Search "(((CATStFreeStyleSearch.Surface + CATPrtSearch.Surface) + CATGmoSearch.Surface) + CATSpdSearch.Surface),all"
'selection1.VisProperties.SetShow intshow
'selection1.Clear
selection1.Search "(((((((CATProductSearch.MfConstraint + CATStFreeStyleSearch.MfConstraint) + CATAsmSearch.MfConstraint) + CAT2DLSearch.MfConstraint) + CATSketchSearch.MfConstraint) + CATDrwSearch.MfConstraint) + CATPrtSearch.MfConstraint) + CATSpdSearch.MfConstraint),all"
selection1.VisProperties.SetShow intshow
selection1.Clear
Err.Clear
End Sub