bbswen
发表于 2014-7-12 12:38:08
不知道怎么实现啊,
请高手帮忙
429014673
发表于 2014-7-13 22:50:18
你不是有一个了吗
spp_wall
发表于 2014-7-14 08:49:51
LZ 应该放出源码来让高手修改!!!!
bbswen
发表于 2014-7-14 13:07:59
没有源码,如果有了,就可以自己改下了,
从没有到有很难
从有到修改就容易了,呵呵
wayne_myles
发表于 2015-7-10 18:00:21
我也是这问题,特别是从别的粘贴过来是 字体样式相当混乱!盼大神出手相助
gaics
发表于 2015-7-11 00:54:17
把所有文字归集到一种样式吗?如果是这样的话好像不是什么难事吧?我倒是有一个这样的,
gaics
发表于 2015-7-11 10:56:41
本帖最后由 gaics 于 2015-7-11 11:02 编辑
这个是我自己用的,把所有文字改成同一种样式。
(defun c:ZT (/ wz i ent)
(command "style" "HZ" "hzasc,hztxt" "0" "0.7" "0.0" "" "" "")
(setq wz (ssget "X" '((0 . "TEXT,MTEXT"))))
(setq i -1)
(repeat (sslength wz)
(setq ent (ssname wz (setq i (1+ i))))
(setq num 7)
(setq ch "HZ")
(ch_dxf ent num ch)
(setq num 41)
(setq ch 0.7)
(ch_dxf ent num ch)
(setq num 51)
(setq ch 0.0)
(ch_dxf ent num ch)
)
(princ)
)
(defun ch_dxf (en num ch / old_num new_num ent)
(if (setq ent (entget en)
new_num (cons num ch)
old_num (assoc num ent)
)
(entmod (subst new_num old_num ent))
(entmod (reverse (cons new_num (reverse ent))))
)
)
易云网络
发表于 2015-7-12 08:53:28
;改变文字字体
(defun C:sstt(/ cx ss)
(setq ss (ssget ":s"))
(setq cx (entget(ssname ss 0)))
(VL-CMDF "-style" (cdr(assoc '7 cx)) "txt" "0" "0.8" "0" "N" "N" "N")
(princ)
)
wayne_myles
发表于 2015-7-24 15:34:27
bbswen 发表于 2014-7-11 12:41 static/image/common/back.gif
这当然不是本意上的,资料在各个厂家,设计院之间传送,甲方乙方,文字样式就变成这个样子了,
最终就出现 ...
关于粘贴复制带来样式不同的问题已完美解决 感谢E大帮助
下面贴上的代码 供大家参考 可以框选更改所有样式的文字和箭头大小需要其他自己添加
;;标注统一
;;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'((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)
)
llsheng_73
发表于 2015-7-24 15:53:11
有的字体可能根本没用到,那么首先应该通过PURGE进行清理
有可能不同的字体样式名,实际上所用的字体文件名是相同的,这就需要通过程序把其中几种字体样式改成其中一种
有的字体文件可能是因为各种要求所不允许的,这也需要改为要求的字体文件