沈培玉, 周洪軍
(江南大學機械工程學院,江蘇 無錫 214122)
工程制圖是一門具有較強實踐性的技術基礎課程,其中讀圖與繪圖練習是教學過程中不可缺少的重要環節,學生需要完成較大量的繪圖作業。作業的流程一般可分為:做作業、改作業、訂正錯誤三個過程,其中存在三個問題:一是教師批改制圖作業的工作量很大,效率低周期長;二是學生在做作業和訂正錯誤的過程中,疑惑不能得到教師的及時指導與解答,影響此環節的學習效果;三是做作業和訂正錯誤兩個過程間隔的時間較長,影響此環節的學習效率。
近年來,工程制圖課程與計算機繪圖的結合已成為課程教學的一大特點,且在計算機自動批改制圖作業的研究和應用方面也取得了很大進展。作業自動批改系統可提取學生作業圖形文件和答案圖形文件中的圖形數據,采用圖元數據比較法進行作業批改[1]。借助網絡功能,還可進行遠程提交作業、批改作業,縮短了學生與教師間的信息反饋周期[2]。這些研究成果,雖然使教師得以解脫批改作業的繁重工作,但在批改作業時都直接給出了答案結果,缺少訂正作業錯誤這一過程,影響了學生作業練習過程中自主學習的效果。筆者利用AutoCAD的開發接口ObjectARX中的數據庫反應器機制[3],監視 AutoCAD圖形數據庫中各種圖線的增減與變化,并將作業練習中三個相互孤立的過程整合在一起,以提高作業練習的學習效果和效率。
ObjectARX是開發AutoCAD應用程序的編程環境,而反應器是圖形編輯系統與 AutoCAD之間交互的媒介,用以處理AutoCAD事件。常見的ObjectARX反應器有編輯反應器、實體反應器、對象反應器、圖形數據庫反應器、文檔管理反應器等[4],其中,編輯反應器用于監視AutoCAD各種命令及AutoLISP的運行情況;數據庫反應器用于監視AutoCAD圖形數據庫中對象的創建、刪除、編輯等事件。
學生在AutoCAD環境下做作業過程中,每開始執行一個命令時,就會觸發 commandWillStart事件,而命令結束時又會觸發commandEnded事件。如果在圖形中增添一條圖線,或是對已有的一條圖線進行了編輯操作,就會觸發一次objectAppended事件。若是刪除了一條圖線,將觸發一次objectErased事件。如果使用復制操作一次增添了多條圖線,將會觸發相應次數的objectAppended事件,刪除操作也同樣如此。
以數據庫反應器為例,在ObjectARX應用程序中,只要從數據庫反應器AcDbDatabaseReactor類派生出一自定義的 DataChange類,并重載objectAppended()和objectErased()兩個處理函數,就能在處理函數中得到學生在做作業的過程中所增改的圖線對象ID,并將其按圖線的類別分別記錄到相應的對象 ID數組中,從而實現程序對學生作圖過程的實時監視。

系統的開發使用了AutoCAD的二次開發技術ObjectARX 2008,用Visual Studio.NET 2005編程。系統的總流程如圖1 所示。
系統由選題與初始化模塊、監視模塊和作業批改模塊構成,并為AutoCAD新增兩個命令:“selt”選題命令和“refer”批改命令。
通過交互界面,由學生指定練習題目后,對圖形數據庫及有關數組和變量進行初始化設置。插入題目圖形,并從答案數據文件中讀取答案圖元的有關數據。然后創建數據庫反應器對象,進入學生解題狀態。
答案數據文件是事先由程序根據答案圖形文件按規定格式轉換生成。這樣做的目的,是為了避免學生在作業時查看答案圖形,影響作業的練習效果。

圖1 系統流程圖
根據由監視模塊生成的學生所繪圖線的對象ID數組記錄,逐一提取每個ID所對應圖線的有關數據,與答案圖元數據進行比較、判別和記錄。然后,分別統計出畫對圖線數、畫錯圖線數和漏畫圖線數,在命令窗口中給出相應的提示,并在繪圖區使用指定的顏色標示出畫錯的圖線。
為便于程序的操作執行,系統在 AutoCAD中增添一個下拉菜單項“讀圖練習”,如圖2所示。啟動AutoCAD后,在做作業練習前,可點選下拉菜單中的“加載程序”項,加載本應用程序。在結束作業練習時,可點選下拉菜單中的“卸載程序”項,將本應用程序從內存中卸載。

圖2 增添的下拉菜單
點選下拉菜單中的“選題”項,將打開選題對話框。學生選定題目后進入解題狀態,如圖3所示。

圖3 解題狀態
解題時,可以不受限制地使用各種繪圖與編輯命令進行作圖。解題完成后,不需保存圖形文件,點選下拉菜單中的“批改作業”項,對所做作業進行自動批改。如果作業中存在錯誤,本程序將給出提示和標示,如圖4所示。
學生可根據所給提示,對錯誤之處進行改正和完善。之后,可再次點選下拉菜單中的“批改作業”項,對訂正后的作業進行自動批改。如果訂正后的作業還有錯誤存在,可再次重復上述訂正過程,直至解題正確為止。
在解題過程中,如遇到有自己不能解決的錯誤,還可將此題目與解答存盤保留下來,以便以后向他人請教。

圖4 作業批改結果
本“交互式”作業自動批改系統不只是對學生作業進行靜態批改,還對學生利用 AutoCAD做練習的繪圖操作過程進行動態監控,對錯誤之處給出提示,學生如同能始終得到教師的及時引導,對作業練習起到了促進作用。本系統經過一學期兩個班的教學應用,運行穩定可靠,利用AutoCAD 2008作為練習平臺,交互界面友好,操作簡便。通過系統應用的反饋信息表明,本系統在圖學類課程的教學中,一方面避免教師批改作業的重復勞動,減輕了教師的負擔;另一方面學生在計算機上做作業,得到了計算機繪圖方面的大量訓練,不再覺得作業的枯燥,激發了作業練習的興趣,提高了學習的積極性和自覺性。使用該系統的班級與平行班相比,由于學生得到了系統給予的及時引導,能主動從系統習題庫中選擇更多的題目加以練習,對于錯誤的問題不再等待教師的解答,而是主動分析、思考,充分發揮了學習的主觀能動性,提高了學習效率。由于學生在作業時,不斷地想象、構思,及時糾正錯誤,很好地培養了空間想象能力和邏輯思維能力,同時也加強了計算機繪圖的能力,使課程的教學效果得到提高。
本系統運用ObjectARX反應器機制,實時監視作業練習的解題過程,對作業練習的三個過程進行整合,解決了目前工程制圖CAI系統設計中普遍存在的一些問題。學生在使用本系統中,可有效地培養分析問題、解決問題的能力,以及自主學習、獨立思考的能力。在好勝心理的驅使下,學生的學習積極性和熱情大增,提高了作業練習的學習效率和課程教學效果。
[1]覃 群, 陳光霞. AutoCAD 環境下機械矢量圖形比較的實現方法[J]. 工程圖學學報, 2003, 24(4):133-137.
[2]李哲林, 陳錦昌, 劉就女, 等. 工程制圖網絡習題集及智能批改系統的研究[J]. 工程圖學學報, 2004,25(4): 154-158.
[3]陳 衫, 王 寧, 郭劍峰. 用 ObjectARX 開發AutoCAD 2000應用程序[M]. 北京: 人民郵電出版社,2000.278-281.
[4]秦洪現, 崔惠嵐, 孫 劍, 等. Autodesk系列產品開發培訓教程[M]. 北京: 化學工業出版社, 2007.98-103.