各位經(jīng)驗(yàn)豐富的學(xué)者專家老師們:
你們好!
大家都知道大字體gbcbig.shp是AutoCAD本地化時(shí)需要的一個(gè)字體定義形文件,其轉(zhuǎn)化為gbcbig.shx后可被AutoCAD調(diào)用。現(xiàn)在我正在做一項(xiàng)工作,想將這種.SHX文件轉(zhuǎn)換成.aa文件,以擴(kuò)展.shx格式文件的使用范圍,說明一下:.aa文件是ThinkDesign中的字體文件定義格式。我想實(shí)現(xiàn)他們?nèi)撸?shp,.shx,.aa)之間的相互轉(zhuǎn)化.目前已經(jīng)基本實(shí)現(xiàn)了這個(gè)目標(biāo),具體包括:shx-->shp shp-->aa
shx-->aa 。在實(shí)現(xiàn)將shp-->aa/shx-->aa 中,我需要知道.shp/.shx文件中字高的定義。
在AutoCAD幫助文件中有如下解釋:
*0,4,font-name
above,below,modes,0
其中,above 值指出大寫字母從基線向上延伸的矢量長度,below 指出小寫字母從基線向下延伸的距離。基線的概念與紙面書寫時(shí)的基準(zhǔn)線相似。這些值定義了基本字符尺寸,用作 TEXT 命令中指定高度的縮放比例。
舉個(gè)例子:
*BIGFONT 7019,1,161,254
*0,4,工程漢字字符集 1998.1. FAW/Autodesk CTC CBX(0293)
0,64,2,0
在實(shí)現(xiàn)將shp轉(zhuǎn)化aa和將shx轉(zhuǎn)化aa 中,我將字高規(guī)定為max(above,below),在gbcbig中具體表現(xiàn)為max(0,64),除了gbcbig這個(gè)字體定義外,其他都還算合適,問題就出在gbcbig上,因?yàn)間bcbig中有一個(gè)子形*142,具體是這樣定義的:
*142,14,起始描述(比例系數(shù)加入和起點(diǎn)調(diào)整)
4,9,3,102,2,14,8,(-34,-80),2,8,(0,-5),0
這就有一個(gè)問題,如果我把max(0,64)當(dāng)成是字高的話,對(duì)于一個(gè)具體的字的定義來說,比如*48112,57,火
7,142,5,2,8,(29,51),1,8,(-8,-30),8,(-15,-18),2,8,(49,5),1,8,(7,0),2,8,(-29,81),
1,8,(-4,-40),2,8,(-17,19),1,8,(9,-21),2,8,(10,7),1,8,(24,-47),2,8,(-7,61),1,8,(-13,-19),7,143,0
這個(gè)字在CAD中顯示出來就是一個(gè)正常顯示的9/102大小的字,非常的小,難以辨識(shí)。
我現(xiàn)在需要解決這個(gè)字體縮放問題。為什么這個(gè)gbcbig字體顯示結(jié)果會(huì)是這樣小呢,我懷疑是我把字高的定義搞錯(cuò)了,查了很多資料,也沒有答案,特請(qǐng)大家?guī)兔Α?br>
問題1:字體的形定義中字高是如何定義的
問題2:為什么一般的普通大字體(非擴(kuò)展大字體)文件,比如
*BIGFONT 5887,1,128,255
*0,4,FS791127 Copyright (c) 1991 by Top One Technology Inc., Taipei., Taiwan.
48,0,2,0
*BIGFONT 8009,3,161,163,166,166,176,247
*0,4,HZ 1/6/92
127,0,2,0
中的編碼0的定義部分前兩位是:第一位是非0,第二位是0;而gbcbig中編碼0的定義部分前兩位卻是反過來的:0,64?是偶然還是另有其他解釋呢?
一問:
為什么不能顯示漢字?或
輸入的漢字變成了問號(hào)?
答:原因可能是:
1. 對(duì)應(yīng)的字型
沒有使用漢字字體,如HZTXT.SHX等;
2. 當(dāng)前系統(tǒng)中沒有漢字字體形文件;應(yīng)將所用到的形文件
復(fù)制到
AutoCAD的字體目錄中(一般為...\FONTS\);
3. 對(duì)于
某些符號(hào),如希臘字母等,同樣必須使用
對(duì)應(yīng)的字體形文件,否則會(huì)顯示成?號(hào)。
二問:為什么輸入的文字高度無法改變?
答:使用的字型的高度值不為0時(shí),
用DTEXT命令書寫文本時(shí)都不提示輸入高度,
這樣寫出來的文本高度是不變的,
包括使用該字型進(jìn)行的尺寸標(biāo)注。
三問:如何改變已經(jīng)存在的字體格式?
答:如果想改變已有文字的大小、字體、高寬比例、間距、傾斜角度、插入點(diǎn)等,
最好利用“特性(DDMODIFY)”命令(前提是你已經(jīng)定義好了許多文字格式)。
點(diǎn)擊“特性”命令,點(diǎn)擊要修改的文字,回車,
出現(xiàn)“修改文字”窗口,
選擇要修改的項(xiàng)目進(jìn)行修改即可。
四問:可以使用系統(tǒng)字體嗎,如宋體、楷體等?
答:雖然ACAD R14能夠使用*.TTF漢字字體文件,
可是這種字體太花費(fèi)CPU時(shí)間,
對(duì)于檔次稍低的電腦,
顯示速度(如使用實(shí)時(shí)縮放命令時(shí))實(shí)在太慢。
建議檔次低的電腦還是使用*.shx文件好。
在漢字*.shx文件當(dāng)中,
推薦使用大恒或浩辰公司為ACADR12配套的HZ*.shx字體文件,
但在不同機(jī)器上沒有相應(yīng)字體會(huì)引起漢字顯示問題。
當(dāng)然為美觀起見少量使用系統(tǒng)字庫也未嘗不可。
五問 何替換找不到的原文字體?
復(fù)制要替換的字庫為將被替換的字庫名,如:打開一幅圖,提示未找到字體jd,你想用hztxt.shx替換它,那么你可以去找AutoCAD字體文件夾(font)把里面的hztxt.shx 復(fù)制一份,重新命名為jd.shx,然后在把XX.shx放到font里面,在重新打開此圖就可以了。以后如果你打開的圖包含jd這樣你機(jī)子里沒有的字體,就再也不會(huì)不停的要你找字體替換了。