从 Catia 树视图生成 xml 文件
generate xml file from Catia treeview
我有一个产品装配的 Catia 设计。
它的零件很少,整个产品由这些零件组成。
我能够生成 excel 文件,但无法保留树结构的层次结构。
如何使用 vbscript 或 catscript 将 Catia 产品树的树结构导出到 XML 文件?
将 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
see the image here附上获取BOM的宏指令。
get Bill of material catia
创建一个宏文件并添加following.Change相应的路径
*
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
*
我有一个产品装配的 Catia 设计。 它的零件很少,整个产品由这些零件组成。 我能够生成 excel 文件,但无法保留树结构的层次结构。 如何使用 vbscript 或 catscript 将 Catia 产品树的树结构导出到 XML 文件?
将 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
see the image here附上获取BOM的宏指令。 get Bill of material catia
创建一个宏文件并添加following.Change相应的路径
*
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