氣壓瓶蓋注塑模具設(shè)計(jì)(全套含說(shuō)明書(shū)和CAD圖紙)
氣壓瓶蓋注塑模具設(shè)計(jì)(全套含說(shuō)明書(shū)和CAD圖紙),氣壓,瓶蓋,注塑,模具設(shè)計(jì),全套,說(shuō)明書(shū),仿單,以及,cad,圖紙
注射模設(shè)計(jì)的三維模型發(fā)展
如今,為了使注塑工藝變得更簡(jiǎn)單,很多嵌入式軟件都在高級(jí)3D 注塑平臺(tái)的基礎(chǔ)上開(kāi)發(fā)出來(lái)的,諸如有限元分析,計(jì)算機(jī)輔助制造,注射模設(shè)計(jì),模擬以及形象化設(shè)計(jì)。這些軟件都是很有利的。然而,它關(guān)非沒(méi)有缺點(diǎn)。事實(shí)上,這些嵌入式軟件也可以通過(guò)低級(jí)的3D更靈活和更輕便性開(kāi)發(fā)出來(lái)。這篇文章查閱了各種各樣基于3D應(yīng)用發(fā)展的期刊和方法,主要是關(guān)于軟件方面。首先,提出了一種基于3D的應(yīng)用發(fā)展的方法,這種觀點(diǎn)通過(guò)使用Parasolid模型的注射模實(shí)現(xiàn)的?;谠谝呀⒌哪>咴O(shè)計(jì)中的模具設(shè)計(jì)概念,文中說(shuō)明了一種被叫做IMOLD的模件。在一個(gè)Windows NT 平臺(tái)上,面向?qū)ο蟮木幊陶Z(yǔ)言被用來(lái)開(kāi)發(fā)這種軟件。
關(guān)鍵字: 3D 模型; 計(jì)算機(jī)輔助設(shè)計(jì); 注射模設(shè)計(jì);
1. 介紹
三維計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)已經(jīng)越來(lái)越被用來(lái)加速產(chǎn)品的實(shí)現(xiàn)過(guò)程。涉及產(chǎn)品自動(dòng)化設(shè)計(jì)過(guò)程的第一步是3D建模應(yīng)用中的組件部件的建立,在建模過(guò)程中,這種3D 模型的建立稱(chēng)為數(shù)字化建模,這種數(shù)字化建模得到的3D的關(guān)鍵一步是生產(chǎn)過(guò)程自動(dòng)化。
組件部件的3D數(shù)字化建模僅僅是第一步。還有許多的其他輔助任務(wù)必須在零件被生產(chǎn)之前完成。這些任務(wù)包括有限元分析、夾具和固定裝置的設(shè)計(jì)、注射模設(shè)計(jì)、計(jì)算機(jī)輔助制造、模擬和形象化設(shè)計(jì)。當(dāng)今很多在高級(jí)3D建模平臺(tái)上發(fā)展起來(lái)的嵌入式軟件來(lái)促進(jìn)這些輔助任務(wù)。這種3D建模站臺(tái)提供了一個(gè)具有編程的用戶(hù)界面和風(fēng)格的嵌入式軟件。結(jié)果,這種嵌入式軟件的開(kāi)發(fā)時(shí)間大幅度地減少。
這種方法在很多方面都是有利的,但是,它也有它的缺點(diǎn),特別是從長(zhǎng)遠(yuǎn)的角度考慮。為了為現(xiàn)有的軟件開(kāi)發(fā)另外一種嵌入式軟件,那些開(kāi)發(fā)者必須兼顧很多現(xiàn)有的限制條件,必需與源軟件的風(fēng)格一致。那些開(kāi)發(fā)者必須利用系統(tǒng)所提供的各種庫(kù)函數(shù)來(lái)實(shí)現(xiàn)各種功能性操作, 大多數(shù)的終端用戶(hù)需要源軟件和嵌入式軟件。不過(guò),在很多情況,他們可能對(duì)使用只有嵌入式的軟件更感興趣。 在注射模設(shè)計(jì)過(guò)程中就有這種情況的例子,不過(guò),這些用戶(hù)必須購(gòu)買(mǎi)包括很多他們不需要的特征和功能的整個(gè)軟件包, 這么大的程序通常是硬件上所必需的,同時(shí)這也意味著會(huì)費(fèi)用更高。這嵌入式軟件也很大程度上依賴(lài)源軟件的發(fā)展。一旦源軟件版本被更新,那些嵌入式軟件的開(kāi)發(fā)者必須采取相應(yīng)的行動(dòng), 如果這些應(yīng)用在一個(gè)低級(jí)的平臺(tái)上發(fā)展,這些缺點(diǎn)可能會(huì)不存在。事實(shí)上,這些嵌入式軟件可以使用低級(jí)的3D 模型更靈活和更輕便性發(fā)展。在很多情況下,這樣的操作既可行又有利。傳統(tǒng)上,注射模設(shè)計(jì)可以直接在計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)執(zhí)行,整個(gè)注射模,可能由數(shù)百個(gè)組件部件組成,在計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)(例如 AutoCAD,PRO/工程師和Unigraphics)上建模和裝配,因?yàn)樽⑸? 模設(shè)計(jì)過(guò)程是反復(fù)的,所以重新建模和裝配是相當(dāng)費(fèi)時(shí),在這個(gè)方面,像這些基于特征的PRO/工程師以及Unigraphics那樣的3D.
計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)比像AutoCAD那樣的2D 計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)的更有優(yōu)勢(shì), 為加速注射模設(shè)計(jì)工藝的發(fā)展,這種嵌入式軟件在3D系統(tǒng)上自動(dòng)發(fā)展一些注射工藝 ,這種附加應(yīng)用的例子包括在國(guó)立新加坡大學(xué)發(fā)展,基于Unigraphics上發(fā)展的IMOLD(智能模型設(shè)計(jì)和裝配系統(tǒng))、專(zhuān)家模具設(shè)計(jì)者(基于CADKEY)及模型制作者(基于EUCLID) . 因?yàn)橐陨厦恳粋€(gè)都基于特定的計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng),所以都沒(méi)有嵌入兼容性。在1994年,Mok和張 [1]基于Unigraphics的注射模設(shè)計(jì)應(yīng)用上做了研究。在1997年,Shah [2] 在幾何建模之間的聯(lián)系標(biāo)準(zhǔn)化之間提出了互訪結(jié)構(gòu)模型,他的目標(biāo)是在基于Parasolid的3D 應(yīng)用以及ACIS之間獲得嵌入兼容性,只不過(guò)它包括三維建模 。 在這篇文章里,作者試圖直接發(fā)展一種質(zhì)量輕的使用低級(jí)的3D模型注射模設(shè)計(jì)應(yīng)用,并把重點(diǎn)放在軟件開(kāi)發(fā)的靈活性和速度上。設(shè)計(jì)概念和程序來(lái)自IMOLD [4,5 ]、模具設(shè)計(jì)和3D 裝配中應(yīng)用。盡管這些討論僅僅局限于注射模設(shè)計(jì),這種方法學(xué)能很容易地被應(yīng)用在其他基于3D的應(yīng)用中,并且有相似的作用,開(kāi)發(fā)者工具的結(jié)合就是為了這個(gè)目的而選擇的。在方法學(xué)被討論之前,對(duì)于其中的一些先提出的工具作一個(gè)簡(jiǎn)短的介紹,他們分別是IMOLD、Parasolid 10.1 版本、VC6.0 版本和微軟公司基礎(chǔ)種類(lèi)。
2.IMOLD 用作模具設(shè)計(jì)應(yīng)用
IMOLD(智能模型設(shè)計(jì)和裝配) 是在基于3D的應(yīng)用致力發(fā)展的注射模設(shè)計(jì)。它在一個(gè)叫做Unigraphics的高級(jí)計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)之上發(fā)展起來(lái)的。該發(fā)展正在通過(guò)使用系統(tǒng)所提供的編程接口(API)來(lái)實(shí)現(xiàn)。該軟件通過(guò)提供常用的設(shè)計(jì)工具促使模具設(shè)計(jì)者能夠迅速進(jìn)行設(shè)計(jì)。在設(shè)計(jì)中所需的常用的標(biāo)準(zhǔn)組件部件,可以在軟件里預(yù)先創(chuàng)建并且可能被容易被設(shè)計(jì)者調(diào)用。這很大程度上降低了設(shè)計(jì)時(shí)間。模具設(shè)計(jì)過(guò)程可分成幾個(gè)階段,以一種固定的方式給設(shè)計(jì)者們提供模具設(shè)計(jì)方法。
它們便是:
1. 數(shù)據(jù)準(zhǔn)備。
2. 填充系統(tǒng)設(shè)計(jì)。
3. 模具基礎(chǔ)設(shè)計(jì)。
4. 插件與零件設(shè)計(jì)。
5. 冷卻系統(tǒng)設(shè)計(jì)。
6. 滑板和提升設(shè)計(jì)。
7. 注射系統(tǒng)設(shè)計(jì)。
8. 標(biāo)準(zhǔn)零件庫(kù)。
每個(gè)階段都可以被認(rèn)為是一個(gè)獨(dú)立的模件設(shè)計(jì)過(guò)程?;?D的每個(gè)模件的要求變化甚微。成功地建立模型基礎(chǔ)模件意味著在發(fā)展其它模件過(guò)程中也是可行的。
3.用作3D模型設(shè)計(jì)的Parasolid
Parasolid被用設(shè)計(jì)為基于3D 模型數(shù)據(jù)系統(tǒng)的核心。實(shí)體建模有必要被用作。
1.建造并且操作實(shí)體。
2. 計(jì)算質(zhì)量和慣性矩,并且進(jìn)行干涉檢測(cè)。
3. 以多種方式輸出實(shí)體。
4. 在特定的數(shù)據(jù)庫(kù)或者檔案內(nèi)儲(chǔ)存實(shí)體并且可以稍后提取出來(lái)。
在計(jì)算機(jī)輔助設(shè)計(jì)中,Parasolid是最先進(jìn)的3D 模型設(shè)計(jì)軟件。它是Unigraphics和Solid- Works的3D核心。它獨(dú)特的公差模擬運(yùn)作功能使得它能以其它格式接收和存儲(chǔ)數(shù)據(jù)。因此Parasolid模型文件是十分方便的而且它也是獨(dú)立應(yīng)用發(fā)展的高級(jí)平臺(tái)?;?D的應(yīng)用與Parasolid之間通過(guò)它的3個(gè)界面中的一個(gè)相連接。
這些被稱(chēng)這之為Parasolid 核心界面、模型界面以及底端界面。PK界面和模型界面位于建模系統(tǒng)的頂部,通過(guò)這些方法來(lái)建模和對(duì)實(shí)體進(jìn)行操作以及控制建模的功能。底端界面位于建模窗口的底部。當(dāng)需要執(zhí)行集中數(shù)據(jù)或系統(tǒng)類(lèi)型操作時(shí)建模者便需要它。它由3個(gè)部分組成:函數(shù)、圖形輸出和外形幾何 ,以下分別對(duì)其作出簡(jiǎn)短的介紹。
3.1 KI 和PK界面
KI 和PK是供程序員進(jìn)入Parasolid模型里進(jìn)行建模的接口
他們是建模功能的標(biāo)準(zhǔn)庫(kù)。程序員在他們的程序里稱(chēng)之為建模功能。因?yàn)镵I不久將被淘汰,所以我們選擇使用PK界面。
3.2 函數(shù)
函數(shù)是一必須由應(yīng)用程序員編寫(xiě)的功能,當(dāng)數(shù)據(jù)必須被存儲(chǔ)或者提取時(shí)需要使用該功能。當(dāng)使用Parasolid時(shí),應(yīng)用程序員必須首先決定怎樣管理數(shù)據(jù)的存儲(chǔ),通過(guò)該功能Parasolid輸出該數(shù)據(jù)。通過(guò)該功能轉(zhuǎn)存數(shù)據(jù)通常與寫(xiě)入文件或?qū)С鑫募嘘P(guān)。文件的形式和及存儲(chǔ)位置在寫(xiě)該功能時(shí)被確定。
3.3圖形的輸出
對(duì)圖形輸出功能是由應(yīng)用程序員所編寫(xiě)的另一種功能。對(duì)需要PK給予功能的設(shè)計(jì)者來(lái)說(shuō),圖形數(shù)據(jù)是由GO界面輸出的,
然后3D數(shù)據(jù)被傳給3D圖像包。OpenGL,是圖形卡片的一個(gè)軟件接口可以為我們提供我們所需的數(shù)據(jù)包。
3.4 外形幾何
外形幾何學(xué)可以為用戶(hù)幾何類(lèi)型的發(fā)展(例如機(jī)構(gòu)內(nèi)部及表面的曲線)提供功能操作。它通常與在Parasolid內(nèi)的建模標(biāo)準(zhǔn)幾何類(lèi)型一起使用。
4. 使用VC以及微軟公司基金類(lèi)型的面向?qū)ο蟮某绦蛟O(shè)計(jì)
面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)已無(wú)可爭(zhēng)議地成為軟件開(kāi)發(fā)者的選擇。它是在目前所存在的軟件中最高級(jí)的開(kāi)發(fā)軟件。微軟公司Visual Studio就是這樣的一個(gè)軟件包。它刻劃了許多基于因特網(wǎng)和基于Windows編程用的開(kāi)發(fā)工具。在這些工具中包含有VC以及微軟公司基金種類(lèi)(MFC)。VC是面向?qū)ο蟮某绦蛟O(shè)計(jì)的強(qiáng)有力的開(kāi)發(fā)工具,而MFC是一種基于Windows編程的框架。它以強(qiáng)大的開(kāi)發(fā)特性和功能性,例如自動(dòng)編碼基于wizard操作,為應(yīng)用程序員提供開(kāi)發(fā)工具。這大大改進(jìn)了生產(chǎn)效率。我們使用的程序的整個(gè)用戶(hù)界面是使用VC以及MFC開(kāi)發(fā)出來(lái)的。
5. 系統(tǒng)設(shè)計(jì)
基于3D的使用3D模型的附加應(yīng)用的直接發(fā)展的問(wèn)題正待解決。在最高的水平上它由3個(gè)主要階段組成。
首先,必要特征和嵌入式應(yīng)用軟件功能的識(shí)別:
第二,應(yīng)用框架的設(shè)計(jì)與開(kāi)發(fā);
最后,具有合適的開(kāi)發(fā)工具的框架中個(gè)別模件的設(shè)計(jì)與開(kāi)發(fā)。
5.1 必要軟件的識(shí)別
Parasolid作為一種3D建模方法,只提供許多庫(kù)函數(shù)以及3D應(yīng)用開(kāi)發(fā)的基本框架。因此,那些開(kāi)發(fā)者有必要識(shí)別和開(kāi)發(fā)3D計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)中其他的必要設(shè)施。為了識(shí)別所需的設(shè)施,理解兩者之間的差異是很重要。
表格1 總結(jié)了3D模型和3D計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)所提供的主要設(shè)備的差別。其中的一些設(shè)備,例如特征和參數(shù)建模,在耗時(shí)與技術(shù)上都要求有發(fā)展。因?yàn)榇蠖鄶?shù)的嵌入式軟件不使用源程序中的所有設(shè)備,只通過(guò)開(kāi)發(fā)這些使用低級(jí)3D模型所需要的嵌入式軟件生產(chǎn)單獨(dú)的版本是很有可能的。
表格1從第7條到第9是使用基于3D的應(yīng)用發(fā)展Parasolid的必要條件。
通過(guò)研究嵌入式的應(yīng)用的必要條件,其他必要的設(shè)備的要求也可以被鑒定。然后提出了該應(yīng)用程序的一個(gè)框架,該框架是基于由Parasolid建模所提供的設(shè)備。
5.2 基于3D應(yīng)用的框架
對(duì)于由開(kāi)發(fā)的工具和.應(yīng)用的要求所提供的設(shè)備,開(kāi)發(fā)了一種框架。它專(zhuān)門(mén)被設(shè)計(jì)以使單個(gè)編程模件之間的差異最小化。這將導(dǎo)致編程代碼發(fā)生小程度的變化。事實(shí)上,程序代碼使用起來(lái)更加的輕便各更有助于維修,而且將來(lái)的發(fā)展前景也是相當(dāng)好的。這個(gè)框架的概述在圖2里得以說(shuō)明,各種各樣的模件的詳細(xì)情況被在以后的章節(jié)里討論。
5.2.1個(gè)基于Windows的用戶(hù)界面(A)
Parasolid不為程序員提供用戶(hù)界面。因此,在每一個(gè)階段基于3D應(yīng)用的發(fā)展將涉及到從頭開(kāi)始設(shè)計(jì)用戶(hù)界面。相關(guān)的必要開(kāi)發(fā)內(nèi)容包含:
1. 基于3D的應(yīng)用的環(huán)境設(shè)置和顯示。
2. 交互式圖表的接口和全部應(yīng)用功能操作的執(zhí)行程序。
5.2.2 3D 開(kāi)發(fā)者(B)圖層的設(shè)置
因?yàn)椴煌幕?D的應(yīng)用在不同程度上需要不同的3D設(shè)備,該框架必須為用戶(hù)提供這些變量的設(shè)置。一個(gè)3D開(kāi)發(fā)者圖層的設(shè)置(參閱圖2)被概念化來(lái)解決這些變化。這是基于Parasolid模型已經(jīng)開(kāi)發(fā)出來(lái)的對(duì)象的庫(kù)函數(shù)或者類(lèi)別。開(kāi)發(fā)的程度取決于建模的要求情況。
圖表一由3D模型和計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)所提供的設(shè)施的摘要
3D模型和3D計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)設(shè)施:
1. 基本3D低級(jí)建模和通用功能以及高級(jí)功能和特殊功能;
2. 由整個(gè)系統(tǒng)提供的裝配多種庫(kù)函數(shù);
3. 基于特征的建模;
4. 不經(jīng)常被提供的參數(shù)建模;
5. 系統(tǒng)常提供的低級(jí)建模功能;
6. 系統(tǒng)提供的不完全草圖;
7. 系統(tǒng)不常提供的交互式用戶(hù)界面;
8. 系統(tǒng)所提供的三維物體基本概念框架功能和庫(kù)函數(shù)的可視化;
9. 系統(tǒng)所提供文件管理系統(tǒng)的基本概念和多個(gè)信息庫(kù)功能的完全發(fā)展。
除了要滿(mǎn)足應(yīng)用條件中的變量要求外,3D開(kāi)發(fā)者設(shè)置層也要為非Parasolid開(kāi)發(fā)者提供一個(gè)編程接口。這樣的一個(gè)接口能也其他基于3D的應(yīng)用的開(kāi)發(fā)者重新使用。3D開(kāi)發(fā)者設(shè)置層基本上由3 個(gè)主要部分組成。他們可分別被用于3D建模和裝配,3D可視化以及3D 數(shù)據(jù)管理。
I . 3D建模和裝配
3D建模和裝配模件是所有這3個(gè)部分中最重要和最精心制作的部分。它與由大多數(shù)計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)提供應(yīng)用編程接口(API)相似。該模件由一基于3D對(duì)象或類(lèi)別的庫(kù)函數(shù)組成,它可用于核心應(yīng)用模件的發(fā)展。大多數(shù)3D應(yīng)用所需要的3D基本的功能的操作性能必須被首先開(kāi)發(fā)出來(lái)?;趩蝹€(gè)基于3D的應(yīng)用所需的條件,其他更多的高級(jí)特性后來(lái)也被增加進(jìn)來(lái)了。
II. 3D的可視化。
在三維物體的顯示窗口用戶(hù)范圍需要一個(gè)團(tuán)體軟件圖表接口。圖表的輸出以及所選擇的圖表的接口經(jīng)常被在基于3D的應(yīng)用里以及視圖對(duì)象管理和轉(zhuǎn)變之中。為這個(gè)目的而開(kāi)發(fā)了一個(gè)類(lèi)別庫(kù)函數(shù)。
III. 3D 數(shù)據(jù)管理。
3D數(shù)據(jù)管理模件是在函數(shù)之上被開(kāi)發(fā)出來(lái)的。函數(shù)是存在于使存檔以及3D零件文件的進(jìn)入變得容易的Parasolid的模件之中。為此開(kāi)發(fā)了一種使用函數(shù)來(lái)處理的類(lèi)型選擇器。
1. 3D目標(biāo)文件形式;
2. 諸如打開(kāi)和保存3D目標(biāo)文件這樣的文件管理操作。
5.2.3 應(yīng)用模塊(C)
這些是位于3D開(kāi)發(fā)者設(shè)置層和應(yīng)用用戶(hù)界面之間存在的基于3D的應(yīng)用模塊。這些模塊的設(shè)計(jì)的主要取決于應(yīng)用的屬性并且相互之間的差別很大。在這個(gè)領(lǐng)域已經(jīng)正在進(jìn)行很多有研發(fā)工作主要發(fā)展的工作的大部分被進(jìn)行。然而,研發(fā)的難易主要取決于3D開(kāi)發(fā)者設(shè)置層的能力。
5.2.4個(gè)其他軟件模塊(D)
通常,基于3D的應(yīng)用可能需要來(lái)自于其他已存軟件模塊或應(yīng)用模塊的功能性操作。因此,諸如此類(lèi)的連接是可能存在的。在這篇文章的應(yīng)用部分就為這樣的一個(gè)例子加以說(shuō)明了。
5.3 單個(gè)模塊的發(fā)展
在進(jìn)行一個(gè)合適設(shè)計(jì)之前,對(duì)每個(gè)模塊都得進(jìn)行研究和分析,它的開(kāi)發(fā)難易很大程度上取決于所選的框架和開(kāi)發(fā)者設(shè)置層。下一部分說(shuō)明了注射模設(shè)計(jì)的3D模型開(kāi)發(fā)的實(shí)施情況。
6. 實(shí)施情況
應(yīng)用系統(tǒng)設(shè)計(jì),開(kāi)發(fā)了基于3D的注射模設(shè)計(jì)。這被通過(guò)使用前面章節(jié)所述的開(kāi)發(fā)者工具獲得的。因?yàn)槟P突A(chǔ)需要更大范圍的3D功能性操作,包括裝配的生成,所以選用它來(lái)加以說(shuō)明。
6.1每個(gè)模塊的要求應(yīng)用框架和所需要的條件
對(duì)于識(shí)別開(kāi)發(fā)工作,專(zhuān)門(mén)設(shè)定了了一個(gè)應(yīng)用框架。發(fā)展的工作鑒定。圖3說(shuō)明了基于Windows用戶(hù)的模型基礎(chǔ)模塊的詳細(xì)情況。在每個(gè)模件里的詳細(xì)要求在討論如下:
6.1.1 Windows NT的用戶(hù)界面(A)
模型基礎(chǔ)設(shè)計(jì)是一個(gè)反復(fù)的過(guò)程。模型設(shè)計(jì)者首先從目錄中選擇了一個(gè)標(biāo)準(zhǔn)模型,然后對(duì)模型的尺寸進(jìn)行修改直到所有的條件都得以滿(mǎn)足。因此,為了這個(gè)目的有必要考慮使用交互式用戶(hù)界面。
使用VC和MFC來(lái)開(kāi)發(fā)基于Windows的界面,它包括:
1. 菜單條欄目、菜單項(xiàng)和工具條按鈕的創(chuàng)建、顯示和管理,以便更方便地進(jìn)行應(yīng)用的功能性操作。
2. 引導(dǎo)用戶(hù)或獲得用戶(hù)輸入的對(duì)話框的創(chuàng)建、顯示和管理
3. 顯示區(qū)域內(nèi)各種視角的創(chuàng)建、顯示和管理。
4. 拖動(dòng)的鼠標(biāo)的作用。
5.對(duì)每個(gè)功能的順序操作設(shè)計(jì)。
應(yīng)用之后的結(jié)果如圖4中所示,它是一個(gè)典型的其于Windows應(yīng)用的用戶(hù)界面。
6.1.2 3D 開(kāi)發(fā)者(B)設(shè)置層
對(duì)基于3D模型基礎(chǔ)設(shè)計(jì)的要求進(jìn)行分析,然后識(shí)別一下即將開(kāi)發(fā)的模塊。 基于3D模型基礎(chǔ)設(shè)計(jì)的要求如下:
1. 創(chuàng)建初始模型(例如矩形,圓柱,圓錐);
2. 創(chuàng)建圓角和倒角;
3. 進(jìn)行布爾運(yùn)算:并集和差集;
4. 變換操作:變換和旋轉(zhuǎn);
5. 對(duì)象屬性的管理,諸如名字和顏色;
6. 創(chuàng)建引用特征;
7. 創(chuàng)建總裝配和子裝配;
因?yàn)橐陨线@些應(yīng)用不是那么的廣泛,所以可以開(kāi)了一個(gè)基礎(chǔ)建模集。有了單個(gè)模塊的詳細(xì)開(kāi)發(fā)情況,就可以給開(kāi)發(fā)者設(shè)置層添加更多的功能。每個(gè)模塊的全部要求條件將在以后的章節(jié)加以說(shuō)明。
I . 3D建模和裝配
一個(gè)模型基礎(chǔ)基本上是許多組件部件的集合,諸如鍵和螺絲。
為了使模型基礎(chǔ)設(shè)計(jì)變得容易,設(shè)計(jì)者必須提供一個(gè)事先已經(jīng)準(zhǔn)備好的模型基礎(chǔ)庫(kù)。通過(guò)選擇特別的尺寸,可以生成一個(gè)標(biāo)準(zhǔn)的模型基礎(chǔ)件。為了使這些變得容易,識(shí)別和開(kāi)發(fā)了基于3D的功能庫(kù),該功能與前面6.1.2所提及到的要求條件相對(duì)應(yīng)。正因?yàn)樵摼幋a是面向?qū)ο蟮模谛枰臅r(shí)候,它們很容易被延伸以適應(yīng)其他模型設(shè)計(jì)模塊。
II. 3D視圖的可視化
使用圖表的輸出和作為圖表界面的OpenGL所提供的功能共同作用來(lái)為3D的實(shí)體操作開(kāi)發(fā)投影和視圖變換等諸多功能。它們包括:
1.用所選擇的顏色給3D堆零部件著色;
2. 用所選擇的顏色給3D裝配體著色(圖7和圖8分別用陰影和線框的模式給3D裝配體加以顯示);
3. 用所選擇的顏色在屏幕上給其他3D實(shí)體著色;
4. 在模型基礎(chǔ)裝配中用不同的顏色分別給單個(gè)組件著色;
5. 交互式視圖變換(諸如旋轉(zhuǎn),變換和縮放);
6. 裝配樹(shù)顯示和操作。
III. 3D 數(shù)據(jù)管理。
開(kāi)發(fā)獨(dú)立應(yīng)用程序的好處之一就是它的輕便性,所以采用最大的輕便性打開(kāi)的形式是很重要的。因此以原先的Parasolid文件形式(.xmtFtxt)來(lái)替代新的文件形式。一個(gè)模型基礎(chǔ)件的數(shù)據(jù)管理要求包括如下內(nèi)容:
1. 打開(kāi),保存,另存為和關(guān)閉Parasolid零件文件。
2. 打開(kāi),保存,另存為和關(guān)閉Parasolid裝配文件。
3. 輸入和輸出零件文件。
6.1.3個(gè)模型基礎(chǔ)模件(C)
為了促進(jìn)標(biāo)準(zhǔn)模型基礎(chǔ)組件的自動(dòng)生成,系統(tǒng)必須提供一個(gè)模型基礎(chǔ)零部件庫(kù), 其尺寸大小取決于目錄中的標(biāo)準(zhǔn)值。為使設(shè)計(jì)容易進(jìn)行,需對(duì)這些尺寸進(jìn)行順序修改,這個(gè)模件詳細(xì)情況將在第6.2部分進(jìn)行討論。
6.1.4 數(shù)據(jù)庫(kù)支持(D)
一個(gè)標(biāo)準(zhǔn)模型基礎(chǔ)件需要用將近100個(gè)參數(shù)來(lái)對(duì)單個(gè)組件的尺寸和位置進(jìn)行完全描述。這些參數(shù)的大部分都是相互聯(lián)系的并且可以從其它數(shù)據(jù)庫(kù)中獲得。因此,一個(gè)數(shù)據(jù)庫(kù)文件需要被用來(lái)存儲(chǔ)基于目錄的標(biāo)準(zhǔn)模型基礎(chǔ)件的參數(shù)。Microsoft Access 數(shù)據(jù)庫(kù)形式被使用在MFC里進(jìn)行直接存儲(chǔ)數(shù)據(jù)庫(kù)文件。在MFC里使用數(shù)據(jù)存取對(duì)象(DAO),一套被用作抽取和管理數(shù)據(jù)庫(kù)城相關(guān)參數(shù)的功能。
6.2模型基礎(chǔ)設(shè)計(jì)的發(fā)展
模型基礎(chǔ)模件由3個(gè)主要部分組成,即,模型基礎(chǔ)組件生成、模型基礎(chǔ)裝配生成、模型基礎(chǔ)類(lèi)選擇和自定義模件。第4個(gè)部分被稱(chēng)作為模型基礎(chǔ)參數(shù)管理,也是被用來(lái)開(kāi)發(fā)為應(yīng)用提供數(shù)據(jù)支持。這些已經(jīng)圖表中5中說(shuō)明了。注注射模設(shè)計(jì)的開(kāi)發(fā)部分的細(xì)節(jié)內(nèi)容討論如下:
I . 零部件庫(kù)的生成
有了3D開(kāi)發(fā)者設(shè)置層的支持,為模型基礎(chǔ)的標(biāo)準(zhǔn)組件部件被創(chuàng)建和存儲(chǔ)在組件庫(kù)中。通過(guò)規(guī)定合適的尺寸,這些組件部件可以被生成而且可以被模型基礎(chǔ)裝配生成器所使用。
II.裝配生成器
使用3D 圖層設(shè)置并將組件庫(kù)生成器各標(biāo)準(zhǔn)模型基礎(chǔ)集中并存儲(chǔ)在裝配庫(kù)中。當(dāng)提供從數(shù)據(jù)庫(kù)中提取特定參數(shù)集時(shí),由于它得到了特別的參數(shù)支持,所以特定的標(biāo)準(zhǔn)模具基礎(chǔ)裝配可以自動(dòng)地
III. 參數(shù)管理者
參數(shù)管理者將模型基礎(chǔ)應(yīng)用模件和數(shù)據(jù)庫(kù)支持連接起來(lái)。當(dāng)一個(gè)特定的標(biāo)準(zhǔn)模型基礎(chǔ)被選擇后,它的為模型基礎(chǔ)裝配的相應(yīng)參數(shù)已經(jīng)從數(shù)據(jù)庫(kù)中提取出來(lái)并且發(fā)送到組件庫(kù)生成器和裝配生成器中。除此以外,參數(shù)管理者也允許用戶(hù)為了設(shè)計(jì)的目的而對(duì)參數(shù)進(jìn)行修改。
IV. 模型基礎(chǔ)設(shè)計(jì)者。
模型基礎(chǔ)設(shè)計(jì)者為兩個(gè)主要目的服務(wù)。首先,允許用戶(hù)選擇來(lái)自裝配生成器的標(biāo)準(zhǔn)模型基礎(chǔ)。其次,通過(guò)允許模型基礎(chǔ)設(shè)計(jì)者修改所選擇的模型基礎(chǔ)的尺寸來(lái)使模型基礎(chǔ)設(shè)計(jì)變得容易。該樣品代碼給那些模型基礎(chǔ)來(lái)生成功能。從圖9中我們可以注意到使用了許多代表模型基礎(chǔ)的參數(shù)的變量的功能, 這是用于裝入那些零部件生成各種各樣的模型基礎(chǔ)零部件的創(chuàng)造。裝配生成器然后使用那些零部件和那些參數(shù)集來(lái)確定模型裝配基礎(chǔ)的創(chuàng)建,正如在3D開(kāi)發(fā)者層設(shè)置外一樣,在樣本程序中沒(méi)有直接被叫作 Parasolid功能的當(dāng)今的模型基礎(chǔ)設(shè)計(jì)應(yīng)用能意識(shí)到在工廠要求設(shè)計(jì)的注射?;A(chǔ)設(shè)計(jì)的全部功能性設(shè)計(jì)情況。因?yàn)槟P突A(chǔ)是IMOLD模件中的最廣泛應(yīng)用的3D模型,所以它的成功開(kāi)發(fā)意味著開(kāi)發(fā)了一完全基于3D注射模設(shè)計(jì)和裝配應(yīng)用的可行性。
7. 結(jié)論
高級(jí)編程語(yǔ)言的發(fā)展已經(jīng)允許程序員用參數(shù)來(lái)重新使用編程代碼,該編程代碼存在于象微軟公司基金類(lèi)型那樣的對(duì)象里。
這些強(qiáng)大的特征已經(jīng)使程序員從更多的編程標(biāo)準(zhǔn)函數(shù)的程序和建立用戶(hù)界面中分離出來(lái)了。他們現(xiàn)在能夠把精力集中在軟件的核心組成部分,從而增加生產(chǎn)效率。這導(dǎo)致發(fā)展獨(dú)立版本的軟件諸如CAE、計(jì)算機(jī)輔助設(shè)計(jì)和計(jì)算機(jī)輔助制造可行性提高。不過(guò)目前,這種方法是既耗時(shí)的而且技術(shù)要求高。盡管如此,它還是可行的而且前景是非常好的。通過(guò)把幾種高級(jí)的開(kāi)發(fā)者工具結(jié)合起來(lái),我們已經(jīng)設(shè)法增加了這些工具開(kāi)發(fā)注射模設(shè)計(jì)的應(yīng)用能力。迄今為止,只有模具設(shè)計(jì)工藝的前三個(gè)階段得以編碼。這給隨后的模型設(shè)計(jì)模件的開(kāi)發(fā)奠定了基礎(chǔ)。該方法也可以很容易地在包含標(biāo)準(zhǔn)組件設(shè)計(jì)的其他軟件中實(shí)施。這些包括夾具和固定設(shè)備設(shè)計(jì)、冷鑄、和生產(chǎn)產(chǎn)品自動(dòng)化。
Int J Adv Manuf Technol (2001) 17:453–461
2001 Springer-Verlag London Limited
Three-Dimensional Kernel Development for Injection Mould Design
T. L. Neo and K. S. Lee
Department of Mechanical and Production Engineering, National University of Singapore, Singapore
Today, many software “plug-ins” have been developed on high-level 3D modelling platforms to facilitate processes such as FEM analysis, CAM, injection mould design, simulation and visualisation. Such an arrangement is advantageous in many ways. However, it is not without shortcomings. Ideally, these “plug-ins” could also be developed using low-level 3D kernels for higher flexibility and better portability. This paper examines the various issues and methodologies related to the development of such 3D-based applications. The emphasis is placed on the software aspect. First, a methodology for the development of 3D-based applications is proposed. The idea is then implemented by developing an injection mould design application using a low-level 3D kernel called Parasolid. Based on design concepts used in an established mould design application, IMOLD, the development of a mould base design module is illustrated. An object-oriented programming language has been chosen for the development of the software on a Windows NT platform.
Keywords: 3D kernel; Computer-aided design (CAD); Injection mould design; Parasolid
1. Introduction
Three-dimensional CAD systems have increasingly been used to speed up the product realisation process. One of the first steps involved in the automation of the product design process is the creation of the component parts in a 3D modelling application. The 3D model, upon creation, is called the digital master copy. This 3D digital model forms the key to a wide spectrum of process automation.
Creating the 3D digital model of component parts is only the very first step. There are several other secondary tasks that must to be done before the part can be manufactured. Such tasks include finite-element analysis, jigs and fixtures design, injection mould design, computer-aided manufacturing, simul
Correspondence and ofprint requests to: K.-S. Lee, Department of
Mechanical and Production Engineering, National University of Singapore, 119260 Singapore. E-mail: mpeleeksKnus.edu.sg
ation, and visualisation. Today, many application Plug-ins have been developed on high-level 3D modelling platforms to facilitate these secondary tasks. The 3D-modelling platform provides the plug-in software with a library of functions as well as an established user interface and style of programming. As a result, the development times for these plug-ins are significantly reduced.
Such an arrangement is advantageous in many ways. However, it has its shortcomings, especially in the long run. In order to develop a plug-in for established software, the developers must adhere to the many constraints imposed. There is a need to be consistent with the style of the parent software. The developers must be able to achieve any functionality they need with only the set of library functions provided. Most end-users need both the parent software and the plug-in. In many cases, however, they may be more interested in using only the plug-in software. An example of such a situation is in injection mould design. These users, however, must purchase the entire software package which includes many features and functions that they do not need. Such a large program is often very demanding on the hardware, which also means higher cost. The plug-in software is also very dependent on developments in the parent software. Whenever a new version is updated for the parent software, the plug-in developers have to follow-up on the changes. These shortcomings may not exist if these applications were developed on a low-level platform. Ideally, these plug-ins could be developed using low-level 3D kernels for higher flexibility and better portability. In many instances, such a move is both feasible and advantageous.
Traditionally, injection mould design is carried out directly on a CAD system. The entire injection mould, consisting of perhaps hundreds of components, is modelled and assembled on CAD systems such as AutoCAD, Pro/Engineer, and Unigraphics. As the injection mould design process is recursive, it is very time-consuming to re-model and re-assemble the design. In this aspect, 3D CAD systems such as Pro/Engineer and Unigraphics, which are feature-based, have a significant advantage over 2D CAD systems such as AutoCAD. To further speed up the injection mould design process, plug-ins were developed on these 3D systems to automate certain stages of the design process. Examples of such add-on applications include IMOLD (Intelligent Mold Design and Assembly Sys-
454 T. L. Neo and K. S. Lee
tem, developed at the National University of Singapore, based on Unigraphics), Expert Mold Designer (based on CADKEY) and Moldmaker (based on EUCLID). As each is based on a specific CAD system, there is no plug compatibility.
In 1994, Mok and Cheung [1] presented work on the development of an injection mould design application based on Unigraphics. In 1997, Shah [2] proposed a 3-tier architecture for standardising communications between geometric modelling kernels and applications that require geometric modelling services. His objective is to achieve plug compatibility between 3D applications that are based on Parasolid [3] (a 3D kernel, developed at the University of Cambridge) and ACIS. This, however, involved an extensively developed 3-tier modelling husk. In this paper, the author attempts to develop a lightweight injection mould design application using a low-level 3D kernel directly. The focus is on the flexibility and speed of the software development. Design concepts and procedures were taken from IMOLD [4,5], a complete mould design and assembly 3D application. Although the discussion is limited to injection mould design only, the methodology applied can easily be applied in other 3D-based applications that are of a similar nature.
A combination of developer tools was chosen for this purpose. Before the methodology is discussed, brief introductions to some of these tools are first presented. They are, IMOLD, Parasolid version 10.1, Visual Cversion 6.0, and the Microsoft Foundation Classes.
2. IMOLD as a Mould Design Application
IMOLD (Intelligent Mold Design and Assembly) is an established 3D-based application that is dedicated to injection mould design. It is developed on top of an advanced CAD system called Unigraphics. The development is carried out using the applications programming interface (API) provided. The software enables mould designers to create a design rapidly by providing the tools that are commonly needed. Standard components parts, that are often required in the design, have been pre-created in the software and can be readily used by the designer. This reduces the design time significantly. The mould design process is divided into several stages, providing the designer with a consistent method of creating the mould design. They are, namely:
1. Data preparation.
2. Filling system design.
3. Mould base design.
4. Inserts and parting design.
5. Cooling system design.
6. Slider and lifter design.
7. Ejection system design.
8. Standard parts library.
Each stage can be considered as an independent module of the program. The 3D-based requirements for each module vary only slightly. The success in developing the mould base module implies feasibility in developing all the other modules.
3. Parasolid as a 3D Kernel
Parasolid is designed to be the centre or “kernel” of any system that is based on 3D model data. It is essentially a solid modeller, which can be used to:
1. Build and manipulate solid objects.
2. Calculate mass and moments of inertia, and perform clash detection.
3. Output the objects in various ways, including pictorially.
4. Store the objects in some sort of database or archive, and retrieve them later.
Parasolid is one of the most advanced 3D kernels among CAD applications. It is the 3D kernel of Unigraphics and Solid-Works. Its unique tolerant modelling functionality enables it to accept data stored in other modeller formats. Parasolid model files are thus very potable. It is, therefore, a superior platform for the development of stand-alone applications.
The 3D-based application interacts with Parasolid through one of its three interfaces (see Fig. 1). These are called the Parasolid kernel (PK) interface, the kernel interface (KI) and the downward interface. The PK interface and the kernel interface sit “on top” of the modeller (side-by-side), and are the means by which the application models and manipulates the objects, as well as controls the functioning of the modeller. The downward interface lies “beneath” the modeller, and is called by the modeller when it needs to perform data-intensive or system type operations. It consists of three parts: frustrum; graphical output (GO); and foreign geometry. These are briefly explained below.
3.1 The KI and PK Interface
The KI and the PK are interfaces for the programmer to access the modelling capabilities in the Parasolid kernel. They are standard libraries of modelling functions. The programmer calls these modelling functions in their programs. As the KI is to be phased out soon, we chose to use the PK interface.
Fig. 1. Parasolid components.
3D Kernel Development for Injection Mould Design 455
3.2 The Frustrum
The frustrum is a set of functions, which must be written by the applications programmer. The kernel calls them when data must be saved or retrieved. When using Parasolid, the applications programmer must first decide how to manage the storage of data, which Parasolid outputs through the frustrum. Transferring data through the frustrum usually involves writing to, or reading from, files. The format and location of the files is determined when writing the frustrum functions.
3.3 The Graphical Output (GO)
The graphical output is another set of functions, which is to be written by the applications programmer. When a call is made to the PK rendering functions, the graphical data generated are output through the GO interface. The graphical data are then passed to a 3D rendering package. OpenGL, a software interface to graphic cards, is a rendering package that is used for our purpose.
3.4 The Foreign Geometry
The foreign geometry provides functionality for the development of customised geometrical types such as in-house curves and surfaces. These are used together with the standard geometrical types for modelling within Parasolid.
4. Object-Oriented Programming Using Visual Cand the Microsoft Foundation Classes
Object-oriented programming (OOP) has been the undisputed option for software developers. It is among the most advanced developmental tools available. The Microsoft Visual Studio is such a software package. It features several developmental tools that are meant for Internet-based and Windows-based programming. Among these tools are the Visual C(VC) and the Microsoft Foundation Classes (MFC). The VCis a powerful development tool for object-oriented programming, whereas the MFC is a framework of Cclasses that are dedicated to Windows-based programming. Together, these provided the applications programmer with powerful development features and functionalities such as auto-code generation, and wizard-based operations. These greatly improved productivity. The entire user-interface for our program is developed using the VCand the MFC.
5. System Design
The direct development of a 3D-based add-on application using a 3D kernel requires several issues to be addressed. They consist of 3 main stages at the highest level. First, the identification of the crucial features and functions required for the plug-in application. Secondly, the development of the design
for the application framework. Lastly, the design and development of the individual modules in the framework with appropriate developmental tools.
5.1 Identification of Essential Modules
Parasolid, as a 3D kernel, provides only a number of libraries and a conceptual framework for 3D application development. It is thus necessary for the developers to identify and develop the other essential facilities that are provided in a 3D CAD system. In order to identify the required facilities, it is important to understand the discrepancies between the two. Table 1 summarises the main differences in the facilities provided by a 3D kernel and a 3D CAD system. Some of these facilities, such as features and parametric modelling, are both time-consuming and technically demanding to develop. As most plug-ins do not use all the facilities of the parent software, it is possible to develop only those required by the plug-ins using low-level 3D kernels, producing a standalone version.
Items 7 to 9 in Table 1 are prerequisites for the development of 3D-based applications using Parasolid. By studying the requirements of the plug-in application, other essential facilities can be identified. A framework for the application is then proposed, based on the facilities provided by the Parasolid kernel.
5.2 Framework for 3D-Based Applications
A framework is developed with reference to the facilities provided by the developmental tools and the requirements of the application. It is designed so that there are minimum dependencies between individual code modules. This may result in a small degree of code duplication. In exchange, there is better portability of the program codes, greater ease of maintenance and a better prospect for future expansion. The overview of this framework is illustrated in Fig. 2. The details of the various modules are discussed in the following sections.
5.2.1 Windows-Based User-Interface (A)
Parasolid does not provide the programmer with a userinterface. Thus, the development of the 3D-based application at every single stage will involve designing the user-interface from scratch. The necessary developments involve:
1. Environmental setting and display of the 3D-based application.
2. Interactive graphical interface and execution procedure for all application functionality.
5.2.2 3D Developer Layer (B)
Since different 3D-based applications require 3D-facilities to different extent, the framework must provide for these variations. A 3D developer layer (See Fig. 2, Item B) is conceptualised to handle such variations. It is a library of objects or classes that are developed, based on the Parasolid kernel. The extent of development depends on the requirements of the
456 T. L. Neo and K. S. Lee
Table 1. Summary of facilities provided by a 3D kernel and a CAD system.
Facilities
3D kernel
3D CAD system
1.
Basic 3D modelling
Low-level and general functions provided
High-level and specific functions provided
2.
Assemblies
Several library functions provided
Complete system provided
3.
Feature-based modelling
Not provided
Established feature set provided
4.
Parametric modelling
Not provided
Often provided
5.
Free-form modelling
Low-level functions provided
Often provided
6.
Drafting
Not provided
Complete system provided
7.
Interactive user-interface
Not provided
Always provided
8.
Visualisation of 3D objects
Conceptual framework and several library
Completely developed
functions provided
9.
File management system
Conceptual framework and several library
Completely developed
functions provided
Fig. 2. Overview of 3D-based application.
application identified in the previous section. Besides catering for variations in application requirements, the 3D developer layer also acts as a programming interface for non-Parasolid developers. Such an interface can also be re-used for subsequent development of other 3D-based applications. The 3D developer layer essentially consists of three main sections. They are used for 3D modelling and assembly, 3D visualisation and 3D data management, respectively.
I. 3D Modeling and Assembly. The 3D modelling and assembly module is the most important and elaborate of all three sections. It is analogous to the application-programming interface (API) provided by most CAD systems. The module consists of a library of 3D-based objects or classes, which are used for the development of the core application modules. The basic 3D functionality that is required by most 3D applications must be developed first. Depending on the requirements of the individual 3D-based application, other more advance features are subsequently added.
II. 3D Visualisation. The display of 3D objects in a Windows client area requires a software graphics interface. The graphical output together with a selected graphical interface, are used for the rendering of 3D objects in the 3D-based application, as well as the management of the viewing projections and transformations. Here, a library of classes is developed for such purposes.
III. 3D Data Management. The 3D data management module is developed on top of the frustrum. The frustrum is the module in the Parasolid kernel that facilitates archiving and access of 3D part files. A library of classes are developed using the frustrum for handling:
1. 3D object file format.
2. File management operations such as opening and saving a 3D object file.
5.2.3 Application Modules (C)
These are the actual 3D-based application modules that sit between the 3D developer layer and the application userinterface. The design of these modules depends mainly on the nature of the applications and often differs greatly. The main bulk of the developmental work is carried out in this area. The ease of the development, however, depends on the capabilities of the 3D developer layer.
5.2.4 Other Software Modules (D)
Very often, the 3D-based application may require functionality from other existing software modules or application modules. Therefore, such a link may exist. An example of such a requirement is illustrated in the implementation section of this paper.
5.3 Development of Individual Modules
Each module to be developed is studied and analysed before a suitable design is produced. The ease of development depends greatly on the design of the framework and the developer tools selected. The next section illustrates the implementation of the
Fig. 3. Overview of the injection mould base design application.
above methodology on a 3D-based injection mould base design and assembly application.
6. Implementations
Applying the system design, a 3D-based injection mould design application is developed. This is achieved using the developmental tools mentioned in the earlier sections. The mould base module is chosen for illustration, as it requires the widest range of 3D functionality, including the generation of assemblies.
6.1 Framework of Application and the Requirements of Each Module
A framework for the application is designed with reference to the developmental work identified. Figure 3 illustrates the
framework for the Mold Base design application. The details of the requirements in each module are discussed as follows:
6.1.1 Windows NT User-Interface (A)
Mould base design is an iterative process. The Mould designer first selects a standard mould base from the catalogue, and then repeatedly makes modifications to the dimensions of the mould base until all the design requirements are met. It is, therefore, necessary to consider an interactive user-interface for such purpose. Using the Visual Cand the MFC, a Windows-based interface is developed. These include:
1. Creation, display and management of menu bar items, context menu items and toolbar buttons for easy access to functionality of the application.
2. Creation, display and management of dialogue boxes to guide the user or to obtain user input.
458 T. L. Neo and K. S. Lee
Fig. 6. Cavity pla
收藏