精品少妇高潮蜜臀涩涩av,99久久国产精品免费高潮,不卡无码人妻一区三区音频,七里香社区在线看

產品展廳收藏該商鋪

您好 登錄 注冊

當前位置:
東莞市宇匠數控設備有限公司>技術文章>如何二次開發AutoCAD

技術文章

如何二次開發AutoCAD

閱讀:213          發布時間:2020-8-12

0 引言

VBA是一種自動化語言, 結合相應的圖形軟件, 它可以按照用戶的要求, 自動地生成一系列的動作指令。微軟開發的圖形設計軟件AutoCAD 由于其具有豐富的方便、 快捷的繪圖工具, 使得該軟件在機械制造行業、 建筑行業中得到了廣泛的應用。

本文以VBA為開發語言, 依托AutoCAD強大的繪圖功能,設計并開發了數控仿真軟件。該軟件根據用戶編寫的數控程序, 在自定義的毛坯中, 通過刀具的移動完成材料的切削, 進而實現零件的加工。所有這些過程, 均以三維圖形的方式進行動態顯示, 可以將數控程序加工的細節詳實、 直觀地展現在用戶面前。利用該軟件可以極大地減小零件試切的損失, 對于提高生產效率具有積極作用。

1 仿真系統結構設計

根據實際零件加工的操作順序, 數控加工仿真程序設置了零件定義、 程序調用、 刀具選擇等功能。系統的頂層功能結構如圖1所示。


本仿真系統可通過兩個對話框定義毛坯的長L W H 工作坐標系X Y Z以及刀具的規格直徑Ф、 對刀長度L用戶可通過一個文件對話窗體選擇數控程序PRO。具體的窗體界面如圖2所示。


2 算法規劃與完成

2.1 VBA引入銜接AutoCAD

選用面向目標的程序規劃辦法, 運用 Visual Basic AutoCAD2005上用VBA技能進行二次開發, 可以較好地完成體系程序參數化繪圖。

VBA是經過AutoCAD ActiveX Automation接口來樹立和AutoCAD目標間的聯絡。ActiveX是樹立在COM目標模型之上的一個標準通信協議, 它答應目標之間經過必定的接口相互通信。而AutoCAD ActiveX提供在AutoCAD外操控編程的機制, 經過運用AutoCAD目標, 完成對AutoCAD的操控。

2.2 刀具切削實現

數控機床完成零件加工過程中, 主要涉及到兩種基本的加工路徑, 它們分別是直線運動、 圓弧運動。

對于直線加工模型, 主要是定義加工的起點AA和終點B。移動刀具的對刀點在AABB之間, 我們利用均勻直線插補算法求得; 刀具和毛坯重合部分, 可以借助對毛坯執行布爾運算生成, 以示零件被切削部分。模型如圖3所示。


圓弧加工模型, 由于曲線的復雜性和G02 G03圓弧插補加工方式選擇的需要, 在確定加工特征信息時應包括: 起點SASB SC 終點EA EB EC 半徑R 順時針G02 逆時針G03。圓弧生成的變種可以由角度參與確定, 對于加工整圓分為: 順時針、 逆時針兩種。

在整個加工模型的建立中, 圓弧加工涵蓋了加工的各種基本情況, 因此圓弧加工設計是系統實現的關鍵。圓弧加工模型如圖4所示。


下面是基于VBA開發的部分圓弧加工程序:

……

If G02G03 Like "G02" Then

p1(0)=sa: p1(1)=sb: p1(2)=sc

p2(0)=ea: p2(1)=eb: p2(2)=ec

Else

p1(0)=ea: p1(1)=eb: p1(2)=ec

p2(0)=sa: p2(1)=sb: p2(2)=sc

End If

radius=R

d=Math.Sqr((p2(0)-p1(0))*(p2(0)-p1(0))+

(p2(1)-p1(1))*(p2(1)-p1(1)))

d1=Math.Sqr(radius*radius-(d/2)*(d/2))

angle1=Math.Atn(d1/(d/2))

angle3=3.141592-(angle1+angle1)

If (p2(0)=p1(0)) Then

If radius>0 Then

If ((p2(1)-p1(1))>0) Then

centerPoint(0)=p1(0)+Math.Abs(radius)*

Math.COS(3.1415926/ 2-angle1)

Else

centerPoint(0)=p1(0)-Math.Abs(radius)*

Math.COS(3.1415926/2-angle1)

End If

Else

If ((p2(1)-p1(1))>0) Then

centerPoint(0)=(p1(0)-Math.Abs(radius)*

Math.COS(3.1415926/2-angle1))

Else

centerPoint(0)=(p1(0)+Math.Abs(radius)*

Math.COS(3.1415926/ 2-angle1))

End If

End If

centerPoint(1)=p1(1)+(p2(1)-p1(1))/2

If radius>0 Then

If ((p2(1)-p1(1))>0) Then

startAngleInDegree=angle1+3.1415926/2

endAngleInDegree=angle1+3.1415926/2+angle3

Else

startAngleInDegree=-angle3/2

endAngleInDegree=angle3/2

End If

……

2.3 實體加工模型

AutoCAD具有很強的圖形繪制能力, 利用該軟件的三維圖形繪制命令可以輕松繪制逼真的實體模型。

本系統利用自定義的加工函數完成實體模型的加工, 用戶只要給定加工所必須的信息, 就可以實現零件的自動加工。自定義函數的原型如下:

arcsolidtrace s(0), s(1), s(2), e1(0), e1(1), e1(2), radius, R,

H, boxObj, cylinderobj, G02G03

函數名稱為arcsolidtrace 圓弧的起點的三維坐標值為s(0), s(1), s(2) 圓弧終點三維坐標值為e1(0), e1(1), e1(2) 圓弧半徑為radius 刀具半徑為R,對刀長度為H,零件毛坯實體為boxObj 刀具實體為cylinderobj 加工方向為G02G03


程序依照數控圓弧加工規律和給定的參數值, 判斷加工路徑并完成零件毛坯的布爾運算。部分程序代碼如下:

……

d=Math.Sqr((p2(0)-p1(0))*(p2(0)-p1(0))+(p2(1)-p1(1))*

(p2(1)-p1(1)))

If d<>0 Then

d1=Math.Sqr(radius*radius-(d/2)*(d/2))

angle1=Math.Atn(d1/(d/2))

angle3=3.141592-(angle1+angle1)

If (p2(0)=p1(0)) Then

If radius>0 Then

If ((p2(1)-p1(1))>0) Then

m(0)=p1(0)+Math.Abs(radius)*Math.COS(3.1415926/

2-angle1)

Else

m(0)=p1(0)-Math.Abs(radius)*Math.COS(3.1415926/

2-angle1)

End If

Else

If ((p2(1)-p1(1))>0) Then

m(0)=(p1(0)-Math.Abs(radius)*Math.COS(3.1415926/

2-angle1))

Else

m(0)=(p1(0)+Math.Abs(radius)*Math.COS(3.1415926/

2-angle1))

End If

End If

m(1)=p1(1)+(p2(1)-p1(1))/2

If radius>0 Then

If ((p2(1)-p1(1))>0) Then

startAngleInDegree=angle1+3.1415926/2

endAngleInDegree=angle1+3.1415926/2+angle3

Else

startAngleInDegree=-angle3/2

endAngleInDegree=angle3/2

End If

……

3 應用實例

應用本系統, 用戶只需要選擇毛坯類型, 定義毛坯尺寸, 定義刀具規格, 輸入編寫好的數控程序, 即可驗證數控程序的正確性。

例如, 用戶定義一個矩形毛坯, 和一個半徑為10個單位的外形銑刀, 加工一個五角星的案例, 其加工完成后的效果如圖6所示。


4 結束語

利用VBAAutoCAD的二次開發, 實現了數控程序加工的三維仿真。仿真系統不但利用了VBA的數學計算功能, 更發揮了CAD的三維圖形功能, 使得數控仿真達到了逼真、 直觀的效果, 提高了數控加工程序驗證效率和準確率。

本文由 伯特利數控文章 整理發表,文章來自網絡僅參考學習,本站不承擔任何法律責任。

/bethel/news/

收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時間回復您~

對比框

產品對比 二維碼 意見反饋

掃一掃訪問手機商鋪
在線留言
主站蜘蛛池模板: 西昌市| 科技| 通州区| 宣汉县| 彭州市| 额济纳旗| 德昌县| 丹巴县| 隆化县| 阳朔县| 卓尼县| 德庆县| 高阳县| 滁州市| 阿拉尔市| 廉江市| 宜兰县| 临安市| 徐闻县| 璧山县| 庆阳市| 普洱| 大连市| 濉溪县| 溆浦县| 新邵县| 正安县| 久治县| 南投县| 绥阳县| 南郑县| 安康市| 尼勒克县| 九龙城区| 潼关县| 定结县| 抚顺市| 武山县| 台东县| 海丰县| 金乡县|