一種開發(fā)CAD應(yīng)用系統(tǒng)的層次模型
提出一種開發(fā)CAD應(yīng)用系統(tǒng)的層次模型,分析了模型的層次結(jié)構(gòu)特點(diǎn),對圖形程序設(shè)計中的特殊問題提出了解決方案,研制了通用的層次模型處理函數(shù)庫。
一件蚕、引 言
在CAD應(yīng)用系統(tǒng)的開發(fā)中,各類設(shè)計圖的程序編制往往是一項(xiàng)重要內(nèi)容盟迟。由于工程、機(jī)械設(shè)計圖所涉及的構(gòu)造細(xì)節(jié)較多,相互關(guān)系錯綜復(fù)雜,因此相應(yīng)的圖形程序設(shè)計工作往往十分繁瑣踱承。此外,按常規(guī)程序設(shè)計思路編制的圖形程序從編程風(fēng)格來看不夠精煉,且不易維護(hù)倡缠。因此,在遵循統(tǒng)一的程序設(shè)計原則的前提下,按照一種新的概念和思路合理組織程序結(jié)構(gòu),提高開發(fā)效率和程序質(zhì)量,具有重要的實(shí)用意義。本文提出的模型層次結(jié)構(gòu)思路正是解決這一問題的有效方法,十分適合在工程茎活、機(jī)械CAD圖形程序設(shè)計中應(yīng)用昙沦。實(shí)際上它也是ISO頒布的PHIGS圖形標(biāo)準(zhǔn)中的一個重要部分。據(jù)此,作者研制了一個層次模型處理的通用C語言函數(shù)庫,可配合既有圖形軟件包工作,并已應(yīng)用于多個CAD應(yīng)用系統(tǒng)的開發(fā)中,收到了良好效果载荔。
二盾饮、模型的層次結(jié)構(gòu)及建模變換
1.幾何模型的層次結(jié)構(gòu)
模型的層次結(jié)構(gòu)表現(xiàn)為:用基本部件構(gòu)造出高一級的實(shí)體,而用高一級的實(shí)體又可構(gòu)造出更高一級的實(shí)體。在工程設(shè)計中,層與層之間的關(guān)系實(shí)際上是物體與子物體懒熙、部件與子部件档价、圖形與子圖形的關(guān)系。層次關(guān)系也反映了它們之間的裝配調(diào)用關(guān)系滩扩。層次結(jié)構(gòu)中的部件不僅本身具有一定幾何形狀,而且應(yīng)注意到部件相互之間的位置和關(guān)系显哨。部件本身的幾何形狀與其它部件無關(guān),可以定義在一個自己擁有的局部坐標(biāo)系上,該坐標(biāo)系稱為本體坐標(biāo)系(master coordinate system)。高層部件可以對低層部件的本體坐標(biāo)定義施行一個引用變換(instance transformation),從而在高層部件的本體坐標(biāo)系中構(gòu)成該部件的一個實(shí)例槽顶。若高層部件是根物體(rootobject),則在世界坐標(biāo)系上獲得了部件的實(shí)例篙绎。部件之間的相對位置關(guān)系就是由這些引用變換決定的。此外,在部件的本體坐標(biāo)系下,為便于部件自身的幾何處理,可以引入一些坐標(biāo)變換,這是有別于引用變換的另一類變換昭淋。這兩類變換都被用于構(gòu)造物體模型,統(tǒng)稱為建模變換亿隔。
在GKS圖形標(biāo)準(zhǔn)中引入了圖段機(jī)制,用它可以實(shí)現(xiàn)單層的物體模型構(gòu)建,其建模功能十分有限。較新的PHIGS圖形標(biāo)準(zhǔn)則通過引入結(jié)構(gòu)(structure)及其嵌套引用機(jī)制,可以實(shí)現(xiàn)任意層次的物體模型構(gòu)建墓枝。
2.基于當(dāng)前變換矩陣的建模
在多層結(jié)構(gòu)的模型中,部件需要經(jīng)由低層到高層的多重引用變換才能最終在根物體的世界坐標(biāo)系下實(shí)現(xiàn)引用乃蔬。記Xwc為世界坐標(biāo)點(diǎn),Xmc為部件本體坐標(biāo)點(diǎn),各級引用變換記為T0,T1,…,Tk,則有Xwc=Xmc.Tk.Tk-1.….T1.T0。由此可見,這一引用過程要求施行一系列的坐標(biāo)變換操作,需進(jìn)行多次矩陣乘法運(yùn)算,由于部件內(nèi)的所有圖素都需進(jìn)行這種操作,因此執(zhí)行效率極低容且。根據(jù)復(fù)合幾何變換原理,存在復(fù)合變換T,使得T=Tk.Tk-1.….T1.T0,則有Xwc=Xmc.T刁夺。復(fù)合變換T直接反映了部件本體坐標(biāo)至根物體世界坐標(biāo)的變換關(guān)系。因此,我們可引入一個當(dāng)前變換矩陣(current transformation matrix,CTM)作為全局變量,它代表這一復(fù)合變換亮隙。當(dāng)模型自根物體逐層向下引用部件時(樹的前序遍歷),累積相應(yīng)的引用變換而得到新的CTM,即CTM0=T0,CTM1=T1.CTM0,…,CTMk=Tk.CTMk-1途凫。由此可得Xwc=Xmc.CTM,部件內(nèi)的各圖素僅需一次(當(dāng)前)坐標(biāo)變換即可在世界坐標(biāo)系下實(shí)現(xiàn)引用垢夹。
利用CTM變換模型需要有一組關(guān)于CTM的操作函數(shù)。首先,應(yīng)能夠設(shè)置CTM维费。設(shè)置分兩種:相對設(shè)置和絕對設(shè)置果元。絕對設(shè)置是指用給定的矩陣取代CTM原值;相對設(shè)置是指將給定的矩陣與CTM相乘后取代CTM,用以實(shí)現(xiàn)CTM的累積犀盟。其次,需要對CTM臨時保留,因?yàn)樵诙鄬忧短资褂玫沫h(huán)境下,當(dāng)部件完成對下層部件的引用后返回到本部件時,相應(yīng)地應(yīng)返還部件的CTM原值,對CTM進(jìn)行堆棧操作可滿足這一要求而晒。
按照CTM原理來實(shí)現(xiàn)部件引用變換的典型程序表述如下:
PUSH(ctm,stk);將ctm壓入堆棧stk
SET-CTM-REL(m)阅畴;用m.ctm代替ctm
SUB-OBJECT倡怎;調(diào)用部件(定義在本體坐標(biāo)系下)
POP(ctm,stk);將ctm彈出堆棧stk
CTM操作函數(shù)可看成是建立在世界坐標(biāo)系下的圖形系統(tǒng)的一組建模函數(shù),它用來幫助應(yīng)用軟件建立模型,各部件生成定義在其本體坐標(biāo)系下的輸出圖素,經(jīng)由CTM函數(shù)處理后變換為定義在世界坐標(biāo)系下的輸出圖素,再交圖形系統(tǒng)處理恶阴。
三诈胜、工程圖的分層組織及特殊問題
1.工程圖的分層組織
工程設(shè)計圖具有明顯的層次結(jié)構(gòu)。一幅整圖由反映設(shè)計對象的各個視圖及其它圖形單元組成冯事;這些圖形單元又由更低層次的基本構(gòu)件拼合而成焦匈;最底層則是基本圖素。典型的例子如一臺機(jī)器,它包含多個部件,每一部件或是不可分的零件,或是可進(jìn)一步分解的組件,因此其設(shè)計圖可表現(xiàn)為一個層次結(jié)構(gòu)嘹挨。這種分層組織與結(jié)構(gòu)化的程序設(shè)計相對應(yīng),圖形程序設(shè)計一般都應(yīng)按它來組織程序結(jié)構(gòu)淳胆。
應(yīng)當(dāng)指出,常規(guī)的圖形程序正是按以上結(jié)構(gòu)設(shè)計的,但對設(shè)計對象的處理卻存在一定缺陷。按照層次模型的原理,高層部件與低層部件的關(guān)系應(yīng)是一種引用變換,但常規(guī)的圖形程序卻僅僅是一種調(diào)用子程序的關(guān)系逮弛。具體來說,在設(shè)計一個部件的程序段或程序模塊時,常規(guī)方法往往需要進(jìn)行頻繁的設(shè)計數(shù)據(jù)→圖紙數(shù)據(jù)的比例轉(zhuǎn)換,程序設(shè)計者要同時關(guān)注設(shè)計對象本身及其在圖紙上的表現(xiàn)等多方面的問題,這勢必加重程序設(shè)計的負(fù)擔(dān),且程序代碼也不夠精煉螃方。但按照層次模型方法,因部件是在自己的本體坐標(biāo)系中定義的,因此可在部件自身的本體坐標(biāo)空間中用真實(shí)設(shè)計尺寸繪制圖形,而無需考慮比例轉(zhuǎn)換等問題,即程序設(shè)計者只需關(guān)注設(shè)計對象自身,這就大大簡化了程序設(shè)計工作。該方法表面上似乎未作比例轉(zhuǎn)換,但實(shí)質(zhì)上比例轉(zhuǎn)換已通過引用變換矩陣被隱藏到后臺,由層次模型操作函數(shù)自動處理了鞋会。
按照層次模型方法,圖形程序的結(jié)構(gòu)如下:
{根層(圖面)圖形處理担灭;
OBJECT-OPEN(引用變換參數(shù));
OBJECT-1填杀;部件1在本體坐標(biāo)系中的圖形處理
OBJECT-CLOSE寓综;
……
OBJECT-OPEN(引用變換參數(shù));
OBJECT-n焦厘;部件n在本體坐標(biāo)系中的圖形處理
OBJECT-CLOSE耿堕;
根層其它圖形處理;}
其中,在各部件的程序模塊中又可嵌套引用低一級部件,如此可形成一個多重嵌套結(jié)構(gòu)绽脏。
2.圖面信息問題
一幅工程圖所表達(dá)的內(nèi)容,除了設(shè)計對象自身的圖形外,尚有與圖面有關(guān)的信息,如尺寸標(biāo)注味廊、文字說明、圖形標(biāo)記等棠耕。這是工程圖繪制中的特殊問題余佛。可以認(rèn)為,圖面信息都是定義在圖紙亦即根層的世界坐標(biāo)系下的,因此可直接在根層繪制它們。但有一類圖面信息,其定位點(diǎn)辉巡、方位等是與設(shè)計對象上的某一位置和方向相關(guān)的,例如尺寸標(biāo)注等登颓。若在世界坐標(biāo)系下繪制它們,其定位點(diǎn)、方位等卻又定義在設(shè)計對象的本體坐標(biāo)系下,則從程序流程及數(shù)據(jù)流向上難于解決红氯。為此,可引入一類專門的標(biāo)注圖素,約定它們的定位點(diǎn)定義在當(dāng)前坐標(biāo)系下,而其它屬性值(如文字高度、尺寸值等)則始終定義在世界坐標(biāo)系下咕痛。這樣,只要在設(shè)計對象的本體坐標(biāo)系下調(diào)用它們即可完成相應(yīng)的圖面信息繪制,使用十分方便痢甘。
在PHIGS圖形標(biāo)準(zhǔn)中,定義了一個加注文字輸出原語,用于在規(guī)范化投影坐標(biāo)系上生成一個字符串,以實(shí)現(xiàn)對模型某一處的加注,但其它視圖信息如圖形標(biāo)記卻難于在建模時實(shí)現(xiàn)。因此,PHIGS圖形標(biāo)準(zhǔn)這方面的功能較弱茉贡。
3.層與層之間的關(guān)聯(lián)與交叉引用問題
在多層圖形結(jié)構(gòu)中,當(dāng)程序在某一部件的本體坐標(biāo)空間中工作時,某些數(shù)據(jù)有時需取自另一部件的本體坐標(biāo)空間塞栅。這樣,層與層之間的數(shù)據(jù)發(fā)生關(guān)聯(lián),需要交叉引用。典型的例子是在部件的本體坐標(biāo)系下引用根層世界坐標(biāo)系下的數(shù)據(jù),如某個定位點(diǎn)或某個方向矢量腔丧。這種數(shù)據(jù)引用按常規(guī)引用變換規(guī)則是無法解決的放椰。為此,可引入“虛擬工作空間”的概念,即在當(dāng)前部件的本體坐標(biāo)系下臨時復(fù)制另一部件的坐標(biāo)空間,用以處理相關(guān)數(shù)據(jù),處理完畢后立即將其撤去,再回到當(dāng)前部件的本體坐標(biāo)空間下。虛擬工作空間的操作細(xì)節(jié)由支持函數(shù)自動完成,對應(yīng)用程序設(shè)計者則是完全透明的曹胚。
四玲禾、層次模型處理函數(shù)庫的功能
基于上述原理,作者用C語言研制了用于層次模型處理的通用函數(shù)庫,配合圖形軟件包工作。它主要可提供以下幾方面的功能:(1)部件引用變換的支持函數(shù)济谢;(2)用于部件自身布局的坐標(biāo)變換函數(shù)盏掉;(3)當(dāng)前工作空間支持函數(shù),用于設(shè)置當(dāng)前工作空間、交叉數(shù)據(jù)變換,也可用于虛擬工作空間的操作情腥;(4)各種標(biāo)注圖素的支持函數(shù)毙向;(5)其它實(shí)用坐標(biāo)計算函數(shù)。
為便于實(shí)際編程,作者在函數(shù)庫中定義了以下幾類坐標(biāo)系:(1)世界坐標(biāo)系WCS:即圖面的坐標(biāo)系辰张;(2)部件坐標(biāo)系BCS:部件的本體坐標(biāo)系形负;(3)當(dāng)前絕對坐標(biāo)系CACS:BCS下的基坐標(biāo)系,若在WCS下則為WCS下的基坐標(biāo)系;(4)當(dāng)前坐標(biāo)系(或稱工作坐標(biāo)系)CCS:當(dāng)前繪圖所用的坐標(biāo)系,與CRCS并列,若未設(shè)定CRCS則為CACS,若未設(shè)定CACS則為BCS,若在WCS下則為WCS下的坐標(biāo)系欢巡。
相應(yīng)地,作者定義了以下幾類坐標(biāo)變換:(1)部件引用變換:引用部件的變換瞒礼;(2)絕對坐標(biāo)變換:重置CACS,相應(yīng)地撤消CRCS、CCS斑卤;(3)相對坐標(biāo)變換:重置CRCS,相應(yīng)地撤消CCS晨另;(4)當(dāng)前坐標(biāo)變換(或稱累積的坐標(biāo)變換):在原CCS上增量累積的坐標(biāo)變換,CCS取累積后的坐標(biāo)系特別適用于保持程序設(shè)計中模塊間的坐標(biāo)系獨(dú)立性。
五谱姓、結(jié) 語
基于層次模型的CAD應(yīng)用系統(tǒng)開發(fā)方法為我們提供了一種系統(tǒng)化的手段,在工程借尿、機(jī)械CAD圖形程序設(shè)計中具有實(shí)用意義。這一方法需要得到相應(yīng)函數(shù)庫的支持,因此研制一個較為通用的層次模型處理函數(shù)庫是十分重要的屉来。層次模型處理函數(shù)庫可以建立在現(xiàn)有的圖形軟件包之上,并與之協(xié)同工作路翻。
null
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng),轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享茄靠,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)茂契,也不構(gòu)成任何其他建議蝶桶。本站部分作品是由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳掉冶,對此類作品本站僅提供交流平臺真竖,不為其版權(quán)負(fù)責(zé)。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻厌小、圖片恢共、文字如涉及作品版權(quán)問題,請第一時間告知璧亚,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容柴炉,以保證您的權(quán)益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn价岭。
- 暫無反饋
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力,智啟未來新篇章
- 定義制造業(yè)未來的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床箍鼓,助力制造升級技術(shù)專題
- 汽車輕量化驅(qū)動下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題