Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makros mit Vb .Net

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:  Makros mit Vb .Net (11302 mal gelesen)
RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 17. Okt. 2003 11:01    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

Hi

ich habe hier irgendwo gelsen dass man Makros statt mit dem internen VBA-Editor auch mit  VB .Net proggen kann. Da ich schon recht viel mit dem Standard VBa-Editor gemacht habe würde ich das gerne mal testen.

Hat schon jemand Erfahrungen damit? Wie muss ich dass einrichten damit das geht, Editor umsetzen klappte nicht so wirklich?

Wäre jemand so lieb mir eine kurze DAU-Anleitung zu schreiben? Am besten wäre gleich mit einem kurzen Code-Beispiel (Msgbox "Hello World" reicht voll zu, soll wirklich nur zum Testen sein).

vielen dank schonmal

------------------
gr33t7 Ronny

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

steirerhubsi
Mitglied
wiss. Mitarbeiter


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

Beiträge: 36
Registriert: 02.04.2003

erstellt am: 17. Okt. 2003 16: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 Nur für RonnyS 10 Unities + Antwort hilfreich

Hallo!

Ich hab mal ausprobiert, ein eigenes VB-Programm in VB.Net zu schreiben (=> exe-Datei als Ergebnis) und von diesem aus auf CATIA zuzugreifen. Klappt eigentlich ganz gut, wobei es jedoch ein paar Unterschiede in der Syntax gibt, die man beachten muß (z.B.: sollte man Einstellungen von Befehlen wie "oClash1.ComputationType" immer als NUMMER übergeben und nicht mit "catClashComputationTypeBetweenAll", "catClashComputationTypeInsideOne",...). Leider habe ich das VB-Projekt schon gelöscht und kann dir deshalb kein Code-Beispiel schicken.

Noch ein wichtiger Punkt: ein mit Visual Studio Net erstelltes VB-Programm benötigt Bibliotheken, die noch in keinem Betriebssystem integriert sind. Entweder installiert man diese Bibliotheken auf allen Rechnern nach oder man kompiliert den Code so, daß daraus eine Installationsdatei entsteht, die alle enthaltenen Bibliotheken mit einbezieht. Näheres dazu gibt es, glaube ich, auf den Internet-Seiten von Visual Studio.

mfg

Martin

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 17. Okt. 2003 17:19    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

für CAT- und VB-Script konnt ich Problemlos umstellen, dummerweise ist das ganze vb .net dann nichts als ein banaler texteditor der auch zum testen jedesmal geschlossen und dann neugestartet werden muss

auch die toolbox usw war nicht verfügbar...

Schade hast du nicht noch irgendwas damit ich mal sehen kann wie das prinzipiell funzt??? Gerade das kommunikation mit catia aufnehmen intressiert mich doch sehr, weil das mit dem internen vba-editor ja alles fast automatisch läuft..

------------------
gr33t7 Ronny

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

steirerhubsi
Mitglied
wiss. Mitarbeiter


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

Beiträge: 36
Registriert: 02.04.2003

erstellt am: 19. Okt. 2003 08: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 RonnyS 10 Unities + Antwort hilfreich

Hallo!

Hab doch noch ein paar Zeilen Code gefunden. Leider ist das nicht mein Programm, wo ich sicher weiß, daß es funktioniert. Als erstes mal das Ansprechen von CATIA in VB.Net:

Set CATIA=CreateObject("Catia.Application")
Dim documents1 As Object
Set documents1 = CATIA.Documents
...

Bin mir nicht sicher, ob das reicht, um in VB auf CATIA zuzugreifen. Vielleicht steht dazu auch was in der CATIA-Hilfe (sitze gerade zu Hause und hab die Online-Hilfe nicht da).

Alle CATIA-spezifischen Variablentypen müssen in VB.Net mit "Dim ... As Object" deklariert werden. Dann normal zuweisen.

