;;
;; °æ»ç¸é¿¡ º¸ÀÌ´Â ¿ø ±×¸®±â - Ÿ¿ø(ellipse) draw ;;; ysJeong 2009.2.11 ;; ;--Error handler-------------------------------------------------------- (defun bot_er (s) (if (/= s "Function Cancelled") (if (= s "quit / exit abort") (princ) (princ (strcat "nERROR :" s)) ));if,if (setvar "cmdecho" ocmde) (setvar "osmode" oosmo)(setvar "clayer" cla) (setq *error* olderr)(princ)) ;--conversion angle-------------------------------------------------- (defun dtr (dtr1)(* pi (/ dtr1 180.00))) ;--sub routin for rotate---------------------------------------------- (defun ss-add () (while (setq lst(entnext lst))(ssadd lst ss) )) ;--layer control------------------------------------------------------- (defun out_lay () (command "layer" "s" "0" "")) ;¿ÜÇü¼±·¹À̾î 0 ¢º[»ç¿ëÀÚ°¡ ÁöÁ¤] (defun cen_lay () (command "layer" "s" "22" "")) ;Á߽ɼ±·¹À̾î 22 ¢º[»ç¿ëÀÚ°¡ ÁöÁ¤] ;--Lisp main---------------------------------------------------------- (defun C:TaWon (/ olderr ocmde osmode cla dsc dtc bp dia ang hdia sindia sdia p1 p2 p3 p4 p5 p6 p7 ss cl) (setq olderr *error* *error* bot_er) (setq ocmde (getvar "cmdecho") oosmo (getvar "osmode") cla (getvar "clayer") dsc (getvar "dimscale") dtx (getvar "dimtxt") );setq (setvar "cmdecho" 0) (setvar "osmode" 32) (graphscr) (initget 1) (setq bp (getpoint "n¡í¡í Pick the Base point : " )) (initget 7) (setq dia (getreal "n¡í¡í Input the Diameter : " )) (initget 7) (setq ang (getreal "n¡í¡í Input the Slope angle : " )) ;;---calculation------------------------------------------------------- (setq hdia (/ dia 2.0) sindia (sin (dtr ang)) sdia (* hdia sindia) );setq ;;---Point creation--------------------------------------------------- (setq p1 (polar bp (dtr 90.0) hdia) p2 (polar bp (dtr 0.0) sdia) p3 (polar bp (dtr 180.0) sdia) p4 (polar bp (dtr 90.0) (* hdia 1.2)) p5 (polar bp (dtr 270.0) (* hdia 1.2)) p6 (polar bp (dtr 0.0) (* sdia 1.2)) p7 (polar bp (dtr 180.0) (* sdia 1.2)) );setq ;;---Draw---------------------------------------------------------------- (setvar "osmode" 0) (out_lay) (command "ellipse" p2 p3 p1 "") (setq ss(ssadd) ss(ssadd (setq lst(entlast)) ss)) (setq cl (getstring "nAre you want Center Line? <Yes/No>[No]: ")) (if (or (= cl "y")(= cl "Y")) (progn (cen_lay) (command "line" p4 p5 "") (command "line" p6 p7 "") );progn );if ;--Draw after rotate--------------------------------------------------- (command "rotate" (ss-add) "" bp pause) ;-------------------------------------------------------------- (setvar "clayer" cla) (setvar "cmdecho" ocmde) (setvar "osmode" oosmo) (setq *error* olderr) (princ) );end of defun |