• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

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

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

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

    (3)Visual LISP;

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

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

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

    1 AutoCAD ActiveX

    ActiveXAutomation 是微軟公司推出的一個技術(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 是由一系列的對象,按一定的層次組成的一種對象結(jié)構(gòu),每一個對象代表了AutoCAD 中一個明確的功能,如繪制圖形對象、定義塊和屬性等[2]。ActiveX 具有大部分AutoCAD 的功能,以方法或?qū)傩缘拇嬖诜庋b在庫中,使用時只需調(diào)用對應(yīng)的方法或?qū)ο髮傩约纯蓪?shí)現(xiàn)對AutoCAD 的操作,從而達(dá)到二次開發(fā)的目的。

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

    2.1 流程圖

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

    圖1 設(shè)計流程圖

    2.2 應(yīng)用程序

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

    2.2.1 設(shè)置窗體

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

    圖2 主窗體

    圖3 板材窗體

    2.2.2 畫板材

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

    部分代碼如下:

    2.2.3 模具

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

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

    2.2.4 配刀

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

    圖4 配刀示意圖

    2.2.5 優(yōu)化

    這是非常關(guān)鍵的環(huán)節(jié),一般一個加工圖形中會有上百甚至幾百個孔,怎么排序顯得特別重要,所以這里就需要根據(jù)機(jī)械設(shè)備,加工方法以及產(chǎn)品尺寸來確定優(yōu)化算法,這里用距離比較法,及把前邊獲取的孔數(shù)據(jù)放入對應(yīng)數(shù)組,然后循環(huán)遍歷數(shù)組,逐一比較它們之間的距離,按從小到大排序,這樣就把要加工的孔按由近及遠(yuǎn)放入一個新的數(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è)計,以及圖形內(nèi)的數(shù)據(jù)處理和算法優(yōu)化,在數(shù)控操作中,將CAD 圖形轉(zhuǎn)化為數(shù)控系統(tǒng)可識別的NC 程序,減少了操作員的工作量。通過不斷的優(yōu)化算法、優(yōu)化路徑,大大提高了車間的加工效率,節(jié)省人力成本,起到了明顯的節(jié)能降耗作用。

    猜你喜歡
    窗體數(shù)組二次開發(fā)
    JAVA稀疏矩陣算法
    電腦報(2022年13期)2022-04-12 00:32:38
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    電腦報(2020年24期)2020-07-15 06:12:41
    淺談基于Revit平臺的二次開發(fā)
    甘肅科技(2020年20期)2020-04-13 00:30:02
    試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
    檔案天地(2019年5期)2019-06-12 05:12:02
    淺談Mastercam后處理器的二次開發(fā)
    模具制造(2019年3期)2019-06-06 02:11:02
    西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
    尋找勾股數(shù)組的歷程
    基于LayeredWindow的異形窗體局部刷新
    中文信息(2014年2期)2014-03-06 23:49:14
    基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
    巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
    竹溪县| 特克斯县| 克什克腾旗| 枣庄市| 浠水县| 临汾市| 郁南县| 抚松县| 遵义县| 保康县| 白朗县| 拜泉县| 资中县| 吴堡县| 林西县| 霍邱县| 商河县| 井研县| 铁岭县| 宁陵县| 平顶山市| 旬邑县| 马公市| 徐水县| 嵊州市| 巴彦县| 海林市| 扎赉特旗| 平山县| 民丰县| 阳高县| 吴忠市| 荥经县| 开封县| 长宁区| 福海县| 崇州市| 新邵县| 黔西| 万安县| 仁寿县|