基于圖形結(jié)構(gòu)的智能化設(shè)計方法
【本章摘要】本章首先分析了基于產(chǎn)品圖形的智能化設(shè)計的內(nèi)涵砚尽、發(fā)展和形式描述彭旬,詳細分析了參數(shù)化設(shè)計的原理、集成化設(shè)計的系統(tǒng)結(jié)構(gòu)和智能圖元化設(shè)計的詳細內(nèi)容。
4.1CAD系統(tǒng)的智能化
CAD系統(tǒng)的智能化一直是人們追求的目標皮钠。目前识樱,智能化的研究重點是在傳統(tǒng)CAD系統(tǒng)中加強推理和對知識庫的管理、查詢能力猴贰,形成智能CAD(ICAD)系統(tǒng)对雪。當前的智能設(shè)計分成兩種類型,即設(shè)計型專家系統(tǒng)和人機智能化系統(tǒng)证摩,人機智能化系統(tǒng)是面向CIMS的復(fù)雜智能設(shè)計技術(shù)树颖,其研究尚處于起步階段,而設(shè)計型專家系統(tǒng)研究的核心問題是模式設(shè)計诡亥,典型應(yīng)用領(lǐng)域是方案設(shè)計效聂,很難應(yīng)用到產(chǎn)品的結(jié)構(gòu)設(shè)計中。
到目前卑裹,智能化CAD系統(tǒng)的發(fā)展經(jīng)歷了三個階段:參數(shù)化設(shè)計枷澜、集成化設(shè)計和智能圖元化設(shè)計。從整個發(fā)展歷史來看蜒媳,智能化CAD系統(tǒng)主要存在二個本質(zhì)問題:一跷缀、需要一定的交互干涉控制;二古贡、智能化適用范圍的限制那捍。而從智能化CAD系統(tǒng)的三個階段來看,智能化CAD的智能化程度也是在這二個問題上不斷地探索和發(fā)展的程度签党。
參數(shù)化CAD設(shè)計纯末,主要是針對傳統(tǒng)的CAD系統(tǒng)大部分僅局限于建立產(chǎn)品幾何漠型,擅長設(shè)計階段中某一時刻設(shè)計信息的表達靴寂,而在表述產(chǎn)品設(shè)計的工程意義和動態(tài)設(shè)計過程方面顯得十分乏力磷蜀。參數(shù)化CAD系統(tǒng)的關(guān)鍵是參數(shù)化模型的建立。從智能化角度上說百炬,參數(shù)化CAD的優(yōu)點是:(一)通過參數(shù)化模型中參數(shù)的傳遞褐隆,實現(xiàn)“工程信息一圖形信息”。(二)通過參數(shù)的改變剖踊,使圖形自動發(fā)生相應(yīng)的改變庶弃。而缺點是:它是通過已建立的特定的參數(shù)化模型賦值而驅(qū)動圖形,所以它只能驅(qū)動參數(shù)化模型對應(yīng)的圖形德澈,對于工程上用的多的復(fù)雜圖形歇攻,特別是組合圖形來說固惯,不太實用;它很難反向從圖形中的獲取較多的工程語義缴守,不具有面向?qū)ο蟮母拍睢?SPAN lang=EN-US>
集成化CAD設(shè)計葬毫,這是目前用的比較多的專業(yè)CAD系統(tǒng),主要是針對一些特味行業(yè)(如室內(nèi)裝修屡穗、室內(nèi)設(shè)計等行業(yè))讥捧,在這些行業(yè)的工程圖紙描述中,都是由有若干行業(yè)中工程實體組成揖漫。正是根據(jù)這個特點锤楷,我們將行業(yè)相關(guān)的實體,按照面向?qū)ο蟮乃季S垄坡,進行封裝间皮。從智能化角度上看,其優(yōu)點是:引入了面向?qū)ο蟮木幊趟季S琼葫,初步實現(xiàn)由通過簡單的幾何元素(線拇掺、圓、圓弧等)畫圖轉(zhuǎn)變成由實體進行拼圖破卜,將大大提高工作效率赚毫。缺點是,系統(tǒng)參數(shù)化功能不強廷前,系統(tǒng)應(yīng)用范圍過于專一筹柠,并且由于系統(tǒng)中描述的工程實體不具有自適應(yīng)性,不利于新產(chǎn)品的設(shè)計贱甥。
智能圖元化設(shè)計綜合了參數(shù)化設(shè)計和集成化設(shè)計的優(yōu)點适袜,盡量避免他們的缺點,它是通過“智能圖元”來實現(xiàn)舷夺。智能圖元是完全按照“面向?qū)ο蟆钡乃季S上建立的苦酱,它外在表現(xiàn)為圖形的集成,但又不同于集成化設(shè)計给猾,首先疫萤,智能件圖元表現(xiàn)的圖形不是完全針對某個產(chǎn)品,而是針對常用圖形單元敢伸;其次扯饶,智能圖元具有良好的參數(shù)化;最后池颈,也是最重要的尾序,智能圖元具有自適應(yīng)性,能夠根據(jù)一定的外在條件改變自己的拓撲屬性,能夠真正實現(xiàn)“拼圖”功能每币。4.2參數(shù)化設(shè)計原理
CAD系統(tǒng)的參數(shù)化設(shè)計主要是針對產(chǎn)品建模携丁,當前,在產(chǎn)品建模中峰遇,也主要是約束建模拿详。在產(chǎn)品約束建模中,將工程知識與產(chǎn)品模型的幾何元素和拓撲關(guān)系結(jié)合起來溅逃,建立圖形和工程信息的聯(lián)系,實現(xiàn)計算機參數(shù)化設(shè)計的智能化帘衣。
實現(xiàn)參數(shù)化CAD系統(tǒng)的關(guān)鍵是建立參數(shù)化模型少锭。模型的建立需要圖形信息的描述。圖形信息包括幾何信息和拓撲信息税则。拓撲信息主要是描述幾何信息之間的約束谎躁。參數(shù)化所要解決的二個主要問題:約束的描述和約束的求解。
4.2.1約束的描述
設(shè)計過程可視為約束滿足的過程赡喻,設(shè)計活動本質(zhì)上是通過提取產(chǎn)品有效的約束來建立其約束模型并對約束求解疮肿。約束可以解釋為若干個對象之間的關(guān)系,也就是限制一個或多個對象滿足一定的關(guān)系R(A旭手、B家么、C……),對約束的求解就是找出約束為真的對象的值汁掠。
在參數(shù)化模型中約束可分為幾何約束和工程約束面向二大類略吨。
幾何約束是指幾何元素之間滿足的某種關(guān)系.利用幾何約束,就可以方便地表達其設(shè)計意圖考阱。
幾何約束包括結(jié)構(gòu)約束和尺寸約束翠忠,其中結(jié)構(gòu)約束是指拓撲與結(jié)構(gòu)上的約束,體現(xiàn)的是圖形元素之間的關(guān)系乞榨,在參數(shù)化設(shè)計中秽之,一般是不變動的對象,又成為不變約束吃既,主要包括水平考榨、鉛垂、共點鹦倚、相切董虱、平行、垂直申鱼、共線愤诱、夾角等約束。尺寸約束是指固定幾何元素之間相對位置的約束捐友,是對圖形元素的幾何屬性的描述晋粱,一般是可變的對象锁澡,又稱為可變約束,包括角度馁惨、長度神翁、半徑、坐標业弊、方向等約束誓贝。
由于給予變分幾何的方法用多元非線形方程組來描述一組約束,采用數(shù)值方法迭代求解于哩,能較好地解決復(fù)雜的約束關(guān)系剑瞻。因此,本文采用了變分幾何為核心算法的基礎(chǔ)见炫,同時對同樣存在的效率問題作了修改和完善舅兑,并提高了可靠性。
基于變量幾何法的參數(shù)設(shè)計中得稼,約束描述方法是將其表示為代數(shù)方程組腐蛀。對圖形實體的所有幾何或尺寸約束都可以表示為方程,方程中的變量是坐標點的分量回溺。這些點一般稱為特征點春贸。在二維圖形中,每個特征點有二個自由度遗遵,即(x,y)坐標值祥诽。用N個特征點定義的圖形共有2N個自由度。相應(yīng)需要建立2N個獨立約束的方程組才能唯一確定圖形的形狀和位置瓮恭。
結(jié)構(gòu)約束有水平雄坪、鉛垂、共點屯蹦、相切维哈、平行、垂直登澜、點在直線上阔挠,相切、共線脑蠕、共圓购撼,固定點等。尺寸約束有點到點的距離稻沮,夾角纯亲,半徑等。對于工程約束,也可以轉(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)點((x1, y1)在直線((x2,y2),(x3,y3))上:
(x2-xl)*(y3-y1)-(y2-y1)*(x3-x1)=O


工程約束是指尺寸之間的約束關(guān)系以及變量尺寸和其它外在設(shè)計變量之間的約束關(guān)
系,通過人工定義尺寸變量及它們之間在數(shù)值上和邏輯上的關(guān)系來表示蔼于。相應(yīng)的即荞,在參數(shù)化設(shè)計系統(tǒng)中,設(shè)計人員根據(jù)工程關(guān)系和幾何關(guān)系來指定設(shè)計要求柴怒,要滿足設(shè)計要求尾疟,不僅需要滿足尺寸或工程參數(shù)的初值,而且要在每次改變這些設(shè)計參數(shù)來維護這些基本關(guān)系肩雾,其中尺寸值是可以變的垫弱,而幾何元素的各種連接幾何信息是不變的。圖形參數(shù)化設(shè)計的本質(zhì)是根據(jù)圖形中的不變約束芹枷,進行幾何求解衅疙,確定可變約束莲趣,產(chǎn)生新的圖形的過程鸳慈。
4.2.2基于變量幾何法的約束的求解
在參數(shù)化圖形中,含有N個特征點喧伞,則在二維平面中走芋,將所有特征點的未知分量寫成分量:
x=(x1,x2潘鲫,…翁逞,xn)T, n=2N溉仑,表示形體的總自由度
同樣挖函,將已知的尺寸標注約束方程的值,包括結(jié)構(gòu)約束條件在內(nèi)浊竟,也寫成
矢量:
d=(d1怨喘,d2,…振定,dn)T,
于量必怜,變量幾何的一個實例就是求解以下一組非線形方程組的一個具體解:

或?qū)懗梢话阈问剑?SPAN lang=EN-US>F(xi,dI)=0 i=1城汹,2偷菩,3,…拄下,n
約束方程組中有三個方程用來阻止剛體的平移和旋轉(zhuǎn)咳蚣,剩余的(n-6)個約束取決于具體的尺寸標注方法和約束的類型等條件。求解非線形方程組的具體方法是牛頓迭代,即xn+1=xn-[F(xn)]-1F(xn)
或J·△x=r
其中△x={△x 1托习,△x 2石检,…△x n}T 表示各個自由度的少量位移。
r={-F1虏淋,-F2惯斥,-Fn}T,表示方程組的殘余個數(shù)尸查。

