明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9623|回复: 23

替换属性块中的文字,求完善程序

[复制链接]
发表于 2013-5-7 08:39 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 ly8zx2109 于 2013-5-10 09:41 编辑


替换属性块中的文字,求完善程序,自己编的小程序,不是很好,没找到哪里有错误,求高手帮忙修改一下,谢谢。

最佳答案

 楼主| 发表于 2013-5-9 14:39 | 显示全部楼层

文字部分可以,就是属性块还是不循环,只是修改一个。

本帖最后由 ly8zx2109 于 2013-5-10 09:41 编辑

复制代码
回复

使用道具 举报

发表于 2013-5-7 08:39 | 显示全部楼层
  1. ;替换文字和属性指定内容 明经 ZZXXQQ 2013.5.9
  2. (vl-load-com)
  3. (defun c:11()
  4. (SETVAR "CMDECHO" 0)
  5. (setq SS (ssget "X" (list (cons 0 "INSERT,TEXT"))));;;附带处理单行文本
  6. (setq S1 (ssget "P" '((0 . "INSERT") (66 . 1))));;;过滤出属性块
  7. (vl-cmdf "SELECT" SS "")
  8. (SETQ S88 (SSGET "P" '((0 . "TEXT"))));;;过滤出文本
  9. (setq i -1)  
  10. (setq s2 (ssname s1 0))
  11. (setq s20 (getstring "\n请输入要查找的文本内容:"))
  12. (setq s21 (getstring "\n请输入要替换的文本内容:"))
  13. (if s88 (progn
  14.   (repeat (sslength s88)
  15.    (setq s83 (entget (ssname s88 (setq i (1+ i)))))
  16.    (setq s84 (cdr (assoc 1 s83)))
  17.    (if (vl-string-search s20 s84)
  18.     (entmod (subst (cons 1 (vl-string-subst s21 s20 s84)) (assoc 1 s83) s83))
  19.    )
  20.   )
  21. ))  
  22. (if s1 (progn
  23.   (setq i -1)  
  24.   (repeat (sslength S1)
  25.    (setq ENT (entget (ssname S1 (setq I (1+ I))))
  26.          ENT1 ENT)
  27.    (while (/= (cdr(assoc 0 (setq ENT1 (entget(entnext(cdr(assoc -1 ENT1))))))) "SEQEND")
  28.     (if (= (cdr(assoc 0 ENT1)) "ATTRIB") (progn
  29.      (setq s15 (cdr(assoc 1 ent1)))
  30.      (if (vl-string-search s20 s15) (progn
  31.       (entmod (subst (cons 1 (vl-string-subst s21 s20 s15)) (assoc 1 ent1) ent1))
  32.       (entmod ent)
  33.      ))
  34.     ))
  35.    )
  36.   )
  37. ))
  38. (terpri)
  39. (SETVAR "CMDECHO" 1)
  40. (princ)
  41. )
回复

使用道具 举报

 楼主| 发表于 2013-5-7 08:39 | 显示全部楼层
本帖最后由 ly8zx2109 于 2013-5-9 14:42 编辑

看楼下。

回复

使用道具 举报

发表于 2013-5-7 10:22 | 显示全部楼层
图上全是属性块吗?如果不是的话,那s1中不是属性块的怎么处理呢?附上你的dwg来测试下吧
回复

使用道具 举报

 楼主| 发表于 2013-5-7 16:10 | 显示全部楼层
附件已上传,谢谢
回复

使用道具 举报

发表于 2013-5-8 14:40 | 显示全部楼层
思路上应该可以更简捷!给你推荐个严长老的,可能就是你想要的:http://bbs.mjtd.com/thread-94971-1-1.html
回复

使用道具 举报

 楼主| 发表于 2013-5-8 17:05 | 显示全部楼层

本帖最后由 ly8zx2109 于 2013-5-8 17:11 编辑

还是谢谢你了,可 我想搞一个小程序,只是能换其中的文本,然后把他加入到批量执行的程序中,批量修改一批图纸,谢谢。其中的的程序可以借鉴一下。
回复

使用道具 举报

 楼主| 发表于 2013-5-10 09:37 | 显示全部楼层
本帖最后由 ly8zx2109 于 2013-5-13 08:24 编辑

回复

使用道具 举报

发表于 2013-5-11 11:55 | 显示全部楼层
谢谢Z大的指点。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 20:15 , Processed in 0.661508 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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