Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Texte 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
Autor Thema:  Texte verschieben (1615 mal gelesen)
RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 19. Sep. 2011 08:25    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 muss Texte auf einer Zeichnung verschieben.
Bis jetzt treffe ich die Auswahl über den Objektnamen.
z.B.
String ObjektName="Bla";
NXObject[] objekt1 = null;

var alleTexte = (display.Notes.ToArray()).Where(einText => einText.Name == ObjektName);
objekt1 = new NXObject[alleTexte.Count()];
int ii = 0;
foreach (Note einText in alleTexte)
    {
        objekt1[ii] = einText;
        ii++;
    }

objekt1 verschiebe ich dann mit dem MoveObjectBuilder
Soweit funktioniert das auch prima.

Nun muss ich die Texte aber über ein Fenster auswählen.

Point3d punktLinksUnten = new Point3d(211, 6, 0);
Point3d punktRechtsOben = new Point3d(412, 120, 0);

Ich habe keine Ahnung wie ich die Auswahl treffen soll.

Kann mir bitte jemand helfen?

------------------
Gruß Robert

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: 21. Sep. 2011 09:51    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 RobertM 10 Unities + Antwort hilfreich

Hallo Robert,

der SelectionManager gibt da m.E. nicht viel her. Eine denkbare Möglichkeit wäre, im Schritt 1 auf den gewünschten Bereich zu zoomen, dann über einen Cycle die sichtbaren Objekte zu greifen.

Gruß, Michael

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

RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 23. Sep. 2011 06:29    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,

so läuft es momentan auch ab.
Das Programm unterbricht für die Auswahl meiner Objekte.

mit
NXObject[] selobjekts = null;
Selection.Response resp1 = theUI.SelectionManager.SelectObjects("Auswahl", "Title",
    Selection.SelectionScope.AnyInAssembly, false, true, out selobjekts);

Das sind im übrigen nicht nur Texte, sondern auch Linien und Anwenderdefinierte Symbole (im grunde alles was im Schriftkopf ist und nicht aus Teamcenter kommt).

Dann läuft das Programm weiter ab.

Ist halt schade das ich das Tool unterbrechen muß, obwohl ich alle Informationen für einen automatischen Ablauf habe.

------------------
Gruß Robert

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: 23. Sep. 2011 08:09    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 RobertM 10 Unities + Antwort hilfreich

Hallo Robert,

beim SelectionManager musst Du interaktiv eingreifen. Mit den Cycle- Funktionen in der UFSession geht's auch ohne Eingriff.

Gruß, Michael

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

RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 23. Sep. 2011 08:48    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,

kannst du mir bitte mehr Info zur Cycle- Funktionen in der UFSession geben. Vielleicht mit Beispiel.
Mir sagt das gar nichts. Bin ja erst am lernen.

------------------
Gruß Robert

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: 23. Sep. 2011 12:50    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 RobertM 10 Unities + Antwort hilfreich

Hallo Robert,

in einem Punkt geb' ich Dir Recht: Man hat nie ausgelernt.

Aber nach über zwei Jahren sollte es möglich sein, in der Doku (net_ref.chm) nach einem Begriff (cycleobjects) zu suchen.

Gruß und schönes Wochenende,

Michael

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

RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 26. Sep. 2011 10:23    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

Ich habe jetzt eine Lösung. Ich finde sie sehr Umständlich, aber vielleicht geht es ja nicht anders.

1. Schleife über alle Tag's mit
tag1 = theUFSession.Obj.CycleAll(workPart.Tag, tag1);
2. dann
        NXObject nxObjekt1 = (NXObject)NXOpen.Utilities.NXObjectManager.Get(tag1);
3. if (nxObjekt1.GetType().ToString() == "NXOpen.Annotations.Note")
{
    String journalIdentifier1 = nxObjekt1.JournalIdentifier;
    NXOpen.Annotations.Note note1 = (NXOpen.Annotations.Note)workPart.FindObject(journalIdentifier1);
    Point3d point3d1 = new Point3d();
    note1.GetAssociativeOrigin(out point3d1);
}
das gleiche für "NXOpen.Annotations.CustomSymbol" usw.

jetzt kann point3d1 mit meinen Daten vergleichen und ggf. verschieben.
 

------------------
Gruß Robert

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

RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 27. Sep. 2011 08:14    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,

wahrscheinlich werde ich gleich wieder einen Rüffel bekommen.
Ich trau mich aber trotzdem zu fragen.

Ich möchte eine NXObjectList definieren, um dann mit der Append Methode mehrere NXObject[] hinzuzufügen.
Wie muß ich allObjects instanzieren?

NXObject[] allNotes = .....;
NXObject[] allLines = .....;
NXObject[] allCustomSymbols = .....;
Bis hierher ist alles klar.

