Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Assoziative Berechnung von Koordinatensystemen mittels KF

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:  Assoziative Berechnung von Koordinatensystemen mittels KF (1233 mal gelesen)
guckmalda
Mitglied
Student


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

Beiträge: 30
Registriert: 01.07.2005

NX 4.0.4.2 MP01 auf WinXP pro SP2

erstellt am: 05. Jan. 2006 16:47    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

Ich habe ein Teil A und möchte mittels KF ein Koordinatensystem aus dem Teil auslesen, umrechnen und für die Positionierung von Teil B verwenden.
Dies habe ich solange im Griff wie Teil A nicht verschoben wird, denn dann bleibt Teil B an Ort und Stelle, jedoch möchte ich diese Assoziativität nutzen. Also wenn Teil A verschoben wird, soll Teil B mittels KF-Berechnungen mit verschoben werden.

Hat jemand eine Idee?
Das Koordinatensystem wird vom benutzer ausgewählt. Noch geschieht dies über den Ksys-Konstruktor, kann aber leicht angepasst werden.

Vieln Dank schon jetzt

guckmalda

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

DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

NX1 / Visaul 6.0

erstellt am: 10. Jan. 2006 07:42    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 guckmalda 10 Unities + Antwort hilfreich

Hallo guckmalda,

ich habe mich auch mit KF und UG Assembly befasst. Es geht darum, Komponenten relativ zu bestehenden zu platzieren. Alle Komponenten sind mit KF verbaut, haben also einen KF Hostpointer um diese zu identifizieren.
Das Verschieben der Ursprungskomponente (Referenz) mit dem gekoppeltem (automatischen) verschieben der abhängigen Komponenten hat eigentlich funktioniert, habe aber auch schon "strange", teilweise nicht reproduzierbare Verhalten gehabt.
Anbei ein Ausschnitt aus meinem Coding, hoffe du verstehst es ohne grosse Kommentare, sonst frag einfach.
Der Anwender kann auswählen, ob die Positionierung des neuen Symbols über Offsetwerte (in einem ASCII File hinterlegt) zu dem bestehenden geschehen soll oder über einen neuen Punkt, den er selektiert, deshalb jeweils die Abfragen...

#Informationen von Referenzsymbol eruieren
###########################################
#Position des Referenzsymbols bestimmen
(Frame)ri_frame_ref_symb: ug_askOccFrame(last(RI_REF_SYMB_FUNC );

#RI_REF_SYMB_FUNC: ==>> Ist der Pointer auf die Komponente aus einem #Selection Dialog durch den Anwender

#den X Vector auslesen
(Vector) ri_ref_symb_X_vector: Vector_(1,0,0,ri_frame_ref_symb ;

#den Y Vector auslesen
(Vector) ri_ref_symb_Y_vector: Vector_(0,1,0,ri_frame_ref_symb ;

#den Origin Punkt auslesen
(Point) ri_ref_symb_origin: Point_(0,0,0,ri_frame_ref_symb ;


#Position des neuen Symbols in Bezug zu einem Referenzymbol
###########################################################
#den Vector des Refrenzsymbols bestimmen
(Vector Modifiable Parameter) ri_vec_ref: vector(localX(ri_ref_symb_origin , localY(ri_ref_symb_origin , localZ(ri_ref_symb_origin );

#den Vector des neuen Symbols bestimmen
(Vector Modifiable Parameter) ri_vec_symb: vector_(RI_FD_X_OFF:, RI_FD_Y_OFF:, RI_FD_Z_OFF:, ri_frame_ref_symb ;

#die neue Position des Symbols berechnen
(Vector Modifiable Parameter) ri_pos_new_symb_from_ref_as_vec: ri_vec_ref: + ri_vec_symb:;

(Point Modifiable Parameter) ri_pos_new_symb_from_ref: point(localX(ri_pos_new_symb_from_ref_as_vec ,
    localY(ri_pos_new_symb_from_ref_as_vec ,
    localZ(ri_pos_new_symb_from_ref_as_vec );


#Position des neuen Symbols
###########################
(Point Modifiable Parameter) ri_pos_new_symb:
#Position mit Offsetwerten zu Referenz
if (!ri_pick_point_mode?: & ri_ref_symb_mode?
then  ri_pos_new_symb_from_ref:
#Absolute Position mit den Pick Point Werten
else
RI_FD_POINT_SEL:;


#Orientierung des neuen Symbols
###############################
#den Rotationswinkel bestimmen
(Number Modifiable) ri_rot_angle: if (ri_align_mode?
then RI_ALIGN_VAR_VALUE:
else if (ri_orient_new_symb_from_ref: = 1)
then 0
else if (ri_orient_new_symb_from_ref: = 2)
then 90
else if (ri_orient_new_symb_from_ref: = 3)
then 180
else 270;


#Den X Basisvector bestimmen (absolut oder den des Referenz Symbols)
(Vector Modifiable) ri_X_base_vec_for_rot:
if (!ri_pick_point_mode?: & ri_ref_symb_mode?
then ri_ref_symb_X_vector:
else vector(1,0,0);

#Den Y Basisvector bestimmen (absolut oder den des Referenz Symbols)
(Vector Modifiable) ri_Y_base_vec_for_rot:
if (!ri_pick_point_mode?: & ri_ref_symb_mode?
then ri_ref_symb_Y_vector:
else vector(0,1,0);

#den X Vector des neuen Symbols berechnen
(Vector Modifiable) ri_X_vec_new_symb: RotateVector(ri_X_base_vec_for_rot:,ri_rot_angle:,vector(0,0,1));

#den Y Vector des neuen Symbols berechnen
(Vector Modifiable) ri_Y_vec_new_symb: RotateVector(ri_Y_base_vec_for_rot:,ri_rot_angle:,vector(0,0,1));


#**********************************************************
# Symbole hinzufuegen
#
#
#**********************************************************

#UG Part Name zusammenstellen fuer ug_component()
(String Modifiable Parameter) ri_new_symb_ug_file_name: "O:\appl_user\site\chwi\ugs\ugnx3\VSP\SYMB_LIB\" + RI_NEW_SYMBOL: + ".prt";


#Komponente einbinden
(Child) ri_inst_X: {
Class, ug_component;
File_Name, ri_new_symb_ug_file_name:;
    Reference_Set_Name, "WORK";
    Layer, -1;
    Color, 0;
    Origin, ri_pos_new_symb:;
    X_Axis, ri_X_vec_new_symb:;
    Y_Axis, ri_Y_vec_new_symb:;
};

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

guckmalda
Mitglied
Student


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

Beiträge: 30
Registriert: 01.07.2005

NX 4.0.4.2 MP01 auf WinXP pro SP2

erstellt am: 10. Jan. 2006 15: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

Hi DinnerForOne

Über dieses Vorgehen habe ich auch schon nachgedacht, jedoch habe ich keine Benutzereingabe, an welches Element positioniert werden soll. Aber sonst schon hilfreich.

Kurze Anmerkung zu deinem Code: Du nimmst recht umständlich die Vektoren und Punkte aus dem Teil auseinander um dann einzelne Operationen mit den Vektoren durchzuführen und damit wieder Punkt, Vektorx und Vektor Y zu bekommen. Soweit funktioniert das ja ganz gut. Versuche doch einfach mal mit dem referenceframe zu arbeiten. Da kann man ganz gut mit ug_mapframe arbeiten und du brauchst auch keine eingabe der punkt,vektor,vektor-konstellation in die ug_component, sondern kannst diese auf default belassen. Dann nutzt du einfach wieder referenceframe in dem child. Habe mich auch lange mit den Vektoren rumgeschlagen, jedoch komme ich so einfacher weiter.

Nochmal zu meinem Problem:
Da ich vor dem Ausführen des Programms noch nicht genau weiß, wieviele  Komponenten der Nutzer in die Baugruppe einfügen möchte, komme ich um eine %ug_create_instance anstatt einer childlist nicht drumrum, da die childlist keine Änderung der quantity akzeptiert. Dementsprechend wird es für mich recht schwierig auf das child zu referenzieren.

Welche Version von NX nutzt du?  Nutzt du %nx_application?

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

guckmalda
Mitglied
Student


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

Beiträge: 30
Registriert: 01.07.2005

NX 4.0.4.2 MP01 auf WinXP pro SP2

erstellt am: 11. Jan. 2006 16:56    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

@ DinnerForOne

Muss einen Teil meiner letzten Antwort revidieren.
Du musst natürlich origin, X_axis, y_axis nutzen, da sonst bei update des childs nicht repositioniert wird. referenceframe wirkt nur bei der Erstellung!

Sorry, war ein dummer Fehler von mir.

guckmalda

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

DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

NX1 / Visaul 6.0

erstellt am: 12. Jan. 2006 12:59    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 guckmalda 10 Unities + Antwort hilfreich

Hallo guckmalda,

so oder so danke für deinen Hinweis. Diese KF appl ist für NX3.

Gruss

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



Vermesser/-in (m/w/d) - J.D. Hahn GmbH & Co KG, Hechthausen/Stade

Komm in das älteste Bauunternehmen Deutschlands

Die J.D. Hahn GmbH & Co KG ist ein vielseitig aufgestelltes Familienunternehmen. Gegründet 1664 als Zimmerei ist heute mit seinem Hauptsitz in Hechthausen und der Zweigstelle in Stade in den Bereichen Straßen-, Kanal-, Wasser-, Ingenieur-, Industrie- sowie Spezialtiefbau tätig. Im Straßenbau setzen wir von der Sanierung eines ...

Anzeige ansehenBauwesen
loureed
Mitglied



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

Beiträge: 13
Registriert: 30.09.2007

erstellt am: 03. Okt. 2007 19: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 Nur für guckmalda 10 Unities + Antwort hilfreich

hallo!!

Wie kann ich die Komponenten relativ platzieren?

Die Teilen wurden in NX erzeugt und ich will mit KF eine Baugruppe zusammenbauen.

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