| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ComponentOccurrence.Visible funktioniert nicht (2453 mal gelesen)
|
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 09. Dez. 2010 10:05 <-- editieren / zitieren --> Unities abgeben:
Halo Gemeinde, der untensetehende Code funktioniert nicht, es kommt auch zu keiner Fehlermeldung und der Wert von "opart.Visible" ist nach dem ändern auch richtig nur auf dem Bildschirm tut sich nichts, ich kann das Part nicht mittels vba unsichtbar machen Code: Dim oassdoc As AssemblyDocument Set oassdoc = thisapplication.ActiveDocument Dim oass As ComponentOccurrence Set oass = oassdoc.ComponentDefinition.Occurrences.ItemByName("TaktplatzBG_01:1") Dim oassdef As ComponentDefinition Set oassdef = oass.Definition Dim sichtbar As Boolean sichtbar = False i = 1 Dim opart As ComponentOccurrence Set opart = oassdef.Occurrences.item(i) opart.Visible = sichtbar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 09. Dez. 2010 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan.Geissler
|
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 09. Dez. 2010 10:40 <-- editieren / zitieren --> Unities abgeben:
Objektorientiert nee, möchte noch ne Ebene weiter runter und das funktioniert dann nicht mehr . . . quasi so (jetzt mal unlustig) Code:
Dim oAsm As Inventor.AssemblyDocument Set oAsm = ThisApplication.ActiveDocument oAsm.ComponentDefinition.Occurrences.ItemByName("TaktplatzBG_01:1").Definition.Occurrences.item(1).Visible = False
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 10. Dez. 2010 08:10 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan.Geissler
Hallo Wenn du in einer Unterbaugruppe ein Bauteil unsichtbar schalten willst, mußt du ein ProxyObjekt erzeugen. Macht Inventor auch, man sieht nur nix davon. Ich glaube so in etwa, wobei das nur in der ersten Unterbaugruppenebene funktionieren dürfte. Code: Sub Unsichtbar() Dim oAsm As Inventor.AssemblyDocument Set oAsm = ThisApplication.ActiveDocument Dim oOccProxy As ComponentOccurrenceProxy Call oAsm.ComponentDefinition.Occurrences.ItemByName("TaktplatzBG_01:1").CreateGeometryProxy(oAsm.ComponentDefinition.Occurrences.ItemByName("TaktplatzBG_01:1").Definition.Occurrences.I tem(1), oOccProxy) oOccProxy.Visible = False End Sub
------------------ MfG RK EDIT: Geschreibsel mal in verständliches Deutsch übersetzt [Diese Nachricht wurde von rkauskh am 10. Dez. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 10. Dez. 2010 09:49 <-- editieren / zitieren --> Unities abgeben:
DANKE! Das erstllen des Proxy hat das Problem gelöst. Bei Linien und Ebenen denke ich immer dran aber diesmal bin ich nicht auf die Idee gekommen. Ist ja eigentlich eine Grundlegende herangehensweise, das ich Bauteile oder Baugruppen oder Ebenen etc. aus Unterbaugruppen zu einem Proxy machen muss. Um in die zweite Unterbaugruppe zu gelangen müsste ich dann ein Proxy von der zweiten Unterbaugruppe auf Ebene er ersten Unterbaugruppe erstellen, und dann von diesem Proxy wiederrum ein Proxy auf Ebene der Hauptbaugruppe. Vielen Dank. Stefan [Diese Nachricht wurde von Stefan.Geissler am 10. Dez. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |