Autor
|
Thema: CATIA vom Netzwerkordner starten (1876 mal gelesen)
|
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: 11. Jun. 2008 09:24 <-- editieren / zitieren --> Unities abgeben:
Hallo CAD.de Gemeinde, ich programmiere mit VB6 ein paar CAD-Tools zu CATIA. Habe bisher immer das Problem, dass nur ein CATIA geöffnet sein darf, da ich sonst nicht weiß welches ich aus der Prozessliste bekomme (mit GetObject), aber das ist bisher nicht weiter schlimm gewesen. Nun habe ich aber ein sich daraus ergebendes Problem. Ich bin nicht in der Lage einen CATIA.Applcation Object direkt aus der Prozessliste zu bekommen. Nun ist aber da Problem, dass die CATIA's im Netzwerk liegen und nicht direkt installiert sind, sprich es keinen Registry Eintrag gibt und der Anwender auch keine Adminrechte hat... Meine Idee ist also nun, aus den Umgebungsvariablen den Netzwerkpfad auszulesen, wo das CATIA liegt und die Exe direkt vom in VB programmierten Tool zu starten, nur weiß ich an dieser stelle nicht, wie ich das bewerkstelligen soll und zwar so, dass ich dann mein CATIA Object erhalte. Wäre cool wenn ihr da vielleicht irgendwie eine Idee hättet, wie ich an das CATIA Object heran komme. Anmerkung: Eine besere Alternative wäre natürlich irgendwie ein CATIA Object aus der Processliste zu generieren. Überlegt habe ich auch schon über ein CATScript, welches mein Tool startet, nur weiß ich dann noch immer nicht, wie das CATIA-Object übergeben werden soll... [Diese Nachricht wurde von HoBLila am 11. Jun. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
apollo11 Mitglied
Beiträge: 47 Registriert: 31.03.2007
|
erstellt am: 11. Jun. 2008 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
|
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 11. Jun. 2008 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
Zitat: Nun ist aber da Problem, dass die CATIA's im Netzwerk liegen und nicht direkt installiert sind, sprich es keinen Registry Eintrag gibt und der Anwender auch keine Adminrechte hat...
für mal Cnext/regserver aus damit CATIA ordentlich regestriert wird 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: 11. Jun. 2008 13:31 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort, wie ich eine Enviroment-Variable bekomme weiß ich ja schon, aber wie ich dann aus dem erhaltenen Pfad das CATIA-Object generiere würde mich interessieren... Edit: Also dies war die Antwort die Enviroment Funktion. Das Makro macht es genauso wie ich bisher: Function GetCATIA() As Object Set CATIA = GetObject(, "CATIA.Application") If CATIA Is Nothing Then Set CATIA = CreateObject("CATIA.Application") CATIA.Visible = True End If Set GetCATIA = CATIA End Function Dies funktioniert aber leider nur, wenn das CATIA registriert ist. unter http://ww3.cad.de/foren/ubb/Forum137/HTML/002686.shtml hatte ich zuvor schon einige Anregungen gefunden, allerdings weiß ich nicht, wie ich das System Object für CATIA = System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application") herbekomme. MfG Lila [Diese Nachricht wurde von HoBLila am 11. Jun. 2008 editiert.] 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: 11. Jun. 2008 13:40 <-- editieren / zitieren --> Unities abgeben:
Die Anwender haben keine Adminrechte, deshalb glaube ich nicht, dass dies gehen wird. Mir wäre auch lieber, wenn der Admin da etwas kooperativer wäre, aber er hat nunmal seine Prinzipien udn wird's schon wissen. Wenn die CATIAs ordentlich registriert wären hätte ich nicht das Problem. Das mit dem regserver hatte ich somit also schon abgehakt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 11. Jun. 2008 14:03 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
|
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: 11. Jun. 2008 14:15 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 11. Jun. 2008 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
|
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 11. Jun. 2008 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für HoBLila
Hallo HoBLila, wie starten den eure Anwender V5; über ein Icon auf dem Desktop? Im Grunde muss dein Programm das Selbe machen; also V5 starten. Gibt es vielleicht eine Tastenkombination für den Start von V5 welchen du über sendkeys benutzen kannst? Dann kannst du auch ganz normal mit dem GetObject arbeiten da V5 ja dann in der Prozessliste geführt wird. SG Jens Hansen ------------------ Inoffizielle CATIA-Hilfeseite Private Seite Xing 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: 11. Jun. 2008 17:05 <-- editieren / zitieren --> Unities abgeben:
Also ich kann erstmal sagen regserver hat nicht funktioniert. Dann möchte ich mich auch für die rege Teilnahme bedanken. Das CATIA wird vorraussichtlich über eine Startsoftware eines Systemhauses gestartet. Sprich die Software "weiß" wo das CATIA ist und welche Einstellungen es benötigt für die verschiedenen OEMs und welche Version und Release nötig sind. Diese Software teilt mir dies aber auch über eine Variable mit, wo das CATIA liegt, welches gestartet wurde. Sprich, ich weiß genau wo die Exe liegt. Habe es also mit GetObject(<Pfad>,"CATIA.Application") versucht, leider ohne Erfolg... CATIA ist zur Laufzeit meines Tools bereits gestartet, nur weiß ich nicht wie ich es aus der Processliste "fischen" kann, denn bei GetObject(, "CATIA.Application") bekomme ich nichts zurück, außer das CATIA ist ordnungsgemäß registiert. Bekommen täte ich aber eien Liste der offene CATIAs über objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'CNEXT.exe'") nur habe ich keine Ahnung, wie ich dann daraus meine INFITF.Application gewinne, da die ja Processe ja vom Typ WMI irgendwas sind. Edit: Das GetObject("CATIA.Application") funktioniert nur bei registrierten CATIA's [Diese Nachricht wurde von HoBLila am 12. Jun. 2008 editiert.] 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: 12. Jun. 2008 09:33 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Gemeinde, ich versuche weiter das Problem zu lösen: Okay, anderer Versuch: Dim colProcesses As WbemScripting.SWbemObjectSet Dim objWMIService As WbemScripting.SWbemServicesEx Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'CNEXT.exe'")
Dann habe ich in dem colProcesses ein geöffnetes SWbemObjectEx, wo ich aber keine Ahnung habe wie ich darauf zugreifen könnte, oder wie ich daraus das erhoffte CATIA.Application Object machen kann. Edit: ein For each Process in colProcesses liefert zumindest einzelne Objecte, die auch ID's haben, diese ID's scheinen aber nicht die richtigen für ein .GetActiveObject zu sein. Edit: Kann ich mit processMy.ProcessID, welche dem Handle entspricht etwas anfangen? Ich mein GetActiveObject() verlangt ja nach einer ProgID als String, aber es klappt irgendwie nicht Edit: Auch in den processMy.Properties_ steht der ExecutablePath, aber wie bekomme ich aus dem genauen Dateipfad der CNEXT.exe das erforderliche CATIA-Object? Wäre cool, wenn mir das wer sagen könnte, stehe da anscheinend echt auf dem Schlauch, denn dne Pfad habe ich ja, den Process auch nur das INFITF.Application Object daraus nicht. MfG Lila [Diese Nachricht wurde von HoBLila am 12. Jun. 2008 editiert.] 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: 12. Jun. 2008 16:15 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, also ich hake das Thema jetzt erstmal als nicht lösbar ab - viel zu viel Zeit in's rumprobieren invesitert. Was mich wundert ist allerdings, dass ich ein Excel-Object bekomme wenn ich GetObject("Dateiname.xls") mache, aber kein CATIA-Object wenn ich GetObject("Dateiname.CATPart"). Habe es auch mit CNEXT.exe und CATSTART.exe probiert, auch mit dem Aufruf !CATIA.Application und nur !Application versucht, überall bekomme ich kein Object zurück, selbst dort, wo CATIA registriert ist. Sprich selbst wenn CATIA registriert ist finde ich nur die Lösung über GetObject("CATIA.Application") und System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application"). Aber naja, was nicht geht, geht eben nicht. Danke für das rege Interesse und die nützlichen Tipps, Mit freundlichen Grüßen, Lila Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |