Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Verschiebung von Komponenten

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:  Verschiebung von Komponenten (1130 mal gelesen)
denizO
Mitglied
Student


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

Beiträge: 26
Registriert: 08.07.2009

erstellt am: 02. Okt. 2009 15:49    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 Forum-Mitglieder,

weiss jemand, wie man auf einfache Weise eine Komponente im Assembly verschieben kann?

Ich habe folgendes probiert:

1. theUFSession.Trns.TransformObjects
    - Gibt mir die Fehlermeldung  "11 - Cannot transform occurrence"

2. Journal aufzeichnen
    - Hier wird mit: componentNetwork1.DragByTransform(translation2, rotation2) gearbeitet
    - Wirkt auf mich als sehr komplizierte Lösung. Außerdem klappt das Abspielen des Journals nicht

Mein System ist NX6

Vielen Dank im Vorraus

Denis

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

denizO
Mitglied
Student


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

Beiträge: 26
Registriert: 08.07.2009

erstellt am: 02. Okt. 2009 15:58    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

Die Umsetzung analog zur Journal Lösung sieht bei mir so aus

Code:
      ComponentPositioner componentPositioner1 = workPart.ComponentAssembly.Positioner;
        componentPositioner1.ClearNetwork();
        Arrangement arrangement1 = workPart.ComponentAssembly.Arrangements.FindObject("Arrangement 1");
        componentPositioner1.PrimaryArrangement = arrangement1;
        componentPositioner1.BeginMoveComponent();
        ComponentNetwork componentNetwork2 = (ComponentNetwork)componentPositioner1.EstablishNetwork();
        componentNetwork2.MoveObjectsState = true;
        componentNetwork2.DisplayComponent = workPart.ComponentAssembly.RootComponent;
        componentNetwork2.NetworkArrangementsMode = ComponentNetwork.ArrangementsMode.Existing;
        componentNetwork2.RemoveAllConstraints();
        NXObject[] movableObjects2 = { o2.OwningComponent };
        componentNetwork2.SetMovingGroup(movableObjects2);
        componentNetwork2.Solve();
        componentNetwork2.BeginDrag();
        componentNetwork2.DragByTransform(trans, rot);
        componentNetwork2.EndDrag();
        componentNetwork2.ResetDisplay();
        componentNetwork2.ApplyToModel();

Es wird kein Fehler generiert, aber es findet auch keine Verschiebung statt.

[Diese Nachricht wurde von denizO am 02. Okt. 2009 editiert.]

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 02. Okt. 2009 16:07    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 denizO 10 Unities + Antwort hilfreich

Hallo Denis,

schau' mal in die Assembly-Klasse. Glaub' da gibt's ein paar shared Functions zum Positionieren.

Gruß, Michael

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

denizO
Mitglied
Student


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

Beiträge: 26
Registriert: 08.07.2009

erstellt am: 02. Okt. 2009 16:19    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 Michael,

Danke für den Hinweis. Du meinst UF_Assem?

Viele grüße

Denis

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

denizO
Mitglied
Student


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

Beiträge: 26
Registriert: 08.07.2009

erstellt am: 02. Okt. 2009 19:49    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 es jetzt gefunden:

- ComponentAssembly.MoveComponent

Ein Problem bleibt aber noch: die Verschiebung geht nicht in z-Richtung, wie vorgesehen, sondern in y-Richtung. Das finde ich sehr komisch, denn ich benutze folgendes:

Code:
componentAssembly1 = theSession.Parts.Work;
// Verschiebung für MoveComponent
Vector3d trans = new Vector3d(0,0,10);
componentAssembly1.MoveComponent(comp,trans,rot)

Damit verschiebt sich dann die Komponente in y-Richtung und nicht in z-Richtung. Dies wird auch durch

Code:
Component.GetPosition

bestätigt.

Kann es irgendwie sein, dass hier zwei unterschiedliche Koordinatensysteme im Spiel sind, die zueinander verdreht sind?

Viele Grüße und Dank

Denis

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 03. Okt. 2009 10:39    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 denizO 10 Unities + Antwort hilfreich

Hallo Denis,

der Bezug ist das KS des Assemblies, nicht ABS oder WCS vom Displayed Part. Siehe net_ref.chm, NXOpen.Assemblies.ComponentAssembly.MoveComponent in den Anmerkungen.

Daneben fällt mir in der Zeile

componentAssembly1 = theSession.Parts.Work

auf, daß Du hier die Typen durcheinander wirfst. theSession.Parts.Work ist vom Typ Part, componentAssembly1 ist vermutlich Component, mehr ist in Deinen Zeilen nicht zu erkennen. Option Strict On wäre hier zu empfehlen.

Gruß, Michael

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

denizO
Mitglied
Student


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

Beiträge: 26
Registriert: 08.07.2009

erstellt am: 03. Okt. 2009 12:20    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 Michael,

vielen Dank für Deine hilfreiche Antwort über die zwei verschiedenen Koordinatensysteme.
Eigentlich sollte es wohl heißen:

Code:
componentAssembly1 = theSession.Parts.Work.ComponentAssembly

Ich musste und muss den Code leider wieder einmal aus dem Kopf schreiben, da ich von zu hause keinen Zugang habe.

Aber ist es nicht komisch, dass sich dann

Code:
Component.GetPosition

auf das KS des Displayed Part bezieht, währen sich
Code:
ComponentAssembly.MoveComponent

auf das KS der Assembly bezieht?

Kann man vielleicht die beiden KS auf einfache Weise ineinander mappen? Oder steht dies in net_ref.chm (auf die jetzt leider keinen Zugriff habe)?

Viele Grüße

Denis

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 03. Okt. 2009 13:40    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 denizO 10 Unities + Antwort hilfreich

Hallo Denis,

komisch mag das sein ... ist halt so.

Mapping ist über UFSession > CSYS oder UFSession > TRNS zu machen. Steht sicher genauer in der Doku.

Gruß, Michael

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

denizO
Mitglied
Student


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

Beiträge: 26
Registriert: 08.07.2009

erstellt am: 05. Okt. 2009 09:24    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 Michael,

vielen Dank nochmals für Deine Hilfe.

Eine letzte Frage: Wie kann ich mir das CSYS des Assembly Space ausgeben lassen? In ComponentAssembly habe ich nichts dazu gefunden.

Viele Grüße

Denis

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



Ingenieur / Wirtschaftsinformatiker als Prozessentwickler im Bereich Methoden & Tools (m/w/d)

Ingenieur / Wirtschaftsinformatiker als Prozessentwickler im Bereich Methoden & Tools (m/w/d)

  • Einstiegslevel: Professionals
  • Beschäftigungsverhältnis: Vollzeit
  • Funktionsbereich: Forschung & Entwicklung
  • Standort: Kromberg & Schubert Automotive GmbH & Co. KG, Raitestraße ...
Anzeige ansehenWirtschaftsinformatik
mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 05. Okt. 2009 11: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 Nur für denizO 10 Unities + Antwort hilfreich

Hallo Denis,

evtl. geht's über die RootComponent des ComponentAssembly. Das ist ja letztlich eine "normale" Komponente, die mit GetPosition abgefragt werden kann.

Gruß, Michael

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