Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  ComponentOccurrence.Visible funktioniert nicht

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Stefan.Geissler an!   Senden Sie eine Private Message an Stefan.Geissler  Schreiben Sie einen Gästebucheintrag für Stefan.Geissler

Beiträge: 13
Registriert: 22.04.2008

erstellt am: 09. Dez. 2010 10:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 09. Dez. 2010 10:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan.Geissler 10 Unities + Antwort hilfreich

Hallo Stefan,

du hast da sehr viele unnötige (lustige  ) Sachen drin... Im Prinzip reicht es:

Code:

Sub Unsichtbar()
    Dim oAsm As Inventor.AssemblyDocument
    Set oAsm = ThisApplication.ActiveDocument
   
    oAsm.ComponentDefinition.Occurrences.ItemByName("TaktplatzBG_01:1").Visible = False
End Sub


------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stefan.Geissler
Mitglied
Student


Sehen Sie sich das Profil von Stefan.Geissler an!   Senden Sie eine Private Message an Stefan.Geissler  Schreiben Sie einen Gästebucheintrag für Stefan.Geissler

Beiträge: 13
Registriert: 22.04.2008

erstellt am: 09. Dez. 2010 10:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 10. Dez. 2010 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan.Geissler 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Stefan.Geissler an!   Senden Sie eine Private Message an Stefan.Geissler  Schreiben Sie einen Gästebucheintrag für Stefan.Geissler

Beiträge: 13
Registriert: 22.04.2008

erstellt am: 10. Dez. 2010 09:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz