乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 62|回复: 10

[编程交流] 随机选择

[复制链接]

28

主题

76

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 10:19:26 | 显示全部楼层 |阅读模式
大家好,
可以随机选择吗?假设我有一个包含所有可能在二维图形中的实体的图形,我想从所有实体中随机选择10%?也许可以选择给出随机选择的百分比?
谢谢
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:29:05 | 显示全部楼层
我会尝试这样的方式:
 
  1. (defun c:randset (/ ss sl i en el ep pct qty); rs)
  2. ;;;SMadsen Random Number
  3. (defun randnum (/ modulus multiplier increment random)
  4. (if (not seed)
  5.      (setq seed (getvar "DATE")))
  6. (setq modulus    65536
  7.     multiplier    25173
  8.      increment    13849
  9.        seed       (rem (+ (* multiplier seed) increment) modulus)
  10.        random     (/ seed modulus)))
  11. (cond ((setq ss (ssget "X"))
  12.         (setq sl (sslength ss)
  13.                i -1)
  14.         (while (setq en (ssname ss (setq i (1+ i))))
  15.                (setq el (cons en el))))
  16.        (T (alert "\nNo Entities Found")
  17.           (exit)))
  18. (initget 7)
  19. (setq pct (getreal "\nPercentage To Randomly Choose:   "))
  20. (setq qty (fix (* sl pct 0.01)))
  21. (setq rs (ssadd))
  22. (while (> qty (sslength rs))
  23.     (setq ep (fix (* sl (randnum)))
  24.           en (nth ep el))
  25.     (if (not (ssmemb en rs))
  26.         (ssadd en rs)))
  27. (eval rs))
  28. ;Return Set RS

 
-大卫
回复

使用道具 举报

28

主题

76

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 10:33:37 | 显示全部楼层
谢谢你,大卫!
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:42:53 | 显示全部楼层
不客气。
 
我建议你不要用同一个请求在各种论坛上“捣乱”。我们很多人都参加了多个团体,这并不是一个好兆头-大卫
回复

使用道具 举报

14

主题

74

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 10:45:31 | 显示全部楼层
您好:)
我还没有想出如何操作Lisp程序。
我认为这会创建一个选择集,但如何选择一组对象呢?
例如,我需要在一个有100个块的图形中随机选择20个块。
这个lisp提供了选择集的名称,但是如何选择它们呢?
谢谢
马可
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:51:52 | 显示全部楼层
你好,Marco,
 
查看sssetfirst函数
回复

使用道具 举报

14

主题

74

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 10:56:25 | 显示全部楼层
嗨,李!
 
集合的名称如下:
使用“sssetfirst”选择它的正确语法是什么?
谢谢
马可
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:01:54 | 显示全部楼层
我建议您首先阅读SSSET上的VLIDE帮助文件,因为这些文件将回答您的所有问题,但是:
 
  1. (sssetfirst nil (c:randset))

 
应该有效。
回复

使用道具 举报

14

主题

74

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 11:11:20 | 显示全部楼层

 
作品
 
完美的
 
谢谢李!
 
马可
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 11:16:11 | 显示全部楼层
或者如果您正在使用命令行
 
  1. Command:  _.Select
  2. SELECT
  3. Select objects: !rs
  4. <Selection set: 2>
  5. 20 found
  6. Select objects:

 
在你跑完randset之后-大卫
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 21:13 , Processed in 0.511820 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表