取得随机数
我如何将随机数(通过RND生成)存储在用户1该图中?set variable“useri 1”,((10 * Rnd) + 1)返回错误
**** Hidden Message ***** 这是你想要的,但它冷得更好
Public Sub TESTRND()
Dim num As Double, e As Double
e = 0.25 ' MUST BE INITIALIZED TO SOMETHING, OR IT REPEATS THE SAME NUMBER
num = (10 * (Rnd(e)) + 1)
ThisDrawing.SetVariable "Userr1", num
End Sub
感谢
USERRx或USERIx返回相同的东西...错误
嗯,实际上我正在尝试从Vlisp存储。例如:
(defun msgbox (title button msg / useri1 r)
(setq useri1 (getvar "useri1"))
(vla-eval
(vlax-get-acad-object)
(strcat
"ThisDrawing.SetVariable \"USERI1\","
"MsgBox (\""
msg
"\","
(itoa button)
",\""
title
"\")"
)
)
(setq r (getvar "useri1"))
(setvar "useri1" useri1)
r
)
这工作得很好,允许我在没有DCL的情况下显示基本界面... msgbox返回一个存储在USERI1中的值,那么我可以毫无麻烦地使用它。
以同样的方式,我认为
ThisDrawing.SetVariable "USERI1", ((10 * Rnd) + 1)
将起作用 我看到的唯一问题是,useri1存储一个整数,而rnd(至少在vba中)生成一个实数(double) 如果您将RND调用的值放在一个变量中,您应该能够将它放在useri1中,而不会发生意外,或者至少将数据从一个变量移动到一个整型变量,然后再移动到useri1中 ThisDrawing.SetVariable “USERR1”, (CDbl ((10 * Rnd) + 1))
应该可以正常工作... 好!
技巧书的另一行!
谢谢!
我不相信你必须转换calc结果,只要确保其中一个数字常量是真实的
ThisDrawing.SetVariable "USERR1", ((10.0 * Rnd) + 1)
或
页:
[1]