| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Extrude-Fläche mit Parameter Gewinde versehen (1460 mal gelesen)
|
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 06. Jun. 2006 08:56 <-- editieren / zitieren --> Unities abgeben:
|
totti2305 Mitglied Dipl Ing Maschinenbau
Beiträge: 183 Registriert: 10.03.2005 Windows 7 x64 SP1 NX 7.5.5.4 MP12 Teamcenter 8.3.3.8
|
erstellt am: 06. Jun. 2006 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Hallo! Falls du ein Part-Attribute dem Körper mitgeben willst, kannst du das folgendermaßen machen: #! NX/KF 3.0 DefClass: Abzugskoerper (ug_base_part); (Number Modifiable Parameter) diameter: 10; (Number Modifiable Parameter) Length: 50; (Point Modifiable Parameter) Ursprung: point(0,0,0); (Child) my_arc: { Class, ug_arc; Radius, diameter:; Center, Ursprung:; }; (Child) my_extrude: { Class, ug_extruded; End_Limit, Length:; Profile, {my_arc:}; demandOrder, {my_arc:}; }; (Integer) attr_ben: ug_setAttrValue_("","PART_ATTRIBUTE","Gewinde","M?"); (List Uncached Modifiable Parameter) demandValue: {attr_ben:}; Natürlich kannst du "M?" mit einer Variablen steuern. Das Ergebnis hab ich dir als jpg angehängt. Vielleicht hilft das dir ja weiter! Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joerg.A Mitglied
Beiträge: 86 Registriert: 12.12.2001
|
erstellt am: 07. Jun. 2006 22:22 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Hi, eine andere Möglichkeit ist das Setzen von Objektattributen an z.B. ein Face. Dazu musst Du zuerst mit einer Instanz von ug_face das Face von dem extrudierten Körper abrufen. Danach kannst Du mit dem Befehl ug_setAttrValue(nc_face_1:, "GEWINDE", "M12") ein Attribut direkt an das Face schreiben. Gruss Joerg.A Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 08. Jun. 2006 16:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Joerg, Danke für Deinen Tip. Das Attribut zuweisen hat gut geklappt. Erstelle ich den Abzugskoerper aber in einer neuen Datei wird die Fläche des Extrudes nicht erkannt.(Der Koerper wird nicht erstellt).In meinem Beispiel habe ich die Fläche einfach adoptiert. Wie referenziere ich am besten die Fläche des Extrudes? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joerg.A Mitglied
Beiträge: 86 Registriert: 12.12.2001 NX 1892 Build 3220 TcAE 12.2.0.7 Catia V5 R2012 SP3 HF119 Catia V6 R2013xHF94
|
erstellt am: 08. Jun. 2006 21:52 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Hi, es gibt Funktionen, mit denen man Faces und Edges abfragen kann (ug_feature_ask.....). Man muß allerdings einen Punkt definieren, der an der Fläche liegt. Die Set_Attribut Instanz schreibt am Ende, wenn die Geometrie erzeugt worden ist, das Attribut an das Face. (Number Modifiable Parameter uncached) Attribut: ug_setAttrValue(Fläche:, "GEWINDE", stringValue(Diameter: )); (Number Modifiable Parameter) Diameter: 20; (Number Modifiable Parameter) Length: 50; (Point Modifiable Parameter) Ursprung: point(0,0,0); (Child) my_arc: { Class, ug_arc; Radius, diameter:; Center, Ursprung:; };
(Child) my_extrude: { Class, ug_extruded; End_Limit, Length:; Profile, {my_arc:}; }; (Child) Fläche: { Class, ug_face; Color, 87; Layer, 1; References; ug_feature_askFaceClosestToPoint(my_extrude:, Ursprung: + Vector(Diameter:/2, 0, Length: / 2)); };
(Child) Set_Attribut: { class, ug_base_part; demandOrder, {Fläche:}; demandValue, {Attribut:}; }; Gruss Joerg.A
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 19. Jun. 2006 11:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Joerg.A, ich habe mit KF einen Zylinder erstellt, dieser hat das Flächenattribut "GEWINDE". "GEWINDE" hat my_diameter als Referenz. Ändert sich der Wert von my_diameter so ändert sich der Wert von "GEWINDE" mit. Jetzt habe ich diesen Koerper als UDF exportiert und die Referenzierung ist verlorengegangen. Das heißt: ich ändere den Durchmesser des Zylinders beim erstellen des UDFs z.B. auf 22. Prüfe ich später das "Geewinde"-Attribut steht immer noch der alte Wert M10. Beim erzeugen des UDFs wird die im ZIP enthaltene "Fehlermeldung" ausgegeben. Es gibt Probleme mit ug_SetAttr_Value. Weißt Du Rat? Wäre echt super wenn Du mir da weiterhelfen könntest. Ich habe Dir zusätzlich die .dfa mitgeschickt.(Die man eigendlich nicht braucht da das .prt ja als UDF exportiert wird) UDF_Abzugskoerper.prt ist das mit KF erstellt Teil. Abzugskoerper.prt ist das eigendliche UDF. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joerg.A Mitglied
Beiträge: 86 Registriert: 12.12.2001 NX 1892 Build 3220 TcAE 12.2.0.7 Catia V5 R2012 SP3 HF119 Catia V6 R2013xHF94
|
erstellt am: 19. Jun. 2006 17:20 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Hallo, da Du mit dem UDF direkt die Werte des Zylinders änderst, liest Du am besten direkt die Werte von dem Zylinder aus. Dann wird auch immer der richtige Durchmesser an das Face geschrieben. ug_setAttrValue( my_face:, "GEWINDE", "M"+stringValue(my_cylinder:diameter: ) ); Bei mir ist beim Einfügen des UDF's das Face verschwunden. Wenn man das Face adoptiert funktioniert es. Deshalb gab es wahrscheinlich ein Referenz-Problem. Da Du ja UDF's erzeugst sollte dies auch nicht problematisch sein. Gruss Joerg.A Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 20. Jun. 2006 19:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Joerg.A, danke erst mal. Wenn man das UDF mit der geänderten Zeile und den Standarteinstellungen einfügt kommt keine Fehlermeldung mehr. Super! Ändert man den Durchmesser des Abzugskoerpers aber vor dem Erstellen des UDFs wird immer noch eine Fehlermeldung ausgeggeben. (siehe Abzugskoerper.bmp im Anhang) Schlimmer ist aber dass das Flächenattribut an der Zylinderfläche nicht dynamisch mitgeht. Es bleibt auf dem Ausgangswert M10 stehen obwohl der Durchmesser im Bsp. auf M50 geändert wurde. Dieses Flächenattribut brauche ich später fürs CAM. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Projektleiter für Conveyor Projects | Die Interroll Gruppe ist der global führende Anbieter von Lösungen für den Materialfluss. Das Unternehmen wurde 1959 gegründet und ist seit 1997 an der SIX Swiss Exchange gelistet. Interroll beliefert Systemintegratoren und Anlagenbauer mit einem umfassenden Sortiment an plattformbasierten Produkten und Services in den Kategorien ?Rollers? (Förderrollen), ?Drives? (Motoren und Antriebe für Förderanlagen), ... | Anzeige ansehen | Projektmanagement |
|
Joerg.A Mitglied
Beiträge: 86 Registriert: 12.12.2001 NX 1892 Build 3220 TcAE 12.2.0.7 Catia V5 R2012 SP3 HF119 Catia V6 R2013xHF94
|
erstellt am: 20. Jun. 2006 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Hallo, die Fehlermeldung besagt, daß my_face nicht mehr da ist. Schaue mal im KF-Navigator, ob my_face dort drin steht. Ansonsten öffne mal Dein UDF part und lösche die Child Rule "my_face". Danach adoptiere das face (Mir ist leider nicht bekannt, wie diese Funktion in deutsch heißt). Danach mußt Du überall dort, wo vorher my_face stand, den neuen Namen des adoptierten faces eintragen. Ich hoffe so läuft es besser. Gruss Joerg.A
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |