Gruppencode 42 ? / Lisp
FiRePhoeniX 31. Mrz. 2010, 12:15

Hallo Forum,
ich hätte mal wieder eine Frage an euch.

Wollte fragen ob mir jemand erklären kann, was es mit den Gruppencode 42 bei der LWPolyline aus sich hat.
Es handelt hier sich um eine Ausbuchtung. Aber was soll die „Ausbuchtung“ sein?
Wichtiger ist wie sie errechnet?

Hoffe jemand kann mir helfen und versteht die Frage.
Danke im vor raus.

Mit freundlichen Grüßen

FiRE

alfred neswadba 31. Mrz. 2010, 12:18

Hi,

es handelt sich dabei um den 'Bulge'-Wert, Suchergebnisse dazu: >>>hier<<<

- alfred -

CADmium 31. Mrz. 2010, 13:01

am besten (auch mit ein paar Bildchen) ist es IMHO bei www.afralisp.net  beschrieben.

Ich schenk dir mal ne Funktion die aus den Beiden Bogenendpunkten und dem Bulgefaktor alles weitere Berechnet:
Parameter     : P1   -[List(3x Real)] - Anfangspunkt 
                P2   -[List(3x Real)] - Endpunkt des Bogensegments
                BULGE-[REAL]          - Bogenfaktor
Rückgabe      : INFO  [LIST] - R [Real]          .. Radius                    
                             - M [List(3x Real)] .. Mittelpunkt               
                             - W [REAL]          .. eingeschlossener Winkel   
                             - W1[REAL]          .. Startwinkel               
                             - W2[REAL]          .. Endwinkel                 

(defun DT:PL-BULGE-INFO(P1 BULGE P2 / W C S R M W1 W2)
  (if(and(numberp BULGE)(not(zerop BULGE))        
         (not(vl-remove-if
               '(lambda(x) (and(=(type X)'LIST)
                               (=(length X)3)
                               (not(vl-remove-if'(lambda(y)(numberp y))X))
                           )
                )
                (list P1 P2)
              )
         )
     )
    (progn
      (setq W (* 4.0 (atan (abs BULGE))))           ;_ eingeschlossenen Winkel ermitteln
      (setq C (distance P1 P2))               ;_ Abstand der Bogenendpunkte(Sehnenlänge)
      (setq S (*(/ C 2.0)(abs BULGE)))                 ;_ Bogenhöhe über der Sehne P1-P2
                                                 ;_ Bogenradius mit Pythagoras ermitteln
                                   ;_ Radius über trigonometrische Beziehungen ermitteln
      (setq R  (/ (/ C 2.0) (sin (/ W 2.0))))     
      (setq M (polar     ;_ Bogenmittelpunkt über trigonometrische Beziehungen ermitteln
                 P1
                (if (>= BULGE 0)
                  (+ (angle P1 P2) (/ (- pi W) 2.0))
                  (- (angle P1 P2) (/ (- pi W) 2.0))
                )
                R
              )
      )
      (setq W1 (angle M P1))                                              ;_ Startwinkel
      (setq W2 (angle M P2))                                                ;_ Endwinkel
      (if (< W2 W1) (setq W2(+ W2 (* Pi 2.0))))
      (list R M W W1 W2)
    )
  ) 
)

Daraus dann die Umkehrfunktion zu bauen sollte nicht das Problem sein ??!

FiRePhoeniX 31. Mrz. 2010, 14:38

Danke euch beiden für die Mühe,
aber ich bin einfach zu blöd dafür.

Kurze Erklärung für ich eigentlich machen will.
Ich habe drei Punkte.
P1 = Anfangspunkt des Bogens (LWPOLY)
P2 = Endpunkt des Bogens (LWPOLY)
P3 = Krümmungspunkt des Bogens (LWPOLY)

Mit diesen drei Werten möchte ich gerne die Ausbuchtung errechnen.

Habe auf www.afralisp.net  gelesen das die Ausbuchtung = Tan (Winkel/4) ist.
Die Frage ist nur welcher Winkel ist gemeint. An dieser Stelle will ich sagen das mein Englisch echt bescheiden ist.
Ich bräuchte eigentlich nur die Formel um aus den Drei Punkten die Ausbuchtung zu errechnen.

Vielen Dank noch mal.

Mit freundlichen Grüßen

FiRE

Theodor Schoenwald 31. Mrz. 2010, 14:40

Hallo,

hier: http://www.afralisp.net/lisp/Bulges1.htm
sind gute Informationen zu dem Thema.

Wie ich gesehen habe, kam mein Hinweis 3 Minuten zu spät.

Gruß
Theodor Schönwald
www.cad-cnc.com

[Diese Nachricht wurde von Theodor Schoenwald am 31. Mrz. 2010 editiert.]