Hallo V5 Spezialisten,
habe dieses Forum jetzt sehr lang erfolglos durchsucht,
und brauche jetzt Eure Hilfe um folgendes Problem zu lösen:
Mit einem VB Scripts innerhalb eines Parts sollen Bodies erzeugt werden.
Name und Anzahl wird aus dem Part (Parameter im Part) ausgelesen.
Dieser Code funktioniert soweit:
Sprache: VB Script (kein Macro!!!)
'######################################################################
Dim oActiveDoc As Document
Dim bodies1 As Bodies
Dim body1 As Body
Dim parameters1 As Parameters
Set oActiveDoc = CATIA.ActiveDocument
Set oActivePart = oActiveDoc.Part
Set bodies1 = oActiveDoc.Part.Bodies
Set parameters1 = oActivePart.Parameters
Set selection1 = oActiveDoc.Selection
Set intParam1 = oActiveDoc.GetItem("").Parameters.Item("Anzahl")
Anzahl = intParam1.Value
Set strParam1 = oActiveDoc.GetItem("").Parameters.Item("Namen")
Bez = strParam1.Value
selection1.Search "Name="&Bez&"*,all"
anzbodies = selection1.count2
If anzbodies > 0 Then
MsgBox "Es sind schon "&anzbodies&" Bodies mit diesem Namen vorhanden"
'selection1.Clear
End if
MsgBox "Es werden "&Anzahl&" Bodies erzeugt!"
For intParamStartwert = 1 To Anzahl
Set body1 = bodies1.Add()
body1.Name = Bez &(intParamStartwert+anzbodies)
next
CATIA.ActiveDocument.Part.Update
End Sub
'######################################################################
Jetzt die Problematik:
Ich möchte unbedingt verhindern, dass Bodies mit gleichem Namen erzeugt
werden.
Falls also nach dem Erzeugen einer Ladung Bodies (z.B 10 Stück)
die ersten 3 gelöscht werden, und das VB Script erneut
(mit dem gleichen Namen) ausgeführt wird, werden natürlich nur 7 Bodies
gefunden und mit 8 weiter nummeriert.
Dabei entstehen dann Bodies mit gleichem Namen.
Die Anforderung wäre also:
keine Bodies mit gleichem Namen.
Beginnend bei 1, "nicht belegte Nummern auffüllen".
"Lücken" auffüllen.
Höchste Nummer finden und weiternummeriern.
Ich denke ich brauche dazu eine Verschachtelung von mehreren Schleifen,
da hier sehr viele Unbekannte im Spiel sind, und da hackt es.
Habe es auch schon mit ner "Zwischenspeicherung" der Suche in nem Array
versucht, ohne Erfog.
Das Ganze kann aber nicht unlösbar sein.
Auf MS Explorerebene funktioniert das ja auch automatisch.
Basics in V5 Automatisierung sind vorhanden.
Danke im Voraus für Eure Unterstützung.
Werde euch dieses universelle Tool nach Fertigstellung
natürlich zur Verfügung stellen!
mfg
Sinalco
Nur ein toter Link ist ein guter link!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP