明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4108|回复: 11

[求助]求一个给已有批量尺寸加前缀%%c的代码

[复制链接]
发表于 2010-9-24 21:07:00 | 显示全部楼层 |阅读模式
求一个给已有批量尺寸加前缀%%c的代码
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2017-11-1 20:18:42 | 显示全部楼层
本帖最后由 alexmai 于 2017-11-1 20:20 编辑

如果要支持属性块内的文字,如轴号加前缀,应该怎样改?
发表于 2010-9-24 22:50:00 | 显示全部楼层
  1. (defun c:test (/ ss ent t1 enlst) ;标注或文字前缀加Φ  jh1005
  2. (vl-load-com)
  3. (while (setq ss (ssget ":S" '((0 . "*TEXT,DIMENSION"))))
  4. (setq enlst (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (apply 'append (ssnamex ss))))
  5. (foreach ent enlst
  6.   (cond
  7.    ((or(= (cdr(assoc 0 (entget ent))) "MTEXT")
  8.         (= (cdr(assoc 0 (entget ent))) "TEXT"))
  9. (setq t1 (vla-get-textstring (vlax-ename->vla-object ent)))
  10. (if (not (vl-string-search "%%C" (strcase t1)))
  11.       (vla-put-textstring (vlax-ename->vla-object ent) (strcat "%%C" t1))
  12.      )
  13.    )
  14.    ((= (cdr(assoc 0 (entget ent))) "DIMENSION")
  15.     (setq t1 (vla-get-textoverride (vlax-ename->vla-object ent)))
  16. (if (= t1 "") (setq t1 "<>"))
  17. (if (not (vl-string-search "%%C" (strcase t1)))
  18.      (vla-put-textoverride (vlax-ename->vla-object ent) (strcat "%%C" t1))
  19.      )
  20.    )
  21.   )
  22. )
  23. )
  24. (princ)
  25. )
发表于 2010-9-25 07:11:00 | 显示全部楼层

程序不错喔!

感谢楼主分享学习!

发表于 2013-6-16 18:22:06 | 显示全部楼层
jh1005 发表于 2010-9-24 22:50

你好! 试了一下你写的程序感觉挺实用的,但我一直想要一个 类似的 能批量 给尺寸加 () 将尺寸括起来。该怎么改呢?
发表于 2013-6-16 19:37:37 | 显示全部楼层
不错啊..谢谢
发表于 2013-6-16 21:36:07 | 显示全部楼层
本帖最后由 yshf 于 2013-6-16 21:37 编辑

修改尺寸样式不行?(注:可不回前后缀)
发表于 2013-6-17 06:28:43 | 显示全部楼层
加后缀的%%D 能写出来学习下吗 
发表于 2013-6-18 21:40:03 | 显示全部楼层
msh223 发表于 2013-6-16 18:22
你好! 试了一下你写的程序感觉挺实用的,但我一直想要一个 类似的 能批量 给尺寸加 () 将尺寸括起来。 ...
  1. (defun c:kh   (/ ss ent t1 enlst)          ;标注或文字加()
  2. (princ "\n->标注或文字加()")
  3. (while (setq ss (ssget ":S" '((0 . "*TEXT,DIMENSION"))))
  4.   (setq enlst (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (apply 'append (ssnamex ss))))
  5. (foreach ent enlst
  6.   (cond
  7.    ((or(= (cdr(assoc 0 (entget ent))) "MTEXT")
  8.         (= (cdr(assoc 0 (entget ent))) "TEXT"))
  9.   (setq t1 (vla-get-textstring (vlax-ename->vla-object ent)))
  10.     (vla-put-textstring (vlax-ename->vla-object ent) (strcat "(" t1 ")"))
  11.    )
  12.    ((= (cdr(assoc 0 (entget ent))) "DIMENSION")
  13.      ;(vla-put-TextPrefix (en-vla ent) "(")
  14.   (setq t1 (vla-get-TextOverride (vlax-ename->vla-object ent)))
  15.   (if (= t1 "") (setq t1 "<>"))
  16.   (if (and (not (vl-string-search ")" t1)) (not (vl-string-search "(" t1)))
  17.       (vla-put-TextOverride (vlax-ename->vla-object ent) (strcat "(" t1 ")"))
  18.      )
  19.    )
  20.   )
  21. )
  22. (princ (strcat "\n共有" (itoa(sslength ss)) "个对象加上()"))
  23. )
  24. (princ)
  25. )
发表于 2013-6-18 21:46:30 | 显示全部楼层
lzg8877 发表于 2013-6-17 06:28
加后缀的%%D 能写出来学习下吗 
  1. (defun c:jd (/ ss ent t1 enlst)            ;标注或文字后缀加°
  2. (princ "\n->标注或文字后缀加°")
  3. (while (setq ss (ssget ":S" '((0 . "*TEXT,DIMENSION"))))
  4. (setq enlst (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (apply 'append (ssnamex ss))))
  5. (foreach ent enlst
  6.   (cond
  7.    ((or(= (cdr(assoc 0 (entget ent))) "MTEXT")
  8.         (= (cdr(assoc 0 (entget ent))) "TEXT"))
  9.         (setq t1 (vla-get-textstring (vlax-ename->vla-object ent)))
  10.         (if (not (vl-string-search "%%D" (strcase t1)))
  11.        (vla-put-textstring (vlax-ename->vla-object ent) (strcat t1 "%%D"))
  12.      )
  13.    )
  14.    ((= (cdr(assoc 0 (entget ent))) "DIMENSION")
  15.       (setq t1 (vla-get-TextOverride (vlax-ename->vla-object ent)))
  16.          (if (= t1 "") (setq t1 "<>"))
  17.          (if (not (vl-string-search "%%D" (strcase t1)))
  18.             (vla-put-TextOverride (vlax-ename->vla-object ent) (strcat t1 "%%D"))
  19.       )
  20.    )
  21.   )
  22. )
  23. (princ (strcat "\n共有" (itoa(sslength ss)) "个对象后缀加上°"))
  24. )
  25. (princ)
  26. )
发表于 2013-6-22 06:28:02 | 显示全部楼层
嗯 太好了 学习中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 02:10 , Processed in 0.533572 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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