| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Selektieren von Kanten und Auswerten InfoObjekt (2452 mal gelesen)
|
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 14. Jul. 2010 11:46 <-- editieren / zitieren --> Unities abgeben:
Hi, ich versuche mich gerade etwas an der NXOpen Programmierung und komme gerade nicht wirklich weiter. Ich möchte von einem Drehkörper alle Durchmesser (Edges) makieren und davon die Mittelpunkte und die Durchmesser bzw. Radien auslesen. Frage No. 1 wie kann ich alle Kanten makieren? ( Über workpart.Features komm ich ja leider nicht ran oder?) Frage No. 2 wie kann ich die Auswertung von Information>Object in z.b. ein Array schieben um es auszuwerten? Weil ich kann das Infofenster ja nur anzeigen lassen bzw. in eine Datei umleiten... Vielen Dank im voraus! Gruß ------------------ Gruß Matthias ------------------------------------ ICQ: 163190295 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 14. Jul. 2010 15:17 <-- editieren / zitieren --> Unities abgeben:
So komme ich zumindest schon mal zu den Kanten und Lese die Längen aus, aber ich komm einfach nicht weiter...: foreach (NXOpen.Body body in workPart.Bodies) { foreach (NXOpen.Edge edge in body.GetEdges()) { theSession.ListingWindow.WriteLine(edge.GetLength().ToString()); } break; } ------------------ Gruß Matthias ------------------------------------ ICQ: 163190295 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 14. Jul. 2010 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für gfx-toxic.de
|
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 15. Jul. 2010 13:08 <-- editieren / zitieren --> Unities abgeben:
Hi Michael, kannst du mir mal kurz ein Beispiel aufreisen wie ich den Durchmesser bekomm...es reichen auch Stichpunkte. Ich komm mit der Klasse überhaupt nicht klar. Es gibt ja GeometricProperties.Edge mit der Eigenschaften Curvature...komm ich da auf den Durchmesser? Vielen Dank schon mal... ps.:in uganswer find ich leider auch nichts... ------------------ Gruß Matthias ------------------------------------ ICQ: 163190295 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 15. Jul. 2010 13:35 <-- editieren / zitieren --> Unities abgeben:
so ich hab es jetzt geschafft Bögen auszulesen von den drei Maßen die ich brauche. Problem ist jetzt das ich nur auf "Bögen" Arc´s zugreifen kann, aber nicht auf die Körperkanten (Edges) weil da können ja auch Geraden dabei sein... Hmmmm...idee? foreach (NXOpen.Arc arc in workPart.Arcs) { lw.WriteLine(arc.Radius.ToString()); } ------------------ Gruß Matthias ------------------------------------ ICQ: 163190295 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 15. Jul. 2010 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für gfx-toxic.de
Hallo Matthias, hier mal ein paar Zeilen, die bei mir funktionieren: Code: Dim g_prop As GeometricProperties = wp.AnalysisManager.CreateGeometricPropertiesObject Dim added As Boolean = g_prop.ObjectsForAnalysis.Add(crv) Dim result As GeometricProperties.Edge Dim stat As GeometricProperties.Status = g_prop.GetEdgeProperties(crv, loc, result) If stat = GeometricProperties.Status.Success Then .... ....
In resultstehen dann i.d.R. die Werte der crv an der locdrin. Die Frage, wie Du aus der Krümmung den Durchmesser kriegst, ist nicht ganz ernst gemeint, oder ??? Mir dem AnalysisManager kannst Du alle Kurventypen abfragen, egal ob Edge, Line, Spline etc... Bei der Linie ist halt die Krümmung = 0 , daher ist eine Fallunterscheidung je nach Kurventyp zu empfehlen. Gruß, Michael p.s.: Warum holst Du nicht einfach die gewünschten Kanten/Kurven per Selektion anstatt über die Collection ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 15. Jul. 2010 21:22 <-- editieren / zitieren --> Unities abgeben:
Okay Danke soweit Michael. Ich schau mal ob ich das morgen hinbekomm. Zitat: p.s.: Warum holst Du nicht einfach die gewünschten Kanten/Kurven per Selektion anstatt über die Collection ?
Weil ich absoluter Anfänger bin und ich keine Ahung habe wie das geht =) Gibt ein gutes Buch für NX Programmierung. Bei uganswers was zu finden...naja naja... Also Vielen Dank schon mal!! ------------------ Gruß Matthias ------------------------------------ ICQ: 163190295 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 16. Jul. 2010 12:25 <-- editieren / zitieren --> Unities abgeben: Nur für gfx-toxic.de
Hallo Matthias, ein gutes Buch über NXOpen? Ich kenn' noch nicht mal ein schlechtes ... Was aber hilft, ist eine gute Kenntnis der jeweiligen Sprache. Zu VB gibt's da jede Menge Info's, z.B. das Tutorial von Daniel Noll, zu finden bei www.activevb.de. NXOpen selbst beschränkt sich dann "nur" noch auf die vier dll's in ../UGII/managed und deren Verwendung - da gibt's m.W. nicht viel mehr als die NXOpen- Doku (Die neuen Versionen sind besser dokumentiert als z.B. bei NX4), darin insbesondere die net-ref.chm als Nachschlagewerk. Daneben gibt's die Beispiele auf support.ugs.com und die lokalen Beispiele, die auf der NX- DVD mit drauf sind. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 29. Jul. 2010 09:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, danke schon mal soweit ich versuch mich jetzt durchzubeisen. Eine Frage hätte ich jetzt nur mal kurz. Was ist der unterschied zwischen der normalen "Session" und der "UFSession" bzw. was ist allgemein der Unterschied zwischen dem NXOpen Namespace und NXOpen.UF? Danke und Gruß ------------------ Gruß Matthias ------------------------------------ ICQ: 163190295 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Techniker Maschinentechnik (m/w/d) | Die besten Köpfe für die unterschiedlichsten Aufgaben zu finden sowie Menschen und Technologien zu verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: als ambitionierte:r Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte.
Techniker Maschinentechnik (m/w/d) Oldenburg (Oldenburg) Dein Aufgabengebiet | Anzeige ansehen | Maschinenbau |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 29. Jul. 2010 14:15 <-- editieren / zitieren --> Unities abgeben: Nur für gfx-toxic.de
Hallo Matthias, das läßt sich auf einen einfachen Nenner bringen: UF:= User Function, darin sind die alten, auf C basierenden Klassen untergebracht, während hinter der NXOpen.Session die neue, sog. Common API steckt. Details sind im NXOpen Programmers Guide zu finden. Deutlicher Unterschied: Beim Aufzeichnen eines Journals bekommst Du nur das protokolliert, was sich in der Common API befindet, wird nichts aufgezeichnet, wird man i.d.R. bei UF fündig, muß halt nur selber suchen. Für's programmieren heißt das: Wenn's eine passende Klasse, Funktion etc. in der Session gibt, ist die zu bevorzugen. Falls nicht, dann zurück zu den UF's. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |