| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Komponentenanordnung unterdrücken? (1224 mal gelesen)
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
  
 Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 04. Dez. 2013 10:33 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich hab da mal wieder ne Frage: Gibt es eine Möglichkeit eine Komponentenanordnung zu unterdrücken? Unsichtbar schalten geht ohne Probleme, nur wenn ich statt "visible" "suppress" eingebe, dann läuft es nicht mehr und ich bekomme eine Fehlermeldung: Run-time error '438': Object doesn't Support this property or method.
Code: Private Sub unterdrücken()Dim oDoc As AssemblyComponentDefinition Set oDoc = ThisApplication.ActiveDocument.ComponentDefinition Dim oKompanord As OccurrencePattern Set oKompanord = oDoc.OccurrencePatterns.Item("Komponentenanordnung 11:1") oKompanord.Visible = True End Sub
Vielleicht weiß ja jemand eine Möglichkeit, dass es sich doch unterdrücken lässt. Gruß Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
  
 Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 04. Dez. 2013 15:29 <-- editieren / zitieren --> Unities abgeben:         
Naja, offensichtlich gibt es keine Möglichkeit, eine Komponentenanordnung direkt zu unterdrücken. Ich habe es mittlerweile so gelöst, dass ich die Elemente in der Anordnung einzeln unterdrücke. So geht es ohne Probleme. Gruß Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GeorgK Mitglied
  
 Beiträge: 619 Registriert: 06.06.2001
|
erstellt am: 07. Jan. 2014 14:44 <-- editieren / zitieren --> Unities abgeben:          Nur für Chris 31
So sollte es gehen: Dim oDoc As AssemblyDocument oDoc = ThisApplication.ActiveDocument 'reference the pattern in the assembly Dim oPattern As OccurrencePattern oPattern = oDoc.ComponentDefinition.OccurrencePatterns.Item("Component Pattern 1:1") 'oPattern = oDoc.ComponentDefinition.OccurrencePatterns.Item(1) 'Unterdrücke das 4. Element Dim oElement As OccurrencePatternElement oPattern.OccurrencePatternElements.Item(4).Suppressed=True Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Higlav Mitglied Konstrukteur
 Beiträge: 8 Registriert: 30.09.2012 Win10 (64-bit) CPU: Intel Core 2 Duo CPU E7500 2.93GHz RAM: 4GB GK: Nvidia GeForce GTX 550 ti
|
erstellt am: 08. Jan. 2014 14:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Chris 31
Hallo. Ich wollte nur anmerken, dass das Ganze auch kürzer geht: Code: ThisApplication.ActiveDocument.ComponentDefinition.OccurrencePatterns.Item("Component Pattern 1:1").OccurrencePatternElements.ForEach(Sub(x) x.Suppressed=True)
Oder als schöne Funktion: Code: ''' <summary> ''' Unterdrückt die angegebene Komponentengruppe und gibt im Erfolgsfall True zurück. ''' </summary> ''' <param="doc">Dokument, in dem die Komponentengruppe unterdrückt werden soll.</param> ''' <param="name">Name der zu unterdrückenden Komponentengruppe</param> Public Function SuppressComponentgroup(doc As AssemblyDocument, name$) As Boolean If Not doc.ComponentDefinition.OccurrencePatterns.Contains(name) Then Return False doc.ComponentDefinition.OccurrencePatterns(name).OccurrencePatternElements.ForEach(Sub(x) x.Suppressed=True) Return True End Function
PS: Ungetestet. Falls es sich nicht um IList(Of T) handelt, einfach vorher noch ".ToList" einfügen und weitermachen...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |