Hallo Lusilnie,
Danke für die schnelle Antwort!
Genau das habe ich gesucht! 10 Unities !!!
Hatte es gestern nur leider falsch probiert. Jetzt wo ich deine Antwort lese ist es klar.
( selection1.Item ( I ) = produkt.Products.Item(A) geht natürlich nicht !!! )
Du schreibst das selection1.Count bzw. selection1.Count2 bei verschiedenen Catia-Versionen nötig ist. Das ist mir nicht bekannt. Welche Versionen sind das denn?
Wir benutzen WinXp mit CatiaV5R16 wobei selection1.Count bei mir funktioniert.
*****************************************************************
Language="VBSCRIPT"
' Assembly PosNr Abfragen
'--------------------------------------------------------------------------------
' Script zum anzeigen einer Teils/Baugruppe anhand der Pos.Nr.
'
'
'
' V0.1 05.06.2008
'
'
'
'--------------------------------------------------------------------------------
Dim documents1 As Documents
Dim document1 As Document
Dim produkts As Products
Dim produkt As Product
Dim selection1 As Selection
Sub CATMain()
If CATIA.Documents.Count = 0 Then
Box = MsgBox("Es wurde kein aktives Dokument identifiziert" + Chr(10) + "Bitte oeffnen Sie zuerst ein Dokument und starten Sie dann das Makro erneut", vbInformation, "Hinweis")
Exit Sub
End If
PosNrAusw=0
PosNrAusw = InputBox ("Bitte geben Sie die gesuchte Positionsnummer an!" & chr(13) & chr(10) & chr(13) & chr(10) &chr(13) & chr(10) &"Es kann eine mehfache selektion möglich sein."& chr(10) &chr(13) & chr(10) ,Position )
anzahl=0
einmal=0
Set produkt = CATIA.ActiveDocument.Product
Set productDocument1 = CATIA.ActiveDocument
Set selection1 = productDocument1.Selection
selection1.Clear
For A=1 To produkt.Products.Count
If produkt.Products.Item(A).Nomenclature = PosNrAusw Then
If einmal=0 Then
s=s & "TeileNr.: " & produkt.Products.Item(A).PartNumber & " Pos.Nr.: " & produkt.Products.Item(A).Nomenclature & vbCrLf
einmal=1
End If
anzahl = anzahl+1
selection1.Add produkt.Products.Item(A)
End If
' If produkt.Products.Item(A).Nomenclature = "" Then
If produkt.Products.Item(A).ReferenceProduct.Parent.Name = produkt.Products.Item(A).Parent.Parent.ReferenceProduct.Parent.Name Then
For N=1 To produkt.Products.Item(A).Products.Count
If produkt.Products.Item(A).Products.Item(N).Nomenclature = PosNrAusw Then
anzahl=anzahl+1
selection1.Add produkt.Products.Item(A).Products.Item(N)
End If
Next
End If
Next
MsgBox "Ergebnis :" & vbCrLf & vbCrLf & "Gesamtteile = " & produkt.Products.Count & vbCrLf & vbCrLf & " Gefunden : " & anzahl & vbCrLf & vbCrLf & s
End Sub
***************************************************************
Gruß Ralf
[Diese Nachricht wurde von CadV5UserR am 06. Jun. 2008 editiert.]
[Diese Nachricht wurde von CadV5UserR am 10. Jun. 2008 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP