找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2297|回复: 9

[发布] 批量修改标注线宽

[复制链接]

已领礼包: 769个

财富等级: 财运亨通

发表于 2017-7-7 12:32:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 sh_h 于 2017-7-7 12:32 编辑

本人能力有限,试着写了一个批量修改标注线宽的代码,实在不知道有什么实际用处,纯粹练习,送给有需要的人吧
不足之处还请大师们多多指教!
部分代码修改自 Lisphk 大师的修改对象颜色的方法,
详见:http://bbs.xdcad.net/thread-709504-1-1.html
;1 单选修改标注线宽
  1. (defun c:tt (/ e ent lw old_dimlwd old_dimlwe old_lwdisplay)
  2.   (setq old_DIMLWE (getvar "DIMLWE"))
  3.   (setq old_DIMLWD (getvar "DIMLWD"))
  4.   (SETVAR "DIMLWE" -2)
  5.   (SETVAR "DIMLWD" -2)
  6.   (SETVAR "LWDISPLAY" 1)
  7. (prompt "输入线宽,必须为整数!(该整数单位代表百分之一毫米)...")
  8.   (if (and (setq lw (getint "\n输入线宽<退出>:"))
  9.     (setq e (car (entsel)))
  10.     (setq ent (entget e))
  11.       )
  12.     (entmod (append ent (list (cons 370 lw))))
  13.   )
  14. (SETVAR "DIMLWE" old_DIMLWE)
  15.   (SETVAR "DIMLWD" old_DIMLWD)
  16.   (princ)
  17. )

;2 批选修改标注线宽
  1. (defun c:tt (/ dims ent i k lw old_dimlwd old_dimlwe old_lwdisplay)
  2.   (setq old_DIMLWE (getvar "DIMLWE"))
  3.   (setq old_DIMLWD (getvar "DIMLWD"))
  4.   (setq old_LWDISPLAY (getvar "LWDISPLAY"))
  5.   (SETVAR "DIMLWE" -2)
  6.   (SETVAR "DIMLWD" -2)
  7.   (SETVAR "LWDISPLAY" 1)
  8. (setq dims (ssget '((0 . "DIMENSION"))));(setq dims (ssget "x" '((0 . "DIMENSION")))) 全选
  9. (setq i 0)
  10. (setq k (sslength dims))
  11. (prompt "输入线宽,必须为整数!(该整数单位代表百分之一毫米)...")
  12. (if (setq lw (getint "\n输入线宽<退出>:"))
  13.   (repeat k
  14.    (setq ent (entget (ssname dims i)))
  15.    (entmod (append ent (list (cons 370 lw))))
  16.    (setq i (1+ i))
  17.   )
  18. )
  19. (SETVAR "DIMLWE" old_DIMLWE)
  20.   (SETVAR "DIMLWD" old_DIMLWD)
  21.   (princ)
  22. )


评分

参与人数 1D豆 +5 收起 理由
marting + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-7-7 13:46:20 | 显示全部楼层
本帖最后由 ynhh 于 2017-7-7 13:49 编辑

可能是我没表达清楚我说的是
尺寸线线宽和延伸线线宽
请大师再改改试试


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-7-7 14:13:42 | 显示全部楼层
小工具解决大问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-7-7 14:16:52 | 显示全部楼层

提供这CAD图
请大师再试试看
自动把图中的两个 0.09 的线宽改为默认线宽或指定线宽
谢谢
改标注线宽测试.gif
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:改标注线宽测试.zip 
下载次数:12  文件大小:15.79 KB 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 769个

财富等级: 财运亨通

 楼主| 发表于 2017-7-7 15:24:28 | 显示全部楼层
我修改了一下,你再试试看,线宽要设置成线宽列表中的线宽
看来没有想象中的简单啊!
  1. (defun c:t1 (/ dims ent i k lw old_dimlwd old_dimlwe)
  2.   (setq old_DIMLWE (getvar "DIMLWE"))
  3.   (setq old_DIMLWD (getvar "DIMLWD"))
  4.   (SETVAR "DIMLWE" -2)
  5.   (SETVAR "DIMLWD" -2)
  6.   (SETVAR "LWDISPLAY" 1)
  7.         (setq dims (ssget '((0 . "DIMENSION"))));(setq dims (ssget "x" '((0 . "DIMENSION")))) 全选
  8.         (setq i 0)
  9.         (setq k (sslength dims))
  10.         (prompt "输入线宽,必须为整数!(该整数单位代表百分之一毫米)...")
  11.         (if (setq lw (getint "\n输入线宽<退出>:"))
  12.                 (repeat k
  13.                         (setq ent (entget (ssname dims i)))
  14.                         (entmod (append ent (list (cons 370 lw))))
  15.                         (setq i (1+ i))
  16.                 )
  17.         )
  18.         (command "-dimstyle" "a" dims "")
  19.         (SETVAR "DIMLWE" old_DIMLWE)
  20.   (SETVAR "DIMLWD" old_DIMLWD)
  21.   (princ)
  22. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-7-7 16:21:44 | 显示全部楼层
谢谢你
这次线宽改对了
但却把原文字改没了
颜色也改不对了
是不是那里改的太过关了啊
改标注线宽测2.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 769个

财富等级: 财运亨通

 楼主| 发表于 2017-7-7 18:05:17 | 显示全部楼层
本帖最后由 sh_h 于 2017-7-7 18:09 编辑


问题出在command那行代码了,alisp的方式实在搞不定了,用vlisp另写了一个,再试试

  1.      ;批选修改 改线宽和文字 vlisp
  2. (defun c:tt (/ en i k lw ss ven)
  3.   (SETVAR "LWDISPLAY" 1)
  4.   (prompt "\n选择标注: ")
  5.   (if (and
  6. (setq ss (ssget '((0 . "DIMENSION"))))
  7. (setq lw (getint "\n输入线宽<退出>:"))
  8.       )
  9.     (progn
  10.       (setq k (sslength ss))
  11.       (setq i 0)
  12.       (repeat k
  13. (setq en (ssname ss i))
  14. (setq ven (vlax-ename->vla-object en))
  15.      ;Specifies the lineweight for the dimension lines 尺寸线线宽随块
  16. (vla-put-DimensionLineWeight ven acLnWtByBlock)
  17.      ;Specifies the lineweight for the extension lines 延伸线线宽随块
  18. (vla-put-ExtensionLineWeight ven acLnWtByBlock)
  19.      ;Specifies the lineweight of an individual object or the default lineweight for the drawing 整体修改标注线宽含标注文字
  20. (vla-put-Lineweight ven lw)
  21. (setq i (1+ i))
  22.       )
  23.     )
  24.   )
  25.   (prin1)
  26. )

评分

参与人数 1D豆 +5 收起 理由
HLCAD + 5 有始有终奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 769个

财富等级: 财运亨通

 楼主| 发表于 2017-7-7 18:13:43 | 显示全部楼层

谢谢大师鼓励!!!还望大师多多指教!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-7-7 20:41:25 | 显示全部楼层

这回可以了
谢谢你
这些函数真是太复杂了
你还很牛啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2017-7-8 00:21:09 | 显示全部楼层
谢谢分享。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 15:13 , Processed in 0.186564 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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