Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Block Styler mit NXOpen

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:  Block Styler mit NXOpen (3969 mal gelesen)
e.gilsdorf
Mitglied
Wissenschaftlicher Mitarbeiter


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

Beiträge: 46
Registriert: 15.02.2007

erstellt am: 15. Apr. 2011 10:18    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

Moin moin,

ich schlage mich seit gestern mit dem Block Styler herum.
Das Endziel ist es, eine Liste von Featuren in einer Listbox auszugeben.

Momentan scheitere ich aber daran, zur Laufzeit irgendetwas an diesem Dialog zu ändern.
Beispielsweise möchte ich den Blocknamen ändern.
Die Hilfe zeigt hier Beispiel mit Get und Set-Methoden für Properties, also


PropertyList dialogProps = theDialog.TopBlock.GetProperties();
dialogProps.SetString("Label", "Ein Block");;

Ich kann zwar die Werte auslesen und ändern (eine Textausgabe für Debuggen bestätigt die geänderten Werte in dialogProps),
der Dialog ändert sich jedoch nicht. Es scheint, als ob nach thedialog.Show() nichts mehr änderbar ist. Versuche ich die Werte vor dem show() zu ändern, bekomme ich eine Fehlermeldung wegen einer Null-Reference.

Hat das schon mal jemand geschafft?

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

e.gilsdorf
Mitglied
Wissenschaftlicher Mitarbeiter


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

Beiträge: 46
Registriert: 15.02.2007

erstellt am: 15. Apr. 2011 10:36    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

Okay. Für die listbox habe ich es jetzt zumindest geschafft, bei der Initialisierung die Werte zu setzen, bevor mit show() der Dialog angezeigt wird.

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: 15. Apr. 2011 13:04    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 e.gilsdorf 10 Unities + Antwort hilfreich

Hallo e.,

das Ändern von Werten geht prinzipiell auch bei offenem Dialog. Warum es in Deinem Fall nicht funktioniert, ist mir ein Rätsel. In VB sieht es in etwa so aus:

Control.GetProperties.SetString(Name, Wert)

Bei den Namen der Controls ist der Blockstyler m.W. etwas eigen, die können nicht ohne weiteres geändert werden.

Gruß, Michael

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

Hauki2905
Mitglied
Softwareentwicklung CAD-CAM


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

Beiträge: 113
Registriert: 03.02.2011

NX 7.5; 8.0; 8.5, 9.0, 10 auf Win 8.1 x64

erstellt am: 20. Apr. 2011 09:48    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 e.gilsdorf 10 Unities + Antwort hilfreich

hi,
könntest du eventuell noch kurz posten wie du es genau gemacht hast? das wäre sehr interessant zu wissen.
danke
Grüße
Hauki

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

gfx-toxic.de
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 20. Apr. 2011 10:00    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 e.gilsdorf 10 Unities + Antwort hilfreich

Also bei mir geht das so:

Code:

                    private NXOpen.BlockStyler.UIBlock ergebniss;// Block type: Label
                    NXOpen.BlockStyler.PropertyList prop_label;
                    prop_label = ergebniss.GetProperties();
                    prop_label.SetString("huhu");

bzw.

Code:

                    prop_back = back.GetProperties();
                    prop_back.SetLogical("Enable", true);

------------------
Gruß Matthias
------------------------------------
ICQ: 163190295

[Diese Nachricht wurde von gfx-toxic.de am 20. Apr. 2011 editiert.]

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

e.gilsdorf
Mitglied
Wissenschaftlicher Mitarbeiter


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

Beiträge: 46
Registriert: 15.02.2007

erstellt am: 21. Apr. 2011 14:33    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

Ich habe mir im BlockStyler eine C# Klasse Liste.cs und die Liste.dlx Datei erzeugt.
Der Dialog enthält eine Liste, die ich mit Werten füllen möchte (z. B. Feature Liste).

Das Problem ist nun, diese Liste zu füllen. Für den ersten Versuch habe ich das direkt in Liste.cs codiert.

Wo schreibe ich diese Zuweisungen hin?


group0 = (NXOpen.BlockStyler.UIBlock)theDialog.TopBlock.FindBlock("group0");
list_box0 = (NXOpen.BlockStyler.ListBox)theDialog.TopBlock.FindBlock("list_box0");

PropertyList dialogProps = list_box0.GetProperties();
dialogProps.SetStrings("ListItems",stringArray);

Bim Erzeugen einer Instanz von Liste.cs werden im Konstruktor die Callback Handler erzeugt.


theDialogName = "Liste.dlx";
theDialog = theUI.CreateDialog(theDialogName);

theDialog.AddApplyHandler(new NXOpen.BlockStyler.BlockDialog.Apply(apply_cb));
theDialog.AddOkHandler(new NXOpen.BlockStyler.BlockDialog.Ok(ok_cb));
theDialog.AddUpdateHandler(new NXOpen.BlockStyler.BlockDialog.Update(update_cb));
theDialog.AddInitializeHandler(new NXOpen.BlockStyler.BlockDialog.Initialize(initialize_cb));
theDialog.AddDialogShownHandler(new NXOpen.BlockStyler.BlockDialog.DialogShown(dialogShown_cb));


Wenn die Zuweisungen vor "initialize_cb" auftauchen, bekomme ich eine NullReferenceException. Wenn sie nach Dialog.Show auftaucht, wird der Dialog nicht entsprechend geändert.
Bisher hat es nur funktioniert, wenn ich die Anweisung direkt in die Methode initialize_db geschrieben habe, also

public void initialize_cb()
    {
        try
        {
            group0 = (NXOpen.BlockStyler.UIBlock)theDialog.TopBlock.FindBlock("group0");
            list_box0 = (NXOpen.BlockStyler.ListBox)theDialog.TopBlock.FindBlock("list_box0");
          

            PropertyList dialogProps = list_box0.GetProperties();
            dialogProps.SetStrings("ListItems",stringArray);
  
           
        }
        catch (Exception ex)
        {
            //---- Enter your exception handling code here -----
            theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
        }
    }

Viele Grüße und frohe Ostern,
Erik

[Diese Nachricht wurde von e.gilsdorf am 21. Apr. 2011 editiert.]

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



Entwicklungsingenieur (m/w/d) für den Maschinen- und Anlagenbau

Packaging your ideas...
Hastamat gehört zu den weltweit führenden Herstellern von Verpackungsmaschinen und -anlagen. Wir bieten hochentwickelte Lösungen zum Ausrichten, Ordnen, Zählen und Wiegen von Food- und Non-Food-Produkten. Moderne Fertigungsmethoden, ein umfassendes Qualitätsmanagement und qualifizierte Mitarbeiter gründen das Fundament für unsere technisch ausgereiften und hochwertigen Maschinen....

Anzeige ansehenEntwicklung
Hauki2905
Mitglied
Softwareentwicklung CAD-CAM


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

Beiträge: 113
Registriert: 03.02.2011

NX 7.5; 8.0; 8.5, 9.0, 10 auf Win 8.1 x64

erstellt am: 26. Apr. 2011 09:46    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 e.gilsdorf 10 Unities + Antwort hilfreich

hi,
genau in den inizialise_cb müssen die auch rein.
wenn du dann konkret mit der liste arbeiten möchtest (sachen rein tun etc) empfehle ich dir, das im dialogshown_cb zu machen.
Grüße
Hauki

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