国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#二次開發(fā)AutoCAD 在汽車制造裝備行業(yè)中的應(yīng)用

2022-01-17 04:22付臘梅李永剛于海洋邢向宇張懷禮
鍛壓裝備與制造技術(shù) 2021年6期
關(guān)鍵詞:窗體數(shù)組調(diào)用

付臘梅,曹 偉,李永剛,于海洋,張 濤,邢向宇,張懷禮

(國(guó)機(jī)鑄鍛機(jī)械有限公司,山東 濟(jì)南 250306)

隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)輔助設(shè)計(jì)已經(jīng)廣泛應(yīng)用于各行各業(yè)中,在工程設(shè)計(jì)越來越自動(dòng)化的今天,通過AutoCAD 二次開發(fā)技術(shù),可以實(shí)現(xiàn)圖形內(nèi)的數(shù)據(jù)處理和算法優(yōu)化,在數(shù)控操作中,將CAD 圖形轉(zhuǎn)化為數(shù)控系統(tǒng)可識(shí)別的NC 程序,大大減少了操作員的工作量。

AutoCAD 二次開發(fā)工具主要有:

(1)AutoLISP:簡(jiǎn)單易學(xué),但程序運(yùn)行速度慢,缺乏保護(hù)機(jī)制;

(2)ADS:代碼冗余,一般不選擇該方式;

(3)Visual LISP;

(4)objectARX:功能強(qiáng)大,編程效率高,但必須使用C++來開發(fā),相對(duì)較難;

(5)ActiveX:VB 語言和C#;由于VB 語言相對(duì)落后,語法啰嗦,與當(dāng)下流行的語言差別比較大。

所以選擇C#來進(jìn)行二次開發(fā)AutoCAD。

1 AutoCAD ActiveX

ActiveXAutomation 是微軟公司推出的一個(gè)技術(shù)標(biāo)準(zhǔn),該技術(shù)是OLE 技術(shù)的進(jìn)一步擴(kuò)展,其作用是在Windows 系統(tǒng)的統(tǒng)一管理下協(xié)調(diào)不同的應(yīng)用程序,允許應(yīng)用程序之間相互控制、相互調(diào)用[2]。

AutoCADActiveX 可以使編程者通過編程手段從AutoCAD 的內(nèi)部或外部來操縱AutoCAD。ActiveX 是由一系列的對(duì)象,按一定的層次組成的一種對(duì)象結(jié)構(gòu),每一個(gè)對(duì)象代表了AutoCAD 中一個(gè)明確的功能,如繪制圖形對(duì)象、定義塊和屬性等[2]。ActiveX 具有大部分AutoCAD 的功能,以方法或?qū)傩缘拇嬖诜庋b在庫(kù)中,使用時(shí)只需調(diào)用對(duì)應(yīng)的方法或?qū)ο髮傩约纯蓪?shí)現(xiàn)對(duì)AutoCAD 的操作,從而達(dá)到二次開發(fā)的目的。

2 設(shè)計(jì)實(shí)例

2.1 流程圖

程序設(shè)計(jì)流程圖如圖1 所示。

圖1 設(shè)計(jì)流程圖

2.2 應(yīng)用程序

在設(shè)計(jì)程序前,需要安裝Visual studio 2012 和AutoCAD2014。在Visual studio.net 中新建一個(gè)標(biāo)準(zhǔn)應(yīng)用程序,首先需要在應(yīng)用程序中新增引用,引用Auto-CAD 的類,acdbmgd.dll,acmgd.dll,accoremgd.dll 等。這些類將提供如下操作的控件,在頭文件中添加命名空間:①Autodesk.AutoCAD.EditorInput——與用戶交互有關(guān)的類;②Autodesk.AutoCAD.ApplicationServices——用來定義和注冊(cè)新的AutoCAD 命令;③Autodesk.AutoCAD.Runtime——提供了系統(tǒng)級(jí)別的功能;④Autodesk.AutoCAD.DatabaseServices——database類;⑤Autodesk.AutoCAD.Geometry——point3d 的命名空間。

2.2.1 設(shè)置窗體

引用和控件都加載完成后,需要?jiǎng)?chuàng)建窗體、類,窗體主要有“主窗體”,“板材”,“模具”,“配刀”,主窗體如圖2 所示,板材窗體如圖3 所示。

圖2 主窗體

圖3 板材窗體

2.2.2 畫板材

在AutoCAD 中畫板材和形成框,用兩種不同顏色的線來區(qū)分。AutoCAD 圖形數(shù)據(jù)庫(kù)包含有表和記錄,一個(gè)數(shù)據(jù)庫(kù)包含9 個(gè)符號(hào)表(塊表、層表、文字樣式表、線型表、視圖表、UCS 表、視口表、注冊(cè)應(yīng)用程序表、標(biāo)注樣式表)。記錄是表的單元。要?jiǎng)?chuàng)建一個(gè)圖形對(duì)象,①需要得到創(chuàng)建對(duì)象的圖形數(shù)據(jù)庫(kù);②需要在內(nèi)存中創(chuàng)建實(shí)體類的一個(gè)對(duì)象;③打開圖形數(shù)據(jù)庫(kù)的塊表;④打開存儲(chǔ)實(shí)體的塊表記錄;⑤將該對(duì)象添加到塊表記錄中。

部分代碼如下:

2.2.3 模具

首先把模具信息逐行從txt 文件中讀出來,放入數(shù)組;C# 中通過streamReader 類讀取文本wenda 讀取模具文件的信息,刀具類型、刀具號(hào)、刀具尺寸等信息,如下示例:

塊和屬性在AutoCAD 繪圖操作中是提高繪圖效率的重要手段,為了在后面配刀和優(yōu)化提高效率,在讀取模具的時(shí)候就同時(shí)創(chuàng)建對(duì)應(yīng)刀具的塊,到時(shí)候直接調(diào)用就可以。創(chuàng)建塊首先創(chuàng)建一個(gè)Block-TableRecord 對(duì)象并設(shè)置塊的名稱;其次利用Transaction 類的GetObject()函數(shù)獲得當(dāng)前圖形的塊表對(duì)象;第三、創(chuàng)建組成塊的實(shí)體對(duì)象;第四、調(diào)用Block-TableRecord 類的成員函數(shù)AppendEntity 將組成塊的實(shí)體寫入塊表記錄中;]第五、調(diào)用BlockTable 類的Add 函數(shù)將創(chuàng)建的塊表記錄寫當(dāng)前圖形的塊表中[3]。如下示例:

2.2.4 配刀

配刀首先需要獲取孔的選擇集并放入數(shù)組中,根據(jù)直徑大小將合適的刀具號(hào)依次放入對(duì)應(yīng)的數(shù)組中,同時(shí)在AutoCAD 圖形中找到對(duì)應(yīng)孔的圓心做標(biāo)志,方便手動(dòng)修改刀具號(hào),同時(shí)知道哪些配刀成功,哪些沒有成功。這里需要用到的知識(shí)點(diǎn)就是獲取選擇集,將之前畫好的刀具塊放到對(duì)應(yīng)的圖形。選擇集調(diào)用通過調(diào)用Editor 類的GetSelection 及SelectImplied 類來實(shí)現(xiàn)。如圖4 所示,紅色的為配刀成功的孔。

圖4 配刀示意圖

2.2.5 優(yōu)化

這是非常關(guān)鍵的環(huán)節(jié),一般一個(gè)加工圖形中會(huì)有上百甚至幾百個(gè)孔,怎么排序顯得特別重要,所以這里就需要根據(jù)機(jī)械設(shè)備,加工方法以及產(chǎn)品尺寸來確定優(yōu)化算法,這里用距離比較法,及把前邊獲取的孔數(shù)據(jù)放入對(duì)應(yīng)數(shù)組,然后循環(huán)遍歷數(shù)組,逐一比較它們之間的距離,按從小到大排序,這樣就把要加工的孔按由近及遠(yuǎn)放入一個(gè)新的數(shù)組,同時(shí)達(dá)到了我們優(yōu)化路徑的目的,部分代碼如下:

2.2.6 導(dǎo)出NC 程序

根據(jù)優(yōu)化排序拼接NC 加工程序并導(dǎo)出到文本中,如圖6 所示。

圖6 NC 加工程序示例

3 結(jié)論

通過AutoCAD 二次開發(fā)技術(shù),可以實(shí)現(xiàn)復(fù)雜圖形的設(shè)計(jì),以及圖形內(nèi)的數(shù)據(jù)處理和算法優(yōu)化,在數(shù)控操作中,將CAD 圖形轉(zhuǎn)化為數(shù)控系統(tǒng)可識(shí)別的NC 程序,減少了操作員的工作量。通過不斷的優(yōu)化算法、優(yōu)化路徑,大大提高了車間的加工效率,節(jié)省人力成本,起到了明顯的節(jié)能降耗作用。

猜你喜歡
窗體數(shù)組調(diào)用
JAVA稀疏矩陣算法
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
系統(tǒng)虛擬化環(huán)境下客戶機(jī)系統(tǒng)調(diào)用信息捕獲與分析①
更高效用好 Excel的數(shù)組公式
關(guān)于Access中切換面板的問題與解析
尋找勾股數(shù)組的歷程
利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
WinCE.net下圖形用戶界面的開發(fā)
C++語言中函數(shù)參數(shù)傳遞方式剖析
子长县| 遵化市| 枣庄市| 宜州市| 定州市| 嘉黎县| 梅河口市| 承德市| 依兰县| 浦东新区| 清镇市| 西贡区| 长汀县| 龙岩市| 宜阳县| 阜阳市| 桦南县| 天祝| 博乐市| 宽城| 五华县| 瑞安市| 大名县| 梅州市| 和顺县| 全州县| 涞水县| 东源县| 安新县| 左贡县| 朔州市| 宣恩县| 张掖市| 孝义市| 明水县| 淄博市| 揭东县| 博罗县| 洪湖市| 商河县| 长岭县|