0

我有一个产品组件的 Catia 设计。它的零件很少,整个产品由这些零件组成。我能够生成 excel 文件,但不能保留树结构的层次结构。如何使用 vbscript 或 catscript 将 Catia 产品树的树结构导出到 XML 文件?

4

2 回答 2

1

将 CATProduct 保存为 txt 文件,这将为您提供树结构的层次结构。

对我来说,层次结构如下所示(通过直接从 CATIA 保存 CATProduct 获得,无需任何自动化)。

在此处输入图像描述

要获得更详细的答案,您可以查看下面的 vbscript 代码(例如,您可以改进、将 MsgBox 写入另一个文件或增加级别数)。希望现在的答案几乎是完整的。

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\Temp\X-WING.txt", ForReading)  ''name of file and path saved from CATIA, this can be also automated.
strContents = objFile.ReadAll
objFile.Close
arrLines = Split(strContents, vbCRLF)

For Each strLine in arrLines
CharacterCount1 = Len(strLine) - Len(Replace(strLine, " ", ""))
CharacterCount = Len(strLine) - Len(Replace(strLine, "|-", "")) 

If CharacterCount > 0  And CharacterCount1 > 6 Then

        If CharacterCount1 = 7 Then 
        CharacterCount1 = "Level 1" 
          ElseIf CharacterCount1 = 13 Then 
        CharacterCount1 = "Level 2" 
         ElseIf CharacterCount1 = 19 Then 
        CharacterCount1 = "Level 3"
        ''You can add/improve the code for more levels
          End If 

MsgBox CharacterCount1 & strLine
End If 

Next
于 2016-03-11T21:11:13.303 回答
0

在此处查看图像,附加了获取 BOM 的宏。 获取物料清单 catia

创建一个宏文件并添加以下内容。相应地更改路径

*

Language="VBSCRIPT"
Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set product1 = productDocument1.Product
Set assemblyConvertor1 = product1.GetItem("ListingReport")
Dim array1
'assemblyConvertor1.SetCurrentFormat array1
assemblyConvertor1.Print "TXT", "C:\Users\Labuser\Desktop\testPW.txt", product1
End Sub

*

于 2016-03-31T11:46:02.973 回答