zurück zum Inhaltsverzeichnis


;; DL.lsp
;; Differenz festlegen und Objekt nach beiden Seiten
;; verlängern oder verkuerzen. Nur im 2D zu verwenden!
;;
;; Anwendung: (load "DL")
;; Befehlszeile DL   oder
;; Werkzeugkastensymbol mit (load "DL");DL;
;;
;; (c) Stefan Lagotzki - Alle Rechte vorbehalten -
;; 
;; Dieses Werkzeug darf ausschliesslich
;; frei und kostenlos verteilt werden.
;; Eine implizite oder explizite Garantie
;; fuer das Funktionieren dieses Werkzeugs
;; wird nicht gegeben.
;;
;; Fragen und Anregungen: info@lagotzki.de

(defun C:DL()
(setvar "CMDECHO"  0) 
(command "_undo" "_group")
(setq Objektname (car (entsel "Bitte Linie waehlen: "))
      Objektlaengendifferenz 
      (getdist "\nBitte die Differenz auf beiden Seiten zur jetzigen Länge eingeben:  ")
      
      Objekt (entget Objektname)
      P1 (cdr (assoc 10 Objekt))
      P2 (cdr (assoc 11 Objekt))
      alte_Objektlaenge (distance P1 P2)

      abstand  Objektlaengendifferenz
      winkel (angle P1 P2)
      new_P1 (polar P1 (angle P2 P1) abstand)
      new_P2 (polar P2 (angle P1 P2) abstand)
      
      P1L (list 10 (nth 0 new_P1) (nth 1 new_P1) (nth 2 new_P1))
      P2L (list 11 (nth 0 new_P2) (nth 1 new_P2) (nth 2 new_P2)))
      (setq Objekt (subst P1L (assoc 10 Objekt) Objekt))
      (setq Objekt (subst P2L (assoc 11 Objekt) Objekt))
      (entmod Objekt)
      (command "_undo" "_end")
      (setvar "CMDECHO"  1)
      (prompt "\n Fertig :-)")
      (princ)
)