求块上有文字,将块名称改成块上文字,相同的块相同的块,相同的名称
本帖最后由 品茗新秀 于 2014-3-25 22:23 编辑将块名称改成块上文字,相同的块相同的块,相同的名称
达到要求,块名称为柳树
顶出高手,这个对我实在太难了 品茗新秀 发表于 2014-3-25 22:25 static/image/common/back.gif
顶出高手,这个对我实在太难了
那怎样的是简单的,拿出你的代码 顶出高手,这个确实太难了 楼主想统计苗木表吧....... lpl 发表于 2014-3-26 14:42 static/image/common/back.gif
楼主想统计苗木表吧.......
是这一块的内容的学习 看了一下测试图,有的块那没有文字,这比较麻烦
如果所有的文字都是压着块的话就比较容易
首先(ssget"X"'((0 . "TEXT")))把所有文字选出来
再根据每一个文字所在位置通过"CP"方式选择块,得到它的块名,进行修改
(defun change-block-name (EntNam NewNam / obj blocks BlkNam block)
(setq *DOC (vla-get-activeDocument(vlax-get-acad-object))
blocks (vla-get-blocks *DOC))
(setq obj (vlax-ename->vla-object EntNam))
(if (=(vla-get-objectname obj) "AcDbBlockReference")
(if (tblsearch "block" NewNam)
(princ "\n和已有块名重复!")
(progn
(setq BlkNam (vla-get-name obj))
(setq block(vla-item blocks BlkNam))
(vlax-put-property block 'Name NewNam)
(if (= (substr BlkNam 1 2) "*U")
(progn
(vla-auditinfo *Doc :vlax-true)
(vla-put-name block NewNam)))))))
循环处理完所有文字
但一个文字不能压两种块 llsheng_73 发表于 2014-3-27 14:17 static/image/common/back.gif
看了一下测试图,有的块那没有文字,这比较麻烦
如果所有的文字都是压着块的话就比较容易
首先(ssget"X"' ...
如果能增加程序顺序执行,文字就变色,这样应该好一点
顶出高手,这个确实太难了
页:
[1]