无码人妻久久一区二区三区免费,日本在线视频精品,欧美色图在线观看,幻女bbwxxxx,郎骑竹马来txt下载,你是我的城池营垒txt下载,gl小说打包下载

產(chǎn)品展廳收藏該商鋪

您好 登錄 注冊(cè)

當(dāng)前位置:
東莞市宇匠數(shù)控設(shè)備有限公司>技術(shù)文章>VB6. 0與 ActiveX Aut omati on技術(shù)開發(fā) CAM的分析

技術(shù)文章

VB6. 0與 ActiveX Aut omati on技術(shù)開發(fā) CAM的分析

閱讀:162          發(fā)布時(shí)間:2020-8-12

  ActiveX Aut omati on技術(shù)是微軟制定的一套標(biāo)準(zhǔn) ,使用這個(gè)標(biāo)準(zhǔn)可以使用不同語(yǔ)言開發(fā)的軟件構(gòu)件在網(wǎng)絡(luò)環(huán)境中相互操作 ,它允許通過外顯的對(duì)象由一個(gè) windows應(yīng)用程序控制另一個(gè) win2dows應(yīng)用程序 , CAD可以調(diào)用 CAM的對(duì)象 , CAM也可以調(diào)用CAD的對(duì)象。ActiveX Aut omati on被稱為第四代開發(fā)工具。 (第一代開發(fā)工具 - Aut olis p;第二代開發(fā)工具 - ads ;第三代開發(fā)工具- Visuallis p arx;第四代開發(fā)工具 - ActiveX aut omati on[ 1 ])。

同其他三代開發(fā)工具相比 ,ActiveX Aut omati on提供了大的靈活性和開發(fā)效率。它無(wú)需相關(guān)的控件的幫助 ,無(wú)需編寫復(fù)雜L ISP c語(yǔ)言程序 ,而是以對(duì)象的方式把 Aut oCAD的強(qiáng)大功能直接提供給應(yīng)用程序 ,既大大降低了開發(fā)工作量 ,又增強(qiáng)了系統(tǒng)的集成性、 對(duì)各種不同版本的適應(yīng)性和可維護(hù)性。Aut oCAD Ac2tiveX Aut omati on技術(shù)的出現(xiàn) ,標(biāo)志著 Aut oCAD的二次開發(fā)技術(shù)取得了歷史性轉(zhuǎn)折。首先 ,它**實(shí)現(xiàn)了 OLE Aut omati on ,使得其他軟件可以方便地訪問 Aut oCAD ; 其次 ,Aut oCAD*實(shí)現(xiàn)了面向?qū)ο蟮拈_發(fā)技術(shù) ,用戶可以操縱它提供所有的 Aut oCAD對(duì)象; ,基于 ActiveX Aut omati on開發(fā)技術(shù)的開發(fā)工具得到*的膨脹 ,已不再局限于 C C + +系列語(yǔ)言 , Visual Basic ,Del phi等工具都可以進(jìn)行開發(fā) ,本文介紹基于 Visual Basic Ac2tiveX Aut omati on技術(shù)開發(fā) CAM系統(tǒng)的過程。

1 CAM系統(tǒng)總體實(shí)現(xiàn)的方法

基于 Visual Basic ActiveX Aut omati on技術(shù) ,我公司已經(jīng)開發(fā)出了汽車縱梁沖孔生產(chǎn)線 CAM系統(tǒng)、 TP80型數(shù)控液壓板料沖孔機(jī) CAM系統(tǒng)、 數(shù)控沖床通用 CAM系統(tǒng)等 ,各種 CAM系統(tǒng)的功能雖然千差萬(wàn)別 ,但總體實(shí)現(xiàn)的方法類似。下面談?wù)?/span> CAM系統(tǒng)實(shí)現(xiàn)的通用方法。

增加菜單項(xiàng)以實(shí)現(xiàn) CAM圖標(biāo) , VBA編寫接口 ,使圖標(biāo)與ActiveX控件相連 , VB編寫類生成 DLL,它是以 VB類的形式提供的開發(fā)接口 ,可用于定義模型的幾何、 窗體 ,拓?fù)湟约皩?shí)現(xiàn)其他功能。在應(yīng)用中 ,可直接通過類的公共 ( Public)數(shù)據(jù)成員和保護(hù)( Pr otected)數(shù)據(jù)成員以及成員函數(shù) (Member Functi on) ACIS相互作用。開發(fā)者也可以根據(jù)特殊的需要從 ACIS類派生出自己的應(yīng)用類 ,類接口在各版本中可能有變化 ,終把菜單、 VBA工程、DLL、 各種文檔都封裝在 SET UP ,可以安裝在 Aut oCAD2000、2002、 2004、 2005 2006、 2007中。示意圖如圖 1:


首先創(chuàng)建一個(gè) CAM系統(tǒng)圖標(biāo)菜單 ,編寫腳本 ( Scri p ts) j mcar .mns, AUT OCAD使用工具 自定義菜單 \JMCAR. MNS加載 , CAM菜單加載到 Aut oCAD系統(tǒng)中 ,以便用戶像點(diǎn)擊 Aut oCAD的圖標(biāo)一樣點(diǎn)擊 CAM圖標(biāo)。第二步用 VBA編寫 j mvb1 . dvb工程 ,用于調(diào)用 DLL工程中類的成員 ,第三步中使用 VisualBasic6 . 0創(chuàng)建工程 ,包括各種窗體、 模塊、 類、 過程、 函數(shù)和各種功能模塊 ,并編譯成 DLL工程 ,以備 VBA調(diào)用 ,該部分的工作量大約占整個(gè)開發(fā)總量的 90%以上。后集成打包封裝形成 SET UP安裝文檔。以汽車縱梁沖孔生產(chǎn)線 CAM系統(tǒng)為例 ,其流程圖如圖 2:


2 CAM開發(fā)中技術(shù)要點(diǎn)

從圖 1 CAD /CAM系統(tǒng)示意圖可以看出 ,開發(fā)過程有四步 ,分別是圖標(biāo)菜單文檔的編寫、 VBA工程的創(chuàng)建、 DLL工程的創(chuàng)建設(shè)計(jì)和整個(gè)系統(tǒng)的集成 ,第一步圖標(biāo)菜單文檔的編寫和第二步 VBA工程的創(chuàng)建韓學(xué)軍已在“ 汽車縱梁沖孔數(shù)控生產(chǎn)線自動(dòng)編程系統(tǒng)ActiveX Aut omati on技術(shù)的應(yīng)用 一文中介紹 (詳見《CAD /CAM與制造業(yè)信息化 2006 12 ) ,本文不再贅述。這里主要介紹第三步 DLL工程的創(chuàng)建設(shè)計(jì)中的要點(diǎn)問題。

2 . 1 Visual Basic 6 . 0工程的引用

動(dòng)態(tài)鏈接庫(kù)中存放了所有 Windows應(yīng)用程序可以共享的代碼和資源 ,這些代碼或函數(shù)可以用多種語(yǔ)言寫出。Visual Basic利用這些技術(shù)可以調(diào)用任何語(yǔ)言產(chǎn)生的 DLL,也可以調(diào)出 windows應(yīng)用程序接口 (AP I )函數(shù) ,以實(shí)現(xiàn) S DK所能實(shí)現(xiàn)的功能。對(duì)象的鏈接與嵌入是 VisualBasic訪問所有對(duì)象的一種方法。利用 OLE技術(shù) ,Visual Basic將其他應(yīng)用軟件作為一個(gè)對(duì)象嵌入到應(yīng)用程序中進(jìn)行操作 ,也可以將各種基于 windows的應(yīng)用程序嵌入到 Visu2al Basic應(yīng)用程序中[ 2 ]。

在“ 引用 對(duì)話框中 ,選擇 ActiveX部件的名稱 ,它包含在應(yīng)用程序的對(duì)象中。可以使用“ 瀏覽 按鈕來搜索包含所需對(duì)象的類型庫(kù)文件。類型庫(kù)可以有. tlb. o1b擴(kuò)展文件名??蓤?zhí)行( exe)文件與動(dòng)態(tài)鏈接庫(kù) (DLL)也可以提供類型庫(kù)。在應(yīng)用程序中 ,在使用對(duì)象的屬性、 方法和事件之前 ,必須先聲明對(duì)象變量 ,然后將對(duì)象引用賦予該變量。如何賦值對(duì)象引用取決于兩個(gè)因素:

一、 該對(duì)象是頂層、 外部可創(chuàng)建對(duì)象 ,還是從屬對(duì)象。對(duì)于外部創(chuàng)建的對(duì)象的引用 ,可以直接賦值 ,而對(duì)從屬對(duì)象的引用則間接賦值。

二、 ActiveX部件是否提供類型庫(kù)。ActiveX部件的類型庫(kù)包含部件提供的全部對(duì)象的定義 ,包括全部可用的方法、 屬性和事件的定義。如果 ActiveX部件提供類型庫(kù) ,在使用庫(kù)的對(duì)象前 ,需要在 visual Basic工程中添加一個(gè)對(duì)類型庫(kù)的引用。如果對(duì)象是外部可創(chuàng)建的 ,可在 Set語(yǔ)句中用 New關(guān)鍵字、CreateObject Get Objet從部件外面將對(duì)象引用賦予變量。如果對(duì)象是從屬對(duì)象 ,則需使用高層對(duì)象的方法 , set語(yǔ)句中一個(gè)對(duì)象的引用[ 3 ]。

缺省的引用有四個(gè):

visual basic for app licat ons

visual basic runti me objects and p rocedues

visual basic objects and p rocedures

ole aut omati on

根據(jù)各個(gè)不同版本增加四個(gè)引用:

對(duì)于 2007來說

AUT OCAD 2007 type library

AUT OCAD /Object obx commom 17 . 0 type library

對(duì)于 2004, 2005, 2006來說

AUT OCAD 2004

AUT OCAD /Object obx commom16 . 0

AUT OCAD Focus contr ol for vba type library

MicosoftActivex Data Objects 2 . 1 L ibrary

對(duì)于 2000, 2002來說

AUT OCAD 2000

AUT OCAD Focus contr ol for vba type library

AUT OCAD /Object obx commom 1 . 0

MicosoftActivex Data Objects 2 . 1 L ibrary

2  實(shí)現(xiàn) VB Aut oCAD之間的鏈接

Aut oCAD的所有對(duì)象可組成一個(gè)層狀結(jié)構(gòu) ,其高層是 Ap2licati on對(duì)象 ,其它對(duì)象都是 App licati on對(duì)象的子對(duì)象。對(duì)象層中每個(gè)子對(duì)象都有屬于自己的子對(duì)象。為了獲得某個(gè)特定的對(duì)象 ,必須從 App licati on對(duì)象中對(duì)各層子對(duì)象進(jìn)行遍歷查詢 ,到找到該特定對(duì)象 , App licati on對(duì)象是 vb應(yīng)用程序與 Aut o2AD之間鏈接的關(guān)鍵。只有通過 App licati on對(duì)象才能獲取參數(shù)、 文檔集、 菜單欄、 菜單組。將 App licati on對(duì)象與 Aut oCAD之間行鏈接是實(shí)現(xiàn) CAM CAD連接的第一步。

對(duì)于 2007來說

Private Sub Form_Load ( ) 連接至 Aut oCAD圖形

On Err or Resume Next

Di m acadApp AsAcadApp licati on

Set acadApp = Get Object ( , "Aut oCAD. App licati on . 17" )

I f Err Then

Err . Clear

Set acadApp = CreateObject ( "Aut oCAD. App licati on . 17 . " )

I f Err Then

Msg Box Err . Descri p ti on

Exit Sub

End I f

End I f

Set acadDoc = acadApp. ActiveDocument

End Sub

對(duì)于 2004, 2005, 2006來說

Private Sub Form_Load ( ) 連接至 Aut oCAD程序

On Err or Resume Next

Di m acadApp AsAcadApp licati on

Set acadApp = Get Object ( , "Aut oCAD. App licati on . 16" )

I f Err Then

Err . Clear

Set acadApp = CreateObject ( "Aut oCAD. App licati on . 16" )

I f Err Then

Msg Box Err . Descri p ti on

Exit Sub

End I f

End I f

Set acadDoc = acadApp. ActiveDocument

End Sub

對(duì)于 2000, 2002來說

Private Sub Form_Load ( ) 連接至 Aut oCAD圖形

On Err or Resume Next

Di m acadApp AsAcadApp licati on

Set acadApp = Get Object ( , "Aut oCAD. App licati on" )

I f Err Then

Err . Clear

Set acadApp = CreateObject ( "Aut oCAD. App licati on . " )

I f Err Then

Msg Box Err . Descri p ti on

Exit Sub

End I f

End I f

Set acadDoc = acadApp. ActiveDocument

End Sub

