Hallo,
danke für den Link.
Also das Suchen und Ersetzen Makro würde schon ausreichen, da in der V6 die Zeichnungen ja übers PLM direkt verlinkt sind.
Ich hätte mit diesem Makro angesetzt:
Sub traverse(Prod, origstr, newstr)
set refp = Prod.ReferenceProduct
if instr(refp.Name, origstr) then
newpname = Replace(refp.Name, origstr, newstr)
refp.Name = newpname
end if
if instr(refp.PartNumber, origstr) then
newpnum = Replace(refp.PartNumber, origstr, newstr)
refp.PartNumber = newpnum
end if
Set prods = Prod.Products
pc = prods.Count
If pc > 0 then
For i = 1 to pc
traverse prods.Item(i), origstr, newstr
Next
End If
End Sub
Sub CATMain()
Set actProd = CATIA.ActiveDocument.Product
origstr = Inputbox ("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Suche und Ersetze (Suche)")
newstr = Inputbox ("Zu ersetzenden Namen oder Nummer eingeben", "Suche und Ersetze (Ersetze)")
traverse actProd, origstr, newstr
End Sub
Nur müsste ich dieses so hinbiegen, dass es nach Strings sucht die so ausschauen: z.B. "_NameXY_Nummer123_Lasthaken"
ersetzt werden soll aber nur ein Teil der Benennung (NameXY_Nummer123), die Bezeichnung (z.B. Lasthaken) soll erhalten bleiben.
Lässt sich das z.B. so realiseren indem ich die zu ersetzenden Stringteile mit * (*NameXY_Nummer123*) kennzeichne?
(anbei noch ein Bild wie die Baugruppe Konzeptmäßig aufgebaut ist)
... derzeit hänge ich aber schon beim kompilieren bei dem Befehl "Set actProd = CATIA.ActiveDocument.Product"
Kann das an einer Änderung im Ablauf von V5 auf V6 liegen, nach einiger Recherche bin auch auf folgendes gestoßen:
"Im V6 haben sie das über die Editoren gelößt,
da kann man dann über ActiveEditor an die aktive Workbench
und aus der das Part ziehen, wie man es im CAA auch macht."
=> Ist in der V6 die "Active-Objekt-Auswahl" über Editoren gesteuert?
Falls ja sind das als Beispiel mögliche Lösungsansätze?:
Dim editorWork As INFITF.Editor
Dim selWork As INFITF.Selection
Set editorWork = CATIA.ActiveEditor
Set selWork = editorWork.Selection
selWork.Clear
selWork.Search "Topology.Face;all"
oSelection = catiaObj.ActiveEditor.Selection
Dim editor1 As Editor
Set editor1 = CATIA.ActiveEditor
Dim part1 As Part
Set part1 = editor1.ActiveObject
catiaObj.ActiveEditor.Selection.Item
Danke und Gruß
[Diese Nachricht wurde von Engineer723 am 24. Okt. 2016 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP