;;;Ying_Yang.lsp ;;;Draw Ying-Yang as continuous series of circles ;;;This can be used as an introduction for EGG_DRAW project ;;; ;;;Takaya Iwamoto, Mon, AUg 01,2005 ;;; added jpg output option to SLOW_ARC_1 ;;; added layer8 dispay instead of grdraw ;;;************************************************** ;;; Copyright JUly 2006 Takaya Iwamoto ;;;************************************************** ;;; (defun C:Ying_Yang () (setup_yinyan) (make_jpg) (SLOW_ARC_1 n_speed "layer10" 10 pnt_0 pnt_1 -180. 0) (entdel start_rad) (setq arc_1 (entlast)) (command "_.delay" time_delay) (command "_.regen") (make_jpg) ;(command "_.arc" "_C" pnt_0 pnt_2 "_angle" -180.) (SLOW_ARC_1 n_speed "layer20" 20 pnt_0 pnt_2 -180. 0) (entdel start_rad) (setq arc_2 (entlast)) (command "_.delay" time_delay) (command "_.regen") (make_jpg) (SLOW_ARC_1 n_speed "layer30" 30 pnt_down pnt_1 -180. 0) (entdel start_rad) (setq arc_3 (entlast)) (command "_.delay" time_delay) (command "_.regen") (make_jpg) (command "_.arc" "_C" pnt_down pnt_1 "_angle" -180.) (setq arc_3a (entlast)) ;; ;(command "_.arc" "_C" pnt_up pnt_0 "_angle" 180.) (SLOW_ARC_1 n_speed "layer40" 40 pnt_up pnt_0 180. 0) (entdel start_rad) (setq arc_4 (entlast)) (command "_.delay" time_delay) (command "_.regen") (make_jpg) (command "_.arc" "_C" pnt_up pnt_0 "_angle" 180.) (setq arc_4a (entlast)) ;; (command "_.pedit" arc_1 "_Y" "_Join" arc_3 arc_4 "" "") (setq ying (entlast)) (command "_.hatch" "_Solid" ying "") (setq ying_solid (entlast)) (command "_.chprop" ying_solid "" "_C" 5 "") (command "_.delay" time_delay) (make_jpg) (command "_.pedit" arc_2 "_Y" "_Join" arc_3a arc_4a "" "") (setq yang (entlast)) (command "_.hatch" "_Solid" yang "") (setq yang_solid (entlast)) (command "_.delay" time_delay) (command "_.chprop" yang_solid "" "_C" 2 "") (make_jpg) (command "_.draworder" ying_solid yang_solid "" "_F") (command "_.delay" time_delay) (setvar "PDMODE" 0) (command "_.redraw") (make_jpg) (reset_sysvar) ) ;;;Ying_Yang ;;; ;;; (defun setup_yinyan () (setup_sysvar) (setq pnt_0 '(0 0) pnt_up '(0 0.5) pnt_down '(0 -0.5) pnt_1 '(0 -1) pnt_2 '(0 1) jpg_count 0 time_delay 1000 ) (setq n_speed 300) ;;;This controls the speed bigger the number, the slower. (setvar "PDMODE" 35) (make_pt "0" 0 pnt_0) (make_pt "0" 0 pnt_1) (make_pt "0" 0 pnt_2) (make_pt "0" 0 pnt_up) (make_pt "0" 0 pnt_down) (command "_.zoom" "_Extent") (command "_.regen") (make_jpg) ) ;;;setup_yinyan ;;; ;;; Function: SLOW_ARC_1 Variation of SLOW_ARC ;;;*** added ;;; ;;;draw an arc slowly given center and starting point & travel_angle ;;; (defun SLOW_ARC_1 (n_speed layer_name color_code pnt_center pnt_start travel_angle ang_dir / ) (setq s_color (getvar "cecolor") s_angdir (getvar "angdir") sblip (getvar "blipmode") scmde (getvar "cmdecho") ) (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angdir" ang_dir) (setvar "cecolor" (itoa color_code)) ;;;*** (make_line_1 "0" color_code pnt_center pnt_start) ;;;*** (setq start_rad (entlast)) (setq radius (distance pnt_center pnt_start) unit_step (/ travel_angle (float n_speed)) nstep 1 pnt_ref (list (+ (car pnt_center) radius) (cadr pnt_center)) base_pos (angle pnt_center pnt_start) ;;in radian *** ndiv (/ n_speed 4) ) (while (< nstep n_speed) (progn (setq step (* nstep unit_step)) (command "_.arc" "_C" pnt_center pnt_start "_A" step) (entdel (entlast)) (setq pnt_end (polar pnt_center (+ base_pos (dtr step)) radius)) ;;;*** ;(grdraw pnt_center pnt_end color_code) ;;; *** (make_line_1 "layer8" color_code pnt_center pnt_end) ) (if (and (= (rem nstep ndiv) 0) (= JPG_YES 1)) (progn (command "_.jpgout" (strcat jpg_filename "_" (itoa jpg_count)) "" ) (setq jpg_count (+ 1 jpg_count)) ) ) ;;;end of if loop (setq nstep (+ 1 nstep)) ) ;while loop (command "_.arc" "_C" pnt_center pnt_start "_A" travel_angle) ;final displayed arc (setvar "blipmode" sblip) (setvar "cmdecho" scmde) (setvar "angdir" s_angdir) (setvar "cecolor" s_color) ;;;*** ) ;SLOW_ARC_1