本帖最后由 布朗运动 于 2015-2-11 16:58 编辑
我想写一个小程序,要实现的功能如下图所示: 命令启动—>选中直线A(红色线),回车确定—>选中直线B、C(黄色线)—>按住Shift键,同时选中D、E(绿色线)—>回车—>命令结束。 执行后的结果:直线B、C被直线A打断,直线A被直线D、E打断。 也就是程序内部会根据选择对象时用户是否同时按住了Shift 键作出不同的响应。这样,只用一个程序就执行了两种操作,类似于AutoCAD本身的Trim (Extend )命令,正常选择对象执行的是Trim (Extend )命令,而按住Shift 键同时选择对象执行的是Extend (Trim )命令。 需要高手指点的关键点是:如何让程序感知用户选择对象时是否按住了Shift键,从而对不同的选中对象做出不同的反应,另外应允许用户用多次框选的方法选择对象,就像使用Trim或Extend命令那样。
感谢院长(xyp1964)、鱼和熊掌、ZZXXQQ在群里的解答,此问题结论是:在AutoLISP语言里要利用Shift键是难以实现上述全部要求的。 |