| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | profine GmbH nutzt Simulationssuite Simcenter zur optimalen Auslegung von Produkten, Werkzeugen und Betriebsmittel , ein Anwenderbericht
|
Autor
|
Thema: Linked Wave Geometry und KF (1504 mal gelesen)
|
Scott Mitglied

 Beiträge: 62 Registriert: 26.07.2001 NX6.0.4.3, Oracle Eigner PLM 5 XP64, Dell T7400
|
erstellt am: 28. Mai. 2002 13:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo KF User, innerhalb KF kann man mittels ug_refobjectbyname auf ug_features zeigen. Vorraussetzung dafür ist, dass man den Namen des Features kennt. Wenn man eine, mit Wave erzeugte Linked Geometry (Linked_Face oder Linked_Point) erzeugt, erhalte ich den, vom System vergebenen Namen (z.B. Linked_Face(0)). Nutzt man diesen Namen, funktioniert das Auslesen KF. Ändert man diesen Namen (z.B. nur in Face1(0)) über Properties im Part sowie in der KF-Abfrage ug_refobjectbyname, so findet KF dieses Feature nicht mehr, obwohl ich alles neu lade. Woran kann das liegen, mach ich etwas falsch? Kann ich den Suffix von der Wave-Geometry (z.B. Linked_Face (0)) irgendwie beieinflussen oder gar vernachlässigen? Vielen Dank Scott Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Mitglied Konstrukteur
 
 Beiträge: 270 Registriert: 16.10.2000
|
erstellt am: 28. Mai. 2002 19:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Scott
|
Scott Mitglied

 Beiträge: 62 Registriert: 26.07.2001 NX6.0.4.3, Oracle Eigner PLM 5 XP64, Dell T7400
|
erstellt am: 29. Mai. 2002 08:30 <-- editieren / zitieren --> Unities abgeben:         
Hi Andreas, danke für den Tip, wusste ich auch noch nicht, dass KF es nur mit Großbuchstaben hat. Aber es funktioniert leider trotzdem noch nicht. Im Partfile habe ich die LINKED_FACE(0) umbenannt in FACE(0) (den Suffix kann ich leider auch nicht ändern). Wenn ich im dfa-File diese Fläche ansprechen will, so kann ich das trotz umbenennen nur mit dem Namen "LINKED_FACE(0)" erreichen, obwohl dann im KF-Tree der veränderte Name (mit FACE(0)) erscheint. Ich muss also im dfa-File einen Namen für die Fläche verwenden, der gar nicht aktuell dem entspricht, welcher vorhanden ist und welchen ich erhalte. Das verwirrt mich etwas. Trotzdem Danke. Gruss Scott Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Armin B Mitglied Software Engineer ERP/PLM/CAD
 
 Beiträge: 209 Registriert: 04.09.2000
|
erstellt am: 29. Mai. 2002 09:09 <-- editieren / zitieren --> Unities abgeben:          Nur für Scott
|
Scott Mitglied

 Beiträge: 62 Registriert: 26.07.2001 NX6.0.4.3, Oracle Eigner PLM 5 XP64, Dell T7400
|
erstellt am: 29. Mai. 2002 09:30 <-- editieren / zitieren --> Unities abgeben:         
Hi Arnim B, KF steht für Knowledge Fusion. Das ist ein Modul von UG, mit dem man wissensbasiert Konstruieren kann. Auf der Grundlage von Modellierungsparametern und definierten Regeln werden Produktstrukturen erzeugt, die auf die Modelle übertragen werden können. Somit können Konstruktionserfahrungen mittels Programmierung in Regeln gefasst werden. Der Ansatz von UG ist dabei ganz interessant und eröffnet viele neue Möglichkeiten neben dem herkömmlichen Modellieren. Gruss Scott Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joerg.A Mitglied

 Beiträge: 86 Registriert: 12.12.2001
