乐筑天下

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

[编程交流] ssget半径在一个范围内

[复制链接]

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 16:15:37 | 显示全部楼层 |阅读模式
你好
 
我目前有一个lisp例程,它将查找特定大小的孔,并将其更改为不同的直径。它还执行一些层管理。我在尝试修改例程时遇到了一些问题,因此它将查找范围而不是特定值。所以在我的例子中,我想寻找任何直径在5.1到5.3mm之间的孔,并将其更改为5.0mm。
 
非常感谢。
 
  1. ; Find 5.1mm hole and change to proper layer and 5mm diameter hole
  2. (setq AA 5.1)
  3. (setq BB 5.0000)
  4. (if
  5. (ssget "_X" (list '(0 . "CIRCLE")(cons 40 (/ AA 2.0))))
  6. (progn
  7. (COMMAND "CHPROP" "P" "" "P" "LA" "VERTICAL15P00" "")
  8. (setq ss1 (ssget "_X" (list '(0 . "CIRCLE")(cons 40 (/ AA 2.0)))))
  9. (setq LE (sslength ss1))
  10. (setq CNT 0)
  11. (while (< CNT LE)
  12. (progn
  13. (setq OBJ (entget (ssname ss1 CNT)))
  14. (setq NewScale (* (cdr (assoc 40 OBJ)) (/ BB AA)))
  15. (setq OBJ (subst (cons 40 NewScale) (assoc 40 OBJ) OBJ ))
  16. (entmod OBJ)
  17. (setq CNT (+ CNT 1))
  18. ))))
回复

使用道具 举报

4

主题

305

帖子

225

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
97
发表于 2022-7-5 16:42:45 | 显示全部楼层
尝试更改
 
 
  1. (setq AA 5.1)

  1. (setq AA 5.1 AB 5.3)

  1. (ssget "_X" (list '(0 . "CIRCLE")(cons 40 (/ AA 2.0))))

校正:如果要选择AA和AB之间的全范围,则如下所示:
我也不确定你在这里做什么,但我认为这需要改变:
根据您最初的描述,您不只是想这样做吗?
以下是我为您推荐的代码:
  1. 8

 
 
编辑:哎呀,我把逻辑搞错了,所以我把它改成对将来的其他人有帮助。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 16:58:36 | 显示全部楼层
谢谢,基于您的代码,这几乎可以按预期工作。唯一的问题是,它正在转换图形中所有大小的孔,而不仅仅是范围内的孔。因此,超出范围的任何内容也会受到影响。有什么想法吗?
 
编辑。
 
我将OR函数更改为和。还添加了几行代码。似乎正在工作。谢谢你的帮助!
 
  1. 9
回复

使用道具 举报

4

主题

305

帖子

225

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
97
发表于 2022-7-5 17:01:17 | 显示全部楼层
 
 
哎呀,我很高兴你找到了逻辑。很高兴能帮上忙。
 
 
顺便说一句,你注意到我的代码中不需要2个SSGET调用和CHPROP命令了吗?第二次SSGET调用不是必需的,因为您可以在第一次调用时保存选择集。此外,除非CHPROP除了更改圆的层名称之外还为您做了其他事情,否则最好避免对如此简单的内容进行命令调用。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 17:22:26 | 显示全部楼层
是的,我现在注意到在lisp例程中删除了CHPROP命令。现在,我已经将您的代码片段合并到我的代码片段中。至于两个ssget调用,我将它们分开,以便在复制和扩展代码以覆盖更多孔尺寸时更容易阅读和编辑。再次感谢!
 
  1. 10
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 17:19 , Processed in 0.823104 second(s), 62 queries .

© 2020-2025 乐筑天下

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