2 . 3  在模塊中定義全局變量 ,獲取 Aut oCAD信息在模塊中定義 Aut oCAD應(yīng)用程序和 Aut oCAD文件Public acadApp AsAcadApp licati on cad應(yīng)用Public acadDoc AsAcadDocument cad文件用戶可以根據(jù)屏幕選取圖形、 可以根據(jù)圖層選取圖形 ,也可以根據(jù)某些條件過濾掉某些圖形元素 ,下面的過程是根據(jù)屏幕選取圖形放入選擇集中 ,然后把圖形元素放入動(dòng)態(tài)數(shù)組中 ,放入動(dòng)態(tài)數(shù)組中的目的是由于在選擇集中處理數(shù)據(jù)比較慢 ,而在動(dòng)態(tài)數(shù)組中處理數(shù)據(jù)的速度比較快。筆者做過一個(gè)試驗(yàn) ,在一個(gè)有 40個(gè)圖素的圖形文件中 ,用選擇集處理數(shù)據(jù)需要十分鐘 ,而用動(dòng)態(tài)數(shù)組處理需要 10秒。

Public Sub Aut ogetdata ( ) ’

Di m iAs I nteger, k As I nteger, ic As I nteger, lngCount as intege

Di m entAsAcadEntity

Di m sset ObjAs AcadSelecti onSet

Di m objEnts ( ) 定義動(dòng)態(tài)數(shù)組

On Err or GoTo ccc1

ic = acadDoc . Selecti onSets . Count 選擇集的個(gè)數(shù)

I f ic > 0 Then

For i = ic - 1 To 0 Step - 1

Set sset Obj = acadDoc . Selecti onSets ( i)

I f sset Obj . Name = " SSSS" Then sset Obj . Delete 存在該選擇集刪除它

Next

End I f

Set sset Obj = acadDoc . Selecti onSets . Add ( " SSSS" )

sset Obj . Select OnScreen

lngCount = sset Obj . Count 選擇集的圖元個(gè)數(shù)

I f lngCount > 0 Then

ReDi m objEnts (0 To lngCount - 1) 定義放實(shí)體的動(dòng)態(tài)數(shù)組

For ic = 0 To lngCount - 1 把選擇集的圖素放入實(shí)體數(shù)組中

Set objEnts ( ic) = ssSet obj ( ic)

Next

End I f

Ssset obj . delete

End sub

ObjEnts數(shù)組中存放了從屏幕上獲取的所有圖素。

2 . 4  向圖形數(shù)據(jù)庫(kù)添加 CAM圖形數(shù)據(jù)

圖形設(shè)計(jì)可以運(yùn)用 Pro /Engineer,UGII , I - DEAS, Euclid - IS,

CATI A, SolidWorks, Sigraph CAD軟件直接設(shè)計(jì)繪制 ,通過DXF、I - GES、 DWG格式放入 CAD CAM的一體化系統(tǒng) ,也可以用 Aut oCAD直接繪制。對(duì)于不同的 CAM系統(tǒng) ,向圖形數(shù)據(jù)庫(kù)添加的 CAM圖形數(shù)據(jù)也不同的 , TP80型數(shù)控液壓板料沖孔機(jī)為例 ,需要向圖形數(shù)據(jù)庫(kù)中加入板材信息、 夾鉗信息、 模具信息、 行程信息、 重定位信息、 模擬演示信息等等 ,然后根據(jù)從 CAD圖形數(shù)據(jù)庫(kù)中獲取的數(shù)據(jù)添加模具信息 ,該功能可以通過添加塊實(shí)現(xiàn) ,塊的屬性可以帶有 CAD信息 (如圓的圓心坐標(biāo)點(diǎn)、 圓的直徑 ,層、 線型、 顏色等 ) CAM信息 (刀具號(hào)、 刀具的直徑、 工位號(hào)、 沖壓類型、 重定位區(qū)域等 )。

自動(dòng)排刀的算法:首先建立刀具庫(kù) ,并提取刀具信息如:圓刀的直徑 ,其他刀具的長(zhǎng)、 寬、 面積、 角度 ,刀具名稱等 ,設(shè)置正公差和負(fù)公差的范圍 ,以便進(jìn)行匹配刀具。第二步從 Aut oCAD中提取圖形信息放入選擇集中 ,并把圓孔、 長(zhǎng)方孔、 長(zhǎng)圓孔、 特殊孔四種篩選出來 ,去除板材線 ,尺寸線 ,文字等 ,第三步從選擇集中取一個(gè)圖素 ,判斷該圖素的類型 (上述四種 ) ,根據(jù)圖素的類型進(jìn)行相應(yīng)的處理。