NXObjectList allObjects;

allObjects.Append(allNotes);
allObjects.Append(allLines);
allObjects.Append(allCustomSymbols);

Ich hoffe, dass das dann funktioniert:

NXObject[] allObjectsBack=null ;
alleObjekte.SetContents(allObjectsBack);

------------------
Gruß Robert

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: 28. Sep. 2011 09: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 RobertM 10 Unities + Antwort hilfreich

Hallo Robert,

Du hast (2x) einen Hinweis bekommen, der Dich ans Ziel geführt hat. Oder sehe ich das falsch ?
Was Du hier offensichtlich als Rüffel betrachtest, sehe ich als Aufforderung, den Weg zu diesem Ziel selbst zu gehen. Oder erwartest Du, daß jemand anders diesen Weg für Dich geht ?

Gruß, Michael

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

RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 28. Sep. 2011 12:13    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,

natürlich versuche ich den Weg selbst zu finden.
Manchmal schaffe ich das halt nicht.

z.B. bin ich in der NXObjectList Class dem Hinweis
To create a new instance of this class, use Part.CreateObjectList
gefolgt.
Der führt mich aber zu einer ObjectList.
Ich denke NXObjectList ist sowieso nicht richtig. Ich möchte ja die Liste zurück als NXObject[] haben.
Die SelectNXObjectList Class scheint da angebrachter zu sein.
Allerdings ist der Konstruktor auch protected internal. Da kann ich wieder keine Instanz erstellen.

  Nachtrag:Select.. hat wieder was interaktives oder? Dann ist das ja auch nichts.

Ich bin mir auch nicht sicher, ob der Weg den ich einschlage überhaupt der Richtige ist.

Ich möchte alle möglichen Objecte einsammeln und dann gemeinsam verschieben.
Einzelne Gruppen verschieben habe ich ja dank deiner Hilfe schon geschafft.

Was mein größtes Problem überhaupt ist, ist das fehlende Wissen über die englischen Fachwörter.
Oft weiß ich gar nicht was gemeint ist. Und die Übersetzungen im Netz sind da nicht hilfreich.
Drum tu ich mich auch mit dem Suchen so schwer. Das soll jetzt keine Ausrede sein. Ist halt einfach so. Und kennen tu ich auch niemend, der mir da helfen könnte.

------------------
Gruß Robert

[Diese Nachricht wurde von RobertM am 28. Sep. 2011 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: 29. Sep. 2011 12: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 Nur für RobertM 10 Unities + Antwort hilfreich

Hallo Robert,

für's Verschieben nimmst Du Move Object, also den MoveObjectBuilder, richtig?
Dem kannst Du u.a. einzelne NXobjects oder ein Array übergeben mit ObjectToMoveObject.add(). Das wäre ein einfacher Weg, ohne selbst eine Instanz von ObjectList etc. anlegen zu müssen. Warum also komplizierter machen als es ist ?

Gruß, Michael

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

RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 29. Sep. 2011 13:34    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 deine Geduld.
Genau so habe ich es mit deiner Hilfe hinbekommen.
Ich habe eine Klasse mit der Methode

public void VerschiebeObjekte(Point3d StartPunkt, Point3d EndPunkt, NXObject[] Object1)

Nun wollte ich von meiner aufrufenden Methode alle gesammelten Objecte übergeben.
Drum die Anstrengung meinerseits. Es ist aber nicht zwingend notwendig.
Drum lasse ich es jetzt wie es ist.

------------------
Gruß Robert

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



Trainer 2D / 3D Bekleidungssoftware (m/w/d)

Digital is now! Die Assyst GmbH prägt mit ihren Produkten und Lösungen das digitale Arbeiten in der Bekleidungsindustrie und ist ein zuverlässiger und erfahrener Partner für die Digitalisierung der Branche. Die Lösungen von Assyst machen es möglich, kunden- und marktgerechte Produkte schnell und kostensparend zu entwickeln. Mit rund 120 Mitarbeitern an den Standorten in München und Lainate/Mailand sowie Partnern in zahlreichen Ländern ist Assyst weltweit aktiv....

Anzeige ansehenWeitere: Design, Gestaltung und Architektur
RobertM
Mitglied



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

Beiträge: 223
Registriert: 03.12.2008

noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit

erstellt am: 30. Sep. 2011 08: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


CNX_FindAndMove.txt

 
Nachdem hier so viel geschrieben und mitgelesen wurde, möchte ich einfach mal meine neue Klasse hier reinstellen.

Vielleicht kann sie ja jemand, wenigstens teilweise, verwenden.

Die logFile.WriteLine aufrufe müssen ggf. durch ListingWindow ersetzt werden.

Für Tipps zur Verbesserung der Programmierung an sich bin ich immer dankbar.

------------------
Gruß Robert

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