孔凡合,趙衛(wèi)常,董軍朝
(1.河北省地礦局 第十一地質(zhì)大隊,河北 邢臺 054000;2.河北省煤田地質(zhì)局 物測地質(zhì)隊,河北 邢臺 054000)
隨著計算機(jī)的普及,現(xiàn)在大部分的圖形制作已實(shí)現(xiàn)了數(shù)字化。數(shù)字化的矢量圖形可以在計算機(jī)上直接進(jìn)行坐標(biāo)量取或工程設(shè)計。這些工作充分體現(xiàn)了數(shù)字化圖高精度的優(yōu)點(diǎn),但有時需要將圖紙帶到施工的現(xiàn)場,在現(xiàn)場量取坐標(biāo),此時就需要將圖紙打印出來。而現(xiàn)在常用的繪圖儀中打印精度最好的也只能達(dá)到±0.1%[1],對于50 cm×50 cm的圖紙,就是±0.5 mm。而測量規(guī)范要求的精度為:地形圖圖廓線長度誤差不得超過±0.2 mm[2],對于50 cm×50 cm的圖即是 0.4‰。顯然繪圖儀的精度不能滿足測量規(guī)范要求。這需要采用一種方法來提高圖紙的打印精度。
對大量的繪圖儀所打印圖紙進(jìn)行量測,得到結(jié)論:圖紙在橫向(垂直于圖紙的前進(jìn)方向)誤差可以達(dá)到0.1‰,能夠滿足測量中規(guī)范的要求,而在縱向(走紙方向),誤差較大,即使在對繪圖儀多次校正的基礎(chǔ)上最好狀態(tài)也只有1‰。顯然單純從提高繪圖儀的打印精度方面下功夫,不能滿足圖紙在測量規(guī)范中的要求,只有從其他方面入手來解決問題。通過對大量圖紙的量測數(shù)據(jù)分析、比較得出:在一定的時間段(十幾天或幾個月)內(nèi)或說打印一定量批次圖紙時,按一定的圖紙校正好的繪圖儀,其縱向誤差基本趨于一個定值,屬于系統(tǒng)誤差,可以通過一定的方法進(jìn)行調(diào)整。雖然不能對繪圖儀進(jìn)行改變,但通過將圖形文件在縱向校正可提高圖紙的打印精度。即如果打印圖紙在縱向上延長了 1 mm,可通過將圖形文件在計算機(jī)中縮短 1 mm×比例尺分母,使打印出來的圖紙符合應(yīng)該打印的長度,從而使圖紙滿足測量規(guī)范的精度要求。反之亦然。
現(xiàn)在的繪圖軟件所繪制的圖形大多能保存為一種通用的文本文件格式,即 DXF文件,DXF文件里含有圖形中每個圖元的詳細(xì)信息。為了能對大多數(shù)格式的圖形進(jìn)行校正,可以開發(fā)一個程序?qū)?DXF文件進(jìn)行操作,將圖形中每個圖元的坐標(biāo)信息進(jìn)行改變,使圖形在一定的方向進(jìn)行拉伸或壓縮來達(dá)到圖形校正的目的,從而使打印出來的圖形達(dá)到測量規(guī)范的要求。
要想修改DXF文件,首先要了解DXF文件的格式。DXF文件本質(zhì)上由代碼及關(guān)聯(lián)值對組成。代碼表明其后面值的類型。使用這些代碼和值對,可以將DXF文件組織到由記錄組成的區(qū)域中,這些記錄由代碼和數(shù)據(jù)項目組成。在DXF文件中,每個代碼和值都各占一行。每段都以一個后跟字符串SECTION的代碼0開始,其后是代碼2和表示該段名稱的字符串(例如,HEADER)。每段都由定義其元素的代碼和值組成。每段都以一個后跟字符串 ENDSEC的代碼 0結(jié)束。[3]
DXF文件完整的結(jié)構(gòu)如下:
HEADER段,包含圖形的基本信息,由 AutoCAD數(shù)據(jù)庫版本號和一些系統(tǒng)變量組成,每個參數(shù)都包含一個變量名稱及其關(guān)聯(lián)的值。
CLASSES段,包含應(yīng)用程序定義的類的信息,這些類的實(shí)例出現(xiàn)在數(shù)據(jù)庫的 BLOCKS,ENTITIES和OBJECTS段中;類定義在類的層次結(jié)構(gòu)中是固定不變的。
APPID(應(yīng)用程序標(biāo)識表)
BLOCK_RECORD(塊參照表)
DIMSTYLE(標(biāo)注樣式表)
LAYER(圖層表)
LTYPE(線型表)
STYLE(文字樣式表)
UCS(用戶坐標(biāo)系表)
(2)當(dāng)攪拌機(jī)將物料倒放到運(yùn)料卡車上時,卡車需要前后移動,按前后中的順序分為三堆,以減少粗集料發(fā)生離析的現(xiàn)象。
VIEW(視圖表)
VPORT(視口配置表 )
BLOCKS段,包含構(gòu)成圖形中每個塊參照的塊定義和圖形圖元。
ENTITIES段,包含圖形中的圖形對象(圖元),其中包括塊參照(插入圖元)。
OBJECTS段,包含圖形中的非圖形對象,即除圖元、符號表記錄以及符號表以外的所有對象都存儲在此段。
THUMBNAILIM AGE段,包含圖形的預(yù)覽圖像數(shù)據(jù),此段為可選項。
通過DXF文件編寫實(shí)現(xiàn)圖形的校正似乎很難,但編輯DXF格式文件時可以忽略不需要的信息,而只讀取需要的信息。在此要關(guān)注的是HEADER段和ENTITIES段。其中 HEADER段里包含了圖形的范圍。ENTITIES段里包含了圖元信息(包括各種圖塊、線段、填充)的主要內(nèi)容。要想對圖形進(jìn)行調(diào)整,就要對這兩個段進(jìn)行操作。
DXF文件中對圖元信息進(jìn)行描述的數(shù)值除坐標(biāo)數(shù)據(jù)外都不大,一般在1000以內(nèi)。測量圖形中實(shí)際坐標(biāo)數(shù)值都在5位數(shù)以上。為此,不必太注重考慮DXF文件中各圖元信息的表示方法,而是只注重DXF文件中的數(shù)值,讀取 DXF文件中的數(shù)據(jù),然后將其轉(zhuǎn)化為數(shù)值,如果其大于圖形的左下角坐標(biāo)的縱坐標(biāo)值,則對其進(jìn)行操作,否則忽略。對于一些絕對坐標(biāo)值較小的圖形,可先用 AutoCAD打開圖形,選中所有圖形,利用平移命令,將圖形平移到縱坐標(biāo)值大于5位數(shù)的位置,再將圖形另存為 DXF文件,對圖形進(jìn)行校正。
打印圖紙中圖形的變形是系統(tǒng)誤差,距首先打印邊線的距離越遠(yuǎn)變形越大,據(jù)此對圖形進(jìn)行調(diào)整。假定南北向的圖紙首先打印圖紙的底部,即圖形中x方向的最小值位置,就將圖紙的左下角坐標(biāo)作為基點(diǎn),然后根據(jù)圖形中圖元坐標(biāo)距圖形基點(diǎn)的距離進(jìn)行調(diào)整。圖元調(diào)整數(shù)值Δx的數(shù)學(xué)模型為:
式中,x0為圖形左下角的x坐標(biāo)值;x為每個圖元對應(yīng)的x坐標(biāo)值;Sx為圖形在x方向的最大校正值,拉伸為正值,壓縮為負(fù)值;lx為圖形在x方向的長度。
假定一個50 cm×50 cm的圖紙,在正常打印時縮短了 1 mm,那么,這里Sx為1 mm,lx為500 mm。
圖1 程序流程圖
首先將需要糾正的圖形文件生成DXF文件。在這一步用圖形編輯軟件打開圖形,將圖形另存為 DXF格式即可實(shí)現(xiàn)。程序開發(fā)的流程如圖1所示。
程序中打開圖形模塊的功能如圖2所示的界面。包括輸入需要校正圖形的文件名、校正后生成的文件名、圖形的左下角坐標(biāo)x0、圖形的長度lx及各方向的修改值Sx等。
程序中讀入文件的模塊要以行方式來讀取數(shù)據(jù)。用行方式讀入數(shù)據(jù)后,用val函數(shù)將其轉(zhuǎn)化為數(shù)值類型,然后根據(jù)數(shù)值的大小,判斷其是否為需要修改的坐標(biāo)信息。判斷的方法為:檢查數(shù)值與圖形左下角的縱坐標(biāo)的差值,如果大于零且小于等于圖長則證明為圖元的坐標(biāo)信息,需要對其進(jìn)行修改;否則直接寫入到修改后形成的文件。
程序數(shù)據(jù)修改模塊:用讀入的數(shù)據(jù),根據(jù)式(1)計算與圖形下邊緣的距離,依比例對圖元的坐標(biāo)信息進(jìn)行校正。修改完成后,將修改的數(shù)據(jù)寫入到文件中。
程序的運(yùn)行界面如圖2所示。在提示窗口中輸入需要校正文件的路徑及文件名、校正好后生成的文件名,如果已校正文件名不輸入,程序會自動根據(jù)需校正文件名,生成后面加“JZ”的文件;在相應(yīng)文本框中根據(jù)提示輸入圖形的實(shí)際長度、寬度和圖形的左下角坐標(biāo)值以及左上角、右上角的縱向和橫向校正值。數(shù)據(jù)輸入完成后,左鍵單擊“校正”按鈕,程序即會對DXF文件進(jìn)行修改,并將修改后的數(shù)據(jù)保存在校正后的文件中。此時用繪圖軟件打開這個修改后的DXF文件,再進(jìn)行圖形打印,即可使打印圖形達(dá)到測量規(guī)范要求的精度。
圖2 程序運(yùn)行界面圖
通過上述的方法,在不能改變繪圖儀打印精度的情況下,利用編程修改圖形的 DXF文件,對圖形進(jìn)行拉伸或壓縮,從而提高圖紙的打印精度。通過此程序不僅可使繪圖儀打印的圖形精度達(dá)到測量規(guī)范的要求,而且圖紙矢量化時,如果在掃描圖紙過程中有系統(tǒng)變形,在圖紙矢量化完成后,也可通過此種方法對矢量化圖形進(jìn)行校正,從而提高圖紙矢量化的精度。
[1]HP公司.HP Designjet T770和 T1200打印機(jī)系列使用說明書 [Z].[出版地、出版者不詳 ],2009:175.
[2]CJJ8-99,城市測量規(guī)范 [S].
[3]謝平,蔣先剛,陳海雷,等.工程繪圖及應(yīng)用開發(fā) [M].北京:北京理工大學(xué)出版社,2010:300.