Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  Open/API WCS verschieben

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
  
NX CAD Basiskurs Teil 2, ein Seminar am 10.11.2025
Autor Thema:  Open/API WCS verschieben (1066 mal gelesen)
Kai Grimmig
Mitglied
Techniker


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

Beiträge: 12
Registriert: 13.06.2004

erstellt am: 10. Mai. 2005 16:00    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 zusammen!

Ich versuche gerade verzweifelt das WCS per UG/Open zu positionieren... Ein Beispiel hierzu konnte ich leider nicht finden.
Wir verwenden seid der v15 ein GRIP-Programm zur Erzeugung von Schweißraupen auf der Zeichnung. Da dieses Tool leider recht fehlerhaft und unhandlich ist soll mittels UG/Open eine modernere Variante erstellt werden. Das wollte ich so lösen:

...

// WCS Tag ermitteln
UF_CSYS_ask_wcs(&tWCS);
// alte Position merken
UF_CSYS_ask_csys_info(tWCS, &tMatrix, dOrigin);
// Ansicht erweitern
UF_VIEW_expand_view(tView);

...

In einer Schleife dann folgendes:

// WCS verschieben
UF_CSYS_set_origin(tWCS, dPointCoords[i]); // in dPointCoords[] sind die verschieden Punkte gespeichert

//Bogen an WCS erzeugen
dArcStartPoint[0]= 0.0;
dArcStartPoint[1]= 0.0;
dArcStartPoint[2]= 0.0;
dArcMidPoint[0] = (iSize/2.0);
dArcMidPoint[1] = (iSize/5.0);
dArcMidPoint[2] = 0.0;
dArcEndPoint[0] = iSize;
dArcEndPoint[1] = 0.0;
dArcEndPoint[2] = 0.0;
UF_CURVE_create_arc_thru_3pts (1, dNullCoords, dArcMidPoint, dArcEndPoint, &tArcs[i]);

Funktioniert soweit, ausser dass sich das WCS nicht vom Fleck bewegt! Als nächstes wollte ich das WCS dann noch drehen damit der Winkel des Kreisbogens stimmt... Weiß jemand von euch wo mein Querdenker sitzt?!?

Besten Dank!

Kai Grimmig

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

stefan.f
Mitglied



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

Beiträge: 126
Registriert: 03.09.2002

erstellt am: 11. Mai. 2005 07:02    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 Kai Grimmig 10 Unities + Antwort hilfreich

Hallo Kai,

ich denke den Befehl den du suchst heißt: UF_CSYS_set_wcs

Such mal bei UGanswer nach "UF_CSYS_set_wcs" da finden sich viele Beispiele zum WCS setzen.

z.B. WCS setzen mit Ursprung und 2 Punkten:

static void set_wcs_by_origin_x_point_y_point(double *origin, double *x_point,
    double *y_point)
{
    double
        csys[9],
        x_axis[3],
        y_axis[3];
    tag_t
        mx,
        wcs;

    UF_VEC3_sub(x_point, origin, x_axis);
    UF_VEC3_sub(y_point, origin, y_axis);

    UF_CALL(UF_MTX3_initialize(x_axis, y_axis, csys));

    UF_CALL(UF_CSYS_create_matrix(csys, &mx));
    UF_CALL(UF_CSYS_create_temp_csys(origin, mx, &wcs));
    UF_CALL(UF_CSYS_set_wcs(wcs));
}


Gruß Stefan

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

Kai Grimmig
Mitglied
Techniker


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

Beiträge: 12
Registriert: 13.06.2004

erstellt am: 11. Mai. 2005 10:21    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 Stefan,

funktioniert jetzt prächtig! Dabei hörte sich UF_CSYS_set_origin so gut an... 

Danke schöööön!

Kai

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)2024 CAD.de | Impressum | Datenschutz