lisp 块属性 entget 5
如何使用lisp批量获取一个图层中选定的所有块的坐标和一个指定的属性,各个块是用一个模板复制的,只有坐标和KKS01的属性值不相同,用LISP程序如何提取??网上找了很长...
如何使用lisp批量获取一个图层中选定的所有块的坐标和一个指定的属性,各个块是用一个模板复制的,只有坐标和KKS01的属性值不相同,用LISP程序如何提取??网上找了很长时间了,解决不了,谢谢!
提取结果显示为:
76161.715 , -531.560 , 30-B5 展开
提取结果显示为:
76161.715 , -531.560 , 30-B5 展开
1个回答
2014-08-10 · 知道合伙人软件行家
关注
展开全部
;;;;;;;块的坐标及属性;;;;;
(defun C:sxb ( / &kw i ff &k1 #k @p1 %k1)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setvar "dimzin" 0)
(setq &kw (ssget '((0 . "INSERT") (66 . 1))));;选择有属性的块
(if (/= &kw nil)
(progn
(setq i 0
ff (open "d://文字到TXT.txt" "w");自动在D盘建立文本
);;
(repeat (sslength &kw)
(setq &k1 (ssname &kw i)
#k (entget &k1)
@p1 (cdr (assoc 10 #k));块坐标
%k1 (cdr (assoc 1 (entget (entnext (cdr (assoc -1 #k))))));提取块里面的属性
)
(princ (rtos (car @p1) 2 3) ff);块坐标X值
(princ " , " ff);输入值分隔符号
(princ (rtos (cadr @p1) 2 3) ff);Y值输入文本
(princ " , " ff)
(princ %k1 ff);属性输入
(princ "\n" ff)
(setq i (+ i 1))
)
(close ff)
)
)
(prin1)
);复制到记事本以(sxb.lsp)命名,加载到AutoCAD
;不是属性块不可以提取;D盘打开记事本(文字到TXT)就可以得到你需要的坐标及属性
(prompt "\n《SXB》")
(prin1)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询