在AutoCAD中應(yīng)用VBA生成數(shù)控代碼由于用VBA在AutoCAD中開發(fā)應(yīng)用程序可以直接對AutoCAD圖形實體的數(shù)據(jù)、方法、屬性進行操作,并且可以利用AutoCAD的強大工具(如視圖工具、選取工具等),所以在AutoCAD中用VBA生成數(shù)控代碼非常方便。VBA對Auto2 CAD二次開發(fā)的應(yīng)用程序與其它獨立于AutoCAD環(huán)境的數(shù)控自動編程軟件開發(fā)有很多的不同之處,AutoCAD中的零件般包括零件的所有幾何信息和尺寸標(biāo)住,但對于CAM過程中生成數(shù)控代碼的過程,一些幾何信息(如線切割中的內(nèi)輪廓)和尺寸標(biāo)注是多余的。由于是用VBA對AutoCAD進行二次開發(fā),整個AutoCAD可以作為子窗體被調(diào)用或是直接就在AutoCAD環(huán)境中開發(fā),要去除這些多余的實體(即使零件圖成為簡單的零件輪廓圖),當(dāng)然可以用AutoCAD中已有的erase工具,但為了生成數(shù)控代碼的過程更具專業(yè)性、使用更方便,可以用VBA方便的開發(fā)一個reserve工具(刪除未選實體,保留選取實體),這里主要使用AutoCAD ActiveX技術(shù)中的選擇集操作和AcadEntity Erase方法。
判斷輪廓合理性包含了簡單的CAPP過程。任何的零件輪廓圖都必須進行嚴(yán)格的合理性判斷,即是否能用所選的數(shù)控機床和數(shù)控系統(tǒng)加工,這里包含的內(nèi)容很多,如判斷線切割加工中是否有內(nèi)輪廓存在和外輪廓是否連續(xù)就是一個簡單的例子。通過實踐筆者認(rèn)為,在生成數(shù)控代碼的過程中,較好的方法是先將獨立的輪廓實體裝載為一個整體的序列,在線切割中是將輪廓實體捏合成一條AcadLW2 Polyline.對于簡單的數(shù)控加工,如線切割和數(shù)控車等,可以在裝載輪廓序列時順便判斷輪廓的合理性。
易于利用外部應(yīng)用程序,使開發(fā)工作簡單。在生成數(shù)控代碼的過程中數(shù)學(xué)處理是必不可少的。目前有很多不錯的數(shù)學(xué)處理軟件功能強大、使用方便,如果能很好的在生成數(shù)控代碼的程式過程中引用,將使開發(fā)的工作量大大減少。而用VBA對Auto2 CAD進行二次開發(fā)時,就可以方便的使用Microsoft Visual Basic開發(fā)環(huán)境與其它應(yīng)用軟件函數(shù)庫接口,使其它的應(yīng)用軟件成為和AutoCAD對等的工程子窗體,并且可以方便的相互通信。如在開發(fā)生成數(shù)控3B代碼時,應(yīng)用MATLAB的函數(shù)庫就可以用矩陣計算一步解決曲線擬和時的切失計算問題,避免使用追趕法計算切失。
數(shù)控加工中刀具按圓弧運動時圓弧的離散化方法。由于Object More方法只能實現(xiàn)點到點的移動,即需要起點和終點的坐標(biāo)值,又因為AutoCAD中的圓弧只給出幾何元素的數(shù)值不能按方程方式給出,所以離散化處理時用極坐標(biāo)較好,也就是用極角作為參變量進行離散化。工件與刀具的相對速度很大時的處理方法。