乐筑天下

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

[编程交流] 如何突出显示选定内容

[复制链接]

46

主题

161

帖子

104

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
242
发表于 2022-7-5 17:05:12 | 显示全部楼层
 
  1. (setq ss (ssget))
  2. (repeat (setq in (sslength ss))
  3. (redraw (ssname ss (setq in (1- in))) 3)
  4. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:07:22 | 显示全部楼层
 
是的,我不得不从互联网上的帮助参考中进行研究,我的acad 2015上关于重画的帮助中唯一的信息是:
“刷新当前视口中的显示。”
 
此处的参考揭示了有关该函数的更多信息:
 
 
是的,我知道,问题是我总是使用sssetfirst来抓取我的选择-唯一的原因是看我选择了什么。
在一些测试之后-实际上用(redraw 3)在SS上迭代看起来/感觉最快,并且要删除突出显示-用(redraw 4)再次迭代。
Regen也会删除突出显示,但我在处理大型图形时尽量避免使用sssetfirst和Regen(它们似乎会降低代码的性能)。
我甚至试着只重新生成活动视口。。。
 
如何作恶101:
  1. (defun HideAll:CB ( rtr args / e )
  2. (and (equal args '("REGEN")) (setq e (entnext)) (while e (redraw e 2) (setq e (entnext e))) )
  3. ); defun HideAll:CB
  4. (HideAll:CB nil '("REGEN"))
  5. (foreach r (cdar (vlr-reactors :vlr-command-reactor)) (if (= "HideAll" (vlr-data r)) (vlr-remove r)))
  6. (vlr-command-reactor "HideAll" '((:vlr-commandEnded . HideAll:CB)))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 17:13:23 | 显示全部楼层
 
如果业余Cad用户运气不好,必须为他们编写相反的程序:大声笑:
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:18:14 | 显示全部楼层
 
没那么糟糕,只需关闭(保存)当前图形,并且不再使用该代码。
 
此外,我在工作时使用它,只处理活动视口要快得多,而不是REGEN命令:
  1. (defun RegenActiveViewport nil
  2. (vla-Regen (vla-get-ActiveDocument (vlax-get-acad-object)) acActiveViewport)
  3. )

 
当反应堆运行时,它会临时绕道而行。
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 17:18:35 | 显示全部楼层
 
 
 
 
突出显示选择集非常容易。。。首先使用SSSET
  1. (defun c:highlightselsel ( / selset)
  2. (setq selset (ssget))
  3. (sssetfirst nil selset)
  4. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 17:23:58 | 显示全部楼层
 
你好
您可以在sssetfirst语句中代替变量selset并立即用ssget函数替换它,重要的是,如果ssget返回nil,则该函数不会引发任何错误。
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 17:27:43 | 显示全部楼层
 
我怀疑OP(或任何其他人)会这么做。。。我对这个结论的看法是
-选择集是使用(ssget“X”)、(ssadd或(ssdel)的函数的结果,并且已经在变量中
-该选择集可能需要进一步处理,因此需要将其包含在var中。
-除此之外,使用(sssetfirst nil(ssget))没有多大意义,因为它基本上只是将事情复杂化,以“模拟”简单的选择事情,当然还需要一些更复杂的东西,以确保如果用户不选择任何东西,它不会爆炸。我的2美分。
 
干杯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-20 22:02 , Processed in 0.506920 second(s), 65 queries .

© 2020-2025 乐筑天下

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