在變量幾何法中病趋,約束轉(zhuǎn)化為一系列以特征點為變量的非線形方程組,對于給定的約束竖伯,通過數(shù)值法求解非線形方程組確定出幾何細節(jié)存哲。
4.2.2參數(shù)化設(shè)計實現(xiàn)
參數(shù)化設(shè)計實現(xiàn)的流程圖如圖4-1所示。

從這個流程圖上七婴,整個參數(shù)化過程是圍繞“參數(shù)模型”祟偷,也就是約束的方程建立和求解。在注解過程中打厘,如果圖形中的圖形元素較多修肠,則求解的方程回很多,使得求解的復(fù)雜程度大户盯,時間長嵌施,未了簡便方程組的求解,采用分解的方法莽鸭,簡化求解的復(fù)雜度吗伤。也正是如此,參數(shù)化設(shè)計適合于一些簡單的圖紙設(shè)計硫眨,而對于復(fù)雜的圖形足淆,由于方程組求解的時間太長而不適用;
4.3集成化CAD設(shè)計
集成化CAD設(shè)計是面向?qū)ο蟮木幊趟季S用在CAD系統(tǒng)中的產(chǎn)物织岁。在傳統(tǒng)的CAD系統(tǒng)中赃织,設(shè)計者所面對的和所操作的是一些簡單幾何的點、線蒸拦、圓辙资、圓孤等,其圖形設(shè)計思維是:由簡單幾何(線蜘把、圓癌雷、圓弧等)一零件圖形一產(chǎn)品圖形。參數(shù)化設(shè)計主要是實現(xiàn)第一步衅滞,利用約束方程組的求解魄仙,進而實現(xiàn)產(chǎn)品的結(jié)構(gòu)單元圖的實現(xiàn)牵观,這對于簡單的圖形或草圖是合適的,但對于工程中復(fù)雜的圖形來說水惑,是不合適的塌自。而集成化CAD,它主要是高效率地實現(xiàn)第二步過程汽足,忽略了第一步悟旧,直接由零件圖形拼成產(chǎn)品圖形。
集成化CAD設(shè)計减拭,是專用CAD系統(tǒng)中所采取的設(shè)計方法蔽豺,主要是針對一些行業(yè)(如建筑設(shè)計、室內(nèi)設(shè)計等行業(yè))拧粪,在這些行業(yè)的工程圖紙內(nèi)容描述中修陡,僅僅是一些具有該行業(yè)中的實際實體意義的實體圖形組合而成,例如門實體可霎、窗實體和墻實體等魄鸦。而這些具有實際實體意義的實體,也正是面向?qū)ο蟮木幊叹幚碇械膶ο螅?SPAN lang=EN-US>object癣朗,進一步抽象成具有共同特定屬性的“類”拾因,并賦予這些實體相應(yīng)的屬性,即類的成員變量斯棒、成員函數(shù)等盾致。
通過對這些行業(yè)中的實體封裝以后主经,面對系統(tǒng)操作者的都是一些具有實際意義的行業(yè)實體和繪圖相關(guān)實體荣暮,而屏蔽了幾何的點、線仇钞、圓嗡窑、圓弧等。最重要的突破是對工程圖形的理解的突破毯甘,由原先簡單幾何的點夭蹦、線、圓沙书、圓弧等組合成一個產(chǎn)品圖形耳恭,發(fā)展到由工程實體圖形拼成產(chǎn)品圖形,是一種徹底的組裝裝配圖优学,將面向?qū)ο蟮母拍钔耆氲?SPAN lang=EN-US>CAD設(shè)計中叹惕,集成化設(shè)計基本脫離了參數(shù)化建模的過程,對每個實體的參數(shù)化功能要求不高陡敞。
在傳統(tǒng)的CAD系統(tǒng)中随巴,我們以在PC機上最流行的AutoCAD軟件為例鲜堆。在其二次開發(fā)中,AutoCAD軟件R14以前的版本中殖咨,對典型的面向?qū)ο蟮恼Z言C++中“類”不支持昌执,故只能做一些參數(shù)化的二次開發(fā),而不能對Au七诈泼。CAD軟件進行真正意義上的面向?qū)ο蟮募砷_發(fā)懂拾;但是,AutoCAD軟件的R14版本徹底改變了這種情況铐达,Autodesk公司在AutoCAD R14中吸收了ObjectARX技術(shù)委粉,可以對AutoCAD R14版本進行ARX開發(fā)。利用C++中的“類”的技術(shù)娶桦,將AutoCAD系統(tǒng)的基本核心模塊(如各種幾何操作函數(shù))進行封裝贾节,而不必關(guān)心其內(nèi)部是如何操作的,減少重復(fù)開發(fā)底層模塊的工作衷畦,把主要精力放在開發(fā)應(yīng)用模塊上栗涂,擴充已有模塊的功能,體現(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之上忿墅,建立集成化后工程實體的UI,通過UI進一步調(diào)用集成后的對實體操作的UI棍潜。在AUTOCADRl4的面向?qū)ο蟮募砷_發(fā)恭吊,引入了ObjectARX技術(shù),增加了對“類”的全面支持针如,應(yīng)用了具有面向?qū)ο蠹夹g(shù)中“類”特性的實體模塊仓判,將所有操作集成在若干類的函數(shù)或方法里,其體系結(jié)構(gòu)簡圖見圖4-2艇泡。面向?qū)ο蟮?SPAN lang=EN-US>CAD集成軟件主要包括了實體核心模塊蜘体、信息存儲模塊和用戶界面模塊。其中广狂,實體核心模塊是最主要逮百、最基礎(chǔ)的模塊,是它對CAD系統(tǒng)進行徹底的封裝镀翁,使得系統(tǒng)在用戶面前體現(xiàn)的不再是簡單幾何的點線圓氯北,而是一個個工程實體;同時透嫩,它也是不同行業(yè)對CAD不同集成要求的具體體現(xiàn)框全。

1察绷、用戶界面
用戶使用系統(tǒng)接觸到的第一個功能就是用戶界面。軟件工程的一個重要指標就是用戶界面友好津辩、操作方便拆撼。根據(jù)目前的潮流,以Windows為基礎(chǔ)的交互式的界面最受人們歡迎喘沿。AutoCAD的界面就是以Windows為基礎(chǔ)的交互式的界面闸度,而且,AutoCAD軟件有一個很好的接口(對acad.mns文件進行編輯)讓用戶自行開發(fā)所須界面蚜印。故莺禁,可以以AutoCAD的界面為基礎(chǔ),根據(jù)各個行業(yè)的行業(yè)習(xí)慣窄赋,把不同實體進行歸類哟冬,編寫所須的菜單條和對話框去觸發(fā)各個實體的屬性、函數(shù)和方法忆绰。
2浩峡、實體集合
實體(Object)是面向?qū)ο笾械暮诵膬?nèi)容,實體也是面向?qū)ο笙到y(tǒng)中的唯一的操作者和承受者律馏,總的來說村钧,實體主要由三部分構(gòu)成:屬性、方法和函數(shù)腥浪。實體也是面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)中的最重要的核心部分臊骂,根據(jù)工程圖紙正系統(tǒng)中所實現(xiàn)的內(nèi)容,主要分為:圖紙實體伸四、通用實體云拔、工程實體和.工具實體。圖紙實體主要是描述每一張圖紙的所有特征信息和相關(guān)圖紙操作羊耸;通用實體主要是描述AutoCAD中的所有系統(tǒng)變量及其值的設(shè)置延幻;工程實體是描述工程產(chǎn)品的特征信息及其信息處理服務(wù)穆递,工具實體主要是對整個圖紙的信息標注葵伟。
3、信息存儲
在CAD系統(tǒng)里词惭,一般對一張圖紙信息的存儲是通過一個文件(即圖形數(shù)據(jù)庫)實現(xiàn)夕谬,而在這個文件中,文件圖形數(shù)據(jù)庫中僅僅存儲圖紙的幾何點扣墩、線哲银、圓和圓弧等信息;而在面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)里呻惕,需要存儲的是整個圖紙的實體集合信息荆责,并且由于每個實體又是由若干幾何點滥比、線、圓和圓弧等信息構(gòu)成做院。因此盲泛,僅僅一個文件還是不夠的,還需要利用附加文件去記錄圖紙中所有實體完整的特征產(chǎn)品信息键耕。
4.3.2實體模型
在面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)里寺滚,系統(tǒng)數(shù)據(jù)模型的基本元素就是ARX開發(fā)語言中的(多是C/C++語言)類,類實例化后稱為對象或?qū)嶓w屈雄,整個圖紙就是一個實體集合村视,主要由四大塊組成:圖紙實體集合、通用實體集合酒奶、工程實體集合和工程實體集合蚁孔。其中,圖紙實體纪孔、通用實體和工具實體都為獨立類毁几,沒有父類或子類;而工程實體集合中的各工程實體是由具有基本特征的基類實體派生而來孝尺,具有一個基類和若干個派生類陵租,并且各實體集之間互相獨立(如圖4-3所示)

