Autor
|
Thema: The Method 'add' failed! (1480 mal gelesen)
|
GrafKoks Mitglied
Beiträge: 22 Registriert: 10.05.2012 Catia V5 R19 Microsoft Visual Basic 6.0<P>Windows XP Professional x64 Edition
|
erstellt am: 16. Mai. 2012 08:59 <-- editieren / zitieren --> Unities abgeben:
Servus schon wieder raubt mir Catia die letzten Nerven. Folgendes Problem (Anfängerproblem hin oder her: es muss eine Kleinigkeit sein) Ich versuche ein Product1 in ein anderes Product2 einzufügen. Beide Products sind in Catia in separaten Fenstern geöffnet. Das Makro wird gestartet, nachdem das Fenster des zu kopierenden Bauteils (Product1)ausgewählt wurde. Im Verlauf des Makros soll der Nutzer mittels SelectElement2 auswählen wo das Product1 hin soll und wählt im Strukturbaum des Product2 eine Stelle aus. Soweit funktioniert das alles, nur bei der Methode 'add' am Schluss bricht es ab mit der Fehlermeldung: "The Method 'add' failed." Hier ist der Code: Code: Sub CATMain() '----------starten der Stoppuhr---------- Call StartStoppuhr '----------Auswahl des Normteils und Vorbereitung der Selektion---------- Set normteil = CATIA.ActiveDocument Set selektion1 = normteil.Selection selektion1.Clear '----------Selektion und Kopieren des zu kopierenden Objekts---------- Set kopiergut = normteil.Product selektion1.Add kopiergut selektion1.Copy '----------Wechsel in das Werkzeugfenster---------- CATIA.ActiveWindow.ActivateNext Set NewWindow = CATIA.ActiveWindow '----------Auswahl des Werkzeugs und Vorbereitung der Selektion---------- Set selektion2 = CATIA.ActiveDocument.Selection Dim filter(0) filter(0) = "AnyObject" selektion2.Clear '----------Selektion durch Nutzer---------- Do Auswahl = selektion2.SelectElement2(filter, "Wähle etwas aus...", False) If Auswahl = "Normal" Then Set Element = selektion2.Item(1) MsgBox Element.Value.Name & " wurde ausgewählt.", 0, "Auswahl" Fertig = True End If Loop Until Fertig = True '----------Einfügen des Normteils---------- selektion2.Add Element selektion2.Paste '----------Stoppen der Stoppuhr---------- Call StopStoppuhr(tstart) End Sub
Ich weiß einfach nicht was nach selektion2.add hingehört, aber eigentlich doch schon die Selektion des Users? Oder wählt der User bei mir etwas Falsches aus? Vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 16. Mai. 2012 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für GrafKoks
|
GrafKoks Mitglied
Beiträge: 22 Registriert: 10.05.2012 Catia V5 R19 Microsoft Visual Basic 6.0<P>Windows XP Professional x64 Edition
|
erstellt am: 16. Mai. 2012 09:17 <-- editieren / zitieren --> Unities abgeben:
Danke Bernd, das hat schonmal das Problem mit 'add' gelöst. Allerdings bekomme ich bei selektion2.paste direkt danach auch noch Fehlermeldungen: 1. Paste under multiple targets is not supported. Paste under your targets seperately. 2. The Method 'paste' failed. Ich hatte das schonmal ohne die User-Selektion gemacht, also einfach eine Position im Zielproduct zugewiesen, da funktionierte alles prima. Erst seit ich SelectElement2 benutze gibts Probleme. Beste Grüße Konstantin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 16. Mai. 2012 09:18 <-- editieren / zitieren --> Unities abgeben: Nur für GrafKoks
Also Bernd hat schon Recht, aber das Ganze sieht für mich irgendwie dennoch merkwürdig aus. Für mich sieht das so aus, als würdest Du das Element, was der Anwender gerade ausgewählt hat, derselben Selection noch einmal hinzufügen wollen. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 16. Mai. 2012 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für GrafKoks
Ja ich würde sagen, mach mal ein PasteSpecial oder vielleicht kann man es nicht einfügen, was Du in der Wzsichenablage hast an die Stelle, Die angewählt wurde. Ich würde auch die Selection stärker einschränken. Ansonsten sagt die Fehlermeldung schon alles: Du versucht an mehrere Stellen was einzufügen. Versuch mal nur ein Element in Deiner Selection zu haben. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GrafKoks Mitglied
Beiträge: 22 Registriert: 10.05.2012 Catia V5 R19 Microsoft Visual Basic 6.0<P>Windows XP Professional x64 Edition
|
erstellt am: 16. Mai. 2012 09:35 <-- editieren / zitieren --> Unities abgeben:
Habs mir nochmal angeschaut und Du hast recht. Ich habe jetzt mal 'selektion2.add blalba' rausgenommen und die Zeile darunter 'selektion2.paste' durch 'Element.paste' ersetzt. Was soll ich sagen, es funktioniert jetzt. Das Makro läuft durch ohne Fehlermeldung, nur ist am Ende das Product1 nicht im Product2 drin. Wenn ich allerdings [STRG]+[V] drücke, dann isses da. Muss ich da also nochn Befehl unter das 'Element.paste' schreiben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 16. Mai. 2012 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für GrafKoks
Schreib mal am besten, nur für Dich, unabhängig vom Code genau auf, was Du genau, Schritt für Schritt machen möchtest, inkluse erst selektier ich das, dann bringe ich das in die Zwischenablage und so. Wenn Du Dir dann genau im Klaren bist, was wie ablaufen soll, dann ersetzt Du die einzelenen Schritte mit Code. Ich glaub das hilft Dir in Deinem Fall wirklich mehr weiter, als wenn wir Dir jetzt jede Zeile einzeln, als Salamitaktik bringen. :-) So verstehst Du sicher auch mehr. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |