陳振興
摘? 要:為提高《工程制圖》課程的教學(xué)效果,設(shè)計了一種簡單的作業(yè)自動評判系統(tǒng)。采用了ObjectARX技術(shù),以AutoCAD 2020為系統(tǒng)平臺,實現(xiàn)了對作業(yè)的智能評判、顯示習(xí)題三維模型和顯示答案等功能,闡述了各個功能詳細(xì)的設(shè)計原理。為方便學(xué)生操作,設(shè)計了一個面板,設(shè)置三個按鈕分別對應(yīng)各個功能。
關(guān)鍵詞:自動評判;ObjectARX;系統(tǒng)
Abstract: In order to improve the teaching effect of Engineering Drawing, this paper develops a simple homework evaluation system. By ObjectARX technology and using AutoCAD 2020 for system platform, the functions of the intelligent evaluation for the works, the 3D models displaying and the answers displaying are implemented. This paper describes the detail of the design principles. To make it convenient and available for students, a panel is designed and three buttons are set for each corresponding function.
《工程制圖》是工科學(xué)生重要的技術(shù)基礎(chǔ)課,它涉及專業(yè)多、開課面廣。其本身實踐性很強(qiáng),需要學(xué)生進(jìn)行大量的練習(xí)?,F(xiàn)行的教學(xué)實踐中,出現(xiàn)了教師上課信息量大、學(xué)生容易聽懂但課后難做作業(yè)的現(xiàn)象。為提高《工程制圖》課程的教學(xué)效果,幫助學(xué)生在課后很好地復(fù)習(xí)、鞏固所學(xué)內(nèi)容,激發(fā)學(xué)生學(xué)習(xí)《工程制圖》的積極性與主動性,幫助學(xué)生建立較為牢固的空間想象力,使用《工程制圖》作業(yè)自動批改系統(tǒng),幫助學(xué)生在課后自主學(xué)習(xí),具有積極的意義。
1 開發(fā)環(huán)境
當(dāng)前AutoCAD的二次開發(fā)工具主要有:ADS、AutoLISP/Visual LISP、VBA及ObjectARX等。其中,VisualLisp與VBA使用方便且開發(fā)速度較快,但其功能相比ObjectARX有所不足。
ObjectARX技術(shù)提供了以C++為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)環(huán)境及應(yīng)用程序接口,可以在ARX應(yīng)用程序中直接進(jìn)入AutoCAD數(shù)據(jù)庫、圖形系統(tǒng)以及內(nèi)部的原始命令。本系統(tǒng)的開發(fā)環(huán)境為:AutoCAD 2020,0bjectARX2020和Microsoft Visual Studio 2017。因為在ObjectARX 2020軟件包中會調(diào)用或驗證大量VC++的庫文件,所以三者的選擇版本要相對適應(yīng)。ObjectARX 2020對應(yīng)AutoCAD 2020版本開發(fā),開發(fā)時需要.net framework 4.7的支持,所以采用Visual Studio 2017來支持開發(fā)[1]。
2 AutoCAD數(shù)據(jù)庫概述
AutoCAD圖形是一個儲存在數(shù)據(jù)庫中的對象的集合。當(dāng)用AutoCAD打開一副圖形時,AutoCAD便將圖形的所有數(shù)據(jù)讀入AutoCAD數(shù)據(jù)庫中進(jìn)行管理。
基本的數(shù)據(jù)庫對象是實體、符號表和詞典。實體是在AutoCAD圖內(nèi)部可用于顯示的圖形對象,如線、圓、弧、文本、橢圓等都是實體。符號表是存儲數(shù)據(jù)庫對象的容器,用于組織和管理數(shù)據(jù)庫對象。在開始新建一個圖形時,AutoCAD會在數(shù)據(jù)庫中自動創(chuàng)建9種類型的符號表,每種符號表都有確定類型的記錄與之關(guān)聯(lián)。其中的塊表,包含塊表記錄,所有AutoCAD實體都屬于塊表記錄。詞典是為存儲對象提供了比符號表更加普通的容器。一個詞典可以包含任何類型的AcDbObject及其子類的對象[2]。在對符號表中的記錄進(jìn)行操作時,不能創(chuàng)建或者刪除符號表,而只能增加或者修改符號表中記錄。實體包含在塊表記錄中,因此要訪問一個圖形對象,需要遵循下面的基本步驟[3]:
(1)確定要創(chuàng)建對象的圖形數(shù)據(jù)庫。
(2)獲得圖形數(shù)據(jù)庫的塊表。
(3)獲得一個存儲實體的塊表記錄,所有模型空間的實體都存儲在模型空間的特定記錄中。
(4)訪問實體類的一個對象,獲取或設(shè)置該對象的屬性。
3 總體方案設(shè)計
系統(tǒng)主要包括隱藏習(xí)題答案和三維模型答案、智能評判、顯示答案和顯示三維模型等功能。
首先,由教師在AutoCAD中設(shè)置三類十二個圖層,其分別為:第一類為答案類層,用于隱藏標(biāo)準(zhǔn)答案,包括“答案_粗實線層、答案_細(xì)實線層、答案_點劃線層、答案_虛線層”;第二類為作業(yè)題類層,用于教師出題,包括“作業(yè)_粗實線層、作業(yè)_細(xì)實線層、作業(yè)_點劃線層、作業(yè)_虛線層”;第三類為學(xué)生作業(yè)類層,用于學(xué)生做題,包括“粗實線層、細(xì)實線層、點劃線層、虛線層”。教師把各題答案繪制在答案類層上,并使用本系統(tǒng)命令設(shè)置為不可見。教師在作業(yè)題類層上繪制出各個作業(yè)題,使之成為獨(dú)立的、擴(kuò)展名為.dwg的圖形文件,文件名設(shè)置為與作業(yè)題對應(yīng)的題號。學(xué)生依據(jù)題號打開相應(yīng)的CAD文件,在學(xué)生作業(yè)類層上做題。學(xué)生做完作業(yè)后,點擊設(shè)置在面板上的“評判”命令,計算機(jī)就對學(xué)生作業(yè)進(jìn)行自動評判,并將作業(yè)圖中的對的圖線設(shè)置為紅色,錯的圖線設(shè)置為藍(lán)色。
4 功能模塊的實現(xiàn)
為了能實現(xiàn)以上功能,對于AutoCAD系統(tǒng)來說,就是需要編寫相對應(yīng)以上功能的命令封裝在arx文件中,再由AutoCAD加載后使用。經(jīng)過仔細(xì)分析后,我們把以上功能在AutoCAD系統(tǒng)中分解為四個命令來實現(xiàn)。那么也就是要利用以上開發(fā)工具分別開發(fā)出四個對應(yīng)的函數(shù)來實現(xiàn)其功能。其四個函數(shù)分別對應(yīng)的功能是:隱藏習(xí)題答案和三維模型功能、智能評判功能、顯示三維模型功能和顯示答案功能。
4.1 隱藏習(xí)題答案和三維模型功能
隱藏習(xí)題答案功能的對應(yīng)函數(shù)編程思路為:選擇所要隱藏的答案對象,添加到選擇集中,確認(rèn)選擇后,遍歷所選擇對象,判斷是否為不可見,如為可見,設(shè)置為不可見,否則不做處理。如圖1所示。
隱藏三維模型功能,可把制作的習(xí)題的三維模型,轉(zhuǎn)換為普通圖片格式,然后插入到習(xí)題文件中,然后把圖片轉(zhuǎn)換為塊,再利用隱藏習(xí)題答案功能函數(shù)隱藏。
由于此功能應(yīng)由教師操作,故此功能在其后的系統(tǒng)安裝設(shè)置中并不顯示在面板中。
4.2 智能評判功能
采用常用的圖案對比的方式進(jìn)行比較,以直線的比較來說明其算法流程,如圖2。
4.3 顯示習(xí)題答案功能
為了能夠區(qū)別答案和學(xué)生作業(yè),可將答案類層設(shè)置為紅色,當(dāng)調(diào)用顯示答案命令時,系統(tǒng)會使隱藏的答案類層顯示出來。
4.4 顯示三維模型功能
為了滿足有些學(xué)生希望看模型來輔助學(xué)習(xí)的需要,與前對應(yīng),制作三維模型的顯示功能,其過程為隱藏的反過程。與前者的區(qū)別在于只用遍歷塊即可,因為三維模型圖片是用塊對象的方式來隱藏的。
5 系統(tǒng)的設(shè)置
為了便于學(xué)生使用該系統(tǒng),可自定義一個面板,設(shè)置三個按鈕分別對應(yīng)智能評判功能、顯示三維模型功能和顯示答案功能。隱藏習(xí)題答案和三維模型功能是由教師來設(shè)置的,故不在面板中為其設(shè)置對應(yīng)按鈕。如圖3所示。
參考文獻(xiàn):
[1]布魯斯·約翰遜.Visual Studio 2017高級編程(第7版)[M].李立新,譯.清華大學(xué)出版社,2018.
[2]Autodesk ObjectARX for AutoCAD 2020: Developer's Guide.
[3]張帆,朱文俊.AutoCAD ObjectARX(VC)開發(fā)基礎(chǔ)與實例教程[M].中國電力出版社,2014.