(defun c:Schnittlinie (/ a b c d te fangold celold tileold STL STR QW X x1 x2 x3 x4 x5 w wb) (setq cmdold (getvar "cmdecho")) (setvar "CMDECHO" 0) (setq fangold (getvar "OSMODE")) (setvar "osmode" 0) (setq celold (getvar "CELTSCALE")) (setvar "CELTSCALE" 1.5) (setq typeold (getvar "celtype")) (command "-linientyp" "setzen" "acad_iso10W100" "") (setq tileold (getvar "tilemode")) (setvar "TILEMODE" 0) (setq oldlayer (getvar "clayer")) (Command "Layer" "m" "Schnitt" "en" "schnitt" "t" "Schnitt" "EI" "Schnitt" "" ) (Setq A (getpoint "\n Links;unten: ")) (Setq B (getpoint a "\n Rechts;oben: ")) (initget 1) (Setq TE (getstring "\n Welcher Schnitt? ")) (berechnung) (command "_pline" a b "") (text) (pfeil) (Reset) ) (defun text () (setq h 4) (if (= Z 1) (progn (setq STL (list (- (car A) 4.5) (- (cadr A) 2.5))) (setq STR (list (+ (car D) 2) (- (cadr D) 2.5))) ) (progn (setq STL (list (- (car A) 1.8) (- (cadr A) 5))) (setq STR (list (- (car D) 1.8) (+ (cadr D) 1.8))) ) ) (setq TE (strcase TE)) (command "text" STL h "" TE) (command "text" STR h "" TE) ) (Defun pfeil () (if (= Z 1) (progn (setq STP (list (+ (car A) 2.5) (cadr A)))) (progn (setq STP (list (car A) (+ (cadr A) 2.5)))) ) (if (= Z 1) (setq QW 0) (setq qW (/ pi 2)) ) (pfeilzeich) (setq stp d) (if (= z 1) (setq stp (list (- (car D) 2.5) (cadr D))) (setq stp (list (car D) (- (cadr D) 2.5))) ) (pfeilzeich) ) (defun pfeilZeich () (setq b (polar STP (+ (/ pi 3) qw) 4)) (setq c (Polar b (+ pi qw) 4)) (setq x5 (polar STP (+ (/ pi 2) qw) 10)) (Command "_pline" STP b c "S") (command "_pline" STP X5 "") ) (defun berechnung () (setq d 0) (setq x1 0) (setq x2 0) (setq x3 0) (setq x4 0) (setq x1 (Car A)) (setq x2 (cadr A)) (setq x3 (Car B)) (setq x4 (cadr B)) (setq wB (angle A B)) (setq w (/ (* WB 180.0) pi)) (if (or (> W 315) (< w 45)) (Progn (Setq z 1) (setq d (list x3 x2))) (Progn (setq z 2) (setq d (list X1 X4))) ) ) (defun reset () (setvar "cmdecho" 1) (setvar "clayer" oldlayer) (setvar "osmode" fangold) (setvar "Celtype" typeold) (setvar "CELTSCALE" celold) (setvar "tilemode" tileold) ) (defun *error* (msg) (princ "error: ") (princ msg) (Princ "\n PROGRAMM ABGEBROCHEN") (reset) )