Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CAAKiiMechanismCreation.CATScript

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:  CAAKiiMechanismCreation.CATScript (1264 mal gelesen)
Manrok
Mitglied



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

Beiträge: 23
Registriert: 13.11.2008

erstellt am: 20. Jan. 2009 12:36    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

Hallo an alle

habe gestern mit einem Kinematik Makro unter VBA begonnen. Dank dieses Forums habe ich schon einen Mechanismus erstellt.

Mein Leitfaden hierzu ist eingentlich das oben genannte Script aus der Catia Hilfe.

Das Problem liegt aber selbst in dem Script in der Zeile:

Dim oNewJoint as Joint
    Set oNewJoint = oNewMechanism.AddJoint("CATKinCylindricalJoint",aVar1)

VBA markiert immer ADDJoint und gibt an:

Compile Error

Function or Interface maked as restricted, or the Function uses an Automation Type not supported in Visual Basic.

Hab schon im Forum gesucht und konnte aber keine Lösung finden.

Gibt es bei R17 einen neuen Befehl für ADDJoint?

THX

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 20. Jan. 2009 12:49    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 Manrok 10 Unities + Antwort hilfreich

Hallo Manrok,

deklariere den oNewJoint mal als Object und nicht als Join. Visual Basic kann nicht alle internen Deklarationen abbilden und somit entstehen diese Fehler.

Vergleiche dazu:

Code:

Dim oSel as Selection
Auswahl = oSel.SelectElement2(...)

hier tritt der von dir beschriebene Fehler auf. Machst du es hingegen so

Code:

Dim oSel
Auswahl = oSel.SelectElement2(...)

tritt der Fehler nicht auf. Funktioniert es auch nicht mit Dim oNewJoint as Object, dann deklariere ohne Angabe eines Typs. Dann sucht sich Viausl Basic automatisch die passende Deklaration und verwendet diese.

Anmerkung:
Das nicht exakte deklarieren von Variablen und Objekten ist nicht IMMER sinnvoll, da es unter anderem zu mehr Ressourcenauslastung führen kann.

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Manrok
Mitglied



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

Beiträge: 23
Registriert: 13.11.2008

erstellt am: 20. Jan. 2009 13:03    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

Der Tip war gut gemeint, funktioniert auch bei der Selection, aber leider nicht bei ADDJoin^^
Ich weis auch nicht was da los ist. Ich habe es schon nur mit dem Skript versucht - leider ohne Erfolg.

Als CATScript funzt es aber leider nicht in VBA

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 20. Jan. 2009 13:22    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 Manrok 10 Unities + Antwort hilfreich

Hallo,

werds mir daheim mal anschaun. Was macht er wenn du den neuen Join gar nicht deklarierst?

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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: 20. Jan. 2009 13:34    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 Manrok 10 Unities + Antwort hilfreich

Sorry, wenn ich das falsch verstanden habe, aber muss nicht oNewMechanism as Variant deklariert werden?

------------------
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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 20. Jan. 2009 13:39    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 Manrok 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HoBLila:
Sorry, wenn ich das falsch verstanden habe, aber muss nicht oNewMechanism as Variant deklariert werden?


Stimmt, sorry ich war ein wenig verwirrt    und konnte es auch nicht testen. ABER wenigstens stimmen meine Beispiel. Da wird auch das Objekt als "Variant" deklariert, das den Fehler beim Aufrufen der Methode liefert (also oSel und nicht Auswahl)

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Manrok
Mitglied



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

Beiträge: 23
Registriert: 13.11.2008

erstellt am: 20. Jan. 2009 13:41    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

@denyo_1 die Fehlermeldung ist genau die gleiche.

@HoBLila ich habe das Original-Catia Skript verwendet und das funzt nicht.
Auszug daraus:

Dim oNewMechanism As Mechanism
    Set oNewMechanism = cTheMechanisms.Add()

Hier erstellt er einen neuen Mechanismus wenn ich 'addjoint ausblende
falls ich das nicht tue gibts den Fehler

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

Manrok
Mitglied



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

Beiträge: 23
Registriert: 13.11.2008

erstellt am: 20. Jan. 2009 13:45    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

@denyo_1 die Fehlermeldung ist genau die gleiche.

@HoBLila ich habe das Original-Catia Skript verwendet und das funzt nicht.
Auszug daraus:

Dim oNewMechanism As Mechanism
    Set oNewMechanism = cTheMechanisms.Add()

Hier erstellt er einen neuen Mechanismus wenn ich 'addjoint ausblende
falls ich das nicht tue gibts den Fehler

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 20. Jan. 2009 13:52    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 Manrok 10 Unities + Antwort hilfreich

Hallo,

ja das Orginalscript ist ja auch kein CATVba-Projekt sondern ein CATScript. Da sind die Deklarationen ein bisschen anders. Wie gesagt ich werd´s heute Abend mal probieren und dann nochmal posten.

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Manrok
Mitglied



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

Beiträge: 23
Registriert: 13.11.2008

erstellt am: 20. Jan. 2009 14:05    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

also mit Variant tritt der Fehler nicht mehr auf. Vielen Dank.

Gibts da irgendwo einen Index was unter VBA wie deklariert werden muss?

Ich habe leider nur das Buch Makroprogrammierung und ich kann ja nicht einfach alle Deklarationen weglassen.

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 20. Jan. 2009 15: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 Nur für Manrok 10 Unities + Antwort hilfreich

Hallo,

soweit ich weiß gibts sowas nicht. Deklarier es erst mal so wie es "richtig" wäre (z.B. Mechanismus als Machanism, Joint als Joint, usw.). Wenn´s bei der Ausführung dann Fehler geben sollte kannst du die Deklarationen ja ändern. Im Debugger-Modus siehst du ja welche Zeile den Fehler auslösst. Die Fehlermeldung bei Deklarationen die nicht in vba unterstützt werden ist dabei immer die selbe (siehe deinen ersten Beitrag).

Ansonsten kann ich immer nur das "Step by Step" Debugging (Button dafür findet sich auf der DEBUGGING Symbolleiste die standartmäßig ausgeblendet ist) zusammen mit der Überwachung (Watches) von Objekten empfehlen. Dabei sieht man als Entwickler genau wenn was falsch deklariert wurde (weil es Nothing, bzw. leer bleibt) und was sich in den Variabeln und Objekten zur Laufzeit befindet.

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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: 20. Jan. 2009 17:16    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 Manrok 10 Unities + Antwort hilfreich

Es gibt da so ein paar Regeln, aber die habe ich auch grad nicht alle im Kopf. Jedenfalls wenn du eine Methode eines Objektes aufrufen möchtest, der du Variablen übergibst und dann ein Objekt zurück haben möchtest, dann muss das erste Objekt(welches die Methode aufruft) vom Typ Variant sein. Das soll die Fehlermeldung auch andeuten. Das CATScript benutzt keine CATIA-Schnittstelle sondern ist CATIA und hat dadurch dieses Schnittstellenproblem nicht.

------------------
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