Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Section Line editieren

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 NX
Autor Thema:  Section Line editieren (1842 mal gelesen)
Zoechi
Mitglied
Software Entwickler


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

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: 09. Apr. 2009 08:58    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

Grüße euch,

ich möchte mit meinem Programm (dll) die Farbe aller Section Lines auf einer Zeichnung ändern. In der Open C Referenz habe ich keine Funktion dazu gefunden.
UF_OBJ_set_color setzt zwar eine Farbe auf das Section-Line-Object und kann sie auch mit UF_OBJ_ask_disp_prop wieder abfragen, aber die dargestellte Farbe der Section-Line bleibt unverändert. Weiß jemand von euch eine Funktion dafür mit Open C?

Mit NX6 und Open C++ bin ich über ein Journal auf die Funktionen zum Editieren gekommen und kann jetzt alle Section Lines umfärben. Leider benötige ich das Programm für NX4 und beim Compilieren können die Drawings_SectionLine***.hxx-Datein nicht gefunden werden. Compilieren mit NX6-Dateien funktioniert, anwenden in NX6 funktionier auch, nicht aber mit NX4.

In der Open C++ Referenz für NX4 habe ich nichts über Section Lines gefunden. Sind die Funktionen dafür vorhanden und ich habe sie nur nicht gefunden, oder werden sie bei NX4 noch nicht unterstützt?

Mein Code für NX6 sieht so aus:

Code:

#include "TestA.h"

#include <uf_defs.h>
#include <NXOpen/NXException.hxx>
#include <NXOpen/Session.hxx>
#include <NXOpen/Builder.hxx>
#include <NXOpen/DraftingManager.hxx>
#include <NXOpen/Drawings_SectionLineCollection.hxx>
#include <NXOpen/Drawings_SectionLineStyleBuilder.hxx>
#include <NXOpen/Drawings_SteppedSectionLine.hxx>
#include <NXOpen/NXObject.hxx>
#include <NXOpen/Part.hxx>
#include <NXOpen/PartCollection.hxx>
#include <NXOpen/SelectObject.hxx>
#include <NXOpen/SelectTaggedObject.hxx>
#include <NXOpen/Session.hxx>
#include <NXOpen/TaggedObject.hxx>
#include <NXOpen/View.hxx>
#include <NXOpen/ViewCollection.hxx>
#include <NXOpen/ColorManager.hxx>

using namespace NXOpen;

CTestA::CTestA(void)
{
}

CTestA::~CTestA(void)
{
}

void CTestA::nobiggrin It()
{
Session *theSession = Session::GetSession();
Part *workPart(theSession->Parts()->Work());
Part *displayPart(theSession->Parts()->Display());

Session::UndoMarkId markId1;
markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Start Edit Section Lince Color");

Drawings::SectionLineCollection::iterator sxiterator = workPart->Drafting()->SectionLines()->begin();
while(sxiterator != workPart->Drafting()->SectionLines()->end())
{
Drawings::SectionLine* sxline = sxiterator.operator*();

Drawings::SectionLineStyleBuilder *styleBuilder;
styleBuilder = workPart->Drafting()->SectionLines()->CreateSectionLineStyleBuilder(sxline);
styleBuilder->SetColor(workPart->Colors()->Find("Brown"));
NXObject* nxObj;
nxObj = styleBuilder->Commit();
styleBuilder->Destroy();

sxiterator.operator++(1);
}

theSession->SetUndoMarkName(markId1, "End Edit Section Lince Color");
}


Vielleicht kann mir von euch jemand weiterhelfen, wie das mit NX4 zu realisieren wäre?

fg
Thomas

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 09. Apr. 2009 10:31    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 Zoechi 10 Unities + Antwort hilfreich

Hallo Thomas,

die verschiedenen Builder werden nach und nach in die NXOpen API integriert. Daher gehe ich mal davon aus, daß es in der NX4 noch keinen CreateSectionLineStyleBuilder gab. Evtl. findet sich eine Alternative in der NXOpen.UF - Klasse. Oder such' mal in der .net-ref nach "section".

Gruß, Michael

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

