Autor
|
Thema: StartCommand iCommandId Auflistung (2859 mal gelesen)
|
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 26. Jul. 2005 15:33 <-- editieren / zitieren --> Unities abgeben:
Hi, gibt es irgendwo eine Zusammenfassung der verfügbaren iCommandIds für den StartCommand? Aus der Doku erfahre ich leider nicht mehr, als das es das gibt. Ich suche nach einer Möglichkeit den Vorgang Send_To -> Directory in einem Makro zu erfassen. mfg mattu ------------------ A fool with a tool is still a fool 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: 26. Jul. 2005 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Hallo, SendTo wird von der COM-Schnittstelle unterstütz, d.h. es gibt eine eigene Methode dafür, siehe Code unten. Aber: Man benötigt dafür eine PX1 Lizenz (oder z.B. die AL2, die diese enthält). Das ganze sieht dann ungefähr so aus: .... Dim aListOfFiles(1000) Set oSend = oCatia.CreateSendTo() oSend.SetInitialFile oCatia.ActiveDocument.FullName oSend.GetListOfDependantFile aListOfFiles .... SendTo funktioniert nicht mit dem StarCommand, jedenfalls habe ich es nicht hinbekommen, da mir dieser Gedanke auch kam - um die Lizenz nicht verwenden zu müssen. Im SendTo liegt aber eh viel Müll rum (Thema Ghostlinks), ein Scannen der geladenen Productstruktur ist zwar - auf den Code bezogen umständlicher - aber besser. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 27. Jul. 2005 08:38 <-- editieren / zitieren --> Unities abgeben:
Hi, danke für die schnelle Antwort. Ist die COM Schnittstelle auf Windows und auf AIX verfügbar? Aus deinem Code werd ich irgendwie auch noch nicht schlau. Ich hoffe, ich habe meine Frage richtig formuliert. Ich möchte den Weg automatisieren, der manuell über Datei -> Send to -> Directory geht. Ist dieser Code für diesen Weg? Bei der Ausführung als Makro bekomme ich derzeit auch Fehlermeldungen. mfg mattu ------------------ A fool with a tool is still a fool 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: 27. Jul. 2005 15:45 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Hi, das Object SendToService mit den zugehörigen Methoden (siehe Bild im Anhang) gibt’s auch unter Unix, aber von Unix haben wir uns komplett verabschiedet - deshalb spreche ich immer nur von der COM-Schnittstelle, wenn ich mich auf Scripte beziehe. COM (Component Object Model) ist eine von Microsoft entwickelte Schnittstelle, die von allen 32-bit Microsoft Betriebssystemen unterstützt wird. COM ist die Basis, auf der OLE-Automation (Object Linking and Embedding) und ActiveX (Softwarekomponenten-Modell) realisiert sind. Befehlsaufrufe im Script mit Catia.StartCommand führen zu dem Problem, das das Script weiterläuft und nicht auf eine Eingabe durch den User wartet. D.h., das a.) der StartCommand nur am Ende des Scriptes stehen sollte, oder b.) nur Befehle aufgerufen werden können, die keine Interaktion erfordern und: der StartCommand wird nur in der englischen Sprachumgebung unterstützt, in anderen Sprachumgebungen musst du die Befehle mit SendKeys direkt an die Befehlszeile schicken. Der Code im vorhergehenden Beitrag schreibt alle Files, die sich im Root (also im CATIA.ActiveDocument) befinden in ein Array, aber wie gesagt auch den Müll, der sich im SendTo befindet, und nur mit der benötigten Lizenz. Aufrufen kannst du „Send To“ mit Catia.StartCommand „directory“ Aber ich glaube wie gesagt nicht, das du so zu einer Lösung kommst. Gruss TomTom
------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 28. Jul. 2005 15:13 <-- editieren / zitieren --> Unities abgeben:
|
CATLama Mitglied
Beiträge: 23 Registriert: 30.03.2006 Catia V5 R18
|
erstellt am: 29. Nov. 2010 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Hallo, konnt mir jemand sagen, warum Code oben Dim aListOfFiles(1000) Set oSend = oCatia.CreateSendTo() oSend.SetInitialFile oCatia.ActiveDocument.FullName oSend.GetListOfDependantFile aListOfFiles funtioniert nicht auf der 64bit-Platform? Ich bekomme Meldung: method getListOfDependantFile of object SendToService failed. Wenn ich benutze die Klammern ... oSend.GetListOfDependantFile (aListOfFiles) ... Syntax ist schon OK aber aListOfFiles ist leer. Auf der 32bit-Platform ist alles OK. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 29. Nov. 2010 17:15 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Versuch mal Code:
Call oSend.GetListOfDependantFile (aListOfFiles)
64bit muss über die externe API gehen, da es auf 32bit runtergebrochen werden muss. 32bit kann dafür intern ablaufen, daher gibt's manchmal komische Fehler. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CATLama Mitglied
Beiträge: 23 Registriert: 30.03.2006 Catia V5 R18
|
erstellt am: 01. Dez. 2010 10:44 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 01. Dez. 2010 17:21 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Jetzt musste ich auch kurz drüber nachdenken. Viel Spaß mit dem Code:
Code:
Public Sub CATMain() Dim arrVarListOfFiles() As Variant Dim objBuffer As Object Dim sendWork As INFITF.SendToService Set sendWork = CATIA.CreateSendTo() Call sendWork.SetInitialFile(CATIA.ActiveDocument.FullName) Set objBuffer = sendWork ReDim arrVarListOfFiles(0) Call objBuffer.GetListOfDependantFile(arrVarListOfFiles) End Sub
------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CATLama Mitglied
Beiträge: 23 Registriert: 30.03.2006 Catia V5 R18
|
erstellt am: 03. Dez. 2010 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
|