Autor
|
Thema: CATIA-Makro aus VBA starten (3981 mal gelesen)
|
Henning_N Mitglied Zeitsoldat
Beiträge: 4 Registriert: 25.04.2006
|
erstellt am: 26. Apr. 2006 08:19 <-- editieren / zitieren --> Unities abgeben:
Für meine Studienarbeit soll ich ein CATIA-Makro aus der VBA-Umgebung von CATIA starten (am Besten mit Parameterübergabe). Dies funktioniert leider nicht so richtig. Ich habe das Buch von Dieter R. Ziethen "Effiziente Konstruktion mit Makros" gelesen. Ich habe es auch geschafft ein Makro aus einem anderen Makro zu starten. z.B.: E=CATIA.SystemService.ExecuteScript _("C:\Temp",1,"Makro1.CATScript","Multiplikation",Params) In der VBA-Umgebung funktioniert dies leider nicht. Der Befehl "ExecuteScript" ist mit VBA nicht verträglich. Wer kann mir helfen? Gibt es einen anderen ähnlichen Befehl oder dies gar nicht möglich? Ich habe es geschafft andere Makros in Officeanwendungen zu starten. Leider funktionieren diese Befehle im Zusammenhang mit CATIA nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jules_Vernes Mitglied Systemadmin
Beiträge: 145 Registriert: 04.10.2005 Catia V5R24SP4
|
erstellt am: 26. Apr. 2006 10:32 <-- editieren / zitieren --> Unities abgeben: Nur für Henning_N
Morgen kann es sein dass dein "CATIA-Makro" in CATScript geschrieben ist? Weil mit dem VB-Editor lassen sich (glaube ich) nur Makros in der CATvba-Sprache starten da die beiden Sprachen ein wenig verschieden sind. Grüsse Jules Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Henning_N Mitglied Zeitsoldat
Beiträge: 4 Registriert: 25.04.2006
|
erstellt am: 26. Apr. 2006 10:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Jules, das Makro wurde wir vorgegeben. Es ist ein CATScript. Ich habe versucht den Quellcode in ein VBA-Modul zu kopieren. Nach diversen Änderungen läuft dieses Modul auch in VBA. Leider führt dieses Modul einige Berechnungen (auslesen des Strukturbaums und daraus entstehende Rechnungen) nun falsch aus. Außerdem leidet die Geschwindigkeit. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bobby_Joe2001 Mitglied Konstrukteur
Beiträge: 81 Registriert: 15.01.2006
|
erstellt am: 26. Apr. 2006 20:01 <-- editieren / zitieren --> Unities abgeben: Nur für Henning_N
Das hier hab ich gerade getestet und funktioniert einwandfrei: Sub CATMain() Dim Params() Set SServ = CATIA.SystemService LibPath = "CATDLN://MAKROS" ScriptName = "test.CATScript" FunctionName = "CATMain" Call SServ.ExecuteScript(LibPath, catScriptLibraryTypeDirectory, ScriptName, FunctionName, Params) End Sub ------------------ Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen. Konrad Adenauer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Henning_N Mitglied Zeitsoldat
Beiträge: 4 Registriert: 25.04.2006
|
erstellt am: 26. Apr. 2006 22:18 <-- editieren / zitieren --> Unities abgeben:
|
shorty10 Mitglied Konstrukteur, Masch. Bau
Beiträge: 16 Registriert: 05.05.2006
|
erstellt am: 21. Jul. 2006 09:49 <-- editieren / zitieren --> Unities abgeben: Nur für Henning_N
Moin, zusammen. Habe folgenden Befehl ausprobiert: Dim params() CATIA.SystemService.ExecuteScript "C:\Pfad", catScriptLibraryTypeDirectory, "Hallo.CATScript", "CATMain", params Es kommt dann aber in Excel die Fehlermeldung: Laufzeitfehler, 'Unbekannte Makrobibliothek' Der Pfad stimmt aber. Was mache ich falsch ? Schöne Grüße, Shorty Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 01. Apr. 2009 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für Henning_N
Hallo Zusammen, ich hoffe jemand kann mir weiterhelfen, denn der letzte Beitrag ist schon etwas älter. Ich habe das gleiche Problem wie Henning_N, nur habe ich ein Catvbs welches ich aus VBA starten möchte. Warum klappt das mit dem "ExecuteScript" nicht? Dim Params() Set SServ = CATIA.SystemService LibPath = "C:\bla" ScriptName = "blabla.catvbs" FunctionName = "CATMain" Call SServ.ExecuteScript(LibPath, catScriptLibraryTypeDirectory, ScriptName, FunctionName, Params) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 01. Apr. 2009 22:51 <-- editieren / zitieren --> Unities abgeben: Nur für Henning_N
Hallo Gepetto, hast Du im catvbs alle Variablen deklariert? Es gab hier im Forum vor kurzen eine Diskussion, wo festgestellt wurde, dass alle Variablen im aufgerufenen Script deklariert sein müssen, damit es funktioniert! mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 02. Apr. 2009 07:45 <-- editieren / zitieren --> Unities abgeben: Nur für Henning_N
Sub callen() Dim SServ Dim ScriptName As String Dim FunctionName As String Dim Params() Set SServ = CATIA.SystemService LibPath = "C:\bla" ScriptName = "blabla.catvbs" FunctionName = "CATMain" Call SServ.ExecuteScript(LibPath, catScriptLibraryTypeDirectory, ScriptName, FunctionName, Params) End Sub So finktionukelt es jetzt Einfach nur Dim SServ reicht aus!aber ich dachte ich müsste SServ als SystemService deklarieren?! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |