| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: KF mit geladenem Teil verbinden (588 mal gelesen)
|
thomas167 Mitglied Ingenieur
Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 05. Mrz. 2009 15:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich habe eine Frage und würde mich super freuen, wenn mir jemand ein Tipp geben könnte. Ich arbeite mich zur Zeit in KF ein und versuche nun diverse Features auf ein beliebiges Teil anzuwenden. Das Soll heißen, ich möchte z.B. eine Fase an dem gerade aktuell geladenem Teil einfügen (Annahme es ist rotationssymmetrisch) oder z.B. andere Features hinzufügen. Ich schaffe es nicht die richtige Angabe für die Referenz zu setzen....Ich ein Rotationskörper erzeugt, der in meinem Verzeichns gespeichert ist. Muss ich mich auf den Pfad beziehen ode rgint es eine Möglichkeit zu sagen "use recent part" ? Mein Ziel ist es ein Teil nur zu erzeugen, wenn es sich mit dem geladenen Teil an einer bestimmten Stelle überschneidet. Bisher sieht es erstmal so aus: #! NX/KF 4.0 DefClass: Welle_Fase (ug_base_part);
(Child) chamfer_1: { Class, ug_single_offset_chamfer; References, ug_feature_askEdgeClosestToPoint( Was kommt hier rein?) ; offset1, 2; };
Ich würde mich über einen Tipp sehr freuen. Ich habe schon versucht per AdoptOpjekt einen Verweis zu erstellen (Was auch nicht funktioninert hat), es sollte doch aber auch per ClassEditor gehen? dankeschön für die Antwort! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 06. Mrz. 2009 07:53 <-- editieren / zitieren --> Unities abgeben: Nur für thomas167
In der NX6-Hilfe findet sich folgendes schöne Beispiel: Code:
DefClass: ug_simple_hole_example (ug_base_part);(Point Parameter) loc_hole1: point(75,0,15); (Point Parameter) loc_hole2: point(100,80,20); (Child) loc1: {class, ug_point; position, loc_hole1:; }; (Child) loc2: {class, ug_point; position, loc_hole2:; }; (Child) block: {class, ug_block; Length, 100; Width, 100; Height, 50; }; (Child) hole: { class, ug_simple_hole; Hole_Diameter, 10; Hole_Depth, 20; Location, Point(70,70,50); Placement_Face, ug_feature_askFaceClosestToPOint(block:, point(50,50,50)); }; (Child) hole_thru: { class, ug_simple_hole; Hole_Diameter, 20; Hole_Depth, 20; Location, Point(30,30,50); Placement_Face, ug_feature_askFaceClosestToPOint(block:, point(50,50,50)); Thru_Face, ug_feature_askFaceClosestToPOint(block:, point(50,50,0)); }; (Any) target_edge1: first(ug_feature_askEdgeClosestToPoint(block:,point(0,0,25))); (Any) target_edge2: first(ug_feature_askEdgeClosestToPoint(block:,point(50,0,0))); (Child) hole_positioned: { class, ug_simple_hole; Hole_Diameter, 20; Hole_Depth, 50; Hole_Tip_Angle, 0; Location, Point(5,0,5); Placement_Face, ug_feature_askFaceClosestToPoint(block:, point(50,0,25)); Rpo, { { target_edge1:, RPO_ENDPOINT_1, 0, RPO_ARC_CENTER, localx(loc_hole1:), RPO_PERP_DIST }, { target_edge2:, RPO_ENDPOINT_1, 0, RPO_ARC_CENTER, localz(loc_hole1:), RPO_PERP_DIST } }; }; (Any) target_edge3: first(ug_feature_askEdgeClosestToPoint(block:, point(100,0,25))); (Any) target_edge4: first(ug_feature_askEdgeClosestToPoint(block:, point(100,50,0))); (Child) hole_thru_positioned: { class, ug_simple_hole; Hole_Diameter, 20; Hole_Depth, 30; Location, Point(100,5,5); Placement_Face, ug_feature_askFaceClosestToPoint(block:, point(100,50,25)); Thru_Face, ug_feature_askFaceClosestToPoint(block:, point(0,50,25)); Rpo, { { target_edge3:, RPO_ARC_CENTER, 0, RPO_ARC_CENTER, localy(loc_hole2:), RPO_PERP_DIST }, { target_edge4:, RPO_ENDPOINT_1, 0, RPO_ARC_CENTER, localz(loc_hole2:), RPO_PERP_DIST } }; };
Alles klar ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thomas167 Mitglied Ingenieur
Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 06. Mrz. 2009 10:08 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank Älg, ja sowas in der Art suche ich - in diesem Besipiel wird der Block aber schon mittels KF erzeugt. Die Möglichkeit die ich suche ist, dass der Block per Modeling konstruiert und gespeichert wird. Wenn der Würfel dann geöffnet wird, sollen dann z.B. die Bohrungen (abhängig von der Größe des Klotzes) eingefügt werden. Ich suche etwas, dass den Block nicht wie in dem Example (Child) block: {class, ug_block; Length, 100; Width, 100; Height, 50; erzzeugt sondern importiert... Also sowas wie Load/import file, Block, etc. damit die festgelegten Regeln darauf angewendet werden können. Aber vielen Dank schon mal für den Hinweis auf das Beispiel. Schöne Grüße Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 06. Mrz. 2009 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für thomas167
Jo - versteh ich. Ersetz mal Code:
(Child) block: {class, ug_block; Length, 100; Width, 100; Height, 50; };
durch
Code:
(list modifiable parameter) features: {}; (child) block: { class, ug_body; feature, ug_adoptObject(features:); };
Selektionsdialog hast Du im Griff ? Sicherheitshalber sollte noch eine Selektionsmaske gesetzt werden, um nicht irgendwelche Formelemente als Block zu vergewaltigen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thomas167 Mitglied Ingenieur
Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 06. Mrz. 2009 12:47 <-- editieren / zitieren --> Unities abgeben:
Dankeschön, er erzugt mir zwar immer noch den Block zu den Bohrungen - das bekomme ich aber schon irgendiwe hin, ansonsten melde ich mich Vielen Dank für die schnelle Hilfe und schon mal ein schöne Wochenende. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| CAD-Konstruktion und Produktentwicklung (Catia & Siemens NX) ? Projektleiter (m/w/d) | Mehr als 60 Jahre Erfahrung im Formenbau haben uns als Familienunternehmen gezeigt, dass nur Zukunft hat, wer sich nicht auf vergangenen Erfolgen ausruht. Mit über 300 Mitarbeitern im Großraum Stuttgart sowie in Tochterunternehmen in Europa und Asien sind wir damit zu einem der schlagkräftigsten Formenbauunternehmen in Europa geworden. Als Spezialist für hochwertige Kunststoff- und Druckgussformen im XL-Format ist Innovation Grundlage unseres Erfolgs.... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
thomas167 Mitglied Ingenieur
Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 06. Mrz. 2009 15:58 <-- editieren / zitieren --> Unities abgeben:
Ich spiele etwas mit der Funtion: #! NX/KF 4.0 DefClass: ug_boolean_example (ug_base_part); (Canonical Name Parameter Modifiable) ex_operation: Unite; (Canonical List Parameter Modifiable) ex_target: { ex_block: }; (Canonical List Parameter Modifiable) ex_tool: { ex_cyl: }; (Canonical Boolean Parameter Modifiable) ex_retain_target: FALSE; (Canonical Boolean Parameter Modifiable) ex_retain_tool: FALSE; (Child) ex_block: { Class, ug_block }; (Child) ex_cyl: { Class, ug_cylinder, Origin, Point(5,0,0) }; (Child) ex_boolean: { Class, ug_boolean, Operation, ex_operation:, Target, ex_target:, Tool, ex_tool:, Retain_Target, ex_retain_target:, Retain_Tool, ex_retain_tool: }; aus dem Beispiel herum. In dem Fall oben, wird der Kreis erzeugt obwohl er komplett außerhalb des Quaders ist. Gibt es hier eine Möglichkeit den Zylinder nur zu erzeugen WENN er sich mit dem Quader schneidet? Also kann die Unite Funktion auch irgendwie den Wert True aussenden mit dem man dann ein Unite einleitenm kann? Vielen Dank, wenn jemand was weiß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|