如何使用VBA遍历已打开的CATDrawing文件?
用VBA遍历CATIA中所有已打开的CATDrawing文件
当然可以实现遍历所有已打开的CATDrawing文件,你当前的代码仅针对单个激活的文档操作,要实现批量遍历,需要循环CATIA的所有已打开文档集合,并筛选出CATDrawing类型的文件。
以下是完整的实现代码:
Dim catiaApp As Object Dim doc As Document Dim oSheet As Sheet Dim i As Integer Set catiaApp = GetObject(, "CATIA.Application") ' 获取已运行的CATIA实例 ' 遍历所有已打开的文档 For Each doc In catiaApp.Documents ' 判断当前文档是否为CATDrawing类型 If doc.Type = "Drawing" Then Debug.Print "=== 文档名称:" & doc.Name & " ===" Debug.Print "图纸页总数:" & doc.Sheets.Count ' 遍历当前CATDrawing的所有图纸页 For i = 1 To doc.Sheets.Count Set oSheet = doc.Sheets.Item(i) ' 无需激活也可获取图纸页信息,若需操作可保留Activate ' oSheet.Activate Debug.Print "图纸页名称:" & oSheet.Name Next i End If Next doc
代码说明:
- 通过
GetObject获取当前运行的CATIA实例,避免重复启动程序 - 循环
catiaApp.Documents集合,遍历所有已打开的文档 - 用
doc.Type = "Drawing"精准筛选出CATDrawing类型的文件 - 对每个符合条件的图纸文档,复用你原有的逻辑遍历其所有图纸页,这里去掉了非必要的
Activate操作,能提升运行效率
内容的提问来源于stack exchange,提问作者Siddu
相关产品推荐
相关产品推荐

