国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

橋梁墩柱鋼模板的SolidWorks參數(shù)化建模及出圖方法

2022-11-30 01:08胡延平殷寶連吳城玉王鑫磊
關(guān)鍵詞:鋼模板工程圖視圖

胡延平, 殷寶連, 吳城玉, 王鑫磊

(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 合肥 230009)

隨著我國建設(shè)步伐的加快,工程橋梁在城市交通中的作用日益凸顯。鋼模板作為建筑工程中不可或缺的重要施工工具,被廣泛應(yīng)用在城市交通、公路、鐵路等各個重要工程中[1]。由于鋼模板屬于訂制產(chǎn)品,同種類型鋼模板存在不同規(guī)格尺寸的結(jié)構(gòu)特征,因此,對鋼模板的設(shè)計可采用參數(shù)化設(shè)計[2],以加快圖紙的設(shè)計速度,提高鋼模板的設(shè)計效率。

近年來各領(lǐng)域很多學(xué)者借助不同的商業(yè)軟件進(jìn)行參數(shù)化設(shè)計研究,相繼取得了一定的研究成果,如文獻(xiàn)[3]將HyperWorks軟件應(yīng)用于參數(shù)化有限元分析平臺的研究。但目前國內(nèi)外大多數(shù)學(xué)者對鋼模板的參數(shù)化設(shè)計建模與出圖的研究很少涉及,對其建模與出圖的方法更是缺少詳細(xì)的說明?;诖?本文將Visual Studio 2010作為開發(fā)平臺,借助C++開發(fā)語言,在SolidWorks軟件二次開發(fā)的基礎(chǔ)上,對橋梁墩柱鋼模板參數(shù)化建模過程與自動出圖方法進(jìn)行研究,并以橋梁圓墩鋼模板為實(shí)例進(jìn)行具體演示,詳細(xì)說明改變參數(shù)完成零件參數(shù)化建模和自動出圖的方法及關(guān)鍵技術(shù),實(shí)現(xiàn)橋梁墩柱鋼模板的參數(shù)化建模與工程圖紙生成。

1 橋梁墩柱鋼模板參數(shù)化建模

基于Solidworks的參數(shù)化建模主要有2種設(shè)計方式:一種是完全編程技術(shù),由設(shè)計者根據(jù)實(shí)際需求,通過程序代碼編譯生成符合用戶要求的零件模型,模型完全由編寫的程序驅(qū)動生成,此技術(shù)每輸入一次模型參數(shù),程序就要重新驅(qū)動建立相應(yīng)的模型,嚴(yán)重降低開發(fā)效率;另一種是將零件制成三維模型模板,通過更改模板相應(yīng)的尺寸,在保證零件結(jié)構(gòu)不發(fā)生變化的前提下,利用軟件提供的應(yīng)用程度界面(application programming interface,API)編程接口來驅(qū)動該模板,稱為尺寸驅(qū)動技術(shù)[4],但是該技術(shù)只適用于固定零件特征,對特征隨型變化的模型無效。

基于此,本文結(jié)合2種技術(shù)的優(yōu)缺點(diǎn),首先利用尺寸驅(qū)動技術(shù)思路將事先建立的模板保存并將保存路徑輸入到SolidWorks函數(shù)的打開文件函數(shù)OpenDoc6中,以實(shí)現(xiàn)模板文件的調(diào)用;然后借助于編程技術(shù)控制模板模型特征隨型生成;最后通過尺寸驅(qū)動模型尺寸參數(shù)完成建模。打開函數(shù)OpenDoc6各參數(shù)的含義見表1所列。

表1 SldWorks->OpenDoc6各參數(shù)說明

1.1 模板的創(chuàng)建

模型模板質(zhì)量的好壞直接影響整個參數(shù)化設(shè)計的結(jié)果,因此,創(chuàng)建符合參數(shù)化設(shè)計要求的鋼模板就顯得尤為重要。

