| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Komponentenfarbe zurücksetzen (10562 mal gelesen)
|
mecteg Mitglied Dipl.-Ing.
Beiträge: 13 Registriert: 17.02.2005
|
erstellt am: 21. Mai. 2010 10:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe die Komponenten (nicht die Volumenkörper!)einer Baugruppe per Programm eingefärbt. Nun möchte ich diese Farbzuweisung wieder löschen. Wichtig hierbei ist, ich will keine Farben zuweisen sondern die ursprüngliche Komponentenfarbe wieder haben. UNDO ist keine Option da zwischen dem einfärben und dem zurücksetzen Interaktiv eingegriffen werden soll. Interaktiv funktioniert es wie folgt: (1) Einfärben: - Komponente im Baugruppennavigator selektieren - Menü BEARBEITEN \ OBJEKT DARSTELLUNG (STRG+J) - Dialog erscheint, FARBE ändern und mit OK OK zuweisen (2) Färbung zurücksetzen: - Komponente im Baugruppennavigator selektieren - Menü BEARBEITEN \ EIGENSCHAFTEN (rechte Maustaste geht auch) - Dialog, Reiter BAUGRUPPE - den Haken bei SPEZIELLE KOMPONENTENFARBE entfernen und OK Interessant ist das die vorherige Farbabfrage z.B. über UF_OBJ_ask_display_properties eine Farbennummer zurückliefert, die aber nichts mit der angezeigten Farbe zu tun hat. Eine anschließende Zuweisung dieser Farbe z.B. mit UF_OBJ_set_color ergibt eine weiter Einfärbung mit einer völlig neuen Farbe. NX 6.0.4.3 Lösungen in jeder API (Open, .NET, ...) jedoch nicht in GRIP würden mir helfen, kurzum HILFE!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 21. Mai. 2010 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für mecteg
|
mecteg Mitglied Dipl.-Ing.
Beiträge: 13 Registriert: 17.02.2005
|
erstellt am: 21. Mai. 2010 21:07 <-- editieren / zitieren --> Unities abgeben:
Hallo mseufert, habe es ausprobiert, die Warnungen und Beschreibungen scheinen zu meinem Problem zu passen. Einzig die Ausführung zeigt nicht das gewünschte Ergebnis. Interaktiv: Teilebereinigung, Komponentenanzeige, REDUNDANTE ÄNDERUNGEN ENTFERNEN/ALLE ÄNDERUNGEN ENTFERNEN => Komponenten bleiben eingefärbt, Haken in den Eigenschaften weiterhin gesetzt Programm: UF_PART_cleanup_occurrences - Removes redundant changes in all occurrences having same display properties as their prototypes und UF_PART_cleanup_hwo_force_demoting - Removes changes from all occurrences even if their display properties are different from their prototypes. Beware UF_PART_cleanup_hwo_force_demoting is mutually exclusive with UF_PART_cleanup_occurrences. => Komponenten bleiben eingefärbt, Haken in den Eigenschaften weiterhin gesetzt Habe anschließend die Anzeige aktualisiert, regenriert, ... Die Baugruppe gespeichert, NX neu gestartet und die Baugruppe geöffnet, ... Nichts, der Haken ist noch immer gesetzt und die Komponenten eingefärbt. Gruß Thorsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 25. Mai. 2010 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für mecteg
Hallo Thorsten, wenn's so nicht funktioniert, fallen mir noch zwei Dinge ein: Zugriff auf die Objektfarbe: Das dürfte allerdings schon daran scheitern, daß es keine Color.null oder z.B. Color = -1 gibt. Das hast Du ja schon festgestellt. Eine (kleine) Hoffnung gibt's aber auch hier noch, ist aber mit etwas Arbeit verbunden. Wenn Du mal versuchst, das Objekt herauszufinden, das interaktiv geändert wurde, findet sich dort evtl. eine Lösung. An der Komponente selbst die Objektfarbe zu ändern, hast Du ja schon versucht, bringt nichts. Daher ist's evtl. ein anderes Objekt (Prototype bei Occurences ?), das die Info speichert. Oder es gibt, ähnlich wie bei Sketch- Objekten neben der Objektfarbe eine "Displayed Color" ? Die zweite Idee, gerne auch Holzhammer genannt : a) Komponente entfernen und wieder neu einfügen, oder b) mit Substitute versuchen, die Komponente durch sich selbst zu ersetzen. Das dürfte gegenüber a) weniger Verluste bei Referenzen etc. bedeuten, wenn's überhaupt funktioniert. Mehr fällt mir im Moment nicht ein. Evtl. weiß ja die Siemens- Hotline mehr ? Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mecteg Mitglied Dipl.-Ing.
Beiträge: 13 Registriert: 17.02.2005
|
erstellt am: 26. Mai. 2010 12:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, herzlichen Dank für die weiteren Ideen. Jetzt ist die Anforderung bezüglich einer dazwischenliegenden Interaktion zurückgeschraubt worden. Habe nun mit UNDO gearbeitet und bin auf neue/andere Probleme gestoßen. Ich mach mal einen TECHNICAL REQUEST bei Siemens bezüglich des HAKENs (SPEZIELLE KOMPONENTENFARBE) und PARTCLEANUP auf. Falls ich was interessantes zurückbekomme, ergänze ich hier. Gruß, Thorsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 26. Mai. 2010 13:08 <-- editieren / zitieren --> Unities abgeben: Nur für mecteg
|
master001 Mitglied Projektingenieur
Beiträge: 454 Registriert: 25.02.2005
|
erstellt am: 26. Mai. 2010 21:50 <-- editieren / zitieren --> Unities abgeben: Nur für mecteg
Hallo mecteg, warum setzt Du nicht die Voreinstellungen für Farbe der Volumenkörper nach dem erstellen Deines Parts auf die gewünschte Farbe? Eine andere Alternative ist du blendest alle untergeordneten Parts aus, bevor die Volumenkörper einfärbst. Wir hier haben für unsere Systemfarben Skripte, die alle Volumenkörper innherhalb des aktiven Parts einfärben und im Anschluss die Voreinstellungen des Parts für Volumenkörper auf die entsprechende Farbe ändern. Für Routingkörper gibt es noch einen vierten Ansatz: Sub Main() lw.Open() For Each OBJ As Routing.Stock In s.Parts.Work.RouteManager.Stocks() lw.WriteLine("Found stock object") Dim myStockData As Routing.StockData = OBJ.GetStockData() ' All three of these methods work. ' ' Uncomment any one of the following three lines ' to see a demonstration of that method. myStockData.SetCharacteristic("COLOR", "Blue") 'myStockData.SetCharacteristic("COLOR", "255,255,0") 'Yellow 'myStockData.SetCharacteristic("COLOR", "108") 'Dark Faded Green OBJ.ColorStock() Next End Sub Mehr hab ich zur Zeit nicht in der Schublade...
Viel Erfolg Gruß Patric ------------------ Internet: http://www.imtech.de [Diese Nachricht wurde von master001 am 27. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Architekt (m/w/d) | Wir betreiben seit über 30 Jahren professionelles Immobilienmanagement von Wohn- und Gewerbeimmobilien. Unser Schwerpunkt liegt dabei in der Projekt- und Bestandsentwicklung sowie dem Bestandsmanagement. Zur Verstärkung unseres Teams suchen wir schnellstmöglich eine/n aufgeschlossene/n und qualifizierte/n ... | Anzeige ansehen | Architektur |
|
eineisbaer Mitglied CAD-Support
Beiträge: 205 Registriert: 10.02.2005 NX9.025 / Agile 6.12 Win7 64 Enterprise Dell
|
erstellt am: 31. Mai. 2010 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für mecteg
es geht ganz ohne Programmieren, wenn die in der Objektdarstellung veränderten Objekte Bestandteil einer verbauten Komponente sind : Komonente speichern unter und anschließend Komponente ersetzten auf das Element vor speichern unter. Beim Ersetzen werden alle redundanten Änderungen entfernt, also Farbe Linienstärke, Muster.... schöne Grüße ! ------------------ der Kopf ist rund, damit das Denken die Richtung ändern kann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |