Autor
|
Thema: Absoluter Link einer Ansicht (View) Objektverbindungen abfragen... (3092 mal gelesen)
|
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 15. Jun. 2007 13:11 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich komme einfach nicht weiter. Ich benötige den Absoluten Link einer View. Manuell funktioniert das so: Rechte Maus auf Ansichtsrahmen -> Objektverbindungen abfragen... diesen kompletten Pfad benötige ich, egal ob auf Part oder Product verwiesen wird. Wenn es sich um ein verlinktes Product handelt funktioniert folgender code: Code: Sub CATMain() Dim oDrwDocument As DrawingDocument Set oDrwDocument = CATIA.ActiveDocument Dim oDrwSheets As DrawingSheets Set oDrwSheets = oDrwDocument.Sheets Dim oDrwSheet As DrawingSheet Set oDrwSheet = oDrwSheets.ActiveSheetSet ProductDrawn = oDrwSheet.Views.Item(3).GenerativeBehavior.Document MsgBox ProductDrawn.Parent.FullName End Sub
Problem ist, wenn es sich um ein verlinktes Part handelt, bekomme ich eine fehlermeldung. Vielen Dank für euere Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StRei Mitglied CAD/EDA-Systemadministration
Beiträge: 32 Registriert: 30.08.2001 MS WindowsXP 64bit ed. (SP1) IntelliStation A Pro 2*AMD Opteron 250 2,4 8GB Ram, Quadro FX3450 IntelliStation M Pro Intel Core2Duo 2,66 8GB Ram, Quadro FX3500 CATIA V5R17SP7 / V5R18SP3 SmarTeam V5R17SP7
|
erstellt am: 21. Jun. 2007 08:19 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
|
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 21. Jun. 2007 08:49 <-- editieren / zitieren --> Unities abgeben:
Also der cod funktioniert bei mir auch. aber nur wenn er direkt auf ein produkt oder auf ein EINZELNES part verweist. verlinkt man die erste view mit einem part das sich in einer product struktur befindet, kommt eine fehlermeldung. (drawing erzeugen -> z.b. ISO ansicht wählen -> fenster zum product wechseln -> ein part im baum anwählen -> auf eine geometrie klicken) bei dieser vorgehensweise funktioniert das macro leider nicht. wie kann ich das abfangen?? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StRei Mitglied CAD/EDA-Systemadministration
Beiträge: 32 Registriert: 30.08.2001 MS WindowsXP 64bit ed. (SP1) IntelliStation A Pro 2*AMD Opteron 250 2,4 8GB Ram, Quadro FX3450 IntelliStation M Pro Intel Core2Duo 2,66 8GB Ram, Quadro FX3500 CATIA V5R17SP7 / V5R18SP3 SmarTeam V5R17SP7
|
erstellt am: 21. Jun. 2007 09:11 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Coolio75, versuch's mal hiermit: Sub Num1() Dim productdrawn As product Dim oDrwDocument As DrawingDocument Dim oDrwSheets As DrawingSheets Dim oDrwSheet As DrawingSheet Set oDrwDocument = CATIA.ActiveDocument Set oDrwSheets = oDrwDocument.Sheets Set oDrwSheet = oDrwSheets.ActiveSheet Set productdrawn = oDrwSheet.Views.Item(3).GenerativeBehavior.Document On Error GoTo StufeWechseln MsgBox productdrawn.Parent.FullName GoTo Ende StufeWechseln: Set productdrawn = productdrawn.Parent MsgBox productdrawn.Parent.FullName Ende: End Sub
------------------ Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 21. Jun. 2007 09:27 <-- 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 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 21. Jun. 2007 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
|
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 21. Jun. 2007 10:04 <-- 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 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 21. Jun. 2007 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
|
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 21. Jun. 2007 12:20 <-- editieren / zitieren --> Unities abgeben:
Na dann bin ich aus der Prozedur draussen, hab aber keine Information ob es jetzt auf was verlinkt wird! hab aber ne lösung gefunden. falls es jemand interessiert: Code: . . . 'Prüfen ob erster View Link auf Produkt verweist Link1 Link If (InStr(Link, ".CATProduct")) <> 0 Then else MsgBox "The first linked document must be a CATProduct" Exit Sub End if . . . Sub Link1(Link) Set productdrawn = oDrwSheet.Views.Item(3).GenerativeBehavior.Document On Error Resume Next Link = productdrawn.Parent.FullName End Sub . . .
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CatMike Mitglied
Beiträge: 16 Registriert: 04.09.2008
|
erstellt am: 04. Sep. 2008 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo, kann mir jemand erklären, warum die "GenerativeBehavior.Document"-Methode in meinem Skript nicht funktioniert? Ich bekomme den Fehler: "the method Document failed" Ich bedanke mich im Voraus. ****************************** Dim oDrwDoc As DrawingDocument Set oDrwDoc= CATIA.ActiveDocument 'Retrieve the drawing document's sheets collection Dim oDrwSheets As drawingSheets Set oDrwSheets = oDrwDoc.Sheets 'Scan all the sheets of the Drawing document 'Dim CurrentSheet As drawingSheet For numsheet = 1 To oDrwSheets.Count Set CurrentSheet = oDrwSheets.Item(numsheet) CurrentSheet.Activate() 'get the Views' collection Dim oDrwViews As DrawingViews Set oDrwViews = CurrentSheet.Views 'Scan all the views of the current Sheet Dim generativDoc As Document Dim CurrentView As DrawingView For numview = 3 To oDrwViews.Count Set CurrentView = oDrwViews.Item(numview) CurrentView.Activate() If CurrentView.IsGenerative Then Set generativDoc = CurrentView.GenerativeBehavior.Document ...... 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. Sep. 2008 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Versuch's mal mit Häppchen. Also erst CurrentView.GenerativeBehavior und dann in der nächsten Zeile das .Document auf das erhaltene Object. ------------------ 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 |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 04. Sep. 2008 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
|
CatMike Mitglied
Beiträge: 16 Registriert: 04.09.2008
|
erstellt am: 04. Sep. 2008 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Herr Siebert, mein Problem ist, dass das Objekt GenerativeBehavior.Document überhaupt nicht übergeben wird. Dadurch wird es unmöglich, dessen Parent, ReferenceProduct usw. abzufragen. Auch mit Häppschen funktioniert das nicht. Gruß CatMike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAMiCADse Mitglied
Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 04. Sep. 2008 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
|
CatMike Mitglied
Beiträge: 16 Registriert: 04.09.2008
|
erstellt am: 04. Sep. 2008 17:02 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo CAMiCADse, auch als Variant funktioniert das Ganze nicht. Ich bekomme ständig den Fehler: "CATIAGenerativeBehavior ....the Document method failed". Ich kann den Fehler bisher nicht nachvollziehen. Danke für die Antworten. Gruß CATMike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 04. Sep. 2008 18:27 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo CATMike Mmhh frage doch mal bitte mit einer msgbox direkt nach der Deklaration was er Übergibt Bitte beschreibe doch mal was du mit dem Skript Automatisieren möchtet. PS: ist die Ansicht die du ansprichst Aktiv ? Führe mal Bitte dieses Skript aus: Code: Dim drawingDocument1 As Document Set drawingDocument1 = CATIA.ActiveDocument Dim drawingSheets1 As DrawingSheets Set drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheet Set drawingSheet1 = drawingSheets1.ActiveSheet Dim drawingViews1 As DrawingViews Set drawingViews1 = drawingSheet1.Views Dim drawingView1 As DrawingView Set drawingView1 = drawingViews1.ActiveView 'drawingView1.ActivateSet drawingViews1 = drawingSheet1.Views Set drawingView1 = drawingViews1.Item("Vorderansicht") drawingView1.Activate Name = drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.name Msgbox Name
------------------ Sei Schlau bleib Dumm !!?!!
[Diese Nachricht wurde von K.Siebert am 04. Sep. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CatMike Mitglied
Beiträge: 16 Registriert: 04.09.2008
|
erstellt am: 05. Sep. 2008 12:56 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Herr Siebert, ich möchte die Links aus der Zeichnung lesen, bzw. die Links von den Sichten der Zeichnung zu den Catparts lesen. Ich habe Ihr Stück Code getestet und bekomme den Fehler: Scripting Error 1002 ...Das Objekt unterstützt diese Eigenschaft oder Methode nicht. Könnten Sie bitte mein Skript testen und mir sagen, ob es bei Ihnen läuft? Ich kann wirklich nicht erkennen, wo der Fehler liegt. Aber wie schon so oft gesagt, der Fehler liegt öfters vor dem PC, nicht drin. PS: Im Objekt browser finde ich bei der Klasse Document keine Methode "ReferenceProduct". Ich habe die Release 16, sp5. Viele Grüße CatMike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 05. Sep. 2008 18:04 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo also dein Code läuft auch nicht bei mir allerdings habe ich nicht den Kompletten Code! (Fehler Meldung im Anhang) du möchtest den Link auslesen und dann, was möchtest du damit anfangen alle Zeichnungen Automatisch speichern ? da habe ich schon eine Lösung siehe hier
zu Deinen Code Zeilen nun da wird nicht der Link ausgelesen sondern bestimmt Blatt Anzahl und welches das Aktuelle Blatt ist ( habe dieses nur flüchtig überflogen) in diesen Zeilen wird nicht der Link ausgelesen. Im Anhang habe ich ein Beispiel Skript wie man verschiedenes ausliest „ZZZ_Test2.CATScript“ die Ergebnisse lege ich als Bilder bei damit dieses Script läuft 1 Zeichnung öffnen 2 es muss eine Vorderansicht vorhanden sein 3 Doppelkick auf das Skript 4 nun Sollten folgende Msgboxen erscheinen o FullName o Dateipfad o Name sollte dieses nicht der Fall sein weiß ich auch nicht weiter ! PS: Bitte mal Skript auf einem anderem PC testen
------------------ Sei Schlau bleib Dumm !!?!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CatMike Mitglied
Beiträge: 16 Registriert: 04.09.2008
|
erstellt am: 08. Sep. 2008 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Herr Siebert vielen Dank für die Antworten. Ich hatte letze Woche festgestellt, dass mein Skript doch läuft, wenn ich ein Part erzeuge und Views daraus ableite. Das Skript funktioniert jedoch nicht mehr, wenn die Views sog. Auxiliary Views sind. Auch Ihr Skript funktioniert in diesem Fall nicht. Mit dieser Erkenntnis bin ich jetzt ein Schritt weiter. Die Zeichnungen, womit ich teste beinhalten halt nur Auxiliary Views, dementsprechend suche ich weiter. Ich poste die Lösung hier, wenn ich sie gefunden habe. Gruß CatMike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 09. Sep. 2008 00:24 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo CatMike, lese schon lange mit und kann Dein Problem nicht nachvollziehen! Mit welchem CATIA-Release, -ServicePack, -HotFix arbeitest Du? Wie sieht die interaktive Prüfung der Links (Edit-->Links) aus? Hat die View einen Link zum Dokument (Reiter "Links") und ist der Status des Dokuments "OK" (Reiter "Pointed_dokuments")? Ich kenne die Fehlermeldung nur, wenn das verknüpfte Dokument nicht mehr gefunden wird. mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CatMike Mitglied
Beiträge: 16 Registriert: 04.09.2008
|
erstellt am: 09. Sep. 2008 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Lulsinie, zuerst zu meiner Umgebung: CV5 Rel.16, SP5 und HF 70 Was das Problem angeht, ich möchte die Links der Zeichnung ausgeben. Wenn ich ein CATPart erzeuge und die Zeichungen über das Drafting workbench ableite, werden die Links ausgegeben. Ich habe aber dann den Fall, dass eine Zeichnung von einem Layout (glaube ich) übernommen wurde. Über Edit->View (interaktiv) sehe ich die pointed documents. Ich muss dazu sagen, dass die Views ein anderes Symbol im Baum haben, es handelt sich um Auxiliary Views. In diesem Fall klappt die Methode zum Auslesen der Links nicht mehr. Ich Frage nach GenerativeBehavior.Document. Ich habe auch schon mit GenerativeLinks probiert. Null! Um sicherzustellen, was für ein Objekt ich bekomme, fragte ich auch nach GenerativeBehavior.Document.Name und bekam den Namen der View worauf ich gerade zugreife, verrückt oder? Das GenerativeBehavior.Document sollte nicht die View sein, sondern das Document, worauf die View zeigt, meiner Auffassung nach. Ich hoffe, ich habe Dir das Problem schildern können. Gruß CatMike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 09. Sep. 2008 22:27 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo CatMike, ich kann Deiner Beschreibung nicht ganz folgen, denn bei mir gibt es kein "Edit-->View". Arbeitest Du in der Workbench "Drafting"? Mach doch mal ein paar Screenshots: 1.) Baum mit Symbolen der Views 2.) Abbild von Reiter "Links" aus dem Panel, dass sich beim Pull-Down-Menü "Edit-->Links" öffnet 3.) Abbild von Reiter "Pointed_documents"" aus dem Panel, dass sich beim Pull-Down-Menü "Edit-->Links" öffnet Du kannst ja die "kritischen" Informationen, wie Namen, Abbild, ... verschleiern, die Typinformationen wie ".Part" und die CATIA-eigenen Symbolen sollten ausreichen! Ich denke, dass wir erst mit diesen Infos sinnvoll weiter nach dem Problem forschen können! mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |