亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VB 在 AutoCAD 二次開發(fā)中的應用

        2014-02-28 01:32:14燕必成高永祥
        關鍵詞:軸孔窗體銑刀

        燕必成 高永祥

        (浙江機電職業(yè)技術學院 機械工程學院,杭州 310053)

        VB 在 AutoCAD 二次開發(fā)中的應用

        燕必成高永祥

        (浙江機電職業(yè)技術學院 機械工程學院,杭州 310053)

        介紹了 VisualBasic 語言對 AutoCAD 二次開發(fā)的技術基礎和重要性,建立了 VB 與 AutoCAD 的聯(lián)系。 通過齒輪結構參數(shù)化三維造型的實例,詳細闡述了用 VB6.0 對 AutoCAD 進行二次開發(fā)的基本思路、主要步驟和具體方法。

        AutoCAD;二次開發(fā);VB;圓柱齒輪

        引言

        隨著計算機技術的快速發(fā)展,CAD、CAM 和CAE 等技術在機械制造行業(yè)扮演著越來越重要的角色,各種軟件層出不窮。 其中 AutoCAD 應用最為廣泛的原因是由于它具有開放的體系結構,允許用戶和開發(fā)者采用高級編程語言對其進行擴充和修改(即二次開發(fā)),能最大限度地滿足用戶的特殊要求。 在機械行業(yè)中,對于一些一般性的復雜輪廓曲線,僅僅利用 AutoCAD 本身來繪制是比較困難的,也很難達到 CAE 分析的實際要求。 因此,可通過對AutoCAD 進 行 二次開發(fā)來 解 決該問題[1]。

        Visual Basic(以下簡稱 VB)是 Microsoft公司推出的面向對象的可視化編程工具。它作為二次開發(fā)工具,具有語法簡單、功能強大、調試方便等特點。此外,AutoCAD 自 R14 版本起, 加入了 ActiveX 自動化服務功能, 而 VB又是最為常用的支持ActiveX 技術的開發(fā)工具, 以它作為開 發(fā) 工具,使AutoCAD 與其他 Windows 程序的數(shù)據(jù)共享變得非常 容易[2]。

        1 連接方法

        用 VB 語言進行 AutoCAD 二次開發(fā), 首先要將VB 與 AutoCAD 連接起來,然后再進行程序的編寫。

        1.1VB 中 AutoCAD 的引用

        新建好一個工程,從【工程】下拉菜單里單擊【 引 用 】, 在 彈 出 的 窗 口 中 , 將 AutoCAD Type Library 勾選,如圖 1 所示。 這樣就把 AutoCAD 的對象引用到VB里。

        圖 1 VB 中 AutoCAD 的引用設置界面

        1.2對 象變量的定義[2]

        在窗體的 Load 事 件里輸入以下代碼, 其中Dim AcadApp As AcadApplication 是 用 來 定 義AutoCAD 對象, 其 他 代 碼 是用來連接 VB 與 Auto CAD 的。 因此,當運行 VB 時,程序會自動連接到AutoCAD 上,從 而 實 現(xiàn) 在 VB 里 編 程,對 AutoCAD進行控制。

        Dim AcadApp As AcadApplication

        Private Sub Form_Load()

        On Error Resume Next

        Set AcadApp=GetObject("AutoCAD.Application")

        If Err Then

        Err.Clear

        SetAcadApp=CreateObject("AutoCAD. Application")

        If Err Then

        MsgBox("不 能 運 行 AutoCAD,請 檢 查 是 否 安裝了 AutoCAD")

        Exit Sub

        End If

        End If

        AcadApp.Visible=True

        AcadApp.WindowState=acMax

        End Sub

        這里使用了比較復雜的條件語句,目的是確保只啟動一次 AutoCAD。

        2 應用實例

        本例以圓柱齒輪三維模型的建立及加工仿真過程為例, 說明 VB 在 AutoCAD 二次開發(fā)中的應用。 本例中所涉及的程序 和 圖 形 都 在 VB6.0 和AutoCAD2006 中得以驗證。

        2.1程 序主界面的 創(chuàng) 建[3-4]

        在 VB 對 AutoCAD 的二次開發(fā)中,程序的界面至關重要,可以讓用戶直觀地將齒輪的各個參數(shù)輸入,同時也能給用戶提供一些技術幫助。 這里首先創(chuàng)建了一個名為“創(chuàng)建三維齒輪”的窗體,然后在“確定”按鈕的 click 事件里創(chuàng)建齒圖 2 三維齒輪參數(shù)窗體輪程序的控件,見圖 2所示。

        圖2 三維齒輪參數(shù)窗體

        其中 Function 齒輪和 Function ACos 兩個函數(shù)在窗體的 Load 事件里。

        2.2齒 輪的創(chuàng)建方 法 及過程[2,5]

        齒輪的創(chuàng)建,首先創(chuàng)建一個圓柱體(半徑就是齒頂圓半徑),再創(chuàng)建齒輪的三維軸孔及鍵槽,然后做布爾減(Bool acSubtraction)運算,得到無齒的 齒輪模型。 再由齒輪的參數(shù)計算得出銑刀參數(shù),用旋轉的方法創(chuàng)建出銑刀。最后由銑刀和齒輪模型做動畫,動畫是用布爾減的方法切齒創(chuàng)建,得到完整的三維齒輪。程序的主流程圖如圖3所示。

        圖3 程序主流程

        2.2.1齒輪模型的創(chuàng)建方法及過程

        齒輪模型的創(chuàng)建共分四個步驟:

        (1)先用 Addcircle 方法創(chuàng) 建 一個半 徑 為齒頂圓半徑的圓。

        (2)用 Addlight Weight PolyLine 方法創(chuàng)建軸孔及鍵,參數(shù)由窗體上對應的文本框輸入。

        (3)用 AddRegion 方法創(chuàng)建軸孔及鍵的面域,然后分別拉伸,其高度為齒寬,拉伸錐角為 0。

        (4)將 軸孔和 鍵 做布爾 加 (Bool acUion),再與第(1)步做的齒輪圓柱體做布爾減運算,得到齒輪模型。 由于篇幅原因,詳細程序不再列出。

        '創(chuàng)建分度圓,齒頂圓,齒根圓,軸孔

        Dim circler1 As AcadCircle

        Dim circlera1 As AcadCircle

        Dim circlerf As AcadCircle

        Dim circlerd As AcadCircle

        Dim centerpoints(0 To 2)As Double

        '將軸孔和鍵 3d 做并集

        軸孔.Boolean acUnion,鍵 3d

        '將軸孔和齒輪圓柱體做差集

        圓柱體.Boolean acSubtraction, 軸孔

        2.2.2銑刀模型創(chuàng)建方法及過程

        齒輪銑刀是由一個回轉面旋轉形成的銑刀盤模型,利用布爾減運算切出刀齒。 用齒輪銑刀銑齒時,銑刀的各參數(shù)應與齒輪的各參數(shù)有相配合,這樣才能保證加工出來的齒輪是符合要求的。因此,在設計銑刀時要根據(jù)齒輪的各參數(shù)來確定銑刀。具體創(chuàng)建方法如下:

        (1)銑刀回轉面創(chuàng)建

        銑刀回轉面的數(shù)學模型如圖4, 先創(chuàng)建右半部分,再鏡像得到左半部分。 各個點之間的曲線創(chuàng)建思路如下:

        圖4 銑刀回轉面的模型

        ①創(chuàng)建右半部分曲線: 第 0、1、2 點用 Addlight Weight PolyLine 方法創(chuàng)建輕便多義線, 曲線上第0 點為齒根圓上點,第 2 點為齒輪圓上點,第 1 點為介于 0 點與 2 點之間的點,0、1、2 點構成齒輪根部的過渡曲線,使彎曲度由指定第一點凸度為 0.14 實現(xiàn);第 2、3、4 點 ,用 Addspline 方 法創(chuàng)建樣條曲 線,其中第 3點為齒輪分度圓上點,第 4點為齒頂圓上的點;第 4、5、6 用 Weight PolyLine 方法創(chuàng)建輕便多義線,第 5、6 由銑刀本身確定,無具體要求。

        ②用 mirror 方法鏡像右半部分曲線,得到左半部分曲線,鏡像軸為Y軸。

        (2)銑刀盤三維實體的創(chuàng)建

        ①將第(1)步作好的曲線創(chuàng)建為面域;

        ②用 Addrevoledsolid 方 法 將 第①步 作 好的 面域進行面域旋轉, 角度為 6.29 弧度, 旋轉軸為 XY平面內平行于直線 5-6 的一條直線。

        (3)銑刀成形

        先 用 Addbox 方 法 創(chuàng) 建 一 個 長 方 體 , 再 用ArrayOolar方法將其圓形陣列,數(shù)量為銑刀齒數(shù),然后把陣列得到的立方體與銑刀盤做布爾減得到有齒的銑刀。

        2.2.3動 畫切齒的方 法 及過程[2,4-6]

        由齒輪模型形成齒輪,是由銑刀的旋轉、銑刀與齒輪模型的移動,作布爾減模擬動畫得到的。 實際上,由于齒輪模型與銑刀相對運動時,不可能做成完全連續(xù)的,故在做布爾減運算時還要一個專門與它作布爾減的銑刀模型(由銑刀面域拉伸而成),為使動畫逼真,將銑刀模型隱藏。

        (1)用 AddExtrudedsolid 方法將創(chuàng)建旋轉銑刀的面域拉伸,高度為齒寬,錐角為 0 度。

        (2)用 Delete 方法將除齒輪,銑刀,銑刀拉伸的實體外的實體刪除。

        (3)用 Do…Loop 做一個循環(huán),在循環(huán)體內用move 方法讓銑刀沿 z軸上下移動, 距離為齒寬,同時用 Rotate3d 方法饒自身軸旋轉一定角度,同樣用Rotate 方法將齒輪旋轉,角度為 360/齒數(shù) *3.14/180弧度,銑刀自身復制,齒輪模型與面域拉伸做布爾減運算。具體程序如下:

        '定義銑刀拉伸,做動畫差集用

        Dim 銑刀拉伸 As Acad3DSolid

        Set銑刀拉伸=AcadApp.ActiveDocument.ModelSpace._

        AddExtrudedSolid(銑刀面域(0),height,taperAngle)

        axisPt(0) = 銑刀拉伸.Centroid(0)

        axisPt(1) = 銑刀拉伸.Centroid(1)

        axisPt(2) =height/2

        銑刀拉伸.Move 銑刀拉伸.Centroid,axisPt

        銑刀拉伸.Visible=False'隱藏了銑刀拉伸

        axisPt(0) = 銑刀 3d.Centroid(0) +10

        axisPt(1) = 銑刀 3d.Centroid(1)

        axisPt(2) = 銑刀 3d.Centroid(2)

        point1(0) = 銑刀 3d.Centroid(0)

        point1(1) = 銑刀 3d.Centroid(1)

        point1(2) = 銑刀 3d.Centroid(2) +height

        銑刀 3d.Move 銑刀 3d.Centroid,point1

        '刪除銑刀,銑刀拉伸和齒輪以外的實體

        Dim entry As AcadEntity

        ForEachentryInAcadApp.ActiveDocument. ModelSpace

        If entry.ObjectID 〈> 銑 刀 3d.ObjectID And entry. ObjectID 〈> _

        圓柱體.ObjectID And entry.ObjectID 〈> 銑刀拉伸._

        ObjectID Then entry.Delete End If Next

        '定義動畫

        Dim 銑刀復制 As Acad3DSolid

        Dim k

        i1=0

        Dim 銑刀 3dz 坐標 AsDouble

        銑刀 3dz 坐標 = 銑刀 3d.Centroid(2)

        Dim point22(0 To2) AsDouble

        point22(0) = 銑刀 3d.Centroid(0)

        point22(1) = 銑 刀 3d.Centroid(1) -8* (rf1-rb1)

        point22(2) = 銑刀 3d.Centroid(2)

        '由循環(huán)做銑刀移動

        Do Until i1 > 360

        For k= 銑 刀 3dz 坐 標 To 銑 刀 3dz 坐 標 -heightStep-_height/3

        point1(2) =k

        銑刀 3d.Move 銑刀 3d.Centroid,point1銑刀 3d.Update

        axisPt(2) = 銑刀 3d.Centroid(2)

        '銑刀旋轉

        銑刀 3d.Rotate3D 銑刀 3d.Centroid,axisPt,_ 360/30*3.14159/180

        銑刀 3d.Update

        Next k

        銑刀 3d.Move 銑刀 3d.Centroid,point22

        Set銑刀復制 = 銑刀拉伸.Copy

        圓柱體.Boolean acSubtraction,銑刀復制圓柱體.Update

        point1(2) =point1(2) +height

        銑刀 3d.Move 銑刀 3d.Centroid,point1

        銑刀 3d.Update

        Dim CenterPoint(0 To 2) As Double

        CenterPoint (0) =0:CenterPoint (1) =0: CenterPoint(2) =0

        圓柱體.Rotate CenterPoint,-360/z1*3.14159/ 180

        '齒輪毛坯旋轉

        圓柱體.Update

        i1=360/z1+i1

        Loop

        銑 刀 3d.Move銑 刀 3d.Centroid,point22 程序執(zhí)行過程中產(chǎn)生的動畫圖如圖 5所示,執(zhí)行的最后結果如圖6所示。

        圖5 加工動畫

        圖6 仿真加工的結果

        3 結束語

        本文利用 VB 對 AutoCAD 進行二次開發(fā),通過一實例說明了進行二次開發(fā)的理論和方法,解決了具有一般性復雜輪廓曲線的幾何造型問題。VB是Windows 下一個優(yōu)秀的開發(fā)工具, 采用 ActiveX 技術,在 Windows 多任務環(huán)境下,將多個應用程序集成在一起來實現(xiàn)一個綜合的工程應用,這是個很好的選擇。

        [1]岳 震.基 于 VB 的 AutoCAD 二 次 開 發(fā)[J].機 械 設 計 與 制 造 ,2002(1):25-26.

        [2]張 晉 西.Visual Basic 與 Auto CAD 二 次 開 發(fā) [M].北 京 :清 華大學出版社,2002.

        [3]劉 瑞 新 ,汪 遠 征.Visual Basic 程 序 設 計 教 程[M].北 京:機 械工業(yè)出版社,2000.

        [4]申 永勝.機械 原理教 程[M].北京 :清華大 學出 版社,1999.

        [5]張 國 寶 .AutoCAD Visual Basic 開 發(fā) 技 術[M].北 京 : 科 學 出版社,2000.

        [6]郭 招娣.VB.NET 和 VB6.0 的 二次開 發(fā)[J].CAD/CAM 與制造業(yè)信息化,2005(1):29.

        (責任編輯梁紅艷)

        H 26.2

        :A

        :1671-9123(2014)03-0117-04

        2014-05-26

        燕必成(1975-),男,甘肅天水人,浙江機電職業(yè)技術學院機械工程學院教師。

        猜你喜歡
        軸孔窗體銑刀
        煉鋼轉爐托圈銷軸孔在線修復探討
        冶金設備(2021年2期)2021-07-21 08:44:28
        銑刀盤的5軸數(shù)控加工
        模具制造(2019年10期)2020-01-06 09:13:08
        試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應用
        檔案天地(2019年5期)2019-06-12 05:12:02
        螺紋銑刀
        軸孔協(xié)調接觸建模與試驗研究
        有關大跨距同軸孔系加工方法的研究
        伊斯卡拓展了中高速進給銑刀
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        一種實用的柴油機機體軸孔加工技術
        便捷裝卸的銑刀桿墊圈和平鍵組合設計一例
        河南科技(2014年23期)2014-02-27 14:18:56
        手机在线看永久av片免费| 日本第一影院一区二区| 无码毛片内射白浆视频| 成人精品一区二区三区中文字幕| 国产精品理人伦国色天香一区二区| 亚洲精品二区在线观看| 国产tv不卡免费在线观看 | 日韩中文字幕免费视频| 亚洲色在线视频| 精品午夜一区二区三区| 丰满少妇被猛进去高潮| 忘忧草社区www日本高清| 亚洲欧美日韩激情在线观看| 视频精品亚洲一区二区| 午夜国产视频一区二区三区| 欧美中日韩免费观看网站| 久久尤物AV天堂日日综合| 国产一区二区三区免费小视频| 国产一区亚洲二区三区| 真人作爱免费视频| 欧美日本免费一区二| av国产免费在线播放| 亚洲理论电影在线观看| 小12萝8禁在线喷水观看| 第九色区Aⅴ天堂| 中国黄色一区二区三区四区| 风韵多水的老熟妇| 在线观看网址你懂的| 国产一区二区杨幂在线观看性色| 国产97色在线 | 国产| 亚洲精品无码国模| av黄片免费在线观看| 男女交射视频免费观看网站| 久久久久女人精品毛片| 国产精品久久久久久久专区| 麻豆精品在线视频观看| 少妇人妻精品一区二区三区| 久久精品国产亚洲vr| 风流少妇一区二区三区91| 热99re久久精品这里都是精品免费 | 亚洲一二三四五中文字幕|