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

基于C#的AutoCAD二次開發技術在聯軸器參數化繪圖中的應用

2017-12-07 12:36:44侯杰
數字技術與應用 2017年9期
關鍵詞:二次開發

侯杰

摘要:目前機械設計行業聯軸器型號各異,尺寸不同,導致在變更設計時帶來重復性勞動,使得設計周期長,效率低。通過在VS2010環境中應用C#對AutoCAD二次開發,實現參數化繪制聯軸器平面圖,為從事聯軸器設計相關人員提供方便,節省幾何建模時間。本文以GYS4型有對中榫凸緣聯軸器為例,聯合COM接口和.NET接口進行混合編程設計,最終實現了自動生成符合選擇預定參數的聯軸器平面圖。

關鍵詞:二次開發;AutoCAD;聯軸器

中圖分類號:TP391.72 文獻標識碼:A 文章編號:1007-9416(2017)09-0084-02

傳統繪圖中的某一圖元對象幾何尺寸修改導致此對象的相關圖元幾何參數都需要修改。聯軸器作為系列產品之一,同一類型聯軸器除了尺寸大小不同外,結構形狀均一致。若對系列產品采用傳統的交互式制圖,導致設計人員工作量繁多,開發周期長。為解決上述問題,本文開發了基于C#實現AutoCAD二次開發的參數化繪圖功能。應用參數化思想設計了內嵌于AutoCAD中的交互界面,并以GYS4型有對中榫凸緣聯軸器為例,根據圖元類型,結合其圖層,線型等屬性編寫函數程序。該程序能夠自動生成符合選擇預定參數的聯軸器平面圖,簡化了聯軸器圖繪制過程,縮短了設計周期。

1 對AutoCAD二次開發的概述

利用C#對AutoCAD二次開發是基于ActiveX Automation接口自動化對象模型和C#的結合,用戶能夠從 AutoCAD內部或外部以編程方式來操作AutoCAD,通過將其對象顯示到“外部世界”,被顯示的對象可由許多不同的編程語言和環境以及其他應用程序訪問,通過控制這些對象的屬性,方法從而實現對AutoCAD的程序化操作[1]。

1.1 Visual Studio 2010開發環境配置

在利用ActiveX Automation(COM)接口對AutoCAD 開發之前,要在VS2010中引用AutoCAD對象庫。實施步驟:1.啟動VS,新建項目。2.在解決方案資源管理器中添加引用“AutoCAD 2010 Type Libray”和“acax18enu.tle”兩個DLL。

1.2 C#與AutoCAD軟件的連接

在VS2010開發環境下C#與AutoCAD的連接方法為:先將程序集和命名空間添加到程序;然后編寫啟動AutoCAD對象函數,在程序啟動代碼時調用該函數,實現程序與AutoCAD軟件的連接。代碼示例如下:

private void 啟動CAD()

{

AcadApplication AcadApp = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");

AcadDocument AcadDocc = AcadApp.ActiveDocument;

}

2 聯軸器參數化繪圖程序設計思路

聯軸器參數化繪圖的整體思路是:在對聯軸器零件外形尺寸參數化基礎上將其平面圖創建所關聯的圖元對象的參數關系對應到程序中各個圖元對象,程序執行時,通過用戶在界面輸入不同的參數,使這些參數與程序中的各個圖元對象的屬性、方法中的參數對應,然后根據零件類別驅動生成相應的圖形。

3 聯軸器參數化繪圖具體設計實例

3.1 參數界面設計

用戶自定義窗體界面是直接呈現于設計者面前的部分,是計算機編程語言變成直觀操作界面,并與用戶形成良好交流的媒介[2]。通過VS平臺在新建的類庫中添加“Windows窗體”,設計者創建交互界面。將自定義窗體界面嵌入AutoCAD可采用.NET平臺開發非模態對話框。作為活動焦點對話框,程序焦點可以在窗體界面和AutoCAD界面之間自由切換。定義的Class1類中部分代碼為:

[CommandMethod("coupler")]

public void Dialog()

{

MyForm form= new MyForm (); //彈出自定義窗體界面

form.ShowInTaskbar = false;

Autodesk.AutoCAD.ApplicationServices.Application.Dialog(form);

}

3.2 聯軸器二維圖的參數化創建

3.2.1 聯軸器基本參數的確定

GYS4 型有對中榫凸緣聯軸器軸孔長度L有62,82mm,分別對應的軸孔直徑d1,d2有25,28,30和,32,35mm。以變量L為例,代碼中表示為:

Public int L;

根據圖1對程序中軸頸常量D屬性返回常量105,

Public int D { get{ return 105;}}

同理對常量D1、b、b1、S、w賦值55、32、48、6、2。

3.2.2 基本圖元對象的繪制

基本圖元對象繪制是對AcadModelSpace數據庫中的圖元對象本身包含的方法和屬性進行操作,完成直線,圓等創建,并繪制出聯軸器的平面圖。在繪制基本圖形之前,先創建圖紙相關圖層,設置其線型,線寬。以本聯軸器主視圖中心線所在圖層為例,列舉部分代碼如下

AcadLayer Layer1= AcadDoc.Layers.Add(dianhuaxian);

string linetype= "CENTER";endprint

string file = "acad.lin";

AcadDoc.Linetypes.Load(linetype, file);

AcadDoc.ActiveLayer =Layer1 ;

AcadDoc.ActiveLayer.Linetype = "ACAD_IS004W100";

AcadDoc.ActiveLayer.Lineweight=ACAD_LWEIGHT.acLnWt020;

對于圓對象使用AddCircle(Center, Radius)方法完成創建,Center為圓心位置,Radius為半徑。以本聯軸器的左視圖外圓的D創建為例,其中圖層和線型,線寬設置與直線創建類似。

左視圖正六邊形螺栓六角頭,其均勻分布在圓周,通過創建輕量多線段AddLightWeightPolyline()方法完成正六邊形的繪制,然后使用ArrayPolar(Number, AngleToFill, Point)方法創建環形陣列,其中Number為環形陣列中所要創建的對象數量,AngleToFill為填充角度,Point為指定環形陣列的中心點的坐標。部分代碼為:

object boltArray = lw.ArrayPolar(6, 2 * Math.PI, CenterOfCircl)

繪制剖面線對象采用AddHatch()方法,AppendOuterLoop (outerLoop)。前者方法為需要繪制剖面線的區域添加圖案填充,后者是向圖案填充中附加外邊界,其中outerLoop為構成封閉邊界的對象數組。

3.3 程序的封裝

在完成聯軸器圖形程序設計后,需要將編譯好的程序封裝,通過修改注冊表信息HKEY_LOCAL_MACHINE下的AutoCAD相應版本下的Application項中創建一個新項并在里面新建相應的鍵值以完成自動加載開發的DLL程序庫[3]。其中新建的四個鍵值分別為:(1)"DESCRIPTION"(應用程序描述);(2)"LOADCTRLS"(控制程序隨CAD加載方式,其值為e);(3) "LOADER"(應用程序的路徑);(4)"MANAGED"(程序形式,其值為1,告訴CAD這是托管程序)。設置成功后,在每次啟動AutoCAD 2010時會自動加載在注冊表中設置的DLL,用戶要實現聯軸器圖形的繪制只需在AutoCAD的命令行中鍵入程序編寫時CommandMethod屬性的值。

通過實例來驗證程序的可靠性。啟動AutoCAD 2010,在命令行鍵入“coupler”,設置彈出的參數選擇對話框軸孔直徑25mm,軸孔長度82mm,點擊“繪制圖形”后在圖紙上自動生成聯軸器圖形見圖2。

4 結論與展望

