(setq next 1) (vmon) (defun dtr(a) (* pi (/ a 180.0)) ) (defun rtd (a) (/ (* a 180.0) pi) ) (defun rnd (pt / rns rnleng lastrn) (setq rns (rtos (* (car pt) (cadr pt) (getvar "tdusrtimer")))) (setq rnleng (strlen rns)) (setq lastrn (substr rns rnleng 1)) (setq rn (* 0.4 (atof lastrn))) (print rn) (fix rn) ) (defun rnd_2 () (setq next (* next (+ 1103515245 12345))) (setq a (rem (abs (rem (/ next 65536) 32768)) 360)) (if (= a 0) (setq next 1)) a ) (defun c:genie() (setvar "cmdecho" 0) (setq test_case 0) (setq list_name '(code)) ; (command "layer" "n" "xlg,sm,med,lg" "c" "blue" "xlg" "c" "green" ; "sm" "c" "red" "med" "c" "yellow" "lg" "") (setq geny 15) (setq pt1 (getpoint "\nEnter Start Location: ")) (command "text" pt1 0.3 "" "Code" "") (while (> geny 0) (setq pt2 (len_con pt1)) (command "line" pt1 pt2 "") (setq ent (entlast)) (setq pt1 (cdr (assoc 11 (entget ent)))) (setq geny (- geny 1)) ) ) (defun anglo(dist pt1) (setq num (rnd_2)) (setq dis 0) (setq dist (itoa dist)) ; (cond ((= num 0) (setq ang 0)) ; ((= num 1) (setq ang 90)) ; ((= num 2) (setq ang 180)) ; ((= num 3) (setq ang 270)) ; ) (setq num (itoa num)) (setq mid (strcat "@" dist "<" num)) (COMMAND "text" "" mid) (print mid) ) (defun len_con (pt1) (setq num (rnd pt1)) (cond ((= num 0) (setq num 8) (setq lay_name "xlg")) ((= num 1) (setq num 6) (setq lay_name "lg")) ((= num 2) (setq num 4) (setq lay_name "med")) ((= num 3) (setq num 2) (setq lay_name "sm")) ) (command "layer" "s" lay_name "") (anglo num pt1) ) (defun print_l (list_n) (COMMAND "text" "" "" "" (PRINT (CAR LIST_NAME)) "") (print_l (cdr list_n)) (if (= list_n NULL) (return)) )