SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)

2013-05-21  by:廣州有限元分析、培訓(xùn)中心-1CAE.COM  來源:仿真在線

采用Visual Basic對SolidWorks進(jìn)行二次開發(fā),實(shí)現(xiàn)了在SolidWorks工程圖環(huán)境下明細(xì)欄的自動(dòng)添加與調(diào)整。以某重型機(jī)械廠的產(chǎn)品為實(shí)例,對于在參數(shù)化驅(qū)動(dòng)之后重新生成的裝配模型及工程圖,實(shí)現(xiàn)了根據(jù)零部件名稱及數(shù)量自動(dòng)生成相對應(yīng)的明細(xì)欄,并進(jìn)行了一系列的優(yōu)化與調(diào)整,解決了添加明細(xì)欄時(shí)工作繁瑣,速度慢,出錯(cuò)多及難以用程序控制的缺點(diǎn)。
作者: 陳樹曉*水俊峰*張晉強(qiáng)*王宗彥 來源: 萬方數(shù)據(jù)
關(guān)鍵字: 明細(xì)欄 參數(shù)化 SolidWorks

明細(xì)欄作為工程圖的重要組成部分,它用于反映各零部件之間相互關(guān)系及其代號(hào)(標(biāo)準(zhǔn)件號(hào))、名稱、數(shù)量、材料等屬性信息。為此,如何在三維模型參數(shù)化驅(qū)動(dòng)之后生成正確、符合要求的明細(xì)欄,是獲得高質(zhì)量工程圖的必要前提,也是保證整個(gè)三維參數(shù)化設(shè)計(jì)系統(tǒng)可靠性的重要基礎(chǔ)川。在SolidWorks2005中提供了2種建立明細(xì)欄的方式:一種是基于Exccl表的形式;另一種是完全基于SolidWorks自行開發(fā)的、比Excel表功能更強(qiáng)大更方便的明細(xì)欄形式。盡管第二種添加方法明顯優(yōu)于前者,但是要能夠在參數(shù)驅(qū)動(dòng)之后的工程圖中自動(dòng)添加合適的明細(xì)欄,不參與任何的人工輔助,必須通過程序控制?;趨?shù)化模型驅(qū)動(dòng)的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)是以SolidWorks對于明細(xì)欄的后一種添加方法為基礎(chǔ),采用VB語言以及SolidWorks API函數(shù)進(jìn)行工程圖明細(xì)欄的自動(dòng)生成與調(diào)整,主要包括明細(xì)欄模板調(diào)用、行數(shù)計(jì)算、序號(hào)調(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)算合格,自動(dòng)生成產(chǎn)品的三維模型和工程圖。從圖1可以看出,明細(xì)欄的自動(dòng)生成與調(diào)整是整個(gè)三維參數(shù)化設(shè)計(jì)過程的重要組成部分。
   

SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)solidworks simulation培訓(xùn)教程圖片1


在本文所測試的對象產(chǎn)品中,采用先根據(jù)企業(yè)的需求建立明細(xì)欄模板,再通過程序進(jìn)行添加的方法來實(shí)現(xiàn)工程圖中明細(xì)欄的添加。由于它是在新的裝配體零部件更名完成后進(jìn)行這一系列的操作,因此就不會(huì)出現(xiàn)明細(xì)欄無法識(shí)別的情況;同時(shí)在模型參數(shù)化驅(qū)動(dòng)完成后,通過相關(guān)程序統(tǒng)計(jì)部件中的零件數(shù)目,并存儲(chǔ)在專門的文件或程序控件中,這樣在通過程序初步添加明細(xì)欄以后寫人相應(yīng)零部件的數(shù)量、名稱、材料、質(zhì)量等屬性,最后就可以在最終工程圖中完成符合企業(yè)要求的明細(xì)欄的添加過程。
   
    2實(shí)現(xiàn)方法與技術(shù)

   
針對三維參數(shù)化設(shè)計(jì)中工程圖明細(xì)欄的特殊要求,SolidWorks自身提供了BomFeature\BOMTable \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對象的Configuration\TableType\KeepMissingItems\SequenceStartNumber等屬性和方法就可以對明細(xì)欄的模版、類型、是否保持丟失項(xiàng)目以及起始序號(hào)等屬性進(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)行自動(dòng)鏈接的,目的是能夠通過鏈接自動(dòng)在明細(xì)欄對應(yīng)位置寫入相關(guān)屬性。為此,必須在零部件建模時(shí)設(shè)置其相關(guān)屬性,圖2為某零件的自定義屬性,其中與明細(xì)欄相關(guān)的屬性包括重量(Weight)、材料(Materi-al)、序號(hào)(No )、代號(hào)(DrawingNo )、名稱(YartNo)等。
   

SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)solidworks simulation培訓(xùn)教程圖片2


 3. 2讀取零件數(shù)量及相關(guān)屬性
   
