一、前言
I3Sl>e(Z `92 D]^g Pro/ENGINEER是美國參數(shù)技術(shù)公司(PTC)研制的三維CAD/CAM軟件,TOOLKIT是PTC專門提供的一個二次開發(fā)工具。在TOOLKIT中,PTC向用戶提供了大型的C語言函數(shù)庫,通過調(diào)用這些底層函數(shù),用戶能方便而又安全地訪問Pro/ENGINEER的數(shù)據(jù)庫及內(nèi)部應(yīng)用程序,進行二次開發(fā),擴展一些特定功能。
CvpqQ7&k7 lY}mrb 作為一種成功的三維CAD/CAM軟件,Pro/ENGINEER已經(jīng)包含了比較高效的出圖模塊,可以適用于任何形狀的零件出圖任務(wù),但是,對于一些零件較為類似、幾何外形接近的出圖要求來說,將大量的時間花在重復布置視圖、標記尺寸上,是得不償失的。在Pro/ENGINEER已有的出圖模塊基礎(chǔ)上進行二次開發(fā),則更適合此類情況。
}?P~qJ|1 =q|fe%# 目前,在很多設(shè)計部門中所設(shè)計的產(chǎn)品有一定相關(guān)性,這就使得很多設(shè)計過程存在重復勞動的問題。基于這種原因,在Pro/ENGINEER2000i2基礎(chǔ)上,作者參與開發(fā)了一個較為完整的軸類零件設(shè)計(三維模型)、零件出圖、零件加工(加工刀軌代碼生成)系統(tǒng),讓一些通用的設(shè)計過程實現(xiàn)自動處理,以減輕設(shè)計人員的工作量(本文僅著重討論其中的零件出圖部分)。對于零件設(shè)計,該系統(tǒng)采用較為簡單的族表方法(即預(yù)先手工構(gòu)建產(chǎn)品模型,把它作為族表的類屬件,然后在族表中定義各個控制參數(shù)來控制模型的形狀大小,并在程序中通過改變各個參數(shù)的值來得到所需要的衍生件)。對于零件出圖部分的程序設(shè)計,就可以十分方便地根據(jù)前面零件設(shè)計中定義的參數(shù)名稱來獲得相應(yīng)的軸類零件形狀及尺寸信息。
/p,D01Ws}( &%pB; dk 二、視圖生成方法分析
SwQ.tK1p =J8)Z'Jr 1.圖紙區(qū)域劃分
A>L(#lz#ek =erA.u 為了避免在圖紙自動生成的過程中產(chǎn)生視圖間干涉、尺寸重疊等現(xiàn)象,可以事先按要求將圖紙劃分出特定區(qū)域。對于結(jié)構(gòu)較為相似、幾何外形不太復雜的軸類零件,可以將整個圖紙分成主視圖區(qū)、剖面圖區(qū)、表格區(qū)及注釋區(qū)。然后根據(jù)所確定的區(qū)域大小及位置,調(diào)節(jié)視圖比例,生成較為合理的視圖。這樣就可避免圖紙上視圖及尺寸間的位置沖突。
$"{V],:T
| ErC~,5dj;n 2.生成主視圖及剖面圖
\h^bOxh a@@!Eg
A 生成視圖的關(guān)鍵是確定視圖方向以及視圖的比例。對于視圖方向,如果方向選擇錯誤,則無法正確表達零件的形狀。在TOOLKIT提供的生成主視圖(General View)的函數(shù)中,可以通過輸入不同的方向矩陣(Orientation Matrix)來調(diào)整視圖方向。對于視圖比例,選擇恰當?shù)谋壤禂?shù),可以使視圖盡可能表達清楚,又不會造成越界,產(chǎn)生區(qū)域干涉。
;U<)$5 tC+9W1o 對于軸類零件,由于特定的外形特征,在生成圖紙時除了主視圖外還需生成各鍵槽處的剖視圖。通過調(diào)用TOOLKIT提供的視圖生成函數(shù)ProDrawingGeneral
.Jdw: Fm}O,= viewCreate(),可以方便地生成需要的視圖(需要注意:在零件模型設(shè)計階段就確定恰當?shù)哪J參考平面,這樣可以在出圖階段忽略考慮方向的問題,即方向矩陣可用單位矩陣代替;視圖比例先默認為1:1)。在此基礎(chǔ)上,調(diào)用TOOLKIT提供的視圖輪廓提取函數(shù)ProDrawingViewOutlineGet(),計算此視圖的輪廓大小,再根據(jù)事先劃分好的區(qū)域大小,重新設(shè)定視圖比例,自動生成大小合適的視圖。
K.
G#[ /3%]Ggwe 3.視圖生成實例及程序
*9^CgLF SX}GKu 在這個實例中,根據(jù)已生成的軸模型實體(axis.part),采用C語言
編程,調(diào)用TOOLKIT提供的視圖生成及調(diào)整函數(shù),生成符合要求的圖紙,并在此之上生成視圖。程序如下:
"sFdrXJ whNRUOK: ProSolid solid;
;J\{r$q 8O{]ML int sheet;
'D(Hqdr;: 7kn=j6I ProMdlCurrentGet(&solid);//獲得內(nèi)存中打開的軸模型
\Y9=dE} 9[N'HpQ3 ProStringToWstring(wroot, “drawing”);
SU#
S' V`69%35*@ ProObjectwindowCreate(wroot,PRO_DRAWING,&w_id);//打開名為drawing的空視圖窗口
_|8"&*T^ "EpE!jh ProDrawingCurrentSheetSet(drawing, sheet);//設(shè)置當前圖層
iy
tSC ]CC=
\
木兰县|
闽侯县|
望城县|
泰顺县|
民乐县|
平陆县|
阳江市|
台东市|
左云县|
苍山县|
商河县|
宿松县|
彭阳县|
石屏县|
翁源县|
二手房|
册亨县|
江口县|
澄城县|
扎赉特旗|
孟连|
礼泉县|
上饶县|
神池县|
眉山市|
共和县|
苗栗市|
清新县|
陈巴尔虎旗|
鸡西市|
三亚市|
息烽县|
德令哈市|
西畴县|
平昌县|
措美县|
潍坊市|
永济市|
噶尔县|
金坛市|
芦山县|