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