求LISP自动修改标注样式管理器中所有标注样式的文字高度为9和箭头大小0.5和角度精...
本帖最后由 wayne_myles 于 2015-7-21 14:47 编辑请大侠出手 求LIS自动修改标注样式管理器中所有标注样式的文字高度为9和箭头大小0.5和角度精度为0.01,可以吗!最好可以把以前的标注全部更新为修改后标注样式,可以吗!!估计有难度,在论坛搜索不到类似的 ;;标注统一
;;by edata@mjtd 2015-7-21
(defun c:tt(/ elist a dim_a dim_lst en obj ss)
(setq dim_a(tblnext "dimstyle" t) dim_lst '())
(setq dim_lst(cons (cdr(assoc 2 dim_a)) dim_lst))
(while(setq dim_a(tblnext "dimstyle"))
(setq dim_lst(cons (cdr(assoc 2 dim_a)) dim_lst))
)
(print dim_lst)
(while(setq a(car dim_lst))
(setq elist (entget(tblobjname"dimstyle" a)))
(if(assoc 140 elist)
(setq elist(subst(cons 140 9)(assoc 140 elist)elist))
(setq elist(reverse(cons(cons 140 9)(reverse elist))))
)
(if(assoc 41 elist)
(setq elist(subst(cons 41 0.5)(assoc 41 elist)elist))
(setq elist(reverse(cons(cons 41 0.5)(reverse elist))))
)
(if(assoc 179 elist)
(setq elist(subst(cons 179 2)(assoc 179 elist)elist))
(setq elist(reverse(cons(cons 179 2)(reverse elist))))
)
(entmod elist)
(setq dim_lst(cdr dim_lst))
)
(setvar 'dimadec 2)
(setvar 'dimtxt 9.0)
(setvar 'dimasz 0.5)
(if (setq ss (ssget "x" '((0 . "DIMENSION"))))
(while (setq en (ssname ss 0))
(setq obj (vlax-ename->vla-object en))
(vla-put-ArrowheadSize obj 0.5)
(vla-put-TextHeight obj 9.0)
(if (= (vla-get-objectname obj) "AcDb2LineAngularDimension")
(vla-put-TextPrecision obj 2)
)
(setq ss (ssdel en ss))
)
)
(princ)
)
一点都不实用, 还是你那天所说的, 从别的图拷贝来了图形增加了很多文字样式和标注样式, 都不统一, 然后你苦想了几天,就想到了这招? 你为何不去想如何统一标注样式 ?统一用一个标注样式, edata 发表于 2015-7-21 18:38
瞬间让图面标注统一,好东西,顶! 这是个很实用的功能啊!望高手造福大家! 本帖最后由 wayne_myles 于 2015-7-21 15:40 编辑
lucas_3333 发表于 2015-7-21 15:27 http://bbs.mjtd.com/static/image/common/back.gif
一点都不实用, 还是你那天所说的, 从别的图拷贝来了图形增加了很多文字样式和标注样式, 都不统一, 然后你苦 ...
呵呵 厉害啊啥都逃不过你的眼睛 可是统一标注样式的时候有个问题,就是替换时候,公差会全部消失!
做设计的时候,经常会参考别人的图纸,一些标准件和常用的部件是相同的,所以会经常拷贝过来,样式一多就无法控制的因素就多,而且字体标注形态各不相同,打印图纸很难看! 不信你看别人也为这个样式问题苦恼了!http://bbs.mjtd.com/thread-110672-1-1.html 建议楼主还是把dimtxsty 加进去, 否则不同的字体,就算一样的文字高度, 实际大小也会不一样. 本帖最后由 wayne_myles 于 2015-7-23 07:48 编辑
edata 发表于 2015-7-21 18:38 http://bbs.mjtd.com/static/image/common/back.gif
谢谢E大出手,终于有希望解决这个问题了!
刚才试用E大的程序,很强啊!轻松解决困扰许久的问题,明经真是藏龙卧虎啊!呵 本帖最后由 wayne_myles 于 2015-7-24 11:47 编辑
edata 发表于 2015-7-21 18:38 http://bbs.mjtd.com/static/image/common/back.gif
E大,谢谢你了,真乃牛人也!效果很好太给力了,,能不能做个框选的,使用中发现有的图框大小相差较大,需要单独框选调整就完美了!! wayne_myles 发表于 2015-7-24 11:18 static/image/common/back.gif
E大,谢谢你了,真乃牛人也!效果很好太给力了,,能不能做个框选的,使用中发现有的图框大小相差较大,需 ...
(if (setq ss (ssget "x" '((0 . "DIMENSION"))))
把这里的 "x" 去掉试试
页:
[1]
2