吳 瑨
(沈陽(yáng)市勘察測(cè)繪研究院,遼寧 沈陽(yáng) 110004)
CorelDraw是近年來(lái)被廣泛應(yīng)用在地圖制圖領(lǐng)域的矢量圖處理軟件,相對(duì)于傳統(tǒng)的地圖制圖軟件ArcGis、MapGis等,作為專業(yè)的圖形圖像軟件,在地圖的美觀性上,coreldraw有其無(wú)法比擬的優(yōu)越性,并且在出圖印刷上,coreldraw也有著其他軟件所不具備的優(yōu)勢(shì),在菜單文件選項(xiàng)下,它有專門的“為彩色輸出做準(zhǔn)備”一項(xiàng)。
但由于CorelDraw不是專業(yè)的地圖制圖軟件,所以在地圖制圖中,作業(yè)人員要綜合應(yīng)用包括CorelDraw在內(nèi)的多種軟件協(xié)同配合才能制作出一幅精良的地圖。[1]
通常的過(guò)程是,應(yīng)用ArcGis做初期的數(shù)據(jù)采集與庫(kù)管理工作,然后應(yīng)用MapGis做初步的地圖成圖、注記標(biāo)注等,最后用CorelDraw進(jìn)行圖面美化與細(xì)節(jié)修飾等。
1998年corel公司做出戰(zhàn)略調(diào)整,在CorelDraw中集成了VBA,極大的改善了CorelDraw的拓展功能,使用戶可以二次開發(fā)出適合自己應(yīng)用的宏。[2]
VBA(Visual Basic for Applications)是 Microsoft Visual Basic(VB)面向?qū)ο蟪绦蜷_發(fā)環(huán)境的一個(gè)子集,是新一代標(biāo)準(zhǔn)宏語(yǔ)言。VBA使用Visual Basic Editor交互開發(fā)環(huán)境和VB語(yǔ)言操作應(yīng)用程序的對(duì)象來(lái)增強(qiáng)應(yīng)用程序的功能。
VBA為用戶提供了一套客戶化CorelDraw應(yīng)用程序的圖形用戶界面,用戶可以對(duì)應(yīng)用程序中的對(duì)象進(jìn)行有效地操作和處理。VBA使用VB語(yǔ)言,由于它多用于集成到別的應(yīng)用程序并對(duì)應(yīng)用程序的函數(shù)進(jìn)行客戶化,它才加上了“for Applications”,稱作VBA。[3]
VBA可以通過(guò)記錄和運(yùn)行宏來(lái)自動(dòng)化一系列CorelDraw的任務(wù)。更重要的是可以使用VB語(yǔ)言和應(yīng)用程序內(nèi)部函數(shù)來(lái)開發(fā)更多的適合用戶需要的功能。
VBA繼承了VB的開發(fā)機(jī)制,具有與VB相似的語(yǔ)言結(jié)構(gòu)。它們的集成開發(fā)環(huán)境也幾乎相同。
CorelDraw VBA支持用戶自行錄制宏。
如圖1所示,在菜單欄中,選擇工具——Visual Basic——錄制,命名宏并保存,開始錄制宏,用戶可以對(duì)文件進(jìn)行處理,以達(dá)到自己預(yù)期的效果,然后停止錄制,需要的時(shí)候,選擇播放宏,播放錄制好的宏,可重復(fù)錄制的過(guò)程。
然而簡(jiǎn)單的錄制宏,遠(yuǎn)遠(yuǎn)無(wú)法滿足復(fù)雜操作的需求,這時(shí)候需要應(yīng)用Visual Basic編輯器來(lái)編輯適合的宏。
以CorelDraw X3為例,在編輯宏前,首先需要在文件夾C:Program FilesCorelCorelDRAW Graphics Suite 13DrawGMS下新建一個(gè)文件后綴為.gms的文件。
步驟為,新建一個(gè)文本文檔并命名,再將文本文檔的后綴.txt改為.gms,如果無(wú)法更改后綴,則需要先將工具——文件夾選項(xiàng)——查看下的“隱藏已知文件拓展名”選項(xiàng)前的對(duì)號(hào)勾掉。
然后再啟動(dòng)CorelDraw,新建文件,或是打開一個(gè)已有文件,在菜單欄下選擇工具——Visual Basic——Visual Basic編輯器 (快捷鍵Alt+f11),在工程——GlobalMacros窗口找到新建的GMS文件,便可以編輯宏了。
VBA繼承了VB的開發(fā)機(jī)制,與VB有相似的開發(fā)語(yǔ)言,他們的集成開發(fā)環(huán)境也幾乎相同,不同之處在于,VB可以生成獨(dú)立的應(yīng)用程序,但VBA只能生成運(yùn)行在宿主程序中的宏。[4]
Visual Basic編輯器界面與VB界面很相似,程序的編譯與調(diào)試過(guò)程也與VB類似,有一定編程基礎(chǔ)的人會(huì)很快熟悉并編制出適合自己的宏。
圖1
應(yīng)用多種軟件精心制作出的地圖,最后一般會(huì)通過(guò)CorelDraw來(lái)出圖印刷或噴繪。
在CorelDraw菜單欄下,選擇文件——為彩色輸出中心做準(zhǔn)備,點(diǎn)選搜集與文檔相關(guān)聯(lián)的所有文件,復(fù)制字體,生成PDF文件,便會(huì)生成一個(gè)專門用于印刷或噴繪的文件夾。
但在印刷或噴繪過(guò)程中,由于機(jī)器的型號(hào)、油墨的色值、紙張的選擇等多種因素,會(huì)影響打印質(zhì)量,使預(yù)先調(diào)配好的顏色并不能達(dá)到預(yù)期效果,尤其是出圖數(shù)量不大的情況下而采用的打印機(jī)噴繪,色差更為嚴(yán)重。[5]
由此可見,制作出一套專用于某次印刷工序或某一打印機(jī)的色表很有必要。
但一套色表,以CMYK色彩模式為例,即使色值密度選為50,需要繪制的色塊也要八十個(gè),加上文本注釋、標(biāo)題、橫縱坐標(biāo)等,需要繪制的對(duì)象要超過(guò)一百六十個(gè),況且,色表要用于調(diào)色配比,色值密度選為50過(guò)于稀疏,色值密度20的時(shí)候,對(duì)象則要超過(guò)兩千五百個(gè)。
CorelDraw VBA的優(yōu)勢(shì)在于通過(guò)程序編譯,可以讓計(jì)算機(jī)自動(dòng)完成一系列有內(nèi)在規(guī)律、重復(fù)性高的工作。就像色表,如此繁多的對(duì)象,不借助CorelDraw的VBA工具去機(jī)輔繪制,會(huì)是一項(xiàng)工作量極大且難以完成的工作。
色表生成器的數(shù)學(xué)邏輯為,循環(huán)定位坐標(biāo),繪制矩形,為矩形賦值(顏色),并在對(duì)應(yīng)矩形下生成文本標(biāo)注。
程序釋義為,該VBA程序?yàn)橐粋€(gè)循環(huán)程序,通過(guò)數(shù)值的增加,改變相關(guān)聯(lián)的屬性和賦值(矩形四角坐標(biāo)、矩形顏色、文本內(nèi)容有內(nèi)在聯(lián)系),并在文件中生成正確的色表。
程序主要代碼與注釋如下:
圖2
文本框內(nèi)可輸入用戶需要的色值密度,本次輸入“100”僅作示例。
程序運(yùn)行結(jié)果如圖3所示。
生成色表之后,可以在菜單欄下選擇文件——打印設(shè)置中點(diǎn)選“設(shè)置打印參數(shù)”,將色表打印出來(lái),并根據(jù)該打印出的色表來(lái)配比地圖的顏色。
色表的制作不僅僅適用于地圖制圖領(lǐng)域,還可以應(yīng)用于其他圖像設(shè)計(jì)領(lǐng)域,圖像設(shè)計(jì)必然會(huì)涉及到顏色配比,只要涉及到顏色配比,色表便有其不可或缺的獨(dú)到用處。
圖3
當(dāng)對(duì)CorelDraw VBA熟悉之后,作業(yè)員可能會(huì)用VBA編譯出經(jīng)常使用的宏,如果每次都通過(guò)菜單欄下的工具——Visual Basic——播放來(lái)選擇運(yùn)行宏,會(huì)很繁瑣而不便。
可以通過(guò)如下的方法,將宏添加在菜單欄中,不需要每次都去窗口中尋找,方便快捷。
步驟如下:
打開菜單欄下的工具——自定義,點(diǎn)擊命令欄,新建一個(gè)命令欄“我的工具”,如圖4所示。
圖4
然后點(diǎn)擊命令,在下拉窗口中選擇宏,選中需要的宏,鼠標(biāo)左鍵拖拽到新建的命令欄中,如圖5所示,確定即可。
圖5
以后每次需要運(yùn)行該宏的時(shí)候,點(diǎn)擊命令欄中該宏的圖標(biāo)便可啟動(dòng)。
在命令窗口中,也可以對(duì)宏的常規(guī)、快捷鍵、外觀加以設(shè)計(jì)??梢杂眠@種方法添加多個(gè)宏的命令欄啟動(dòng)項(xiàng)。
本文主要闡述了CorelDraw VBA在地圖制圖領(lǐng)域的應(yīng)用,對(duì)于重復(fù)性高、有內(nèi)在規(guī)律的制圖工作,利用VBA編制的宏有很大的優(yōu)勢(shì),可以極大的縮短工作時(shí)間、降低工作量。在繁復(fù)的制圖工作中,找到一些重復(fù)操作的技巧,究其邏輯性,根據(jù)其規(guī)律編譯出解決問(wèn)題的宏,借助計(jì)算機(jī)實(shí)現(xiàn)自動(dòng)化,會(huì)使地圖制圖工作變得更加準(zhǔn)確高效。
[1]姚興海,姚磊.CorelDRAW地圖制圖[M].中國(guó)地圖出版社,2008,6:1-203.
[2]CorelDRAW/Corel DESIGNER VBA macros[OL].http://www.oberonplace.com/vba/drawmacros/index.htm.
[3]司連法.基于Coreldraw 10進(jìn)行VBA二次開發(fā)和實(shí)例解析[OL].http://www.chinamap.com/CORE/Catalogue.htm.
[4]張建輝.Visual Basic從初學(xué)到精通[M].電子工業(yè)出版社,2010,6:1-517.
[5]Rick McCleary.CMYK 2.0:設(shè)計(jì)師色彩管理手冊(cè)[M].人民郵電出版社,2010,4:1-254.