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

?

Auto CAD Civil 3D中自定義部件的實現(xiàn)方法

2015-02-11 17:56:20何守旺
鐵路技術(shù)創(chuàng)新 2015年6期
關(guān)鍵詞:翼墻代碼部件

■ 何守旺

Auto CAD Civil 3D中自定義部件的實現(xiàn)方法

■ 何守旺

對Auto CAD Civil 3D中自定義部件技術(shù)進(jìn)行分析,剖析其實現(xiàn)實質(zhì),提出.NET語言設(shè)計自定義部件的實施步驟,并結(jié)合鐵路隧道洞口位置選擇軟件中的自定義部件的具體實踐驗證該方法的可行性。

Auto CAD Civil 3D;自定義部件;幾何單元;邏輯目標(biāo);隧道洞口

0 引言

在Auto CAD Civil 3D中,部件是道路設(shè)計的基本構(gòu)造塊,一個部件就是一個A u t o C A D圖形對象(AECCSubassembly),是用于定義道路橫斷面、構(gòu)建道路等三維模型的重要組成部分。此處的道路是廣義道路,實際上指一個具有路線水平幾何特性、縱斷面垂直幾何特性及橫斷面幾何特性的三維帶狀模型,不僅可以是鐵路、公路、城市道路,還可以是地鐵、橋梁、隧道、擋土墻、水渠、大壩、管線、護(hù)坡、綠化帶等。Auto CAD Civil 3D通過工具選項板和工具目錄提供了大量預(yù)配置部件(如車道、路肩、中間帶和邊坡),這些部件都是由一些點、連接和造型進(jìn)行定義,基本能滿足使用要求,但在實際工程項目應(yīng)用中,根據(jù)項目特點和要求還需自定義部件。

在Auto CAD Civil 3D中,可以通過以下3種方式實現(xiàn)自定義部件:(1)從多段線創(chuàng)建自定義部件;(2)使用部件編輯器創(chuàng)建部件;(3)使用.NET語言設(shè)計部件。一般對于形狀固定且不需指定邏輯目標(biāo)的部件,使用第一種方式就可以很快實現(xiàn),如渠道、路緣石等;而對于形狀動態(tài)變化(需參數(shù)驅(qū)動)的部件,需要后2種方式來設(shè)計。部件編輯器(Autodesk Subassembly Composer)是通過可視化的軟件界面和圖形交互方式創(chuàng)建部件,但此方式的邏輯判斷中不支持循環(huán)條件,因此經(jīng)常需要使用.NET語言設(shè)計部件。

1 自定義部件技術(shù)分析

1.1 部件幾何單元和代碼

部件有3種幾何單元:點(Point)、連接(Link)、造型(Shape),它們分別形成部件的頂點、點之間的一條直線段、連接圍成的閉合橫斷面區(qū)域?;谶@3種幾何單元來生成AutoCAD Civil 3D道路模型的線、曲面和結(jié)構(gòu)體,即沿著中心線進(jìn)行縱向延伸,“點”形成縱向要素線,“連接”形成縱向帶狀面,“造型”形成縱向空間帶,且每個部件可由任意多個點、連接和造型構(gòu)成。

需要為幾何單元指定代碼(即創(chuàng)建有意義的文字名稱),用來標(biāo)識幾何單元的工程含義,每個幾何單元可以沒有代碼,也可以有任意多個代碼(多個代碼之間用逗號分隔)。其中,點代碼是要素代碼,指定構(gòu)成部件連接的端點;連接代碼是為構(gòu)成道路部件的每個連接指定的要素代碼;造型代碼主要用于定義不同材質(zhì)的填充圖案及為材質(zhì)體積表格提取面積。在構(gòu)建道路模型時,沿著線路方向,相同代碼的幾何單元被連接成為連續(xù)的構(gòu)造(沒有代碼的幾何單元不會被連接),點代碼、連接代碼還直接影響到橫斷面的標(biāo)注,因此必須在創(chuàng)建部件前仔細(xì)設(shè)計代碼方案。

