三維實體造型技術(shù)-第一部分-3_第1頁
三維實體造型技術(shù)-第一部分-3_第2頁
三維實體造型技術(shù)-第一部分-3_第3頁
三維實體造型技術(shù)-第一部分-3_第4頁
三維實體造型技術(shù)-第一部分-3_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

..第6節(jié)參數(shù)化設(shè)計前面談到的造型技術(shù)在具體應(yīng)用于一個產(chǎn)品模型后,形成了固定的模型數(shù)據(jù),當(dāng)需要改變產(chǎn)品模型的某一數(shù)據(jù)時,只有刪除該模型,再重新進(jìn)行模型的造型設(shè)計。這對于同類產(chǎn)品不同型號的產(chǎn)品設(shè)計造成了極大的不便。因而在目前流行的CAD系統(tǒng)中又創(chuàng)造應(yīng)用了參數(shù)化設(shè)計技術(shù),可以對已有產(chǎn)品模型的數(shù)據(jù)進(jìn)行修改,以形成新的產(chǎn)品模型,從而加快產(chǎn)品設(shè)計的速度。在新產(chǎn)品的研制過程中,約70%-80%的成本耗費(fèi)于設(shè)計階段,因此,如何開發(fā)、研究先進(jìn)的設(shè)計方法和工具以提高產(chǎn)品設(shè)計的效率是至關(guān)重要的。設(shè)計是創(chuàng)造性的活動,需經(jīng)多次循環(huán)而逐步求精。無論是全新設(shè)計或是局部更新設(shè)計,設(shè)計師總是在設(shè)計要求等條件的限制下,自設(shè)計開始的概念設(shè)計階段,便開始將其設(shè)計活動勾畫在圖紙之上。從概念到具體的結(jié)構(gòu)設(shè)計,設(shè)計師的幾乎所有創(chuàng)作活動都蘊(yùn)含于產(chǎn)品圖紙<含電子圖檔>的演變與衍生之中。雖然圖形的生成與演變在設(shè)計活動中占有基礎(chǔ)性的地位,但并非設(shè)計活動的基本特征和本質(zhì)表現(xiàn)。人工智能學(xué)研究認(rèn)為:設(shè)計問題是約束滿足問題<CSP:constraintsatisfactionproblem>,即給定功能、結(jié)構(gòu)、材料及制造等方面的約束描述,求得設(shè)計對象的細(xì)節(jié)。由此而生的參數(shù)化設(shè)計就是:用幾何約束、工程方程與關(guān)系來說明產(chǎn)品模型的形狀特征,從而達(dá)到設(shè)計一簇在形狀或功能上具有相似性的設(shè)計方案。目前能處理的幾何約束類型基本上是組成產(chǎn)品形體的幾何實體公稱尺寸關(guān)系和尺寸之間的工程關(guān)系。參數(shù)化設(shè)計的關(guān)鍵是:幾何約束關(guān)系的提取和表達(dá)、幾何約束的求解以及參數(shù)化幾何模型的構(gòu)造。目前,二維參數(shù)化設(shè)計技術(shù)已發(fā)展得較為成熟,在參數(shù)化繪圖方面已得到了廣泛應(yīng)用。而三維參數(shù)化造型能處理的問題還比較簡單,能處理的類型主要是軸線、平面和軸對稱面;能處理的約束類型還很有限,如:兩個或多個平面間的垂直距離;兩個或多個軸線間的垂直距離;兩個或多個平面間的角度;軸和平面間的垂直距離;兩個或多個軸線間的角度;軸和平面間的角度;軸對稱面的半徑等。在參數(shù)化設(shè)計中,幾何約束關(guān)系的表示形式主要有:<1>由算術(shù)運(yùn)算符、邏輯比較運(yùn)算符和標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)組成的等式或不等式關(guān)系。它們可以在參數(shù)化造型系統(tǒng)的命令窗口中直接以命令行形式輸入。<2>曲線關(guān)系。直接把物理實驗曲線或其他特性曲線用于幾何造型。<3>關(guān)系文件。它是許多關(guān)系命令行語句和特定語句的集合。多種幾何約束關(guān)系,包括聯(lián)立方程組可以寫成一種特定格式的文件<即用戶編程>,輸入到計算機(jī)中,成批驅(qū)動幾何設(shè)計。例如,確定一個立方體的長、寬、高的約束條件可以是:立方體的底面積等于100,底面周長等于50。<4>面向人工智能的知識表達(dá)方式。這種方式將組成幾何形體的約束關(guān)系、幾何與拓?fù)浣Y(jié)構(gòu)用一階邏輯謂詞的形式描述,并寫人知識庫中。知識表達(dá)的方式:一方面是以符號化形式表達(dá)各種類型的數(shù)據(jù),求取符號解;另一方面是加上基于約束的幾何推理,求取數(shù)值解,從而可在更高程度上實現(xiàn)機(jī)械產(chǎn)品的智能設(shè)計。本節(jié)在簡述參數(shù)化設(shè)計相關(guān)概念的基礎(chǔ)上,介紹參數(shù)化設(shè)計的約束推理/求解算法。最后給出一種典型的參數(shù)化設(shè)計的應(yīng)用實例。一.基于約束的參數(shù)化設(shè)計概述基于約束的CAD系統(tǒng)并不是傳統(tǒng)CAD系統(tǒng)的簡單擴(kuò)展,而是以一種全新的思維和方式來進(jìn)行產(chǎn)品的創(chuàng)新和修改設(shè)計。它用約束來表達(dá)產(chǎn)品模型的形狀特征,定義一組參數(shù)以控制設(shè)計結(jié)果,從而能夠通過調(diào)整參數(shù)來修改設(shè)計、模型,并能方便地創(chuàng)建一系列在形狀或功能上相似的設(shè)計方案?!ぴ谠O(shè)計過程中,參數(shù)化草圖輸入大大提高了圖形輸入和幾何造型的效率;·產(chǎn)品模型的修改通過尺寸驅(qū)動或參數(shù)驅(qū)動實現(xiàn)。給定幾組參數(shù)值便可實現(xiàn)系列零件或部件的自動生成,約束的修改使對設(shè)計目標(biāo)依賴關(guān)系的描述成為可能?!せ诩s束的參數(shù)化變量化設(shè)計技術(shù)為初始設(shè)計、產(chǎn)品模型的修改、系列零件族的生成、多方案比較等提供了強(qiáng)有力的手段,在工程繪圖、實體造型、裝配、公差分析與綜合、機(jī)構(gòu)仿真、優(yōu)化設(shè)計、數(shù)控加工<NC>等領(lǐng)域發(fā)揮著越來越大的作用。1.參數(shù)化設(shè)計與變量化設(shè)計參數(shù)化設(shè)計:是指在構(gòu)造產(chǎn)品模型時,模型結(jié)構(gòu)在保持模型拓?fù)潢P(guān)系不變的前提下,可隨尺寸參數(shù)或工程參數(shù)的具體數(shù)值變化而自動改變,形成新的產(chǎn)品模型。圖6-1為一個實體模型的視圖。用參數(shù)化設(shè)計系統(tǒng)構(gòu)造此實體模型時,系統(tǒng)將定義各尺寸為參數(shù)變量名X、Y、U、V、D等,當(dāng)設(shè)計者改變參數(shù)變量U、V、D分別為150mm、200mm、160mm時,則實體模型將從如圖a的結(jié)構(gòu)變?yōu)閳Db的結(jié)構(gòu),但當(dāng)U的數(shù)值大于X+D/2時,將使實體中的孔不在實體內(nèi)部,則從邏輯上是不可能的。因而在改變尺寸變量值時,應(yīng)滿足一定的條件。a>b>圖6-1參數(shù)化設(shè)計的示意圖從上面的實例可以看出,參數(shù)化設(shè)計是使用約束來實現(xiàn)設(shè)計與修改產(chǎn)品的一種方法。約束可以理解為若干個對象之間的相互關(guān)系,即限制一個或多個對象滿足一定的關(guān)系、條件。比如上面例子中孔不能存在于實體之外即為一個約束?;诩s束的設(shè)計方法最主要的特點(diǎn)就是:能夠處理用戶對幾何體施加的一系列約束,而用戶無需關(guān)心這些約束是如何被滿足的。參數(shù)化設(shè)計<parametricdesign>和變量化設(shè)計〔variationdesign是基于約束的設(shè)計方法中的兩種主要形式。它們都能解決設(shè)計時所必須考慮的幾何圖形約束和工程約束等問題,具有在幾何圖形尺寸變動時自動更新圖形的能力和尺寸驅(qū)動<dimensiondriven>功能。無論參數(shù)化設(shè)計系統(tǒng)還是變量化設(shè)計系統(tǒng),工程師都可以用幾何約束<如平行、垂直等>和工程約束<通常以工程方程式來表達(dá),如模型的性質(zhì)、重量、載荷、可靠性、結(jié)構(gòu)等>來設(shè)定產(chǎn)品設(shè)計上的要求。這些系統(tǒng)不僅是在初始的幾何圖形中要能滿足工程約束的設(shè)計要求,而且在圖形參數(shù)變更時也要能保持整體工程關(guān)系不變。這樣,工程師就不用再去考慮如何更新設(shè)計幾何造型以符合設(shè)計上要求的幾何圖形約束和工程約束關(guān)系,使CAD系統(tǒng)能真正捕捉到設(shè)計者對產(chǎn)品的設(shè)計意圖。參數(shù)化設(shè)計系統(tǒng)和變量化設(shè)計系統(tǒng)二者表面上看起來很相似,但它們技術(shù)上的差別主要體現(xiàn)在:約束方程的定義和求解方式上?!飬?shù)化設(shè)計系統(tǒng):·所有約束方程的建立和求解依賴于創(chuàng)建它們的順序,每個幾何元素根據(jù)先前已知的幾何元素定位。程序設(shè)計者要預(yù)設(shè)一些幾何約束,供設(shè)計工程師在建立幾何圖形時使用。系統(tǒng)調(diào)用這些預(yù)設(shè)約束的組合,以確定各幾何元素的相關(guān)位置;·參數(shù)求解采用順序求解策略,后面的元素求解依賴于生成它的幾何元素。求解過程不能逆向進(jìn)行,即求解是過程式的;·參數(shù)化方法注重于幾何圖形元素的鄰域,對設(shè)計模型的整體修改比較困難,難以調(diào)整約束依賴關(guān)系和求解順序,無法處理特性約束,因此最適用于已完全特性化的設(shè)計問題〔即無需在設(shè)計方案上作重大改變,如具有明確層次依賴關(guān)系的裝配體設(shè)計、系列標(biāo)準(zhǔn)件庫的創(chuàng)建等?!镒兞炕O(shè)計系統(tǒng):·針對設(shè)計對象的操作具有更好的靈活性和自由度,約束的指定是陳述式的,即約束的指定沒有先后順序之分,約束依賴關(guān)系可以根據(jù)設(shè)計者意圖隨意更改;·它通常采用并行求解的策略,通過同時求解一組約束方程來確定產(chǎn)品的形狀和尺寸;·另外,幾何約束和工程約束可以聯(lián)立整體求解,因而功能更為強(qiáng)大;但是也應(yīng)該看到,大型約束方程組整體求解的效率和穩(wěn)定性顯然不如參數(shù)化設(shè)計方法。形象地說,陳述式的變量化設(shè)計系統(tǒng)告訴計算機(jī)做什么,過程式的參數(shù)化設(shè)計系統(tǒng)告訴計算機(jī)怎么做。它們具有各自的適用范圍,用戶可以根據(jù)自己特定的設(shè)計要求進(jìn)行取舍。當(dāng)前基于約束的設(shè)計方法研究趨向于將二者有機(jī)地結(jié)合起來,相互借鑒,優(yōu)勢互補(bǔ),以發(fā)揮更大的效益。一般地,如無特殊說明,我們把基于約束的設(shè)計方法簡稱為參數(shù)化設(shè)計。2.常用的參數(shù)化設(shè)計方法〔1數(shù)值約束求解方法這是一種面向非線性方程組整體求解的代數(shù)方法,最早由英國劍橋大學(xué)的Hillyard提出。美國MIT的Gossard研究小組發(fā)展和完善了這一理論,稱為變量幾何法。該方法將幾何形狀定義成一系列的特征點(diǎn),將約束表示成以特征點(diǎn)坐標(biāo)為變元的非線性代數(shù)方程組,通過數(shù)值迭代方法求解非線性方程組,從而確定幾何細(xì)節(jié)。非線性方程組的求解通?;贜ewton-Raphson迭代法。非線性方程組表示為:,其中:,對于初值XO,第n+1次迭代的Xn+1值由以下迭代公式得到:其中:令:則有:于是得到:其中,為Jacobian矩陣表示各個變量的微小位移。,表示方程組的殘差。經(jīng)過反復(fù)迭代,直至,就得到了方程組的解。約束集的有效性可以通過判斷Jacobian矩陣的秩來實現(xiàn)。數(shù)值求解的主要優(yōu)點(diǎn)在于:·能適應(yīng)較大范圍的約束類型,特性約束可以通過約束方程組的聯(lián)立求解得到處理;·但它難以避免數(shù)值方法求解穩(wěn)定性差的問題,方程組整體求解的規(guī)模和速度較難得到有效的控制,迭代初值與步長的選取也會影響算法的成敗?!挠脩舻慕嵌瓤?很難以一組方程式刻畫幾何元素之間的約束關(guān)系,而且,當(dāng)出現(xiàn)不一致的情況或非預(yù)期的結(jié)果時,也得不到準(zhǔn)確的反饋?!?基于規(guī)則的幾何推理方法基于規(guī)則的幾何推理方法運(yùn)用規(guī)則來建立和執(zhí)行構(gòu)造步驟,又稱為規(guī)則—構(gòu)造式求解方法。它基于這樣一個事實:即在工程圖中的絕大多數(shù)配置都可以通過直尺、圓規(guī)和量角器繪出,約束通過構(gòu)造的方式得到滿足。這樣對用戶來說更顯得自然而且適合于交互式查錯。Aldefeld采用一個基于符號推理和操作的專家系統(tǒng),建立一個規(guī)則體系,將幾何形體的約束關(guān)系用一階邏輯謂詞描述,存人知識庫中。系統(tǒng)從知識庫中提取出有關(guān)信息,通過推理機(jī)逐步推導(dǎo)出幾何細(xì)節(jié)。推理示意圖如圖6-2所示。圖6-2基于規(guī)則的幾何推理·知識庫——包含某特定幾何模型的知識,初始內(nèi)容是給定的約束,通過規(guī)則推理出的事實不斷累加?!ひ?guī)則庫——收集相關(guān)規(guī)則,通常僅有一個規(guī)則子集作用于某給定模型,但預(yù)先無法知道?!ね评頇C(jī)——是控制部分,其任務(wù)是按某些策略選擇規(guī)則并應(yīng)用于現(xiàn)有事實。處理的中心點(diǎn)在于模式匹配,即檢驗每個原子表在知識庫中是否有所對應(yīng)。推理的結(jié)論成為新的事實,推理機(jī)記錄了所有成功的規(guī)則應(yīng)用。幾何推理是要從現(xiàn)有的已知約束中派生出盡可能多的知識。因此每當(dāng)一個新的約束得到后,推理過程啟動。所有規(guī)則循環(huán)使用,直至沒有新的事實產(chǎn)生。約束處理分為兩個階段: 1>將幾何約束一一讀入系統(tǒng),并加入知識庫,啟動推理機(jī);將所有可派生的知識存入系統(tǒng),一旦某個約束被刪除,推理機(jī)回溯。 2>在后處理階段,推理機(jī)輸出重建步驟,把規(guī)則名翻譯成相應(yīng)的處理過程,形成構(gòu)造計劃,一步步執(zhí)行,從而構(gòu)造出整個幾何體。〔3基于圖論的約束求解方法這種方法將一般幾何約束系統(tǒng)表示成圖<graph>的形式,通過分析約束圖推導(dǎo)出一系列構(gòu)造過程,再根據(jù)這些構(gòu)造步驟來導(dǎo)出整個幾何體。這種方式又稱為圖——構(gòu)造式求解方法。由于推理過程基于圖論算法,因而理論嚴(yán)密,速度快,效率高。Fitzrald構(gòu)造了一種x向和y向尺寸樹,如果樹中出現(xiàn)了圖<即出現(xiàn)了封閉回路>,則表明出現(xiàn)了多余的尺寸約束。該方法只能處理水平和垂直方向的距離尺寸,只適用于簡單的工程圖形。將尺寸樹的概念一般化,用圖來表達(dá)幾何約束系統(tǒng),其中:頂點(diǎn)——代表幾何元素,邊——代表幾何元素之間的約束關(guān)系;再引人了循環(huán)尺寸約束,可拓展這一方法,分析約束圖的三連通部分,對每個三連通域分別求解。求解過程是遞歸的,亦即一旦某個三連通域已知,它就會在圖上被歸約為一個頂點(diǎn),并在歸約圖上成為其他三連通域的成員。若將幾何約束系統(tǒng)抽象為無向圖,頂點(diǎn)為幾何實體稱為geom,一組可獨(dú)立確定相對形位的幾何實體集稱為macrogeoms,頂點(diǎn)的自由度及頂點(diǎn)之間的約束度以權(quán)值的形式分別記錄在頂點(diǎn)和弧上。約束機(jī)的求解過程大致分為兩步:由鏈?zhǔn)剿阉骱铜h(huán)路搜索在圖上找出符合macro條件的幾何實體集,并記為macro頂點(diǎn)。從約束變動的macro出發(fā),不斷地尋找上一層macro,并識別其約束模式,調(diào)用相應(yīng)的計算方法,得到問題的解。<4>符號代數(shù)求解法這種方法將約束集轉(zhuǎn)化為一個代數(shù)方程組,利用符號代數(shù)法求解該方程組。該方法雖然能求解一般的非線性代數(shù)方程組,但在運(yùn)行時間和效率上有待進(jìn)一步改進(jìn)?!?基于構(gòu)造過程的方法基于構(gòu)造過程的方法在圖形輸入的過程中借助造型命令自動捕捉設(shè)計者的意圖。這種方法記錄了用戶在造型過程中的每一步操作,基本思想是:造型操作與幾何約束之間有著對應(yīng)的關(guān)系。造型過程能夠用來管理和維護(hù)反映幾何元素之間約束關(guān)系的內(nèi)部數(shù)據(jù)結(jié)構(gòu),設(shè)計的修改可以通過修改造型過程的某一參數(shù)得到。Roller擴(kuò)展了傳統(tǒng)CAD系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),以便更好地捕捉設(shè)計者的意圖,其主要做法包括:1>引入三種類型的幾何實體:固定的、可變的和柔性的;2>通過對命令語義的推理,自動建立幾何約束關(guān)系;3>跟蹤構(gòu)造幾何體〔輔助線、面的使用,捕捉構(gòu)造意圖;4>存儲構(gòu)造順序;5>生成由傳統(tǒng)CAD的命令組成的構(gòu)造計劃;6>對于給定的某一組尺寸參數(shù),執(zhí)行構(gòu)造方案?;跇?gòu)造過程的方法,對于結(jié)構(gòu)相同尺寸不同的零件設(shè)計是十分有效的;但是由于必須嚴(yán)格遵循構(gòu)造過程,對于那些設(shè)計要求不斷變化的設(shè)計環(huán)境則不太適用,而且難以利用傳統(tǒng)CAD系統(tǒng)生成的圖形,另外,也無法處理耦合程度高的循環(huán)約束情形。由于空間問題的復(fù)雜性,3D參數(shù)化方法難以實現(xiàn)陳述式的表達(dá)、規(guī)劃和求解,因而也多采用基于幾何模型構(gòu)造過程的方法。二.約束推理求解算法基于約束的產(chǎn)品描述方法就是:將產(chǎn)品的功能、特性、形狀等屬性通過約束的形式表示出來,然后采用某種算法使這些約束能同時得到滿足,并在設(shè)計的整個過程中得到一致的維護(hù)。一個基于約束的產(chǎn)品設(shè)計過程,實際上就是一個約束指定和約束滿足的過程,它們不斷循環(huán)求精,直至所有設(shè)計要求得到滿足。約束是特定元素之間必須滿足的一組關(guān)系。約束滿足問題可以通過一個有限集以及作用在這個有限集上的一組關(guān)系來定義。在一個約束系統(tǒng)M=<E,C>中,對于一個有限的元素集E={ei|i=1,…,n},存在一組關(guān)系C={cj|j==1,…,m},其中要求所有ei滿足cj<e1,…,ej>。CSP的主要任務(wù)就是:考察是否存在對于每一個ei∈E,都可使得每一個cj∈C得到滿足。如果存在這樣的ei的解,則能夠把它找出來。這個解又稱作M的一個實例,它是任何滿足C的元素集合,獲取M的實例是通過對C中變量的賦值實現(xiàn)的。1.約束的表示與分類對于一般的參數(shù)化CAD系統(tǒng),其中的約束分為幾何約束和工程約束。★工程約束是指:幾何約束系統(tǒng)中幾何元素之間固有的約束關(guān)系,它反映了產(chǎn)品在工程語義上的設(shè)計要求,一般以幾何設(shè)計參數(shù)為變元的約束方程式的形式提供。例如:活塞的直徑往往是由該活塞必須傳遞的功率來決定的,可以定義如下工程約束:d=f<P>,其中d為活塞直徑,P為活塞傳遞功率,因此根據(jù)傳遞功率可確定活塞的幾何參數(shù)。工程約束的引人使得設(shè)計者可以直接關(guān)注設(shè)計的功能要求,從而為主設(shè)計提供了強(qiáng)有力的支持。本節(jié)主要討論幾何約束的分類和描述?!飵缀渭s束:包含兩種類型:結(jié)構(gòu)約束和尺寸約束?!そY(jié)構(gòu)約束:是指幾何元素之間的拓?fù)浣Y(jié)構(gòu)關(guān)系,描述了幾何元素的空間相對位置和連接方式,其屬性值在參數(shù)化設(shè)計過程中保持不變。它在工程圖中往往是隱含的,并不明確給出,如平行、垂直、相切等。·尺寸約束:是通過圖上的尺寸標(biāo)注表示的約束,例如距離、角度等。工程圖中的尺寸標(biāo)注是幾何體的一個直接和自然的描述,從而提供了修改幾何形體的合適方式。尺寸驅(qū)動的目的:就是根據(jù)尺寸標(biāo)注值的變化修改圖形,并保持圖形變化前后的拓?fù)浣Y(jié)構(gòu)關(guān)系不變。結(jié)構(gòu)約束和尺寸約束可以統(tǒng)一為一種表示方式,用以下形式表示:C=<T,01,02,V>其中:C——表示約束;T——表示約束類型;O1,02——分別表示約束對象;V——表示約束值,數(shù)據(jù)類型可以是整型或?qū)嵭汀!ふ停捍斫Y(jié)構(gòu)約束,體現(xiàn)了對某種幾何拓?fù)浣Y(jié)構(gòu)關(guān)系的肯定,是一種屬性關(guān)系,不含數(shù)量關(guān)系;·實型:代表尺寸約束,有數(shù)量上的關(guān)系。約束值也可能有正負(fù)號,以體現(xiàn)約束的方向。如圖6-3所示,直線具有方向性,L1相對于L2的角度約束值為φ,是因為從Ll的正向逆時針旋轉(zhuǎn)到L2的正向測量的角度值為φ;L2相對于L1的角度約束值為-φ,是因為從L2的正向順時針旋轉(zhuǎn)到Ll的正向測量的角度值為φ。圖6-3約束的方向性帶符號的約束體現(xiàn)了幾何元素之間相互約束的方向性。它對幾何體拓?fù)浣Y(jié)構(gòu)進(jìn)行了更明確的限定,從而有效地限制了多解情況的發(fā)生。以平行約束為例,見圖6-4給定兩直線平行的約束,并不意味著兩直線的夾角一定是0°。夾角為0°意味著兩直線同向;兩直線也可能反向,這時兩直線夾角為180°。因此可以用符號區(qū)分兩種不同的平行約束,對幾何圖形作進(jìn)一步的限定。圖6-4平行約束〔1結(jié)構(gòu)約束l>平行<parallel>約束①<PAR,L1,L2,+1>:兩直線平行且方向相同。②<PAR,L1,L2,-1>:兩直線平行且方向相反。2>垂直<perpendicular>約束①<PER,Ll,L2,+1>:兩直線垂直,L1逆時針旋轉(zhuǎn)90°與L2重合<見6-5<a>>。②<PER,LI,L2,-1>:兩直線垂直,L1順時針旋轉(zhuǎn)90°與L2重合<見圖6-5<b>。圖6-5垂直約束3>兩圓相切約束①<TAN_CC,C1,C2,+1>:兩圓外切<見圖6-6<a>>。②<TAN_CC,C1,C2,-l>:兩圓內(nèi)切<見圖6-6<b>>。圖6-6兩圓相切約束4>線圓相切約束①<TAN_LC,L,C,+l>:線圓相切,圓心在直線的正半平面<見圖6-7<a>>。②<TAN_LC,L,C,-l>:線圓相切,圓心在直線的負(fù)半平面<見圖6-7<b>>。圖6-7線圓相切約束5>點(diǎn)在直線上<ON_L,P,L,+1>:點(diǎn)P在直線L上<見圖6-8>。圖6-8點(diǎn)在直線上6>點(diǎn)在圓上<ON_C,P,C,+1>:點(diǎn)P在圓C上<見圖6-9>。圖6-9點(diǎn)在圓上〔2尺寸約束1>點(diǎn)與點(diǎn)的距離約束<D_PP,P1,P2,d>:點(diǎn)P1到P2的距離是d<見圖6-10>。圖6-10點(diǎn)與點(diǎn)的距離約束2>點(diǎn)到線的距離約束①<D_PL,P,L,d>:點(diǎn)P到直線L的距離是d,點(diǎn)P在直線L的正半平面〔見圖6-11〔a。②<D_PL,P,L,-d>:點(diǎn)P到直線L的距離是d,點(diǎn)P在直線L的負(fù)半平面<見圖6-11〔b>。圖6-11點(diǎn)到線的距離約束3>平行線之間的距離約束〔如圖①<D_LL,L1,L2,d>:直線L1與L2的距離是d,L1與L2同向<見圖6-11<a>>。②<D_LL,L1,L2,-d>:直線L1與L2的距離是d,Ll與L2異向<見圖6-11<b>>。圖6-12平行線之間的距離約束4>兩直線的角度約束<ANG,Ll,L2,φ>:直線L1到直線L2的角度是φ〔見圖6-12。圖6-13兩直線的角度約束5>半徑和直徑約束約束對象的內(nèi)部屬性約束均是一元約束,其約束滿足過程比較簡單,只需對幾何元素進(jìn)行固有參變量的賦值〔見圖6-13。圖6-14半徑和直徑約束〔3幾何實體的自由度自由度指幾何實體固有的獨(dú)立運(yùn)動<自由>變量的數(shù)目,記為DOF<e><degreeoffreedom>,其中e代表某一特定幾何實體。對于二維平面上的點(diǎn)和直線,它們的自由變量數(shù)目是2,故其自由度也是2。對于平面上的圓,方程<x-xo>2+<y-yo>2=r2包含了3個自由變量,因而其自由度為3。對于二維平面上的剛體,它具有兩個平移自由度和一個轉(zhuǎn)動自由度,故剛體自由度為3,記為DOR<degreeofrigid>。而對于三維空間上的剛體,DOR=6。<4>約束的約束度由某個約束引起的相關(guān)幾何實體自由度的減少量稱為該約束的約束度,記為DOC<c>,其中c代表約束類型。約束實質(zhì)上表現(xiàn)為一組約束方程,約束的引入會限制幾何體的運(yùn)動,從而導(dǎo)致了相關(guān)幾何實體的自由度的減少。幾何約束的約束度DOC一般均為1。少數(shù)約束DOC超過1的約束類型可以分解成幾個DOC為1的基本約束類型,這樣便于進(jìn)行約束的管理和維護(hù)。例如兩直線共線約束,其DOC=2,可以將它轉(zhuǎn)化成兩條直線平行和距離為0的兩個基本約束,其約束度均為1。幾何約束系統(tǒng)中的常見約束均為二元約束,因而該模型中幾何元素及其相互之間的約束關(guān)系可以規(guī)范地以幾何約束圖<GCG:geometricconstraintgraph>的結(jié)構(gòu)來表達(dá)。在GCG=<V,E>中頂點(diǎn)集合V代表基本幾何元素,邊集合E代表幾何元素之間的幾何約束。初始建立的圖是無向圖,因為頂點(diǎn)的地位和作用等同,鄰接點(diǎn)之間還沒建立起依賴關(guān)系。如圖6-15所示的平面圖形,經(jīng)轉(zhuǎn)化后形成GCG。它清晰地表明了幾何約束系統(tǒng)內(nèi)部幾何元素及其相互約束關(guān)系。圖6-15平面圖形及其GCGGCG中的頂點(diǎn):記錄了幾何元素的類型、自由度DOF和其他相關(guān)參數(shù)信息;邊:記錄了幾何約束的類型、約束度DOC和其他信息。邊的權(quán)值的定義取決于特定問題解決的需要。例如幾何約束的約束度DOC、約束值和約束優(yōu)先權(quán)等都可以被認(rèn)為是GCG邊的權(quán),因而GCG是一個幾何約束網(wǎng)絡(luò)。在圖6-15中,GCG含有10頂點(diǎn),即10幾何元素;17條邊,即17個約束,形成的約束集描述如下:{<ANG,L1,L3,d3><PER,L1,L4,+1/-1><ON_L,P1,L1,+1/-1><ON_L,P2,L1,+1/-1>〔PER,L1,L2,+1/-1<ON_L,P1,L4,+1/-1>〔D_PP,Pl,P5,d2〔D_PP,Pl,P2,d1<ON_L,P2,L2,+1/-1><ON_L,P3,L2,+1/-1><ON_C,P3,C,+1/-1><TAN_LC,L2,C,+1/-1><ON_C,P4,C,+1/-1><TAN_LC,L3,L1,+1/-1><ON_L,P4,L3,+1/-1><ON_L,P5,L3,+1/-1><ON_L,P5,L4,+1/-1>}GCG作為一種圖,繼承了圖的一般概念和性質(zhì)。從直觀上看,一個被標(biāo)注尺寸的草圖,·如果在非退化的情況下存在有限個的解,那么就認(rèn)為是約束完備的;·如果存在無窮多個解,就是約束不足的;·如果沒有一個解存在,那就是約束過載的。在這里,非退化的情況指:尺寸值是合理的,能夠在結(jié)構(gòu)上生成圖形。例如,標(biāo)注了三條邊長的三角形,它的約束是合理的和完備的;如果某一邊的長度大于其余兩邊之和,則該三角形無法正確生成。這就是出現(xiàn)了退化的情況。下面簡要介紹幾何約束系統(tǒng)中的幾個常用概念及性質(zhì)。<l>約束過載<over-constrainted>:一個幾何約束系統(tǒng)在結(jié)構(gòu)上是約束過載的,如果其GCG中存在的子圖含有n個頂點(diǎn)和多于2n-3條邊。約束過載的系統(tǒng)又稱過約束系統(tǒng)。<2>約束不足<under-constrainted>:一個幾何約束系統(tǒng)在結(jié)構(gòu)上是約束不足的,如果它在結(jié)構(gòu)上不是約束過載并且約束的數(shù)目嚴(yán)格小于2n-3。約束不足的系統(tǒng)又稱欠約束系統(tǒng)。<3>約束完備<well-constrainted>:一個幾何約束系統(tǒng)在結(jié)構(gòu)上是約束完備的,如果它不是約束過載的并且其約束數(shù)目等于2n-3。約束完備的系統(tǒng)又稱完備約束系統(tǒng),對外表現(xiàn)為一個剛體。完備GCG一定是邊稀疏的、連通的?!み^約束圖形一般不能接受,但不排除工程圖中允許多余但不矛盾的尺寸標(biāo)注,以幫助閱讀者看懂圖形,理解設(shè)計者的意圖;·欠約束系統(tǒng)是廣泛存在而且可以接受的,事實上在概念設(shè)計中,系統(tǒng)的初始狀態(tài)必須是欠約束的。在設(shè)計不斷深化和細(xì)化的過程中,可持續(xù)對欠約束系統(tǒng)施加約束,使之一步步走向完備的約束系統(tǒng)。一個支持概念設(shè)計的約束求解系統(tǒng)必須能夠處理欠約束的情形。2.幾何約束系統(tǒng)的約束建模幾何約束圖GCG的建立可以通過三種方式實現(xiàn):第一種:是在作圖過程中記錄下該操作對應(yīng)產(chǎn)生的約束。在制圖過程完成后,GCG也就建立起來了。此種方法在制圖的過程中很自然地實現(xiàn)了GCG的建立,因此能準(zhǔn)確地記錄下圖形所蘊(yùn)含的約束,捕捉設(shè)計者的意圖;但該方法必須針對全新的設(shè)計對象,對于已有圖形則無能為力。第二種:是按己畫好的草圖手工指定約束。該方法能處理已有圖形,由用戶指定所需約束。但約束指定過程過于煩瑣,對于復(fù)雜的設(shè)計圖形顯然工作量太大。第三種:是自動識別原有圖形隱含的約束。此方法能自動地為已有圖形建立相應(yīng)的約束模型GCG,避免了前兩種辦法的不足,但實現(xiàn)的難度比較大,現(xiàn)有的算法還不夠成熟。因為大量無用和冗余的約束往往被系統(tǒng)識別出來,給后繼的推理、排序和求解算法帶來了很大負(fù)擔(dān),而且很容易導(dǎo)致過約束或異常結(jié)果。因此,該方法多用于規(guī)模較小的圖,例如為平移、旋轉(zhuǎn)等三維造型操作提供二維截面圖形。在工程圖中,隱含約束是普遍存在的,例如水平、垂直、平行、相切等結(jié)構(gòu)約束并沒有在圖上標(biāo)志出來。隱含約束的確定有一定的規(guī)則,或者說是工程常識,工程設(shè)計人員容易理解,我們利用計算機(jī)進(jìn)行識別也要遵循這些規(guī)則。以下是常見的幾種隱含約束識別規(guī)則,按識別的優(yōu)先級順序排列:<l>近似水平的直線嚴(yán)格水平,近似鉛垂的直線嚴(yán)格鉛垂;<2>近似相切的直線、圓和弧嚴(yán)格相切;<3>近似同心的圓或弧嚴(yán)格同心;<4>近似共線的兩直線嚴(yán)格共線;〔5近似平行的兩直線嚴(yán)格平行;<6>近似垂直的兩直線嚴(yán)格垂直;<7>近似的多個圓和弧半徑被認(rèn)為相等;<8>圖形元素之間相互連接。這里有一個問題,究竟近似到什么程度才能被認(rèn)為相等呢?為此引人兩個閾值的概念:如圖6-16所示。·距離閾值△d:如果兩個點(diǎn)的距離在距離閾值△d之內(nèi),則認(rèn)為這兩個點(diǎn)是同一個點(diǎn);同樣,如果點(diǎn)到直線的距離小于△d,那么就可以認(rèn)為點(diǎn)在直線上?!そ嵌乳撝怠鳓粒阂?guī)定了兩條直線夾角的限定值,是角度類約束的識別依據(jù)。例如,如果兩條直線的夾角小于△α可以認(rèn)為兩條直線平行。兩種閾值的大小可以根據(jù)草圖的形狀和準(zhǔn)確程度由用戶設(shè)定。<a>草圖<b>約束識別后規(guī)整的圖圖6-16距離閾值和角度閾值的概念約束。每當(dāng)一個幾何元素被系統(tǒng)作為一個頂點(diǎn)插入到GCG時,都要與GCG中已存在的幾何元素按照上述規(guī)則進(jìn)行比較,以生成相應(yīng)的邊。尺寸約束的識別可以根據(jù)尺寸標(biāo)注的控制點(diǎn)以及標(biāo)注方向,搜索相應(yīng)的控制圖素,建立尺寸標(biāo)注與對應(yīng)幾何元素的約束關(guān)系。在實際應(yīng)用中,隱含約束的識別并不是在約束求解之前就全部完成的,否則會產(chǎn)生大量不必要的約束,嚴(yán)重影響推理效率。因此,往往是在推理過程中,由于約束不足而使推理過程無法繼續(xù)進(jìn)行時,才啟動隱含約束識別模塊,按約束優(yōu)先級有針對性地識別某些隱含約束。3.幾何約束的推理算法在GCG中,每個約束對應(yīng)于圖的一條邊,每個幾何元素對應(yīng)于圖的一個頂點(diǎn)。從圖的某一頂點(diǎn)出發(fā),把所有與它關(guān)聯(lián)的邊變?yōu)橐栽擁旤c(diǎn)為弧尾的出弧,從而增加了相應(yīng)鄰接頂點(diǎn)的入度<或減少其自由度>。如果某頂點(diǎn)的入度達(dá)到了其自由度數(shù),則變?yōu)橐阎冶惠敵?。其非弧的邊成為以該頂點(diǎn)為弧尾的出弧,用來減少與之鄰接的頂點(diǎn)的自由度。通過廣度優(yōu)先搜索,逐步遞歸地由已知元素推理出未知元素,直到圖中所有頂點(diǎn)的自由度約束均減為0。這時無向圖變?yōu)橛邢驁D,頂點(diǎn)輸出的順序就是拓?fù)渑判虻慕Y(jié)果?!?推理步驟1>預(yù)處理階段:將所有含自反邊的頂點(diǎn)的自由度DOF<v>減去自反邊的約束度DOC〔e,同時在圖中刪掉自反邊。自反邊代表了一類一元約束,如半徑、水平、垂直等約束。2>固定一點(diǎn)作為基點(diǎn),其自由度DOF<v>=0,它成為已知元素,是推理搜索的起點(diǎn)。3>從基點(diǎn)出發(fā),遞歸調(diào)用SEARCH過程,直至所有頂點(diǎn)的自由度約束均減為0。SEARCH算法過程說明如下:輸入:已知元素的頂點(diǎn)v。輸出:表頭結(jié)點(diǎn)己排好序的有向圖。步驟l:取已知元素v的表頭結(jié)點(diǎn),從第一個表頭結(jié)點(diǎn)開始,將其插入到已排好序的已知元素表頭結(jié)點(diǎn)的最后。步驟2:遍歷與U關(guān)聯(lián)的所有邊;對于當(dāng)前邊e,取與邊e關(guān)聯(lián)的v的鄰接頂點(diǎn)v’;如果DOF<v’>=0,則v’為已知元素,繼續(xù)做步驟2;否則DOF<v’>=DOF<v’>-DOC<e>標(biāo)記邊成為從v指向v’的有向??;如果DOF<v’>=0,將v’壓入臨時堆找s。步驟3:如果臨時堆棧s為空,返回。否則從臨時堆棧s中彈出頂點(diǎn)vv,令v=vv,轉(zhuǎn)步驟1。算法最終輸出己排好序的頂點(diǎn)序列。以上算法需進(jìn)一步細(xì)化,才能保證其實用性。〔2啟發(fā)式搜索策略由約束識別建立的GCG可能會包含大量冗余或矛盾的約束,并不是所有的約束都能用于推理,而且不同約束對推理過程所起的作用也不同。為此,通常遵照一般的工程常識為每個約束類型規(guī)定相應(yīng)的優(yōu)先權(quán)值。例如尺寸約束的優(yōu)先權(quán)比結(jié)構(gòu)約束的優(yōu)先權(quán)要大,因為尺寸約束是顯式的,而結(jié)構(gòu)約束是隱式的。如果多個約束同時可用,則按照優(yōu)先順序觸發(fā),亦即搜索時優(yōu)先搜索權(quán)值較大的邊,從而能較快地引導(dǎo)搜索向正確的方向進(jìn)行?!?缺省推理<defaultreasoning>技術(shù)當(dāng)用優(yōu)先權(quán)較高的約束推理失敗<仍有自由度不為0的頂點(diǎn)>時,依次采用系統(tǒng)內(nèi)部優(yōu)先權(quán)較低的待用約束,分步進(jìn)行推理。〔4冗余約束剔除幾何推理的過程并不是完全由自由度驅(qū)動的,還要對矛盾的約束進(jìn)行判別,與已用約束<已標(biāo)記為弧>矛盾的約束不能用來減少頂點(diǎn)自由度,這樣才能建立正確的求解方式。例如,若有一個點(diǎn)P,它在已知直線L1上,則該約束所代表的邊已被標(biāo)記為??;假設(shè)又存在已知直線L2,使得點(diǎn)P在直線L2上,于是點(diǎn)P可以通過兩直線求交進(jìn)行求解。但是如果L1平行于L2<意味著這兩條直線共線>,則點(diǎn)P不能求解,因此點(diǎn)P在直線L2上的約束不能使用。它是識別的冗余約束,雖未造成矛盾,但影響求解,也應(yīng)該剔除?!?局部參數(shù)變動處理對于已排好序的GCG,當(dāng)用戶只需要修改少數(shù)幾個參數(shù)值時,沒有必要從頭至尾生成整個圖形。為了提高效率,在某個局部參數(shù)變動時,只需重新計算受到該參數(shù)直接或間接影響的元素,亦即僅受到該參數(shù)變動影響的局部圖形元素。下面給出在某一約束值變化時,找到僅受其影響的一組元素集合的算法步驟:步驟1:找到該約束代表的弧,取出弧頭元素階。步驟2:對于所有vi的后繼元素vj,遞歸地向上回溯搜索其直接前驅(qū)元素。如果找到了vi,則標(biāo)記vj為受參數(shù)變動影響的元素,送入待求元素隊列。步驟3:待求元素依次出隊列,進(jìn)行求解。〔6約束一致性檢查1>欠約束差別GCG的拓?fù)渑判蚪Y(jié)束后,依次遍歷有向圖的逆鄰接表的表頭結(jié)點(diǎn)。如果還存在自由度大于0的頂點(diǎn),則系統(tǒng)必為欠約束,表明圖中尺寸標(biāo)注不足。這些自由度大于0的頂點(diǎn)沒有受到尺寸的控制,系統(tǒng)會顯示出這些約束不足的頂點(diǎn)。2>過約束差別即使圖中所有頂點(diǎn)的自由度均變?yōu)?,還有可能出現(xiàn)過約束,這就必須考察未用到的多余邊<冗余約束>。如果該邊所代表的約束是由尺寸標(biāo)注引起的,那么它是多余的尺寸標(biāo)注,亦即產(chǎn)生了過約束。在上述排序算法中,每輸出一個已知元素之前,必須檢查它是否含有未用的邊,這些未用邊的約束很有可能是多余的。如果存在多余約束,系統(tǒng)會提示用戶刪除它。用戶也可以忽略該約束,算法會繼續(xù)執(zhí)行下去,多余約束將會被自動忽略而不使其得到滿足。4.幾何約束的求解計算推理結(jié)束后,幾何元素的求解順序就完全確定下來了。計算時只需依序遍歷有向圖的鄰接表的表頭結(jié)點(diǎn),將入弧記錄的約束信息轉(zhuǎn)化為約束方程,從而計算出各頂點(diǎn)幾何元素的參數(shù)值。圖6-17顯示了排序后的依次求解過程,可見它等同于一種尺規(guī)作圖的方法,只需要進(jìn)行幾何解析交切運(yùn)算,因此該算法比較準(zhǔn)確高效。<a>求解順序1→5<b>求解順序1→5→2〔c求解順序1→5→2→8<d>求解順序1→5→2→8→4<e>求解順序1→5→2→8→4→3〔f求解順序1→5→2→8→4→3→7→6圖6-17排序后的求解過程求解方法依據(jù)入弧的類型和數(shù)目確定。由于約束類型的多樣性和復(fù)雜性,求解時必須考慮到所有約束可能的排列組合,每一種求解方法對應(yīng)于一段計算程序。實際求解之前,系統(tǒng)已將其他約束類型轉(zhuǎn)化成距離和角度類約束,因此基于表6-1即可確定點(diǎn)和直線參數(shù)的約束組合。未注半徑的圓,其自由度是3,需要同時有3個約束才能確定,即對它的求解需要3個方程聯(lián)立求解。與未注半徑的困相關(guān)的約束實際上只有兩種:線圓相切約束和兩圓相切約束<如果把點(diǎn)視為半徑為0的圓,那么可把點(diǎn)在圓上的約束轉(zhuǎn)化為兩圓相切約束>,因此未注半徑的圓的求解方法可有如表6-2所示的四種組合。對于一個完備約束系統(tǒng)。通??梢源嬖谟邢迋€不同的解,但是用戶一般只能接受其中的一個。因此,多解的取舍問題是GCSP中一個十分重要的問題。事實上,對于一個完備的幾何約束系統(tǒng)來說,解的數(shù)目一般會達(dá)到幾何元素數(shù)目的指數(shù)級。表6-1點(diǎn)和直線的求解方法和對應(yīng)的約束組合幾何元素約束組合求解方法點(diǎn)D_PP+D_PP<點(diǎn)點(diǎn)距離+點(diǎn)點(diǎn)距離>D_PP+D_PL<點(diǎn)點(diǎn)距離+點(diǎn)線距離>求與兩已知點(diǎn)有一定距離的點(diǎn)求與一個已知點(diǎn)有一定距離且與一條已知直線有一定距離的點(diǎn)直線D_PL+D_PL<點(diǎn)線距離+點(diǎn)線距離>D_PL+D_PL<點(diǎn)線距離+點(diǎn)線距離>D_PL+ANG<點(diǎn)線距離+線線角度>求與兩已知直線有一定距離的點(diǎn)求與兩巳知點(diǎn)有一定距離的直線求與一個已知點(diǎn)有一定距離且與一條己知直線有一定角度的直線表6-2未注半徑的圓的求解方法約束組合求解方法TAN_CC+TAN_CC+TAN_CCTAN_CC+TAN_CC+TAN_LCTAN_CC+TAN_LC+TAN_LCTAN_LC+TAN_LC+TAN_LC求與三個已知圓相切的圓求與兩個已知圓和一條已知直線相切的圓求與一個已知圓和兩條己知直線相切的圓與三條已知直線相切的圓首先看一個簡單的例子,如圖6-18所示。圖6-18<a>的三角形是一個完備約束系統(tǒng),圖6-18的解是一致的,但顯然不是用戶所需要的。針對多解問題,各種約束求解系統(tǒng)可能采取不同的方法?!?數(shù)值迭代方法基于數(shù)值迭代的約束求解器的基本策略是收斂到與初始圖形最近的解,這種策略直觀且通過迭代方式很容易實現(xiàn)。然而由于解的數(shù)目呈指數(shù)式上升,約束方程組的數(shù)值迭代t往往呈現(xiàn)出病態(tài),因此常常會收斂到鞍點(diǎn)而非所期盼的最小點(diǎn)。用戶通常被迫將草圖畫得盡量準(zhǔn)確,以使幾何元素的數(shù)值接近所期望的解。同樣的道理,尺寸值的變化也要盡量的小。另外,由尺寸值帶來的變化并不一定是可逆的。例如把圖中某一尺寸值由40改為30,再由30改回40,得到的結(jié)果并不一定還是原來的圖,因此系統(tǒng)不得不小心地保留每一步變化的設(shè)計歷史。<a>約束完備的三角形<b>一個一致的解圖6-18三角形的多解情況〔2通用規(guī)則判定方法這種思想的中心點(diǎn)在于根據(jù)某些特定的性質(zhì)確定多解的取舍。這通常要依賴于特定的應(yīng)用,例如可以選擇封閉的、凸的和非自交的圖形。該方法存在兩個主要問題: <1>通用規(guī)則的施加可能并不符合用戶的要求,特別是在用戶漸進(jìn)式地構(gòu)造草圖時。因此在構(gòu)造圖形的某些階段,不允許圖形是自交的。<2>甚至在非常嚴(yán)格的情況下,這類問題的求解在計算上也是很困難的。例如,考察一個多邊形截面的頂點(diǎn)構(gòu)成的點(diǎn)集。對于某些特定應(yīng)用可能會要求草圖的結(jié)果應(yīng)該是一個簡單多邊形,即非自交的多邊形。另外,也可以指定一個點(diǎn)集連接的環(huán)路方向構(gòu)造這個多邊形。這個附加要求使該問題成為一個NP完全問題。〔3通過過約束方法指定正確解這是一種很自然的方法,工程師在圖中經(jīng)常使用。圖6-19給出了一個運(yùn)用這種方法得到唯一解的典型實例。假設(shè)圖中的三條平行線沒有方向,如果我們僅僅指定了兩個距離約束dl和d2,則會得到兩個不同的解。由于直線不含方向,因此除了第一個距離約束外,對于其他每個距離約束都有兩個不同解的選擇。一般地,對于n條平行直線和n-1個距離約束的完備系統(tǒng)存在2n-2個解。如果在本例中加入第三個距離d3,就能得到唯一解。雖然這種方法看起來很有效,但是即使把問題限制在一個很簡單的條件下,也無法找到一個有效算法得到的問題的解。將上述例子一般化,得到問題的描述:給定n條平行線和它們之間的n個平行距離,是否存在滿足要求的解?可以證明這個問題是一個NP完全問題,因為它可以轉(zhuǎn)化成一個整數(shù)劃分問題:給定一個n個正整數(shù)的集合A,是否存在A的一個劃分,把這n個整數(shù)分成兩個不相交的集Al和A2,使得A1中整數(shù)的和等于A2中整數(shù)的和?<a>兩個距離約束得到兩個可能解<b>三個距離約束得到唯一解圖6-19用距離約束三條平行線三、參數(shù)化CAD系統(tǒng)基于上述的算法,在傳統(tǒng)CAD系統(tǒng)的基礎(chǔ)上,構(gòu)造一個參數(shù)化CAD系統(tǒng)<PCAD>對實際應(yīng)用是十分重要的。由清華大學(xué)CAD中心開發(fā)的PCAD系統(tǒng)的基本流程是:對于用戶輸入的原始草圖,通過草圖識別方法建立起圖形的GCG表達(dá),這是一個無向圖的鄰接表結(jié)構(gòu)。根據(jù)幾何推理算法對原始GCG進(jìn)行有向化處理,拓?fù)渑判蚝笊身旤c(diǎn)輸出序列,亦即幾何元素的求解順序,它存儲在有向圖的逆鄰接表的表頭結(jié)點(diǎn)鏈中。順序遍歷該鏈,通過幾何解析交切求解計算和多解判定,確定出每個結(jié)點(diǎn)所包含的幾何元素的參數(shù)值,最終得到符合幾何約束的精確圖形。此流程圖如圖6-20所示。1.參數(shù)化CAD系統(tǒng)的流程和基本功能〔1PCAD系統(tǒng)的主要功能圖6-20系統(tǒng)的流程框圈1>草圖設(shè)計在初始設(shè)計階段,工程師可以將注意力集中在設(shè)計上,利用鼠標(biāo)在屏幕上以草圖的形式隨手勾畫出設(shè)計圖形,表達(dá)設(shè)計思想。在給出必要的尺寸標(biāo)注之后,PCAD將根據(jù)草圖形狀和尺寸大小把規(guī)整的圖形繪制出來。2>修改設(shè)計在修改設(shè)計時只需將原有圖形調(diào)出,修改某些尺寸標(biāo)注的值,運(yùn)行PCAD后就可以迅速得到新的設(shè)計圖。在PCAD的支持下,設(shè)計師可以通過不斷調(diào)整尺寸參數(shù)值產(chǎn)生不同的設(shè)計方案。3>支持工程設(shè)計約束PCAD允許定義一組設(shè)計變量,通過表達(dá)式為尺寸標(biāo)注賦值,這樣根據(jù)幾個關(guān)鍵參數(shù)就可以定義一個很復(fù)雜的圖形。4相似零件圖的生成只需要定義一張原型圖并提供圖中設(shè)計變量的數(shù)據(jù),PCAD系統(tǒng)就能自動生成一系列結(jié)構(gòu)相同而尺寸不同的相似零件族,這使創(chuàng)建標(biāo)準(zhǔn)件和常用件庫的工作變得十分容易。事實上,我們已利用該系統(tǒng)創(chuàng)建了全套國家標(biāo)準(zhǔn)零件庫。針對工程實際需要,PCAD系統(tǒng)還增加了中心線處理、陣列處理、剖面線處理和三視圖處理等實用功能。對于中等復(fù)雜的零件圖,其處理速度和準(zhǔn)確性均能滿足工程設(shè)計的實際要求?!?PCAD系統(tǒng)的功能命令1>PPCREATE命令自動識別草圖約束,建立參數(shù)化模型,并按照識別的約束規(guī)整圖形。2PPUPDATE命令根據(jù)圖中的所有結(jié)構(gòu)約束和尺寸標(biāo)注值,更新全圖。3PPDIM命令是尺寸標(biāo)注命令,能夠進(jìn)行點(diǎn)到點(diǎn)的距離、點(diǎn)到線的距離、線到線的距離、角度、直徑和半徑的標(biāo)注。4PPCHGDIM命令修改尺寸標(biāo)注值,并按照新的尺寸值更新圖形。5>PPDELDIM命令刪除尺寸標(biāo)注,并報告當(dāng)前所需的尺寸和約束數(shù)目。6PPDSPDIM命令顯示尺寸標(biāo)注狀態(tài),可以是數(shù)值、變量或方程的形式。7PPADDCON命令對圖形施加指定約束,約束類型包括水平、鉛垂、平行、垂直、相切、投影、共線、共點(diǎn)和固定點(diǎn)等。8>PPSHOWCONS命令顯示圖中與幾何實體相關(guān)的約束,約束以符號的形式顯示在圖中,如表6-3所示。表6-3與幾何實體相關(guān)的約束HVPLCT水平鉛垂平行垂直共線相切9>PPDELCONS命令刪除圖中幾何實體上的約束,刪除時只需選擇幾何實體上相應(yīng)的約束符號。10>PPDELENT命令刪除圖中的某個幾何實體,與之相關(guān)的所有約束也隨之刪除。11>PPSETPAR命令設(shè)置尺寸參數(shù)變量,用于建立圖形中尺寸標(biāo)注之間的聯(lián)系,或用于工程約束方程的建立。12PPEQUAT命令該命令彈出一個對話框,可以輸入、刪除和修改工程約束方程式,顯示外部變量的值,系統(tǒng)還會根據(jù)方程求解的結(jié)果自動更新圖形。13PPITERATE命令以對話框方式設(shè)置仿真參數(shù),使圖形連續(xù)變化,用于模擬機(jī)構(gòu)運(yùn)動。14>PPANNOTE命令隨動約束的維護(hù)命令。如形位公差、表面粗糙度等不參與約束求解運(yùn)算,但應(yīng)隨所附著的幾何實體移動,這種約束稱為隨動約束。該命令包括隨動約束實體集的創(chuàng)建、刪除、修改和移動。15>PPSET命令系統(tǒng)全局參數(shù)設(shè)置命令,負(fù)責(zé)設(shè)置系統(tǒng)的某些精度值開關(guān)等。2.參數(shù)化CAD系統(tǒng)的數(shù)據(jù)管理PCAD系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的組織及管理分為三部分:·反映幾何約束系統(tǒng)的GCG及其歸約樹演變的樹狀鄰接多重表結(jié)構(gòu);·維護(hù)尺寸變量和外部變量關(guān)系的變量和方程維護(hù)體系;·隨動約束管理模塊。基本操作包括節(jié)點(diǎn)的插入、刪除和修改。幾何約束系統(tǒng)的歸約分治理論將幾何約束系統(tǒng)原始GCG歸約為一個樹狀立體結(jié)構(gòu)。我們利用一個樹狀鄰接多重表TAMlist<tree-likeadjacentmultilists>結(jié)構(gòu)反映幾何約束系統(tǒng)的這種演變,其特點(diǎn)是結(jié)構(gòu)清晰、層次分明,易于操作和維護(hù)。在歸約樹的每一層中,是無向圖的結(jié)構(gòu),用鄰接多重表表示;在歸約樹的層與層之間是樹狀結(jié)構(gòu),用多叉樹的形式表示。整個數(shù)據(jù)結(jié)構(gòu)中主要包含三個信息組成部分,見圖6-21。圖6-21GCG的樹狀結(jié)構(gòu)〔1GCG頂點(diǎn)<即歸約樹節(jié)點(diǎn)>GeomVertex數(shù)據(jù)結(jié)構(gòu)GeomVertex:idtypemarkgmpFirstEdgenextpParentdof其中,id——整型,頂點(diǎn)在所處約束子圖頂點(diǎn)鏈表中位置的索引。Type——整型,標(biāo)志當(dāng)前頂點(diǎn)的類型。type=1時,當(dāng)前頂點(diǎn)為一歸約體;ptype=O時,當(dāng)前頂點(diǎn)為某個基本幾何元素InitGeom。mark——邏輯型,設(shè)定頂點(diǎn)訪問標(biāo)志。gm——聯(lián)合結(jié)構(gòu),記錄幾何信息。type=0時,gm內(nèi)含當(dāng)前頂點(diǎn)的基本幾何實體信息;type=1時,gm封裝其對應(yīng)歸約集〔歸約子圖頂點(diǎn)鏈表表頭。該域即頂點(diǎn)的子項記錄。pFirstEdge——"GeomEdge*"指針型。指向與當(dāng)前頂點(diǎn)關(guān)聯(lián)的邊的鏈表表頭。pParent——"GeomVertex*"指針型。指向當(dāng)前頂點(diǎn)的父項頂點(diǎn),亦即當(dāng)前子圖〔歸約集對應(yīng)的歸約體指針。next——"GeomVertex*"指針型。指向當(dāng)前頂點(diǎn)的后繼兄弟頂點(diǎn)。dof——整型,記錄當(dāng)前頂點(diǎn)的自由度數(shù)。該信息可以根據(jù)具體的實體類型,由過程導(dǎo)出。為了盡量減少時間花費(fèi),這里仍將其作為表信息加以記錄。〔2歸納集子圖內(nèi)的邊記錄GeomEdge信息GeomEdge:markdocivilinkjvjlinkGeomConstrnext其中,mark——邏輯型,邊的訪問標(biāo)識;iv,jv——"GeomVertex*"指針型,分別指針該邊所關(guān)聯(lián)的兩個實體頂點(diǎn);ilink——"GeomEdge*"指針型,指向與iv頂點(diǎn)關(guān)聯(lián)的后繼邊;jlink——"GeomEdge*"指針型,指向與jv頂點(diǎn)關(guān)聯(lián)的后繼邊;doc——整型,記錄當(dāng)前邊所含的約束度。GeomConstr——結(jié)構(gòu)數(shù)組,記錄與該邊關(guān)聯(lián)的兩實體之間的幾何約束信息。最多有三項,對應(yīng)于三個幾何約束,具體結(jié)構(gòu)如下:GeomConstr:typeInitGm1InitGm2rg1rg2next其中,type——整型,表明約束類型。InitGm1,InitGm2——"InitGeom*"指針型,記錄與該約束相關(guān)的基本幾何元素。rg1,rg2——"GeomVertex*"指針型,記錄兩幾何元素的歸約體頂點(diǎn),亦即與該約束關(guān)聯(lián)的鄰接頂點(diǎn)。next——為了快速查找?guī)缀渭s束信息,讓next指向邊的后繼指針,該指針串成TAMlist全局上的所有邊的鏈表。〔3基本幾何實體InitGeom信息InitGeomtypeEntInfopParentnext其中,type——整型,表示基本幾何實體的類型〔點(diǎn)、直線、圓和弧。EntInfo——結(jié)構(gòu),基本幾何實體信息封裝,記錄了基本幾何實體的參數(shù)信息。pParent——"GeomVertex*"指針型,指向直接封裝該InitGom的實體頂點(diǎn),該實體頂點(diǎn)即成為歸約樹上的葉子結(jié)點(diǎn)。next——"InitGeom*"指針型,是基本幾何實體鏈的指針。該鏈將歸約樹葉結(jié)點(diǎn)內(nèi)的InitGeom線性地串接為一體。從TAMlist結(jié)構(gòu)的說明可以看出,該結(jié)構(gòu)是鏈表,是圖和樹結(jié)構(gòu)的綜合體現(xiàn)<見圖6-22>。圖6-22TAMlist結(jié)構(gòu)示意圈PCAD系統(tǒng)提供了三種信息查詢?nèi)肟冢?lt;l>GeomVertex*pTopHead:是歸約樹頂圖的表頭指針,由此可以遍歷GCG和歸約樹,即整個TAMlist結(jié)構(gòu)。<2>GeomEdge*pEdgeHead:是GCG中所有邊組成的鏈表的頭指針,用于迅速地找到某約束在TAMlist中的位置。 <3>InitGeom*pInitHead:是基本幾何實體鏈的頭指針,用于查找基本幾何

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論