Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Ein Problem mit DemandValue?

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:  Ein Problem mit DemandValue? (1833 mal gelesen)
rhonanpaldur
Mitglied
Dipl.-Ing. MB, Druckmaschinen


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

Beiträge: 76
Registriert: 30.10.2007

NX 3.0.3
NX 5.0.2

erstellt am: 24. Jan. 2008 09:07    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!

Mit angehängtem Code öffne ich ein Teil, erzeuge darin Inhalt und speichere es dann wieder. Mit demandValue sollte das auch in genau der Reihenfolge passieren. Beim Ausführen sehe ich aber in der Leiste mit den Meldungen, das NX erst öffnet, dann speichert und dann den Inhalt generiert.
Das führt dazu, dass ich die Parts danach öffnen kann, den korrekten Inhalt sehe, aber wenn ich sie schließen will gefragt werde, ob ich die Änderungen speichern möchte. Wenn ich das tue, erhöht sich die Dateigröße und ich kann sie später jederzeit wieder öffnen.
Wenn ich das Speichern aber ablehne, dann kann ich das Part danach nie wieder öffnen. Mit Fehlermeldungen wie: "Cannot find NX object from Parasolid tag" oder "tool and target do not form a complete intersection" (das könnte von boolschen Operationen von mir kommen, die mit der Regel ausgeführt werden)

Es scheint so, als ob NX nur die Regel im Part ablegt, dort aber nicht ausführt und das erst macht, wenn ich das Teil das erste Mal öffne und auch das Speichern zu früh passiert...

Code:

(Child) spreadsheet: {
Class, ug_spreadsheet;
part_file, "spreadsheet_part2.prt"; };

(Child) part_info: {
Class, ug_partFile;
part_name, spreadsheet:ask_string:(sheet_row:,1)+"_teil2";
directory, "D:\nxwork\"; };
(Integer Parameter UnCached) sheet_row: 7;
(Integer UnCached) open_part: ug_openPart(part_info:directory:+part_info art_name:);
(String UnCached) inside_part: ug_evaluateInPart(part_info:directory:+part_info art_name:, "part_content", parameters:);
(String UnCached) parameters: "{ class, content_part2, row, "+ spreadsheet:ask_string:(sheet_row:,2)+"}";
(Boolean UnCached) save_part: part_info:save:();
(List UnCached) demandValue: {sheet_row,open_part,parameters,inside_part,save_part};


vereinfacht:

Code:
(Integer Parameter UnCached) zahl: 7;
(Integer UnCached) open_part: ug_openPart(dateiname:);
(String UnCached) inside_part: ug_evaluateInPart(dateiname, "regelname", regeluebergabe:);
(String UnCached) regeluebergabe: "{ class, Klassenname, erwartetezahl, zahl: }";
(Boolean UnCached) save_part: part_info:save:();
(List UnCached) demandValue: {zahl,open_part,regeluebergabe,inside_part,save_part};

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

rhonanpaldur
Mitglied
Dipl.-Ing. MB, Druckmaschinen


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

Beiträge: 76
Registriert: 30.10.2007

NX 3.0.3
NX 5.0.2

erstellt am: 24. Jan. 2008 14:29    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

Ganz einfach ausgedrückt: Wie könnte ich per KF ein Teil laden, die Regel darin aktuallisieren und dann wieder speichern? Wenn ich das als Schleife über alle Teile laufen lasse müsste es in Ordnung gehen. 

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

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 24. Jan. 2008 14:45    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 rhonanpaldur 10 Unities + Antwort hilfreich

Ohne sich jetzt tief in die Thematik eingelesen zu haben:
Filehandling betreibe ich i.d.R. mit einer prozeduralen Schleife (Öffnen, Behandeln, Schließen des Files).
In KF wird dazu eine @{}-Anweisung verwendet. Innerhalb der Schleife wird also alles Schritt für Schritt abgehandelt.

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

rhonanpaldur
Mitglied
Dipl.-Ing. MB, Druckmaschinen


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

Beiträge: 76
Registriert: 30.10.2007

NX 3.0.3
NX 5.0.2

erstellt am: 24. Jan. 2008 18: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

Hallo!

Danke für den Tip. Versucht hatte ich es schon einmal so. Hab es jetzt noch einmal gemacht und Ergebnis ist das Gleiche...
Oder mach ich da was falsch?
Ich probiere auch gerade statt mit ug_evaluateInPart mit ug_Child_in_Part rum. Das ist eine Klasse und die kann ich dann nicht mit demandValue oder mit einer prozeduralen Schleife behandeln.

Kann ich in einer Klasse mit demandOrder und demandValue gleichzeitig arbeiten?

Code:
(Integer Parameter UnCached) sheet_row: 7;

(Child) spreadsheet: {
Class, ug_spreadsheet;
part_file, "spreadsheet_part2.prt"; };

(Child) part_info: {
Class, ug_partFile;
part_name, spreadsheet:ask_string:(sheet_row:,1)+"_teil2";
directory, "D:\nxwork\"; };

(Boolean UnCached) lala: @{
  ug_openPart(part_info:directory:+part_info art_name:);
  $parameter1 << "{ class, content_part2, row, "+ spreadsheet:ask_string:(sheet_row:,2)+"}";
  ug_evaluateInPart(part_info:directory:+part_info art_name:, "part_content", $parameter1);
  part_info:save:();
};
(List UnCached) demandValue: {sheet_row,lala};


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



Konstrukteur - Maschinen- und Sondermaschinenbau (all gender)

Die ALTEN Consulting Services GmbH bietet mit über 20 Jahren Branchenerfahrung ihren namhaften Kunden aus Industrie und Wirtschaft hochspezialisierte Engineering- und IT-Dienstleistungen zur gemeinsamen Realisierung von branchen- und technologieübergreifenden Lösungen an.

Kompetenz, Engagement und Leidenschaft verbinden alle unsere Mitarbeiter der ALTEN Consulting Services GmbH. Dabei ...

Anzeige ansehenKonstruktion, Visualisierung
rhonanpaldur
Mitglied
Dipl.-Ing. MB, Druckmaschinen


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

Beiträge: 76
Registriert: 30.10.2007

NX 3.0.3
NX 5.0.2

erstellt am: 24. Jan. 2008 18:38    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

Weitere Variante:

Code:
(Integer Parameter UnCached) sheet_row: 7;

(Child) spreadsheet: {
Class, ug_spreadsheet;
part_file, "spreadsheet_part2.prt"; };

(Child) part_info: {
Class, ug_partFile;
part_name, spreadsheet:ask_string:(sheet_row:,1)+"_teil2";
directory, "D:\nxwork\"; };

(String UnCached) inside_part: ug_evaluateInPart(part_info:directory:+part_info art_name:, "part_content", parameters:);
(String UnCached) parameters: "{ class, content_part2, row, "+ spreadsheet:ask_string:(sheet_row:,2)+"}";
(Integer UnCached) save_part: ug_savePartAs(part_info:directory:+part_info art_name:+"_a", part_to_save, part_info:directory:+part_info art_name:);
(List UnCached) demandValue: {sheet_row,open_part,parameters,inside_part,save_part};


demandValue funktioniert also, da das Ausgangsteil unangetastet bleibt und dank ugSavePartAs ein Teilename_a.prt erstellt wird, in dem die Regel vorhanden ist. Aber dieses Part hat wieder eine rel. kleine Dateigröße und läßt sich nur einmal öffnen. Nur wenn man es bei diesem einen mal speichert, habe ich wirklich die Features im Teil erzeugt und die Dateigröße ist dann deutlich größer.

Ich versteh es nicht...

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