Leider kann man dadurch nicht so gut debuggen (wenn man die Variablen im Debug-Modus von VB.Net anschaut gibt es z.B.: keine Unterpunkte "counter", "item","value",...). Ich empfehle, das Makro gleichzeitig in CATIA UND in VB.Net zu schreiben, um bei Fehlermeldungen den Debugger in CATIA verwenden zu können. Der Vorteil von VB.Net liegt für mich nur auf der Möglichkeit ein selbständiges Programm (*.exe) kompilieren zu können: CATIA ist geschlossen => man ruft das kompilierte Programm auf => CATIA wird automatisch gestartet => Befehle werden in CATIA automatisch ausgeführt...

Es gibt auch noch eine APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-CD für CATIA, die die CATIA-Befehle/Bibliotheken in externe VB-Editoren integriert, aber da kenne ich mich nicht aus.

mfg

Martin

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

steirerhubsi
Mitglied
wiss. Mitarbeiter


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

Beiträge: 36
Registriert: 02.04.2003

erstellt am: 19. Okt. 2003 08:58    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 RonnyS 10 Unities + Antwort hilfreich

Obiges Bsp.:

Set CATIA = ....

gilt nur, wenn CATIA bereits geöffnet ist.

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 19. Okt. 2003 12:07    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 RonnyS 10 Unities + Antwort hilfreich

Hallo zusammen,
ein paar Anmerkungen:

Um von VB.Net auf ein laufendes CATIA zuzugreifen muss folgender Code am Anfang stehen:

'Deklaration von CATIA ----------------------------------------------
        Dim CATIA As New Object
        CATIA = GetObject(, "CATIA.Application")


"CreateObject("Catia.Application")" erzeugt eine neues CATIA-Instanz, startet aber CATIA nicht !! Somit ist im System V5 zweimal vorhanden, aber nur eins laäft richtig. >> Lieber V5 starten (von mir aus über ein CATScript, welches v5 startet und danach das VB-Programm) und in VB.Net "GetObject(, "CATIA.Application")" benutzen.

Um auf Objekte in CATIA zuzugreifen, muss man über die Klassen von CATIA gehen. Diese können in VB über "Verweis hinzufügen >> COM-Komponente" in VB angesprochen werden. Die wichitgsten Klassen sind:
INFITF >> Allgemeine Klasse für Dokumente, Dateien, Zugriff auf Betriebssystem

MECMOD >> Klasse zum Erzeuigen von Skizzen und Drahtgittergeometrien

PARTITF >> zum Erzeuigen aller Objekte im Part Design

ProductStructurTypLib >> Klasse für Assembly design

DRAFTINGITF >> Klasse für Zeichnunsableitungen

KnowledgewareTypLib >> Klasse zum Auslesen von Objektparametern (Blöckhöhe, Taschentiefe, etc)

HybridShapeTypLib >> Klasse zum Erstellen von Flächen, Ebenen, etc

Ein Beispiel:

'**************************************************************
'Ansprechen der "Welle.1" im "Körper.2" und ändern des ersten_ Begrenzungswinkel auf 180°
'**************************************************************

'Deklaration von CATIA -------------------------------------------
Dim CATIA As New Object
CATIA = GetObject(, "CATIA.Application")

'Deklaration von "Körper.2" --------------------------------------
Dim PartDocument As MECMOD.Part = CATIA.ActiveDocument.Part
Körper = PartDocument.Bodies.Item("Körper.2")

'Deklaration eines Objektes als Welle ----------------------------
Dim Shape As PARTITF.Revolution

'Ansprechen des bestimmten Objektes ------------------------------
shape = Körper.Shapes.Item("Welle.1")

'Ändern des Parameters -------------------------------------------
shape.FirstAngle.Value = 180°

Das Schöne dabei ist, daß durch den Import der CATIA-Klassen sehr gut die jeweiligen Eigenschaften der Klasse bzw. des Objektes angezeigt und ausgewählt werden können.

Viel Erfolg

Jens Hansen

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 20. Okt. 2003 08:42    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

Hi Vielen Dank erstmal

nur noch ne kleine Frage..wie heissen denn die DAteien in denen MECMOD usw stehen? Bzw auf was muss ich denn verweis erzeugen->com->?