1.2 邏輯目標(biāo)

邏輯目標(biāo)是某些部件的形體關(guān)聯(lián)到道路外部的對象,邏輯目標(biāo)分為曲面、寬度或偏移(水平方向),坡度或高度(豎直方向)。對于曲面邏輯目標(biāo),僅可使用曲面對象定義該曲面,如道路邊坡一定要和曲面相交,那么地形曲面就是邊坡部件的邏輯目標(biāo)。對于水平方向的寬度邏輯目標(biāo),可使用路線、多段線、要素線或測量地物對象定義寬度或偏移。類似地,對于垂直方向的高度邏輯目標(biāo),可使用縱斷面、三維多段線、要素線或測量地物對象來定義。將這3種邏輯目標(biāo)組合使用就可以進(jìn)行很多復(fù)雜的設(shè)計,如在翼墻設(shè)計中需要考慮翼墻與端墻的切合,為此要聯(lián)合應(yīng)用高度邏輯目標(biāo)和寬度邏輯目標(biāo)。為使部件具有較高的靈活性,并能根據(jù)外部環(huán)境的不同而自動變化,設(shè)計時通常使用虛擬目標(biāo),只有在建立道路模型時,才需要為每個部件指定要關(guān)聯(lián)的外部對象。

1.3 部件程序模塊

在自定義部件的.NET項目中,需要添加C3DStockSubassemblies.dll程序集引用。在這個工程項目中,含有3個關(guān)鍵文件:(1)SATemplate.vb文件。定義了SATemplate類,所有自定義部件都必須定義一個該類的派生類,并在其模塊中實現(xiàn)若干個標(biāo)準(zhǔn)函數(shù),SATemplate提供了4個需要重載的函數(shù),GetLogicalNamesImplement函數(shù)定義運(yùn)行時邏輯指定列表,該列表可以在建模模式中創(chuàng)建;GetInputParametersImplement函數(shù)定義必須為部件定義的輸入?yún)?shù)列表;GetOutputParametersImplement函數(shù)定義由部件生成的輸出參數(shù)列表;DrawImplement讀取用戶定義的輸入?yún)?shù)和邏輯指定,調(diào)整部件造型,然后在已有裝配中增加點、連接和造型。上列函數(shù)都需要傳入CorridorState類型的對象,該對象是自定義部件和將要連接裝配的點、連線和造型集合的主要接口,提供許多特性和方法,包括當(dāng)前里程、當(dāng)前路線和縱斷面、當(dāng)前偏移和高程、圖層、顏色、直線樣式及線寬。某些特性(如CurrentAlignment特性)本身又提供了多組方法和特性,這些特性還包括若干參數(shù)集合,用于收集布爾、長整形、雙精度、字符串路線、縱斷面、曲面和點等類型參數(shù)。(2)CodesSpecific.vb文件。提供CodeType和AllCodes結(jié)構(gòu),以及全局變量代碼,即帶有填充信息的AllCodes結(jié)構(gòu)實例。(3)Utilities.vb文件。提供一系列輔助功能函數(shù),如錯誤處理、計算部件幾何,以及附著代碼字符和其他任務(wù)等。

1.4 二次開發(fā)程序中對自定義部件的調(diào)用

對自定義部件的管理是以Autodesk工具目錄的形式實現(xiàn),即使用帶有.ATC擴(kuò)展名的XML格式文件定義,定義部件工具目錄的內(nèi)容和組織,描述所有工具目錄及目錄內(nèi)的工具。在基于.NET API對AutoCAD Civil 3D進(jìn)行二次開發(fā)的程序中,對部件的調(diào)用主要以SubassemblyCollection類的3個成員函數(shù)來實現(xiàn):Add函數(shù)實現(xiàn)將多段線實體轉(zhuǎn)換為自定義部件;ImportSubassembly函數(shù)根據(jù)Autodesk工具目錄的.ATC文件及目錄內(nèi)的工具調(diào)用自定義部件;ImportStockSubassembly函數(shù)實現(xiàn)在.NET形狀生成模式下,根據(jù).NET裝配名稱和.NET類名稱調(diào)用自定義部件,對用.NET語言設(shè)計的部件的調(diào)用都用該函數(shù),有時需要結(jié)合SubassemblyGenerator類,實現(xiàn)對部件的直接替換。

