国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

工藝尺寸鏈求解的AutoCAD C#二次開(kāi)發(fā)

2021-10-20 12:18陳光霞
湖北農(nóng)機(jī)化 2021年18期
關(guān)鍵詞:界線(xiàn)公差二次開(kāi)發(fā)

陳光霞

(江漢大學(xué)智能制造學(xué)院,湖北 武漢 430056)

0 前言

在設(shè)計(jì)、制造、裝配機(jī)械零部件的過(guò)程中,工藝尺寸鏈的計(jì)算是不可或缺的,在新產(chǎn)品的研發(fā)過(guò)程中,其作用更為重要[1]。零件圖中所標(biāo)注的尺寸公差是零件加工最終所需要達(dá)到的要求,即設(shè)計(jì)要求,而工藝過(guò)程中的許多中間工序的尺寸公差,是在機(jī)械加工工藝規(guī)程設(shè)計(jì)中通過(guò)計(jì)算工藝尺寸鏈才能確定的[2]。傳統(tǒng)工藝尺寸鏈的計(jì)算是由設(shè)計(jì)人員確定工藝尺寸鏈以及尺寸鏈中的各組成環(huán)的類(lèi)別,再利用相差計(jì)算公式計(jì)算各組成環(huán)的基本尺寸及公差,此方法效率比較低且容易產(chǎn)生差錯(cuò),導(dǎo)致設(shè)計(jì)錯(cuò)誤。

AutoCAD軟件是二維設(shè)計(jì)圖繪制的常用軟件,其功能強(qiáng)大,使用方便,是目前機(jī)械設(shè)計(jì)中常用的計(jì)算機(jī)輔助軟件,它提供了強(qiáng)大的二次開(kāi)發(fā)功能,如AutoLisp、ObjectARX、VBA以及C#都可對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā),其中C#是利用.NET環(huán)境進(jìn)行二次開(kāi)發(fā)的方式之一,其開(kāi)發(fā)周期短、開(kāi)發(fā)便捷[3],是目前較為常用的開(kāi)發(fā)方式之一。

本文利用C#語(yǔ)言及.NET Framework組件開(kāi)發(fā)了一個(gè)可以在A(yíng)utoCAD環(huán)境下繪制被加工零件簡(jiǎn)圖,并在其上標(biāo)注工藝尺寸,形成工藝尺寸鏈,用戶(hù)只需要選擇其中的一個(gè)尺寸作為封閉環(huán),即可自動(dòng)對(duì)圖中尺寸進(jìn)行遍歷,自動(dòng)搜索尺寸,查找工藝尺寸鏈,最后計(jì)算出未知尺寸的基本尺寸及其公差。

1 程序?qū)崿F(xiàn)的方法

程序?qū)崿F(xiàn)功能的基本思路如下:

利用AutoCAD軟件繪制加工零件簡(jiǎn)圖,并標(biāo)注相應(yīng)的工藝尺寸,待求尺寸鏈中的環(huán)為A,如圖1所示。其實(shí)現(xiàn)思路流程如圖2所示。

圖1 零件簡(jiǎn)圖

圖2 功能實(shí)現(xiàn)流程圖

2 程序功能實(shí)現(xiàn)的關(guān)鍵技術(shù)

2.1 尺寸數(shù)據(jù)的獲取

在A(yíng)utoCAD中尺寸數(shù)據(jù)是存儲(chǔ)在其圖形數(shù)據(jù)庫(kù)(Database)中,要完成尺寸鏈的計(jì)算必須首先獲取圖中所標(biāo)注尺寸的數(shù)據(jù)。讀取尺寸數(shù)據(jù)的步驟如下:

(1)獲取當(dāng)前圖形文檔。

Document doc=Application.DocumentManager.MdiActiveDocument

(2)獲取當(dāng)前工作圖形數(shù)據(jù)庫(kù)。

Database acCurDb=HostApplicationServices.WorkingDatabase

(3)建立當(dāng)前圖形數(shù)據(jù)庫(kù)事務(wù)。

Transaction acTrans=acCurDb.TransactionManager.StartTransaction()

以只讀方式打開(kāi)當(dāng)前圖形數(shù)據(jù)塊表記錄

遍歷塊表記錄,當(dāng)實(shí)體為尺寸實(shí)體時(shí),讀取其數(shù)據(jù)存入尺寸數(shù)據(jù)數(shù)組中。

為了存儲(chǔ)尺寸數(shù)據(jù)建立如下所示的尺寸數(shù)據(jù)結(jié)構(gòu):

public struct Dimdata

{

public string DimType;//尺寸類(lèi)型

public string LoopType { get;set;}//環(huán)類(lèi)型

public Point3d StartPt;//第一尺寸界線(xiàn)起點(diǎn)坐標(biāo)

public Point3d EndPt;//第二尺寸界線(xiàn)起點(diǎn)坐標(biāo)

public double DimVal { get;set;}//基本尺寸

public double DimTpval { get;set;}//尺寸上偏差

public double DimTmval { get;set;}//尺寸下偏差

public Point3d CenterPt;//徑向尺寸圓心坐標(biāo)

public ObjectId DimObjid;//尺寸實(shí)體的ID

public bool Flag;//使用標(biāo)志

}。

并建立結(jié)構(gòu)數(shù)組來(lái)保存尺寸相關(guān)數(shù)據(jù)。

2.2 尺寸鏈形成及增減環(huán)的自動(dòng)判斷

本文以水平尺寸鏈為例,如圖3所示:首先判斷封閉環(huán)2個(gè)尺寸界線(xiàn)起點(diǎn)的X坐標(biāo)的大小,將X坐標(biāo)小的作為第二尺寸界線(xiàn)起點(diǎn)(如A0為封閉環(huán),左邊為第二尺寸界線(xiàn)起點(diǎn));然后搜索尺寸鏈的其它尺寸,若某個(gè)尺寸的尺寸界線(xiàn)起點(diǎn)的X坐標(biāo)等于封閉環(huán)第二尺寸界線(xiàn)起點(diǎn)的X坐標(biāo)(如圖3所示A2的左邊起點(diǎn)),則此尺寸為尺寸鏈的下一環(huán),并將此尺寸界線(xiàn)起點(diǎn)作為A2的第一尺寸界線(xiàn)起點(diǎn),另一個(gè)尺寸界線(xiàn)的起點(diǎn)作為第二尺寸界線(xiàn)的起點(diǎn);第三步再判斷A2的2個(gè)尺寸界線(xiàn)起點(diǎn)的X坐標(biāo)大小,當(dāng)?shù)诙叽缃缇€(xiàn)起點(diǎn)的X坐標(biāo)大于第一尺寸界線(xiàn)起點(diǎn)的X坐標(biāo),則此尺寸為增環(huán),反之為減環(huán)(A2為增環(huán));再以A2的第二尺寸界線(xiàn)起點(diǎn)的X坐標(biāo)去搜索,當(dāng)下一個(gè)尺寸的2個(gè)尺寸界線(xiàn)起點(diǎn)中有一個(gè)點(diǎn)的X坐標(biāo)與A2的第二尺寸界線(xiàn)起點(diǎn)相等,則為尺寸鏈的下一環(huán),如圖3的A1,同樣的方法,再判斷A1兩個(gè)尺寸界線(xiàn)起點(diǎn)X坐標(biāo)的大小關(guān)系,從而判斷其增減性。

圖3 尺寸鏈增減環(huán)判斷

如果尺寸鏈為垂直尺寸鏈,則以尺寸的尺寸界線(xiàn)起點(diǎn)坐標(biāo)的Y坐標(biāo)作為判斷依據(jù)。如果是平面尺寸鏈,則以尺寸界線(xiàn)起點(diǎn)的X、Y坐標(biāo)作為判斷依據(jù)。

2.3 直徑尺寸的處理

在工藝尺寸鏈的計(jì)算過(guò)程中,對(duì)直徑尺寸的處理方法是基本尺寸取一半,公差也取一半作為尺寸鏈中的一個(gè)環(huán)。如圖4中的19.8及20兩個(gè)尺寸。本文以水平尺寸鏈為例說(shuō)明其處理方法。

圖4 直徑尺寸的處理

當(dāng)尺寸實(shí)體的類(lèi)型為“AcDbDiametricDimension”或?yàn)椤癆cDbRotatedDimension”但其替代文本中含有“%%C”字符串時(shí),都是直徑尺寸,如果是“AcDbDiametricDimension”類(lèi)型,則將尺寸線(xiàn)變換為水平后,求出2個(gè)尺寸界線(xiàn)的起點(diǎn)坐標(biāo),存入數(shù)組中。當(dāng)一個(gè)直徑的2個(gè)尺寸界線(xiàn)起點(diǎn)中有一個(gè)與現(xiàn)有尺寸中的尺寸界線(xiàn)起點(diǎn)坐標(biāo)相同,如尺寸Φ40的左尺寸界線(xiàn)起點(diǎn)與43.6的左尺寸界線(xiàn)起點(diǎn)相同,則它的另一個(gè)尺寸界線(xiàn)起點(diǎn)用圓心坐標(biāo)替代,基本尺寸及上下偏差均取半。

3 結(jié)論

圖1所示的工藝尺寸鏈計(jì)算結(jié)果如圖5所示。

圖5 工藝尺寸鏈計(jì)算結(jié)果圖

利用C#進(jìn)行工藝尺寸鏈的自動(dòng)計(jì)算,開(kāi)發(fā)方法簡(jiǎn)單,可以有效地減輕計(jì)算工作量和避免計(jì)算錯(cuò)誤,有利用于提高工藝規(guī)程設(shè)計(jì)的工作效率。

猜你喜歡
界線(xiàn)公差二次開(kāi)發(fā)
AutoCAD 與PDMS 二次開(kāi)發(fā)在三維復(fù)雜形體設(shè)計(jì)建模上的應(yīng)用
滑移門(mén)開(kāi)門(mén)位置公差分析優(yōu)化
毛絨情結(jié)
The Beasts Within
例談對(duì)高中數(shù)學(xué)教材中習(xí)題的二次開(kāi)發(fā)
數(shù)列核心考點(diǎn)測(cè)試卷A 參考答案
淺談CAD軟件二次開(kāi)發(fā)的方法及工具
例談?wù)n本習(xí)題的“二次開(kāi)發(fā)”
婚姻的智慧,是分寸和界線(xiàn)
從簡(jiǎn)單特殊入手解決數(shù)列問(wèn)題