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

        ?

        基于.NET API的CAD二次開發(fā)技術(shù)在工程中的應(yīng)用

        2013-10-17 13:28:40李志超余杉鈺張彩云
        制造業(yè)自動化 2013年15期
        關(guān)鍵詞:二次開發(fā)插件控件

        李志超,余杉鈺,章 波,張彩云

        LI Zhi-chao,YU Shan-yu,ZHANG Bo,ZHANG Cai-yun

        (哈爾濱理工大學(xué) 自動化學(xué)院,哈爾濱 150080)

        0 引言

        AutoCAD作為一款成功的計算機輔助軟件在工程繪圖中具有廣泛的應(yīng)用,它可以幫助設(shè)計人員進行繪圖設(shè)計。CAD已經(jīng)成為現(xiàn)代工程設(shè)計最常用的工具,在機械、建筑、電子等領(lǐng)域得到了廣泛的應(yīng)用。但由于CAD軟件的通用性,可能造成在某些專業(yè)領(lǐng)域內(nèi)的功能不足或缺失[1]。因此,有必要對CAD進行二次開發(fā),設(shè)計出符合特定領(lǐng)域的專業(yè)模塊。這樣可以擴展CAD的應(yīng)用范圍,同樣可以提高設(shè)計人員的工作效率還可以減少設(shè)計時出現(xiàn)的錯誤,具有很強的實用價值。

        以實際工程中法蘭的繪制為例,不同法蘭的直徑,材質(zhì),螺孔數(shù),厚度等參數(shù)均不同。因此,如果對每一個法蘭盤都進行繪制將浪費工程師大量的時間,而且不便于管理。利用CAD二次開發(fā)技術(shù),不但可以快速準確的繪制所要求的法蘭盤,而且通過數(shù)據(jù)庫技術(shù)可以將CAD與企業(yè)的ERP管理系統(tǒng)鏈接起來,更方便企業(yè)的綜合管理,提高企業(yè)的管理效率,節(jié)約成本。

        1 AutoCAD .NET API 概述

        目前AutoCAD二次開發(fā)的工具比較多,如Visual Lisp、VBA和ObjectARX等。它們各存在著不同的優(yōu)缺點,Visual Lisp采用Lisp語言開發(fā),簡單但不直觀。VBA采用Visual Basic語言開發(fā),開發(fā)簡單方便但功能不足。而ObjectARX是基于Visual C++開發(fā)語言的,功能強但難以掌握[2]。

        AutoCAD .NET API使用戶可通過編程的方法利用程序集和開放庫操作AutoCAD和圖形文件。通過開放的對象,它們可被許多不同的編程語言和環(huán)境訪問。在AutoCAD中實現(xiàn).NET API具有以下優(yōu)點:

        1)有更多的編程環(huán)境可以訪問AutoCAD圖形。而之前的開發(fā)工具僅限于使用相應(yīng)的語言。如VBA只能使用Visual Basic語言。

        2)NET 框架可以為32位及64位操作系統(tǒng)進行設(shè)計,而VBA只能為32位操作系統(tǒng)設(shè)計。

        3)與那些傳統(tǒng)編程語言相比,如C++,.NET具有更低的學(xué)習(xí)要求來訪問高級接口。

        4)C#相比VC++采用了垃圾回收機制,自行判斷內(nèi)存回收的時機并實行回收,通過Dispose函數(shù)進行資源自動釋放,從而解決了內(nèi)存泄漏問題。同時VC# NET的二次編譯技術(shù)也使得其開發(fā)的程序編譯成功之后可以實現(xiàn)編譯后的程序與硬件無關(guān),從而使得程序員只是專注于程序本身,因而成為了程序員開發(fā)工具的首選。因此,在.NET框架下利用C#語言對AutoCAD進行二次開發(fā),具有完全面向?qū)ο蟆⒎奖阋子玫奶攸c,是最合適的AutoCAD二次開發(fā)工具[3]。

        2 AutoCAD中的插件開發(fā)

        在AutoCAD二次開發(fā)中,一般有兩種實現(xiàn)方式。一種是通過外部應(yīng)用程序啟動AutoCAD,并在CAD中作圖;另一種是在CAD中加載插件,利用插件來彈出我們所需的面板,在面板上輸入?yún)?shù),并可在CAD中畫出圖形。這兩種方法的實現(xiàn)方法和原理大致相同,只是實現(xiàn)的方式有所不同,在這里我們以更具普遍性和代表性的插件開發(fā)為例來進行說明[4]。

        在AutoCAD二次開發(fā)中,為了使用.NET API托管封裝的類,我們需要先引入上述的這些DLL文件。先啟動Visual studio 2008,新建一個類庫項目,然后將鼠標放在項目名稱上,鼠標右鍵單擊“引用”,然后選擇“添加引用”。在“添加引用”對話框中選擇“瀏覽”,然后找到上述的AcDbMgd.dll、AcMgd.dll、AcCui.dll文件,點擊確定將這些組建添加到項目中。此時,我們已經(jīng)將C#與.NET API連接起來了,接下來我們就可以專心進行CAD的開發(fā)了[5]。

        首先我們在AutoCAD的菜單項中,添加我們的插件菜單,這里將該菜單項命名為“法蘭”,其含有下拉子菜單。在項目添加一個類文件,添加如下代碼:

        [CommandMethod(“AddMenu”)]

        Public void AddMenu()

        {AcadApplication acadApp=Application.AcadApplication;

        AcadPopupMenuItem pm=acadApp.MenuGroups.Item(0).Menus.Add(“法蘭”);

        AcadPopupMenuItem pmi1,pmi2,pmi3,pmi4,pmi5;

        pm1=pm.AddMenuItem(pm.count+1,“板式平焊法蘭”,“Thickness”+convert.Tochar(13));//子菜單}

        通過以上代碼我們可以實現(xiàn)在C A D中添加插件菜單和去其子菜單,[CommandMethod(“AddMenu”)],可以在CAD中添加命令,如在命令行中輸入,AddMenu相當于單擊“堵板”菜單。根據(jù)我們的要求可以任意添加菜單和子菜單,最終可生成如下圖所示的形式。

        圖1 插件菜單圖

        3 AutoCAD中的面板設(shè)計與繪圖

        添加好所要求的插件菜單和其子菜單后,就可以對各個子菜單添加命令以實現(xiàn)各自不同的功能。現(xiàn)在假設(shè)當點擊子菜單后彈出的是面板形式,那么我們首先需要在項目中添加一個Windows Form窗體,并將該窗體的命令與子菜單的命令相對應(yīng),則可實現(xiàn)單擊子菜單彈出相應(yīng)的窗體。

        而面板的設(shè)計則相對的比較容易,我們可以根據(jù)Visual studio 2008集成環(huán)境中提供的各種控件如文本框、標簽、按鈕等,設(shè)計自己想要的面板。我們以法蘭為例設(shè)計一種面板,如圖2所示。

        圖2 法蘭盤面板圖

        該面板比較簡潔,左上方為DataGridView控件,主要與數(shù)據(jù)庫中的數(shù)據(jù)進行交互綁定,通過查詢等一些命令來顯示數(shù)據(jù)庫中的相關(guān)信息。左下方為TextBox控件,主要用來輸入數(shù)據(jù)下達命令。右上方為PictureBox控件,主要用來顯示預(yù)覽圖片,右下方為按鈕控件。這些按鈕控件具體實現(xiàn)什么功能,主要取決于內(nèi)部包含相應(yīng)的代碼。雙擊控件我們就可以進入該控件的編程界面,根據(jù)所實現(xiàn)的功能編寫相應(yīng)的程序。

        對AutoCAD進行二次開發(fā),主要是用來繪圖的,下面我們就來介紹一下通過面板怎樣實現(xiàn)在CAD中作圖。由上述內(nèi)容我們知道,直線、園、注釋、圖層等均為AutoCAD的對象,因此我們可以利用這些類來繪制圖形,下面以法蘭為例進行說明。設(shè)置好面板上的相關(guān)數(shù)據(jù)后,單擊作圖按鈕,則相應(yīng)圖形將顯示在CAD的繪圖界面中。法蘭圖形如圖3所示。

        4 AutoCAD與數(shù)據(jù)庫鏈接

        在工程應(yīng)用中,設(shè)計人員可能經(jīng)常需要將設(shè)計好的圖形保存下來,如果圖形太多則不方便管理,查找起來也比較困難,也不利于公司內(nèi)部進行資源交流。因此,在進行二次開發(fā)的時候?qū)utoCAD與數(shù)據(jù)庫聯(lián)系起來是很有必要的。同時,數(shù)據(jù)庫也是CAD與企業(yè)的ERP管理系統(tǒng)鏈接起來的紐帶,這樣方便企業(yè)的整體管理,可以提高管理效率。

        圖3 法蘭圖

        數(shù)據(jù)庫主要分為本地數(shù)據(jù)庫和遠程數(shù)據(jù)庫兩種。本地數(shù)據(jù)庫安裝在所使用電腦上,一般比較小,用于個人電腦上的信息存儲;遠程數(shù)據(jù)庫一般在公司的服務(wù)器上,一般來說比較大,遠程數(shù)據(jù)庫與本地數(shù)據(jù)庫通過局域網(wǎng)或因特網(wǎng)進行連接,實現(xiàn)本地與服務(wù)器之間的傳遞與下載。本文中我們以MySQL為本地數(shù)據(jù)庫,以SQL Server為遠程數(shù)據(jù)庫。由于它們之間操作方法類似,我們主要以MySQL數(shù)據(jù)庫為例進行說明。

        要想實現(xiàn)AutoCAD與MySQL的連接,必須在工程項目中引入MySQL的一個組件,即mySql.data.dll[6]。

        先在數(shù)據(jù)庫中建一個表,該表有四列型號、直徑、螺孔數(shù)、厚度。在查詢中,我們可以根據(jù)已知的某些信息查找出所有符合條件的零件。實現(xiàn)代碼如下:

        從上述代碼可以看出,其過程是先與數(shù)據(jù)庫取得連接,然后通過查詢語句返回我們所需要的信息。圖2左上角中顯示了庫存中厚度為80mm的法蘭信息。

        5 結(jié)論

        當設(shè)計好需要的插件時,便可以對程序進行編譯,最終生成一個dll文件,可以在CAD中輸入Netload命令進行加載,但顯然這種方法太繁瑣,我們更希望每次在CAD啟動時能自動加載。此時可在CAD安裝文件support中的acad2007.lsp的末尾處添加命令(COMMAND "NetLoad" "D:/Program Files/AutoCAD 2007/Support/MyMenu.dll")即可[5]。

        本文主要介紹C#與.NET API技術(shù)相結(jié)合的一種AutoCAD二次開發(fā)方法,并對其原理及實現(xiàn)各種功能的流程進行了簡要的闡明。從文中的介紹中,我們可以看到利用該方法可輕松實現(xiàn)AutoCAD的二次開發(fā),并且比較容易掌握,只需具備一定的C#基礎(chǔ)和CAD的一些基本常識便可以進行CAD的二次開發(fā),具有很好的實用價值。

        [1] 方毅.基于C#與AutoCAD的斷面圖繪制程序設(shè)計與應(yīng)用[J].地理空間信息.2012,10.10(5).

        [2] 余甚洋,謝元禮.AutoCAD平臺下坐標文件圖形化模塊C#實現(xiàn)[J].西北大學(xué)學(xué)報.2008,9.6(5).

        [3] 蔣元星.基于C#的AutoCAD二次開發(fā)技術(shù)研究及應(yīng)用[J].中國制造業(yè)信息化.2007,9.36(17).

        [4] 堯燕.基于VC#.NET對AutCAD二次開發(fā)方法的研究[J].科學(xué)技術(shù)與工程.2008,12.8(23).

        [5] 曾洪飛. AutoCAD VBA&VB.NET開發(fā)基礎(chǔ)與實例教程[M].中國電力出版社.2009.

        [6] Matthew Stucky著,金旭軍譯. MySQL:創(chuàng)建用戶接口[M].北京:人民郵電出版社.2002.

        猜你喜歡
        二次開發(fā)插件控件
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        MapWindowGIS插件機制及應(yīng)用
        基于Revit MEP的插件制作探討
        基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        火力加強再加強IE插件三劍客
        手机在线看片国产人妻| 国产精品无码专区综合网| 国产亚洲成年网址在线观看| 亚洲女同性恋第二区av| 中国杭州少妇xxxx做受| 99精品国产99久久久久久97| 国产爆乳无码一区二区在线 | 草草影院国产| 美女射精视频在线观看| 国产大屁股视频免费区| 亚洲aⅴ天堂av天堂无码麻豆| 久久国产品野战| 亚洲精品中文字幕码专区| 国产人妖乱国产精品人妖| 久久国产热这里只有精品| 乱人伦视频69| 白色月光免费观看完整版| 大肉大捧一进一出好爽视频动漫 | 91av手机在线观看| 亚洲av色在线观看网站| 丰满人妻猛进入中文字幕| 天天天天躁天天爱天天碰2018| 国产精品乱一区二区三区| 久久精品国产亚洲av蜜臀久久| 欧美亅性猛交内射| 亚洲高潮喷水无码av电影| 亚洲先锋影院一区二区| 亚洲乱码中文字幕三四区| 99精品久久精品一区二区| 精品久久久久久久久免费午夜福利| 国产av一区网址大全| 日韩中文字幕有码午夜美女| 男女爽爽无遮挡午夜视频| 国产自产c区| 亚洲高清一区二区精品| 久久久亚洲av成人网站 | 国产一区二区三区小说| 中文片内射在线视频播放| 精品人妻大屁股白浆无码| 粗了大了 整进去好爽视频 | 狠狠躁18三区二区一区|