Autor
|
Thema: Catia V5 R19 64 Bit und Createobject() (2754 mal gelesen)
|
Alain-b. Mitglied mechatroniker
Beiträge: 4 Registriert: 26.06.2014
|
erstellt am: 27. Jun. 2014 07:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Kollegen, Diesmal bräuchte ich eure Hilfe und zwar, ich habe eine Anwendung mit Visual Studio 2012 (also eine Exe) erstellt.. und zwar eine exe wie den aufruf von Catia V5 ermöglicht... vor einige Zeit hatten wir Catia V5 R19 32 Bit installiert, GetObject und CreateObject Funktionierten perfekt :-) jetzt benutzen wir Catia V5 R19 64 Bit und jetzt Funktioniert CreateObject() nicht mehr.... ich bekomme als Fehlermeldung dass das Environment nicht festgelegt ist.. ich bekomme der Fehler einfach nicht behoben ich habe auch auf internet nach Lösungen gesucht aber Leider wurde ich nicht so richtig fündig... darum mein Hilferuf Zur Info: die exe ist mit 64 Bit kompiliert, wenn ich Catia schon gestartet habe funktioniert es... und auf ein Rechner wo ich noch Catia V5 R19 32 Bit drauf habe funktioniert es auch noch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 27. Jun. 2014 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für Alain-b.
Hallo, kompilieren solltest du als "AnyCpu", da leider immer sowohl 32bit als auch 64bit Komponenten geladen werden. Daher kann es sein, dass unter 64bit bestimmte Dinge nicht funktionieren. Wenn CATIA offen ist, solltest du besser "GetObject" verwenden.
Code:
AppCount = Process.GetProcessesByName("CNEXT").Length If AppCount > 1 Then 'MsgBox("There are more then one instances of CATIA opened.") MsgBox("Es wurden mehrere CATIA Intanzen gefunden." & vbLf & _ "Die Verarbeitung wird abgebrochen.", MsgBoxStyle.Critical, "Es darf nur ein CATIA geöffnet sein!") Return False ElseIf AppCount = 0 Then 'MsgBox("There is no CATIA opened.") MsgBox("Es ist kein CATIA geöffnet." & vbLf & _ "Die Verarbeitung wird abgebrochen.", MsgBoxStyle.Critical, "CATIA steht nicht zur Verfügung!") Return False Else CATIA = GetObject(, "CATIA.Application") If Err.Number <> 0 Then 'MsgBox("The Application hangs.") MsgBox("CATIA reagiert nicht." & vbLf & _ "Die Verarbeitung wird abgebrochen.", MsgBoxStyle.Critical, "CATIA steht nicht zur Verfügung!") Err.Number = 9999 Err.Clear() End If End If
Ansonsten kann der Fehler auch darauf hinweisen, dass CATIA nicht sauber mit dem Environment registriert ist. Sprich wenn eine Datei per Doppelklick geöffnet wird, sollte mit der 64bit-Anwendung der gleiche Fehler auftreten. Hier könnte ein unreg / reg helfen. Das passiert im übrigen, wenn man die Ablage des Environments erst nach der Installation verändert oder die 64bit Variante vor der 32bit Variante installiert. Probier aber erst maöl AnyCPU, dass könnte dein Problem schon lösen. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alain-b. Mitglied mechatroniker
Beiträge: 4 Registriert: 26.06.2014
|
erstellt am: 27. Jun. 2014 10:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Rschultz, Vielen Dank für deine Hinweis so wie es aussieht ist dein Zweiten Vorschlag mit dem test ob Catia geht wenn ich ein Part anklicke der richtige ist ich bekomme eine Fehlermeldung "Environment not set or incorrect" das wird es sein Leider muss ich mit CreateObject() Arbeiten weil Catia zu eine Schleife gehört mit mehreren Programme Zweck Optimisation. ich werde Versuchen das Problem zu Fixen Vielen dank noch für dein wertvoller Tipp Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alain-b. Mitglied mechatroniker
Beiträge: 4 Registriert: 26.06.2014
|
erstellt am: 30. Jun. 2014 17:25 <-- editieren / zitieren --> Unities abgeben:
Hallo kollegen, so... habe alle möglichkeiten erforscht an was das es liegen könnte. also ich benutze um Catia automatisch zu öffnen diesen code: Try CATIA = GetObject("CATIA.Application") Catch CATIA = CreateObject("CATIA.Application") CATIA.Visible = False End Try Funktioniert super mit Catia V5 R19 32 Bit aber mit der 64 Bit funzt es einfach nicht !!! udn ich finde es einfach keine Lösung.... gibt es mit der 64 Bit ein anderen Trick ?? es wäre für mich sehr Hilfreich.... 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: 03. Jul. 2014 16:55 <-- editieren / zitieren --> Unities abgeben: Nur für Alain-b.
Servicepack 9 oder höher? Ist nur eine CATIA Installation auf dem Rechner? Ist das VBA 7 aus dem CATAI installiert? Ist VBA registriert? Geht es auf allen 64bit Rechnern nicht? Der Code ist soweit okay, ich vermute das Problem liegt eher an der CATIA Installation oder Konfiguration ------------------ 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 |
Alain-b. Mitglied mechatroniker
Beiträge: 4 Registriert: 26.06.2014
|
erstellt am: 03. Jul. 2014 17:30 <-- editieren / zitieren --> Unities abgeben:
Servicepack 9 oder höher? Ist nur eine CATIA Installation auf dem Rechner? - Ja Servicepack 9 ist installiert Ist das VBA 7 aus dem CATAI installiert? - das weiss ich nicht Ist VBA registriert? - das weiss ich nicht Geht es auf allen 64bit Rechnern nicht? -Catia ist auf 64 bit sytem Installiert Der Code ist soweit okay, ich vermute das Problem liegt eher an der CATIA Installation oder Konfiguration - vermute ich auch.... habe mal spaßishalber die R22 64bit installiert und sie da es Funktioniert wieder.... kann nicht sehen warum das CreatObject nict bei r19 funktioniert.... bin Ratlos
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: 04. Jul. 2014 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für Alain-b.
Kannst Du das Ganze mal als VBS in's Dateisystem legen und starten? So würdest könnten wir eine weitere Problemquelle ausschließen. Zusätzlich auf die gleiche Weise mal Excel starten. So sehen wir ob VBS grundsätzlich geht, ob die Objekte vom CATIA korrekt registirert sind und obs nicht vielleicht am Visual Studio liegt. Edit: Auf der Installations DVD vom CATIA sind zwei Installationsdateien von VB dabei. Einmal eine VBA und eine VBE. In R19 war es glaube ich so, dass diesen icht automatisch mit installiert wurden und man das manuell machen musste. Diese setzen auch die Links auf die Klassen/Objekt-Libs in der Registry. Noch eine weitere Prüfmöglichkeit: Geht der VBA-Makroeditor im CATIA? Also nicht der Für CATScript, VBS oder sonstiges, sondern wirklich der VBA-Makro-Editor. ------------------ 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 [Diese Nachricht wurde von HoBLila am 04. Jul. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 20. Jul. 2014 21:31 <-- editieren / zitieren --> Unities abgeben: Nur für Alain-b.
Hallo Alain, in einer ähnlichen Situation hat mir die Erneuerung der Registrierung geholfen. Nachfolgend die Beschreibung hierzu: Registering CATIA and Type Libraries
A. When CATIA V5 is installed, it is registered in the “registry” of “Windows”, so that it is possible to use this instruction: Set CATIA= CreateObject(“CATIA.Application”) If you have several versions of CATIA and If you want to change of version, you can unregister CATIA in a command window typing : > cnext /RegServer To register an other version, you can type: > cnext /UnregServer These commands must be typed in a command window and in the folder: “.\intel_a\code\bin” of the chosen CATIA version. B. To register the corresponding CATIA Type Libraries, you must first run a macro. Then, you will be able to check in the “Project/References ” menu of Visual Basic (or VBA) that the location of the *.tlb files has changed. Unter VB6 hab ich dann folgendes: Sub GetCatiaObject() ' Dim CATIA As Object Dim iErr As Integer On Error Resume Next ' Disable automatic error handling Set CATIA = GetObject(, "CATIA.Application") iErr = Err.Number ' For BasicScript parser (Unix) If (iErr <> 0) Then ' Manually handle all errors MsgBox Err.Description & vbCrLf & "Is Catia running?" & vbCrLf & "Trying to start Catia!", vbOKOnly _ Or vbInformation, "GetCatiaObject" On Error GoTo 0 ' Invalidates the Resume Next and clears the error Set CATIA = CreateObject("CATIA.Application") CATIA.Visible = True End If On Error GoTo 0 ' Invalidates the Resume Next and clears the error End Sub Hope it helps, Joe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |