利用1005扩展祖玛实现类似编组的另一种方法
本帖最后由 dcl1214 于 2024-4-15 09:14 编辑cad提供编组功能,意思是将很多图元编组,cad同时还提供了另一个功能,类似编组的扩展数据,可以将一堆图元的句柄关联到某一个图元,当用户复制粘贴到其他图纸的时候,cad自动更新关联的句柄,让整组图元的依赖关系保持不变,请测试以下代码:
(setq c (entmakeX
(list (cons 0 "CIRCLE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbCircle")
(cons 10 (list 105 80 0))
(cons 40 8)
)
)
)
(setq jb (cdr (assoc 5 (entget c))))
(regapp "ZXCAD");必须先注册一个app的名字
(entmakeX
(list
(cons 0 "LINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbLine")
(cons 10 (list 50 50 0))
(cons 11 (list 150 50 0))
(list
-3
(list
"ZXCAD";使用已经注册的app名字
(cons 1002 "{")
(CONS
1000
"1005的值是圆的句柄值,当用户复制到新图纸的时候cad自动更新1005的值为圆的新句柄"
)
(CONS 1000 "111")
(cons 1005 jb);引用同一个圆的句柄,意思是都跟同一个圆关联起来
(cons 1002 "}")
)
)
)
)
(regapp "秦始皇");必须先注册一个app的名字
(entmakeX
(list
(cons 0 "LINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbLine")
(cons 10 (list 50 30 0))
(cons 11 (list 150 30 0))
(list
-3
(list
"秦始皇";使用已经注册的app名字
(cons 1002 "{")
(CONS
1000
"1005的值是圆的句柄值,当用户复制到新图纸的时候cad自动更新1005的值为圆的新句柄"
)
(CONS 1000 "SSS")
(cons 1005 jb);引用同一个圆的句柄,意思是都跟同一个圆关联起来
(cons 1002 "}")
)
)
)
)
感谢大佬分享 试了下确实简单有效.
要是早知道这个就好了.
以前用更复杂的方式实现的. 确实,可以保持相同的关系,其实不用转到其他图纸,本图拷贝粘贴,效果一样。
如果是拷贝粘贴形成的效果,编到程序里估计没什么用。程序不能自动实现拷贝粘贴。
而且用组的概念来形容,只能说只是组的一点东西而已,因为组在CAD里已经形成一套工具。可操作性工具。
层也是组的概念,大家用的最多,是相同图元在同一图层的组。
而CAD直接的组,就是不同的图元都能组成一起,大家用得最少。
不同图元组成一起,块就是体现,组是块的一种偏像,解锁开可以直接编辑,又可以锁定。什么情况需要这种操作呢。用处不多,没有一种强迫证的需求,所以LISP程序对于组的编辑示例是很少的。没有需求式的应用,大家用组写LISP的程序不多。
我只在平面图上,用组统计数量,并可以查看平面上,哪些是一组的。方便统计系统图。
感谢大佬分享
页:
[1]