[计算机应用]
关于Auto CAD矢量字体和形文件D
蔡云南
[关键词]Auto CAD;矢量字体;形文件
[摘要]Auto CAD的汉字矢量字体在线条密集的船舶图纸上还是挺受欢迎的可惜与西文的矢量字体不够匹配影响图纸美观为解决这个问题许多用户提出了自己的办法本文介绍的方法是原始的但具有通用性
[中图分类号]TP391.7Z U66Z.9[文献标识码]A[文章编号]1001-9866(Z00Z D0Z-0060-04
Vector f ont and lattice cell of Auto CAD
Cai Yunnan
Keywords,Auto CAD;vector font;lattice cell
Abstract,Chinese characters vector font of Auto CAD on the denizens lines ship drawing sheet is popular but it can not match the western words vector font so the beauty of the drawing sheet is influen
ced. Many clients raise their own methods to solve the problem.The method introduced in this paper is original but current.
1概述
Auto CAD的汉字矢量字体是DOS版本Auto CAD时代的产物我们知道一般的字体是以字号来定义大小的而Auto CAD的矢量字体是以字高来定义的当中西文混排时就产生了匹配问题由于西文笔划一般都比汉字少尽管字高一样但视觉误差使我们看上去西文要比汉字大这就成了不是问题的问题我们许多用户就想改变它
也许有人会问windows版本的Auto CAD已经可以使用系统字体而系统字体不存在中西文匹配问题不用矢量字体不就行了吗?别的行业我不敢说在我们造船行业Auto CAD矢量字体是舍不去的我们的图纸上线条比较密系统字体固然漂亮但放在线条密的部位会严重影响效果而单线条的矢量字体相对就比较清晰不光如此矢量字体所占字节小图纸文件也就小这对显示打印都十分有利
据笔者了解许多用户都对这一问题进行了处理采用的方法差不多是一样的即获取矢量字体的源文件(SHP形文件D将文件首部定义字高的数据修改再重新编译应该承认这是一种简单而又非常有效的方法笔者在几年前就做过这样的处理效果很好
能够修改矢量字体说明对形文件已有一定的研究进而根据专业特点编制特殊符号的形文件也就比较自然很多用户都进行了这方面的开发
2异议
好不容易到的方法后来被我自己否决了道理非常简单它不具通用性我的电脑上这么处理了字体很匹配可是把我的图纸文件拷到没有处理过的电脑上自然原形毕露;我的图纸文件中含有自己编制的特殊符号的形文件那就更麻烦了别人电脑上没有相应的形文件所有这些符号自然丢失引起图纸错误图纸的数据文件完全不交换是做不到的要求别人或别的单位与自己统一也是不现实的记得当初国内R1Z版本时曾增加了调节中西文比例的功能非常方便但它的改进版就取消了这一功能笔者猜想也许是的作者考虑到了这个问题
我认为通用性是非常重要的对具体某一行业
06
Z00Z年4月
第Z期
船舶
SHIP8BOAT
April Z00Z
O.Z
D[收稿日期]Z001-10-14
[作者简介]蔡云南(1960.8-D男汉族江苏人高级工程师主要从事船舶经营管理工作
某一专业来说,AutoCAD恐怕并不十分理想,但我们还在用,因为它的用户多,通用性强,我们可以根据自己的专业特点对AutoCAD进行二次开发,但千万不要在文件中留下别人无法使用的信息,
3建议
上述的处理方法简单又有效但不具通用性,如果由国家或行业的权威部门来统一发布标准就万事大吉了,问题是制定这种标准确实有困难,软件版本不断更新,功能不断增加,用户的习惯各异,涉及的内容过多,比如图层,颜,线形,图块,字型,字高等等,就算有了标准,能否彻底贯彻也成问题,我的观点是,在没有统一标准情况下更要强调通用性,可以有自己的习惯自己的定义,但要让别人很容易修改,不能保证不同软件版本保持图纸原样,但要保证同一版本不同单位不同电脑保持图纸原样,
那么,如何来处理Auto CAD中西文混排时矢量字体匹配问题呢我的方法是回归到最原始的做法,即当中西文混排又是采用矢量字体时让汉字和西文分开,要么放大汉字要么缩小西文,这当然不是原始的分开输入,这样是太麻烦了,而是编制一个小程序让电脑去做,
4源程序
;;ZXTEXT.LSP中西混排矢量文字输入及调整程序
;===================== (defun c:Zxtext(/hight pt Style chineSe xx angle ang Str)
(Setg oS(getvar oSmode))(Setvar oSmode0) (initget Edit)
(Setg pt(getpoint\nEdit<Start point:>"))
(if(=pt Edit)
(Zxedit)
(progn
(Setg Style(getvar TEXTSTYLE))
(Setg chineSe(cdr(aSSoc4(tblSearch Style Style))))
(if(=chineSe)
(progn)
(prompt(Strcat\n当前的字型Style中没有定义矢量汉字字体))
(princ)
)
(progn
(Setg hight(getvar TEXTSIZE))
(Setg xx(getdiSt pt(Strcat\nHeight <"(rtoS hight)>:)))
(if xx(Setg hight xx))
(Setg angle(getangle\nRotation an-gle<0>:))
(if(=angle nil)(Setg angle0))
(Setg ang(/(0angle pi)l80))
(Setg Str(getString l\nText:))
(Zxtext a)
)
)
)
)
(Setvar oSmode oS))
;---------------------(defun Zxedit(/object SSet SSlen nSSet ename eliSt Style layer SeliSt chineSe Str hight idth color pt ang angle)
(Setg object edit)
(Setg SSet(ai aSelect))
(if(null SSet)
(progn
(princ\n错误:没有选到文字.)
(exit)
)
)
(Setg SSlen(SSlength SSet)
nSSet(SSadd))
(if(>SSlen25)
(princ\n确认所选的图元--请稍候.)
)
(hile(>SSlen0)
(Setg ename(SSname SSet(Setg SSlen(l-SSlen)))
eliSt(entget ename)
)
(if(=(cdr(aSSoc0eliSt))TEXT)
(progn
(Setg Style(cdr(aSSoc7eliSt))
SeliSt(tblSearch Style Style)
chineSe(cdr(aSSoc4SeliSt))
)
l6
关于Auto CAD矢量字体和形文件
(if(/=chinese H H)(ssadd ename nsset))
)
)
)
(setg sslen(sslength nsset)
sset nsset)
(While(>sslen0)
(setg ename(ssname sset(setg sslen(1-sslen)))
elist(entget ename)
str(cdr(assoc1elist))
style(cdr(assoc7elist))
layer(cdr(assoc8elist))
pt(cdr(assoc10elist))
hight(cdr(assoc40elist))
Width(cdr(assoc41elist))
ang(cdr(assoc50elist))
color(cdr(assoc62elist))
angle(/(ang180)pi)
)
(command H erase H ename H H)
(command H style H style H H H0.0H H H H H H H H H H H)
(Zxtext a)
)
)
;---------------------(defun Zxtext a(/n a len asc a asc b asc c len neW str pt2)
(setg n1
a n
len1
)
(While(/=(substr str n1)H H)
(setg asc a(ascii(substr str n1))
asc b(ascii(substr str(1+n)1)) )
(if(=asc c nil)(setg asc c asc a))
(if(and(/=asc b0);非空
(or
(and(<asc a127)(<asc b127) (<asc c127));两者均为西文
(and(>asc a127)(>asc b 127));两者均为汉字
(and(>asc a127)(=asc b32));汉字中空格
(and(=asc a32)(=asc b32));空格
(and(=asc a32)(>asc b127) (>asc c127));汉字中空格
)
)
(setg len(1+len))
(progn
(setg neW str(substr str a len))
(if(<(ascii(substr neW str11))127)
(progn
(setg pt(polar pt(+ang(pi0.
5))(hight0.1)))
(setg pt2H up H)
(command H text H pt(hight0.8) angle neW str)
(setg asc c nil)
)
(progn
cad字体安装
(setg pt2nil)
(command H text H pt hight angle neW str)
(setg asc c nil)
)
)
(next pt)
(setg len1a(1+n))
);end progn
);end if
(setg n(1+n))
)
(princ)
)
;---------------------(defun next pt(/last ename last elist pt1dis) (if(=object H edit H)
(progn
(setg last ename(entlast)
last elist(entget last ename)
last elist(subst(cons8layer)(as-soc8last elist)last elist)
last elist(subst(cons41Width) (assoc41last elist)last elist)
)
(entmod last elist)
262002年4月
第2期
船舶
SHIP S BOAT
April,2002
O.2
)
)
(setg last ename(entlast)
last elist(entget last ename)
last elist(subst(cons722)(assoc72 last elist)last elist)
last elist(subst(cons11pt)(assoc11 last elist)last elist)
)
(entmod last elist)
(setg last ename(entlast)
last elist(entget last ename)
pt1(cdr(assoc10last elist))
dis(distance pt1pt)
)
(setg last elist(subst(cons720)(assoc72last elist)last elist)
last elist(subst(cons10pt)(assoc10 last elist)last elist)
)
(entmod last elist)
(setg pt(polar pt ang(-dis(e hight0.2)))) (if(I pt2up)
(setg pt(polar pt(-ang(e pi0.5))(e hight0.1)))
)
)
S I I I I I I I I I END I I I I I I I I I
5结束语
本程序考虑到了截断语句和改变字高带来的位置变化9除了破坏了语句的整体性外9表面上几乎是天衣无缝的G从原理上讲确实非常原始9但还算实用方便G笔者也想出一种理想的方法9目前还没有做到G也想借此向大家请教G
(上接第55页)
经过八五~九五期间各大专院校和研究所的联合攻关9我国已在现代电力电子及交流调速领域取得不少科研成果G更重要的是9已经建成晶闸管9GTO和IGBT三代电力电子器件及其应用技术的开发条件及一定的产业条件9品种比较齐全G尤其是第三代器件IGBT及其应用产品已开发成功9在大中容量交流调速领域也取得不少科研成果9并有产品应用到实际中9其中包括清华大学电机系和冶金部自动化院合作研
制的交交变频同步电机驱动系统9均已投入运行9社会经济效益显著G1994年冶金部自动化院与清华大学和上海电机厂一起研制成功用于天津中板厂的5000kW交交变频驱动系统G 冶金部自动化院与清华大学和东方电机厂合作研制的用于重钢五厂的4000kW交交变频驱动系统和用于攀枝花钢厂的5000kW交交变频驱动系统均已成功投入运行并取得了很好的经济效益G
目前我国在舰用大功率燃气轮机~永磁电机~高压大容量电力电子器件~吊舱推进器等方面的设计~制造方面与发达国家还有很大的差距G
4结论
由以上讨论可见9综合全电力推进已成为21世纪舰艇动力发展的主要方向9目前在民船~军辅船上已得到广泛应用G以美国的DD21驱逐舰~英国的45型护卫舰为代表的采用综合全电力推进的水面舰船也将在本世纪初下水G我们必须充分发挥研究院(所)~院校等多方面力量9加快综合全电力推进关键技术(总体技术~系统控制与调速技术~高压大容量电力集成技术等)研究的步伐9结合新船引进必要的设备和技术9努力缩短与国外的差距9实现舰船动力的跨越式发展G
[参考文献]
[1]NAVAL Engineers Joarnal V.91.N2.P109-118
[2]ABB.Eguipment for Electric Propulsion for Semi-Sub
~eavy Lift
[3]ABB.List of the main eguipment
[4]Siemens Schottel Porpulsor for the Chinese Navy
[5]ALSTOM Mermaid Porpulsion Systems
[6]714所~712所<;舰艇电力推进译文集>
[7]海军论证中心舰船所动机室<;舰艇动力装置新技术译
文集>
[8]海军论证中心<;论证与研究舰船电力推进技术专
辑>
[9]712所<;舰船电力推进情报研究论文集>
36
关于Auto CAD矢量字体和形文件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论