實體集合中的各類實體在圖紙的繪制和再認識過程中,分工明確洼宪,互不干涉育床。在圖紙實體集合里,圖紙信息實體主要管理圖紙的圖幅绒霹、比例等圖紙?zhí)卣鲗傩缘脑O(shè)置松浆;圖紙操作實體主要管理圖紙的打印、視圖的放大縮小等等擅啸。在通用實體集合里旧晴,圖層信息實體主要管理圖層(Layer)中的線型、顏色等圖層特征屬性碎领;空間信息實體主要管理圖紙的維數(shù)遮尚、視圖的種類等。在工具實體集合里挡毅,尺寸標注實體管理圖紙的尺寸標注蒜撮;其他標注實體管理漢字的標注、公差的標注等等跪呈。在最核心的工程實體集合里段磨,基類實體主要管理所有工程實體都具有的共同的屬性及方法,而派生類工程實體是基類實體的派生類耗绿,是不同行業(yè)甲的具體實體苹支,它不僅繼承了基類實體的所有共同屬性和方法砾隅,還具有工程實體一些獨特的屬性和方法。
在上面所說的四種實體里债蜜,圖紙實體琉用、通用實體、工具實體都是一些簡單實體策幼,基本上是對一些AutoCAD的操作命令進行集成邑时,使之能夠?qū)こ虒嶓w進行操作,并且符合不同行業(yè)的命名規(guī)則特姐。而最復(fù)雜的是工程實體晶丘,首先,每個行業(yè)中工程實體的種類繁多裁鸦,必須進行細致有序的分類象体,使之符合行業(yè)習(xí)慣;其次肮脱,確定基類與派生類之間的關(guān)系档改,有效地定義基類的各個屬性、方法和函數(shù)夜痊,便于擴充派生類谅囚;最后,要完整的定義每一個工程實體的所有的屬性淆捆、方法和函數(shù)雄防,特別重要的是,要很好地利用AutoCAD已提供的所有信息資源暑懊。對于以上的問題康局,第一,要對行業(yè)的需求十分清晰蜒金,能夠?qū)π袠I(yè)中涉及到的工程實體進行歸納蟆盐,要具有“面向?qū)ο蟆钡木幊趟季S;第二遭殉,基類涉及的屬性方法和函數(shù)基本上與實體圖形的操作有密切關(guān)系(如圖4-4所示)石挂;派生類主要涉及到工程實體的特征屬性、特征方法和特征函數(shù)(如圖4-5示)恩沽,完整地定義其基類和派生類是“面向?qū)ο蟮?SPAN lang=EN-US>CAD集成開發(fā)系統(tǒng)”中的核心部分誊稚;第三,要充分的利用AutoCAD已提供的資源罗心,主要就是要利用AutoCAD系統(tǒng)中的*,dwg文件的圖形文件數(shù)據(jù)庫中的資源,熟悉各種AutoCAD中實體(例如點城瞎、直線渤闷、圓弧等)的DXF碼規(guī)則疾瓮,并從中提取相關(guān)特征信息;第四飒箭,由于在AutoCAD中的.dwg文件中狼电,存儲的是一些簡單的幾何的點、直線弦蹂、圓哥钉、弧等信息,故還需要另一個文件去記錄整個圖紙的工程實體圖形的邏輯關(guān)系(下一節(jié)詳細介紹)瀑红,隨同*.dwg文件的打開而打開峦铲,標識*.dwg文件圖形中的實體圖形邏輯關(guān)系,隨同*.dwg文件的關(guān)閉而記錄*.dwg文件中的實體圖菜邏輯關(guān)系贼扩。

4.3.3信息存儲
如前所述筑轻,在AutoCAD中的*,dwg文件中只存儲簡單的幾何點、直線璧酣、圓具雹、圓弧等信息,而在面向?qū)ο蟮?SPAN lang=EN-US>AutoCAD集成開發(fā)系統(tǒng)里扑诈,還所須存儲的工程實體的信息衔系,而這些實體在圖紙上就是通過若干簡單的幾何點、直線很刃、圓鹊获、圓弧等信息的集成而體現(xiàn)的。因而追城,對于系統(tǒng)的信息存儲刹碾,不僅利用*.dwg文件的圖形數(shù)據(jù)庫記錄整個圖紙的簡單幾何信息,還須記錄實體信息座柱,或者說迷帜,記錄描述圖紙的信息,這對于圖形的再認識是非常重要的色洞。圖紙信息存儲主要包括二個方面:一戏锹、單個實體的信息存儲;二火诸、整個圖紙里所有的實體的綜合信息存儲锦针。
1、單個實體的信息存儲
單個實體是通過點置蜀、直線奈搜、圓、圓弧等信息的集成而體現(xiàn)的,因此馋吗,在對實沐類進行定義時焕盟,可充分利用AutoCAD中的“實體集合”這個設(shè)計概念,把*.dwg圖形數(shù)據(jù)庫中的若干幾何信息集成起起來福咙,使之成為一個整體铣飘,再將此“實體集合”并入實體類的一個屬性(見圖4-6),當實體在繪制秋孕、移動等操作中被調(diào)用卤酬。

2、整個圖紙實體綜合信息的存儲
用戶對實體進行查找绞胡、移動枕娱、旋轉(zhuǎn)、刪除等操作域抚,系統(tǒng)首先要在整個圖紙中搜索該實體治部,因而,系統(tǒng)必須對整個圖紙的實體的綜合信息進行存儲涵蔓,多采用鏈式結(jié)構(gòu)沧蛉,設(shè)置一個鏈頭和一個指向當前實體的指針。采用鏈式結(jié)構(gòu)的原因是它很方便進行查找滋遗、插入蟀思、刪除,效率高溉跃,簡單明了村刨。(見圖4-7)

4.3.4參數(shù)化過程
在面向?qū)ο蟮?/SPAN>CAD集成開發(fā)系統(tǒng)里,我們操作的對象是工程實體撰茎,由于同一類型的工程實體的由于各自的型號不同嵌牺,在圖紙表現(xiàn)上也有不同的,例如對于建筑圖紙中的“門”實體龄糊,各種門的高度與寬度是不同的逆粹,因此在圖紙表現(xiàn)上也應(yīng)該區(qū)分的,需要一定的參數(shù)化的功能炫惩,而參數(shù)化的數(shù)據(jù)就是實體自身的特性尺寸僻弹。在系統(tǒng)里,對工程實體是作為一個類的實例來處理他嚷,將所有的屬性函數(shù)封裝起來蹋绽,利用類的函數(shù)對實體的特性尺寸進行重新設(shè)置。因此筋蓖,通過實體的函數(shù)對實體屬性進行改變和對實體函數(shù)的再調(diào)用卸耘,實現(xiàn)參數(shù)化CAD系統(tǒng)。
簡圖如下:

4.4智能圖元設(shè)計法
智能圖元設(shè)計法是以智能圖元為核心、以圖形的可分解性為思路的一種全新的CAD系統(tǒng)設(shè)計枫须。它不同于參數(shù)化設(shè)計和集成化設(shè)計涧智,從設(shè)計思路上說药屠,依據(jù)“一個復(fù)雜圖形是由若干個簡單圖形邏輯組合而成”新俗,升華了“簡單幾何的點線圓圓弧組合成產(chǎn)品圖形”的思維。參數(shù)化設(shè)計是針對建立的參數(shù)模型崇旺,通過傳遞的參數(shù)都鸳,根據(jù)參數(shù)模型的拓撲關(guān)系,組合簡單的幾何實體(點设哀、線猪楣、圓、圓簧浴)象掖;集成化設(shè)計是針對專門行業(yè)中的工程實體的圖形單元設(shè)計,是圍繞整個圖紙而言歹恬。智能圖元設(shè)計法與集成化設(shè)計一樣腾蔼,是面對對象的,但智能圖元設(shè)計法是以智能圖元為目標晌该,不受行業(yè)的限制肥荔,擴寬了系統(tǒng)應(yīng)用范圍,并且朝群,智能圖元設(shè)計法是針對圖形的燕耿,最重要的是,智能圖元的功能遠比工程實體圖形單元的功能豐富姜胖。智能化圖元也具有參數(shù)化功能誉帅,集成到智能圖形單元的“類”屬性和函數(shù)中。
對于每一張工程產(chǎn)品圖紙右莱,盡管圖與圖之間是千差萬別的蚜锨,但是一個產(chǎn)品圖的某個結(jié)構(gòu)總是可以從其他零產(chǎn)品圖中找到相同或相似的。為了有效地利用這些相同或相似的圖形單元隧出,提出拼圖法繪圖:在裝配圖中踏志,一個機器由若干個零件圖組裝而成;而在零件圖中胀瞪,一個零件可看作是由若干圖形單元組成针余,如:一個零件外型圖形單元和若干個零件內(nèi)腔圖形單元(包括開孔)組成。歸納來說领明,無論是裝配圖還是零件圖标宪,都是由若干圖形單元拼成,而且不是簡單的把圖形放到一起,還存在圖形單元的變化励普。例如:由零件圖拼成裝配圖中痢腋,需要有部分零件圖的打斷、消隱等工作铜氛;由零件外型圖形單元和內(nèi)腔圖形單元組成零件圖時二场,更要涉及到圖形圖形之間的打斷、消隱蟀委、圓角化等等缤棍。這就決定了圖形單元應(yīng)具有部分智能化,命名為智能圖元猜艇,它與普通的圖形單元最大的不同在于:智能圖元可以在不同的周圍圖形環(huán)境下自動調(diào)整其表現(xiàn)形式衅快。這種以“智能圖元”為設(shè)計單元的設(shè)計方法稱為智能圖元法。
4.4.1智能圖元
智能圖元是具有一定拓撲關(guān)系跳昼、特征點般甲、內(nèi)函數(shù)、外函數(shù)和幾何單元的圖形單元鹅颊,是拼圖法繪圖思維中的基本單元敷存。特別地,智能圖元具有面向?qū)ο笤O(shè)計中的“類”的特性挪略,即封裝性和繼承性历帚。如前所述,任何一幅圖形都是由若干圖形單元按照一定的邏輯關(guān)系組合而成杠娱,例如挽牢,在裝配圖中,圖形單元表現(xiàn)為零件圖形單元摊求,而在零件圖中禽拔,圖形單元則表現(xiàn)為零件結(jié)構(gòu)單元。
1室叉、智能圖元的模型
在系統(tǒng)實現(xiàn)中睹栖,智能圖元是一個典型的“類”的結(jié)構(gòu),包括幾何單元集合茧痕、拓撲關(guā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阀秤;//基點
INT Entity_Color山刨;//顏色
INT Entity_Lttype哲陷;//線形
Public:
RTPICKS Geometry_Entitvy;//幾何單元實體幾何
INT Topology_ID随港;//拓撲關(guān)系的ID
RTPICKS Feature_Point墙议;//特征點
Void Show(INT scale);//顯示
Void delete()溃登;//刪除
Void move(ads_point new_position)久挖;//移動
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ī)則是受拓撲關(guān)系控制竿屹;拓撲關(guān)系是智能圖元的內(nèi)在特征屬性,它是具體指導(dǎo)幾何單元的有機地組合方式灸姊,它和幾何單元一起構(gòu)成了智能圖元的外在表現(xiàn)形式拱燃;特征點是智能圖元對外界信息響應(yīng)的入口點,當智能圖元在繼承另一個智能圖元時的拓撲關(guān)系的改變力惯,以及各智能圖元在圖紙中組合時的拓撲關(guān)系改變碗誉,都是通過對特征點的激活,調(diào)用圖元的外在函數(shù)父晶,從而使智能圖元的拓撲關(guān)系按照一定的規(guī)則進行改變哮缺,重要的是,它能夠根據(jù)已確認的規(guī)則而實現(xiàn)智能化甲喝。外在函數(shù)就是一個智能圖元響應(yīng)具體的外界信息時尝苇,其拓撲關(guān)系改變的具體方式,外在函數(shù)種類繁多贵本,全部存放在智能圖元的外在函數(shù)庫里芝杏,根據(jù)具體的外界信息,選擇相應(yīng)的外在函數(shù)穴愕;但它也受拓撲關(guān)系和幾何單元的約束债鼎,就好象無法求得二條平行線的交點;內(nèi)在函數(shù)是指對智能圖元幾何單元操作的具體功能渗蜀,例如:繪制蚂旁、移動、刪除位蓉、旋轉(zhuǎn)等等立漏。
2鹊属、智能圖元的結(jié)構(gòu)特征
智能圖元,是圖紙單元與“面向?qū)ο蟆痹O(shè)計思維的結(jié)合體聪戳,不僅具有類的兩大屬性:封裝性危劫、可繼承性;而且具有圖紙單元的特征不定性缰俊。
封裝性:對于某個智能圖元的具體操作容诬,能且只能通過對其內(nèi)部函數(shù)或(和)外部函數(shù)實現(xiàn),而不能通過其他操作實現(xiàn)沿腰,以防止產(chǎn)生信息干擾览徒。
可繼承性:一個智能圖元不僅可以是其他智能圖元的父圖元,也可以是一個或多個智能圖元的子圖元颂龙,最底層的智能圖元稱為基圖元习蓬,他們沒有父圖元;最上層的智能圖元稱為表圖元措嵌,他們沒有子圖元躲叼,其集成度最高;就象一個機器的裝配圖由若干個零件圖組成企巢,而一個零件圖是由若干個結(jié)構(gòu)單元組成枫慷,整個智能圖元集合屬于一種比較復(fù)雜的層次結(jié)構(gòu),如圖4-9浪规。
特征不定性:當一個智能圖元繼承另一個智能圖元后或听,其屬性并不是被簡單的擴大了,而是一些屬性消失而另外一些屬性出現(xiàn)了笋婿。這也是智能圖元之間由于智能圖元特征點的激活而使智能圖元拓撲關(guān)系邏輯迭加誉裆、幾何單元的改變(打斷,消隱等)表現(xiàn)形式腊囤。

3几菲、智能圖元的工作模式
智能圖元設(shè)計法是以智能圖元為最小設(shè)計單位,利用智能圖元對環(huán)境的自適應(yīng)功能韭展,完成實際意義的拼圖法設(shè)計杉唇,智能圖元對環(huán)境的自適應(yīng)功能首先是通過對智能圖元的特征點激活開始。詳細見圖4-10酬裆。

通過對特征點的激活辟侠,首先判斷激活值,是調(diào)用外部函數(shù)還是調(diào)用內(nèi)部函數(shù)葱有,如果是調(diào)用內(nèi)部函數(shù)眨柑,則根據(jù)激活值,調(diào)用某個內(nèi)部函數(shù)复做,實現(xiàn)智能圖元自身的操作坪腔,如刪除权浸、放大、旋轉(zhuǎn)等等吏口;如果是調(diào)用外部函數(shù)奄容,則再獲取周圍圖元信息,并以此查詢外部函數(shù)庫产徊,得到某個外部函數(shù)昂勒,則調(diào)用此外部函數(shù),實現(xiàn)智能圖元的拓撲關(guān)系和幾何單元信息的改變舟铜。(如圖4-11所示)
4.4.2智能圖元法程序設(shè)計步驟
1)通過閱讀常用圖紙信息戈盈,提煉出其中具有一般特性的圖形單元。提取圖形單元的一般規(guī)則:
(l)先提取結(jié)構(gòu)簡單的基圖元谆刨,再提取高層結(jié)構(gòu)復(fù)雜的圖元塘娶,充分利用智能圖元的繼承性。
(2)基圖元的提取要相對通用但不完全通用痴荐,而高層結(jié)構(gòu)復(fù)雜的圖元則相對專用血柳。
2)記錄每個圖元的拓撲關(guān)系、特征點
3)建立圖形單元拓撲關(guān)系變化庫生兆,賦予圖元智能化,并建立智能圖元的外在函數(shù)庫膝宁。
4)建立智能圖元的調(diào)用規(guī)則:復(fù)雜智能圖元優(yōu)先于簡單智能圖元鸦难。
4.4.3智能圖元的分類
根據(jù)拼圖法對智能圖元的智能化的側(cè)重點要求不同,將智能圖元分為二類:基于產(chǎn)品結(jié)構(gòu)的智能圖元化和基于特性尺寸的智能圖元化籍喧∷兀基于產(chǎn)品結(jié)構(gòu)的智能圖元主要是對各種圖形單元的抽象,其重點是對特征點的激活和外函數(shù)中拓撲關(guān)系對環(huán)境適應(yīng)的描述铃踪,建立此類智能圖元難度很大颂芒;而基于特性尺寸的智能圖元主要是對拓撲關(guān)系固定的圖形單元的抽象,建立此類智能圖元難度不大漏碰,這類智能圖元一般都是基圖元乱感,很少有繼承圖元。例如肯铣,對各種標準件和通用件等系列化的產(chǎn)品等的引用蠢耻。
1、智能圖元模型實例
按照智能圖元提取的一般規(guī)則诉鸯,對于一般工程圖紙的實際狀況威视,常用簡單零件結(jié)構(gòu)的外形是四邊形(圖4-11),對于此類四邊形的定義躬挺,根據(jù)“基圖元的提取要相對通用但不完全通用”原則捂齐,一般是用梯形結(jié)構(gòu)來歸納蛮放,其定義如下:

幾何單元:五條線段:a,b奠宜,c筛武,d,e
拓樸關(guān)系:滿足梯形定義(a//c)挎塌,a徘六,b線交B點,a榴都、d線交A點待锈,d、c線交C點嘴高,c竿音、b線交D點,e是梯形的中線拴驮。
特征點:可定義為四個頂點(A春瞬、B、C守犯、D)或線段中點或其他點
內(nèi)函數(shù):智能圖元的移動费犯、刪除、旋轉(zhuǎn)等
外函數(shù):線段的打斷飘示、與凹凸槽的接口等
2绷冈、智能圖元繼承實例
為減少圖元開發(fā)的重復(fù)性工作,應(yīng)充分利用智能圖元的繼承性每竿,例如帐等,另外一個智能圖元繼承上面的智能圖元,是在圖4所示的智能圖元的基礎(chǔ)上塞俗,增加內(nèi)腔結(jié)構(gòu)智能圖元(圖4-12)颤赤,形成子圖元,其定義如下:

幾何單元:若干線段
拓撲關(guān)系:滿足圖4-12形狀
特征點:Ll皱埋、LZ線段上的所有點
內(nèi)函數(shù):智能圖元的移動暑锈、刪除、旋轉(zhuǎn)等
外函數(shù):線段的打斷陵蜻,圓角化等
3怕收、智能圖元拼圖實例
圖4-12所介紹的圖元為一個簡單的機架結(jié)構(gòu),現(xiàn)在要完整其結(jié)構(gòu)舆瘪,利用拼圖片效,拼上一個內(nèi)部支座的智能圖元(圖4-13),激活特征點英古,調(diào)用外部函數(shù)淀衣,智能圖元將會自動打斷如圖4-12中所示的Ll昙读、L2線段。

4.4.4智能圖元法繪圖的特點.
1)繪圖效率高膨桥,把若干個圖元(特別是集成度較高的表面圖元)按照一定的邏輯順序拼成一幅圖蛮浑,當然比用簡單的幾何繪圖元素(線、圓只嚣、圓痪谥伞)繪圖的效率高的多。
2)繪圖范圍廣册舞,參數(shù)化好蕴掏。圖元不同與AutoCAD中的“block”,他可以在基本的拓樸關(guān)系變的前提下调鲸,圖元中的幾何單元可以呈現(xiàn)出多種圖形盛杰,并且,當圖元在繼承其他圖元或圖元互相組成完整圖時称痊,可改變拓樸關(guān)系贼欧,更使圖形多種多樣。
3)繪圖準確性高缸日,通過激活圖元的特征點勤友,可以自動改圖元的拓樸關(guān)系,實現(xiàn)對某些線條的添加哲耐、刪除和剪切乞易,可減少繪圖中常見的錯誤。