| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: VB - NX6 - Flächen Benennen (2694 mal gelesen)
|
Alex3009 Mitglied
Beiträge: 6 Registriert: 02.10.2009
|
erstellt am: 02. Okt. 2009 19:16 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich benötige Hilfe bei einem kleinen Problem. Über den Block Styler möchte ich eine Fläche selektieren und der Fläche einen eigenen Namen geben. Fläche selektieren funktioniert schon. Jetzt suche ich nach einer Möglichkeit der selektierten Fläche den Namen zu vergeben. Wie kann ich den das selektierte Objekt ermitteln? Ich hoffe jemand kann mir helfen. Vielen Dank im voraus. Grüße Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
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:14 <-- editieren / zitieren --> Unities abgeben: Nur für Alex3009
Hallo Alex, welchen Typ liefert der Styler für die selektierten Objekte zurück? Vermutlich NXObject(), das enthält die Methode setname . Falls es sich um den Typ Tag() handelt, kann der über den NXObjectManager umgewandelt werden. Alternativ kann ein Tag direkt über die UFSession zum Setzen des Namens verwendet werden, z.B.: dim ufs as UFSession = UFSession.GetUFSession ufs.obj.setname(...) Gruß, Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alex3009 Mitglied
Beiträge: 6 Registriert: 02.10.2009
|
erstellt am: 03. Okt. 2009 13:05 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, leider liegt hier das Problem, der Styler liefert mir nichts zurück. Public Function update_cb(ByVal block As NXOpen.BlockStyler.UIBlock) As Integer Try If block Is face_select0 Then '---- Enter your code here ----- .... Ich muss also selbst ermitteln welche Fläche gewählt wurde. Wenn ich mit SetName den Namen setzten will, dann brauche ich die ID der Fläche. Wie bekomme ich das selektierte Objekt heraus? Grüße Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
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 14:02 <-- editieren / zitieren --> Unities abgeben: Nur für Alex3009
Hallo Alex, in den CallBacks kannst Du auf die Elemente des Styler-Dialogs zugreifen, da muss es irgendwo die Selection und darin die selektierten Objekte geben. Nach den eher dürftigen Info's kann ich nur raten: face_select0 ist vermutlich die Selection, dann schreib' mal face_select0, mach' einen Punkt dahinter und schau' was Dir Intellisense zu sagen hat (vorausgesetzt, Du hast Visual Studio oder was vergleichbares). Da sollte eine Ask- oder Get- Methode, evtl. auch eine sog. Collection (Items, SelectedObjects o.ä.) auftauchen. Am besten stellst Du mal Code und Dialog als Anhang hier rein. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alex3009 Mitglied
Beiträge: 6 Registriert: 02.10.2009
|
erstellt am: 03. Okt. 2009 14:25 <-- editieren / zitieren --> Unities abgeben:
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 04. Okt. 2009 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für Alex3009
|
Alex3009 Mitglied
Beiträge: 6 Registriert: 02.10.2009
|
erstellt am: 04. Okt. 2009 10:52 <-- editieren / zitieren --> Unities abgeben:
|
Alex3009 Mitglied
Beiträge: 6 Registriert: 02.10.2009
|
erstellt am: 04. Okt. 2009 20:50 <-- editieren / zitieren --> Unities abgeben:
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
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 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für Alex3009
Alex ??? Frank ??? Hat das was mit Heimlichtuerei zu tun oder war die letzte Party so feucht, daß Du Deinen eigenen Namen nicht mehr kennst? Die Objekte sind, wie oben schon beschrieben, über face_select0 zu bekommen, erst über die Methode GetProperties, dann mit GetTaggedObjectVector. So kriegt man ein Array mit sog. TaggedObjects. Das erste Element des Arrays kann jetzt in ein NXObject gewandelt und mit setname den Namen zugewiesen bekommen. Dim t_obj() As TaggedObject = face_select0.GetProperties.GetTaggedObjectVector("SelectedObjects") Dim nx_obj As NXObject = CType(t_obj(0), NXObject) nx_obj.SetName("Name of Face") Gruß, Michael p.s.: Was verstehst Du unter Standardauswahl ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur (m/w/d) Maschinenbau | Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen ... | Anzeige ansehen | Konstruktion, Visualisierung |
|
Alex3009 Mitglied
Beiträge: 6 Registriert: 02.10.2009
|
erstellt am: 05. Okt. 2009 19:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, so schlimm war die letzte Party nun auch wieder nicht :-) Ich hatte mir Hilfe mit ins Boot genommen. Der Kommentar war nicht von mir, sondern von meinem guten alten Kumpel aus Saarbrücken, er hat keinen eigenen Zugang zu CAD.de, da er mehr im SAP Umfeld tätig ist (Danke). Deinen Tip habe ich auch probiert und was soll ich sagen: Dankeschööön, funktioniert prima. Grüße Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |