Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Anzeigeteil wechseln vermeiden / beschleunigen

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:  Anzeigeteil wechseln vermeiden / beschleunigen (1024 mal gelesen)
seiwi
Mitglied
Programmierer, Systembetreuer


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

Beiträge: 53
Registriert: 28.06.2005

Windows 7
NX 7.5 bis NX11
VB .Net, C#, C, GRIP, NXOpen, SNAP

erstellt am: 08. Mrz. 2017 11:28    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 Zusammen,

ich habe eine Frage bzw. ein Thema, welches bei der NXOpen-Programmierung immer wieder mal auftaucht.
Oft werden innerhalb einer Baugruppe mehrere Parts durchlaufen und dort wird dann etwas ausgeführt.
Meist ist dazu von NX die Vorraussetzung, dass man dabei das jeweilige Part als Anzeigeteil setzt.
(Beispiele für Aktionen: Layerschaltung ändern, Objekte auf Layer verschieben, ...)

1. Wie kann man das Thema Anzeigepart wechseln vermeiden / beschleunigen?
2. Was habt ihr für Erfahrungen mit diesem Thema?

Meine Ansätze waren dazu bisher:
- Einzelteile nicht doppelt behandeln
- Von Einzelteil zu Einzelteil springen und nicht immer zurück in die Baugruppe
- Für manche Aktionen reicht es aus ein Prt als Arbeitsteil (Workpart) zu setzen, welches nicht angezeigt wird...
  (theUFSession.Assem.SetWorkPartQuietly() theUFSession.Part.OpenQuiet(), ...)

Danke im Voraus...

Beste Grüße
Seiwi


 

------------------
Let's Rock... 

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: 08. Mrz. 2017 16:30    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 seiwi 10 Unities + Antwort hilfreich

Hallo Andreas,

das lässt sich m.E. nicht allgemein beantworten. Eine optimale Strategie ist vom jeweiligen Fall abhängig, d.h. was soll im Einzelteil gemacht werden ? Es gibt Methoden, denen das Part als Argument übergeben wird, ein Wechsel ist hier nicht notwendig. UF_OBJ_Cycle* als Beispiel. Dann gibt's Aktionen, die ein vollständig geladenes Teil voraussetzen, um z.B. an Feature-Infos zu kommen. Und dann gibt's auch noch die Methoden, die ausschliesslich mit dem DisplayedPart arbeiten. Also immer den jeweiligen Fall betrachten und zusehen, was am schnellsten läuft.

Daß man zuerst die Parts aufsammelt und nacheinander bearbeitet anstatt Komponente für Komponente zu öffnen ist offensichtlich, das Vermeiden unnötiger Zwischenschritte ebenso. Wenn keine Interaktion benötigt wird kann z.B. auch auf das UI verzichtet werden, das ist sicher auch schneller als mit grafischer Anzeige.

Gruß, Michael


------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit seltner als das "Bitte, Bitte".

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

seiwi
Mitglied
Programmierer, Systembetreuer


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

Beiträge: 53
Registriert: 28.06.2005

Windows 7
NX 7.5 bis NX11
VB .Net, C#, C, GRIP, NXOpen, SNAP

erstellt am: 08. Mrz. 2017 16: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 deine Antwort. Deine beschriebenen Erfahrungen habe ich auch so gemacht. Dass man für bestimmte Aktionen ins Part wechselt wird sich nicht vermeiden lassen, gerade bei Punkten, welche die Sichtbarkeit (also eigentlich das Grafikfenster) betreffen.

Ich hab den Thread eröffnet um evtl. noch weitere Optimierungen zu sammeln. Manchmal gibt es einfach einen guten Trick auf welchen man noch nicht gestoßen ist ;-)

Beste Grüße
Andreas

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: 08. Mrz. 2017 17:02    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 seiwi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von seiwi:
... einen guten Trick ...

... ein universelles Arzneimittel, das immer hilft ? Bei Erkältung, gebrochenen Knochen, Dünnpfiff, Alzheimer ... 

... würd' ich auch gerne kennen, gibt's aber sehr wahrscheinlich nicht.

MultiThreading oder das Arbeiten mit mehreren Sessions, wär' noch 'ne Idee. Hilft aber auch nicht, wenn immer wieder Eingaben benötigt werden.

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit seltner als das "Bitte, Bitte".

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



Projektleiter Automation (m/w/d)

Sind Sie bereit für eine neue Herausforderung? Als inno­va­tives Maschinenbau­unter­nehmen in den Bereichen Tampon­druck und Laser­markierung suchen wir Menschen, die sich neuen Aufgaben mit Engage­ment und tat­kräf­tigem Handeln stellen. Als mittel­stän­disches Familien­unter­nehmen bieten wir Ihnen Frei­räume, Ihre Ideen umzu­setzen und sich selbst weiter­zu­ent­wickeln. Wir sind Technologie­führer ...

Anzeige ansehenTeamleitung, Gruppenleitung
geraldb
Mitglied



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

Beiträge: 38
Registriert: 13.09.2008

erstellt am: 08. Mrz. 2017 20: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 Nur für seiwi 10 Unities + Antwort hilfreich

Sofern nach dem Programmstart keine Benutzerinteraktion erforderlich ist: die Grafikaktualisierung abschalten
Code:
UFSession.Disp.SetDisplay(UF_DISP_SUPPRESS_DISPLAY)

Sinnvollerweise wird das Programm in einem Try-Catch-Finally-Konstrukt ausgeführt und im abschließenden Finally neben der Unload-Option auch die Grafikaktualisierung wieder eingeschaltet

Code:
UFSession.Disp.SetDisplay(UF_DISP_UNSUPPRESS_DISPLAY)

Andernfalls hat man nach einem Absturz mit der laufenden Instanz ein Problem.

[Diese Nachricht wurde von geraldb am 08. Mrz. 2017 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