利用循環(huán)原理 ,把實(shí)體數(shù)組中的圖素全部處理后 , CAM層上就自動(dòng)把合適的刀具適配上了 , CAM圖形為了區(qū)別于 CAD圖形 ,以特殊的顏色顯示 ,放在層上 ,以便于后續(xù)處理。由于篇幅所限 ,在這里只能給出程序框圖圖 3。

2 . 5  優(yōu)化

TP80型數(shù)控液壓板料沖孔機(jī)采用直列式模具庫(kù) ,它的換模速度比較快 ,一般采用路徑優(yōu)化然后再進(jìn)行模具優(yōu)化的原則。它采用了夾鉗硬件自動(dòng)避讓的方式 ,軟件中不考慮夾鉗死區(qū)的避讓問題。


該優(yōu)化方法采用分組方式 ,每?jī)擅诪橐唤M ,每組內(nèi)先按模具優(yōu)化 ,相同模具按沖點(diǎn)的 X +所用模具的偏移值的距離進(jìn)行優(yōu)化 ,相同模具并且 X +所用模具的偏移值也相同的沖點(diǎn)按 Y+所用模具的偏移值的距離進(jìn)行比較 ,再按所有優(yōu)化路徑進(jìn)行比較 ,選出一個(gè)路徑生成 NC代碼。

設(shè)計(jì)模擬演示、 生成 NC程序等模塊把菜單、 VBA工程、 Visu2al Basic編譯后形成的 DLL、 各種文檔都封裝在 SET UP中。ActiveX DLL的注冊(cè)與開發(fā)平臺(tái)無(wú)關(guān) ,在一種編程語(yǔ)言中開發(fā)出來的 ActiveX DLL,幾乎不作任何修改 ,便可以在另一種編程語(yǔ)言中使用。一般注冊(cè) VB6 . 0 ActiveX DLL的方法有很多種 ,這里只介紹手動(dòng)注冊(cè)和自動(dòng)注冊(cè):

(1)使用 Regsvr32 . exe程序?qū)?/span> VB ActiveX DLL進(jìn)行注冊(cè)。

(2)安裝過程中的自動(dòng)注冊(cè)。

TP80型數(shù)控液壓板料沖孔機(jī)自動(dòng)編程 CAM軟件采用的是

安裝過程中的自動(dòng)注冊(cè)。主圖標(biāo)菜單如圖 5:


3 結(jié)論

利用計(jì)算機(jī)圖形交互界面 ,采用二維模擬技術(shù)及面向?qū)ο蟮某绦蛟O(shè)計(jì)方法 , vb ActiveX Aut omati on技術(shù) ,設(shè)計(jì) TP80型數(shù)控液壓板料沖孔機(jī) CAM系統(tǒng) ,對(duì)刀具的刀具軌跡進(jìn)行模擬 ,直觀、 快速、 正確地驗(yàn)證數(shù)控代碼 ,且操作簡(jiǎn)單、 方便 ,提高了數(shù)控液壓板料沖孔機(jī)的工作效率。該開發(fā)思路還可以用于數(shù)控沖床、 數(shù)控車床、 數(shù)控銑床、 加工中心、 激光切割機(jī)、 等離子切割機(jī)等數(shù)控加工設(shè)備 ,以起到節(jié)能降耗、 降低成本、 落實(shí)科學(xué)發(fā)展觀 ,建設(shè)節(jié)約型社會(huì)、 向綠色金屬加工邁進(jìn)的作用。目前該系統(tǒng)已經(jīng)應(yīng)用在汽車縱梁沖孔生產(chǎn)線和各種數(shù)控液壓板料沖孔設(shè)備中 ,用戶滿意度較高 ,使用效果比國(guó)外同類軟件要好。

本文由 伯特利數(shù)控文章 整理發(fā)表,文章來自網(wǎng)絡(luò)僅參考學(xué)習(xí),本站不承擔(dān)任何法律責(zé)任。

專業(yè)制造

收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~

對(duì)比框

產(chǎn)品對(duì)比 二維碼 意見反饋

掃一掃訪問手機(jī)商鋪
在線留言