;;;Delain model for Abe_Hisashi ;;; Jan 7,2006 Takaya Iwamoto ;;; ;;; (defun c:Abe_Delian_model() (setup_sysvar) (setvar "PDMODE" 32) (setvar "PDSIZE" -3) (setq pnt_org '(0 0) a_val 1.25 a_sqr (* a_val a_val) a_cube (* a_sqr a_val) a_4th (* a_cube a_val) pnt_p '(-1 0) pnt_q (list 0 a_val) pnt_r (list a_sqr 0) pnt_s (list 0 (- a_cube)) pnt_t (list (- a_4th) 0) x_left '(-1.5 0) x_right '(3.5 0) y_up '(0 3.75) y_down '(0 -2.5) chr_size 0.25 chr_size2 0.20 chr_size3 0.10 pnt_a '(-1 -2.5) pnt_b '(0 -2.5) pnt_c '(1 -2.5) pnt_ad '(-1 2.75) pnt_bd '(0 2.75) pnt_cd '(1 2.75) pnt_d (list -1.5 (- a_cube)) pnt_e '(-1.5 0) pnt_f (list -1.5 a_cube) pnt_dd (list 4.5 (- a_cube)) pnt_ed '(3.75 0) pnt_fd (list 3.75 a_cube) pnt_tx1 '(-0.5 -0.25) pnt_tx2 '(0.1 0.5) pnt_tx3 '(0.62 0.1) pnt_tx4 '(0.05 -1.0) pnt_tx5 '(0.80 0.2) pnt_tx6 '(0.2 -0.85) side_len 0.2 ) ;;start (make_line_1 "0" 8 pnt_b pnt_bd) (make_line_1 "0" 8 pnt_e pnt_ed) (make_pt "0" 0 pnt_org) (mark_id pnt_org "O" 4 chr_size ) (mark_id pnt_e "E" 4 chr_size ) (mark_id pnt_ed "E'" 4 chr_size ) (mark_id pnt_b "B" 3 chr_size ) (mark_id pnt_bd "B'" 3 chr_size ) (make_jpg) (alert "\nDefine points P and Q.") (make_pt "0" 0 pnt_p) (make_pt "0" 0 pnt_q) (mark_id pnt_p "P" 3 chr_size ) (mark_id pnt_q "Q" 3 chr_size ) (textdisplay "1" pnt_tx1 chr_size 0.) (textdisplay "a" pnt_tx2 chr_size 0.) (make_jpg) (alert "\nDraw line PQ.") (make_line_1 "0" 2 pnt_p pnt_q) (right_angle pnt_p pnt_q pnt_r 1 side_len) (make_pt "0" 0 pnt_r) (mark_id pnt_r "R" 4 chr_size ) (make_jpg) (alert "\nDraw line QR") (make_line_1 "0" 0 pnt_q pnt_r) (textdisplay "a" pnt_tx3 chr_size 0.) (textdisplay "2" pnt_tx5 chr_size2 0.) (right_angle pnt_q pnt_r pnt_s 1 side_len) (make_pt "0" 0 pnt_s) (mark_id pnt_s "S" 4 chr_size ) (make_jpg) (alert "\nDraw line RS") (make_line_1 "0" 3 pnt_r pnt_s) (make_line_1 "0" 8 pnt_p pnt_s) (textdisplay "a" pnt_tx4 chr_size 0.) (textdisplay "3" pnt_tx6 chr_size2 0.) (make_jpg) ;;-------------------------------------------------- (alert "\nDraw horizontal ref lines") (make_line_1 "0" 8 pnt_d pnt_dd) (mark_id pnt_d "D" 2 chr_size ) (mark_id pnt_dd "D'" 2 chr_size ) (make_jpg) (make_line_1 "0" 8 pnt_f pnt_fd) (mark_id pnt_f "F" 4 chr_size ) (mark_id pnt_fd "F'" 4 chr_size ) (make_jpg) ;;-------------------------------------------------- (alert "\nDraw vertical ref lines") (make_line_1 "0" 8 pnt_a pnt_ad) (mark_id pnt_a "A" 3 chr_size ) (mark_id pnt_ad "A'" 3 chr_size ) (make_jpg) (make_line_1 "0" 8 pnt_c pnt_cd) (mark_id pnt_c "C" 3 chr_size ) (mark_id pnt_cd "C'" 3 chr_size ) (make_jpg) ;;---------------------------------------------------- (alert "\nDraw edge lines.") (setq pnt_da (inters pnt_a pnt_ad pnt_d pnt_dd nil)) (make_line_1 "0" 1 pnt_ad pnt_da) (setq line_aa (entlast)) (make_line_1 "0" 6 pnt_da pnt_dd) (setq line_dd (entlast)) (make_jpg) (command "_.delay" 1000) ;;--------------------------------------------------- (alert "\nMake a mirror image of lines AA'\nQR is a mirror line. ") (command "_.mirror" line_aa "" pnt_q pnt_r "N") (setq pnt_1 (cdr (assoc 10 (entget (entlast)))) pnt_2 (cdr (assoc 11 (entget (entlast)))) pnt_pd (inters pnt_1 pnt_2 pnt_c pnt_cd nil) ) (make_jpg) (command "_.delay" 500) (make_pt "0" 0 pnt_pd) (make_line_1 "0" 2 pnt_q pnt_pd) (mark_id pnt_pd "P'" 1 chr_size) (make_jpg) (command "_.delay" 1000) ;;--------------------------------------------------- (alert "\nMake a mirror image of lines DD'. \nQR is a mirror line.") (command "_.mirror" line_dd "" pnt_q pnt_r "N") (setq pnt_3 (cdr (assoc 10 (entget (entlast)))) pnt_4 (cdr (assoc 11 (entget (entlast)))) pnt_sd (inters pnt_3 pnt_4 pnt_f pnt_fd nil) ) (make_jpg) (command "_.delay" 500) (make_pt "0" 0 pnt_sd) (make_line_1 "0" 3 pnt_r pnt_sd) (mark_id pnt_sd "S'" 1 chr_size) (make_line_1 "0" 8 pnt_pd pnt_sd) (make_jpg) (command "_.delay" 1000) (make_jpg) (command "_.delay" 500) (make_jpg) (command "_.zoom" "_E") (command "_.regen") ) ;;; ;;; ;;;right_angle ;;; (defun right_angle(pnt_a pnt_o pnt_b col_id side_len / pnt_c pnt_d pnt_e pnt_m) (setq pnt_c (pld pnt_o pnt_a side_len) pnt_e (pld pnt_o pnt_b side_len) pnt_m (plt pnt_c pnt_e 0.5) pnt_d (plt pnt_o pnt_m 2.0) ) (make_line_1 "0" col_id pnt_c pnt_d) (make_line_1 "0" col_id pnt_d pnt_e) ) ;;;