• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2017-03-15 12:04:38胡小林
      造船技術(shù) 2017年1期
      關(guān)鍵詞:毛坯二次開發(fā)校核

      胡小林

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

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

      胡小林

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

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

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

      0 引言

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

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

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

      1 AutoCAD .NET API簡介

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

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

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

      (1) 提供了全新的編程環(huá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)編程語言(如 C++)相比,.NET API可以讓開發(fā)人員以較低的學(xué)習(xí)成本實(shí)現(xiàn)高級接口訪問。

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

      圖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é)果

      對于沒有螺紋的零件,有時(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 & "請指定插入點(diǎn):"

      pPtRes = acDocDL.Editor.GetPoint(pPtOpts)

      Dim ptInsertPt As Point3d = pPtRes.Value

      If pPtRes.Status = PromptStatus.Cancel Then Exit Sub

      '++++++繪圖開始++++++

      '' ''螺母中心線

      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í)體圖,并自動(dòng)獲得零件計(jì)算重量。

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

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

      2.5 繪制毛坯圖

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

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

      [1] 李志超,余杉鈺,章波,等.基于.NET API的CAD二次開發(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二次開發(fā)[M].北京:中國建筑工業(yè)出版社, 2012.

      [4] 曾洪飛,盧擇臨,張帆. AutoCAD VBA & VB.NET開發(fā)基礎(chǔ)與實(shí)例教程[M].2版.北京:中國電力出版社, 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-),男,高級工程師,主要研究方向?yàn)榇拜啓C(jī)設(shè)計(jì)研究。

      1000-3878(2017)01-0089-04

      TH122

      A

      猜你喜歡
      毛坯二次開發(fā)校核
      發(fā)電機(jī)進(jìn)相試驗(yàn)失磁保護(hù)與低勵(lì)限制配合關(guān)系的校核
      熱鍛狀態(tài)鋁合金鍛件毛坯的優(yōu)化方法
      鋁加工(2020年3期)2020-12-13 18:38:03
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      通行費(fèi)校核分析方法探究
      基于機(jī)器視覺的毛坯件磨削軌跡識別研究
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      基于最短路徑的杠桿毛坯尺寸設(shè)計(jì)
      基于路徑圖的平面毛坯尺寸基準(zhǔn)的研究
      西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
      基于Mathematica的失磁保護(hù)與低勵(lì)限制配合的校核
      澄城县| 临邑县| 长沙市| 沙河市| 罗山县| 岑溪市| 泸定县| 静宁县| 华坪县| 三原县| 仁化县| 乐昌市| 北川| 三亚市| 务川| 江北区| 资中县| 砚山县| 太保市| 政和县| 仲巴县| 昌邑市| 金坛市| 临澧县| 修文县| 乌兰察布市| 汝城县| 长治市| 泾源县| 乌恰县| 绿春县| 浙江省| 镶黄旗| 青海省| 泸定县| 太谷县| 东乡族自治县| 曲松县| 娄底市| 隆子县| 河西区|