副標(biāo)題#e#
明細(xì)欄作為工程圖的重要組成部分,它用于反映各零部件之間相互關(guān)系及其代號(標(biāo)準(zhǔn)件號)、名稱、數(shù)量、材料等屬性信息。為此,如何在三維模型參數(shù)化驅(qū)動之后生成正確、符合要求的明細(xì)欄,是獲得高質(zhì)量工程圖的必要前提,也是保證整個(gè)三維參數(shù)化設(shè)計(jì)系統(tǒng)可靠性的重要基礎(chǔ)川。在SolidWorks2005中提供了2種建立明細(xì)欄的方式:一種是基于Exccl表的形式;另一種是完全基于SolidWorks自行開發(fā)的、比Excel表功能更強(qiáng)大更方便的明細(xì)欄形式。盡管第二種添加方法明顯優(yōu)于前者,但是要能夠在參數(shù)驅(qū)動之后的工程圖中自動添加合適的明細(xì)欄,不參與任何的人工輔助,必須通過程序控制。基于參數(shù)化模型驅(qū)動的工程圖明細(xì)欄自動生成與調(diào)整技術(shù)是以SolidWorks對于明細(xì)欄的后一種添加方法為基礎(chǔ),采用VB語言以及SolidWorks API函數(shù)進(jìn)行工程圖明細(xì)欄的自動生成與調(diào)整,主要包括明細(xì)欄模板調(diào)用、行數(shù)計(jì)算、序號調(diào)整、高度及列寬的控制以及明細(xì)欄內(nèi)容的填充與修改。
1總體設(shè)計(jì)思想
三維參數(shù)化設(shè)計(jì)的思想是采用約束來表達(dá)產(chǎn)品模型的形狀特征,并用一組參數(shù)來控制設(shè)計(jì)結(jié)果,從而通過變換一組參數(shù)值方便地創(chuàng)建了一系列形狀類似的零件,并通過強(qiáng)度和剛度驗(yàn)算合格,自動生成產(chǎn)品的三維模型和工程圖。從圖1可以看出,明細(xì)欄的自動生成與調(diào)整是整個(gè)三維參數(shù)化設(shè)計(jì)過程的重要組成部分。
在本文所測試的對象產(chǎn)品中,采用先根據(jù)企業(yè)的需求建立明細(xì)欄模板,再通過程序進(jìn)行添加的方法來實(shí)現(xiàn)工程圖中明細(xì)欄的添加。由于它是在新的裝配體零部件更名完成后進(jìn)行這一系列的操作,因此就不會出現(xiàn)明細(xì)欄無法識別的情況;同時(shí)在模型參數(shù)化驅(qū)動完成后,通過相關(guān)程序統(tǒng)計(jì)部件中的零件數(shù)目,并存儲在專門的文件或程序控件中,這樣在通過程序初步添加明細(xì)欄以后寫人相應(yīng)零部件的數(shù)量、名稱、材料、質(zhì)量等屬性,最后就可以在最終工程圖中完成符合企業(yè)要求的明細(xì)欄的添加過程。
2實(shí)現(xiàn)方法與技術(shù)
針對三維參數(shù)化設(shè)計(jì)中工程圖明細(xì)欄的特殊要求,SolidWorks自身提供了BomFeatureBOMTable TableAnnotation等API函數(shù)便于技術(shù)人員利用二次開發(fā)技術(shù)控制明細(xì)欄的生成與調(diào)用。所以,程序控制明細(xì)欄生成與調(diào)整的過程就是調(diào)用SolidWorks相關(guān)API函數(shù)的過程,具體調(diào)用的函數(shù)類型及使用方法描述如下。
BOMTable對象是SolidWorks API提供的指向明細(xì)欄的對象,它是View對象的下級對象,通過ModelDoc2對象的下一級對象SelectionMgr對象的GetSelectedObject5方法獲得指向需要建立明細(xì)欄的視圖的View對象,同時(shí)通過View對象InsertBomTable2方法就可以實(shí)現(xiàn)程序建立明細(xì)欄,在明細(xì)欄建立之后通過View對象的GetBomTable方法可以獲得指向明細(xì)欄的指針,得到指向BOMTable對象的指針后,就可以操作明細(xì)欄的屬性。在建立明細(xì)欄獲得指向BOMTable對象指針后,通過BOMTable對象的BomFeature方法可以獲得指向BomFeature對象的指針,通過BomFeature對象的ConfigurationTableTypeKeepMissingItemsSequenceStartNumber等屬性和方法就可以對明細(xì)欄的模版、類型、是否保持丟失項(xiàng)目以及起始序號等屬性進(jìn)行獲取和設(shè)置,明細(xì)欄出現(xiàn)空白行的情況可以通過I3omFeature對象的GetTableAnnotations方法獲取指向TableAnnotation對象的指針,通過TableAnnotation對象的DeleteRow方法就可以刪除空白的行,通過TableAnnotation的Text屬性可以實(shí)現(xiàn)零件數(shù)量的更新。TabIeAnnotation對象是控制整個(gè)BOM最關(guān)鍵的對象,通過該對象的屬性和方法的控制可以基木實(shí)現(xiàn)對BOM屬性的完全設(shè)置。
3具體實(shí)現(xiàn)步驟
3.1零部件模型的建模要求
在工程圖中生成明細(xì)欄時(shí),每個(gè)零件的相關(guān)屬性都是要能與材料明細(xì)欄所對應(yīng)的列進(jìn)行自動鏈接的,目的是能夠通過鏈接自動在明細(xì)欄對應(yīng)位置寫入相關(guān)屬性。為此,必須在零部件建模時(shí)設(shè)置其相關(guān)屬性,圖2為某零件的自定義屬性,其中與明細(xì)欄相關(guān)的屬性包括重量(Weight)、材料(Materi-al)、序號(No )、代號(DrawingNo )、名稱(YartNo)等。
1總體設(shè)計(jì)思想
三維參數(shù)化設(shè)計(jì)的思想是采用約束來表達(dá)產(chǎn)品模型的形狀特征,并用一組參數(shù)來控制設(shè)計(jì)結(jié)果,從而通過變換一組參數(shù)值方便地創(chuàng)建了一系列形狀類似的零件,并通過強(qiáng)度和剛度驗(yàn)算合格,自動生成產(chǎn)品的三維模型和工程圖。從圖1可以看出,明細(xì)欄的自動生成與調(diào)整是整個(gè)三維參數(shù)化設(shè)計(jì)過程的重要組成部分。
在本文所測試的對象產(chǎn)品中,采用先根據(jù)企業(yè)的需求建立明細(xì)欄模板,再通過程序進(jìn)行添加的方法來實(shí)現(xiàn)工程圖中明細(xì)欄的添加。由于它是在新的裝配體零部件更名完成后進(jìn)行這一系列的操作,因此就不會出現(xiàn)明細(xì)欄無法識別的情況;同時(shí)在模型參數(shù)化驅(qū)動完成后,通過相關(guān)程序統(tǒng)計(jì)部件中的零件數(shù)目,并存儲在專門的文件或程序控件中,這樣在通過程序初步添加明細(xì)欄以后寫人相應(yīng)零部件的數(shù)量、名稱、材料、質(zhì)量等屬性,最后就可以在最終工程圖中完成符合企業(yè)要求的明細(xì)欄的添加過程。
2實(shí)現(xiàn)方法與技術(shù)
針對三維參數(shù)化設(shè)計(jì)中工程圖明細(xì)欄的特殊要求,SolidWorks自身提供了BomFeatureBOMTable TableAnnotation等API函數(shù)便于技術(shù)人員利用二次開發(fā)技術(shù)控制明細(xì)欄的生成與調(diào)用。所以,程序控制明細(xì)欄生成與調(diào)整的過程就是調(diào)用SolidWorks相關(guān)API函數(shù)的過程,具體調(diào)用的函數(shù)類型及使用方法描述如下。
BOMTable對象是SolidWorks API提供的指向明細(xì)欄的對象,它是View對象的下級對象,通過ModelDoc2對象的下一級對象SelectionMgr對象的GetSelectedObject5方法獲得指向需要建立明細(xì)欄的視圖的View對象,同時(shí)通過View對象InsertBomTable2方法就可以實(shí)現(xiàn)程序建立明細(xì)欄,在明細(xì)欄建立之后通過View對象的GetBomTable方法可以獲得指向明細(xì)欄的指針,得到指向BOMTable對象的指針后,就可以操作明細(xì)欄的屬性。在建立明細(xì)欄獲得指向BOMTable對象指針后,通過BOMTable對象的BomFeature方法可以獲得指向BomFeature對象的指針,通過BomFeature對象的ConfigurationTableTypeKeepMissingItemsSequenceStartNumber等屬性和方法就可以對明細(xì)欄的模版、類型、是否保持丟失項(xiàng)目以及起始序號等屬性進(jìn)行獲取和設(shè)置,明細(xì)欄出現(xiàn)空白行的情況可以通過I3omFeature對象的GetTableAnnotations方法獲取指向TableAnnotation對象的指針,通過TableAnnotation對象的DeleteRow方法就可以刪除空白的行,通過TableAnnotation的Text屬性可以實(shí)現(xiàn)零件數(shù)量的更新。TabIeAnnotation對象是控制整個(gè)BOM最關(guān)鍵的對象,通過該對象的屬性和方法的控制可以基木實(shí)現(xiàn)對BOM屬性的完全設(shè)置。
3具體實(shí)現(xiàn)步驟
3.1零部件模型的建模要求
在工程圖中生成明細(xì)欄時(shí),每個(gè)零件的相關(guān)屬性都是要能與材料明細(xì)欄所對應(yīng)的列進(jìn)行自動鏈接的,目的是能夠通過鏈接自動在明細(xì)欄對應(yīng)位置寫入相關(guān)屬性。為此,必須在零部件建模時(shí)設(shè)置其相關(guān)屬性,圖2為某零件的自定義屬性,其中與明細(xì)欄相關(guān)的屬性包括重量(Weight)、材料(Materi-al)、序號(No )、代號(DrawingNo )、名稱(YartNo)等。