马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun GUID (/ tl g)
- (if (setq tl (vlax-get-or-create-object "Scriptlet.TypeLib"))
- (progn (setq g (vlax-get tl 'Guid))
- (vlax-release-object tl)
- (substr g 2 36)
- )
- )
- )
- ;;; ---------------------------------------------------------------------------------------
- ;;; Convert a base into an integer
- ;;; ---------------------------------------------------------------------------------------
- (defun Base->Int (s b / i m ex)
- (or *digits*
- (setq
- *digits* (vl-string->list "0123456789ABCDEFGHIJKLMNOPQSTUVWXYZ")
- )
- )
- (setq m (wcmatch s "-*")
- s (vl-string->list (vl-string-left-trim "-+" s))
- i 0.0
- ex 0
- )
- (while s
- (setq i (+ (* i b) (vl-position (car s) *digits*))
- s (cdr s)
- )
- )
- (fix (if m
- (- i)
- i
- )
- )
- )
- (defun RandomFromGUID (/ G a b)
- (setq G (vl-string-translate "-" "3" (GUID))
- a (float (Base->Int (substr G 1 18) 16))
- b (float (Base->Int (substr G 19) 16))
- G (/ a b)
- )
- (rem (/ G (expt 10. (fix (/ G 10)))) 1.)
- )
_$ (RANDOMFROMGUID)
0.770795
_$ (repeat 10 (princ "\n")(princ (RANDOMFROMGUID)))(princ)
0.789914
0.00697833
0.0190617
0.469959
0.836066
0.0928757
0.0569814
0.0795628
0.759452
0.6551120.655112
_$
|