亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于達索平臺CAA架構(gòu)的橋梁基礎(chǔ)BIM建模及審核工具開發(fā)

        2021-01-25 01:16:50齊成龍
        結(jié)構(gòu)工程師 2020年6期
        關(guān)鍵詞:特征用戶模型

        齊成龍

        (中國鐵路設(shè)計集團有限公司,天津300308)

        0 引 言

        目前基于達索軟件的BIM 設(shè)計中,大多借助EKL 腳本語言和action 功能,采用“骨架-模板”的建模思想[1]。這種方法雖然能夠?qū)崿F(xiàn)批量建模,但是實例化結(jié)果包含建模過程,導致效率低下,同時由于建模過程向所有使用者開放,也不利于傳遞過程中的數(shù)據(jù)穩(wěn)定[2]。

        本文介紹一種不同于傳統(tǒng)方法的全新橋梁基礎(chǔ)批量建模和審核工具,該工具使用達索∕組件應(yīng)用架構(gòu)(CAA)二次開發(fā)語言實現(xiàn),嵌入到達索軟件內(nèi)部,通過生成承臺和樁特征避免了工程模板的復(fù)雜內(nèi)部邏輯結(jié)構(gòu),提高了效率,同時,該工具還具備批量修改模型IFC 屬性值及輸出審核結(jié)果的功能[3]。

        1 程序交互界面及操作流程設(shè)計

        根據(jù)橋梁基礎(chǔ)設(shè)計過程的需要,設(shè)計出如圖1 所示的用戶交互界面。該人機交互的基礎(chǔ)設(shè)計工具具備以下幾個特點:①設(shè)計功能嵌入到達索裝配設(shè)計(Assembly Design)模塊中;②設(shè)計參數(shù)采用表格輸入的手段[4];③程序在批量創(chuàng)建基礎(chǔ)模型的同時,自動為IFC 屬性賦值;④承臺和樁分別作為用戶定義特征組合成最終的基礎(chǔ)模型,用戶可手動修改這些特征結(jié)果;⑤用戶手動修改承臺和樁特征后,程序可根據(jù)最終特征結(jié)果輸出數(shù)據(jù)表格供模型審核所用,并更新IFC屬性值。

        圖1 全橋基礎(chǔ)設(shè)計用戶交互界面Fig.1 User interface of whole bridge foundation design

        使用此工具進行橋梁基礎(chǔ)BIM設(shè)計及審核時應(yīng)遵循以下幾個步驟。

        (1)設(shè)計準備工作

        填充基礎(chǔ)信息表格,該表格存儲了承臺和樁在結(jié)構(gòu)尺寸、空間位置及混凝土等級方面的參數(shù)。然后,使用達索EKL 腳本語言生成基礎(chǔ)骨架坐標系。

        (2)選擇用于存儲基礎(chǔ)骨架的幾何圖形集

        選擇幾何圖形集后,程序會自動識別并讀入存儲在幾何圖形集內(nèi)的骨架坐標系和基礎(chǔ)信息表格。

        (3)選擇用于存儲各基礎(chǔ)零件的父級根節(jié)點

        生成的橋墩基礎(chǔ)零件將附屬在該節(jié)點下。

        (4)生成全橋基礎(chǔ)模型

        上述所有步驟均完成后,對話框OK 按鈕即被激活,點擊此按鈕后生成全橋基礎(chǔ)模型,如圖2所示。

        圖2 全橋基礎(chǔ)BIM模型Fig.2 Foundation BIM model of the whole bridge

        (5)修改基礎(chǔ)模型

        雙擊承臺或樁基模型后,打開特征修改用戶交互窗口,其中,樁特征修改界面如圖3 所示。在承臺特征交互窗口,用戶可以增加、刪除、修改一層承臺的數(shù)據(jù),并修改混凝土等級;在樁基特征交互窗口,用戶可增加或刪除某根樁數(shù)據(jù),并修改混凝土等級以及樁長。

        (6)基礎(chǔ)屬性批量修改及基礎(chǔ)模型審核數(shù)據(jù)輸出

        承臺和樁的部分IFC屬性如圖4所示,這兩種特征修改后,零件屬性值無法隨之自動更新,為實現(xiàn)這種更新功能,可在圖1 所示的用戶界面點擊RefreshAttributes 按鈕,所有零件的IFC 屬性值根據(jù)最新的特征自動更新。

        圖3 樁特征修改界面Fig.3 Pile feature modification UI

        圖4 承臺和樁基零件IFC屬性Fig.4 IFC attributes for platform and pile parts

        同時,程序可以輸出最新的基礎(chǔ)數(shù)據(jù)表格,其中存儲了尺寸、位置、混凝土等級,可用于BIM 建模結(jié)果審核。

        2 實現(xiàn)語言及模塊設(shè)計

        2.1 模塊設(shè)計

        將該設(shè)計工具劃分為3 個模塊以實現(xiàn)其功能,分別為界面模塊(UI Module)、特征模塊(Feature Module)和幾何拓撲模塊(Topological Module),如圖5 所示。三者的關(guān)系是:幾何拓撲模塊創(chuàng)建承臺和樁的幾何拓撲形狀;特征模塊生成承臺和樁特征[5],特征的三維形狀通過幾何拓撲模塊獲?。唤缑婺K用于建模工具條的實現(xiàn),基礎(chǔ)零件批量生成,以及特征的批量實例化和屬性修改、審核數(shù)據(jù)輸出等功能。以下將從底層開始依次介紹各模塊的開發(fā)流程。

        2.2 幾何拓撲模塊

        2.2.1 單層承臺

        圖5 模塊設(shè)計Fig.5 Module design

        每一個基礎(chǔ)的承臺可分為多層,其定位坐標系位于最上層承臺頂部。每一層承臺是一個立方體,如圖6 左所示,承臺頂面到定位坐標系原點有一個向下的偏移值Depth,單層承臺拓撲體創(chuàng)建流程如下:

        使用CATMathVector 類的GetDirections()和GetOrigin()方法獲取定位坐標系的原點和方向向量[6],通過原點和方向向量之間的運算,并結(jié)合尺寸參數(shù),創(chuàng)建iPt1-iPt4 四個點,如圖6 右所示,并在這四個點的生成過程中考慮每層承臺的豎向偏移值Depth。

        圖6 單層承臺圖示Fig.6 Single-layer platform sketch

        有了iPt1-iPt4 四個點,調(diào)用了如下CAA 內(nèi)部函數(shù):

        CATICGMSolidCuboid * CATCGMCreateSolidCuboid(CATGeoFactory* iFactory, CATTopData* iData, const CAT?MathPoint& iPt1, const CATMathPoint& iPt2, const CAT?MathPoint&iPt3,const CATMathPoint&iPt4);

        這個函數(shù)以圖6 右的iPt1-iPt4 四個點為輸入?yún)?shù),生成CATICGMSolidCuboid 類型的拓撲運算器(Topological Operator),通過此拓撲運算器創(chuàng)建立方體形狀的空間拓撲體,從而完成單層承臺幾何拓撲的生成。

        2.2.2 多層承臺組裝

        上一節(jié)介紹了如何創(chuàng)建考慮豎向偏移的單層承臺,本節(jié)介紹如何組裝這些單層承臺。從上到下各單層承臺的數(shù)據(jù)依次存儲在一個列表(list)當中,組裝多層承臺時,在這個列表范圍內(nèi)循環(huán),流程如圖7所示。

        圖7 組裝多層承臺的流程Fig.7 Assembly process for multi-layer platform

        對于第一層承臺,由于承臺頂面與定位坐標系重合,令豎向偏移值Depth=0,調(diào)用單層承臺創(chuàng)建函數(shù),生成CATBody 類型的幾何拓撲,將Depth值與當前承臺高度相加獲取下一層承臺的豎向偏移值。如果此時處理的承臺為最后一個,當前幾何拓撲即為返回值,否則,繼續(xù)創(chuàng)建下一層承臺的幾何拓撲,并與上一步獲取的拓撲體布爾合并作為新的拓撲體。

        循環(huán)操作,最終獲取合并后的各層承臺拓撲結(jié)果。

        2.2.3 多根樁組裝

        單根樁數(shù)據(jù)存儲在一個名為PileStruct 的結(jié)構(gòu)體中,該結(jié)構(gòu)體包含樁的平面定位坐標值和樁身直徑、樁長等信息。

        多根樁組裝函數(shù)聲明格式如下:

        CATBody_var CreatePileBody(CATGeoFactory_var isp?GeoFac, CATTopData* iData, CATListPV iPileStructList,CATMathAxis iMathAxisTop)();

        這個函數(shù)的輸入?yún)?shù)iPileStructList 是一個PileStruct 類型的列表(list),其中存儲了當前基礎(chǔ)下所有樁的數(shù)據(jù),每個列表元素代表一根樁;輸入?yún)?shù)iMathAxisTop 表示承臺底部定位坐標系,PileStruct 結(jié)構(gòu)體中存儲的樁平面定位坐標值即是相對于此坐標系而言的。

        函數(shù)執(zhí)行流程如下:

        在列表范圍內(nèi)循環(huán),對于當前列表元素,使用CATMathVector 類的GetDirections()和GetOrigin()方法獲取定位坐標系的原點和方向向量,通過原點和方向向量之間的運算,并結(jié)合樁平面定位坐標值及樁長,創(chuàng)建當前樁的上、下部頂點。有了單根樁的上下部頂點及樁身直徑,調(diào)用如下CAA內(nèi)部函數(shù)創(chuàng)建代表單根樁的圓柱形拓撲體:

        CATICGMSolidCylinder*CATCGMCreateSolidCylinder(CATGeoFactory*iFactory,CATTopData*iData,const CAT?MathPoint& iFirstPointOnAxis, const CATMathPoint& iSec?ondPointOnAxis,double iRadius);

        在循環(huán)過程中,對代表每根樁的圓柱體執(zhí)行布爾合并運算,循環(huán)結(jié)束后完成樁的建模。

        2.3 特征模塊

        2.3.1 特征概述

        在本程序當中,為了實現(xiàn)承臺和樁基的快速批量建模,需要將二者封裝為特征,從而保證這兩種模型的輕量化和封裝性。在達索CAA 架構(gòu)中,特征作為一種面向?qū)ο蟮哪P停?],有兩層含義:

        (1)數(shù)據(jù)模型

        特征作為一種對象,它的數(shù)據(jù)是以屬性的方式存儲的,特征的屬性分為兩類,數(shù)值類型的屬性,例如整型、浮點型數(shù)值;特征類型的屬性,也就是說這個屬性本身也是一種特征。例如對于直線特征,它的兩個端點可以作為其屬性,端點本身也是特征。

        (2)行為模型

        每一種特征對象都包含多種與其關(guān)聯(lián)的行為,CAA 當中使用接口來描述對象的行為。例如,在達索中創(chuàng)建一個線的特征Line3D,這個特征具備在三維空間中畫線的行為,因此,Line3D特征執(zhí)行CATILine 接口,其中包含的函數(shù)Draw()具備畫線功能。

        2.3.2 模塊架構(gòu)

        為了定義承臺和樁這兩個特征,需要擴展三個對象:Footing,Pile,CATPrtCont。特征模塊的架構(gòu)如圖8所示。

        Footing 表示承臺對象,對其擴展類型接口BridgeIFooting,這個接口包含一系列Get 和Set 函數(shù),這些函數(shù)的作用是獲取承臺對象的屬性值或者給承臺對象屬性賦值。同時,對承臺對象擴展CATIFmFeatureBehaviorCustomization 接口,此接口包含Build()函數(shù),其作用是,當用戶對承臺對象執(zhí)行更新操作時,調(diào)用幾何拓撲模塊,生成幾何拓撲體,從而實現(xiàn)幾何拓撲形狀與特征的關(guān)聯(lián),Build()函數(shù)在運行時需要引用類型接口的Get系列函數(shù),從而獲取特征的屬性值,作為創(chuàng)建幾何拓撲體的輸入?yún)?shù)。與承臺類似,Pile 表示樁對象,對其擴展 BridgeIPile 類型接口以及CATIFmFeatureBehaviorCustomization 接口。

        圖8 特征模塊架構(gòu)Fig.8 Feature module framework

        CATPrtCont 是一個特征容器(Container)對象,對CATPrtCont 對象擴展兩個工廠接口BridgeIFootingFactory 和BridgeIPileFactory,這 兩個接口分別包含CreateFooting()和CreatePile()函數(shù),分別用于實例化承臺和樁特征。這兩個函數(shù)在執(zhí)行過程中需要引用各自類型接口的Set 系列函數(shù)從而為特征屬性賦值。

        2.4 界面模塊

        界面模塊的作用是實現(xiàn)以下功能:

        將程序的各命令以菜單按鈕的形式保存在工具條當中,并創(chuàng)建用戶交互窗口;創(chuàng)建承臺及樁特征的生成、修改命令;實現(xiàn)基礎(chǔ)批量建模、模型結(jié)果批量審核及IFC屬性修改功能。

        2.4.1 命令按鈕及用戶交互窗口

        菜單按鈕采用Add-in 的方式添加,基礎(chǔ)裝配功能和特征生成功能分別嵌入到裝配設(shè)計(Assembly Design)模塊和零件設(shè)計(Part Design)模塊中,因此,二者分別實現(xiàn)CATIAssyWork Bench Addin和CATIPrtCfg Addin接口。

        派生 CATMmrPanelStateCmd 類 ,重載GiveMyPanel()方法,將派生類與對話窗口Dialog文件關(guān)聯(lián)。重載BuildGraph()方法,通過這種方式實現(xiàn)用戶交互。

        2.4.2 特征的創(chuàng)建和修改

        CATMmrPanelStateCmd 類 的OkAction()方法,表示用戶點擊OK 按鈕時系統(tǒng)需要執(zhí)行的操作。重載OkAction()方法,從而實現(xiàn)了圖3 命令窗口所示的創(chuàng)建特征功能。

        圖9所示為特征的創(chuàng)建和修改流程。

        圖9 創(chuàng)建及修改特征流程Fig.9 Work flow for feature creation and modification

        在創(chuàng)建模式下,用戶點擊工具欄按鈕,激活CATMmrPanelStateCmd 派生類,打開用戶交互窗口,用戶在窗口中輸入特征屬性值,點擊OK 按鈕以后,程序調(diào)用特征的工廠接口,創(chuàng)建特征結(jié)果并更新拓撲形狀。

        在修改模式下,當用戶雙擊某已經(jīng)存在的特征,即激活CATIEdit接口的Activate()方法,此方法調(diào)用CATMmrPanelStateCmd 派生類的構(gòu)造函數(shù),啟動特征修改模式,在此模式下,程序提取當前特征的屬性值并顯示在命令交互窗口中供用戶修改,點擊OK按鈕后調(diào)用特征類型接口的Set系列函數(shù)更新特征屬性,完成特征修改及幾何拓撲更新。

        2.4.3 基礎(chǔ)批量建模、模型結(jié)果批量審核及IFC屬性修改

        這三項功能在同一個用戶交互窗口中實現(xiàn)。

        批量建模流程為,通過CATICkeSheet 接口獲取結(jié)構(gòu)樹中設(shè)計表格的數(shù)據(jù),將其轉(zhuǎn)化為承臺和樁結(jié)構(gòu)體數(shù)據(jù)列表(List)。在此列表范圍內(nèi)循環(huán),由于目前達索CAA暫不支持擴展鐵路IFC類型產(chǎn)品的生成功能,因此,對于每一個基礎(chǔ),使用CATAdpDuplicator 類對特定IFC 類型的產(chǎn)品進行復(fù)制,生成基礎(chǔ)、承臺、樁的產(chǎn)品(Product)節(jié)點,通過CATIPLMProducts 接口的AddProduct()方法完成產(chǎn)品的結(jié)構(gòu)樹層級關(guān)系組織[8]。

        借助特征模塊的工廠接口,在產(chǎn)品節(jié)點下?lián)饺氤信_和樁的特征,特征屬性從結(jié)構(gòu)體數(shù)據(jù)列表中獲取。使用CATCkeObjectAttrWriteServices 類的一系列屬性賦值方法,給產(chǎn)品節(jié)點的IFC 屬性賦值,屬性值可以從數(shù)據(jù)列表中計算求得,也可以通過類型接口的Get系列函數(shù)從特征結(jié)果中獲取。

        基礎(chǔ)批量建模結(jié)果的結(jié)構(gòu)樹如圖3 所示,模型結(jié)果的批量審核及修改功能都需要遍歷這種樹形結(jié)構(gòu),從而獲取所有模型并對這些模型進一步操作,流程如圖10 所示。CATIPLMNavReference接口的ListChildren()方法可用于獲取結(jié)構(gòu)樹中某個產(chǎn)品(Product)的所有子節(jié)點,多次遞歸使用該方法從而實現(xiàn)對結(jié)構(gòu)樹的遍歷。對于遍歷出來的每一個零件(Part)根節(jié)點,使用CATIPart Request 和CATIMmiUseBodyContent 接 口 依 次 獲取零件中的所有的Body,以及每個Body中的所有特征,將這些特征與BridgeIFooting,BridgeIPile 類型接口進行比較,從而識別獲取的特征。

        圖10 模型結(jié)構(gòu)樹遍歷流程Fig.10 Model tree structure navigation process

        使用類型接口Get 系列函數(shù)獲取特征的最新屬性值。對于遍歷出來的結(jié)構(gòu)樹中所有產(chǎn)品(Product)節(jié)點,通 過CATCkeObjectAttrWrite Services 類的一系列方法,使用這些屬性值為IFC屬性賦值,從而實現(xiàn)產(chǎn)品IFC 屬性值的批量修改;使用這些特征屬性值向數(shù)據(jù)表格寫出數(shù)據(jù),從而實現(xiàn)批量輸出模型審核數(shù)據(jù)。

        3 結(jié) 語

        針對既有的以工程模板和action 功能為手段的橋梁基礎(chǔ)BIM 建模方法的局限性,本文介紹了一種使用達索∕CAA 架構(gòu)開發(fā)的橋梁基礎(chǔ)BIM 批量建模及審核工具。

        使用該工具進行建模時,程序讀取設(shè)計表格中的基礎(chǔ)尺寸及其他數(shù)據(jù),批量創(chuàng)建符合IFC 類型的產(chǎn)品(Product)節(jié)點,向其中插入樁及承臺特征,并對產(chǎn)品的IFC 屬性賦值。用戶可單獨修改特征結(jié)果,并使用該工具根據(jù)最終的特征結(jié)果批量修改產(chǎn)品IFC 屬性值,還可以使用審核工具,以excel 表格的形式輸出總結(jié)點下所有基礎(chǔ)的數(shù)據(jù),為BIM建模結(jié)果審核提供便利。

        從開發(fā)架構(gòu)的角度上講,該設(shè)計和審核工具通過界面模塊、特征模塊、幾何拓撲模塊三部分實現(xiàn)其功能。幾何拓撲模塊的作用是生成承臺和樁的CATBody 類型拓撲結(jié)果;特征模塊將樁和承臺各自封裝為一種面向?qū)ο蟮哪P?,并調(diào)用幾何拓撲模塊結(jié)果實現(xiàn)特征的三維顯示;界面模塊通過調(diào)用特征模塊實現(xiàn)批量建模及模型的審核和IFC屬性修改。

        猜你喜歡
        特征用戶模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        抓住特征巧觀察
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        3D打印中的模型分割與打包
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        国产av国片精品jk制服| 成av人片一区二区三区久久| 免费观看一区二区三区视频| 色欲一区二区三区精品a片| 4hu四虎永久在线观看| 91福利视频免费| 少妇被日到高潮的视频| 亚洲日本精品国产一区二区三区 | 美女露屁股无内裤视频| 精品国产一区二区三区性色 | 国产精品亚洲一区二区麻豆| 国产成人无码精品久久久露脸| 成人做爰高潮尖叫声免费观看| 国产真实乱对白在线观看| 亚洲一本二区偷拍精品| 国产极品粉嫩福利姬萌白酱| 8ⅹ8x擦拨擦拨成人免费视频| 中文字幕亚洲精品第1页| 综合久久加勒比天然素人| 中文区中文字幕免费看| av蓝导航精品导航| 国产日韩三级| 一道之本加勒比热东京| 99精品国产在热久久无码| 国产精品原创巨作AV女教师 | 国产91极品身材白皙| 好紧好爽免费午夜视频| 熟妇五十路六十路息与子| 国产好片日本一区二区三区四区| 91精品国自产拍老熟女露脸| 国产va免费精品高清在线观看| 成年人黄视频大全| 在线视频一区二区三区中文字幕| 真实夫妻露脸自拍视频在线播放| 国产精品va无码一区二区| 手机色在线| 美女免费观看一区二区三区| 成 人 免费 在线电影| 日韩我不卡| 亚洲国产精品嫩草影院久久av| 色多多性虎精品无码av|