Autor
|
Thema: Umstieg auf R24 / 2014 (2429 mal gelesen)
|
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 03. Dez. 2014 16:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, bin gerade dabei meine VB6-Makros auf Stand 2014 zu bringen. Seither habe ich mit R19 gearbeitet. Wenn beide Versionen parallel arbeiten sollen, muss immer der Regserver mit unregserver und regserver auf die jeweilige benutzte Version registriert werden. Ferner muss jetzt VBA extra nachinstalliert werden. MSI Dateien sind auf der CD1 im Unterverzeichnis "VBA". Dann stehen die TLB Dateien im bin Verzeichnis der Installation zur Verfügung und die meine Applikation startet schon mal ohne Kompilierungsfehler. Jetzt habe ich ein massives Problem mit folgendem Code: Set documents1 = catia.Documents Set Document1 = documents1.NewFrom(aktNormteilpfad & "\Stueckliste\be-masterpart.CATPart") VB6 bricht ab mit der Fehlermeldung: "Objektvariable oder With-Blockvariable nicht festgelegt" Das Problem kannte ich schon von früher und lies sich beheben indem man die Variable als Objekt definiert hat. Das habe ich bei meiner Variable "Catia" auch versucht und von "Infitf.application" auf "Object" geändert, leider ohne Erfolg. Das Problem zieht sich bei mir durch alle Module wo ich auf "Catia" zugreife. Wer hat einen Tipp und das Problem schon gelöst? Vielen Dank im Voraus Louis 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. Dez. 2014 17:17 <-- editieren / zitieren --> Unities abgeben: Nur für louis
CATIA solltest Du überhaupt nicht deklarieren, das ist im VBA eine Systemvariable. Auch solltest Du nicht beide Releases auf einem Rechner haben. Ich nehm an, dass auch hier das Problem liegt, dass er nicht mehr weiß was mit CATIA gemeint ist oder alle Referenzen sind baden gegangen. ------------------ 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 |
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 03. Dez. 2014 17:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Henry, danke für Deine Antwort. Wie ich geschrieben habe, arbeite ich mit VB6 und NICHT mit VBA. Da muss ich die Variable "Catia" wohl definieren um den Kontakt zu V5 herzustellen. Das wäre schon lächerlich, wenn ich für jede V5 Version einen eigenen Rechner bräuchte! Als Dienstleister bin ich darauf angewiesen mehrere Versionen auf einem Rechner zu installieren. Ich kann doch nicht jedem meiner 8 Mitarbeiter 2 Rechner hinstellen. Wenn der Regserver sauber gesetzt ist, läuft das normalerweise auch problemlos. Gruß Louis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 03. Dez. 2014 17:31 <-- editieren / zitieren --> Unities abgeben: Nur für louis
Servus Louis Hast du die Referenzen zu den Catia-Bibliotheken gesetzt (oder heißt das so, ich hab schon lange kein mehr VB6 verwendet) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 04. Dez. 2014 07:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Ich habe alle Verweise gesetzt. Hab auch schon ein neues Projekt in VB erstellt und nur die Verweise gesetzt und diese 2 Zeilen in ene Form eingefügt. Funktioniert aber leider auch nicht. Frage hat überhaupt schon jemand mit R24 / 2014 programmiert? Gruß Louis 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: 04. Dez. 2014 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für louis
|
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 04. Dez. 2014 10:43 <-- editieren / zitieren --> Unities abgeben:
Hallo TomTom, vielen Dank für Deine Antwort. Das mit dem Regserver habe ich schon probiert. Wie hast Du das bei der Installation gemacht? V5 installiert, dann WELCHE MSI von der CD im Verzeichnis VBA nach installiert?? Es gibt hier verschiedene? Grundsätzlich sehe ich das Problem in der Registrierung und dann kann VB6 kann keine Verbindung zu Catia aufbauen. Wenn Du bitte mal die grundsätzliche Installation aller für VB6 notwendigen Komponenten beschreibst würde das bestimmt nicht nur mir helfen. Gruß Louis 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: 04. Dez. 2014 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für louis
|
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. Dez. 2014 12:47 <-- editieren / zitieren --> Unities abgeben: Nur für louis
Könntest Du bitte die Systeminfo ausfüllen? Mir würde noch einfallen, dass es vielleicht kein Windows 7 oder ein 32bit-Problem ist. Mit R24 kann CATIA ja auch 64bit an der API, soweit ich das mitbekommen habe. ------------------ 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 |
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: 04. Dez. 2014 13:23 <-- editieren / zitieren --> Unities abgeben: Nur für louis
Hallo, ich bin unterwegs mit R24 64bit auf WIN7. Das ist alles soweit problemlos. In VB6 gibts mit der COMCTL32.OCX (die z.B. der .treeview nutzt) unter WIN7 ein Problem (Runtime-Err 339, die ocx ist falsch registriert) aber sonst nix. Gruß ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 04. Dez. 2014 14:37 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, hab die Lösung gefunden. Meine Public "Catia" war an der falschen Stelle deklariert. Hat seither nichts ausgemacht aber jetzt .... Ein Teil meiner Programme funktionieren soweit. Aktuell habe ich ein Problem mit dem Picture-Viewer wenn ich den Hintergrund meines Bildschirms auf die Farbe weiss bzw. wieder zurück in blau stellen möchte: Sub ba_wo_btm_cmd_screen_white_Click() Set PictureViewer = CaTia.ActiveWindow.ActiveViewer 'Hintergrund auf Weis PictureViewer.PutBackgroundColor Array(1, 1, 1) Set settingControllers1 = CaTia.SettingControllers Set visualizationSettingAtt1 = settingControllers1.Item("CATVizVisualizationSettingCtrl") visualizationSettingAtt1.SetBackgroundRGB 255, 255, 255 End Sub Laufzeitfehler 429 bei "Set PictureViewer...." (2. Zeile) Objekterstellung durch ActiveX-Komponente nicht möglich Hat jemand von euch eine Idee? Danke! Gruß Louis
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 04. Dez. 2014 15:50 <-- editieren / zitieren --> Unities abgeben:
Bin wieder ein Stück weiter: Obwohl ich die Variable "Catia" Public definiert habe, verliert sich diese in meinen anderen Modulen wieder. Wenn ich in den anderen Modulen im Form-Load "Catia" noch einmal als Public definiere und zuweise funktioniert es! Dieses Problem hatte ich teileweise früher schon, hat sich aber auf weitere Module ausgeweitet. Hat jemand eine Ahnung wo mein Fehler liegt? Bin halt doch nur ein "Programmier-Murkser" Danke euch. Gruß Louis 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: 04. Dez. 2014 19:57 <-- editieren / zitieren --> Unities abgeben: Nur für louis
Hi louis, Modul oder Form? Public geht nur in einem Modul. Probier mal folgendes: Paste untenstehenden Code in ein (eigenes) Modul, zB 'modgetCatiaObj.bas' Code:
Option ExplicitPublic CATIA As Object '--------------------------------------------------------------------------------------- ' Procedure : GetCatiaObject ' Author : jherzog ' Date : 17.06.2014 ' Time : 20:46 ' Languages : VB6 Pro ' V5-Release: V5R19/21 ' Purpose : Fetch CATIA-Object ' Parms : - ' Ret. Value: CATIA-Object (public) ' ' Syntax : GetCatiaObject ' ' Source : V5Automation-Helpfile '--------------------------------------------------------------------------------------- ' Sub GetCatiaObject() On Error Resume Next 'Disable automatic error handling Set CATIA = GetObject(, "CATIA.Application") If (Err.Number <> 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 'show the main window End If On Error GoTo 0 'Invalidates the Resume Next and clears the error End Sub
Die Routine versucht Catia zu finden(ein Object 'CATIA' zu erzeugen) und falls das nicht klappt, Catia zu starten. In der Form_Load der Startform füge vor irgendwelchen Referenzen auf Catia-Funktionen folgende Zeilen ein: Code:
GetCatiaObject If CATIA Is Nothing Then 'this should not normally happen Unload Me Exit Sub End If
Wenn Du nach der Zeile 'End If' einen Breakpoint setzt und im Watch-Fenster CATIA analysierst, sollte da was zu sehen sein. Sonst hat's nicht funktioniert. Ausserdem: Dies muss die einzige 'CATIA =' - Zuweisung im gesamten Programm sein. Hope it helps, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 05. Dez. 2014 09:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Joe, herzlichen Dank für Deine Antwort. Ich habe die Public in einer Form definiert. Das könnte der entscheidende Hinweis sein. Werd's über das WE mal ausprobieren und Rückmeldung geben. Gruß Louis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
louis Mitglied Geschäftsführer
Beiträge: 93 Registriert: 07.05.2001 V5 R19/R2014, WIN7, Visual Basic6.0 SP6
|
erstellt am: 05. Dez. 2014 10:37 <-- editieren / zitieren --> Unities abgeben:
|
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: 05. Dez. 2014 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für louis
Hallo Louis, Du kannst innerhalb einer Form keine 'Public'-Variablen definieren. Das lässt unter VB6 schon die IDE nicht zu. Aber: Du kannst sie innerhalb dieser einen Form definieren. Dann sind sie aber 'Private', auch wenn's nicht explizit davor steht. Eine 'Private'-Variable gleichen Namens, aber in verschiedenen Formen/Modulen muss nicht den gleichen Inhalt/Typ haben. Die kennen sich gegenseitig nicht. Genaueres steht unter 'Understanding the Scope of Variables' der Online-Hilfe. Du kannst das aber auch selbst in einem Mini-Programm mit einer Form und einem Modul ausprobieren. Tschau, Joe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |