;; | ---------------------------------------------------------------------------
;; | jn-rand
;; | ---------------------------------------------------------------------------
;; | Function : 给定返回类型(整数或实数)和随机区间,返回一个数值
;; | Argument : (jn-rand 1 45.3 46.7)或(jn-rand 0 45.3 46.7),返回类型标志为0或其他
;; | Returns : 随机数,在上下限间
;; | Updated : 2012-2-7
;; | e-mail : soly2006@qq.com
;; | qq : 408525383
;; | ---------------------------------------------------------------------------
(defun jn-rand(flag1 lowlmt toplmt / seed0 seed1 r1 r2) ;标志,上下限
(setq seed0 (getvar "cputicks")) ;取得当前CPU的运行频率e.g.(CPUTICKS = 3658253708571.000 (只读))
(if (= flag1 0) ;如果是整数(FLAG1=0)
(progn
(setq SEED1 (atoi (substr (rtos seed0) 8 2))) ;取其中的两个数位
(princ seed1)
(setq r1 (/ seed1 100.000)) ;取得百分比
(setq r2 (fix (+ lowlmt (* (- toplmt lowlmt) r1))))
)
(progn
(setq SEED1 (atof (substr (rtos seed0) 8 2))) ;取其中的两个数位
(setq r1 (/ seed1 100.000)) ;取得百分比
(setq r2 (+ lowlmt (* (- toplmt lowlmt) r1)))
))
)