明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1271|回复: 8

[提问] 求块上有文字,将块名称改成块上文字,相同的块相同的块,相同的名称

[复制链接]
发表于 2014-3-25 19:17 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 品茗新秀 于 2014-3-25 22:23 编辑

将块名称改成块上文字,相同的块相同的块,相同的名称




达到要求,块名称为柳树





附件: 您需要 登录 才可以下载或查看,没有账号?注册

点评

你不会是想免费找人帮你写个工具箱吧  发表于 2014-3-25 21:38
 楼主| 发表于 2014-3-25 22:25 | 显示全部楼层
顶出高手,这个对我实在太难了
回复

使用道具 举报

发表于 2014-3-25 22:45 | 显示全部楼层
品茗新秀 发表于 2014-3-25 22:25
顶出高手,这个对我实在太难了

那怎样的是简单的,拿出你的代码
回复

使用道具 举报

 楼主| 发表于 2014-3-26 14:24 | 显示全部楼层
顶出高手,这个确实太难了
回复

使用道具 举报

发表于 2014-3-26 14:42 | 显示全部楼层
楼主想统计苗木表吧.......
回复

使用道具 举报

 楼主| 发表于 2014-3-26 14:49 | 显示全部楼层
lpl 发表于 2014-3-26 14:42
楼主想统计苗木表吧.......

是这一块的内容的学习
回复

使用道具 举报

发表于 2014-3-27 14:17 | 显示全部楼层
看了一下测试图,有的块那没有文字,这比较麻烦
如果所有的文字都是压着块的话就比较容易
首先(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)))))))
循环处理完所有文字
但一个文字不能压两种块

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-3-28 14:15 | 显示全部楼层
llsheng_73 发表于 2014-3-27 14:17
看了一下测试图,有的块那没有文字,这比较麻烦
如果所有的文字都是压着块的话就比较容易
首先(ssget"X"' ...

如果能增加程序顺序执行,文字就变色,这样应该好一点
回复

使用道具 举报

 楼主| 发表于 2014-3-29 11:02 | 显示全部楼层

顶出高手,这个确实太难了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 08:22 , Processed in 0.336832 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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