明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mccad

[原创]锁定dim标注数值(支持公差等格式)

  [复制链接]
发表于 2004-3-22 11:25 | 显示全部楼层

回复:(无痕)重发支持r14的标注固定硬改法[co...

无痕发表于2004-3-19 23:46:00重发支持r14的标注固定硬改法 ;;(getdimtext dimentity) = 取出标注的文本! ;;支持所有标注类型.(defun c:dmvl (/ ss n dm dml) (pr...
我进行了测试,发现程序中e缺少原始对象,应当在
(while roop
(setq e (entnext e)
.........)
前加一句(setq e dimblk)语句定义,否则执行时会出现e值为nil的错误。
还有当尺寸值为空格时,程序将出错,故应当加一段补丁语句。
总的来讲,程序已是相当不错了。

以下是调整后程序: ;;(getdimtext dimentity) = 取出标注的文本!
;;取标注文本.
(defun getdimtext (ent / dimblk roop e el tig)
(setq dimblk (cdr (assoc -2 (tblsearch "block" (cdr (assoc 2 (entget ent))))))
roop T)
(setq e dimblk)
(setq pp 0 tig 1)
(while roop
(setq e (entnext e))
(if (not (= e nil))
(progn
(setq el(entget e))
(setq dt (assoc 1 el))
(if (member '(100 . "AcDbMText") el);(member '(0 . "MTEXT") el)
(setq roop nil)
)
)
(setq tig 0 roop nil)
)
)
(if (= tig 1)
(cdr (assoc 1 el));"\\A1; "
' " "
)
)
;;支持所有标注类型.
(defun c:cdimtot (/ ss n dm dml)
(princ "\ndmvl = 块定义修改法-固定标注文字! ------by 无痕.2004.3
\n选择要固定文字的标注:")
(setq ss (ssget '((0 . "DIMENSION"))))
(repeat (setq n (sslength ss))
(setq dm (ssname ss (setq n (1- n)))
dml(entget dm)
dml(subst (cons 1 (getdimtext dm))(assoc 1 dml) dml)
)
(entmod dml)
)
(princ (strcat "\n共处理" (itoa (sslength ss)) "个标注:"))
(princ)
)
发表于 2004-3-22 13:54 | 显示全部楼层
谢谢wyj_007 朋友帮找bug。重贴一次程序
  1. ;; dmvl = 块定义修改法-固定标注文字! v1.1-----by无痕.2004.3
  2. ;; 支持所有标注类型.
  3. ;;(getdimtext dimentity) = 取出标注的文本!
  4. (defun c:dmvl (/ ss n dm dml)
  5.    (princ "\n选择要固定文字的标注:")
  6.    (setq ss (ssget '((0 . "DIMENSION"))))
  7.    (repeat (setq n (sslength ss))
  8.        (setq dm (ssname ss (setq n (1- n)))
  9.      dml(entget dm)
  10.      dml(subst (cons 1 (getdimtext dm))(assoc 1 dml) dml))
  11.        (entmod dml)
  12.    )(princ (strcat "\n共处理" (itoa (sslength ss)) "个标注:"))
  13.    (princ)
  14. )
  15. ;;取标注文本.  
  16. (defun getdimtext (dm / e el)
  17.    (setq e (cdr (assoc -2 (tblsearch "block" (cdr (assoc 2 (entget dm)))))))
  18.    (while (and (setq e (entnext e))
  19.              (not (member '(100 . "AcDbMText") (setq el (entget e)))))
  20.    )
  21.    (if e (cdr (assoc 1 el)) " ")
  22. )

评分

参与人数 2威望 +1 金钱 +50 贡献 +5 激情 +5 收起 理由
669423907 + 40 很好用 φ不会变?了
mccad + 1 + 10 + 5 + 5 【精华】好程序

查看全部评分

发表于 2004-10-10 11:58 | 显示全部楼层
xie xie
发表于 2004-12-1 13:19 | 显示全部楼层
无痕大侠,你的程序很简洁,不过对于这样的标注不行。。。
发表于 2004-12-1 13:37 | 显示全部楼层
dwg上传不了,只能给各图片了


       

本帖子中包含更多资源

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

x
发表于 2004-12-1 19:49 | 显示全部楼层
请上传dwg文件
发表于 2004-12-2 12:47 | 显示全部楼层
无法上传DWG我发到你的邮箱中了
发表于 2004-12-5 15:02 | 显示全部楼层
你用zip或rar压缩dwg文件上传就可以了


我的email有时候是乱写的,可能收不到哦,:P
发表于 2005-2-22 22:44 | 显示全部楼层
好,学到了不少
发表于 2005-5-25 13:11 | 显示全部楼层
怎么固定这个


       

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-3-29 10:03 , Processed in 0.248453 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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