| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: 3D Volumenkörper Winkel zwischen 2 Linien (1724 mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2021/2022 CAD+T HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 12. Sep. 2010 13:04 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich habe hier einen Volumenkörper mit Schmiegen an den Kanten. Nun möchte ich mittels 1 - 2 Klicks die Gradzahl zwischen den Linien ermitteln. Sieht da jemand eine Möglichkeit? Ich suche hier nach einem Lösungsansatz für ein evtl. kleines VBA - Tool. Vielen Dank im voraus.
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Sep. 2010 13:57 <-- editieren / zitieren -->
Hi, Punkt 1 mit Objektfang _NEA holen Punkt 2 mit Objektfang _PER holen und geometrisch zwischen diesen beiden Punkten den Winkel ermitteln. HIlft das? Wenn nicht, dann braucht es eine 'intensivere' Beschreibung der Fragestellung. - alfred - ------------------ www.hollaus.at |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 12. Sep. 2010 20:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred! Danke für die Info. Irgendwie so stelle ich es mir vor. Code:
Private Sub cmdOK_Click() Dim Prompt1 As String Dim Prompt2 As String Dim FirstPt(2) As Double Dim SecondPt(2) As Double Dim VFirstPt As Variant Dim VSecondPt As VariantDim OldOsnap As Variant Dim MWinkel As Double Dim WinkelXY As String On Local Error Resume Next Me.Hide OldOsnap = ThisDrawing.GetVariable("osmode") Prompt1 = "Bitte den 1. Punkt wählen" Prompt2 = "Bitte den 2. Punkt wählen" ThisDrawing.SetVariable "osmode", 512 'NEA VFirstPt = ThisDrawing.Utility.GetPoint(, Prompt1) FirstPt(0) = VFirstPt(0) FirstPt(1) = VFirstPt(1) FirstPt(2) = VFirstPt(2) ThisDrawing.SetVariable "osmode", 8192 'PAR VSecondPt = ThisDrawing.Utility.GetPoint(, Prompt2) SecondPt(0) = VSecondPt(0) SecondPt(1) = VSecondPt(1) SecondPt(2) = VSecondPt(2) MWinkel = ThisDrawing.Utility.AngleFromXAxis(FirstPt, SecondPt) WinkelXY = ThisDrawing.Utility.AngleToString(MWinkel, acDegrees, ThisDrawing.GetVariable("Auprec")) MsgBox WinkelXY, vbInformation End Sub
Dann bekomme ich zwar einen Winkel, aber nicht den den ich wirklich benötige. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Sep. 2010 20:36 <-- editieren / zitieren -->
Hi, mit .AngleFromXAxis kommst Du nicht weiter, das Verdrehen des BKS hat dabei keine Auswirkung. Du musst schon selbst (mathematisch) den Winkel ermitteln, zuvor die Ebene, für die Du den Winkel erhalten willst. Leichter wird's natürlich, wenn Du davon ausgehst, dass die (in Deinem letzten Screenshot) obere Ebene horizontal ist und die Punkte aus der Vorderansicht senkrecht übereinander liegen, denn damit wird Deine Ebene schon ziemlich leicht definiert ==> in diesem Fall brauchst Du bei den Punkten nurmehr Z- mit Y-Wert tauschen (damit legst Du indirekt den Vektor auf die XY-Ebene) und fertig. - alfred - ------------------ www.hollaus.at |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 16. Sep. 2010 13:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred! Hallo VBA - Gemeinde! Wenn ich das über
Code:
ThisDrawing.SendCommand "_MEASUREGEOM" & vbCr & "A" & vbCr
mache, könnte man die Werte an Variablen übergeben?Hier hätte ich ja alles was ich benötige. - Abstand - Stärke der Platte - Winkel ----------------------------------------------------------------- Befehl: _MEASUREGEOM Option eingeben [Abstand/Radius/Winkel/Fläche/Volumen] <Abstand>: _distance Ersten Punkt angeben: _mid von Zweiten Punkt angeben oder [Mehrere Punkte]: _per nach Abstand = 31.5029, Winkel in XY-Ebene = 180.00, Winkel von XY-Ebene = 40.60 Delta X = -23.9204, Delta Y = 0.0000, Delta Z = 20.5000 ----------------------------------------------------------------- ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Sep. 2010 14:06 <-- editieren / zitieren -->
Hi, ich weiss zwar jetzt nicht, von welchem Winkel Du jetzt sprichst, der Dir hier angezeigt wird (ich wäre der Meinung gewesen, es handle sich um einen Körper, der halt irgendwie abgeschrägt wurde, MEASUREGEOM zeigt Dir sicher nicht 4 Winkel an, wenn beispielsweise 4 Seiten mit unterschiedlichen Winkeln behandelt wurden). Aber auch wenn's der ist, keine (mit bekannte) AutoCAD-VBA-Funktion ermöglicht es Dir, direkt aus der Befehlszeile etwas auszulesen. Abhilfe: Protokoll einschalten, dann Befehl starten, Protokoll ausschalten und die Protokolldatei dann mit VBA einlesen. - alfred - ------------------ www.hollaus.at |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|