Inhaltsverzeichnis


;; Absteck-Werkzeug  Version 0.2
;;
;; (c) Stefan Lagotzki - Alle Rechte vorbehalten -
;; 
;; Dieses Werkzeug darf ausschliesslich
;; frei, kostenlos und unveraendert verteilt werden.
;; Eine implizite oder explizite Garantie
;; fuer das Funktionieren dieses Werkzeugs
;; wird nicht gegeben.
;;
;; Es wird weitere Versionen geben, bis die Version 1.0
;; erreicht ist.
;; Dieses Programm wurde in der AutoCAD User Group 
;; Sachsen (AUGS) am 11.01.2003 vorgestellt.
;;
;; Fragen und Anregungen: info@lagotzki.de
;; WWW-Seite  www.lagotzki.de/scripte/lisp

;; Dieses kleine LISP-Programm bringt die beiden Befehle
;; PAchse und PE mit. Mit PAchse kann man die aktuelle
;; Achse und die positive Richtung bestimmen.
;; Mit Hilfe der Befehle PE und PE2 stecken Sie, 
;; bezogen auf diese Achse, Punkte ab.

;; Die folgende Funktion ist einfach nur fuer das Umwandeln des
;; Koordinatenpaares in eine Zeichenkette verantwortlich.
;; Dabei wird ganz vorn und ganz hinten eine Klammer
;; hinzugefuegt. In die Mitte (zwischen x und y) kommt
;; ein Komma. Das ist hier nur fuer 2D-Koordinaten
;; implementiert!
;; Es folgen aehnliche Funktionen fuer andere Anwendungszwecke.


(defun cvp (Punkt)
   (strcat "(" (rtos (car Punkt) 2 2) "," (rtos (car (cdr Punkt)) 2 2) ")" )
)


(defun cvpx (Punkt)
   (strcat "x=" (rtos (car Punkt) 2 2))
)

(defun cvpy (Punkt)
   (strcat "y="  (rtos (abs (car (cdr Punkt))) 2 2))
)


(defun mp(P1 P2)
    (polar 
        P1
        (angle P1 P2)
        (/ (distance P1 P2) 2))
)


(defun C:PAchse()

   (command "_ucs" "_world")   
   (command "_layer"  "_make" "Lotlinien" "")
   (command "_layer"  "_make" "Achsen" "")

   (setq APunkt NIL BPunkt NIL CPunkt NIL)

   (setq APunkt (getpoint "\n Bitte den Anfangspunkt der Achse angeben! ")
         BPunkt (getpoint "\n Bitte den Endpunkt der Achse angeben! ")
         CPunkt (getpoint "\n Bitte die positive Seite waehlen! "))

   (setq old_OSMODE (getvar "OSMODE"))
   (setvar "OSMODE" 0)
   (command "_line" APunkt BPunkt "")
   (setvar "OSMODE" old_OSMODE)
   (princ)
)


(defun C:PE()
 (setq old_OSMODE (getvar "OSMODE"))
 (setvar "OSMODE" 0)
 (command "_ucs" "_world")
 (if (and Apunkt BPunkt CPunkt) 
  (progn   
    (command "_ucs" "_3P" APunkt BPunkt CPunkt)

    (setq Punkt (getpoint "\n Bitte einen Punkt eingeben:  "))
    (entmake 
       (list (cons  0  "TEXT") 
             (cons  8  "Beschriftung")
             (cons 10  (trans Punkt 1 0)) 
             (cons 40  0) 
             (cons 1   (cvp Punkt))
       )
    )
    (command "_layer"  "_make" "Lotlinien" "_set" "Lotlinien" "")
    (setq fusz  (trans (list (car Punkt) 0) 1 0))
    (setq start (trans            Punkt     1 0))

    (command "_ucs" "_world")
    (command "_line" start fusz "")
    (setvar "OSMODE" old_OSMODE)
  )
  (alert "Bitte die Achse mit dem Befehl PAchse bestimmen! ")
 )
)



(defun C:PE2()
 (setq old_OSMODE (getvar "OSMODE"))
 (setvar "OSMODE" 0)
 (command "_ucs" "_world")
 (if (and Apunkt BPunkt CPunkt) 
  (progn   
    (command "_ucs" "_3P" APunkt BPunkt CPunkt)
    (setq Punkt (getpoint "\n Bitte einen Punkt eingeben:  "))
    (setq fusz  (trans (list (car Punkt) 0) 1 0))
    (setq start (trans            Punkt     1 0))
    (entmake 
       (list (cons  0  "TEXT") 
             (cons  8  "Beschriftung")
             (cons 10  (trans Punkt 1 0)) 
             (cons 40  0) 
             (cons 1   (cvpy Punkt))
       )
    )
    (entmake 
       (list (cons  0  "TEXT") 
             (cons  8  "Beschriftung")
             (cons 10  (trans (list (car Punkt) 0) 1 0))
             (cons 40  0) 
             (cons 1   (cvpx Punkt))
       )
    )
    (command "_layer"  "_make" "Lotlinien" "_set" "Lotlinien" "")
    (command "_ucs" "_world")
    (command "_line" start fusz "")
  )
  (alert "Bitte die Achse mit dem Befehl PAchse bestimmen! ")
 )
 (setvar "OSMODE" old_OSMODE)
)