| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | Solid Edge 2025 First Look Online-Event 14.11.2025, eine Pressemitteilung
|
Autor
|
Thema: Extrude-Fläche mit Parameter Gewinde versehen (1527 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 |

| Bauleiter*in | A-Team3 ist ein erfahrenes Architektur- und Ingenieurbüro mit Hauptsitz in Ostwestfalen. Wir sind spezialisiert auf die Planung und Realisierung anspruchsvoller Projekte in den Bereichen Industriebau, Wohnungsbau, Pflegeeinrichtungen sowie im Bankensektor. Unser Tätigkeitsfeld erstreckt sich über Nordrhein-Westfalen, Brandenburg und Mecklenburg-Vorpommern. Mit einem engagierten Team und einem hohen Anspruch an Qualität, Innovation und Nachhaltigkeit setzen wir Maßstäbe in der Branche.... | Anzeige ansehen | Leitung, Teamleitung |
|
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 |