沈培玉, 周洪軍
(江南大學(xué)機(jī)械工程學(xué)院,江蘇 無錫 214122)
工程制圖是一門具有較強(qiáng)實踐性的技術(shù)基礎(chǔ)課程,其中讀圖與繪圖練習(xí)是教學(xué)過程中不可缺少的重要環(huán)節(jié),學(xué)生需要完成較大量的繪圖作業(yè)。作業(yè)的流程一般可分為:做作業(yè)、改作業(yè)、訂正錯誤三個過程,其中存在三個問題:一是教師批改制圖作業(yè)的工作量很大,效率低周期長;二是學(xué)生在做作業(yè)和訂正錯誤的過程中,疑惑不能得到教師的及時指導(dǎo)與解答,影響此環(huán)節(jié)的學(xué)習(xí)效果;三是做作業(yè)和訂正錯誤兩個過程間隔的時間較長,影響此環(huán)節(jié)的學(xué)習(xí)效率。
近年來,工程制圖課程與計算機(jī)繪圖的結(jié)合已成為課程教學(xué)的一大特點(diǎn),且在計算機(jī)自動批改制圖作業(yè)的研究和應(yīng)用方面也取得了很大進(jìn)展。作業(yè)自動批改系統(tǒng)可提取學(xué)生作業(yè)圖形文件和答案圖形文件中的圖形數(shù)據(jù),采用圖元數(shù)據(jù)比較法進(jìn)行作業(yè)批改[1]。借助網(wǎng)絡(luò)功能,還可進(jìn)行遠(yuǎn)程提交作業(yè)、批改作業(yè),縮短了學(xué)生與教師間的信息反饋周期[2]。這些研究成果,雖然使教師得以解脫批改作業(yè)的繁重工作,但在批改作業(yè)時都直接給出了答案結(jié)果,缺少訂正作業(yè)錯誤這一過程,影響了學(xué)生作業(yè)練習(xí)過程中自主學(xué)習(xí)的效果。筆者利用AutoCAD的開發(fā)接口ObjectARX中的數(shù)據(jù)庫反應(yīng)器機(jī)制[3],監(jiān)視 AutoCAD圖形數(shù)據(jù)庫中各種圖線的增減與變化,并將作業(yè)練習(xí)中三個相互孤立的過程整合在一起,以提高作業(yè)練習(xí)的學(xué)習(xí)效果和效率。
ObjectARX是開發(fā)AutoCAD應(yīng)用程序的編程環(huán)境,而反應(yīng)器是圖形編輯系統(tǒng)與 AutoCAD之間交互的媒介,用以處理AutoCAD事件。常見的ObjectARX反應(yīng)器有編輯反應(yīng)器、實體反應(yīng)器、對象反應(yīng)器、圖形數(shù)據(jù)庫反應(yīng)器、文檔管理反應(yīng)器等[4],其中,編輯反應(yīng)器用于監(jiān)視AutoCAD各種命令及AutoLISP的運(yùn)行情況;數(shù)據(jù)庫反應(yīng)器用于監(jiān)視AutoCAD圖形數(shù)據(jù)庫中對象的創(chuàng)建、刪除、編輯等事件。
學(xué)生在AutoCAD環(huán)境下做作業(yè)過程中,每開始執(zhí)行一個命令時,就會觸發(fā) commandWillStart事件,而命令結(jié)束時又會觸發(fā)commandEnded事件。如果在圖形中增添一條圖線,或是對已有的一條圖線進(jìn)行了編輯操作,就會觸發(fā)一次objectAppended事件。若是刪除了一條圖線,將觸發(fā)一次objectErased事件。如果使用復(fù)制操作一次增添了多條圖線,將會觸發(fā)相應(yīng)次數(shù)的objectAppended事件,刪除操作也同樣如此。
以數(shù)據(jù)庫反應(yīng)器為例,在ObjectARX應(yīng)用程序中,只要從數(shù)據(jù)庫反應(yīng)器AcDbDatabaseReactor類派生出一自定義的 DataChange類,并重載objectAppended()和objectErased()兩個處理函數(shù),就能在處理函數(shù)中得到學(xué)生在做作業(yè)的過程中所增改的圖線對象ID,并將其按圖線的類別分別記錄到相應(yīng)的對象 ID數(shù)組中,從而實現(xiàn)程序?qū)W(xué)生作圖過程的實時監(jiān)視。
系統(tǒng)的開發(fā)使用了AutoCAD的二次開發(fā)技術(shù)ObjectARX 2008,用Visual Studio.NET 2005編程。系統(tǒng)的總流程如圖1 所示。
系統(tǒng)由選題與初始化模塊、監(jiān)視模塊和作業(yè)批改模塊構(gòu)成,并為AutoCAD新增兩個命令:“selt”選題命令和“refer”批改命令。
通過交互界面,由學(xué)生指定練習(xí)題目后,對圖形數(shù)據(jù)庫及有關(guān)數(shù)組和變量進(jìn)行初始化設(shè)置。插入題目圖形,并從答案數(shù)據(jù)文件中讀取答案圖元的有關(guān)數(shù)據(jù)。然后創(chuàng)建數(shù)據(jù)庫反應(yīng)器對象,進(jìn)入學(xué)生解題狀態(tài)。
答案數(shù)據(jù)文件是事先由程序根據(jù)答案圖形文件按規(guī)定格式轉(zhuǎn)換生成。這樣做的目的,是為了避免學(xué)生在作業(yè)時查看答案圖形,影響作業(yè)的練習(xí)效果。
圖1 系統(tǒng)流程圖
根據(jù)由監(jiān)視模塊生成的學(xué)生所繪圖線的對象ID數(shù)組記錄,逐一提取每個ID所對應(yīng)圖線的有關(guān)數(shù)據(jù),與答案圖元數(shù)據(jù)進(jìn)行比較、判別和記錄。然后,分別統(tǒng)計出畫對圖線數(shù)、畫錯圖線數(shù)和漏畫圖線數(shù),在命令窗口中給出相應(yīng)的提示,并在繪圖區(qū)使用指定的顏色標(biāo)示出畫錯的圖線。
為便于程序的操作執(zhí)行,系統(tǒng)在 AutoCAD中增添一個下拉菜單項“讀圖練習(xí)”,如圖2所示。啟動AutoCAD后,在做作業(yè)練習(xí)前,可點(diǎn)選下拉菜單中的“加載程序”項,加載本應(yīng)用程序。在結(jié)束作業(yè)練習(xí)時,可點(diǎn)選下拉菜單中的“卸載程序”項,將本應(yīng)用程序從內(nèi)存中卸載。
圖2 增添的下拉菜單
點(diǎn)選下拉菜單中的“選題”項,將打開選題對話框。學(xué)生選定題目后進(jìn)入解題狀態(tài),如圖3所示。
圖3 解題狀態(tài)
解題時,可以不受限制地使用各種繪圖與編輯命令進(jìn)行作圖。解題完成后,不需保存圖形文件,點(diǎn)選下拉菜單中的“批改作業(yè)”項,對所做作業(yè)進(jìn)行自動批改。如果作業(yè)中存在錯誤,本程序?qū)⒔o出提示和標(biāo)示,如圖4所示。
學(xué)生可根據(jù)所給提示,對錯誤之處進(jìn)行改正和完善。之后,可再次點(diǎn)選下拉菜單中的“批改作業(yè)”項,對訂正后的作業(yè)進(jìn)行自動批改。如果訂正后的作業(yè)還有錯誤存在,可再次重復(fù)上述訂正過程,直至解題正確為止。
在解題過程中,如遇到有自己不能解決的錯誤,還可將此題目與解答存盤保留下來,以便以后向他人請教。
圖4 作業(yè)批改結(jié)果
本“交互式”作業(yè)自動批改系統(tǒng)不只是對學(xué)生作業(yè)進(jìn)行靜態(tài)批改,還對學(xué)生利用 AutoCAD做練習(xí)的繪圖操作過程進(jìn)行動態(tài)監(jiān)控,對錯誤之處給出提示,學(xué)生如同能始終得到教師的及時引導(dǎo),對作業(yè)練習(xí)起到了促進(jìn)作用。本系統(tǒng)經(jīng)過一學(xué)期兩個班的教學(xué)應(yīng)用,運(yùn)行穩(wěn)定可靠,利用AutoCAD 2008作為練習(xí)平臺,交互界面友好,操作簡便。通過系統(tǒng)應(yīng)用的反饋信息表明,本系統(tǒng)在圖學(xué)類課程的教學(xué)中,一方面避免教師批改作業(yè)的重復(fù)勞動,減輕了教師的負(fù)擔(dān);另一方面學(xué)生在計算機(jī)上做作業(yè),得到了計算機(jī)繪圖方面的大量訓(xùn)練,不再覺得作業(yè)的枯燥,激發(fā)了作業(yè)練習(xí)的興趣,提高了學(xué)習(xí)的積極性和自覺性。使用該系統(tǒng)的班級與平行班相比,由于學(xué)生得到了系統(tǒng)給予的及時引導(dǎo),能主動從系統(tǒng)習(xí)題庫中選擇更多的題目加以練習(xí),對于錯誤的問題不再等待教師的解答,而是主動分析、思考,充分發(fā)揮了學(xué)習(xí)的主觀能動性,提高了學(xué)習(xí)效率。由于學(xué)生在作業(yè)時,不斷地想象、構(gòu)思,及時糾正錯誤,很好地培養(yǎng)了空間想象能力和邏輯思維能力,同時也加強(qiáng)了計算機(jī)繪圖的能力,使課程的教學(xué)效果得到提高。
本系統(tǒng)運(yùn)用ObjectARX反應(yīng)器機(jī)制,實時監(jiān)視作業(yè)練習(xí)的解題過程,對作業(yè)練習(xí)的三個過程進(jìn)行整合,解決了目前工程制圖CAI系統(tǒng)設(shè)計中普遍存在的一些問題。學(xué)生在使用本系統(tǒng)中,可有效地培養(yǎng)分析問題、解決問題的能力,以及自主學(xué)習(xí)、獨(dú)立思考的能力。在好勝心理的驅(qū)使下,學(xué)生的學(xué)習(xí)積極性和熱情大增,提高了作業(yè)練習(xí)的學(xué)習(xí)效率和課程教學(xué)效果。
[1]覃 群, 陳光霞. AutoCAD 環(huán)境下機(jī)械矢量圖形比較的實現(xiàn)方法[J]. 工程圖學(xué)學(xué)報, 2003, 24(4):133-137.
[2]李哲林, 陳錦昌, 劉就女, 等. 工程制圖網(wǎng)絡(luò)習(xí)題集及智能批改系統(tǒng)的研究[J]. 工程圖學(xué)學(xué)報, 2004,25(4): 154-158.
[3]陳 衫, 王 寧, 郭劍峰. 用 ObjectARX 開發(fā)AutoCAD 2000應(yīng)用程序[M]. 北京: 人民郵電出版社,2000.278-281.
[4]秦洪現(xiàn), 崔惠嵐, 孫 劍, 等. Autodesk系列產(chǎn)品開發(fā)培訓(xùn)教程[M]. 北京: 化學(xué)工業(yè)出版社, 2007.98-103.