1.Sub CATMain()
2.
3.GetNextNode CATIA.ActiveDocument.Product
4.
5.End Sub
6.
7.
8.
9.Sub GetNextNode(oCurrentProduct As Product)
10.
11.
12. Dim oCurrentTreeNode As Product
13. Dim i As Integer
14.
15. Dim m1 as String
16. Dim m2 as String
17. m1 = "_"
18. m2 = "M"
19. Dim g as String
20. g = "G"
21. Dim c as String
22. c = "C"
23. Dim nume as String
24. nume = ""
25. Dim revision as String
26. revizie = ""
27. Dim description as String
28. descriere = ""
29. Dim pozitie_separator as Integer
30. pozitie_separator = 0
31. Dim full_name as String
32. fullname = ""
33.
34.
35. Dim selection1 as Selection
36. Set selection1 = CATIA.ActiveDocument.Selection
37.
38.
39.
40.For i = 1 To oCurrentProduct.Products.Count
41. Set oCurrentTreeNode = oCurrentProduct.Products.Item(i)
42.
43.
44.
45. If IsProduct(oCurrentTreeNode) = False Then
46.
47. nume = oCurrentTreeNode.Name
48.
49. If m1<>left(nume,1) AND g<>left(nume,1) AND m2<>left(nume,1) AND c<>left(nume,1) Then
50.
51.
52.
53. 'MsgBox nume& " REFERINTA"
54. 'MsgBox oCurrentTreeNode.Revision& " REVIZIE"
55. revizie=oCurrentTreeNode.Revision
56. 'MsgBox oCurrentTreeNode.DescriptionInst& "DESCRIERE"
57. descriere=oCurrentTreeNode.DescriptionInst
58.
59. nume = left(nume,10)
60. revizie = left(revizie,3)
61. pozitie_separator=INSTR(1, descriere, ":")
62. descriere=left(descriere,pozitie_separator - 1)
63.
64. 'MsgBox nume&"/"&revizie&"/"&descriere
65.
66. fullname = nume&revizie&descriere
67.
68. selection1.Add oCurrentProduct.Products.Item(i)
69.
70.
71. End If
72. End If
73.
74.
75. ' if sub-nodes exist below the current tree node, call the sub recursively
76. If oCurrentTreeNode.Products.Count > 0 Then
77. GetNextNode oCurrentTreeNode
78. End If
79.
80.
81. Next
82.
83.
84.
85.End Sub
86.
87.
88.Function IsProduct(objCurrentProduct As Product) As Boolean
89.
90. Dim oTestProduct As ProductDocument
91. Set oTestProduct = Nothing
92.
93. On Error Resume Next
94.
95. Set oTestProduct = CATIA.Documents.Item(objCurrentProduct.PartNumber & ".CATProduct")
96.
97. If Not oTestProduct Is Nothing Then
98. IsProduct = True
99. Else
100. IsProduct = False
101. End If
102.
103.End Function