明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 小菜123

[资源] 小菜版选择易,欢迎使用并提出完善建议

    [复制链接]
发表于 2011-6-9 16:48 | 显示全部楼层
不错啊,呵呵,
发表于 2011-6-9 17:08 | 显示全部楼层
楼主的这个帖子很好。
有如下建议:
1、不一定每次都弹出对话框,如果默认为上次的对话框这样更好。只有当用关键字设置的时候,才弹出对话框。
2、增加到透明命令中。那么以后可以用'ss来选择了,这样无疑方便很多。当然,现在也可以透明地用到命令中。
3、是否可以留有用户定义对象和组码?就像过滤器一样。
 楼主| 发表于 2011-6-9 17:16 | 显示全部楼层
如果默认上次的对话框(即样本实体相同,选项也相同),只要在选择实体提示时直接回车即可。
增加到透明命令以后,返回值(选择集)不能被响应,原因不明,也不知道有没有哪个版本的ACD能正确执行,这点已经试过,不知道怎么解决。
提供源代码的目的可以方便用户增加对象和组码,为了简化编程量,就没去做自动添加的功能,也许应该写个教程,让大家知道怎么添加?
发表于 2011-6-9 18:06 | 显示全部楼层
本帖最后由 highflybir 于 2011-6-9 18:15 编辑

回复 小菜123 的帖子

(vl-doc-export 'C:SS)
(defun c:ss()
   .....
)
(vlax-add-cmd "C:SS" 'C:SS "C:SS" acrx_cmd_transparent)

这样可以增加透明命令,不过,你是C: 开头的函数,就没必要了。

另外我建议把
(if (= 0 (getvar "cmdactive")) (command "select" ss "" "pselect" ss ""))
改成:
(sssetfirst ss ss)
是否更好?
---哦,我明白了,不用改了。
 楼主| 发表于 2011-6-9 20:31 | 显示全部楼层
本帖最后由 小菜123 于 2011-6-9 20:52 编辑

非常感谢高飞鸟这样的高手参加这个贴子的讨论!

我也希望做成可以在lisp程序运行时仍然可以透明执行的命令,但做成这样的命令以后,正常运行SS命令后,不会返回选择集,有时候用起来不方便。看看这个命令序列:
Command: ss
请选择样板实体(H-Help/ N-关闭块属性显示/ B-关闭动态块特性显示,当前状态:块属性打开,动态块特性打开):
使用过滤器:((-4 . "<OR") (0 . "LINE") (-4 . "OR>"))
Select objects: Specify opposite corner: 2 found
Select objects:
共选中了2个实体。<Selection set: c>

透明命令的执行结果后面没有了<Selection set: c>,不知道有没有办法解决这个问题?

再看这个透明命令的执行情况:
Command: (setq s1 (ssget))
Select objects: 'ss
>>请选择样板实体(H-Help/ N-关闭块属性显示/ B-关闭动态块特性显示,当前状态:块属性打开,动态块特性打开):
使用过滤器:((-4 . "<OR") (0 . "LINE") (-4 . "OR>"))
>>Select objects: >>Specify opposite corner: 2 found
>>Select objects:
共选中了2个实体。
Select objects: p
2 found
Select objects:
<Selection set: 17>


虽然可以在lisp中透明使用了,但在执行以后,仍然需要用“p"响应原来的”select objects"与先使用ss,然后再执行命令,用"p"的效果相差不大。

(if (= 0 (getvar "cmdactive")) (command "select" ss "" "pselect" ss ""))
改成:
(sssetfirst ss ss)
是否更好?
---哦,我明白了,不用改了。
-----写这一句是经过研究的,但现在我也忘了为什么这么写的了,印象中没有那个command,似乎做不到相同的效果(置为当前选择集,同时带夹点高亮显示)?command那句有办法代替么?
查lisp参考有这么一段:注意 不要在 AutoCAD 执行命令的过程中调用 sssetfirst。是不是用了sssetfirst也不适合变成透明命令?
发表于 2011-6-10 08:52 | 显示全部楼层
一直在用选择易,太好用,非常感谢
发表于 2011-6-15 23:48 | 显示全部楼层
这个是经典的不能再经典的程序了,非常的爽
发表于 2011-6-17 08:09 | 显示全部楼层
:-),还有个建议 附加过滤里面 ----->文字数值--->只能过滤"大于"等单方向数值,能否再添加一个选项,能使之过滤某一区间段的数值,比如说:100<x5<500这样的值?
 楼主| 发表于 2011-6-17 08:50 | 显示全部楼层
分两步过滤,先选出大于100的,然后在当前选择集中再选出小于500的即可
发表于 2011-6-17 11:59 | 显示全部楼层
好程序,又学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-9 05:20 , Processed in 0.218176 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表