基于圖形結(jié)構(gòu)的智能化設(shè)計(jì)方法
【本章摘要】本章首先分析了基于產(chǎn)品圖形的智能化設(shè)計(jì)的內(nèi)涵、發(fā)展和形式描述,詳細(xì)分析了參數(shù)化設(shè)計(jì)的原理、集成化設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)和智能圖元化設(shè)計(jì)的詳細(xì)內(nèi)容。
4.1CAD系統(tǒng)的智能化
CAD系統(tǒng)的智能化一直是人們追求的目標(biāo)。目前,智能化的研究重點(diǎn)是在傳統(tǒng)CAD系統(tǒng)中加強(qiáng)推理和對(duì)知識(shí)庫的管理、查詢能力,形成智能CAD(ICAD)系統(tǒng)。當(dāng)前的智能設(shè)計(jì)分成兩種類型,即設(shè)計(jì)型專家系統(tǒng)和人機(jī)智能化系統(tǒng),人機(jī)智能化系統(tǒng)是面向CIMS的復(fù)雜智能設(shè)計(jì)技術(shù),其研究尚處于起步階段,而設(shè)計(jì)型專家系統(tǒng)研究的核心問題是模式設(shè)計(jì),典型應(yīng)用領(lǐng)域是方案設(shè)計(jì),很難應(yīng)用到產(chǎn)品的結(jié)構(gòu)設(shè)計(jì)中。
到目前,智能化CAD系統(tǒng)的發(fā)展經(jīng)歷了三個(gè)階段:參數(shù)化設(shè)計(jì)、集成化設(shè)計(jì)和智能圖元化設(shè)計(jì)。從整個(gè)發(fā)展歷史來看,智能化CAD系統(tǒng)主要存在二個(gè)本質(zhì)問題:一、需要一定的交互干涉控制;二、智能化適用范圍的限制。而從智能化CAD系統(tǒng)的三個(gè)階段來看,智能化CAD的智能化程度也是在這二個(gè)問題上不斷地探索和發(fā)展的程度。
參數(shù)化CAD設(shè)計(jì),主要是針對(duì)傳統(tǒng)的CAD系統(tǒng)大部分僅局限于建立產(chǎn)品幾何漠型,擅長設(shè)計(jì)階段中某一時(shí)刻設(shè)計(jì)信息的表達(dá),而在表述產(chǎn)品設(shè)計(jì)的工程意義和動(dòng)態(tài)設(shè)計(jì)過程方面顯得十分乏力。參數(shù)化CAD系統(tǒng)的關(guān)鍵是參數(shù)化模型的建立。從智能化角度上說,參數(shù)化CAD的優(yōu)點(diǎn)是:(一)通過參數(shù)化模型中參數(shù)的傳遞,實(shí)現(xiàn)“工程信息一圖形信息”。(二)通過參數(shù)的改變,使圖形自動(dòng)發(fā)生相應(yīng)的改變。而缺點(diǎn)是:它是通過已建立的特定的參數(shù)化模型賦值而驅(qū)動(dòng)圖形,所以它只能驅(qū)動(dòng)參數(shù)化模型對(duì)應(yīng)的圖形,對(duì)于工程上用的多的復(fù)雜圖形,特別是組合圖形來說,不太實(shí)用;它很難反向從圖形中的獲取較多的工程語義,不具有面向?qū)ο蟮母拍睢?SPAN lang=EN-US>
集成化CAD設(shè)計(jì),這是目前用的比較多的專業(yè)CAD系統(tǒng),主要是針對(duì)一些特味行業(yè)(如室內(nèi)裝修、室內(nèi)設(shè)計(jì)等行業(yè)),在這些行業(yè)的工程圖紙描述中,都是由有若干行業(yè)中工程實(shí)體組成。正是根據(jù)這個(gè)特點(diǎn),我們將行業(yè)相關(guān)的實(shí)體,按照面向?qū)ο蟮乃季S,進(jìn)行封裝。從智能化角度上看,其優(yōu)點(diǎn)是:引入了面向?qū)ο蟮木幊趟季S,初步實(shí)現(xiàn)由通過簡單的幾何元素(線、圓、圓弧等)畫圖轉(zhuǎn)變成由實(shí)體進(jìn)行拼圖,將大大提高工作效率。缺點(diǎn)是,系統(tǒng)參數(shù)化功能不強(qiáng),系統(tǒng)應(yīng)用范圍過于專一,并且由于系統(tǒng)中描述的工程實(shí)體不具有自適應(yīng)性,不利于新產(chǎn)品的設(shè)計(jì)。
智能圖元化設(shè)計(jì)綜合了參數(shù)化設(shè)計(jì)和集成化設(shè)計(jì)的優(yōu)點(diǎn),盡量避免他們的缺點(diǎn),它是通過“智能圖元”來實(shí)現(xiàn)。智能圖元是完全按照“面向?qū)ο蟆钡乃季S上建立的,它外在表現(xiàn)為圖形的集成,但又不同于集成化設(shè)計(jì),首先,智能件圖元表現(xiàn)的圖形不是完全針對(duì)某個(gè)產(chǎn)品,而是針對(duì)常用圖形單元;其次,智能圖元具有良好的參數(shù)化;最后,也是最重要的,智能圖元具有自適應(yīng)性,能夠根據(jù)一定的外在條件改變自己的拓?fù)鋵傩,能夠真正?shí)現(xiàn)“拼圖”功能。4.2參數(shù)化設(shè)計(jì)原理
CAD系統(tǒng)的參數(shù)化設(shè)計(jì)主要是針對(duì)產(chǎn)品建模,當(dāng)前,在產(chǎn)品建模中,也主要是約束建模。在產(chǎn)品約束建模中,將工程知識(shí)與產(chǎn)品模型的幾何元素和拓?fù)潢P(guān)系結(jié)合起來,建立圖形和工程信息的聯(lián)系,實(shí)現(xiàn)計(jì)算機(jī)參數(shù)化設(shè)計(jì)的智能化。
實(shí)現(xiàn)參數(shù)化CAD系統(tǒng)的關(guān)鍵是建立參數(shù)化模型。模型的建立需要圖形信息的描述。圖形信息包括幾何信息和拓?fù)湫畔ⅰM負(fù)湫畔⒅饕敲枋鰩缀涡畔⒅g的約束。參數(shù)化所要解決的二個(gè)主要問題:約束的描述和約束的求解。
4.2.1約束的描述
設(shè)計(jì)過程可視為約束滿足的過程,設(shè)計(jì)活動(dòng)本質(zhì)上是通過提取產(chǎn)品有效的約束來建立其約束模型并對(duì)約束求解。約束可以解釋為若干個(gè)對(duì)象之間的關(guān)系,也就是限制一個(gè)或多個(gè)對(duì)象滿足一定的關(guān)系R(A、B、C……),對(duì)約束的求解就是找出約束為真的對(duì)象的值。
在參數(shù)化模型中約束可分為幾何約束和工程約束面向二大類。
幾何約束是指幾何元素之間滿足的某種關(guān)系.利用幾何約束,就可以方便地表達(dá)其設(shè)計(jì)意圖。
幾何約束包括結(jié)構(gòu)約束和尺寸約束,其中結(jié)構(gòu)約束是指拓?fù)渑c結(jié)構(gòu)上的約束,體現(xiàn)的是圖形元素之間的關(guān)系,在參數(shù)化設(shè)計(jì)中,一般是不變動(dòng)的對(duì)象,又成為不變約束,主要包括水平、鉛垂、共點(diǎn)、相切、平行、垂直、共線、夾角等約束。尺寸約束是指固定幾何元素之間相對(duì)位置的約束,是對(duì)圖形元素的幾何屬性的描述,一般是可變的對(duì)象,又稱為可變約束,包括角度、長度、半徑、坐標(biāo)、方向等約束。
由于給予變分幾何的方法用多元非線形方程組來描述一組約束,采用數(shù)值方法迭代求解,能較好地解決復(fù)雜的約束關(guān)系。因此,本文采用了變分幾何為核心算法的基礎(chǔ),同時(shí)對(duì)同樣存在的效率問題作了修改和完善,并提高了可靠性。
基于變量幾何法的參數(shù)設(shè)計(jì)中,約束描述方法是將其表示為代數(shù)方程組。對(duì)圖形實(shí)體的所有幾何或尺寸約束都可以表示為方程,方程中的變量是坐標(biāo)點(diǎn)的分量。這些點(diǎn)一般稱為特征點(diǎn)。在二維圖形中,每個(gè)特征點(diǎn)有二個(gè)自由度,即(x,y)坐標(biāo)值。用N個(gè)特征點(diǎn)定義的圖形共有2N個(gè)自由度。相應(yīng)需要建立2N個(gè)獨(dú)立約束的方程組才能唯一確定圖形的形狀和位置。
結(jié)構(gòu)約束有水平、鉛垂、共點(diǎn)、相切、平行、垂直、點(diǎn)在直線上,相切、共線、共圓,固定點(diǎn)等。尺寸約束有點(diǎn)到點(diǎn)的距離,夾角,半徑等。對(duì)于工程約束,也可以轉(zhuǎn)化成幾何或尺寸約束。
以上幾種約束的表示方法如下:
(1)水平:y2-y1=O
(2)鉛垂:x2-x1=O
(3)直線1((xl,y1),(x2,y2))與直線2((x3,y3),(x4,y4))平行:
(x2-x1)*(y4-y3)-(y2-y1)*(x4-x3=O
(4)直線1((xl,yl),(x2,y2))與直線2((x3,y3),(x4,y4))垂直:
(y2-yl)*(y4-y3)+(x2-xl)*(x4-x3)=0
(5)點(diǎn)((x1, y1)在直線((x2,y2),(x3,y3))上:
(x2-xl)*(y3-y1)-(y2-y1)*(x3-x1)=O
工程約束是指尺寸之間的約束關(guān)系以及變量尺寸和其它外在設(shè)計(jì)變量之間的約束關(guān)
系,通過人工定義尺寸變量及它們之間在數(shù)值上和邏輯上的關(guān)系來表示。相應(yīng)的,在參數(shù)化設(shè)計(jì)系統(tǒng)中,設(shè)計(jì)人員根據(jù)工程關(guān)系和幾何關(guān)系來指定設(shè)計(jì)要求,要滿足設(shè)計(jì)要求,不僅需要滿足尺寸或工程參數(shù)的初值,而且要在每次改變這些設(shè)計(jì)參數(shù)來維護(hù)這些基本關(guān)系,其中尺寸值是可以變的,而幾何元素的各種連接幾何信息是不變的。圖形參數(shù)化設(shè)計(jì)的本質(zhì)是根據(jù)圖形中的不變約束,進(jìn)行幾何求解,確定可變約束,產(chǎn)生新的圖形的過程。
4.2.2基于變量幾何法的約束的求解
在參數(shù)化圖形中,含有N個(gè)特征點(diǎn),則在二維平面中,將所有特征點(diǎn)的未知分量寫成分量:
x=(x1,x2,…,xn)T, n=2N,表示形體的總自由度
同樣,將已知的尺寸標(biāo)注約束方程的值,包括結(jié)構(gòu)約束條件在內(nèi),也寫成
矢量:
d=(d1,d2,…,dn)T,
于量,變量幾何的一個(gè)實(shí)例就是求解以下一組非線形方程組的一個(gè)具體解:
或?qū)懗梢话阈问剑?SPAN lang=EN-US>F(xi,dI)=0 i=1,2,3,…,n
約束方程組中有三個(gè)方程用來阻止剛體的平移和旋轉(zhuǎn),剩余的(n-6)個(gè)約束取決于具體的尺寸標(biāo)注方法和約束的類型等條件。求解非線形方程組的具體方法是牛頓迭代,即xn+1=xn-[F(xn)]-1F(xn)
或J·△x=r
其中△x={△x 1,△x 2,…△x n}T 表示各個(gè)自由度的少量位移。
r={-F1,-F2,-Fn}T,表示方程組的殘余個(gè)數(shù)。
在變量幾何法中,約束轉(zhuǎn)化為一系列以特征點(diǎn)為變量的非線形方程組,對(duì)于給定的約束,通過數(shù)值法求解非線形方程組確定出幾何細(xì)節(jié)。
4.2.2參數(shù)化設(shè)計(jì)實(shí)現(xiàn)
參數(shù)化設(shè)計(jì)實(shí)現(xiàn)的流程圖如圖4-1所示。
從這個(gè)流程圖上,整個(gè)參數(shù)化過程是圍繞“參數(shù)模型”,也就是約束的方程建立和求解。在注解過程中,如果圖形中的圖形元素較多,則求解的方程回很多,使得求解的復(fù)雜程度大,時(shí)間長,未了簡便方程組的求解,采用分解的方法,簡化求解的復(fù)雜度。也正是如此,參數(shù)化設(shè)計(jì)適合于一些簡單的圖紙?jiān)O(shè)計(jì),而對(duì)于復(fù)雜的圖形,由于方程組求解的時(shí)間太長而不適用;
4.3集成化CAD設(shè)計(jì)
集成化CAD設(shè)計(jì)是面向?qū)ο蟮木幊趟季S用在CAD系統(tǒng)中的產(chǎn)物。在傳統(tǒng)的CAD系統(tǒng)中,設(shè)計(jì)者所面對(duì)的和所操作的是一些簡單幾何的點(diǎn)、線、圓、圓孤等,其圖形設(shè)計(jì)思維是:由簡單幾何(線、圓、圓弧等)一零件圖形一產(chǎn)品圖形。參數(shù)化設(shè)計(jì)主要是實(shí)現(xiàn)第一步,利用約束方程組的求解,進(jìn)而實(shí)現(xiàn)產(chǎn)品的結(jié)構(gòu)單元圖的實(shí)現(xiàn),這對(duì)于簡單的圖形或草圖是合適的,但對(duì)于工程中復(fù)雜的圖形來說,是不合適的。而集成化CAD,它主要是高效率地實(shí)現(xiàn)第二步過程,忽略了第一步,直接由零件圖形拼成產(chǎn)品圖形。
集成化CAD設(shè)計(jì),是專用CAD系統(tǒng)中所采取的設(shè)計(jì)方法,主要是針對(duì)一些行業(yè)(如建筑設(shè)計(jì)、室內(nèi)設(shè)計(jì)等行業(yè)),在這些行業(yè)的工程圖紙內(nèi)容描述中,僅僅是一些具有該行業(yè)中的實(shí)際實(shí)體意義的實(shí)體圖形組合而成,例如門實(shí)體、窗實(shí)體和墻實(shí)體等。而這些具有實(shí)際實(shí)體意義的實(shí)體,也正是面向?qū)ο蟮木幊叹幚碇械膶?duì)象(object,進(jìn)一步抽象成具有共同特定屬性的“類”,并賦予這些實(shí)體相應(yīng)的屬性,即類的成員變量、成員函數(shù)等。
通過對(duì)這些行業(yè)中的實(shí)體封裝以后,面對(duì)系統(tǒng)操作者的都是一些具有實(shí)際意義的行業(yè)實(shí)體和繪圖相關(guān)實(shí)體,而屏蔽了幾何的點(diǎn)、線、圓、圓弧等。最重要的突破是對(duì)工程圖形的理解的突破,由原先簡單幾何的點(diǎn)、線、圓、圓弧等組合成一個(gè)產(chǎn)品圖形,發(fā)展到由工程實(shí)體圖形拼成產(chǎn)品圖形,是一種徹底的組裝裝配圖,將面向?qū)ο蟮母拍钔耆氲?SPAN lang=EN-US>CAD設(shè)計(jì)中,集成化設(shè)計(jì)基本脫離了參數(shù)化建模的過程,對(duì)每個(gè)實(shí)體的參數(shù)化功能要求不高。
在傳統(tǒng)的CAD系統(tǒng)中,我們以在PC機(jī)上最流行的AutoCAD軟件為例。在其二次開發(fā)中,AutoCAD軟件R14以前的版本中,對(duì)典型的面向?qū)ο蟮恼Z言C++中“類”不支持,故只能做一些參數(shù)化的二次開發(fā),而不能對(duì)Au七。CAD軟件進(jìn)行真正意義上的面向?qū)ο蟮募砷_發(fā);但是,AutoCAD軟件的R14版本徹底改變了這種情況,Autodesk公司在AutoCAD R14中吸收了ObjectARX技術(shù),可以對(duì)AutoCAD R14版本進(jìn)行ARX開發(fā)。利用C++中的“類”的技術(shù),將AutoCAD系統(tǒng)的基本核心模塊(如各種幾何操作函數(shù))進(jìn)行封裝,而不必關(guān)心其內(nèi)部是如何操作的,減少重復(fù)開發(fā)底層模塊的工作,把主要精力放在開發(fā)應(yīng)用模塊上,擴(kuò)充已有模塊的功能,體現(xiàn)了面向?qū)ο蠹夹g(shù)中的“封裝性”、“繼承性”。
4.3.1集成化CAD系統(tǒng)的總體結(jié)構(gòu)
集成化CAD系統(tǒng),從系統(tǒng)的整體結(jié)構(gòu)上,在CAD系統(tǒng)的UI之上,建立集成化后工程實(shí)體的UI,通過UI進(jìn)一步調(diào)用集成后的對(duì)實(shí)體操作的UI。在AUTOCADRl4的面向?qū)ο蟮募砷_發(fā),引入了ObjectARX技術(shù),增加了對(duì)“類”的全面支持,應(yīng)用了具有面向?qū)ο蠹夹g(shù)中“類”特性的實(shí)體模塊,將所有操作集成在若干類的函數(shù)或方法里,其體系結(jié)構(gòu)簡圖見圖4-2。面向?qū)ο蟮?SPAN lang=EN-US>CAD集成軟件主要包括了實(shí)體核心模塊、信息存儲(chǔ)模塊和用戶界面模塊。其中,實(shí)體核心模塊是最主要、最基礎(chǔ)的模塊,是它對(duì)CAD系統(tǒng)進(jìn)行徹底的封裝,使得系統(tǒng)在用戶面前體現(xiàn)的不再是簡單幾何的點(diǎn)線圓,而是一個(gè)個(gè)工程實(shí)體;同時(shí),它也是不同行業(yè)對(duì)CAD不同集成要求的具體體現(xiàn)。
1、用戶界面
用戶使用系統(tǒng)接觸到的第一個(gè)功能就是用戶界面。軟件工程的一個(gè)重要指標(biāo)就是用戶界面友好、操作方便。根據(jù)目前的潮流,以Windows為基礎(chǔ)的交互式的界面最受人們歡迎。AutoCAD的界面就是以Windows為基礎(chǔ)的交互式的界面,而且,AutoCAD軟件有一個(gè)很好的接口(對(duì)acad.mns文件進(jìn)行編輯)讓用戶自行開發(fā)所須界面。故,可以以AutoCAD的界面為基礎(chǔ),根據(jù)各個(gè)行業(yè)的行業(yè)習(xí)慣,把不同實(shí)體進(jìn)行歸類,編寫所須的菜單條和對(duì)話框去觸發(fā)各個(gè)實(shí)體的屬性、函數(shù)和方法。
2、實(shí)體集合
實(shí)體(Object)是面向?qū)ο笾械暮诵膬?nèi)容,實(shí)體也是面向?qū)ο笙到y(tǒng)中的唯一的操作者和承受者,總的來說,實(shí)體主要由三部分構(gòu)成:屬性、方法和函數(shù)。實(shí)體也是面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)中的最重要的核心部分,根據(jù)工程圖紙正系統(tǒng)中所實(shí)現(xiàn)的內(nèi)容,主要分為:圖紙實(shí)體、通用實(shí)體、工程實(shí)體和.工具實(shí)體。圖紙實(shí)體主要是描述每一張圖紙的所有特征信息和相關(guān)圖紙操作;通用實(shí)體主要是描述AutoCAD中的所有系統(tǒng)變量及其值的設(shè)置;工程實(shí)體是描述工程產(chǎn)品的特征信息及其信息處理服務(wù),工具實(shí)體主要是對(duì)整個(gè)圖紙的信息標(biāo)注。
3、信息存儲(chǔ)
在CAD系統(tǒng)里,一般對(duì)一張圖紙信息的存儲(chǔ)是通過一個(gè)文件(即圖形數(shù)據(jù)庫)實(shí)現(xiàn),而在這個(gè)文件中,文件圖形數(shù)據(jù)庫中僅僅存儲(chǔ)圖紙的幾何點(diǎn)、線、圓和圓弧等信息;而在面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)里,需要存儲(chǔ)的是整個(gè)圖紙的實(shí)體集合信息,并且由于每個(gè)實(shí)體又是由若干幾何點(diǎn)、線、圓和圓弧等信息構(gòu)成。因此,僅僅一個(gè)文件還是不夠的,還需要利用附加文件去記錄圖紙中所有實(shí)體完整的特征產(chǎn)品信息。
4.3.2實(shí)體模型
在面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)里,系統(tǒng)數(shù)據(jù)模型的基本元素就是ARX開發(fā)語言中的(多是C/C++語言)類,類實(shí)例化后稱為對(duì)象或?qū)嶓w,整個(gè)圖紙就是一個(gè)實(shí)體集合,主要由四大塊組成:圖紙實(shí)體集合、通用實(shí)體集合、工程實(shí)體集合和工程實(shí)體集合。其中,圖紙實(shí)體、通用實(shí)體和工具實(shí)體都為獨(dú)立類,沒有父類或子類;而工程實(shí)體集合中的各工程實(shí)體是由具有基本特征的基類實(shí)體派生而來,具有一個(gè)基類和若干個(gè)派生類,并且各實(shí)體集之間互相獨(dú)立(如圖4-3所示)
實(shí)體集合中的各類實(shí)體在圖紙的繪制和再認(rèn)識(shí)過程中,分工明確,互不干涉。在圖紙實(shí)體集合里,圖紙信息實(shí)體主要管理圖紙的圖幅、比例等圖紙?zhí)卣鲗傩缘脑O(shè)置;圖紙操作實(shí)體主要管理圖紙的打印、視圖的放大縮小等等。在通用實(shí)體集合里,圖層信息實(shí)體主要管理圖層(Layer)中的線型、顏色等圖層特征屬性;空間信息實(shí)體主要管理圖紙的維數(shù)、視圖的種類等。在工具實(shí)體集合里,尺寸標(biāo)注實(shí)體管理圖紙的尺寸標(biāo)注;其他標(biāo)注實(shí)體管理漢字的標(biāo)注、公差的標(biāo)注等等。在最核心的工程實(shí)體集合里,基類實(shí)體主要管理所有工程實(shí)體都具有的共同的屬性及方法,而派生類工程實(shí)體是基類實(shí)體的派生類,是不同行業(yè)甲的具體實(shí)體,它不僅繼承了基類實(shí)體的所有共同屬性和方法,還具有工程實(shí)體一些獨(dú)特的屬性和方法。
在上面所說的四種實(shí)體里,圖紙實(shí)體、通用實(shí)體、工具實(shí)體都是一些簡單實(shí)體,基本上是對(duì)一些AutoCAD的操作命令進(jìn)行集成,使之能夠?qū)こ虒?shí)體進(jìn)行操作,并且符合不同行業(yè)的命名規(guī)則。而最復(fù)雜的是工程實(shí)體,首先,每個(gè)行業(yè)中工程實(shí)體的種類繁多,必須進(jìn)行細(xì)致有序的分類,使之符合行業(yè)習(xí)慣;其次,確定基類與派生類之間的關(guān)系,有效地定義基類的各個(gè)屬性、方法和函數(shù),便于擴(kuò)充派生類;最后,要完整的定義每一個(gè)工程實(shí)體的所有的屬性、方法和函數(shù),特別重要的是,要很好地利用AutoCAD已提供的所有信息資源。對(duì)于以上的問題,第一,要對(duì)行業(yè)的需求十分清晰,能夠?qū)π袠I(yè)中涉及到的工程實(shí)體進(jìn)行歸納,要具有“面向?qū)ο蟆钡木幊趟季S;第二,基類涉及的屬性方法和函數(shù)基本上與實(shí)體圖形的操作有密切關(guān)系(如圖4-4所示);派生類主要涉及到工程實(shí)體的特征屬性、特征方法和特征函數(shù)(如圖4-5示),完整地定義其基類和派生類是“面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)”中的核心部分;第三,要充分的利用AutoCAD已提供的資源,主要就是要利用AutoCAD系統(tǒng)中的*,dwg文件的圖形文件數(shù)據(jù)庫中的資源,熟悉各種AutoCAD中實(shí)體(例如點(diǎn)、直線、圓弧等)的DXF碼規(guī)則,并從中提取相關(guān)特征信息;第四,由于在AutoCAD中的.dwg文件中,存儲(chǔ)的是一些簡單的幾何的點(diǎn)、直線、圓、弧等信息,故還需要另一個(gè)文件去記錄整個(gè)圖紙的工程實(shí)體圖形的邏輯關(guān)系(下一節(jié)詳細(xì)介紹),隨同*.dwg文件的打開而打開,標(biāo)識(shí)*.dwg文件圖形中的實(shí)體圖形邏輯關(guān)系,隨同*.dwg文件的關(guān)閉而記錄*.dwg文件中的實(shí)體圖菜邏輯關(guān)系。
4.3.3信息存儲(chǔ)
如前所述,在AutoCAD中的*,dwg文件中只存儲(chǔ)簡單的幾何點(diǎn)、直線、圓、圓弧等信息,而在面向?qū)ο蟮?SPAN lang=EN-US>AutoCAD集成開發(fā)系統(tǒng)里,還所須存儲(chǔ)的工程實(shí)體的信息,而這些實(shí)體在圖紙上就是通過若干簡單的幾何點(diǎn)、直線、圓、圓弧等信息的集成而體現(xiàn)的。因而,對(duì)于系統(tǒng)的信息存儲(chǔ),不僅利用*.dwg文件的圖形數(shù)據(jù)庫記錄整個(gè)圖紙的簡單幾何信息,還須記錄實(shí)體信息,或者說,記錄描述圖紙的信息,這對(duì)于圖形的再認(rèn)識(shí)是非常重要的。圖紙信息存儲(chǔ)主要包括二個(gè)方面:一、單個(gè)實(shí)體的信息存儲(chǔ);二、整個(gè)圖紙里所有的實(shí)體的綜合信息存儲(chǔ)。
1、單個(gè)實(shí)體的信息存儲(chǔ)
單個(gè)實(shí)體是通過點(diǎn)、直線、圓、圓弧等信息的集成而體現(xiàn)的,因此,在對(duì)實(shí)沐類進(jìn)行定義時(shí),可充分利用AutoCAD中的“實(shí)體集合”這個(gè)設(shè)計(jì)概念,把*.dwg圖形數(shù)據(jù)庫中的若干幾何信息集成起起來,使之成為一個(gè)整體,再將此“實(shí)體集合”并入實(shí)體類的一個(gè)屬性(見圖4-6),當(dāng)實(shí)體在繪制、移動(dòng)等操作中被調(diào)用。
2、整個(gè)圖紙實(shí)體綜合信息的存儲(chǔ)
用戶對(duì)實(shí)體進(jìn)行查找、移動(dòng)、旋轉(zhuǎn)、刪除等操作,系統(tǒng)首先要在整個(gè)圖紙中搜索該實(shí)體,因而,系統(tǒng)必須對(duì)整個(gè)圖紙的實(shí)體的綜合信息進(jìn)行存儲(chǔ),多采用鏈?zhǔn)浇Y(jié)構(gòu),設(shè)置一個(gè)鏈頭和一個(gè)指向當(dāng)前實(shí)體的指針。采用鏈?zhǔn)浇Y(jié)構(gòu)的原因是它很方便進(jìn)行查找、插入、刪除,效率高,簡單明了。(見圖4-7)
4.3.4參數(shù)化過程
在面向?qū)ο蟮?/SPAN>CAD集成開發(fā)系統(tǒng)里,我們操作的對(duì)象是工程實(shí)體,由于同一類型的工程實(shí)體的由于各自的型號(hào)不同,在圖紙表現(xiàn)上也有不同的,例如對(duì)于建筑圖紙中的“門”實(shí)體,各種門的高度與寬度是不同的,因此在圖紙表現(xiàn)上也應(yīng)該區(qū)分的,需要一定的參數(shù)化的功能,而參數(shù)化的數(shù)據(jù)就是實(shí)體自身的特性尺寸。在系統(tǒng)里,對(duì)工程實(shí)體是作為一個(gè)類的實(shí)例來處理,將所有的屬性函數(shù)封裝起來,利用類的函數(shù)對(duì)實(shí)體的特性尺寸進(jìn)行重新設(shè)置。因此,通過實(shí)體的函數(shù)對(duì)實(shí)體屬性進(jìn)行改變和對(duì)實(shí)體函數(shù)的再調(diào)用,實(shí)現(xiàn)參數(shù)化CAD系統(tǒng)。
簡圖如下:
4.4智能圖元設(shè)計(jì)法
智能圖元設(shè)計(jì)法是以智能圖元為核心、以圖形的可分解性為思路的一種全新的CAD系統(tǒng)設(shè)計(jì)。它不同于參數(shù)化設(shè)計(jì)和集成化設(shè)計(jì),從設(shè)計(jì)思路上說,依據(jù)“一個(gè)復(fù)雜圖形是由若干個(gè)簡單圖形邏輯組合而成”,升華了“簡單幾何的點(diǎn)線圓圓弧組合成產(chǎn)品圖形”的思維。參數(shù)化設(shè)計(jì)是針對(duì)建立的參數(shù)模型,通過傳遞的參數(shù),根據(jù)參數(shù)模型的拓?fù)潢P(guān)系,組合簡單的幾何實(shí)體(點(diǎn)、線、圓、圓。;集成化設(shè)計(jì)是針對(duì)專門行業(yè)中的工程實(shí)體的圖形單元設(shè)計(jì),是圍繞整個(gè)圖紙而言。智能圖元設(shè)計(jì)法與集成化設(shè)計(jì)一樣,是面對(duì)對(duì)象的,但智能圖元設(shè)計(jì)法是以智能圖元為目標(biāo),不受行業(yè)的限制,擴(kuò)寬了系統(tǒng)應(yīng)用范圍,并且,智能圖元設(shè)計(jì)法是針對(duì)圖形的,最重要的是,智能圖元的功能遠(yuǎn)比工程實(shí)體圖形單元的功能豐富。智能化圖元也具有參數(shù)化功能,集成到智能圖形單元的“類”屬性和函數(shù)中。
對(duì)于每一張工程產(chǎn)品圖紙,盡管圖與圖之間是千差萬別的,但是一個(gè)產(chǎn)品圖的某個(gè)結(jié)構(gòu)總是可以從其他零產(chǎn)品圖中找到相同或相似的。為了有效地利用這些相同或相似的圖形單元,提出拼圖法繪圖:在裝配圖中,一個(gè)機(jī)器由若干個(gè)零件圖組裝而成;而在零件圖中,一個(gè)零件可看作是由若干圖形單元組成,如:一個(gè)零件外型圖形單元和若干個(gè)零件內(nèi)腔圖形單元(包括開孔)組成。歸納來說,無論是裝配圖還是零件圖,都是由若干圖形單元拼成,而且不是簡單的把圖形放到一起,還存在圖形單元的變化。例如:由零件圖拼成裝配圖中,需要有部分零件圖的打斷、消隱等工作;由零件外型圖形單元和內(nèi)腔圖形單元組成零件圖時(shí),更要涉及到圖形圖形之間的打斷、消隱、圓角化等等。這就決定了圖形單元應(yīng)具有部分智能化,命名為智能圖元,它與普通的圖形單元最大的不同在于:智能圖元可以在不同的周圍圖形環(huán)境下自動(dòng)調(diào)整其表現(xiàn)形式。這種以“智能圖元”為設(shè)計(jì)單元的設(shè)計(jì)方法稱為智能圖元法。
4.4.1智能圖元
智能圖元是具有一定拓?fù)潢P(guān)系、特征點(diǎn)、內(nèi)函數(shù)、外函數(shù)和幾何單元的圖形單元,是拼圖法繪圖思維中的基本單元。特別地,智能圖元具有面向?qū)ο笤O(shè)計(jì)中的“類”的特性,即封裝性和繼承性。如前所述,任何一幅圖形都是由若干圖形單元按照一定的邏輯關(guān)系組合而成,例如,在裝配圖中,圖形單元表現(xiàn)為零件圖形單元,而在零件圖中,圖形單元?jiǎng)t表現(xiàn)為零件結(jié)構(gòu)單元。
1、智能圖元的模型
在系統(tǒng)實(shí)現(xiàn)中,智能圖元是一個(gè)典型的“類”的結(jié)構(gòu),包括幾何單元集合、拓?fù)潢P(guān)系描述、特征點(diǎn)集合、內(nèi)函數(shù)和外函數(shù)(見圖4-9),定義如下:
class Intellitive_Graphics_unit
{
Private:
INT FeatUre_size[MAX];//特征尺寸
INT Circumstance_ID;//環(huán)境ID
ads_point base_point;//基點(diǎn)
INT Entity_Color;//顏色
INT Entity_Lttype;//線形
Public:
RTPICKS Geometry_Entitvy;//幾何單元實(shí)體幾何
INT Topology_ID;//拓?fù)潢P(guān)系的ID
RTPICKS Feature_Point;//特征點(diǎn)
Void Show(INT scale);//顯示
Void delete();//刪除
Void move(ads_point new_position);//移動(dòng)
Void rotate(ads_real_new_angle);//旋轉(zhuǎn)
Void Get_circumstance_ID();//取得環(huán)境ID
Void adapt_function(INT circumstance_ID);//外函數(shù)
幾何單元是智能圖元的最基本圖形結(jié)構(gòu)單元的集合,例如線、圓、圓弧等,其具體的組合規(guī)則是受拓?fù)潢P(guān)系控制;拓?fù)潢P(guān)系是智能圖元的內(nèi)在特征屬性,它是具體指導(dǎo)幾何單元的有機(jī)地組合方式,它和幾何單元一起構(gòu)成了智能圖元的外在表現(xiàn)形式;特征點(diǎn)是智能圖元對(duì)外界信息響應(yīng)的入口點(diǎn),當(dāng)智能圖元在繼承另一個(gè)智能圖元時(shí)的拓?fù)潢P(guān)系的改變,以及各智能圖元在圖紙中組合時(shí)的拓?fù)潢P(guān)系改變,都是通過對(duì)特征點(diǎn)的激活,調(diào)用圖元的外在函數(shù),從而使智能圖元的拓?fù)潢P(guān)系按照一定的規(guī)則進(jìn)行改變,重要的是,它能夠根據(jù)已確認(rèn)的規(guī)則而實(shí)現(xiàn)智能化。外在函數(shù)就是一個(gè)智能圖元響應(yīng)具體的外界信息時(shí),其拓?fù)潢P(guān)系改變的具體方式,外在函數(shù)種類繁多,全部存放在智能圖元的外在函數(shù)庫里,根據(jù)具體的外界信息,選擇相應(yīng)的外在函數(shù);但它也受拓?fù)潢P(guān)系和幾何單元的約束,就好象無法求得二條平行線的交點(diǎn);內(nèi)在函數(shù)是指對(duì)智能圖元幾何單元操作的具體功能,例如:繪制、移動(dòng)、刪除、旋轉(zhuǎn)等等。
2、智能圖元的結(jié)構(gòu)特征
智能圖元,是圖紙單元與“面向?qū)ο蟆痹O(shè)計(jì)思維的結(jié)合體,不僅具有類的兩大屬性:封裝性、可繼承性;而且具有圖紙單元的特征不定性。
封裝性:對(duì)于某個(gè)智能圖元的具體操作,能且只能通過對(duì)其內(nèi)部函數(shù)或(和)外部函數(shù)實(shí)現(xiàn),而不能通過其他操作實(shí)現(xiàn),以防止產(chǎn)生信息干擾。
可繼承性:一個(gè)智能圖元不僅可以是其他智能圖元的父圖元,也可以是一個(gè)或多個(gè)智能圖元的子圖元,最底層的智能圖元稱為基圖元,他們沒有父圖元;最上層的智能圖元稱為表圖元,他們沒有子圖元,其集成度最高;就象一個(gè)機(jī)器的裝配圖由若干個(gè)零件圖組成,而一個(gè)零件圖是由若干個(gè)結(jié)構(gòu)單元組成,整個(gè)智能圖元集合屬于一種比較復(fù)雜的層次結(jié)構(gòu),如圖4-9。
特征不定性:當(dāng)一個(gè)智能圖元繼承另一個(gè)智能圖元后,其屬性并不是被簡單的擴(kuò)大了,而是一些屬性消失而另外一些屬性出現(xiàn)了。這也是智能圖元之間由于智能圖元特征點(diǎn)的激活而使智能圖元拓?fù)潢P(guān)系邏輯迭加、幾何單元的改變(打斷,消隱等)表現(xiàn)形式。
3、智能圖元的工作模式
智能圖元設(shè)計(jì)法是以智能圖元為最小設(shè)計(jì)單位,利用智能圖元對(duì)環(huán)境的自適應(yīng)功能,完成實(shí)際意義的拼圖法設(shè)計(jì),智能圖元對(duì)環(huán)境的自適應(yīng)功能首先是通過對(duì)智能圖元的特征點(diǎn)激活開始。詳細(xì)見圖4-10。
通過對(duì)特征點(diǎn)的激活,首先判斷激活值,是調(diào)用外部函數(shù)還是調(diào)用內(nèi)部函數(shù),如果是調(diào)用內(nèi)部函數(shù),則根據(jù)激活值,調(diào)用某個(gè)內(nèi)部函數(shù),實(shí)現(xiàn)智能圖元自身的操作,如刪除、放大、旋轉(zhuǎn)等等;如果是調(diào)用外部函數(shù),則再獲取周圍圖元信息,并以此查詢外部函數(shù)庫,得到某個(gè)外部函數(shù),則調(diào)用此外部函數(shù),實(shí)現(xiàn)智能圖元的拓?fù)潢P(guān)系和幾何單元信息的改變。(如圖4-11所示)
4.4.2智能圖元法程序設(shè)計(jì)步驟
1)通過閱讀常用圖紙信息,提煉出其中具有一般特性的圖形單元。提取圖形單元的一般規(guī)則:
(l)先提取結(jié)構(gòu)簡單的基圖元,再提取高層結(jié)構(gòu)復(fù)雜的圖元,充分利用智能圖元的繼承性。
(2)基圖元的提取要相對(duì)通用但不完全通用,而高層結(jié)構(gòu)復(fù)雜的圖元?jiǎng)t相對(duì)專用。
2)記錄每個(gè)圖元的拓?fù)潢P(guān)系、特征點(diǎn)
3)建立圖形單元拓?fù)潢P(guān)系變化庫,賦予圖元智能化,并建立智能圖元的外在函數(shù)庫。
4)建立智能圖元的調(diào)用規(guī)則:復(fù)雜智能圖元優(yōu)先于簡單智能圖元。
4.4.3智能圖元的分類
根據(jù)拼圖法對(duì)智能圖元的智能化的側(cè)重點(diǎn)要求不同,將智能圖元分為二類:基于產(chǎn)品結(jié)構(gòu)的智能圖元化和基于特性尺寸的智能圖元化。基于產(chǎn)品結(jié)構(gòu)的智能圖元主要是對(duì)各種圖形單元的抽象,其重點(diǎn)是對(duì)特征點(diǎn)的激活和外函數(shù)中拓?fù)潢P(guān)系對(duì)環(huán)境適應(yīng)的描述,建立此類智能圖元難度很大;而基于特性尺寸的智能圖元主要是對(duì)拓?fù)潢P(guān)系固定的圖形單元的抽象,建立此類智能圖元難度不大,這類智能圖元一般都是基圖元,很少有繼承圖元。例如,對(duì)各種標(biāo)準(zhǔn)件和通用件等系列化的產(chǎn)品等的引用。
1、智能圖元模型實(shí)例
按照智能圖元提取的一般規(guī)則,對(duì)于一般工程圖紙的實(shí)際狀況,常用簡單零件結(jié)構(gòu)的外形是四邊形(圖4-11),對(duì)于此類四邊形的定義,根據(jù)“基圖元的提取要相對(duì)通用但不完全通用”原則,一般是用梯形結(jié)構(gòu)來歸納,其定義如下:
幾何單元:五條線段:a,b,c,d,e
拓樸關(guān)系:滿足梯形定義(a//c),a,b線交B點(diǎn),a、d線交A點(diǎn),d、c線交C點(diǎn),c、b線交D點(diǎn),e是梯形的中線。
特征點(diǎn):可定義為四個(gè)頂點(diǎn)(A、B、C、D)或線段中點(diǎn)或其他點(diǎn)
內(nèi)函數(shù):智能圖元的移動(dòng)、刪除、旋轉(zhuǎn)等
外函數(shù):線段的打斷、與凹凸槽的接口等
2、智能圖元繼承實(shí)例
為減少圖元開發(fā)的重復(fù)性工作,應(yīng)充分利用智能圖元的繼承性,例如,另外一個(gè)智能圖元繼承上面的智能圖元,是在圖4所示的智能圖元的基礎(chǔ)上,增加內(nèi)腔結(jié)構(gòu)智能圖元(圖4-12),形成子圖元,其定義如下:
幾何單元:若干線段
拓?fù)潢P(guān)系:滿足圖4-12形狀
特征點(diǎn):Ll、LZ線段上的所有點(diǎn)
內(nèi)函數(shù):智能圖元的移動(dòng)、刪除、旋轉(zhuǎn)等
外函數(shù):線段的打斷,圓角化等
3、智能圖元拼圖實(shí)例
圖4-12所介紹的圖元為一個(gè)簡單的機(jī)架結(jié)構(gòu),現(xiàn)在要完整其結(jié)構(gòu),利用拼圖,拼上一個(gè)內(nèi)部支座的智能圖元(圖4-13),激活特征點(diǎn),調(diào)用外部函數(shù),智能圖元將會(huì)自動(dòng)打斷如圖4-12中所示的Ll、L2線段。
4.4.4智能圖元法繪圖的特點(diǎn).
1)繪圖效率高,把若干個(gè)圖元(特別是集成度較高的表面圖元)按照一定的邏輯順序拼成一幅圖,當(dāng)然比用簡單的幾何繪圖元素(線、圓、圓弧)繪圖的效率高的多。
2)繪圖范圍廣,參數(shù)化好。圖元不同與AutoCAD中的“block”,他可以在基本的拓樸關(guān)系變的前提下,圖元中的幾何單元可以呈現(xiàn)出多種圖形,并且,當(dāng)圖元在繼承其他圖元或圖元互相組成完整圖時(shí),可改變拓樸關(guān)系,更使圖形多種多樣。
3)繪圖準(zhǔn)確性高,通過激活圖元的特征點(diǎn),可以自動(dòng)改圖元的拓樸關(guān)系,實(shí)現(xiàn)對(duì)某些線條的添加、刪除和剪切,可減少繪圖中常見的錯(cuò)誤。