Autor
|
Thema: Visual Basic 6 Makro erzeugen (3824 mal gelesen)
|
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004 CATIA V5 / R26 NX 12
|
erstellt am: 22. Nov. 2010 10:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, unter CATVBA habe ich ein Makro erzeugt welcher mir bestimmte Objekte z. B. alle Achsensysteme in einer Baugruppe ausblenden soll. Mit Hilfe eines Moduls rufe ich die Userform auf, kann darin die Auswahl für die Objekte treffen und danach werden diese Objekte ausgeblendet. Das funktioniert soweit auch auch gut. In laufenden Betrieb soll das Makro als eigenständige EXE-Datei laufen, da weder die CATIA VBA-Umgebung als auch die .Net-Umgebung installiert werden soll. Deswegen will ich das Makro mit Visual Basic Studio 6 unsetzen. Die Beispiel aus dem CATIA Portable Script Center basiert anscheinend auf einer höheren VB-Version. Und auch mit den Beispielen aus dem V5 Kochbuch habe ich nicht so richtig den Weg gefunden. Kann mir jemand mit einem einfachen Beispiel die Koppelung zwischen VB6 und CATIA V5 erklären? Vielen Dank schon mal im Voraus. Gruß Reimund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 22. Nov. 2010 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
|
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004 CATIA V5 / R26 NX 12
|
erstellt am: 22. Nov. 2010 14:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Axel, Danke für Deine Einschätzung. Die Version des CATVAB welches wir unter R18 einsetzen ist Microsoft Visual Basic 6.5. Somit gehe ich davon aus, dass VB6 auch funktioniert. Gibt es denn hier im Forum nicht doch jemanden, der sich mit der Koppelung zwischen VB6 und CATIA V5 auskennt und der ein einfaches Beispiel dazu zur Verfügung stellen kann? Vielen Dank Gruß Reimund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 22. Nov. 2010 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
Hallo Reimund, auf welchem Betriebssystem soll denn dein Makro/Tool laufen? Auch für die Lauffähigkeit von VB6-Programmen sind teilweise Runtime-Bibliotheken erforderlich. Net-Framework ist hingegen mittlerweile sehr verbreitet. Um zukunftsfähig zu bleiben würde ich neue Makros nur noch ab VB2008 programmieren. Beispiele für Zugriffe auf CATIA V5 aus VB6, Vb2008 oder Excel-VBA gibts hier im Forum zu genüge. @Axel: Ab CATIA V6 wird VB6 nicht mehr unterstützt. Grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 23. Nov. 2010 19:43 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
Hallo zusammen, mal eine ganz allgemeine Info: alle VB-Scripte sprechen CATIA V5 über die .COM Schnittelle an. VB6 wird laut Aussage von Dassault von V5 unterstützt solange es V5 gibt. Eigene .Net-Klassenbibliotheken wird es für V5 nie geben. .Net spricht V5 ebenfalls über .com an; das ist der Grund, weshalb der Watch in .Net nicht funktioniert. Die Objekte sind weitesgehend gekapselt. Ich habe auf .Net programmiert und bin letzendlich wieder zu VB6 zurück. CATIA V6 arbeitet mit .Net-Klassenbibliotheken: hier ist dann Schluss mit VB6. Bis dahin gilt: was immer beliebt. Gruß
------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004
|
erstellt am: 24. Nov. 2010 16:21 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für euere Antworten. Mittlerweile habe ich es geschafft und das VB6-Makro funktioniert als Exe-Datei. Beim Direktaufruf über den Explorer funktioniert alles so wie es soll. Nun habe ich eine weitere Frage dazu. Die Exe-Datei will ich aus dem V5 mit einem CATScript starten. Dazu nutze ich den Befehl: CATIA.SystemService.ExecuteProcessus (spathapplication). Das Macro ist auch gestatet, doch es konnte wohl keine Verbindung zum V5 aufnehmen. Nachdem ich es mit CATIA.SystemService.ExecuteBackgroundProcessus (spathapplication) aufegrufen habe, hat es dann auch die Verbindung zum V5 gefunden. Wie schaffe ich es, dass das Exe-Datei eine Rüchmeldung an das CATScript gibt und dieses dann beendet wird. Gruß Reimund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beny Mitglied Konstrukteur - Standardisierung
Beiträge: 36 Registriert: 15.11.2010
|
erstellt am: 26. Nov. 2010 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
Hallo Reinmund, habe so einen ähnlichen anwendungsfall... aber wie hast du deine exe aufgerufen? ich scheiter schon daran. was muss ich in dem Sktipt eingeben das ich von Catia aus starte? und was muss ich in mein .catvba-file reinschreiben? thx schonmal im voraus lg beny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004 CATIA V5 / R26 NX 12
|
erstellt am: 29. Nov. 2010 19:20 <-- editieren / zitieren --> Unities abgeben:
Hallo beny um aus eine CATSCript ein externes Programm aufzurufen habe ich folgenden Code verwendet: Sub CATMain() '+++++++externes Programm wird gestartet Dim spathapplication As String spathapplication = ("C:\temp\name.exe") 'CATIA.SystemService.ExecuteProcessus (spathapplication) CATIA.SystemService.ExecuteBackgroundProcessus (spathapplication) '+++++++externes Programm ist beendet End Sub Unter dem folgenden Link findest du Infos zum Aufrufen von einem catvba aus eine CATScript heraus: http://ww3.cad.de/foren/ubb/Forum137/HTML/003004.shtml Im Buch Macroprogrammierung mit Visual Basic Sript ist das ebenfalls beschrieben. Gruß Reimund
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beny Mitglied Konstrukteur - Standardisierung
Beiträge: 36 Registriert: 15.11.2010
|
erstellt am: 03. Dez. 2010 09:59 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
|
8user8 Mitglied
Beiträge: 36 Registriert: 30.07.2010 Catia V5R19 x64 Visual C# 2010
|
erstellt am: 03. Dez. 2010 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
Hi, wenn du den ExecuteBackground befehl nimmst läuft dein Macro, welches die exe aufruft paralell weiter, bis es sich selbst beendet, die Prozesse laufen asynchron. Wird der Befehl ohne "Background" ausgeführt laufen die prozesse synchron, dh das Macro wird erst weiter geführt wenn die Ausführung der exe fertig gestellt ist. wenns dir nur ums Ausführen geht und du keine weiteren Aktionen starten willst ist es wohl eghal mit welchem Befehl du arbeitest, aber komisch dass einer der beiden nicht funktioniert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |