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

AutoCAD .NET API在機(jī)械零件標(biāo)準(zhǔn)化設(shè)計(jì)中的應(yīng)用

2017-03-15 12:04:38胡小林
造船技術(shù) 2017年1期
關(guān)鍵詞:二次開(kāi)發(fā)按鈕界面

胡小林

(中國(guó)船舶與海洋工程設(shè)計(jì)研究院, 上海 200011)

AutoCAD .NET API在機(jī)械零件標(biāo)準(zhǔn)化設(shè)計(jì)中的應(yīng)用

胡小林

(中國(guó)船舶與海洋工程設(shè)計(jì)研究院, 上海 200011)

簡(jiǎn)要介紹AutoCAD二次開(kāi)發(fā)的主流工具和特點(diǎn)以及最新的AutoCAD二次開(kāi)發(fā)工具.NET API的優(yōu)勢(shì)。針對(duì)機(jī)械零件設(shè)計(jì)過(guò)程中的計(jì)算、文件編制等方面,通過(guò)使用.NET API開(kāi)發(fā)的相應(yīng)功能,顯著減少重復(fù)操作次數(shù),提高設(shè)計(jì)效率,消除文件編制過(guò)程中的差錯(cuò)。

AutoCAD;.NET API;二次開(kāi)發(fā);機(jī)械零件;標(biāo)準(zhǔn)化設(shè)計(jì)

0 引言

目前,機(jī)械領(lǐng)域許多零件設(shè)計(jì)采用的設(shè)計(jì)工具以AutoCAD軟件為主。在實(shí)際設(shè)計(jì)過(guò)程中,有許多零件都是成型的設(shè)計(jì),每次設(shè)計(jì)任務(wù)根據(jù)具體的項(xiàng)目調(diào)整結(jié)構(gòu)尺寸、計(jì)算、繪制送審圖紙、繪制坯件訂貨圖、下發(fā)施工圖、編制工藝卡、打印檢驗(yàn)單、匯編完工圖等。在設(shè)計(jì)過(guò)程中,設(shè)計(jì)人員往往是在已有項(xiàng)目文件的基礎(chǔ)上進(jìn)行修改,然后形成新的項(xiàng)目文件。在文件的形成過(guò)程中,一方面,設(shè)計(jì)人員需要花時(shí)間繪圖并確認(rèn)圖紙中的所有數(shù)據(jù)都已經(jīng)更改到位,另一方面,校對(duì)及審核人員也需要逐個(gè)確認(rèn)數(shù)據(jù),以確保每一個(gè)數(shù)據(jù)的準(zhǔn)確性。盡管如此,偶爾仍有疏漏或筆誤在生產(chǎn)時(shí)被發(fā)現(xiàn),甚至因?yàn)槲窗l(fā)現(xiàn)錯(cuò)誤而產(chǎn)生廢品。為此,在AutoCAD軟件的基礎(chǔ)上開(kāi)發(fā)出一套既能節(jié)省設(shè)繪時(shí)間,又能確保數(shù)據(jù)準(zhǔn)確且無(wú)筆誤的設(shè)計(jì)工具就顯得尤為必要了。

Autodesk公司提供了多種編程接口用于AutoCAD的二次開(kāi)發(fā),設(shè)計(jì)人員可以根據(jù)設(shè)計(jì)項(xiàng)目的需求和自身的編程能力,選擇最合適的編程語(yǔ)言,進(jìn)行 AutoCAD二次開(kāi)發(fā)。這樣開(kāi)發(fā)出的軟件功能界面完善,既可完成設(shè)計(jì)過(guò)程中大量的重復(fù)或類似操作,同時(shí)也顯著減少了發(fā)生差錯(cuò)的概率。

本文主要以船舶軸系聯(lián)軸節(jié)法蘭液壓螺栓組中的螺母為例,簡(jiǎn)要介紹一下通過(guò)使用.NET API工具對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā)的情況,一方面節(jié)省了設(shè)計(jì)時(shí)間,另一方面也保證了質(zhì)量。

1 AutoCAD .NET API簡(jiǎn)介

目前,AutoCAD提供的二次開(kāi)發(fā)工具有VisualLISP,VBA,ObjectARX以及.NET API等。VisualLISP語(yǔ)言是具備面向?qū)ο蠊δ艿木幊陶Z(yǔ)言,學(xué)習(xí)成本低,但不直觀;VBA(Visual Basic for Applications)應(yīng)用范圍廣,是大眾化的編程語(yǔ)言,在開(kāi)發(fā)功能方面略有不足; ObjectARX以C++編程語(yǔ)言為基礎(chǔ),其代碼與AutoCAD在同一內(nèi)存地址上運(yùn)行,占用系統(tǒng)資源少,運(yùn)行速度快,功能雖然強(qiáng)大但學(xué)習(xí)成本太高[1]。

Autodesk公司自AutoCAD 2006版開(kāi)始,在原有開(kāi)發(fā)工具的基礎(chǔ)上又增加了一種新的開(kāi)發(fā)方式——.NET API。.NET API為開(kāi)發(fā)人員提供了大量的托管封裝類,開(kāi)發(fā)人員可以使用任何.NET支持的程序設(shè)計(jì)語(yǔ)言(如VC++,C#,VB等)編程訪問(wèn)程序集或者開(kāi)放類庫(kù),用以操作AutoCAD和圖形文件。

開(kāi)發(fā)人員使用.NET API工具開(kāi)發(fā)AutoCAD有如下優(yōu)點(diǎn):

(1) 提供了全新的編程環(huán)境用以訪問(wèn)AutoCAD圖形。

(2) 與其他Windows?應(yīng)用程序(例如 Microsoft Word,Microsoft Excel等)的結(jié)合比以往更加容易。

(3) .NET框架同時(shí)為32位和64位操作系統(tǒng)設(shè)計(jì),而VBA只用于基于32位操作系統(tǒng)的設(shè)計(jì)。

(4) 與傳統(tǒng)編程語(yǔ)言(如 C++)相比,.NET API可以讓開(kāi)發(fā)人員以較低的學(xué)習(xí)成本實(shí)現(xiàn)高級(jí)接口訪問(wèn)。

目前,AutoCAD較新的幾種版本已經(jīng)不再內(nèi)置VBA,需要額外安裝,而且,操作系統(tǒng)也逐漸向64位過(guò)渡成為主流操作系統(tǒng)。鑒于此,本次采用.NET API進(jìn)行二次開(kāi)發(fā)。

2 程序主要功能

程序的主界面如圖1所示,包括數(shù)據(jù)輸入界面和若干操作按鈕,按鈕具體功能在下文詳細(xì)敘述。

2.1 調(diào)整結(jié)構(gòu)尺寸

主界面中有零件的標(biāo)準(zhǔn)樣圖,在按項(xiàng)目需要調(diào)整的參數(shù)旁邊都有數(shù)據(jù)輸入框。除了結(jié)構(gòu)尺寸外,形位公差、粗糙度都可以調(diào)整。每個(gè)輸入框都設(shè)置為紅色背景,有調(diào)整就會(huì)自動(dòng)變成綠色,表示這個(gè)參數(shù)被調(diào)整過(guò)。

圖1 程序主界面

2.2 計(jì)算

本次作為示例的螺母需要的計(jì)算僅僅是螺紋強(qiáng)度校核,在主界面按下“強(qiáng)度校核”按鈕,在載荷輸入框中輸入載荷后就可以獲得螺紋強(qiáng)度校核計(jì)算的結(jié)果,在結(jié)果界面,點(diǎn)擊“確定”按鈕直接生成《螺紋強(qiáng)度校核計(jì)算報(bào)告》并返回主界面;點(diǎn)擊“取消”按鈕直接返回主界面。螺紋強(qiáng)度校核計(jì)算的結(jié)果如圖2所示。

圖2 螺紋強(qiáng)度校核計(jì)算結(jié)果

對(duì)于沒(méi)有螺紋的零件,有時(shí)候需要進(jìn)行應(yīng)力分析,將“強(qiáng)度校核”按鈕改為“導(dǎo)出交換數(shù)據(jù)”,可以將零件相應(yīng)的數(shù)據(jù)導(dǎo)出給其他軟件進(jìn)行應(yīng)力分析。

以與AutoCAD同一家族的Inventor為例,在Inventor中創(chuàng)建二維草圖,定義好相應(yīng)的約束,并在“fx參數(shù)”中定義必須的尺寸關(guān)系,生成正確的實(shí)體后在“fx參數(shù)”中導(dǎo)出XML文件。程序中“導(dǎo)出交換數(shù)據(jù)”功能將參數(shù)寫入該XML文件,在Inventor中以前面生成的零件圖為模板,在“fx參數(shù)”中導(dǎo)入該XML文件,Inventor會(huì)自動(dòng)按尺寸更新實(shí)體,然后就可以使用其“應(yīng)力分析”功能了(同一個(gè)裝配圖的多個(gè)零件可同樣處理)。此處僅以船舶軸系聯(lián)軸節(jié)法蘭液壓螺栓組中錐套為例列出其應(yīng)力分析圖,如圖3所示。

圖3 錐套Mises等效應(yīng)力

2.3 繪圖

主要參數(shù)確定后,點(diǎn)擊“繪圖”按鈕,程序會(huì)自動(dòng)在當(dāng)前AutoCAD模型空間中按1∶1的比例自動(dòng)按所輸入的參數(shù)繪圖(其他比例的剖面圖同理)。部分代碼如下(其他處的代碼略):

Private Sub btnDraw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDraw.Click

InitLayers() '初始化圖層

NewTextStyle() '新建文字樣式

NewDimStyle() '新建標(biāo)注樣式

Dim dblStartPt(2), dblEndPt(2) As Double

Dim acDocDL As Document = Application.DocumentManager.MdiActiveDocument

Dim pPtRes As PromptPointResult

Dim pPtOpts As PromptPointOptions = New PromptPointOptions("")

pPtOpts.Message = vbLf & "請(qǐng)指定插入點(diǎn):"

pPtRes = acDocDL.Editor.GetPoint(pPtOpts)

Dim ptInsertPt As Point3d = pPtRes.Value

If pPtRes.Status = PromptStatus.Cancel Then Exit Sub

'++++++繪圖開(kāi)始++++++

'' ''螺母中心線

Dim acLineCen As Line

dblStartPt(0) = ptInsertPt(0) + 5 : dblStartPt(1) = ptInsertPt(1) : dblStartPt(2) = ptInsertPt(2)

dblEndPt(0) = ptInsertPt(0) - tbWidth.Text - 10 : dblEndPt(1) = ptInsertPt(1) : dblEndPt(2) = ptInsertPt(2)

acLineCen = acDrawLine(New Point3d(dblStartPt(0), dblStartPt(1), dblStartPt(2)), _

New Point3d(dblEndPt(0), dblEndPt(1), dblEndPt(2)), "CENTER", , 20)

……

MsgBox("繪圖結(jié)束!", MsgBoxStyle.OkOnly, "螺母繪圖")

End Sub

……

''畫直線

Public Function acDrawLine(ByVal ptStartPt As Point3d, ByVal ptEndPt As Point3d, _

ByVal strLayer As String, Optional ByVal strLineType As String = _

"ByLayer", Optional ByVal dblLineTypeSc As Double = 1) As Line

Dim acDocDL As Document = Application.DocumentManager.MdiActiveDocument

Dim acCurDbDL As Database = acDocDL.Database

Using acTransDL As Transaction = acCurDbDL.TransactionManager.StartTransaction()

Dim acBlkTblDL As BlockTable

acBlkTblDL = acTransDL.GetObject(acCurDbDL.BlockTableId, OpenMode.ForRead)

Dim acBlkTblRec As BlockTableRecord

acBlkTblRec = acTransDL.GetObject(acBlkTblDL(BlockTableRecord.ModelSpace), _

OpenMode.ForWrite)

Dim acLineDL As Line = New Line(ptStartPt, ptEndPt)

acLineDL.SetDatabaseDefaults()

acLineDL.Layer = strLayer

If strLineType <> "" Then acLineDL.Linetype = strLineType

If dblLineTypeSc <> 0 Then acLineDL.LinetypeScale = dblLineTypeSc

acBlkTblRec.AppendEntity(acLineDL)

acTransDL.AddNewlyCreatedDBObject(acLineDL, True)

acTransDL.Commit()

acDrawLine = acLineDL

End Using

End Function

……

程序不僅直接繪制二維平面圖,還另外提供了與用戶指定文件名帶“-3D”標(biāo)識(shí)的三維實(shí)體圖,并自動(dòng)獲得零件計(jì)算重量。

2.4 讀寫數(shù)據(jù)庫(kù)

參數(shù)定型后,所有的參數(shù)可以存入數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的類型很多,開(kāi)發(fā)人員可以根據(jù)自己公司的實(shí)際情況選用合適的數(shù)據(jù)庫(kù)類型。本程序選擇了最簡(jiǎn)單的Access數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā)。數(shù)據(jù)庫(kù)中不僅保存了零件參數(shù),還保存了項(xiàng)目信息,用戶隨時(shí)可以點(diǎn)擊“讀數(shù)據(jù)庫(kù)”按鈕,選擇指定項(xiàng)目的螺母,程序會(huì)自動(dòng)將數(shù)據(jù)輸入主界面文本框。

2.5 繪制毛坯圖

圖紙經(jīng)業(yè)主和/或第三方審查通過(guò)后就可以下毛坯采購(gòu)單了,點(diǎn)擊“繪制毛坯圖”,用戶在彈出界面輸入相應(yīng)的加工余量——若缺省值滿足要求可不做任何更改,程序會(huì)自動(dòng)繪制采購(gòu)所需的毛坯圖,而且還提供了毛坯的計(jì)算重量。

2.6 生成工藝卡

毛坯到貨以后,設(shè)計(jì)人員需要根據(jù)毛坯圖和施工圖編制零件的加工工藝卡。通常,一個(gè)單位同類零件的加工工藝一般是不會(huì)變的,因此,設(shè)計(jì)人員都是直接在已有項(xiàng)目加工工藝卡的基礎(chǔ)上更改相關(guān)參數(shù)即可。程序會(huì)按照預(yù)先設(shè)定的工序及每道工序的加工量自動(dòng)生成加工工藝卡,如圖4所示。單位如果發(fā)生技改,只需在程序內(nèi)部調(diào)整一下即可。

圖4 加工工藝卡

2.7 生成檢驗(yàn)單

零件加工為成品后,單位質(zhì)檢部門的質(zhì)檢人員需要按零件檢驗(yàn)單中的項(xiàng)目逐個(gè)檢查零件的主要參數(shù)。點(diǎn)擊程序主界面上的“生成檢驗(yàn)單”按鈕,程序會(huì)自動(dòng)生成當(dāng)前零件的檢驗(yàn)單供質(zhì)檢人員使用。

3 結(jié)束語(yǔ)

通過(guò).NET API工具針對(duì)機(jī)械零件設(shè)計(jì)標(biāo)準(zhǔn)化進(jìn)行的AutoCAD二次開(kāi)發(fā),顯著減少了設(shè)計(jì)人員類似或重復(fù)的操作,使設(shè)計(jì)人員的設(shè)計(jì)效率顯著提高,同時(shí)也消除了設(shè)計(jì)人員在各種文件編制過(guò)程中的差錯(cuò)。希望本文提到的機(jī)械零件設(shè)計(jì)標(biāo)準(zhǔn)化的方法能起到一定拋磚引玉的作用。

[1] 李志超,余杉鈺,章波,等.基于.NET API的CAD二次開(kāi)發(fā)技術(shù)在工程中的應(yīng)用[J].制造業(yè)自動(dòng)化, 2013(15):122-124.

[2] 胡小林,於黃萍. AutoCAD.NET API在管系原理圖設(shè)繪中的應(yīng)用[J].船舶與海洋工程, 2016(1):45-50.

[3] 李冠億.深入淺出AutoCAD.NET二次開(kāi)發(fā)[M].北京:中國(guó)建筑工業(yè)出版社, 2012.

[4] 曾洪飛,盧擇臨,張帆. AutoCAD VBA & VB.NET開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].2版.北京:中國(guó)電力出版社, 2013.

Application for AutoCAD .NET API in Standardized Design of Mechanical Part

HU Xiaolin

(Marine Design & Research Institute of China, Shanghai 200011, China)

The tools for application development of AuotCAD and their characters are introduced simply. The superiority of the latest developing tool.NET API is also introduced. During machinery part design, designer should carry out many operations, such as calculating, relative file compiling and so on. It pays more attention to describe the functions developed by .NET API aimed at these operations. These functions reduce repetitive operations widely, enhance the design effectiveness and eliminate the errors occurred during file compiling.

AutoCAD; .NET API; application development; machinery part; standardized design

胡小林(1977-),男,高級(jí)工程師,主要研究方向?yàn)榇拜啓C(jī)設(shè)計(jì)研究。

1000-3878(2017)01-0089-04

TH122

A

猜你喜歡
二次開(kāi)發(fā)按鈕界面
這些按鈕能隨便按嗎?
當(dāng)你面前有個(gè)按鈕
國(guó)企黨委前置研究的“四個(gè)界面”
淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開(kāi)發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
西門子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
人機(jī)交互界面發(fā)展趨勢(shì)研究
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
內(nèi)心不能碰的按鈕
主站蜘蛛池模板: 九九免费观看全部免费视频| 四虎综合网| 中文字幕久久亚洲一区| 99re在线观看视频| 曰韩免费无码AV一区二区| 免费福利视频网站| 五月天综合婷婷| 国产激爽大片在线播放| AV片亚洲国产男人的天堂| 三上悠亚一区二区| 国产免费人成视频网| 精品日韩亚洲欧美高清a| 日韩视频精品在线| 中文国产成人久久精品小说| 91久久大香线蕉| 亚洲首页国产精品丝袜| 国产午夜无码专区喷水| 精品国产网| 人妻一本久道久久综合久久鬼色| 亚洲第一视频免费在线| 成人福利在线视频| 欧美一级黄片一区2区| 亚洲日韩高清在线亚洲专区| 国产91视频免费| 日本少妇又色又爽又高潮| 国产一区二区网站| 成年人福利视频| 天天干天天色综合网| 国产日韩欧美成人| 国产又色又爽又黄| 中文字幕波多野不卡一区| 国产一区二区色淫影院| 永久在线精品免费视频观看| 免费人成在线观看成人片| 美女高潮全身流白浆福利区| 成人毛片在线播放| 欧美成人亚洲综合精品欧美激情| 亚洲美女高潮久久久久久久| 精品视频一区在线观看| 激情综合图区| 国产精品刺激对白在线| 亚洲天堂网2014| 国产精品免费久久久久影院无码| 国产成本人片免费a∨短片| 亚洲另类第一页| 亚洲无码高清一区二区| 亚洲欧洲日本在线| 国产在线精品99一区不卡| 欧美色99| 久久综合亚洲鲁鲁九月天| 精品久久人人爽人人玩人人妻| 中文字幕 91| 亚洲性色永久网址| 亚洲成人免费在线| 国产在线观看99| 丰满人妻一区二区三区视频| 国产呦精品一区二区三区下载 | AV无码一区二区三区四区| 亚洲av片在线免费观看| 精品国产欧美精品v| 日本福利视频网站| 女人av社区男人的天堂| 日本午夜精品一本在线观看| 在线欧美日韩国产| 免费国产不卡午夜福在线观看| 亚欧美国产综合| 国产亚洲精品在天天在线麻豆| 青青草原国产免费av观看| 日本伊人色综合网| 国模视频一区二区| 国产浮力第一页永久地址| 奇米精品一区二区三区在线观看| 久青草网站| 亚洲AV人人澡人人双人| AⅤ色综合久久天堂AV色综合| 成人在线亚洲| 国产亚洲欧美在线中文bt天堂| 国产在线精彩视频二区| 91黄色在线观看| 制服丝袜国产精品| 亚洲成人精品| 狠狠做深爱婷婷综合一区|