在处理建筑等其他专业条件图的时候,有时因为字体定义不一样,需要修改天正字体,目前只能一个个修改很是麻烦,使用lisp程序修改,只能修改ACAD的字体定义,天正的只能修改字体文件,无法修改“宽高比”“字宽方向”“字高方向”的参数,那位高手提供个可批量修改的lisp。或者天正里面集成个批量修改天正文字定义最好!如图中的几个参数用lisp程序都无法修改:可修改的就字体文件
在处理建筑等其他专业条件图的时候,有时因为字体定义不一样,需要修改天正字体,目前只能一个个修改很是麻烦,使用lisp程序修改,只能修改ACAD的字体定义,天正的只能修改字体文件,无法修改“宽高比”“字宽方向”“字高方向”的参数,那位高手提供个可批量修改的lisp。或者天正里面集成个批量修改天正文字定义最好!
如图中的几个参数用lisp程序都无法修改:可修改的就字体文件
2楼
补充说明:
上图中的字体是水专业的,这个可以在设置中自定义,但是其他建筑,如建筑专业提供的图纸里面天正建筑定义的字体,就需要修改了,虽然建筑字体不多,一个个改也可以,但是还是希望提供一个批量修改程序,这样有一定的通用性!
lisp程序不能修改的好像是上图中西文字体的两个参数:字高方向,字宽方向
[
本帖最后由 suqing 于 2012-3-6 13:52 编辑 ]
回复
3楼
另外增加一点建议:就是当天正字体定义中西文字体参数“字高方向”“字宽方向:值均是1的时候,在另存T3版本的时候,天正的字体就不要分汉字和数字了。
因为这两个参数均是1的时候,说明用的是等高字体文件,汉字和数字就不用分开设置,就完全没有必要炸开成两部分。
另外就是在:选项--天正设置--标注文字设置 中设置如图一;但是天正字体样式定义中:西文参数中--“字宽方向”还是有个0.8的默认值,这个对于采用等高字体很不方便,不知道可否增加一个参数设置,使这个默认的0.8也可以设置成自己所需的值
[
本帖最后由 suqing 于 2012-3-6 14:34 编辑 ]
回复
4楼
飞扬有看到吗?看到了给点意见啊!急用啊!
回复
5楼
通过lisp “宽高比”可以修改。
“字宽方向”“字高方向”是天正文字的扩展包,你改不了。也没必要改
回复
6楼
如果选用“GBCBIG,GBENOR”这字体就必需改啊,不改字体很窄,不适合出图要求!飞扬老兄和试试!
回复
7楼
天正默认字体,最大的毛病就是中西文字高不同,如果能把某种合乎上述要求的字体作为天正的默认字体,估计很多人都不愿意再去折腾了,我平时用的探索者结构软件中的一个名为“TSSD”的字体作为标准字体,钢筋符号之类的都能正常显示。
如果不存在版权之类的问题,那最好是直接借用一下这一类的字体,或是把借用来把天正默认字体文件内核给改了。
回复
8楼
这个我也赞同,强烈要求采用等高字体,解决这个一直被忽视的问题。
回复
9楼
字体等高的问题需要解决,建议用Tssdeng+Hztxt。
回复
10楼
(princ "\n命令:tx 改变字体文件!")
(defun c:tx (/ acaddocument tstyle textitem textcont seltext i textsel
texti)
(vl-load-com)
(setq acaddocument (vla-get-activedocument (vlax-get-acad-object)))
(setq tstyle (vla-get-textstyles acaddocument))
(vla-add tstyle "CXB_txt")
(setq textitem (vla-item tstyle "CXB_txt"))
(vla-put-fontfile textitem "gbenor.shx") ;"romans.shx"
(vla-put-bigfontfile textitem "GBCBIG.shx") ;"hztc2.shx"
(vla-put-width textitem 1)
(vla-put-height textitem 0.0)
(prompt "\n点选需转换的字体:")
(setq seltext (vlax-ename->vla-object (car (entsel))))
(setq selstyle (vla-get-stylename seltext))
(if (wcmatch selstyle "[@#]*")
(progn
(setq selstyle (strcat "[@#]" (substr selstyle 2)))
;;;(vla-put-stylename (vla-item tstyle (vla-get-stylename seltext)) selstyle )
))
(setq textsel
(ssget "_x" (list (cons 0 "TEXT,ATTDEF") (cons 7 selstyle)))
)
(setq i 0)
(repeat (sslength textsel)
(setq texti (vlax-ename->vla-object (ssname textsel i)))
(vla-put-stylename texti "CXB_txt")
(vla-put-scalefactor texti 1)
;;; (vla-put-height
;;; texti
;;; (* 100 (fix (/ (vla-get-height texti) 100)))
;;; )
;;; (if (= (vla-get-height texti) 200)
;;; (vla-put-height texti 300)
;;; )
(setq i (1+ i))
)
;;(vla-regen acadDocument acallViewports)
(vla-regen acadDocument :vlax-true)
(princ)
)
回复
11楼
回复