国产在线观看91_国语自产偷拍精品视频偷_国产成人精品永久免费视频_日韩主播新片在线观看,欧美丰满熟妇xx猛交,久久精品国产自在天天线,成人综合色站

海天精工機床有限公司 海天精工博客

VB6. 0與 ActiveX Aut omati on技術開發 CAM的分析

ActiveX Aut omati on技術是微軟制定的一套標準 ,使用這個標準可以使用不同語言開發的軟件構件在網絡環境中相互操作 ,它允許通過外顯的對象由一個 windows應用程序控制另一個 win2dows應用程序 , CAD可以調用 CAM的對象 , CAM也可以調用CAD的對象。ActiveX Aut omati on被稱為第四代開發工具。 (第一代開發工具 - Aut olis p;第二代開發工具 - ads ;第三代開發工具- Visuallis p、 arx;第四代開發工具 - ActiveX aut omati on[ 1 ])。同其他三代開發工具相比 ,ActiveX Aut omati on提供了******的靈活性和開發效率。它無需相關的控件的幫助 ,無需編寫復雜L ISP或 c語言程序 ,而是以對象的方式把 Aut oCAD的強大功能直接提供給應用程序 ,既大大降低了開發工作量 ,又增強了系統的集成性、 對各種不同版本的適應性和可維護性。Aut oCAD的 Ac2tiveX Aut omati on技術的出現 ,標志著 Aut oCAD的二次開發技術取得了歷史性轉折。首先 ,它首次完全實現了 OLE Aut omati on ,使得其他軟件可以方便地訪問 Aut oCAD ; 其次 ,Aut oCAD首次實現了面向對象的開發技術 ,用戶可以操縱它提供所有的 Aut oCAD對象;最后 ,基于 ActiveX Aut omati on開發技術的開發工具得到空前的膨脹 ,已不再局限于 C及 C + +系列語言 ,用 Visual Basic ,Del phi等工具都可以進行開發 ,本文介紹基于 Visual Basic和 Ac2tiveX Aut omati on技術開發 CAM系統的過程。1 CAM系統總體實現的方法基于 Visual Basic和 ActiveX Aut omati on技術 ,我公司已經開發出了汽車縱梁沖孔生產線 CAM系統、 TP80型精工液壓板料沖孔機 CAM系統、 精工沖床通用 CAM系統等 ,各種 CAM系統的功能雖然千差萬別 ,但總體實現的方法類似。下面談談 CAM系統實現的通用方法。增加菜單項以實現 CAM圖標 ,用 VBA編寫接口 ,使圖標與ActiveX控件相連 ,用 VB編寫類生成 DLL,它是以 VB類的形式提供的開發接口 ,可用于定義模型的幾何、 窗體 ,拓撲以及實現其他功能。在應用中 ,可直接通過類的公共 ( Public)數據成員和保護( Pr otected)數據成員以及成員函數 (Member Functi on)與 ACIS相互作用。開發者也可以根據特殊的需要從 ACIS類派生出自己的應用類 ,類接口在各版本中可能有變化 ,最終把菜單、 VBA工程、DLL、 各種文檔都封裝在 SET UP中 ,可以安裝在 Aut oCAD2000、2002、 2004、 2005、 2006、 2007中。示意圖如圖 1:首先創建一個 CAM系統圖標菜單 ,編寫腳本 ( Scri p ts) j mcar .mns,在 AUT OCAD使用工具 → 自定義菜單 →\JMCAR. MNS加載 ,把 CAM菜單加載到 Aut oCAD系統中 ,以便用戶像點擊 Aut oCAD的圖標一樣點擊 CAM圖標。第二步用 VBA編寫 j mvb1 . dvb工程 ,用于調用 DLL工程中類的成員 ,第三步中使用 VisualBasic6 . 0創建工程 ,包括各種窗體、 模塊、 類、 過程、 函數和各種功能模塊 ,并編譯成 DLL工程 ,以備 VBA調用 ,該部分的工作量******約占整個開發總量的 90%以上。最后集成打包封裝形成 SET UP安裝文檔。以汽車縱梁沖孔生產線 CAM系統為例 ,其流程圖如圖 2:2 CAM開發中技術要點從圖 1 CAD /CAM系統示意圖可以看出 ,開發過程有四步 ,分別是圖標菜單文檔的編寫、 VBA工程的創建、 DLL工程的創建設計和整個系統的集成 ,第一步圖標菜單文檔的編寫和第二步 VBA工程的創建韓學軍已在“ 汽車縱梁沖孔精工生產線自動編程系統ActiveX Aut omati on技術的應用 ” 一文中介紹 (詳見《CAD /CAM與制造業信息化 》 2006年 12期 ) ,本文不再贅述。這里主要介紹第三步 DLL工程的創建設計中的要點問題。2 . 1 Visual Basic 6 . 0工程的引用動態鏈接庫中存放了所有 Windows應用程序可以共享的代碼和資源 ,這些代碼或函數可以用多種語言寫出。Visual Basic利用這些技術可以調用任何語言產生的 DLL,也可以調出 windows應用程序接口 (AP I )函數 ,以實現 S DK所能實現的功能。對象的鏈接與嵌入是 VisualBasic訪問所有對象的一種方法。利用 OLE技術 ,Visual Basic將其他應用軟件作為一個對象嵌入到應用程序中進行操作 ,也可以將各種基于 windows的應用程序嵌入到 Visu2al Basic應用程序中[ 2 ]。在“ 引用 ” 對話框中 ,選擇 ActiveX部件的名稱 ,它包含在應用程序的對象中。可以使用“ 瀏覽 ’ ’ 按鈕來搜索包含所需對象的類型庫文件。類型庫可以有. tlb或. o1b擴展文件名。可執行( exe)文件與動態鏈接庫 (DLL)也可以提供類型庫。在應用程序中 ,在使用對象的屬性、 方法和事件之前 ,必須先聲明對象變量 ,然后將對象引用賦予該變量。如何賦值對象引用取決于兩個因素:一、 該對象是頂層、 外部可創建對象 ,還是從屬對象。對于外部創建的對象的引用 ,可以直接賦值 ,而對從屬對象的引用則間接賦值。二、 ActiveX部件是否提供類型庫。ActiveX部件的類型庫包含部件提供的全部對象的定義 ,包括全部可用的方法、 屬性和事件的定義。如果 ActiveX部件提供類型庫 ,在使用庫的對象前 ,需要在 visual Basic工程中添加一個對類型庫的引用。如果對象是外部可創建的 ,可在 Set語句中用 New關鍵字、CreateObject或 Get Objet從部件外面將對象引用賦予變量。如果對象是從屬對象 ,則需使用高層對象的方法 ,在 set語句中指定一個對象的引用[ 3 ]。缺省的引用有四個:visual basic for app licat onsvisual basic runti me objects and p roceduesvisual basic objects and p roceduresole aut omati on根據各個不同版本增加四個引用:對于 2007來說AUT OCAD 2007 type libraryAUT OCAD /Object obx commom 17 . 0 type library對于 2004, 2005, 2006來說AUT OCAD 2004AUT OCAD /Object obx commom16 . 0AUT OCAD Focus contr ol for vba type libraryMicosoftActivex Data Objects 2 . 1 L ibrary對于 2000, 2002來說AUT OCAD 2000AUT OCAD Focus contr ol for vba type libraryAUT OCAD /Object obx commom 1 . 0MicosoftActivex Data Objects 2 . 1 L ibrary2  實現 VB與 Aut oCAD之間的鏈接Aut oCAD的所有對象可組成一個層狀結構 ,其最高層是 Ap2licati on對象 ,其它對象都是 App licati on對象的子對象。對象層中每個子對象都有屬于自己的子對象。為了獲得某個特定的對象 ,必須從 App licati on對象中對各層子對象進行遍歷查詢 ,到找到該特定對象 , App licati on對象是 vb應用程序與 Aut o2AD之間鏈接的關鍵。只有通過 App licati on對象才能獲取參數、 文檔集、 菜單欄、 菜單組。將 App licati on對象與 Aut oCAD之間行鏈接是實現 CAM與 CAD連接的第一步。對于 2007來說Private Sub Form_Load ( ) ’ 連接至 Aut oCAD圖形On Err or Resume NextDi m acadApp AsAcadApp licati onSet acadApp = Get Object ( , "Aut oCAD. App licati on . 17" )I f Err ThenErr . ClearSet acadApp = CreateObject ( "Aut oCAD. App licati on . 17 . " )I f Err ThenMsg Box Err . Descri p ti onExit SubEnd I fEnd I fSet acadDoc = acadApp. ActiveDocumentEnd Sub對于 2004, 2005, 2006來說Private Sub Form_Load ( ) ’ 連接至 Aut oCAD程序On Err or Resume NextDi m acadApp AsAcadApp licati onSet acadApp = Get Object ( , "Aut oCAD. App licati on . 16" )I f Err ThenErr . ClearSet acadApp = CreateObject ( "Aut oCAD. App licati on . 16" )I f Err ThenMsg Box Err . Descri p ti onExit SubEnd I fEnd I fSet acadDoc = acadApp. ActiveDocumentEnd Sub對于 2000, 2002來說Private Sub Form_Load ( ) ’ 連接至 Aut oCAD圖形On Err or Resume NextDi m acadApp AsAcadApp licati onSet acadApp = Get Object ( , "Aut oCAD. App licati on" )I f Err ThenErr . ClearSet acadApp = CreateObject ( "Aut oCAD. App licati on . " )I f Err ThenMsg Box Err . Descri p ti onExit SubEnd I fEnd I fSet acadDoc = acadApp. ActiveDocumentEnd Sub2 . 3  在模塊中定義全局變量 ,獲取 Aut oCAD信息在模塊中定義 Aut oCAD應用程序和 Aut oCAD文件Public acadApp AsAcadApp licati on ’ cad應用Public acadDoc AsAcadDocument ’ cad文件用戶可以根據屏幕選取圖形、 可以根據圖層選取圖形 ,也可以根據某些條件過濾掉某些圖形元素 ,下面的過程是根據屏幕選取圖形放入選擇集中 ,然后把圖形元素放入動態數組中 ,放入動態數組中的目的是由于在選擇集中處理數據比較慢 ,而在動態數組中處理數據的速度比較快。筆者做過一個試驗 ,在一個有 40個圖素的圖形文件中 ,用選擇集處理數據需要十分鐘 ,而用動態數組處理需要 10秒。Public Sub Aut ogetdata ( ) ’Di m iAs I nteger, k As I nteger, ic As I nteger, lngCount as integeDi m entAsAcadEntityDi m sset ObjAs AcadSelecti onSetDi m objEnts ( ) ’ 定義動態數組On Err or GoTo ccc1ic = acadDoc . Selecti onSets . Count ’ 選擇集的個數I f ic > 0 ThenFor i = ic - 1 To 0 Step - 1Set sset Obj = acadDoc . Selecti onSets ( i)I f sset Obj . Name = " SSSS" Then sset Obj . Delete ’ 存在該選擇集刪除它NextEnd I fSet sset Obj = acadDoc . Selecti onSets . Add ( " SSSS" )sset Obj . Select OnScreenlngCount = sset Obj . Count ’ 選擇集的圖元個數I f lngCount > 0 ThenReDi m objEnts (0 To lngCount - 1) ’ 定義放實體的動態數組For ic = 0 To lngCount - 1 ’ 把選擇集的圖素放入實體數組中Set objEnts ( ic) = ssSet obj ( ic)NextEnd I fSsset obj . deleteEnd subObjEnts數組中存放了從屏幕上獲取的所有圖素。2 . 4  向圖形數據庫添加 CAM圖形數據圖形設計可以運用 Pro /Engineer,UGII , I - DEAS, Euclid - IS,CATI A, SolidWorks, Sigraph等專用 CAD軟件直接設計繪制 ,通過DXF、I - GES、 DWG格式放入 CAD和 CAM的一體化系統 ,也可以用 Aut oCAD直接繪制。對于不同的 CAM系統 ,向圖形數據庫添加的 CAM圖形數據也不同的 ,以 TP80型精工液壓板料沖孔機為例 ,需要向圖形數據庫中加入板材信息、 夾鉗信息、 模具信息、 行程信息、 重定位信息、 模擬演示信息等等 ,然后根據從 CAD圖形數據庫中獲取的數據添加模具信息 ,該功能可以通過添加塊實現 ,塊的屬性可以帶有 CAD信息 (如圓的圓心坐標點、 圓的直徑 ,層、 線型、 顏色等 )和 CAM信息 (刀具號、 刀具的直徑、 工位號、 沖壓類型、 重定位區域等 )。自動排刀的算法:首先建立刀具庫 ,并提取刀具信息如:圓刀的直徑 ,其他刀具的長、 寬、 面積、 角度 ,刀具名稱等 ,設置正公差和負公差的范圍 ,以便進行匹配刀具。第二步從 Aut oCAD中提取圖形信息放入選擇集中 ,并把圓孔、 長方孔、 長圓孔、 特殊孔四種篩選出來 ,去除板材線 ,尺寸線 ,文字等 ,第三步從選擇集中取一個圖素 ,判斷該圖素的類型 (上述四種 ) ,根據圖素的類型進行相應的處理。利用循環原理 ,把實體數組中的圖素全部處理后 ,在 CAM層上就自動把合適的刀具適配上了 , CAM圖形為了區別于 CAD圖形 ,以特殊的顏色顯示 ,放在專用層上 ,以便于后續處理。由于篇幅所限 ,在這里只能給出程序框圖圖 3。2 . 5  優化TP80型精工液壓板料沖孔機采用直列式模具庫 ,它的換模速度比較快 ,一般采用路徑優化然后再進行模具優化的原則。它采用了夾鉗硬件自動避讓的方式 ,軟件中不考慮夾鉗死區的避讓問題。該優化方法采用分組方式 ,每兩米為一組 ,每組內先按模具優化 ,相同模具按沖點的 X值 +所用模具的偏移值的距離進行優化 ,相同模具并且 X值 +所用模具的偏移值也相同的沖點按 Y值+所用模具的偏移值的距離進行比較 ,再按所有優化路徑進行比較 ,選出一個******路徑生成 NC代碼。設計模擬演示、 生成 NC程序等模塊把菜單、 VBA工程、 Visu2al Basic編譯后形成的 DLL、 各種文檔都封裝在 SET UP中。ActiveX DLL的注冊與開發平臺無關 ,在一種編程語言中開發出來的 ActiveX DLL,幾乎不作任何修改 ,便可以在另一種編程語言中使用。一般注冊 VB6 . 0 ActiveX DLL的方法有很多種 ,這里只介紹手動注冊和自動注冊:(1)使用 Regsvr32 . exe程序對 VB ActiveX DLL進行注冊。(2)安裝過程中的自動注冊。TP80型精工液壓板料沖孔機自動編程 CAM軟件采用的是安裝過程中的自動注冊。主圖標菜單如圖 5:3 結論利用計算機圖形交互界面 ,采用二維模擬技術及面向對象的程序設計方法 ,以 vb和 ActiveX Aut omati on技術 ,設計 TP80型精工液壓板料沖孔機 CAM系統 ,對刀具的刀具軌跡進行模擬 ,直觀、 快速、 正確地驗證精工代碼 ,且操作簡單、 方便 ,提高了精工液壓板料沖孔機的工作效率。該開發思路還可以用于精工沖床、 精工車床、 精工銑床、 加工中心、 激光切割機、 等離子切割機等精工加工設備 ,以起到節能降耗、 降低成本、 落實科學發展觀 ,建設節約型社會、 向綠色金屬加工邁進的作用。目前該系統已經應用在汽車縱梁沖孔生產線和各種精工液壓板料沖孔設備中 ,用戶滿意度較高 ,使用效果比國外同類軟件要好。本文由海天精工文章整理發表,文章來自網絡僅參考學習,本站不承擔任何法律責任。http://www.dyliao.com加工中心專業制造
留言列表
發表留言
◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。

主站蜘蛛池模板: 曲水县| 绥中县| 北票市| 华池县| 时尚| 子长县| 南宁市| 昌图县| 象山县| 青海省| 潮州市| 邵阳市| 偃师市| 衡水市| 普格县| 宜州市| 肇东市| 五家渠市| 浦城县| 仁化县| 武隆县| 惠州市| 晋州市| 樟树市| 民权县| 承德县| 定边县| 潼关县| 南投县| 长兴县| 井研县| 五峰| 麻江县| 霍邱县| 通化市| 灌南县| 肃宁县| 灵石县| 皋兰县| 保山市| 香港|