Autor
|
Thema: öffne 3D aus Zeichnung (1800 mal gelesen)
|
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 31. Jul. 2013 16:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, seit unserer WIN 7 Umstellung spucken meine VBA' etwas Ich habe ein Script welches mir in einer CATDrawingoberflaeche das zugehörige Part öffnet Code: Private Sub Load3D_Click() 'open 3D On Error Resume Next Set oDoc = CATIA.ActiveDocument Set oView = oDoc.Sheets.ActiveSheet.Views.ActiveView Set oProduct = oView.GenerativeBehavior.Document.Parent oName = oProduct.FullName If Err.Number <> 0 Then Set oProduct = oView.GenerativeBehavior.Document.Parent.Parent.Parent oName = oProduct.FullName Err.Clear End If On Error GoTo 0 'MsgBox ("oName = oProduct.FullName: " & oName) CATIA.Documents.Open (oName) Unload UFStartCenter End Sub
unter oName steht der Korrekte Pfad drin, die Datei gibt es. Das Script bricht mit"Fehler beim ziehen und übergeben"ab. Kann es sein dass mir irgendwelche Referenzen fehlen? Gruß Norbert ------------------ V5R20 Catia + Smarteam 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: 31. Jul. 2013 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Servus Wie lautet die Fehlermeldung genau? Welche Zeile? Welche Referenzen sind in VBA gesetzt? Wenn du die Objekte deklarierst, hast du die entsprechenden Typen zur Auswahl (zB DrawingView, Document, ...)? Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 31. Jul. 2013 17:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, die genaue Fehlermeldung ist "Laufzeitfehler '-2147467259(800004005)
Automatisierungsfehler Unbekannter Fehler Ich denke die Typen stehen schon zur Auswahl da andere Scripts ohne Probleme laufen. Er liest den richtigen Parent ja auch aus. Gruß Norbert ------------------ V5R20 Catia + Smarteam 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: 31. Jul. 2013 17:26 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Die Zeilenangabe fehlt noch immer... versuch mal Code:
Call CATIA.Documents.Open(oName)
Edit: Übrigens ist in Code:
On Error GoTo 0
bereits ein Err.Clear enthalten. Du machst es also doppelt. :-) Aber das ist nicht Dein Fehler, sondern nur ein Tipp. ------------------ 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 31. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 01. Aug. 2013 09:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Henry, das voranstellen von Call ändert leider nichts an meinem Fehler. Da das Script mit XP vernünftig gelaufen ist vermute ich den Fehler an anderer Stelle. Beim händischen öffnen über den normalen Datei öffnen Dialog erhalte ich die Meldung, das das Dokument schon geöffnet ist :
Beim Aufruf des Scrips:
Die R20 hat das ohne Murren akzeptiert. Kann das evtl auch irgendeine Option sein, welche mir dazwischen funkt? Ich werde mal in diese Richtung suchen. Gruß Norbert 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: 01. Aug. 2013 12:40 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Wieso willst Du eine Datei öffnen, die offen ist? ------------------ 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 |
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 01. Aug. 2013 18:12 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Aug. 2013 18:14 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Servus Habt ihr das work-Verzeichnis noch auf ein anderes (User)Laufwerk gemappt? ggf müsstest du dann den Pfad entsprechend anpassen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 02. Aug. 2013 10:43 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Aug. 2013 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Servus Es könnte sein dass das Teil zB von zB "N:\work" (Userverzeichnis) geladen wurde, dir aber der ganze Pfad ausgegeben wird. ggf kommt CATIA dabei durcheinander dass es verschiedene Pfade sind, obwohl es sich um die gleiche Datei und dem gleichen Verzeichnis handelt. Welchen Pfad wird dir bei der Drawing bzw. bei einem "normal" geöffneten Part angezeigt? Gruß Bernd PS: Bei mir läuft dein Code (auch in Verbindung mit SmarTeam und einem gemappten work-Verzeichnis) ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 02. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 02. Aug. 2013 12:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, ich habe als Test die Funktionalität vom Laufwerk C:\temp\ ausprobiert. Hier funktioniert das Script wie gewohnt. Ich werde mal in die Richtung Rechtemanagment suchen. Evtl. hat sich da mit W7 irgendetwas verändert. Gruß Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 02. Aug. 2013 22:25 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Moin moin, habe leider keine Lösung, sondern eine Frage. Ich habe ein ähnliches Makro geschrieben und benutzte es öfters ohne irgendwelche Probleme. Hier der Code: Code:
SUB CATMain() DIM oSel As Selection Dim oType (0) oType(0)= "DrawingView" '-------------------- 'CHECK IF DOCUMENT OPENED IS CORRECT FORMAT CATOpenCheck If RunErr = True Then Exit Sub '-------------------- SET oSel = CATIA.ActiveDocument.Selection STATUS= oSel.SelectElement2(oType,"select a view",true) if STATUS = "Cancel" Then Exit Sub CATIA.Documents.Open(oSel.Item(1).Value.GenerativeBehavior.Document.Parent.FullName) END SUB '----------------------------------------
Meine Frage ist: warum brauchst du dieses Stück Code: Code:
If Err.Number <> 0 Then Set oProduct = oView.GenerativeBehavior.Document.Parent.Parent.Parent oName = oProduct.FullName Err.Clear End If On Error GoTo 0
Was wird hier mir abgefangen? Würde es sonst mit zu meinem Addieren, aber ich verstehe nicht warum es gebraucht wird. Gruß, 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: 02. Aug. 2013 23:03 <-- editieren / zitieren --> Unities abgeben: Nur für cmb
Servus Wenn die Ansicht von einer Szene abgleitet wurde (oder nur einzelne Products im Baum selektiert wurden) musst du dich über ".GenerativeBehavior.Document.Parent.Parent.Parent.Parent" bis zum Product druchhangeln, ".GenerativeBehavior.Document.Parent" liefert dir in diesem Fall nur die Scene-Collection zurück. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |