999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于.NET API的CAD二次開發技術在工程中的應用

2013-10-17 13:28:40李志超余杉鈺張彩云
制造業自動化 2013年15期
關鍵詞:二次開發數據庫設計

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

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

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

0 引言

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

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

1 AutoCAD .NET API 概述

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

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

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

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

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

4)C#相比VC++采用了垃圾回收機制,自行判斷內存回收的時機并實行回收,通過Dispose函數進行資源自動釋放,從而解決了內存泄漏問題。同時VC# NET的二次編譯技術也使得其開發的程序編譯成功之后可以實現編譯后的程序與硬件無關,從而使得程序員只是專注于程序本身,因而成為了程序員開發工具的首選。因此,在.NET框架下利用C#語言對AutoCAD進行二次開發,具有完全面向對象、方便易用的特點,是最合適的AutoCAD二次開發工具[3]。

2 AutoCAD中的插件開發

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

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

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

圖1 插件菜單圖

3 AutoCAD中的面板設計與繪圖

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

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

圖2 法蘭盤面板圖

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

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

4 AutoCAD與數據庫鏈接

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

圖3 法蘭圖

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

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

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

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

5 結論

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

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

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

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

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

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

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

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

猜你喜歡
二次開發數據庫設計
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
西門子Easy Screen對倒棱機床界面二次開發
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: swag国产精品| 91精品专区| 午夜限制老子影院888| 国模私拍一区二区| 亚洲精品成人7777在线观看| yjizz视频最新网站在线| 天天爽免费视频| 日韩精品免费一线在线观看| 热久久这里是精品6免费观看| 丁香六月激情综合| 91免费在线看| 97精品国产高清久久久久蜜芽| 综合色区亚洲熟妇在线| 亚洲成人一区二区三区| 在线不卡免费视频| 国产精品黄色片| 毛片卡一卡二| 亚洲欧美色中文字幕| 狠狠v日韩v欧美v| 亚洲精品桃花岛av在线| 国产午夜福利亚洲第一| 青青草原国产av福利网站| 亚洲欧美日韩久久精品| 日韩大片免费观看视频播放| 久久人搡人人玩人妻精品| 亚洲国产天堂久久综合226114| 丰满的少妇人妻无码区| 国产欧美性爱网| 中国特黄美女一级视频| 综合成人国产| 国产毛片片精品天天看视频| 国产精品成人久久| 成人一级黄色毛片| 亚洲an第二区国产精品| 日韩毛片视频| 国产区精品高清在线观看| 国产青青草视频| 欧美国产日韩在线观看| 国产精品区网红主播在线观看| 欧美视频在线播放观看免费福利资源| 亚洲91在线精品| 亚洲婷婷丁香| 中文字幕无码制服中字| 国产成人1024精品| 欧美一区二区三区香蕉视 | 国产精品蜜芽在线观看| 久久国产毛片| 天堂在线视频精品| 午夜丁香婷婷| 丁香综合在线| 欧美五月婷婷| 中文字幕在线看| 亚洲精品午夜天堂网页| 亚洲啪啪网| AⅤ色综合久久天堂AV色综合 | 欧美19综合中文字幕| 日韩午夜伦| 美女被操91视频| 亚洲色图欧美一区| 男女男精品视频| 免费a级毛片18以上观看精品| 亚洲欧美一级一级a| 亚洲欧美激情小说另类| A级毛片高清免费视频就| 国产一区二区三区夜色| 99久久精品免费看国产电影| 美女视频黄又黄又免费高清| 国产精品无码久久久久AV| 日韩乱码免费一区二区三区| 伊人成色综合网| 欧美一级高清免费a| 91精品国产91久久久久久三级| 国产精品自拍露脸视频| 国产日韩欧美精品区性色| 日韩二区三区无| 日韩av手机在线| 国产成人高清在线精品| 伊人丁香五月天久久综合 | 性做久久久久久久免费看| 国产精品久久久久久久久| 一本二本三本不卡无码| 国产色网站|