由于鋼模板結(jié)構(gòu)存在多個重復(fù)特征(如三角肋、法蘭孔、緯(經(jīng))肋等),在創(chuàng)建這些特征時,需要先創(chuàng)建首個特征,再依據(jù)該特征陣列生成多個特征(下文將此類特征稱作源特征)。然而,隨著模型參數(shù)的變化,源特征的位置不能隨之動態(tài)調(diào)整,致使肋板和特征孔不能依次對稱排布,造成部分特征的丟失,進(jìn)而引發(fā)應(yīng)力集中或者因強(qiáng)度不足發(fā)生斷裂的問題。因此以緯肋為例,采取如圖1a、圖1b所示的創(chuàng)建方案來確定源特征排布方式,即在鋼模板高度的1/2處,按緯肋個數(shù)奇、偶數(shù)分別創(chuàng)建源特征;然后創(chuàng)建鋼模板其余特征,并選定初始模板參數(shù)完成對鋼模板模型的創(chuàng)建操作。

圖1 肋板設(shè)計排布圖

1.2 模板的預(yù)處理

為了保證參數(shù)化設(shè)計后模型的合理性,應(yīng)對模板進(jìn)行預(yù)處理操作。模板預(yù)處理主要是對鋼模板模型中需要修改的相關(guān)尺寸進(jìn)行約束和參數(shù)關(guān)聯(lián)[5],即在建模時充分考慮添加合理的約束,實(shí)現(xiàn)參數(shù)的全約束,以保證尺寸改變后模型的聯(lián)動效果。實(shí)現(xiàn)參數(shù)化鋼模板模型參數(shù)全約束不僅要求所建草圖完全定義,還要確保各個獨(dú)立的尺寸參數(shù)之間建立必要的關(guān)聯(lián),可以通過軟件中的方程式功能完成尺寸關(guān)聯(lián),方程式形如“因變量”=“自變量”。

以圓墩鋼模板為例,在添加方程式前,應(yīng)對圓墩鋼模板結(jié)構(gòu)進(jìn)行仔細(xì)分析,充分考慮面板、橫(圓)法蘭、豎法蘭、三角肋、緯肋與經(jīng)肋之間相互配合關(guān)系,以保證相關(guān)尺寸發(fā)生改變時對應(yīng)鋼模板模型不會發(fā)生重建錯誤。

1.3 特征隨型智能排布設(shè)計

不同于其他零件結(jié)構(gòu),橋梁墩柱鋼模板隨著尺寸參數(shù)變化,零件模型不再是簡單的尺寸更替,隨之變化的還有零件特征在數(shù)量上的增加或減少。為此,研究出一種特征隨型智能排布設(shè)計的方法。以圓墩鋼模板為例,圓法蘭上的特征排布可按照定角度陣列排布實(shí)現(xiàn),此處不作贅述。本節(jié)重點(diǎn)研究豎法蘭上特征的隨型智能排布法。

該特征隨型智能排布方法基于方程式、模型、代碼程序三者展開設(shè)計。將經(jīng)過模型預(yù)處理得到的模板通過特征壓縮函數(shù)EditSuppress2與特征解壓函數(shù)EditUnsuppress2實(shí)現(xiàn)單一控制奇、偶緯肋源特征的壓縮與解壓,以達(dá)到隨著圓墩高度改變特征隨型變化的“開關(guān)效果”;運(yùn)用SolidWorks中的定距陣列功能在鋼模板高度的H/2處左右陣列源特征,記錄陣列數(shù),再通過程序控制陣列數(shù)即可控制排布特征的個數(shù),陣列數(shù)的具體數(shù)值可通過程序代碼智能計算得出;最后在豎法蘭上最靠近圓法蘭的孔、三角肋、緯肋之間或三者與圓法蘭之間發(fā)生干涉的情況設(shè)置條件控制,編寫防干涉代碼。至此,整個模型搭建完成,當(dāng)用戶在交互界面輸入模型參數(shù)后,系統(tǒng)會智能識別用戶輸入的數(shù)據(jù),對模板初始參數(shù)自動更新,并將這些數(shù)據(jù)寫入控制對應(yīng)特征的程序中,進(jìn)一步控制特征按照指定的尺寸參數(shù)智能排布模型特征,完成特征隨型智能排布設(shè)計。

特征隨型智能排布設(shè)計具體流程如圖2所示。

圖2 特征隨型智能排布設(shè)計流程

1.4 交互接口技術(shù)

為了滿足用戶對軟件二次開發(fā)的需求,SolidWorks軟件公司提供了強(qiáng)大的API應(yīng)用程序開發(fā)接口,接口中的函數(shù)為開發(fā)者直接訪問軟件帶來極大的便利。開發(fā)者通過該接口支持的開發(fā)工具(如VC++、VBA、VB等)對SolidWorks函數(shù)進(jìn)行調(diào)取使用,進(jìn)而拓展軟件的功能。軟件二次開發(fā)有2種開發(fā)模式:一種是使用OLE方式開發(fā),借助生成的*.exe文件調(diào)用軟件中的功能,然而這種技術(shù)無法集成到軟件系統(tǒng)中去;另一種模式是生成動態(tài)鏈接庫(dynamic link library,DLL)文件,加載和調(diào)用這個DLL文件就可以實(shí)現(xiàn)軟件的二次開發(fā),即以插件的形式進(jìn)行開發(fā)。第2種模式實(shí)現(xiàn)方式可以與原開發(fā)對象程序共享同一個進(jìn)程,大大節(jié)省了內(nèi)存[6-8]。因此,本文選用以生成插件的形式進(jìn)行二次開發(fā)。

采用第2種模式進(jìn)行二次開發(fā)之前,需要先將該技術(shù)與軟件的開發(fā)接口完成搭建。搭建方法主要有工程向?qū)АTL對象向?qū)У?。由于工程向?qū)Т罱ǚ椒ㄒ呀?jīng)被淘汰,本文主要闡述ATL對象向?qū)?。隨著VS版本的不斷升級,目前以采用由ATL向?qū)ч_發(fā)的SolidWorks COM Addin向?qū)泶罱ń涌谟脩糁恍璋惭bSolidWorks API SDK工具包即可完成接口搭建,至此可對軟件進(jìn)行二次開發(fā)[9]。編好程序代碼后,對該項(xiàng)目進(jìn)行編譯生成“.dll”文件,在SolidWorks 2019中加載即可進(jìn)行參數(shù)化設(shè)計。

1.5 尺寸參數(shù)的設(shè)計與修改

模板要實(shí)現(xiàn)參數(shù)化建模,零件的主要尺寸參數(shù)就必須可供用戶修改,因此,調(diào)用軟件中的API函數(shù)并設(shè)計人機(jī)交互界面來完成。編程方法可以通過在配置中設(shè)置鋼模板的各個參數(shù)來更改零件的尺寸值,以實(shí)現(xiàn)鋼模板的參數(shù)化設(shè)計功能。具體方法是將鋼模板中需要用戶提供的可變化的尺寸參數(shù)包含到配置管理器中,通過軟件的二次開發(fā)接口,對配置管理二次開發(fā),完成整個模型的參數(shù)化建模設(shè)計[7]。

本文通過調(diào)用ISetConfigurationParams函數(shù)來設(shè)置配置中的參數(shù)值,該函數(shù)的各參數(shù)說明見表2所列。

表2 ConfigurationManager->ISetConfigurationParams參數(shù)說明

2 自動生成工程圖

2.1 自動生成工程圖方法

自動生成工程圖的方法有2種:一種是通過調(diào)用軟件的API函數(shù)生成對應(yīng)工程視圖,再對工程圖進(jìn)行尺寸標(biāo)注等操作,該方法程序編程量很大且要求開發(fā)人員能熟悉調(diào)用軟件中的API函數(shù);另一種是借助軟件提供的全相關(guān)性,借助零件模板建立工程圖模板,當(dāng)三維模型零件更改時,自動更新工程圖尺寸,完成自動出圖操作[4]?;诖?本文選擇用第2種方法。然而在創(chuàng)建時因?yàn)檐浖凶詭У囊恍﹪鴺?biāo)模板的圖紙格式常不符合用戶的圖紙要求,所以在建立工程圖模板前通過對圖層設(shè)置、圖紙屬性等操作自行設(shè)計工程圖圖紙格式并保存,使圖紙模板達(dá)到工程實(shí)際要求。選擇保存的工程圖紙,從三維模型中創(chuàng)建工程圖模板即可。

2.2 工程圖紙的優(yōu)化

由于軟件是借助建立好的零件模板生成工程圖,當(dāng)模型零件的尺寸參數(shù)發(fā)生改變時,相應(yīng)的工程圖也會隨之發(fā)生改變,使得模型出現(xiàn)視圖比例不合理、尺寸混亂等現(xiàn)象?;诖?本文針對此類現(xiàn)象作進(jìn)一步研究。

2.2.1 視圖比例調(diào)整

智能調(diào)整視圖比例的主要思路是將變化后的包絡(luò)線框的對角線長度等于變化前的長度,借助粒子群算法,仿照鳥群覓食的行為,使得群體達(dá)到最優(yōu)的方法,進(jìn)而獲得最優(yōu)的視圖比例值。確定適應(yīng)度函數(shù)為:

(1)

其中:n為工程視圖的數(shù)量;Dk、Dk′分別為尺寸變化前、后的對角線長度值;c、c′分別為圖紙更新前、后的視圖比例。適應(yīng)度函數(shù)F(c′)越大,尺寸變化前、后包絡(luò)線對角線長度越接近,由此調(diào)整視圖比例轉(zhuǎn)化為求解函數(shù)F(c′)最大值問題。

具體方法是:先調(diào)用GetOutline函數(shù)得到視圖包絡(luò)線框?qū)蔷€的2個頂點(diǎn),借助程序計算該對角線的長度;接著確定粒子群的規(guī)模為5個粒子,區(qū)間范圍在1~100,定義粒子的位置和速度;通過(1)式評價每個粒子的適應(yīng)度,獲得個體和群體歷史最優(yōu)解;不滿足條件時,通過更新粒子位置和速度來更新種群,繼續(xù)返回算法中。更新粒子的公式[10]為:

Vi=ωVi+c1r1(pbesti-Xi)+

c2r2(gbest-Xi)

(2)

Xi=Xi+Vi

(3)

其中:Xi、Vi分別為第i個粒子的位置和速度;ω為慣性權(quán)重;c1、c2為學(xué)習(xí)因子;r1、r2為[0,1]區(qū)間的隨機(jī)數(shù);pbesti為第i個粒子的歷史最優(yōu)位置;gbest為粒子種群最優(yōu)位置。智能視圖比例調(diào)整流程如圖3所示。判斷所用算法是否滿足最大迭代次數(shù)或適應(yīng)值閾值來進(jìn)行繼續(xù)或終止的操作,進(jìn)而得到最優(yōu)解,最后通過調(diào)用ScaleRatio函數(shù)設(shè)置計算得來的最優(yōu)視圖比例。

圖3 視圖比例調(diào)整流程

2.2.2 尺寸智能標(biāo)注

由于SolidWorks軟件是借助建立好的三維模型投影生成工程圖,可以先通過調(diào)用AddDimension2函數(shù)在零件模板的對應(yīng)模型特征上標(biāo)注相應(yīng)尺寸,設(shè)置選項(xiàng)“為工程圖標(biāo)注”,并合理設(shè)置尺寸標(biāo)注的位置參數(shù)。尺寸標(biāo)注完成后,系統(tǒng)通過在工程圖中識別對應(yīng)特征,借助InsertModelAnnotations3函數(shù)自動將模型尺寸從零件中插入到工程視圖中的相應(yīng)位置,此方法很好地規(guī)避了尺寸不隨型和尺寸導(dǎo)入凌亂的問題,從而得到正確的工程圖紙。

2.2.3 注釋的優(yōu)化調(diào)整

模型完成建模后,在工程圖中標(biāo)注符合企業(yè)圖紙標(biāo)準(zhǔn)的注釋是非常必要的。注釋主要是對技術(shù)要求、焊接符號等進(jìn)行注解說明。目前對注釋位置調(diào)整主要是先利用DAT文件保存工程圖模板中的注釋信息,再將這些信息進(jìn)行計算,提取出注釋的相對位置信息,最后將注釋對應(yīng)在合理的位置上。但該操作較為復(fù)雜且易出錯,因此,通過標(biāo)注約束元的方法將注釋與零件的邊線添加約束,使其位置相對于零件邊線保持固定不變。

具體操作是在一個新建圖層中添加草圖點(diǎn),并使其完全約束,再在其附近添加注釋,設(shè)置相關(guān)屬性,添加兩者之間的約束即可。對于焊接符號的約束元,則是由箭頭所指的零件邊線,當(dāng)焊接符號指向零件邊線時,約束完全定位,從而達(dá)到注釋位置不會隨模型變化而改變的效果。

3 實(shí) 例

以橋梁墩柱的圓墩鋼模板為例,具體闡述零件實(shí)現(xiàn)參數(shù)化建模與自動出圖的全過程。圓墩鋼模板的三維模型(初始化尺寸)如圖4所示。

圖4 圓墩鋼模板三維模型

為方便程序更好地控制零件對應(yīng)的尺寸參數(shù),通過軟件自帶的方程式查看并編著需要修改的尺寸參數(shù)對象的名稱,如“圓墩半徑@草圖1”,以便后面查詢與修改。在進(jìn)行二次開發(fā)前,應(yīng)確保SolidWorks已經(jīng)與Visual Studio 2010完成環(huán)境的搭建操作。首先,在項(xiàng)目中創(chuàng)建一個非模態(tài)對話框,以便用戶可以在當(dāng)前對話框時與其他窗口之間進(jìn)行切換;然后編輯對話框中的內(nèi)容,根據(jù)用戶提供的模型尺寸參數(shù),向?qū)υ捒蛱砑酉鄳?yīng)的控件,并添加對應(yīng)的字符串變量。對話框界面效果如圖5所示。

最后添加事件響應(yīng)函數(shù)按鈕,將按鈕名稱改為“生成三維模型”,并在該函數(shù)內(nèi)部添加控制尺寸變量的代碼。代碼編寫結(jié)束后,用戶編輯框中輸入相關(guān)參數(shù)值,點(diǎn)擊“生成三維模型”按鈕即可完成對圓墩鋼模板的三維參數(shù)化建模。實(shí)現(xiàn)修改尺寸零件參數(shù)化建模功能的部分代碼如下。

CComBSTR fileName(-T("C:\***\圓墩參數(shù)化模板.SLDPRT"));//定義文件名

iSwApp-dlg->OpenDoc6(filename,swDocPART,Options,NULL,&Errors,&Warnings,&swDoc)//打開文件

CComBSTR Name(-T("默認(rèn)"));//定義配置名

long paramCount=25;//定義修改尺寸參數(shù)個數(shù)

BSTR *paramNames=new BSTR[25];//初始化

BSTR *paramValues=new BSTR[25];//初始化

CString a0="圓墩直徑@草圖1";//定義參數(shù)名

CString a1="圓墩高度@拉伸-薄壁1";//定義參數(shù)名

pConfigurationManger->ISetConfigurationPara-ms(Name,paramCount,paramNames,paramValues,&retval);//設(shè)置參數(shù)值

m-iModelDoc->ViewZoomtofit();//調(diào)整視圖全屏顯示

pConfigurationManger.Release();//釋放配置器

swDoc=NULL;//釋放ModelDoc對象

圖5 對話框設(shè)計效果圖

零件修改尺寸參數(shù)的程序搭建完成后,只需對零件中隨參數(shù)變化而改變的特征添加關(guān)鍵代碼即可控制零件特征合理排布及正確顯示。對該類模型特征數(shù)量或距離定義參數(shù)名,形如特征數(shù)量定義“int num0=0”、特征距離定義“double numM=0.0”,以便用代碼設(shè)置條件加以控制特征的生成。特征智能排布設(shè)計部分關(guān)鍵代碼如下:

//判斷肋板個數(shù)及識別肋板奇偶數(shù)代碼

int cnt;//肋板個數(shù)

intk=(int)(h-2 *t2);//h為圓墩高度t2為圓法蘭厚度

if (k% 400 !=0)//肋板間距定為400 mm

{

cnt=(int)(k/400.0);

}else{

cnt=k/400-1;

}

if (cnt % 2==0)//如果緯肋個數(shù)為偶數(shù)

{//壓縮奇數(shù)肋,解壓偶數(shù)肋

swDocExt->SelectByID2("旋轉(zhuǎn)4",L"BODYFEATURE",0.0,0.0,0.0,VARIANT-FA-LSE,0,NULL,swSelectOptionDefault,&bRetval);//選中奇數(shù)肋特征“旋轉(zhuǎn)4”

swDoc->EditSuppress2(&bRetval);//對特征“旋轉(zhuǎn)4”壓縮

//壓縮偶數(shù)三角肋,解壓奇數(shù)三角肋

}

//特征防干涉部分代碼(以陣列孔為例,陣列孔數(shù)量參數(shù)名為num3)

If (h/2 000.0-0.1-0.2*(num3-1)≤0.05)

{

num3-=1;//陣列孔與尾孔發(fā)生干涉減少1個陣列孔

}

點(diǎn)擊“生成工程圖”按鈕,系統(tǒng)自動調(diào)取工程圖模板,通過智能識別交互界面的模型參數(shù),完成自動更新,模板圖紙自動完成工程圖出圖,圖紙效果如圖6所示。

圖6 工程圖出圖效果

自動出圖及優(yōu)化部分代碼如下。

//打開工程圖關(guān)鍵代碼

CComBSTR fileName(-T("C:\***\圓墩參數(shù)化模板.SLDDRW"));//定義文件名

iSwApp-dlg->OpenDoc6(fileName,3,0,L"",&Errors,&Warnings,&m-iModelDoc);//打開工程圖模板

//調(diào)整視圖比例幾個關(guān)鍵代碼

pDraw->ActivateView (-T("工程圖視圖1"),&retval);//激活工程視圖

pDraw->get-IActiveDrawingView(&pView);//獲取工程視圖

pView->IGetOutline(outline);//獲取包絡(luò)線框數(shù)組

pView->get-IScaleRatio(scal);//獲取當(dāng)前圖紙比例

pView->put-IScaleRatio(scal);//設(shè)置圖紙比例

4 結(jié) 論

本文介紹了一種以Visual studio 2010為開發(fā)環(huán)境、C++為開發(fā)語言、SolidWorks 2019為特征建模軟件,針對工程橋梁墩柱鋼模板設(shè)計的參數(shù)化建模及出圖方法。通過對橋梁圓墩鋼模板實(shí)例的具體演示,詳細(xì)闡述了修改參數(shù)實(shí)現(xiàn)特征隨型參數(shù)化建模與自動出圖的方法及關(guān)鍵技術(shù)。通過該方法設(shè)計的參數(shù)化建模平臺能夠?qū)崿F(xiàn)根據(jù)用戶輸入自動更新模型參數(shù)、智能排布,能夠自動生成二維工程圖紙,使得同類型鋼模板的設(shè)計難度降低,大大縮短設(shè)計周期,提高了系列化三維橋梁墩柱鋼模板的設(shè)計效率,具有一定的研究與借鑒意義。

猜你喜歡
鋼模板工程圖視圖
仰斜式擋墻單側(cè)鋼模板安裝工藝探究
建筑工程中的玻璃鋼模板施工研究
四合一鉛筆刀設(shè)計
超高大截面矩形獨(dú)立柱組合鋼模的應(yīng)用
面向工程認(rèn)證的機(jī)制專業(yè)工程圖學(xué)(一)課程教學(xué)探索
MASTERCAM工程圖出圖功能研究
鋼底模在沉箱預(yù)制中的應(yīng)用
5.3 視圖與投影
視圖
Y—20重型運(yùn)輸機(jī)多視圖
沛县| 忻州市| 普兰县| 北票市| 都安| 商城县| 汤原县| 惠水县| 和顺县| 浮梁县| 新兴县| 金昌市| 汉阴县| 涞源县| 宜兴市| 永修县| 铜梁县| 天峨县| 昂仁县| 蓝田县| 双桥区| 武陟县| 安泽县| 澜沧| 改则县| 淄博市| 容城县| 三台县| 沭阳县| 工布江达县| 万宁市| 石柱| 长宁区| 楚雄市| 宁城县| 明溪县| 余庆县| 特克斯县| 沙田区| 通海县| 荥经县|