在零部件的裝配過程中,如果待裝配件能在裝配過程中自動改變尺寸以適應相應裝配基件的尺寸,如把一個軸套裝到軸上,若軸套的內徑和軸的直徑不同(暫不考慮間隙、過渡和過盈配合情況),軸套在裝配時,能根據軸的直徑尺寸而自動改變其內徑尺寸,以滿足裝配,且軸套的外徑或壁厚也同時發生相應變化,這樣必能大大提高裝配設計的效率。基于關聯和尺寸驅動原理,使用CAXA實體設計建立可重用的參數化智能圖素,調用CAXA實體設計的二次開發函數以及C++標準模板庫(Standard Template Library,簡稱STL),通過參數名建立了不同特征尺寸之間的映射關系,以此來驅動相應的尺寸值,在CAXA實體設計上,成功實現了自動裝配設計功能。
1 關聯原理
關聯是指事物之間所具有的彼此約束的關系。在機械產品中,關聯性體現在裝配實體模型中不同零件實體之間所具有的內在聯系,通過一個零件實體的某一部分屬性,可以完整或部分地推導出另一個實體的某一部分屬性,具有關聯關系的零件實體互為關聯單元。關聯可分為變量關聯和幾何關聯兩類。
1.1 變量關聯
變量關聯是在分屬不同參數集的變量間建立映射關系,以便對某個變量修改后,與之對應的變量能自動修改。它適用于裝配環境下零件間尺寸約束的關聯。對于參數化特征造型系統,其構造的特征模型可以表示為:
M={F'i,Pi}
式中:M-系統所構造的特征模型;
Fi——構成特征模型的組成特征;
Pi——與特征相對應的參數集。
于是,當引入其它具有工程意義的尺寸控制參數集Qi,并建立參數集Qi與Pi的映射關系f,使得:Pi=f(Qi)。
那么,幾何模型就可具有另一種表示:
M={F'i,f(Qi))
這樣,對新參數的修改,必然引起模型的更新。若新參數是其它零件的控制參數,那就意味著其它零件具有了驅動該零件的能力。
1.2 幾何關聯
幾何關聯是將一個零件的幾何信息提取出來,作為其它零件的基準或控制結構,以達到聯動的目的。它適用于有形狀或定位要求的場合。文中主要使用變量關聯。
2 尺寸驅動原理
待裝配件的重新生成是對相應智能圖素進行尺寸驅動的過程。尺寸驅動即在零件拓撲結構不變的情況下,把零件的尺寸參數定義為尺寸變量,并定義出變量間的關系,當給定不同的尺寸值,就可得到一組結構相同而尺寸不同的零件。每一類待裝配件對應一個智能圖素,在智能圖素中定義尺寸變量和變量間的關系。由于CAXA實體設計采用了參數化的設計方法,在設計智能圖素時沒有必要再做尺寸的約束求解,所以,零件的最后生成可以依靠CAXA實體設計的參數化功能來實現,即通過用新的尺寸值對事先準備好的智能圖素進行尺寸驅動,來生成一個新的待裝配件。
3 CAXA實體設計及二次開發關鍵技術
CAXA實體設計是一個全功能的CAD軟件,采用拖方式的實體造型,并結合智能捕捉與三維球定位技術,使得沒有其他造型軟件在設計效率和速度上能與其相匹配。拖方式是指能夠來回用鼠標拖放標準件和自定義的設計元素。智能捕捉是一個動態的三維約束算法工具,它為圖形方式下的特征和圖素拖動提供精確定位和對齊功能。三維球工具為各種對象的平移、旋轉或各種復雜三維變換提供了精確定位方法。結合幾何智能捕捉工具,可實現對復雜零件的裝配與修改。智能圖素是參數化的三維模型體。為避免重復勞動,提高設計效率,標準件、常用件及標準結構的三維參數化模型庫的建立,是CAD系統走向實用化的必然趨勢。CAXA實體設計的元素庫體現了這種思想。
CAXA實體設計提供了一個二次開發向導(ICAddinAppWizard.awx),它可以幫助用戶創建一個基于Add-in的ATL工程。將其添加到VC++的Common\MSDev98\Template\目錄下,這樣用戶可以通過VC++的IDE來創建自己的工程。
在CAXA實體設計二次開發環境中,開發人員可以獲得/設置子坐標系相對于其父坐標系的變換矩陣ChildToParent。開發人員也可以獲得/設置錨(Anchor)的變換矩陣,錨是一個對象依附于其他對象的點。子對象的錨變換矩陣A是指子對象的錨相對于子坐標系的變換矩陣。通過CAXA實體設計的交互界面(UI),用戶可以獲得子對象的錨在父坐標系中的精確位置。位置變換矩陣P是子對象的錨相對于父坐標系中的變換矩陣。錨、位置和ChildToParent變換矩陣的關系如圖1所示。
圖1 錨、位置和Child To Parent變換矩陣的關系
在CAXA實體設計中,每個設計界面有一個全局坐標系,界面上的每個零件有一個局部坐標系,零件上的每個特征也有一個局部坐標系。在選中零件的狀態下轉動三維球,則零件的局部坐標系將隨著三維球一起轉動。對于裝配情況,裝配基件的坐標系是父坐標系,待裝配件的坐標系是子坐標系。文中只考慮子坐標系對父坐標系的轉換矩陣,這樣即使轉動裝配基件的三維球,在裝配時也不用考慮此動作對待裝配體的影響。
4 標準模板庫(STL)
STL是一個高效的C十十程序庫,它是ANSI/ISO C++標準中的一部分。該庫包含了諸多常用的基本數據結構和基本算法,為程序員提供了一個可擴展的應用框架,高度體現了軟件的可復用性。從邏輯層次來看,在STL中體現了泛型化程序設計的思想;從實現層次看,整個STL是以一種類型參數化的方式實現的。STL主要由兩種組件構成:一是容器,包括vector,list,map等類。另一種是用以操作這些容器類的泛型算法。map是一對對的key/valuP組合,key用于搜索,value用來表示要存儲或取出的數據。
5 自動裝配設計的實現
自動裝配設計使用STL容器map類的實例,key表示參數名,value表示參數值。自動裝配設計的實現和參數的個數無關。裝配基件和待裝配件的參數名可以任取,但是要在自動裝配過程中裝配基件的參數能正確驅動待裝配件相應的參數,則必須使它倆相對應的參數名一致且唯一,整個自動裝配設計流程如圖2所示。
圖2 自動裝配設計流程
詳述如下:
Step1.鼠標拖出/拾取裝配基件,輸入待裝配體要裝入的距離值(默認的距離值是零,即待裝配體裝配在所選擇的裝配基件的裝配面上),將距離值存儲下來。
Step2.檢查map類的實例是否為空,如果不為空,則清空。
Step3.遍歷裝配基件的每一個特征,對于每一個特征,如果有參數,將參數名和參數值存人map類的實例中。
Step4.將設計圖素庫中已設置好參數的待裝配件拖出,放在第一步所選的裝配基件的相應裝配面上。
Step5.檢查map類的實例是否為空,如果為空,再檢查距離值是否為零,如果為零,則不做任何改變;若距離值不為零,則將待裝配件按所選裝配基件的相應裝配面的法線方向上,平移第一步輸入的距離值。
Step6.如果map類的實例不為空,則遍歷待裝配體的每個特征,對于每個特征,如果有參數,則搜索map類的實例中的參數名,如果存在一致的參數名,則提取此參數名對應的參數值,將待裝配體相同的參數名對應的參數值改成此值,然后將map類的實例中的這個參數對刪除,這樣可以提高以后搜索map類實例參數名的效率,接著繼續搜索待裝配體的下一個參數,重復上面所述操作,直到遍歷完待裝配體所有的參數,然后按新的參數值重新生成待裝配件;再檢查距離值是否為零,如果為零,則待裝配件不做任何平移;若距離不為零,則將新生成的待裝配件按所選裝配基件的相應裝配面的法線方向上,平移第一步輸入的距離值。
Step7.將距離值設為零,將map類的實例清空,此時完成一次自動裝配設計。
下面是一簡單的實現原型。使用CAXA實體設計做出圖3所示的裝配基件和待裝配件,此時要正確設定特征之間的約束關系;再按圖上所示的參數分布,通過參數表設定好參數名和參數值。圖4是裝配基件的參數設定,待裝配件也同樣這樣設定;然后將設定好參數的裝配基件和待裝配件拖到設計元素庫,方便以后重用。
圖3 裝配基件(左)和待裝配件的參數分布
圖4 裝配基件的參數設定
從設計元素庫將裝配基件拖出,用鼠標拾取,輸入裝入的距離值,然后從設計元素庫中,將待裝配體件拖出放在裝配基體最上面上,智能捕捉點是面的中點,可以看到拖入開始的效果如圖5a所示,然后待裝配件得到相應的裝配基件的尺寸后重新生成并平移,裝配基件和待裝配件就成功地裝配在一起了,如圖5b所示。
圖5 智能裝配設計的實現
自動裝配設計通過搜索相同的參數名來建立不同特征尺寸之間的映射關系,并以此來驅動相應的尺寸值,因而裝配基件和待裝配件的設定只和拖出的前后順序有關。此過程也適用于部件的裝配,但是如果參數個數很多,則汁算量將較大,并且零件的特征之間的約束關系的設定,以及所有參數的命名也是需要仔細注意的地方。
6 結論
基于關聯和尺寸驅動原理,使用CAXA實體設計建立可重用的參數化智能圖素,調用CAXA實體設計的二次開發函數以及C++標準模板庫,通過參數名建立了不同特征尺寸之間的映射關系,以此來驅動相應的尺寸值,在CAXA實體設計上成功實現了自動裝配設計功能,并給出應用實例原型。此功能已應用于國家“八六三”計劃先進制造與自動化領域CIMS主題目標的發展項目《面向家電產品的三維CAD創新設計系統》之中,可以增強裝配設計的方便性以及提高設計效率,并且此方法也同樣適用于其它的CAD軟件。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/
本文標題:基于關聯的自動裝配設計
本文網址:http://www.lukmueng.com/html/solutions/14019317179.html