------------------
gr33t7 Ronny

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 20. Okt. 2003 08:55    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 RonnyS 10 Unities + Antwort hilfreich

Hallo Ronny,
das sind z.T. die dll-Datein von V5; also MECMOD.dll, etc
Eigentlich steht bei den COM-Komponenten sowas wie "V5Partdesign" oder ähnliches, so daß man sich das schon herleiten kann.

schöne Grüße

Jens Hansen

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 20. Okt. 2003 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

thx es klappt jetzt ganz wunderbar *megafroi*

------------------
gr33t7 Ronny

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 20. Okt. 2003 14:32    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

Nochmal hi,

kannst du mir grad noch verraten wie ich catia am besten starte? im idealfall ohne vorher den instpath zu kennen.

ich hab versucht ein catscript anzulegen udn dies zu starten nur findet das vb irgendwie nicht (Filenotfoundexception) wenn ich nur den relativen Path angeb, oder in welchen Ordner im Projekt muss ich dass werfen?

------------------
gr33t7 Ronny

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 20. Okt. 2003 15:06    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 RonnyS 10 Unities + Antwort hilfreich

Hallo Ronny,
am besten über ein CATIA-Makro("Starte_mein_Programm.CATScript"). Gemäß Registry starten solche Makros automatisch V5 und führen dann erst den internen Code aus.

Beispiel:
Sub CATMain()

CATIA.SystemService.ExecuteBackgroundProcessus("Programm.exe")

End Sub

Dabei muss allerdings das Script aus dem selben Ordner gestartet werden, indem sich auch Programm.exe befindet.

viel erfolg

Jens Hansen

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 20. Okt. 2003 15: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

uups nee ich meinte genau das gegenteil

ich möchte aus meinem compilierten VB .net exe-programm Catia starten lassen ohne aber dessen Path kennen zu müssen. Ich hab versucht einfach ein leeres CatScript-file zu nutzen (Wenn man ein gültiges ausführt, wird catia ja auch automatisch gestartet).

Quasi in Vb : shell("StartCatia.CATScript",vbnormalFocus) dabei hater aber die Datei "StartCatia.CATScript" halt nicht gefunden, und deswegen FileNotFoundException von .Net bekommen

------------------
gr33t7 Ronny

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

SebW
Mitglied
MB-Student


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

Beiträge: 20
Registriert: 13.05.2004

User von:
Catia V5R11; V5R12SP3
Catia V4

erstellt am: 04. Jan. 2005 21:01    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 RonnyS 10 Unities + Antwort hilfreich

Hallo,

ist vielleicht etwas spät :-), aber in der Antwort von Jens Hansen gehts um die verschiedenen *.dll die beim Programmieren angesprochen werden können.

Leider steht in VB eine nicht durchschaubare Fülle dieser dlls zur Verfügung. Gibt es irgendwo Infos, welche dll für was gebraucht wird?

Danke schonmal. Schönen Gruß.

Seb

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

Goosnargh
Mitglied



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

Beiträge: 80
Registriert: 30.11.2004

erstellt am: 24. Aug. 2011 15:58    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 RonnyS 10 Unities + Antwort hilfreich

Moin,
Ist ein sehr alter Thread, aber mal als Hinweis:

Wer wissen möchte welches Objekt in welcher Bibleothek liegt geht in dem ganz einfachen Macros Editor von Catia und schaut in den Objekt-Browser.
Dort stehen dann Bibliothek, Klasse usw.

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

adrian83
Mitglied
student


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

Beiträge: 62
Registriert: 22.11.2012

-Windows 7 64 bit
-Catia V5 r21

erstellt am: 09. Apr. 2013 17:53    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 RonnyS 10 Unities + Antwort hilfreich

ja,das ist ein wertvoller tip. aber mir kommt es so vor, dass slebst dort nicht alle objekte drin sind. wie kommt man an den rest dran?

------------------
-Windows 7 64 bit
-Catia V5 r19

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