明細(xì)欄自動(dòng)生成與調(diào)整模塊是整個(gè)二維參數(shù)化CAD系統(tǒng)的一部分,要反映的是參數(shù)化設(shè)計(jì)完成之后各個(gè)零件和標(biāo)準(zhǔn)件的個(gè)數(shù)及相關(guān)屬性。實(shí)際上,在輸人一組參數(shù)并進(jìn)行驅(qū)動(dòng)(特別是參數(shù)變化范圍較大)之后,裝配體中的零件種類和個(gè)數(shù)往往會(huì)發(fā)生變化。為此,只有在驅(qū)動(dòng)完成之后再進(jìn)行零件個(gè)數(shù)的讀取才能保證最后生成的明細(xì)欄內(nèi)容的正確性。具體讀取方式主要采用了選擇和遍歷技術(shù),逐個(gè)遍歷裝配體模型中零件樹的種類與個(gè)數(shù)并進(jìn)行統(tǒng)計(jì)后寫人文件,格式采用:"零件序號(hào)/數(shù)量"的方式。需要注意的是,裝配完成之后應(yīng)該把裝配模型中零件樹的順序按照明細(xì)欄的最后要求進(jìn)行重新排列,目的是能夠保證寫入文件時(shí)記錄的數(shù)據(jù)是按照明細(xì)欄的順序排列的,減少排列出錯(cuò)的可能性。
   
    數(shù)據(jù)讀取的流程如圖3所示:
   

SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)solidworks simulation培訓(xùn)教程圖片3


    3.3初步生成明細(xì)欄
   
初步生成明細(xì)欄是比較重要的一步,通過調(diào)用API函數(shù)InsertBomTable2,插人預(yù)先設(shè)置好的明細(xì)欄模板,并根據(jù)讀取零件個(gè)數(shù)時(shí)所保存的文件的行數(shù)及其零件序號(hào)的最大值判斷將要生成的明細(xì)欄的行數(shù)。接下來,寫人記錄的"零件序號(hào)/數(shù)量"的信息,并通過零件序號(hào)信息訪問對應(yīng)的零件,讀取零件建模時(shí)輸入的自定義屬性值,并以填人或更新TableAnn的Text屬性值的方式依次寫入到相應(yīng)的位置。
   
    3. 4調(diào)整序號(hào)空缺
   
在裝配體中,考慮到某些標(biāo)準(zhǔn)件沒有進(jìn)行裝配,裝配零件樹中也沒有相應(yīng)的零件,在進(jìn)行讀取時(shí)就不可能讀取這些未裝配的零件信息,所以在明細(xì)欄相應(yīng)的位置進(jìn)行添加空缺行的操作,以便于后續(xù)工作中可以進(jìn)行人工添加,具體方法是對生成的明細(xì)欄序號(hào)進(jìn)行連續(xù)性判斷,只要有空缺的,就插入一個(gè)空行,并寫人相應(yīng)的序號(hào)值。
   
    相關(guān)程序如下:
   

SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)solidworks simulation培訓(xùn)教程圖片4


  說明:循環(huán)判斷是否存在序號(hào)不連貫的現(xiàn)象,如果存在,判斷某處需要插人幾個(gè)空行,通過TableAnn的InsertRow函數(shù)插人到明細(xì)欄中,并在序號(hào)一欄寫人空缺的序號(hào)值。
   
    3.5修改部分零部件名稱
   
參數(shù)化驅(qū)動(dòng)完成之后,生成的新的裝配體中所有的零部件已經(jīng)通過零件更名的方式獲得了新的名稱,但是在2.1所述的零件自定義屬性中設(shè)置的名稱(PartNo)卻沒有隨之發(fā)生改變。為了保證明細(xì)欄的零件名稱屬性能夠與新生成的系列零件一致,必須進(jìn)行更名的操作。
   
核心代碼為:
   

SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)solidworks simulation培訓(xùn)教程圖片5


說明:Var(vi)是讀取零件個(gè)數(shù)時(shí)記錄的值,s為第i行中"代號(hào)"列的值,如果值"s"與"A2167"(某零件模型的原代號(hào))有重復(fù)部分,把"A2167"用最初輸人的代號(hào)fi1cN0的值代替,完成修改零部件名稱.
    
    4結(jié)束語
   
基于SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù)在三維參數(shù)化系統(tǒng)中的應(yīng)用,使整個(gè)系統(tǒng)實(shí)現(xiàn)了明細(xì)欄的自動(dòng)添加與調(diào)整,布局合理、序號(hào)連貫、信息詳實(shí)準(zhǔn)確。該技術(shù)解決了人工輸人明細(xì)欄工作量大且煩瑣,軟件本身的明細(xì)欄功能不能夠很好地符合國家標(biāo)準(zhǔn)和企業(yè)需要等問題,提升了整個(gè)三維參數(shù)化CAD系統(tǒng)的自動(dòng)化水平,加快了作圖速度。該技術(shù)也可供使用其他二維CAD軟件的技術(shù)人員作為參考。


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:SolidWorks的工程圖明細(xì)欄自動(dòng)生成與調(diào)整技術(shù) SolidWorks培訓(xùn)課程 SolidWorks設(shè)計(jì)教程 SolidWorks視頻教程 SolidWorks軟件下載 SolidWorks在建筑室內(nèi)設(shè)計(jì)工業(yè)設(shè)計(jì)的應(yīng)用 SolidWorks基礎(chǔ)知識(shí) SolidWorks代做 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com