Autor
|
Thema: Problem mit verlinktem Part bzw. Produkt (1578 mal gelesen)
|
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 24. Jul. 2007 16:03 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, hab da ein Problem das relativ schwer zu erklären scheint. ich versuchs mal. ich möchte das verlinkte part einer view ermitteln, okay erscheint relativ einfach ;-) das problem entsteht wenn man beim ansichten erstellen in ein produkt wechselt ein Part im produktbaum auswählt. in der view ist nun NUR das einzelne part einer baugruppe zu sehen. ich möchte nun den kompletten pfad dieses parts auslesen. bei der abfrage der objekt verbindungen steht nun das produkt drin. ich möchte aber das verknüpfte part wissen. ich hoffe ihr habt mein problem verstanden. nochmal kurz zusammen gefasst. es macht einen grundlegenden unterschied, ob man ein part separat öffnet und ableitet oder ob man ein part aus einer baugruppe heraus ableitet. folgender code funktioniert leider nur, wenn direkt auf ein part verlinkt wird: Code: Dim AnzViews As Double Dim TmpView 'As DrawingView Dim TmpPath As StringSet oDrwViews = oDrwSheets.ActiveSheet.Views AnzViews = oDrwViews.Count For i=3 To AnzViews Set TmpView = oDrwViews.Item(i) Set Doc = TmpView.GenerativeBehavior.Document TmpPath = Doc.Parent.FullName msgbox "Pfad: "&TmpPath Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 24. Jul. 2007 22:53 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Coolio75, wenn Du wirklich nur ein Part aus dem Product in die View abgeleitet hast, solltest Du dieses mit Code: Set Doc = TmpView.GenerativeLinks.FirstLink
bekommen. Wenn es mehrere sind, so musst Du die restlichen dann mittels ".NextLink()" abklappern, bis die Funktion einen Fehler liefert, d.h. es keine weitere verlinkte Datei mehr gibt. mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern [Diese Nachricht wurde von Lusilnie am 24. Jul. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 25. Jul. 2007 07:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Lusilnie, erst mal danke das du dich meinem problem annimmst. doch leider funktioniert dein code auch nicht. es besteht immer noch genau das gleiche problem. wenn man ein separat geöffnetes part ableitet oder direkt auf ein Produkt verlinkt, funktionieren beide macros. das problem entsteht wenn man aus einer baugruppe heraus ein part ableitet. die fehlermeldung die dann erscheint, lautet "TmpPath = Doc.Parent.FullName" "Das Objekt unterstützt diese eigenschaften oder methode nicht". versuchs doch bitte mal aus. eventuell kommst du auf eine lösung... So funktioniert es jedenfalls nicht: Code: Dim AnzViews As Double Dim TmpView As DrawingView Dim TmpPath As StringSet oDrwViews = oDrwSheets.ActiveSheet.Views AnzViews = oDrwViews.Count For i=3 To AnzViews Set TmpView = oDrwViews.Item(i) Set Doc = TmpView.GenerativeLinks.FirstLink TmpPath = Doc.Parent.FullName msgbox "Pfad: "&TmpPath Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 26. Jul. 2007 01:39 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Coolio75, dann versuch es mal mit folgender Erweiterung: Code: Set Doc = TmpView.GenerativeLinks.FirstLink Set Doc = TmpView.GenerativeLinks.NextLink() TmpPath = Doc.Parent.FullName
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 |
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 26. Jul. 2007 07:58 <-- editieren / zitieren --> Unities abgeben:
hey Lusilnie, nee, also das mit dem Code: Set Doc = TmpView.GenerativeLinks.FirstLink Set Doc = TmpView.GenerativeLinks.NextLink()
funktioniert überhaupt nicht. fehlermeldung "das verfahren nextlink ist fehlgeschlagen". egal ob ich direkt auf ein part verlinke oder auf ein part aus einer baugruppenstruktur. ich will mal kurz erklären wie man den pfad manuell abfragen kann. -rechte maustaste auf ansichtsrahmen (bzw. auf ansicht im baum) -objekt "vorderansicht" -verknüpfungen ändern nun erscheint ein fenster, in dem man sieht auf welches part verlinkt wird. wenn man eben parts aus der produktstruktur ableitet, sieht man NUR hier den link zum part. Lusilnie, wäre nett von dir wenn du mir weiter helfen könntest. so kompliziert kanns doch nicht sein!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 26. Jul. 2007 20:15 <-- editieren / zitieren --> Unities abgeben: Nur für Coolio75
Hallo Coolio75, sorry, das mit dem "FirstLink" funktioniert schon so, wie zuerst gedacht. Der Fehler liegt beim Parent, doch irgendwie hatte ich das gestern überlesen. Hier nun die (hoffentlich) funktionierende Codeänderung: Code: Set Doc = TmpView.GenerativeLinks.FirstLink TmpPath = Doc.ReferenceProduct.Parent.FullName
Nun sollte es aber funktionieren, ODER...? 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 |
Coolio75 Mitglied
Beiträge: 12 Registriert: 15.06.2007
|
erstellt am: 27. Jul. 2007 07:35 <-- editieren / zitieren --> Unities abgeben:
|