借楼问一下,当这个参照是锁定的情况下,如何判断所选对象在参照内还是参照外?或者说如何剔除参照外的对象 ...
通过两个集合的差可以获取:
https://www.cnblogs.com/JJBox/p/11185185.html
https://gitee.com/inspirefunction/ifoxcad/blob/v0.7/tests/TestAcad09plus/%E6%8B%89%E4%BC%B8%E5%A1%AB%E5%85%85/02.%E6%8B%89%E4%BC%B8%E5%A1%AB%E5%85%85%E4%BA%8B%E4%BB%B6.cs 不需要搞差集,交互中能选中,就失去锁定的意义。即使用代码选中了,修改锁定对象也是不允许的。使用错误捕捉进行修改。 本帖最后由 你有种再说一遍 于 2024-3-17 02:20 编辑
kozmosovia 发表于 2024-3-16 10:36
不需要搞差集,交互中能选中,就失去锁定的意义。即使用代码选中了,修改锁定对象也是不允许的。使用错误捕 ...
无论是lisp,arx,csharp代码的ssget都是能选中的,修改也是能改,除非是command命令的修改...那么lisp的vlax函数的修改就不知道怎么过滤了???你是怎么做的捏?
而且我觉得这个过滤的差集在lisp非常麻烦,因为没有hashset,一直也没找到什么好方法...
kucha007 发表于 2024-3-15 23:27
借楼问一下,当这个参照是锁定的情况下,如何判断所选对象在参照内还是参照外?或者说如何剔除参照外的对象 ...
单纯判断内外的话,过滤OwnerID就行 kozmosovia 发表于 2024-3-16 21:43
单纯判断内外的话,过滤OwnerID就行
试了一下,似乎外部参照编辑的对象都在模型空间内...
(defun C:TT (/ CurDoc OwnerID)
(setq CurDoc (vla-get-activedocument (vlax-get-acad-object)))
(setq OwnerID(vla-get-OwnerID (vlax-ename->vla-object (car (nentsel)))))
(vla-get-name (vla-ObjectIdToObject CurDoc OwnerID))
)
你有种再说一遍 发表于 2024-3-16 02:15
通过两个集合的差可以获取:
https://www.cnblogs.com/JJBox/p/11185185.html
感谢提供资料,目前只会lisp:'( 本帖最后由 你有种再说一遍 于 2024-3-17 20:40 编辑
kucha007 发表于 2024-3-17 01:39
试了一下,似乎外部参照编辑的对象都在模型空间内...
我也记得这个不行...
只会lisp没事,只要知道有哈希结构就行,O(1)时间复杂度是真的爽,如何在lisp实现也是大难题...
混合开发也是不可能的,因为用了我的瓜就会忘了它...
可以看看他们有没有dwx里面的hash结构??
本帖最后由 panliang9 于 2024-3-18 15:06 编辑
可以根据需要锁住不想动的对象,很有用!
能不能做成一个命令,执行后,选中的对象可以编辑,剩下的对象被锁住。不知道行不行。
这个能不能做成在位块编辑的时候,通过命令,来改变锁定和不锁定的状态?
kucha007 发表于 2024-3-15 23:27
借楼问一下,当这个参照是锁定的情况下,如何判断所选对象在参照内还是参照外?或者说如何剔除参照外的对象 ...
你想要三维软件的:隔离功能? 你有种再说一遍 发表于 2024-3-17 20:32
我也记得这个不行...
只会lisp没事,只要知道有哈希结构就行,O(1)时间复杂度是真的爽,如何在lisp实现也是 ...
感谢,还需要继续学习~
页:
1
[2]