wayne_myles 发表于 2015-7-21 14:43:43

求LISP自动修改标注样式管理器中所有标注样式的文字高度为9和箭头大小0.5和角度精...

本帖最后由 wayne_myles 于 2015-7-21 14:47 编辑

请大侠出手 求LIS自动修改标注样式管理器中所有标注样式的文字高度为9和箭头大小0.5和角度精度为0.01,可以吗!最好可以把以前的标注全部更新为修改后标注样式,可以吗!!估计有难度,在论坛搜索不到类似的

edata 发表于 2015-7-21 18:38:38

;;标注统一
;;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)
)

lucas_3333 发表于 2015-7-21 15:27:39

一点都不实用, 还是你那天所说的, 从别的图拷贝来了图形增加了很多文字样式和标注样式, 都不统一, 然后你苦想了几天,就想到了这招? 你为何不去想如何统一标注样式 ?统一用一个标注样式,

jkop 发表于 2023-7-6 16:33:37

edata 发表于 2015-7-21 18:38


瞬间让图面标注统一,好东西,顶!

wayne_myles 发表于 2015-7-21 14:45:04

这是个很实用的功能啊!望高手造福大家!

wayne_myles 发表于 2015-7-21 15:30:33

本帖最后由 wayne_myles 于 2015-7-21 15:40 编辑

lucas_3333 发表于 2015-7-21 15:27 http://bbs.mjtd.com/static/image/common/back.gif
一点都不实用, 还是你那天所说的, 从别的图拷贝来了图形增加了很多文字样式和标注样式, 都不统一, 然后你苦 ...

呵呵 厉害啊啥都逃不过你的眼睛 可是统一标注样式的时候有个问题,就是替换时候,公差会全部消失!
做设计的时候,经常会参考别人的图纸,一些标准件和常用的部件是相同的,所以会经常拷贝过来,样式一多就无法控制的因素就多,而且字体标注形态各不相同,打印图纸很难看!

wayne_myles 发表于 2015-7-21 15:52:59

不信你看别人也为这个样式问题苦恼了!http://bbs.mjtd.com/thread-110672-1-1.html

lucas_3333 发表于 2015-7-21 19:51:34

建议楼主还是把dimtxsty 加进去, 否则不同的字体,就算一样的文字高度, 实际大小也会不一样.

wayne_myles 发表于 2015-7-22 07:33:22

本帖最后由 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:18:10

本帖最后由 wayne_myles 于 2015-7-24 11:47 编辑

edata 发表于 2015-7-21 18:38 http://bbs.mjtd.com/static/image/common/back.gif

E大,谢谢你了,真乃牛人也!效果很好太给力了,,能不能做个框选的,使用中发现有的图框大小相差较大,需要单独框选调整就完美了!!

lucas_3333 发表于 2015-7-24 12:02:21

wayne_myles 发表于 2015-7-24 11:18 static/image/common/back.gif
E大,谢谢你了,真乃牛人也!效果很好太给力了,,能不能做个框选的,使用中发现有的图框大小相差较大,需 ...

(if (setq ss (ssget "x" '((0 . "DIMENSION"))))

把这里的 "x" 去掉试试
页: [1] 2
查看完整版本: 求LISP自动修改标注样式管理器中所有标注样式的文字高度为9和箭头大小0.5和角度精...