我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > 機(jī)械制圖 > 機(jī)械技巧

AutoCAD環(huán)境下旋轉(zhuǎn)類拉延件毛坯尺寸的自動(dòng)計(jì)算

時(shí)間:2011-04-19 22:26:07 來源:未知

一、引言

  在進(jìn)行旋轉(zhuǎn)類拉延件拉延工藝設(shè)計(jì)時(shí),以最后一次拉深成形的制件為基礎(chǔ)計(jì)算出毛坯尺寸(直徑)是必不可少的工作。手工計(jì)算時(shí),由于旋轉(zhuǎn)類拉延件形狀變化大,故常涉及到大量的公式和表格,計(jì)算過程較為繁瑣、枯燥。
  AutoCAD是國內(nèi)目前較普遍使用的計(jì)算機(jī)繪圖軟件,待加工的拉延件的零件圖常常已經(jīng)在AutoCAD環(huán)境下繪出。根據(jù)AutoCAD下的零件圖,通過開發(fā)軟件自動(dòng)分析計(jì)算出毛坯尺寸,是一項(xiàng)較有意義的工作。
  AutoCAD軟件包從AutoCAD R11.0開始,增加了ADS功能,可通過C語言按ADS指定的形式來調(diào)用AutoCAD的所有命令,并可進(jìn)行實(shí)體(即點(diǎn)、直線、圓弧等)幾何信息的讀取,從而大大加強(qiáng)了利用AutoCAD進(jìn)行二次開發(fā)的功能。
  為此,筆者利用AutoCAD的ADS功能,開發(fā)了一個(gè)對于AutoCAD環(huán)境下任意繪出的旋轉(zhuǎn)類拉延件能自動(dòng)計(jì)算毛坯尺寸的程序。該軟件采用AutoCAD R12.0 for DOS下的ADS開發(fā),利用ADS函數(shù)庫編制的C程序通過High C 1.7編譯,在AutoCAD Command狀態(tài)下運(yùn)行,可迅速準(zhǔn)確地計(jì)算毛坯尺寸。

二、軟件設(shè)計(jì)

1.軟件設(shè)計(jì)思想
  根據(jù)久里金法則,任意由直線和圓弧為母線形成的旋轉(zhuǎn)拉延件的毛料直徑D可由下式?jīng)Q定:

式中 Li——旋轉(zhuǎn)拉延件中性層各線段(直線和圓弧)長度
   Xi——旋轉(zhuǎn)拉延件中性層各線段(直線和圓弧)重心到旋轉(zhuǎn)軸的距離
   num——旋轉(zhuǎn)拉延件中性層線段數(shù)
  圖1示出了某旋轉(zhuǎn)拉延件的線段長度及其重心的標(biāo)注,中性層共有由8段線段組成,其中直線4段(L1,L3,L6,L8),圓弧4段(L2,L4,L5,L7)。

圖1 一個(gè)旋轉(zhuǎn)拉延件

  現(xiàn)在需解決的問題是需要獲取中性層各線段的幾何參數(shù),如直線的起始、終止點(diǎn)坐標(biāo),圓弧的圓心、半徑、起始角、終止角。獲取中性層各線段的幾何參數(shù)后,根據(jù)有關(guān)公式即可求得各線段(包括直線、圓弧)的長度及重心位置,從而可由以上公式求得毛料直徑。
  然而,中性層是假想的,由AutoCAD命令任意繪出工件圖的中性層往往也并未畫出,故需要首先讀取工件圖中內(nèi)外兩側(cè)各直線和圓弧的幾何數(shù)據(jù),然后即可間接地求得中性層各線段的幾何參數(shù)。
  故本程序設(shè)計(jì)與實(shí)現(xiàn)上分為4個(gè)大的步驟:
  (1)分別讀取工件圖內(nèi)、外側(cè)各線段的幾何數(shù)據(jù);
  (2)利用內(nèi)外側(cè)各線段幾何數(shù)據(jù)求中性層各線段幾何數(shù)據(jù);
  (3)求中性層各線段的長度及重心位置;
  (4)利用公式(1)求得毛料直徑。
  在第1、2、3步中采用了表1所示結(jié)構(gòu)用于存貯內(nèi)外側(cè)及中性層各線段幾何數(shù)據(jù)。

表1 實(shí)體信息的存貯方式

PR[i][0]PR[i][1]PR[i][2]PR[i][3]PR[i][4]PR[i][5]直線(1)起點(diǎn)X1起點(diǎn)Y1終點(diǎn)X2終點(diǎn)Y20





圓弧(2)圓心X圓心Y起角ANG1終角ANG2半徑R
∶#p#分頁標(biāo)題#e#





圓(3)圓心X圓心Y00半徑R






2.軟件結(jié)構(gòu)

圖2 旋轉(zhuǎn)拉延件毛坯尺寸計(jì)算軟件流程圖

  根據(jù)以上設(shè)計(jì)思想,本軟件結(jié)構(gòu)流程圖如圖2所示。其中,表PR_SS[N] [5]、PR_L[num] [5]、PR_W [num] [5]、PR_M(jìn) [num] [5]的結(jié)構(gòu)形式與表1相同。

三、制件圖內(nèi)外側(cè)各線段實(shí)體信息讀取的算法

  如上所述,AutoCAD環(huán)境下的制件圖內(nèi)外側(cè)線段實(shí)體信息的拾取(即圖2的前4個(gè)部分)是實(shí)現(xiàn)本程序的關(guān)鍵。現(xiàn)設(shè)定用于表達(dá)旋轉(zhuǎn)拉延件內(nèi)外結(jié)構(gòu)的所有線段均繪于“0”層(這也符合一般AutoCAD繪圖習(xí)慣),而尺寸標(biāo)注、剖面線等則置于另外的層,則內(nèi)外層線段幾何信息讀取算法如下:
  Stepl【交互拾取表示厚度的左實(shí)體】
  交互選擇表示厚度的中心線左側(cè)實(shí)體S0(如圖1所注)
  Step2【獲取實(shí)體S0的兩個(gè)端點(diǎn)】
  讀取實(shí)體S0的兩端點(diǎn)坐標(biāo),存入數(shù)組PRSO[2][2]中
  Step3【拾取0層上的所有實(shí)體】
  建立0層上的所有實(shí)體的集合SS{S0,S1,…,Si,…}
  Step4【獲取實(shí)體集SS的實(shí)體數(shù)量】
  從實(shí)體集合SS中獲取實(shí)體數(shù)量N
  Step5【獲取實(shí)體集SS中一個(gè)實(shí)體的信息】
  從SS中選擇一個(gè)實(shí)體SSi,讀取它的幾何信息
  Step6【實(shí)體信息存放】
  將實(shí)體SSi幾何信息放入如表1形式的數(shù)組PRSS[N][5]中
  Step7【判斷】N=N-1 如N>0,進(jìn)入Step5,否則進(jìn)入Step8
  Step8【內(nèi)外側(cè)線段實(shí)體信息選擇】
  根據(jù)數(shù)組PRS0[2][2]和PRSS[N][5],分別建立存貯制件外側(cè)線段幾何參數(shù)的數(shù)組PRW[num][5]及內(nèi)側(cè)線段幾何參數(shù)的數(shù)組PRL[num][5]
其中,Step1主要由調(diào)用adsssget(  )函數(shù)完成
   Step2主要由調(diào)用adsentget(  )函數(shù)完成
   Step3主要由調(diào)用adsssget(  )函數(shù)完成
   Step4主要由調(diào)用adssslength(  )函數(shù)完成
   Step5主要由調(diào)用adsentget(  )函數(shù)完成
  Step1中ADS函數(shù)adsssget(  )的調(diào)用格式為:
  adsname S0;  /* 實(shí)體名變量 */
  adsssget(NULL,NULL,NULL,NULL,S0); /* 交互選擇獲取實(shí)體 */
  Step3中該函數(shù)的調(diào)用格式為:
  adsname SS; /* 實(shí)體集名變量 */
  Char sbuf[6];/*層名變量  */
  struct resbuf eb; /* 結(jié)構(gòu)緩沖器變量 */
  strcpy(sbuf,“0”); /* 層名變量賦值 */
  eb.resval.rstring=sbuf; /* 結(jié)構(gòu)緩沖器字符串賦值 */
  adsssget(“X”,NULL,NULL,&eb,SS); /* 獲取“0”層實(shí)體集*/
  在Step2、Step5中調(diào)用adsentget(  )函數(shù)的實(shí)質(zhì)是產(chǎn)生一個(gè)結(jié)構(gòu)緩沖器鏈表,該鏈表的結(jié)構(gòu)示意圖如圖3所示。

圖3 結(jié)構(gòu)緩沖器鏈表示意圖

  從結(jié)構(gòu)緩沖器鏈表中可獲取當(dāng)前實(shí)體集中每個(gè)實(shí)體的類型(如點(diǎn)、直線、圓弧等相應(yīng)的DXF代碼)和幾何參數(shù)(即直線的起始、終止點(diǎn)坐標(biāo),圓弧的圓心、半徑、起始角、終止角),由于程序段稍長,此處從略。#p#分頁標(biāo)題#e#
  Step8主要根據(jù)S0的兩個(gè)端點(diǎn)坐標(biāo)(存于數(shù)組PRS0[2][2])和零件圖內(nèi)外側(cè)所有的實(shí)體的幾何信息(存于數(shù)組PRSS[N][5])按首尾相連原則分別確定內(nèi)側(cè)和外側(cè)線段及其幾何參數(shù),并分別存入相應(yīng)數(shù)組PRL[num][5]和PRW[num][5]中。

四、結(jié)束語

  作者根據(jù)以上程序設(shè)計(jì)思想和有關(guān)算法,設(shè)計(jì)完成了旋轉(zhuǎn)拉延件毛坯尺寸的自動(dòng)計(jì)算軟件。在AutoCAD COMMAND狀態(tài)下通過“XLOAD”命令加載本程序后,繪制(或調(diào)入)一個(gè)旋轉(zhuǎn)拉延件零件圖,運(yùn)行本程序,即可在屏幕上顯示打印出毛坯尺寸。
  該程序已對多個(gè)由AutoCAD繪制的任意復(fù)雜程度的旋轉(zhuǎn)拉延件計(jì)算出毛坯尺寸。運(yùn)行表明:程序正確、可靠,能滿足迅速、自動(dòng)計(jì)算毛坯直徑的要求。本程序既可單獨(dú)運(yùn)行,也可作為后續(xù)的拉延模CAD系統(tǒng)的一個(gè)子系統(tǒng)運(yùn)行。