2 應(yīng)用開發(fā)流程

以.NET為例,在具體實施過程中,一般按照以下步驟自定義部件:(1)規(guī)劃與分析,對部件幾何造型、應(yīng)用目的及設(shè)計操作中如何使用部件進(jìn)行精心規(guī)劃與分析;(2)創(chuàng)建設(shè)計文檔,主要描述部件的附著方式、參數(shù)、運(yùn)行時邏輯指定、行為、代碼方案等;(3)編程實現(xiàn)。

根據(jù)以上方法和步驟,以翼墻式隧道洞門翼墻為例,在Auto CAD Civil 3D平臺上利用.NET API進(jìn)行鐵路隧道洞口位置選擇軟件自定義部件的定制。

2.1 規(guī)劃與分析

在翼墻式隧道洞門中,翼墻在正面起到抵抗山體縱向推力、增加洞門抗滑及抗傾覆能力的作用,兩側(cè)面保護(hù)路塹邊坡起擋土墻作用,由墻身、頂水溝、基礎(chǔ)組成。設(shè)計中需要考慮翼墻高度、厚度、邊坡、仰坡、胸坡及排水,與其關(guān)聯(lián)對象有路塹邊坡、端墻,隨著翼墻高度變化,考慮增加厚度,且需要考慮與端墻的切合,因此邏輯對象包括頂水溝高度、基礎(chǔ)高度和定位線偏移。最后為了計算材料,需要將其造型分為外露面、墻身、頂水溝、基礎(chǔ)。翼墻裝配見圖1。

2.2 創(chuàng)建設(shè)計文檔

翼墻部件的附著點位于隧道內(nèi)軌頂面與翼墻外側(cè)面交線上。輸入?yún)?shù)主要為翼墻高度和厚度、邊坡比、胸坡比、仰坡比、基底坡度、基礎(chǔ)埋深、頂水溝寬度和深度、外露面厚度、側(cè)水溝深度和寬度。翼墻部件運(yùn)行時邏輯指定見表1。

翼墻部件基于給定的輸入?yún)?shù)值生成翼墻基礎(chǔ)和墻身結(jié)構(gòu)的連接,需要考慮部件行為間的差異,主要是隨著翼墻高度變化,翼墻厚度變化,且需要考慮與端墻的切合。翼墻部件的點、連接和造型示意見圖2、圖3。

2.3 編程實現(xiàn)

第一步:新建項目。在項目類型中選擇Visual C#語言,然后在模板列表中選擇“類庫”項目,最后輸入項目名稱及項目存儲位置,完成新建項目。

第二步:添加引用。添加對acdbmgd.dll、acmgd.dll、accoremgd.dll、AecBaseMgd.dll、AeccDbMgd.dll、C3DStockSubassemblies.dll程序集的引用,并把引用的DLL庫文件的“復(fù)制本地”屬性設(shè)置為“False”。

第三步:項目屬性設(shè)置。在項目屬性頁對話框中,將“應(yīng)用程序”選項卡中的“目標(biāo)框架”設(shè)置為“.NET Framework 4”,將“調(diào)試”選項卡中的“啟動外部程序”設(shè)置為AutoCAD Civil 3D 2014主程序acad.exe的路徑。

第四步:加入命名空間。根據(jù)實現(xiàn)功能要求,加入需要的命名空間。

第五步:實現(xiàn)翼墻類。Wing Wall Subassembly類繼承于SATemplate基礎(chǔ)類,重載Get Logical Names Implement、Get Input Parameters Implement、Draw Implement三個函數(shù),在Draw Implement中,Param Elevation Target Collection、 Param Offset Target Collection、Param Double Collection三個集合實現(xiàn)從對象中獲取關(guān)聯(lián)參數(shù)(圖2中P0與P1點將用這些獲取參數(shù)計算得到),Point Collection、Link Collection、Shape Collection三個集合實現(xiàn)創(chuàng)建部件的點、連接、造型,并為幾何單元定義代碼。

第六步:使用部件。通過安裝自定義部件或直接在項目中通過API調(diào)用來使用部件。

3 結(jié)束語

在AutoCAD Civil 3D的應(yīng)用中,自定義部件是必須掌握的一項技能。探析自定義部件的關(guān)鍵技術(shù),重點分析.NET語言設(shè)計部件的方法,并將該方法應(yīng)用于實際鐵路隧道洞口位置選擇軟件的開發(fā)中,取得了很好效果,但該方法對設(shè)計人員要求較高。在項目的具體應(yīng)用中,根據(jù)具體情況,將自定義部件的3種方式組合應(yīng)用不失為一種較佳選擇。

[1] 任耀.Auto CAD Civil 3D 2013應(yīng)用寶典[M].上海:同濟(jì)大學(xué)出版社,2013.

[2] 秦洪現(xiàn),崔惠嵐,孫劍,等.Autodesk系列產(chǎn)品開發(fā)培訓(xùn)教程[M].北京:化學(xué)工業(yè)出版社,2008.

[3] 曾洪飛,盧擇臨,張帆.Auto CAD VBA&VB.NET開發(fā)基礎(chǔ)與實例教程[M].北京:中國電力出版社,2013.

[4] 何守旺.基于.NET的Auto CAD Civil 3D二次開發(fā)技術(shù)及應(yīng)用[J].鐵路技術(shù)創(chuàng)新,2014(5):42-44.

[5] 張小英,朱海濤.隧道洞口三維設(shè)計系統(tǒng)的應(yīng)用[J].華東公路,2010(5):78-81.

[6] 易平,駱秀萍.土石壩設(shè)計中Auto CAD Civil 3D技術(shù)的應(yīng)用[J].甘肅水利水電技術(shù),2013(11):39-41.

[7] 江寶剛.淺談Autodesk Civil 3D軟件在工程中的應(yīng)用[J].山西建筑,2008(16):364-365.

何守旺:中鐵第一勘察設(shè)計院集團(tuán)有限公司,工程師,陜西 西安,710043

責(zé)任編輯 高紅義

U459.1;TP39

A

1672-061X(2015)06-0084-03

猜你喜歡
翼墻代碼部件
翼墻在水利工程項目中的應(yīng)用與分析
水閘翼墻地基處理設(shè)計研究
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
基于Siemens NX和Sinumerik的銑頭部件再制造
部件拆分與對外漢字部件教學(xué)
基于ANSYS空箱扶壁式高大翼墻動力分析
高烈度地區(qū)設(shè)置少量鋼筋混凝土翼墻對框架結(jié)構(gòu)性能的影響
和林格尔县| 获嘉县| 彩票| 长治县| 新巴尔虎左旗| 瓦房店市| 昭觉县| 龙门县| 吐鲁番市| 天全县| 永清县| 无为县| 荔浦县| 平利县| 隆德县| 白朗县| 普兰店市| 当涂县| 江陵县| 镇平县| 万盛区| 安多县| 于都县| 五莲县| 金溪县| 平泉县| 叙永县| 垦利县| 昌吉市| 扶沟县| 农安县| 陇南市| 金门县| 玉门市| 田阳县| 尼勒克县| 永丰县| 岳阳市| 贡嘎县| 和田市| 萨迦县|