Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Richtige Deklaration von CATVBA

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:  Richtige Deklaration von CATVBA (1129 / mal gelesen)
HP-Variant
Mitglied
Konstrukteur

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

Beiträge: 7
Registriert: 15.06.2020

erstellt am: 16. Jun. 2020 11:40    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 Zusammen,

ich bin noch recht neu in der CATIA V5 Makrowelt, daher dürfte das wahrscheinlich ein recht einfach/grundsätzliches Thema sein.

Meine Frage ist warum funktioniert Code_1 im VBA ohne Probleme aber Code_2 nicht. Rein objektiv ist das doch der selbe Code (zumindest für mich  )?

Besten Dank schon mal für eure Antworten  .

----------------Code_1-------------------------------

Sub Test()

Dim Liste(0) As Variant
Liste(0) = "N:\01_Startmodell\2000_STARTMODELL\0X0_800_077____G01_TMG_000_000_BAUTEILBEZEICHNUNG_AUXXX_X_XX_EV-00-000.CATPart"
   
CATIA.ActiveDocument.Product.Products.AddComponentsFromFiles Liste, "CATPart"

End Sub

----------------Code_2-------------------------------

Sub Test2()

    Dim Doc As Document
    Set Doc = CATIA.ActiveDocument
   
    Dim P As Product
    Set P = Doc.Prodoct
   
    Dim PP As Products
    Set PP = P.Products
   
    Dim Liste(0) As Variant
    Liste(0) = "N:\01_Startmodell\2000_STARTMODELL\0X0_800_077____G01_TMG_000_000_BAUTEILBEZEICHNUNG_AUXXX_X_XX_EV-00-000.CATPart"
   
    PP.AddComponentsFromFiles Liste, "CATPart"
   
End Sub

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 16. Jun. 2020 11: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 HP-Variant 10 Unities + Antwort hilfreich

Hallo,

habe es nicht getestet aber du hast in Code 2 einen Schreibfehler:

Zitat:
Set P = Doc.Prodoct

Set P = Doc.Product

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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

HP-Variant
Mitglied
Konstrukteur

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

Beiträge: 7
Registriert: 15.06.2020

erstellt am: 16. Jun. 2020 11:57    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


Fehlermeldung.JPG

 
Danke für die schnelle Antwort.
Hab ich übersehen zu korrigieren.

Ändert jedoch erst einmal nichts am Fehler (siehe Anhang). :-(

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 16. Jun. 2020 12:44    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 HP-Variant 10 Unities + Antwort hilfreich

Hallo,

ok.

Deklariere mal statt:

Zitat:
Dim PP As Products

Dim PP

Es gibt einige CATIA Klassen die sich in Verbindung mit VBA ein wenig zickig anstellen (wie z.B. teilw. auch die Selection Klasse), wenn man sie korrekt deklariert. Hier gibt es seitens Dassault Systemes keine (kompl.) Unterstützung.

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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

HP-Variant
Mitglied
Konstrukteur

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

Beiträge: 7
Registriert: 15.06.2020

erstellt am: 16. Jun. 2020 14:51    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

Zitat:
Deklariere mal statt:

    Dim PP As Products

-> Dim PP


Super Danke dir! :-) Funktioniert jetzt einwandfrei 


Vllt dann noch eine Frage... Haltet ihr es für sinnvoll in VBA zu programmieren oder was ist da
das Beste ?

VG HP

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 16. Jun. 2020 15:21    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 HP-Variant 10 Unities + Antwort hilfreich

Hallo,

ich programmiere meistens im VBA Editor (ist komfortabler, einfachere Fehlersuche). Ausnahme: kleinere Macros erstellen/umschreiben/erweitern.

Wenn ich keine Benutzeroberfläche (oder andere VBA "Spezialitäten") brauche kopiere ich den Code nach Abschluss in eine Textdatei und speichere sie als *.CATScript.

CATScripts laufen (nach meiner Erfahrung) i.d.R. (wesentlich) performanter.

Das Thema .NET (VB, C#) lasse ich jetzt mal aus.

Für Anfänger dürfte der Einstieg über VBA einfacher sein (Fehlersuche, Intellisense, usw.) .

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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

HP-Variant
Mitglied
Konstrukteur

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

Beiträge: 7
Registriert: 15.06.2020

erstellt am: 16. Jun. 2020 22:04    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

Hey Randle,

Besten Dank. Dann werd ich das vorerst genau so machen :-)

Eine Frage dazu. Funktioniert das CATScript dann auf Anhieb oder muss ich den
Code dann nochmal umschreiben/testen?


Wenn du die Zeit hast würde mich das Thema zu .NET auf jeden Fall auch interessieren (aber das wären dann auch nur Bonusinfos 

VG HP 

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. Jun. 2020 22: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 HP-Variant 10 Unities + Antwort hilfreich

Servus HP

Der Code solle meist ohne weitere Anpassungen auch als CATScript laufen.
Nur wenn du VBA spezifische Dinge (Collection, UserForm, ...) verwendest gibt es Probleme.
Das merkst du dann aber (Fehlermeldung lesen/verstehen und nicht die Fehler unterdrücken)

Gruß
Bernd

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

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 17. Jun. 2020 12:13    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 HP-Variant 10 Unities + Antwort hilfreich

Hallo,

zuerst noch folgendes:
Bernd hatte heute in einem anderen Thread noch einen nützlichen Link bezgl. der Einschränkungen bei den Klassen in VBA eingestellt, den ich nicht vorenthalten möchte: https://v5vb.wordpress.com/2010/07/29/restricted-interfaces/

Zu .Net:

Mit .Net eröffnen sich nochmal ganz andere Möglichkeiten zur Programmierung da es hier unzählige Klassen (.NET Framework) gibt mit den du z.B. auf Windowsfunktionen zugreifen kannst und sich objektorientierte Programierung umsetzen lässt (und ja VB.NET ist nach wortgetreuer Definition nicht tatsächlich kompl. objektorientiert, aber das lassen wir jetzt mal aussen vor).

Die Programmierungsumgebung bietet auch zahlreiche Möglichkeiten zur Fehlersuche, Codeanalyse usw., da kommt der VBA Editor nicht mit.

Meine persönliche Empfehlung wäre, insbesondere für Anfänger: Starte mit VBA, nutze die Möglichkeiten des VBA Editor und eigne dir die Grundlagen der Programmierung an. Wenn du dann "die Nadel im Arm hast" ;-) und sicherer im Umgang mit VB bist kannst du immer noch umsteigen. Der Umstieg von VBA auf VB.NET ist nicht sehr schwer, auf C#.NET schon eher aber auch machbar.

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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