明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 696|回复: 4

[提问] 这是我用来把块里的对象图层置为当前的插件,我想实现点取块内的一个数字对象然后。。

[复制链接]
发表于 2016-10-22 22:53:01 | 显示全部楼层 |阅读模式
然后把它的值(princ )出来备用。大神来帮个忙吧。
(defun c:bss (/ e el)

  (while(and(setq e(nentselp "\n选择块内实体: "))

            (= (length e) 4)

         )

    (setq el (entget (car e)))  ;1

    (entmake el)

    (vla-transformby

      (vlax-ename->vla-object (entlast))

      (vlax-tmatrix (caddr e))

    )

  )

  (princ)
(command "LAYMCUR" (entlast)  )
(command "erase" (entlast)""  )
)

发表于 2016-10-23 07:15:47 来自手机 | 显示全部楼层
只能说你绕远了,nentselp能直接得到块内对象的图元名,然后直接得到组码8就是图层,如果是text对象直接提取组码1就是文字内容!
 楼主| 发表于 2016-10-23 07:55:57 | 显示全部楼层
springwillow 发表于 2016-10-23 07:15
只能说你绕远了,nentselp能直接得到块内对象的图元名,然后直接得到组码8就是图层,如果是text对象直接提 ...

可以帮我写出来么,我不会呢,thank you
发表于 2016-10-23 17:43:27 | 显示全部楼层
iamhuangjinming 发表于 2016-10-23 07:55
可以帮我写出来么,我不会呢,thank you

你都写出90%的代码了,多研究一步就可以了。
  1. (defun c:bss (/ e el)

  2.   (while(and(setq e(nentselp "\n选择块内实体:\n"))

  3.             (= (length e) 4)

  4.          )
  5.     (setq el (entget (car e)))  ;1
  6.     (if (= (cdr (assoc 0 el)) "TEXT")
  7.       (princ (cdr (assoc 1 el)))
  8.       (alert"选择的对象不是块内文字对象")
  9.     )

  10.   )
  11.   (princ)
  12. )
 楼主| 发表于 2016-10-24 00:43:35 来自手机 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊,谢谢你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 03:30 , Processed in 0.205143 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表