|
erstellt am: 29. Mai. 2002 09:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Scott
Hallo Scott, KF ist es normalerweise egal ob Du Groß- oder Kleinbuchstaben verwendest, ausgenommen Strings. Bei dem Problem mit dem Featurenamen kann ich Dir leder nicht helfen, dies ist wirklich ein interessantes Phänomen. Allerdings finde ich es generell etwas gefährlich den Featurenamen zu verwenden. Das von Dir erwähnte Suffix (0) gibt die Erzeugungsreihenfolge an. Diese kann sich nach einem Feature Reorder unter Umständen ändern. Dann würde in Deinem Programm überhaupt nichts mehr gehen. Deshalb würde ich Dir empfehlen über Objekt-Namen zu gehen (Format->Attribute->Name) und refObjectByName("Face1",{ug_face},""). Gruss Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Armin B Mitglied Software Engineer ERP/PLM/CAD
 
 Beiträge: 209 Registriert: 04.09.2000
|
erstellt am: 29. Mai. 2002 09:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Scott
|
Stone Mitglied Consulant für NX

 Beiträge: 56 Registriert: 20.12.2001 NX 10.1 Daimler Buil 1.1 Win 7 64
|
erstellt am: 31. Mai. 2002 10:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Scott
Hallo Scott mein tipp selektiere die Flaechen über ein Userinterface dazu applikation UI-styler füge ein pusch Button dazu Aendere den Wert bei Identifier auf sel_object speichere deas UI anschliesend unter my_wave ab und erzeuge folgende Klasse #! UG/KF 19.0 (eventuell #! UG/KF 17.0 wenn du mit V18 arbeitest) # Name der Klasse DefClass: my_wave (ug_base_part); # Schleife erzeugt intanzen Return ist die Anzahl der instanzen die Erzeugt wurden (Integer Modifiable) make_instance: loop{ for $a in sel_object:; for $n2 is 0 then $n; for $n is $n2 +1; for $b is ug_adoptObject($a); return is $n; }; # führt make instance aus und benennt die gewählten Flachen mit my_wave_face_n (List Modifiable) make_wave_2: if ( make_instance: != {} )then loop{ for $a in sel_object:; for $n2 is 0 then $n; for $n is $n2 +1; for $face is "my_wave_face_" + stringValue ($n) ; for $test is ug_setObjectName ( $a, $face ); collect $test; } else {}; # Auswahl von Flaechen (List Modifiable Parameter) sel_object: ; (List) sel_object_mask: {Face};
# zweiter Schritt und Abfrage von make_wave_2 # Abfrage -> Regel wird ausgeführt (child list ) wave_done: { class,if (make_wave_2: = {} ) then nulldesign else ug_expression ; value,0; }; Ich hoffe es hilft dir weiter.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stone Mitglied Consulant für NX

 Beiträge: 56 Registriert: 20.12.2001 NX 10.1 Daimler Buil 1.1 Win 7 64
|
erstellt am: 31. Mai. 2002 11:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Scott
Hallo Scott ich hatte einen kleinen Fehler in der Klasse hier nochmal ohne fehler #! UG/KF 19.0 # Name der Klasse DefClass: my_wave (ug_base_part); # Schleife erzeugt intanzen Return ist die Anzahl der instanzen die Erzeugt wurden (Integer Modifiable) make_instance: loop{ for $a in sel_object:; for $n2 is 0 then $n; for $n is $n2 +1; for $b is ug_adoptObject($a); return is $n; }; # führt make instance aus und benennt die gewählten Flachen mit my_wave_face_n (List Modifiable) make_wave_2: if ( make_instance: != {} )then loop{ for $a in sel_object:; for $n2 is 0 then $n; for $n is $n2 +1; for $face is "my_wave_face_" + stringValue ($n) ; for $test is ug_setObjectName ( $a, $face ); collect $test; } else {}; # Auswahl von Flaechen (List Modifiable Parameter) sel_object: ; (List) sel_object_mask: {Face};
# zweiter Schritt und Abfrage von make_wave_2 # Abfrage -> Regel wird ausgeführt (child) wave_done: { class,if (make_wave_2: = {} ) then nulldesign else ug_expression; }; die Flaechen können nun mit refobjectbyname unter my_ave_1-3 gefunden werden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |