;;; Una volta lanciato il formato desiderato (A0, A1, A3, A4) digitare alla tastiera la scala ;;; della squadratura e premere invio; muovendosi sullo schermo di autocad verrą proposta la squadratura ;;; scelta. Cliccando in un punto dello schermo con il mouse verrą disegnata la squadratura con una polilinea. ;;; se invece della scala si digita "r" (erre minuscola) verrą proposto il foglio ruotato di 90°. (defun c:a0 () (DisegnaSquadratura 1.194 0.841) (princ) ) (defun c:a1 () (DisegnaSquadratura 0.841 0.594) (princ) ) (defun c:a3 () (DisegnaSquadratura 0.42 0.297) (princ) ) (defun c:a4 () (DisegnaSquadratura 0.21 0.297) (princ) ) (defun DisegnaSquadratura (LL HH) (setq OSMODEprec(getvar "OSMODE") ANGBASEprec(getvar "ANGBASE") ANGDIRprec(getvar "ANGDIR") AUNITSprec(getvar "AUNITS") clay(getvar "CLAYER") ) (setvar "OSMODE" 0)(setvar "CMDECHO" 0)(setvar "ANGBASE" 0)(setvar "ANGDIR" 0)(setvar "AUNITS" 2) (setq lista-num "" pp nil xy nil primo nil stringa "Scala 1:" ) (if (not stringa2)(progn (setq scala_i 1000)(setq stringa2 "1000"))) (setq stringa1(strcat stringa stringa2)) (princ "\r ") (princ "\r....... ")(princ stringa1) (while (/= primo 3) (setq xxx(grread 1 4 1)) (setq xy(nth 1 xxx)) (setq primo(nth 0 xxx)) (if (= primo 2)(progn (cond ((= xy 48)(setq lista-num(strcat lista-num "0"))) ((= xy 49)(setq lista-num(strcat lista-num "1"))) ((= xy 50)(setq lista-num(strcat lista-num "2"))) ((= xy 51)(setq lista-num(strcat lista-num "3"))) ((= xy 52)(setq lista-num(strcat lista-num "4"))) ((= xy 53)(setq lista-num(strcat lista-num "5"))) ((= xy 54)(setq lista-num(strcat lista-num "6"))) ((= xy 55)(setq lista-num(strcat lista-num "7"))) ((= xy 56)(setq lista-num(strcat lista-num "8"))) ((= xy 57)(setq lista-num(strcat lista-num "9"))) ((= xy 13)(vedi-scala LL HH)) ((= xy 114)(setq HH1 LL LL HH HH HH1)) ) (if (/= lista-num "")(progn (setq stringa1(strcat stringa lista-num)) (princ "\r ") (princ "\r....... ")(princ stringa1) )) ) ) (if (and (/= primo 2)(/= xy 0))(progn (setq xy1(polar xy 0 (* scala_i LL))) (setq xy2(polar xy1 (* 0.5 pi) (* scala_i HH))) (setq xy3(polar xy2 pi (* scala_i LL))) (grdraw xy xy1 -1)(grdraw xy1 xy2 -1)(grdraw xy2 xy3 -1)(grdraw xy3 xy -1) (if (= pp 1)(progn (grdraw xyv xy1v -1)(grdraw xy1v xy2v -1)(grdraw xy2v xy3v -1)(grdraw xy3v xyv -1))) (setq xyv xy xy1v xy1 xy2v xy2 xy3v xy3 pp 1) )) ) (command "_layer" "_m" "Squadratura" \r) (command "_pline" xy xy1 xy2 xy3 "_c") (redraw) (setvar "OSMODE" OSMODEprec)(setvar "ANGBASE" ANGBASEprec)(setvar "ANGDIR" ANGDIRprec)(setvar "AUNITS" AUNITSprec)(command "_layer" "_s" clay \r) (princ) ) (defun vedi-scala (L H) (setq scala_i(atoi lista-num)) (setq lista-num "") (setq xxx(grread 1 4 1)) (setq xy(nth 1 xxx)) (setq xy1(polar xy 0 (* scala_i L))) (setq xy2(polar xy1 (* 0.5 pi) (* scala_i H))) (setq xy3(polar xy2 pi (* scala_i L))) (prompt "\r ") (prompt "\r....... Scala 1:") (princ scala_i)(setq stringa2 (rtos scala_i 2 0)) ) (princ "\n Disegna squadratura - Copyright: ing. Claudio Granuzzo") (princ "\n Digitare A0, A1, A3, A4 per lanciare il programma!") (princ "\n")