本文提出的基于C#的AutoCAD二次開發技術在聯軸器參數化繪圖中的應用實現了同一型號不同參數的聯軸器平面圖智能繪制,這種參數化繪圖方法只需選定尺寸參數,就可在該程序驅動下自動完成圖形的繪制,大大減少了設計人員重復性操作,使其更專注于設計工作,從而提高工作效率。同時也豐富了AutoCAD原有功能,同時對于完整的聯軸器標準庫建立具有很高的參考價值。

參考文獻

[1]王若惠.基于VBA的 AutoCAD 二次開發及應用實例[J].計算機應用,2007,26(9):30-33.

[2]趙玄子.基于.NET的AutoCAD二次開發—聯軸器標準庫的建設[D].電子科技大學,2015.

[3]李冠億.深入淺出AutoCAD.NET二次開發[M].北京:中國建筑工業出版社,2012.endprint

猜你喜歡
二次開發
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構件庫二次開發
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對倒棱機床界面二次開發
基于全站儀二次開發的覆冰厚度測量與實現
電測與儀表(2016年9期)2016-04-12 00:29:52
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發在變壓器抗短路性能分析中的應用
基于CATIA的橡皮囊成形毛料展開的二次開發
機械工程師(2015年9期)2015-02-26 08:38:10
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 国产91高跟丝袜| 国产成人8x视频一区二区| 精品视频在线一区| 国产手机在线ΑⅤ片无码观看| 欧美精品另类| 国产麻豆aⅴ精品无码| 国产色爱av资源综合区| 国产www网站| 精品日韩亚洲欧美高清a| 国产一区二区三区免费| 国产亚洲成AⅤ人片在线观看| 国产一在线观看| 亚洲天堂色色人体| 午夜福利免费视频| 91久久天天躁狠狠躁夜夜| 国产呦精品一区二区三区下载| 亚洲精品爱草草视频在线| 国产综合色在线视频播放线视| 亚洲日韩精品欧美中文字幕| 又粗又大又爽又紧免费视频| 国产一区二区三区在线观看视频| 久久精品人人做人人爽电影蜜月| 国产精选小视频在线观看| 欧美.成人.综合在线| 怡红院美国分院一区二区| 狠狠色成人综合首页| 在线欧美日韩国产| 日本高清在线看免费观看| 一本视频精品中文字幕| 色综合成人| 成人噜噜噜视频在线观看| 欧美黄网在线| 久久久精品久久久久三级| 广东一级毛片| 欧美有码在线| 亚洲日本中文综合在线| 国产毛片高清一级国语| 日本三区视频| 女人18毛片一级毛片在线 | 欧美精品在线看| 高清免费毛片| 看看一级毛片| 91精品国产一区自在线拍| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲不卡av中文在线| www亚洲天堂| 国产亚洲视频在线观看| 青青草a国产免费观看| 亚洲第一天堂无码专区| 老司机午夜精品网站在线观看| 欧美精品色视频| 999国产精品永久免费视频精品久久| 国产真实二区一区在线亚洲| 999国产精品永久免费视频精品久久 | 国产成人精品2021欧美日韩 | 中文纯内无码H| 国产精品第一区在线观看| 国产靠逼视频| 人妻丰满熟妇啪啪| 国产色伊人| 国产亚洲视频免费播放| 亚洲日本韩在线观看| 欧洲欧美人成免费全部视频| 亚洲天堂777| 国产日韩AV高潮在线| 国产黄色免费看| 久久精品波多野结衣| 国产精品视频白浆免费视频| 一本二本三本不卡无码| 国产麻豆精品手机在线观看| 日韩区欧美区| 午夜成人在线视频| 国产va在线观看| 丁香六月激情综合| 99久久亚洲综合精品TS| 91精品国产91久无码网站| 日本午夜影院| 日本a级免费| 国产欧美日本在线观看| 亚洲日韩精品综合在线一区二区| 又爽又黄又无遮挡网站| 欧美不卡视频在线观看|