azbk00 发表于 2015-11-15 21:15:14

怎么获取所有高亮图元

因为有时候程序中会用到(redraw ss 3),一旦esc取消了函数,图元会一直保持亮显,所以我想在出错处理的error函数中添加(redraw ss 4),但由于引用了其他一些人的函数,导致“ss”不能代表所有的高亮图元。请问有什么办法可以将所有的高亮图元赋值给变量ss吗?
PS:不想要regen,大图很卡。

azbk00 发表于 2015-11-16 17:24:20

自顶,求助各位大神!

mmmmmm 发表于 2015-11-16 19:40:42

应该没有单独过滤得出来的,可以最简单的每个实体都redraw 4. 但是比regen可能还会慢一些。

azbk00 发表于 2015-11-16 20:16:46

mmmmmm 发表于 2015-11-16 19:40 static/image/common/back.gif
应该没有单独过滤得出来的,可以最简单的每个实体都redraw 4. 但是比regen可能还会慢一些。

那大哥你自己用的错误处理函数,是怎么应对恢复亮显的啊?就用regen吗?

mmmmmm 发表于 2015-11-16 20:19:34

error一般会undo回最初的状态,此时还没有被高亮的实体呢

azbk00 发表于 2015-11-16 20:22:37

mmmmmm 发表于 2015-11-16 20:19 static/image/common/back.gif
error一般会undo回最初的状态,此时还没有被高亮的实体呢

(defun recovery();程序开始时(recovery),while等语句结束时(*error* nil)
    (setq e_lst (mapcar (function (lambda (n) (list 'setvar n (getvar n))))
                              '("cecolor" "clayer" "LUPrec" "autosnap" "osmode" "aperture" "hpspace" "hpassoc" "mirrtext" "auprec" "luprec" "dimzin" "PLINEWID" )))
    (defun *error* (msg) (mapcar 'eval e_lst))
)
这是我论坛里找来的出错恢复函数,请问要怎么改写才能error时undo回到最初的状态?

mmmmmm 发表于 2015-11-16 21:24:41

推荐你看看
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100616

azbk00 发表于 2015-11-16 21:51:02

mmmmmm 发表于 2015-11-16 21:24 static/image/common/back.gif
推荐你看看
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100616

好的,谢谢!

llsheng_73 发表于 2015-11-16 22:15:14

(sssetfirst'nil(ssget"X"));;此处应该加上一些必要的过滤条件以防图元太多可能会卡,甚至可能需要用其它方式进行选择,如果有总的选择集就更好,不用进行选择,直接让它们夹点显示就行
(sssetfirst'nil(ssadd))

对于(redrawename 2)方式隐藏的图元这样恢复不了

azbk00 发表于 2015-11-17 18:44:41

llsheng_73 发表于 2015-11-16 22:15 static/image/common/back.gif
(sssetfirst'nil(ssget"X"));;此处应该加上一些必要的过滤条件以防图元太多可能会卡,甚至可能需要用其它方 ...

原来还有另一种思路,受教了!
页: [1] 2
查看完整版本: 怎么获取所有高亮图元