| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Farbpalette tauschen (3115 mal gelesen)
|
Zoechi Mitglied Software Entwickler
Beiträge: 28 Registriert: 03.07.2008 NX 4.0.4.2 MP9, MS Visual Studio 2005, NX 4.0 Open C und MFC
|
erstellt am: 14. Dez. 2009 16:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, möchte gerne die Farbpalette (*.cdf, Color Definition File) von mehreren Parts automatisiert tauschen. Den manuellen Weg mit "Part öffnen" -> "Preferences" -> "Color Palette" möchte ich mir über die tausende von Parts sparen. Habe die "NX Open C"-Hilfe schon durchforstet, habe aber nichts gefunden. Auch das Journal (C++, C#) schreibt nichts mit. Nicheinmal ein Makro schafft diesen Schritt. Hat jemand von euch Erfahrung mit dem tauschen der Farbpalette? Gibt es eine Funktion in NX Open (egal ob C, C++ oder C#) mit der ich die aktuelle Farbpalette abfragen und durch die neue tauschen kann? Ich hoffe ihr könnt mir dabei helfen. Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seiwi Mitglied Programmierer, Systembetreuer
Beiträge: 53 Registriert: 28.06.2005 Windows 7 NX 7.5 bis NX11 VB .Net, C#, C, GRIP, NXOpen, SNAP
|
erstellt am: 15. Dez. 2009 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für Zoechi
Hallo, in den Calls von UG / NX findet sich folgende Lösung. Ausschnitt: Code: static void load_color_definition_file(char *cdf_spec) { int ii; double rgb[3]; char a_line[MAX_LINE_SIZE+1], color_name[UF_DISP_MAX_NAME_SIZE+1], *ptr; FILE *cdf; if ((cdf = fopen(cdf_spec, "r")) != NULL) { /* Read 4 header lines */ for (ii = 0; ii < 4; ii++) fgets(a_line, MAX_LINE_SIZE, cdf); ii = 0; while ((fgets(a_line, MAX_LINE_SIZE, cdf)) != NULL) { strncpy(color_name, a_line, UF_DISP_MAX_NAME_SIZE); color_name[UF_DISP_MAX_NAME_SIZE] = '\0'; strip_trailing_spaces(color_name); ptr = a_line + 32; rgb[0] = atof(ptr); ptr = ptr + 11; rgb[1] = atof(ptr); ptr = ptr + 11; rgb[2] = atof(ptr); UF_CALL(UF_DISP_set_color(ii, UF_DISP_rgb_model, color_name, rgb)); ii++; } fclose(cdf); UF_CALL(UF_DISP_load_color_table()); } }
Vielleicht hilfts ja weiter!? ------------------ Let's Rock... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zoechi Mitglied Software Entwickler
Beiträge: 28 Registriert: 03.07.2008 NX 4.0.4.2 MP9, MS Visual Studio 2005, NX 4.0 Open C und MFC
|
erstellt am: 15. Dez. 2009 14:44 <-- editieren / zitieren --> Unities abgeben:
Hallo seiwi, Danke! Das hat mir schon mal viel weiter geholfen. Anscheinend wird im Part selbst nicht gespeichert, welches Color Definition File hinterlegt ist, sondern nur der Farbname und die Farbwerte (RGB,...) hinter dem Index. So ist zumindest mein Rückschluss, hat jemand von euch eine andere Erfahrung damit gemacht? @seiwi: Darf ich fragen wo du diese Lösung her hast? Ist das die gleiche Funktion die bei "Preferences" -> "Color Palette" --> "Open CDF" ausgeführt wird? Das Auslesen und Ändern der Farbpalette klappt jetzt soweit, aber eine weitere Frage habe ich noch: Im CDF sind noch die Inizes der Favourite Colors enthalten. Den Indizes kann ich also aus der Datei auslesen, aber wie kann ich diese dann mit NX Open setzen? Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UdoMM Mitglied Senior Consultant CAX
Beiträge: 270 Registriert: 02.07.2004 NX1 ... Continuous I-deas MS6 ... NXI6.1m1 (15) TC12
|
erstellt am: 25. Jun. 2010 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für Zoechi
Hallo Zoechi, ich stehe gerade vor der selben Anforderung: muss eine *.cdr-Datei laden. Nun suche ich ein Skript in vb.net dafür... Wer kann mir da evtl. weiterhelfen? Vielen Dank! ------------------ Gruß UdoMM : <>< 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. Jun. 2010 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für Zoechi
Hallo Udo, zum direkten Einlesen eines CDF's gibt's m.W. keine API- Funktion. Daher muss, wie im obigen Beispiel, die einzelne Farbe umgestellt (UF_DISP_set_color) und anschließend mit UF_DISP_load_color_table angezeigt werden. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UdoMM Mitglied Senior Consultant CAX
Beiträge: 270 Registriert: 02.07.2004 NX1 ... Continuous I-deas MS6 ... NXI6.1m1 (15) TC12
|
erstellt am: 25. Jun. 2010 14:14 <-- editieren / zitieren --> Unities abgeben: Nur für Zoechi
|
master001 Mitglied Projektingenieur
Beiträge: 454 Registriert: 25.02.2005
|
erstellt am: 28. Jun. 2010 18:48 <-- editieren / zitieren --> Unities abgeben: Nur für Zoechi
Moin Euch allen, gab ich nichtmal einen Haken den man setzen konnte in den Standards, dass die Farbpallete nicht vom Part sondern von den Anwenderstandards genommen werden soll? oder galt das nur für "Datei neu"? Vielleicht hats ja geholfen Gruß Patric ------------------ Internet: http://www.imtech.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Werkstudent BIM (m/w/d) für API-Programmierungen (Tekla Structures, Inventor) | GOLDBECK?realisiert zukunftsweisende Immobilien in Europa. Wir verstehen Gebäude als Produkte und bieten alle Leistungen aus einer Hand: vom Design über den Bau bis zu Services im Betrieb. Aktuell beschäftigt unser Familienunternehmen mehr als 12.000 Mitarbeitende an über 100 Standorten bei einer?Gesamtleistung von über 6 Mrd. Euro. Unser Anspruch ?building?excellence? steht dabei für Spitzenleistungen ... | Anzeige ansehen | Wirtschaftsinformatik |
|
Zoechi Mitglied Software Entwickler
Beiträge: 28 Registriert: 03.07.2008 NX 4.0.4.2 MP9, MS Visual Studio 2005, NX 4.0 Open C und MFC
|
erstellt am: 29. Jun. 2010 08:00 <-- editieren / zitieren --> Unities abgeben:
Grüß dich master001, in den customer defaults kannst du unter Gateway\Visualization\Color Palette eine Farbpalette einstellen, mit der, wie du sagst, ein neuer Part erstellt wird (mit "blank" ab NX 5). Die Farbpalette eines bereits bestehenden Parts kann man dann nur bei offenem Part über die Menüleiste unter Preferences\Color Palette ändern. Eine API-Funktion, um die Farbpalette als Ganzes einzulesen, gibt es leider nicht. Es funktioniert nur so, wie mseufert weiter oben gesagt hat. Zum Setzen der Favouriten habe ich bis jetzt noch überhaupt keine Funktion gefunden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |