Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Fehler bei der Erzeugung von Geo Sets

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co.
  
KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
Autor Thema:  Fehler bei der Erzeugung von Geo Sets (665 mal gelesen)
Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 01. Mai. 2010 18:00    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


Geo_Sets_erzeugen.txt


Fehlermeldung.jpg

 
Servus,

ich bin gerade dabei meine Makros von CATScript in catvba umzuschreiben. Beim angehängten Code bekomm ich eine Fehlermeldung (siehe Bild). Wenn ich aber bei der Variablendeklatation nach "Flaechenoperationen" z.B.: einen Buchstaben hinschreibe läuft das Makro ohne Probleme durch. Hab dann die Reihenfolge der Deklarationen geändert und bekamm dann wieder eine Fehlermeldung an der Stelle wo die letzte Deklaration erfolgte.
Warum erhalte ich diese Fehlermeldung?

Für die Antworten bedanke ich mich schon im voraus.

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 01. Mai. 2010 19: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 Nur für Christian.O 10 Unities + Antwort hilfreich

Hallo,

das Problem liegt in deiner ersten Zeile:
Dim GeoSet, Hilfsgeometrie, Ebenen, Skizzen, Splines, Flaechenoperationen As HybridBodies
Alle Variablen bis "Splines" deklariert VBA als Variant, da du hier keinen Typ angegeben hast.
"Flaechenoperationen" wird aber als Hybridbodies deklariert, was ein Collection ist und kein einzelner "Geometrical set". Nach Umbenennung der Variable hast du keine Fehlermeldung bekomment, da es nicht mehr der selbe war.
Die schnellste Weg dein Problem zu beheben ist "Hybridbody" als Typ anzugeben, dann wird aber nur diese Variable einen richtigen Typ zugewiesen haben.
Die schöne Version ist jede Deklaration in eine eigene Zeile zu schreiben, in etwa so:

Code:
Dim GeoSet as Hybridbody
dim Hilfsgeometrie as HybridBody
dim Ebenen as HybridBody
dim Skizzen as HybridBody
dim Splines as HybridBody
dim Flaechenoperationen As HybridBody
Ich würde dir zusätzlich Raten, Option Explicit am Anfang der Module zu verwenden. Macht das Leben am Anfang zwar nicht einfacher, versichert aber bessere Ergebnisse langfristig.

Gruß,
Zoltan

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 02. Mai. 2010 11: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


Geo_Sets_erzeugen_001.txt

 
Servus Zoltan,

erstmals danke für die rasche Antwort.
Hab mein Makro nochmals umgeschrieben, weil ich nach der neuen Deklaration wieder Fehler bekam. Hab mir hier im Forum nochmals schlau gemacht wie man Geo Sets erstellt und jetzt klappts. Anbei der neue Code.

 

Zitat:
Ich würde dir zusätzlich Raten, Option Explicit am Anfang der Module zu verwenden. Macht das Leben am Anfang zwar nicht einfacher, versichert aber bessere Ergebnisse langfristig.

Stimmt die Position von "Option Explicit" im Makro?

Edit: Was ich noch Fragen wollte: Muß man alle Variablen in VBA einzeln Deklarieren oder kann man diese wie im CATScript zusammenfassen?
Dim Pfad, Projekt, Makro, Makrostart, Makropfad As String
Das Makro in dem diese Deklaration drinnen ist funktioniert. Damit gebe ich den Pfad für dein anders Makro an wenn die nötigen Geo Sets fehlen.

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

[Diese Nachricht wurde von Christian.O am 02. Mai. 2010 editiert.]

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 03. Mai. 2010 19: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 Christian.O 10 Unities + Antwort hilfreich

Servus Christian,

1) Option Explicit steht richtig in dein Code. Du darfst Kommentare und Leerzeilen davor haben, aber nichts anderes.
2) Du musst in VBA nichst deklarieren.

Wenn du aber Option Explicit verwendest (am Anfang jede Moduls geschrieben), musst du alles deklarieren. Hierzu reicht ein einfacher Dim Variablenname. Damit erreichst du aber, dass VBA für dich alles zuerst als Variant anlegt, d.h. die für den Objekt relevante Properties und Methoden nicht im IntelliSense (pulldown nach drücken einer . an der richtigen Stelle oder Strg+J) erscheinen, da die Variable alles mögliche sein kann. Dies macht den Speicherbedarf auch größer (was aber heute nicht mehr so maßgebend ist).

In meinen Augen ist es am saubersten, wenn du alles mit den richtigen Typ deklarierst.
Es gibt hier im Forum auch andere Ansätze (siehe Late binding), dies ist aber meine Meinung. Ich habe schon einige Tausen Zeilen hinter mir. VBA zickt manchmal (Automation type not supported oder so), dann einfach den Typ auskommentieren und Programm läuft schön.

Ich habe es schon in den vorigen Antwort versucht zu erklären, jetzt versuche ich es noch deutlicher.
Deine Deklaration Dim Pfad, Projekt, Makro, Makrostart, Makropfad As String wird von VBA (und in der VB Welt generell) wie folgt interpretiert:
Dim Pfad (as variant)
dim Projekt (as variant)
dim Makro (as variant)
dim Makrostart (as variant)
dim Makropfad As String

Das steht in jeder VB(A) Buch, egal ob Excel oder VB allgemein oder CATIA.

Ich hoffe, so wird es verständlicher, was das eigentliche Problem mit deiner alten Makro war.

Gruß,
Zoltan

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 03. Mai. 2010 20: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

Servus Zoltan,

danke nochmals für die Erklärung. Schön langsam dämmerts. Werd mir hier im Forum noch ein paar VBA Scripte anschaun, von den Programmierern die mehr Erfahrung als ich haben.

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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)2025 CAD.de | Impressum | Datenschutz