lisp 块属性 entget 5

如何使用lisp批量获取一个图层中选定的所有块的坐标和一个指定的属性,各个块是用一个模板复制的,只有坐标和KKS01的属性值不相同,用LISP程序如何提取??网上找了很长... 如何使用lisp批量获取一个图层中选定的所有块的坐标和一个指定的属性,各个块是用一个模板复制的,只有坐标和KKS01的属性值不相同,用LISP程序如何提取??网上找了很长时间了,解决不了,谢谢!
提取结果显示为:
76161.715 , -531.560 , 30-B5
展开
 我来答
朱06CAD
2014-08-10 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18070
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
;;;;;;;块的坐标及属性;;;;;
(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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式