于蕭榕 江蘇科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 鎮(zhèn)江 212003
對(duì)應(yīng)刻度標(biāo)牌參數(shù)化繪制研究
于蕭榕 江蘇科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 鎮(zhèn)江 212003
為了提高標(biāo)牌行業(yè)的繪制標(biāo)牌的工作效率,操作流程的標(biāo)準(zhǔn)化,研究標(biāo)牌參數(shù)化繪制方法及技術(shù),結(jié)合Ob j e c t ARX2008與C#進(jìn)行了A u t o C A D 的二次開發(fā),詳細(xì)闡述了標(biāo)牌參數(shù)化繪圖系統(tǒng)的結(jié)構(gòu)、設(shè)計(jì)流程以及應(yīng)用設(shè)計(jì)結(jié)果進(jìn)行參數(shù)化繪圖的過程,使標(biāo)牌企業(yè)繪制人員在繪制的過程中,只需輸入必要參數(shù)就可以由計(jì)算機(jī)自動(dòng)生成具有對(duì)應(yīng)算法的刻度,從而大大提高了工作效率并擴(kuò)展了CAD二次開發(fā)的范圍。
ObjectARX;AutoC二AD次開發(fā);對(duì)應(yīng)刻度;參數(shù)化
ObjectARX; AutoCAD secondary development;corresponding scale;parameterized
ObjectARX[1]程序本質(zhì)上是Windows動(dòng)態(tài)鏈接庫(DLL)程序,這些庫與AutoCAD在同一地址空間運(yùn)行,并能直接利用AutoCAD核心數(shù)據(jù)結(jié)構(gòu)和代碼,使得二次開發(fā)者可充分利用AutoCAD的開發(fā)結(jié)構(gòu),直接訪問AutoCAD數(shù)據(jù)庫結(jié)構(gòu)、圖形系統(tǒng)以及CAD幾何造型核心,能夠在運(yùn)行期間實(shí)時(shí)擴(kuò)展AutoCAD的功能,同時(shí)它也是一個(gè)可擴(kuò)展的編程框架,可以擴(kuò)展AutoCAD的對(duì)象和協(xié)議。AutoCAD 自身的許多模塊均是用ObjectARX開發(fā)的,ObjectARX是AuotCAD最強(qiáng)大的定制開發(fā)工具。目前Objectarx的開發(fā)語言以C++為主,而C#也可以進(jìn)行AutoCAD二次開發(fā)[2]。C#的現(xiàn)代化設(shè)計(jì)能夠消除很多常見的C++編程錯(cuò)誤。例如:(1)資源回收減輕了程序員內(nèi)存管理的負(fù)擔(dān)。(2)C# 中變量由環(huán)境自動(dòng)初始化。(3)變量的類型是安全的。而且開發(fā)出的界面與AutoCAD系統(tǒng)界面保持了良好的一致性[3]。
進(jìn)行AutoCAD二次項(xiàng)目開發(fā)不是在CAD中建個(gè)命令就可以,需要建立菜單,對(duì)話框[4],動(dòng)態(tài)鏈接庫的自動(dòng)調(diào)用[5],對(duì)象參數(shù)的輸入與讀取等。開發(fā)流程如圖1。
隨著計(jì)算機(jī)在工廠的普及,越來越多的企業(yè)使用AutoCAD軟件進(jìn)行繪圖[6],在標(biāo)牌廠的標(biāo)牌制作工藝流程中,一般先用CAD繪圖軟件將需要制作的標(biāo)牌圖形在計(jì)算機(jī)中繪制好并保存,然后將標(biāo)牌圖形文件轉(zhuǎn)換成和激光照排機(jī)兼容的文件格式輸出到照排機(jī),照排機(jī)打印出膠片后進(jìn)行生產(chǎn)。目前已對(duì)標(biāo)牌繪制方法做了一些改進(jìn),基于AutoCAD繪圖軟件,以輸入標(biāo)牌圓弧、刻度線、刻度值的各項(xiàng)參數(shù)的方法繪制標(biāo)牌,提高了工作效率[7]。但對(duì)某些特殊標(biāo)牌,例如溫度表、冷媒表的標(biāo)牌,主體部分都有兩條弧,兩個(gè)弧有某一對(duì)應(yīng)算法,即存在單位換算關(guān)系,標(biāo)牌企業(yè)工作人員在繪制的時(shí)候一般只有其中一個(gè)標(biāo)準(zhǔn)弧的參數(shù),比如溫度表里的攝氏度弧線參數(shù),而華氏度弧線的參數(shù)并沒有,這時(shí)工作人員必須根據(jù)一定的對(duì)應(yīng)關(guān)系算法先一個(gè)一個(gè)算出攝氏度對(duì)應(yīng)的華氏度參數(shù)并輸入到參數(shù)表中,才能繪制出完整的標(biāo)牌圖形,類似的情況還有很多,所以目前繪制這類標(biāo)牌的時(shí)候繪圖員工作量很大,工作效率不高。
如圖2所示,實(shí)現(xiàn)標(biāo)牌刻度與對(duì)應(yīng)刻度計(jì)算機(jī)繪圖方法,包括以下步驟:
(1)輸入圓弧參數(shù);
(2)繪制主圓弧;
(3)選擇刻度線類型;
(4)詢問弧刻度是否均分;
(5)若步驟(4)的詢問結(jié)果為均分,則輸入均分刻度線參數(shù)并轉(zhuǎn)到步驟(7);
(6)若步驟(4)的詢問結(jié)果為不均分,則進(jìn)行刻度旋轉(zhuǎn)方式的詢問,按詢問結(jié)果輸入按角度旋轉(zhuǎn)的刻度線參數(shù)或者輸入按相對(duì)固定值偏移倍數(shù)旋轉(zhuǎn)的刻度線參數(shù);
圖1 二次開發(fā)流程框架
圖2
(7)詢問是否根據(jù)刻度線與刻度值的關(guān)系同時(shí)繪制刻度值;
(8) 若步驟(7)的詢問結(jié)果為是,則輸入刻度值參數(shù),按步驟(5)和步驟(6)所選擇的均分、按角度旋轉(zhuǎn)、按相對(duì)固定值偏移倍數(shù)旋轉(zhuǎn)三種方式中的一種繪制刻度線和刻度值,完成后轉(zhuǎn)到步驟(15);
(9) 若步驟(7)的詢問結(jié)果為否,則詢問是否單獨(dú)繪制刻度值;
(10)若步驟(9)詢問結(jié)果為不單獨(dú)繪制刻度值則轉(zhuǎn)入步驟(15);
(11)若步驟(9)詢問結(jié)果為單獨(dú)繪制刻度值則詢問刻度值是否均分;
(12)若刻度值均分則輸入均分刻度值參數(shù)并轉(zhuǎn)到步驟(14);
(13)若刻度值不均分則輸入不均分刻度值參數(shù);
(14)單獨(dú)繪制刻度值;
(15)詢問是否繪制刻度有對(duì)應(yīng)算法的從??;
(16)若詢問結(jié)果為否,則轉(zhuǎn)到步驟(20);
(17)若詢問結(jié)果為是,則輸入對(duì)應(yīng)算法;
(18)輸入從弧的弧參數(shù)、刻度參數(shù)、刻度值參數(shù);
(19)繪制從弧、從弧刻度、從弧刻度值;
(20)繪制完成。
4.1 系統(tǒng)實(shí)施實(shí)例
標(biāo)牌制作系統(tǒng)一般由繪圖用計(jì)算機(jī)和激光照排機(jī)組成,計(jì)算機(jī)與照排機(jī)互聯(lián)進(jìn)行通訊,計(jì)算機(jī)將繪制好的標(biāo)牌圖形文件轉(zhuǎn)換成和激光照排機(jī)兼容的文件格式輸出到照排機(jī),照排機(jī)打印出膠片后進(jìn)行生產(chǎn)。本文利用ObjectARX2008針對(duì)AutoCAD2008進(jìn)行二次開發(fā),通過參數(shù)化的方法,解決現(xiàn)有繪制方法不能自動(dòng)設(shè)定算法,自動(dòng)算出刻度對(duì)應(yīng)關(guān)系的問題,開發(fā)一套可以設(shè)定刻度對(duì)應(yīng)關(guān)系算法的標(biāo)牌繪制的計(jì)算機(jī)繪制系統(tǒng),減少了繪制時(shí)間,提高了工作效率,保證了標(biāo)牌制作質(zhì)量。
首先用戶根據(jù)要繪制的主刻度標(biāo)牌的弧的參數(shù),先輸入到繪制主刻度弧的窗口中,再根據(jù)標(biāo)牌中弧的刻度均分與否,進(jìn)入相應(yīng)的繪制窗口。如果是均分刻度,進(jìn)入“繪制均分主刻度”窗口,選擇刻度方向,輸入刻度的旋轉(zhuǎn)參數(shù),均分格數(shù),將均分刻度添加到AutoCAD窗口中。如果是不均分的刻度,由于繪制標(biāo)牌的企業(yè)收到的刻度參數(shù)表有兩種情況,直接根據(jù)角度旋轉(zhuǎn)的刻度作為參數(shù),還有根據(jù)某一固定的、均分的弧的刻度的偏移倍數(shù)作為參數(shù),用戶分別進(jìn)入相應(yīng)的窗口進(jìn)行操作,區(qū)別在于需要用戶依次的將不同角度或偏移值的主弧線刻度加入下方的列表框中,可以一次性加好,也可以分次操作,加好后添加到AutoCAD窗口中;為了方便用戶的操作,加快繪制速度,在增加不均分刻度的同時(shí)還可以輸入刻度值的參數(shù),將刻度與刻度值一起繪制出來。主刻度繪制完成后,進(jìn)入繪制刻度值的窗口,已在前面生成刻度值的可以跳過這一步,選擇或輸入刻度值的參數(shù),刻度值也分為按角度均分旋轉(zhuǎn)和不規(guī)則角度兩種,兩者的區(qū)別在于均分刻度值的參數(shù)一次性生成在列表框中,不規(guī)則角度的刻度值依次輸入到列表框中,輸入好后生成主刻度標(biāo)牌的刻度值。至此主刻度弧的所有內(nèi)容繪制完成,下面繪制對(duì)應(yīng)弧,首先在“對(duì)應(yīng)算法”框中對(duì)主刻度與對(duì)應(yīng)弧刻度的對(duì)應(yīng)關(guān)系進(jìn)行組合,生成對(duì)應(yīng)的算法,組合完成后可以根據(jù)主刻度弧的起始角度,起始刻度值,對(duì)應(yīng)弧的起始刻度值,終止值,步長值,計(jì)算出對(duì)應(yīng)弧的任何一個(gè)整數(shù)刻度值的對(duì)應(yīng)旋轉(zhuǎn)角度,從而一次性繪制出對(duì)應(yīng)弧,對(duì)應(yīng)弧刻度,對(duì)應(yīng)弧刻度值。圖3是主刻度繪制界面,圖4是根據(jù)算法繪制對(duì)應(yīng)弧的界面。圖5是刻度具有對(duì)應(yīng)算法的標(biāo)牌示例,其主弧為攝氏度弧線,從弧為華氏度弧線。
圖3 繪制主刻度界面
利用ObjectARX2008與VS2008中的C# 的結(jié)合針對(duì)標(biāo)牌行業(yè)進(jìn)行具有對(duì)應(yīng)算法的標(biāo)牌刻度的AutoCAD二次開發(fā),拓寬了AutoCAD二次開發(fā)的范圍,解決現(xiàn)有繪制方法不能設(shè)定從弧的對(duì)應(yīng)算法,不能自動(dòng)算出刻度對(duì)應(yīng)關(guān)系并自動(dòng)繪制從弧的技術(shù)問題,減少了繪制時(shí)間,提高了工作效率,保證了標(biāo)牌制作質(zhì)量。
[1]王大鵬,張立文,張國梁,等.ObjectARX中結(jié)合MFC開發(fā)AutoCAD ARX應(yīng)用程序[J].計(jì)算機(jī)輔助工程.2001,10(4):55-58
[2]童時(shí)中,李平.二次開發(fā)是CAD取得實(shí)效的關(guān)鍵環(huán)節(jié)[J].電子機(jī)械工程.1999(4):64-68
[3]趙雪.中文AutoCAD 2006標(biāo)準(zhǔn)教程[M].西安:西北工業(yè)大學(xué)音像電子出版社.2005.3-10
[4]杜立,趙韓,董玉德,等. 基于ObjectARX齒輪設(shè)計(jì)系統(tǒng)的開發(fā)與研究.機(jī)械設(shè)計(jì)與制造.2008(12):75-77
[5]孫江宏,丁立偉,米潔.AutoCAD ObjectARX開發(fā)工具及應(yīng)用[z].北京:清華大學(xué)出版社.1999
[6]薛長健,黃靖.AutoCAD 2OO0高級(jí)使用及開發(fā)[M].北京:人民郵電出版社.2000:413-496
[7]于蕭榕.基于ObjectARX 的標(biāo)牌印刷分色拼版的研究[J].科學(xué)技術(shù)與工程.2011(2):383-387
Research of corresponding Scale Parameterized Drawing Method for Plate
YU Xiaorong (Jiangsu University of Science and Technology,ZhenJiang Jiangsu 212003,china)
In order to improve the efficiency of the drawplate in Signs Industry and standardize of operational process, this paper proposed a parameterized drawing way and technology. The method combined ObjectARX2008 and C# to proceed customized AutoCAD. Elaborated in detail the structure of the design and parameterization cartography system,the design as well as the process of the parameterization cartography using the design result.In the process of drawing, the computer will automatically generate scale of with the corresponding algorithm in plate when the drawing person input the required parameters. Real applications show that the proposed method can greatly enhance the working efficiency. This system extends the scope of AutoCAD secondary development.
TP391.72
A
10.3969/j.issn.1001-8972.2011.09.071
于蕭榕(1975- ),男,江蘇鎮(zhèn)江人,實(shí)驗(yàn)師,工程碩士,研究方向?yàn)橛?jì)算機(jī)輔助設(shè)計(jì)。