Zoechi
Mitglied
Software Entwickler


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

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: 09. Apr. 2009 13:42    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

Hallo Michael,

danke für den Tipp, bin aber leider nicht fündig geworden. Mit NX4 und .net habe ich noch nicht gearbeitet. Ich brauche einen C oder C++ Code um ihn in das gesamte Programm einbauen zu können (das Editieren der Section Line ist nur ein kleiner Teil), und denke nicht, das ich C# dazumischen kann.

Habe aber für C etwas gefunden:
Ich starte UF_OBJ_cycle_objs_in_part und suche nach UF_section_line_type. Ich setze die Farbe für das Object wieder mit UF_OBJ_set_color (wie zuvor).
--> Die Farbe der Section Line verändert sich nicht, ABER wenn ich einen Doppelklick auf die Section Line mache, sehe ich dass meine Farbe ausgwählt ist, und erst wenn ich dann mit OK oder Apply bestätige ändert sich meine Farbe!
Habe ich etwas vergessen? Fehlt mir so was ähnliches wie "styleBuilder->Commit();" ?

Kann jetzt auch die Farbe der einzelen Segmente der Section Line ändern:
Mit UF_DRAW_ask_sxline_type bekomme ich den Typ der Section Line zurück und weiß dadurch mit welcher Funktion ich die Daten abrufen kann (in meinem Fall mit UF_DRAW_ask_simple_sxline). Damit erhalte ich meine Segmente und bekomme mit UF_DRAW_ask_sxline_sxseg(sxseg_tags[i], &sxseg_info, &curve_tag, &object) meine Curve-Tags denen ich dann mit UF_OBJ_set_color eine Farbe zuweisen kann. Die Farbe ändert sich dann auch sofort, nach Abschluss dieser Funktion.
--> wäre aber nicht notwendig, wenn die zuvor erwähnte Methode funktionieren würde. Komm ich da irgendwie drum herum?

fg
Thomas

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 11. Apr. 2009 12: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 Zoechi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Zoechi:
Habe ich etwas vergessen? Fehlt mir so was ähnliches wie "styleBuilder->Commit();" ?

Hallo Thomas,

vielleicht wird die Farbe nach einem NXOpen.UF.Disp.Refresh oder *.RegenerateDisplay sichtbar ?

Gruß, Michael 

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

Zoechi
Mitglied
Software Entwickler


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

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. Apr. 2009 08:23    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

Hallo Michael,

habe die Funktionen UF_DISP_refresh() und UF_DISP_regenerate_display() versucht --> hat leider keine Auswirkung auf das Setzen der Farben. Auch wenn ich den Part abspeichere und ihn neu öffne, habe wird mir immer noch die alte Farbe angezeigt, obwohl in den Eigenschaften die neue Farbe angezeigt wird. Denke es liegt da an etwas anderem. Vielleicht auch ein kleiner Bug im API...

fg
Thomas

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



Pflichtpraktikum - Gebäudemanagement / Facility Management & Energieversorgungskonzepte - REF54013M

Continental entwickelt wegweisende Technologien und Dienste für die nachhaltige und vernetzte Mobilität der Menschen und ihrer Güter. Das 1871 gegründete Technologieunternehmen bietet sichere, effiziente, intelligente und erschwingliche Lösungen für Fahrzeuge, Maschinen, Verkehr und Transport. Continental erzielte 2022 einen Umsatz von 39,4 Milliarden Euro und beschäftigt aktuell rund 200.000 Mitarbeiterinnen und Mitarbeiter in 57 Ländern und Märkten....

Anzeige ansehenGebäude-, Versorgungs-, Sicherheitstechnik
mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 14. Apr. 2009 15:16    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 Zoechi 10 Unities + Antwort hilfreich

Hallo Thomas,

eine Idee hab' ich noch: Unter http://ww3.cad.de/foren/ubb/Forum442/HTML/000309.shtml#000005  gab's schon mal Probleme mit der Objektfarbe, damals ging's allerdings um Sketch- Linien. Vielleicht trifft auf SectionLines ja was ähnliches zu ??

Gruß, Michael

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