随机选择
大家好,可以随机选择吗?假设我有一个包含所有可能在二维图形中的实体的图形,我想从所有实体中随机选择10%?也许可以选择给出随机选择的百分比?
谢谢 我会尝试这样的方式:
(defun c:randset (/ ss sl i en el ep pct qty); rs)
;;;SMadsen Random Number
(defun randnum (/ modulus multiplier increment random)
(if (not seed)
(setq seed (getvar "DATE")))
(setq modulus 65536
multiplier 25173
increment 13849
seed (rem (+ (* multiplier seed) increment) modulus)
random (/ seed modulus)))
(cond ((setq ss (ssget "X"))
(setq sl (sslength ss)
i -1)
(while (setq en (ssname ss (setq i (1+ i))))
(setq el (cons en el))))
(T (alert "\nNo Entities Found")
(exit)))
(initget 7)
(setq pct (getreal "\nPercentage To Randomly Choose: "))
(setq qty (fix (* sl pct 0.01)))
(setq rs (ssadd))
(while (> qty (sslength rs))
(setq ep (fix (* sl (randnum)))
en (nth ep el))
(if (not (ssmemb en rs))
(ssadd en rs)))
(eval rs))
;Return Set RS
-大卫 谢谢你,大卫! 不客气。
我建议你不要用同一个请求在各种论坛上“捣乱”。我们很多人都参加了多个团体,这并不是一个好兆头-大卫 您好:)
我还没有想出如何操作Lisp程序。
我认为这会创建一个选择集,但如何选择一组对象呢?
例如,我需要在一个有100个块的图形中随机选择20个块。
这个lisp提供了选择集的名称,但是如何选择它们呢?
谢谢
马可 你好,Marco,
查看sssetfirst函数 嗨,李!
集合的名称如下:
使用“sssetfirst”选择它的正确语法是什么?
谢谢
马可 我建议您首先阅读SSSET上的VLIDE帮助文件,因为这些文件将回答您的所有问题,但是:
(sssetfirst nil (c:randset))
应该有效。 对
作品
完美的
谢谢李!
马可 或者如果您正在使用命令行
Command:_.Select
SELECT
Select objects: !rs
<Selection set: 2>
20 found
Select objects:
在你跑完randset之后-大卫
页:
[1]
2