Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  The Method 'add' failed!

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  The Method 'add' failed! (1480 mal gelesen)
GrafKoks
Mitglied



Sehen Sie sich das Profil von GrafKoks an!   Senden Sie eine Private Message an GrafKoks  Schreiben Sie einen Gästebucheintrag für GrafKoks

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 16. Mai. 2012 09:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GrafKoks 10 Unities + Antwort hilfreich

Servus
Ändere mal die Zeile in:
Set Element = selektion2.Item(1).Value
(Zugriff auf das selektierte Objekt)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GrafKoks
Mitglied



Sehen Sie sich das Profil von GrafKoks an!   Senden Sie eine Private Message an GrafKoks  Schreiben Sie einen Gästebucheintrag für GrafKoks

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von HoBLila an!   Senden Sie eine Private Message an HoBLila  Schreiben Sie einen Gästebucheintrag für HoBLila

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GrafKoks 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von HoBLila an!   Senden Sie eine Private Message an HoBLila  Schreiben Sie einen Gästebucheintrag für HoBLila

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GrafKoks 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von GrafKoks an!   Senden Sie eine Private Message an GrafKoks  Schreiben Sie einen Gästebucheintrag für GrafKoks

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von HoBLila an!   Senden Sie eine Private Message an HoBLila  Schreiben Sie einen Gästebucheintrag für HoBLila

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GrafKoks 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz