| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Koplanare Matrix3x3 im Journal erkennen? (1084 mal gelesen)
|
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 05. Jun. 2014 10:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich weiß nicht, ob das in NX im journal so möglich ist, aber ich habe folgendes Problem: Ich habe mehrere Matrix3x3 Objekte (array) und daraus filtere ich dann alle doppelten heraus. Nun ist mir aufgefallen, das ich mit der Matrix3x3.EQUAL Methode nur genau gleiche herausfinde. Wenn nun eine Matrix aber in der gleichen Ebene aber um die z-Achse um einen beliebigen Winkel rotiert ist, Sind die Matrizen natürlich nicht gleich. Wie könnte man solche Matrizen auch rausfiltern? Irgendeine Idee? Gruß Jo.Sch 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: 05. Jun. 2014 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für jo.sch
Hallo jo.sch, 3x3 enthält ja nur Richtungen, keine Position. Daher fehlt eine Information, um festzustellen, daß es sich um die selbe (X-Y)-Ebene handelt. Die Richtung der Z-Achse zweier Matrizen lässt sich ja vergleichen, aber damit ist nur gesagt, daß sie die selbe Richtung/Vektor haben, über die Position lässt sich nichts aussagen. Oder anders: Bei gleichem Normalenvektor sind zwei Ebenen parallel, können aber durchaus einen Abstand haben. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 05. Jun. 2014 13:02 <-- editieren / zitieren --> Unities abgeben:
Ob die parallel sind ist mir ja eigentlich egal. Ich lese die Matrix3x3 aus einem TEXT Feature (Textbuilder.PlanarFrame.CoordinateSystem.Orientation.Element) und einige Texte sind um z.B. 90° gedreht aber in der selben Ebene. Diese haben dann andere Matrix3x3 aber liegen für mich in einer Ebene. Diese möchte ich gerne rausfiltern... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 05. Jun. 2014 13:22 <-- editieren / zitieren --> Unities abgeben:
Das gibt er mir raus, wenn ich das Journal unten ausführe bei zwei Texten, die in der selben Ebene sind, aber der eine um 90° gedreht wurde. Scheint auch ein Toleranzproblem zu sein... Code: [Xx=1,Xy=0,Xz=0,Yx=0,Yy=1,Yz=0,Zx=0,Zy=0,Zz=1] [Xx=1,17145536458252E-15,Xy=1,Xz=0,Yx=-1,Yy=1,17145536458252E-15,Yz=0,Zx=0,Zy=0,Zz=1]
Code: Option Strict Off Imports System Imports NXOpen Imports NXOpen.FeaturesModule NXJournal Dim allMatrix3x3() As Matrix3x3 Sub Main (ByVal args() As String) Dim theSession As Session = Session.GetSession() Dim workPart As Part = theSession.Parts.Work Dim displayPart As Part = theSession.Parts.Display Dim lw As ListingWindow = theSession.ListingWindow lw.Open Dim tmpMarkId As Session.UndoMarkId tmpMarkId = theSession.SetUndoMark(Session.MarkVisibility.Visible, "text") Dim tmpTextbuilder As TextBuilder = Nothing For Each tmpFeature As Feature In workPart.Features If tmpFeature.FeatureType.ToString().ToUpper() = "TEXT" Then tmpTextbuilder = displayPart.Features.CreateTextBuilder(tmpFeature) lw.WriteLine(tmpTextbuilder.PlanarFrame.CoordinateSystem.Orientation.Element.ToString()) tmpTextbuilder.Destroy() End If Next End Sub End Module
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: 05. Jun. 2014 18:20 <-- editieren / zitieren --> Unities abgeben: Nur für jo.sch
Wenn ein eventueller Abstand nichts ausmacht oder nicht vorkommt, brauchst Du ja nur die Z-Vektoren der Matrizen vergleichen. Auf das Vorzeichen (entgegengesetzte Richtung) sollte man generell auch aufpassen, falls das vorkommen kann. Das "Toleranzproblem" hast du generell mit jedem Vergleich zwischen Double-Werten, da gibt's immer Rundungsfehler. 1,17145536458252E-15 ist zwar ganz nahe bei, aber doch nicht gleich Null. Reicht der Hinweis ? Gruß, Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 06. Jun. 2014 08:24 <-- editieren / zitieren --> Unities abgeben:
Reicht es, wenn einfach die Z Komponenten gleich sind? Egal welche Ebene? Oder bezieht sich das mit gleicher Z Komponente nur für Objekte in der XY Ebene (oder halt parallel dazu)... Oder müsste ich bei Objekten in der XZ-Ebene auf gleiche Y Kompoenenten gucken? Wie sähe das aus, wenn man komplett "schiefe" Ebenen hat? 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: 06. Jun. 2014 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für jo.sch
Hallo jo.sch, die Matrix gibt die Richtungen ihrer drei Vektoren grundsätzlich immer räumlich (schief) an. Zx,Zy und Zz sind die Komponenten des Z-Vektors. Wenn die bei zwei Matrizen gleich sind, heißt das, die beiden Vektoren zeigen in die selbe Richtung. Wenn zwei (Z-) Vektoren in die selbe oder entgegengesetzte Richtung zeigen, sind die dazu normalen Ebenen (XY) parallel zueinander. Nimm' zur Verdeutlichung einfach zwei DatumCsys her, damit sollt's klar werden. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 10. Jun. 2014 08:43 <-- editieren / zitieren --> Unities abgeben:
|
| Werkstudent (w/m/d) Konzeptentwicklung und Anlagenbau | Die Gewobag steht als bedeutende Berliner Wohnungsbaugesellschaft für ?Die ganze Vielfalt Berlins?. Mit über 74.000 Wohnungen zählen wir zu den größten Immobilienunternehmen bundesweit. Unser Immobilienbestand wächst und steht für die Vielfalt der Stadt. Soziale Quartiersentwicklung, Klimaschutz und wirtschaftliches Handeln sind uns bei der Entwicklung zukunftsorientierter Konzepte wichtig. Über ... | Anzeige ansehen | Studentenjobs, Werkstudent |
|
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: 10. Jun. 2014 09:49 <-- editieren / zitieren --> Unities abgeben: Nur für jo.sch
|