• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    工程三維模型的程序化建模算法研究

    2024-12-31 00:00:00楊林
    現(xiàn)代信息科技 2024年12期
    關(guān)鍵詞:計算機圖形學(xué)

    摘" 要:文章提出了一種工程三維模型自動生成的算法,該算法可以用來開發(fā)建筑信息模型(BIM)自動生成系統(tǒng),從而降低工程設(shè)計資料三維可視化的技術(shù)門檻。首先設(shè)定了算法的假設(shè)前提、介紹了算法中的基本原理和基本操作,然后用函數(shù)式的表達方式給出了算法中基本操作的程序化表達方式。在這個基礎(chǔ)上,用偽代碼給出了工程三維模型自動建模算法的基本步驟,并且用一種DSL語言方案來描述了該算法的過程。最后,用了一個工程實例檢驗了該DSL語言和算法的正確性。

    關(guān)鍵詞:計算機圖形學(xué);三維模型自動化建模;DSL語言;BIM

    中圖分類號:TP312" " 文獻標識碼:A" 文章編號:2096-4706(2024)12-0125-05

    Research on Programmed Modeling Algorithm for Engineering 3D Model

    YANG Lin

    (School of Civil Engineering, Lanzhou Jiaotong University, Lanzhou" 730070, China)

    Abstract: This paper proposes an algorithm of automatic generation of engineering 3D model, which can be used to develop the automatic generation system of Building Information Model (BIM), so as to reduce the technical threshold of 3D visualization of engineering design data. Firstly, it sets the assumptions of the algorithm, introduces the basic principle and basic operation in the algorithm, and then the programmed expression of the basic operation in the algorithm is given by functional expression. On this basis, the basic steps of the automatic modeling algorithm of engineering 3D model are given by pseudo-code, and the process is described by a DSL language scheme. Finally, an engineering example is used to test the correctness of the DSL language and algorithm.

    Keywords: computer graphics; automatic modeling of 3D model; DSL; BIM

    0" 引" 言

    工程設(shè)計的傳統(tǒng)表達方式是二維平面圖紙,其形式簡單但是閱讀具有一定的技術(shù)門檻,因此了很多非工程背景的建設(shè)甲方,以及一些文化程度較低的一線工人,無法看懂圖紙,導(dǎo)致溝通問題頻出。隨著計算機圖形學(xué)理論與技術(shù)的不斷發(fā)展,采用三維模型來表達工程設(shè)計資料成為可能[1]。全部以三維模型的形式表現(xiàn)的設(shè)計資料使得沒有工程背景的普通人也能夠理解工程的構(gòu)造,這種技術(shù)手段被稱為建筑信息模型(Building Information Modeling, BIM)[2]。2000年以后,BIM技術(shù)開始在全球范圍內(nèi)掀起了三維模型取代二維圖紙的熱潮[3]。但是,三維建模雖然比二維圖紙容易閱讀,繪制卻要難得多。目前主流的BIM建模軟件Revit [4]、Bently [5],學(xué)習(xí)周期長,學(xué)習(xí)曲線陡,能夠熟練操作此類軟件的專業(yè)人員相對于市場需求來說非常缺乏[6],所以市場迫切需要開發(fā)出自動化程度更高的工程三維模型建模軟件。

    程序化建模是一種全自動化的三維模型創(chuàng)建方式,它可以將整個建模過程以代碼的方式表示,然后通過執(zhí)行此代碼實現(xiàn)建模過程的自動化。這種建模方式最早出現(xiàn)在游戲開發(fā)領(lǐng)域,用來生成游戲地形。當前,已經(jīng)有研究用此方法來生成工程結(jié)構(gòu)的三維模型[7-10]。本文將提出一種專門用于工程三維建模的算法,此算法可以支持工程三維模型的程序化建模。

    1" 相關(guān)研究綜述

    程序化建模在建筑工程領(lǐng)域中已經(jīng)用于自動化生成三維模型,比如:周在輝等提出了利用CGA形狀描述語言來指定建筑物之間的層次關(guān)系,從而有效地生成大規(guī)模數(shù)字城市三維模型[7];王新征對BIM建模軟件進行了高度參數(shù)化定制,實現(xiàn)腳手架,砌體等自動排布,自動識別構(gòu)件相應(yīng)尺寸及各型號構(gòu)件的三維模型自動生成[8];曹建濤等提出一種Revit+Dynamo+Excel的隧道工程三維模型自動建模解決方案,適用于山嶺隧道標準段和特殊段的三維建模[9];歐陽春生等對Dynamo軟件進行了二次開發(fā),實現(xiàn)了建筑物裝飾工程三維模型的快速生成[10]。此外,在其他工程領(lǐng)域中,三維模型自動化建模技術(shù)也已經(jīng)開始研究和應(yīng)用,比如王榮亮等提出了三維地質(zhì)模型的建模算法與應(yīng)用[11];劉勐提出了利用無人機進行攝影測量從而對露天鐵礦實現(xiàn)自動化建模的技術(shù)[12];譚金娥提出了基于小波分解原理多尺度表示建筑結(jié)構(gòu)線矢量數(shù)據(jù),采用QEM算法生成現(xiàn)澆混凝土結(jié)構(gòu)的三維模型[13]。這些研究是工程三維模型自動化建模的一些探索性嘗試,除了程序化建模的方法,基于掃描技術(shù)的點云三維模型建模技術(shù)也開始被研究和應(yīng)用,比如:孫竹青等提出了基于三維點云技術(shù)的歷史建筑物自動建模算法[14];郭威等提出了使用激光雷達掃描技術(shù)來對變電站的施工過程進行三維建模仿真[15]。

    本文所針對的建模對象、以及所使用的建模方法與它們有著很大的不同,下面是本文提出的工程三維模型自動化建模算法的具體描述。

    2" 工程模型的程序化建模算法描述

    以下是對本文所提出的“工程三維模型自動化建模算法”進行的描述,依次介紹了算法的前提假設(shè)、算法中的基本操作,以及算法步驟的偽代碼描述。

    2.1" 算法的基本假設(shè)

    1)一個土建結(jié)構(gòu)的三維模型存在于一個參考坐標系中。

    2)一個土建結(jié)構(gòu)由若干基本構(gòu)件組成。

    3)除了參考坐標系,每個構(gòu)件有一個屬于自己的自身標系。

    以圖1和圖2中的橋墩為例來說明以上假設(shè)。圖1(a)中,橋墩結(jié)構(gòu)位于參考坐標系O中;圖1(b)中,該橋墩由若干基本構(gòu)件組合而成;圖2(a)中,演示了每個基本構(gòu)件的自身坐標系;圖2(b)演示的是:當每個構(gòu)件的自身坐標系在參考坐標系中處于適當?shù)奈恢脮r,整個橋墩結(jié)構(gòu)被正確地組裝到了一起。

    2.2" 算法中的基本操作

    算法由以下基本操作組合而成。

    2.2.1" 構(gòu)件生成操作

    構(gòu)件生成操作指在參考坐標系中依靠算法生成基本構(gòu)件的幾何形體,生成算法可以采用經(jīng)典的邊界表示法(Boundary representation, B-rep)或構(gòu)造表示法(Constructive Solid Geometry, CSG),但是生成時構(gòu)件應(yīng)該考慮構(gòu)件的自身坐標系在參考坐標系中的位置,使得生成操作程序的代碼的形式最為簡潔、代碼量最小。

    2.2.2nbsp; 構(gòu)件坐標變換操作

    構(gòu)件坐標變換操作指的是構(gòu)件從一個坐標系中,轉(zhuǎn)移到另一個坐標系中,且在新舊坐標系中的相對位置保持不變。例如圖3所示的橋墩以及其墩身,墩身從參考坐標系的原點位置變換到了橋墩的裝配位置。

    2.2.3" 構(gòu)件間傳遞信息操作

    構(gòu)件間傳遞信息操作指的是已經(jīng)裝配到正確位置的構(gòu)件,向下一個即將組裝的構(gòu)件發(fā)出信息,告訴它應(yīng)該被組裝到的正確位置。也就是說,由已經(jīng)裝配就位的構(gòu)件給下一個待安裝的構(gòu)件傳遞定位坐標。例如圖4所示,墩的裝配坐標系由樁基承臺生成,并傳遞給在參考坐標系中生成的墩模型,墩模型由此裝配就位。

    2.3" 程序的基本表達

    以上的基本操作可以以函數(shù)表達式的方式表現(xiàn)出來,這是構(gòu)建自動建模程序的基礎(chǔ)。

    2.3.1" 構(gòu)件生成操作的表達式

    構(gòu)件的生成操作可以由一個函數(shù)式來表示,函數(shù)是的結(jié)構(gòu)如式(1)所示:

    Component_n(parm_n_1, parm_n_2, …)" "(1)

    式中:Component_n表示第n個基本構(gòu)件的名稱;parm_n_k表示第n個基本構(gòu)件的第k個參數(shù);

    2.3.2" 構(gòu)件坐標變換操作的表達式

    構(gòu)件坐標變換操作可以由一個函數(shù)式來表示,函數(shù)是的結(jié)構(gòu)如式(2)所示:

    Translation(Component_n, x_coord_n, y_coord_n, z_coord_n)" "(2)

    式中:Translation表示位移變換命令;Component_n表示第n個基本構(gòu)件;x_coord_n表示第n個基本構(gòu)件應(yīng)該處于的裝配位置的x坐標值,y、z坐標值的表達同此。

    2.3.3" 構(gòu)件間傳遞信息操作的表達式

    構(gòu)件間傳遞信息操作可以由一個函數(shù)式來表示,函數(shù)是的結(jié)構(gòu)如式(3)所示:

    Message(Component_m,Component_n,x_coord_n,y_coord_n,z_coord_n)(3)

    其中:Message表示構(gòu)件間傳遞信息的操作函數(shù)名;Component_m,Component_n表示由第m個構(gòu)件向第n個構(gòu)件傳遞信息;x_coord_n同式(2)中的解釋。

    2.4" 結(jié)構(gòu)裝配過程的算法描述

    結(jié)構(gòu)裝配的過程可以視為2.2中的基本操作的不斷重復(fù),設(shè)基本構(gòu)件的編號分別為:1,2,…,k,…,n,則工程結(jié)構(gòu)的自動建模過程可以由以下偽代碼來描述,其中各項的含義同式(1)~式(3)中的解釋。

    Component_1(parm_1_1, parm_1_2, …, x_coord_1, y_coord_1, z_coord_1) " (5)

    Component_1(parm_1_1, parm_1_2, …, x_coord_1, y_coord_1, z_coord_1)" "(6)

    Translation(Component_1, x_coord_1_new, y_coord_1_new, z_coord_1_new)"(7)

    Component_k(parm_k_1, parm_k_2, …, x_coord_k, y_coord_k, z_coord_k)" "(8)

    Message(Component_k-1, Component_k, x_coord_k_new, y_coord_k_new, z_coord_k_new)(9)

    Translation(Component_k, x_coord_k_new, y_coord_k_new, z_coord_k_new)(10)

    Component_n(parm_n_1, parm_n_2, …, x_coord_n, y_coord_n, z_coord_n)" (11)

    Message(Component_n-1, Component_n, x_coord_n_new, y_coord_n_new, z_coord_n_new)(12)

    Translation(Component_n, x_coord_n_new, y_coord_n_new, z_coord_n_new)(13)

    3" 實例驗證

    為了證實該算法的有效性和可靠性,本文用了一個實際的橋梁工程來進行驗證。該工程是一個鋼筋混凝土簡支梁橋工程,其下部結(jié)構(gòu)單元如圖1所示。按照該工程結(jié)構(gòu)的特點,本研究具體化了上面式(5)到式(13)所給出的語言框架,形成了一個DSL語言系統(tǒng),用這個語言系統(tǒng)寫出的代碼開發(fā)了該工程三維模型自動建模系統(tǒng)的內(nèi)核。式(14)~式(23)為內(nèi)核的部分代碼示例,表示該橋梁下部結(jié)構(gòu)的一個單元的三維模型生成過程。該段代碼的詳細解釋說明附在代碼后面。

    1 Pile_original=pile(0.2, 8)" " " " " " (14)

    2" "Pile_prepared=preparation_for_installation(Pile_original)" " (15)

    3" "Coordination_for_piles= coordinations_for_piles(3, 2, 5, 3, 2, 1.5, 0,8 0, 0, 35)(16)

    4" "Piles_installed=install(Pile_prepared, Coordination_for_piles)"(17)

    5" "Coordination_for_pileCap= provide_coordination(Piles_installed, above)" (18)

    6" "PileCap_original = pileCap(5, 3, 1)" "(19)

    7" "PileCap_prepared= preparation_for_installation(PileCap_original)"(20)

    8" "Coordination_for_ pileCap= coordination_for_pileCap" " " " (21)

    9" "PileCap_installed=install(PileCap_prepared, Coordination_for_piles)(" "22)

    10" provide_coordination_for_pier= provide_coordination(PileCap_installed, above)(23)

    以下為上面DSL語言的逐句解釋:

    式(14)中:Pile_original表示存放最后生成的樁模型的變量;Pile表示生成樁模型的命令名;參數(shù)0.2和8分別表示樁身的直徑、樁身的長度。

    式(15)中:Pile_prepared表示變量用來存放從最佳生成位置轉(zhuǎn)移到最佳安裝位置的樁構(gòu)件;preparation_for_installation表示將構(gòu)件從最佳生成位置轉(zhuǎn)移到最佳安裝位置的命令(此樁構(gòu)件最佳生成位置和最佳安裝位置為同一位置);Pile_original表示式(14)中所描述的初始化的樁。

    式(16)中:coordination_for_piles表示建模者為樁構(gòu)件所指定的裝配坐標系;Coordination_for_piles是變量用來存放這些樁的裝配坐標系;參數(shù)3、2、5表示6根樁的中心點坐標;參數(shù)3、2表示這6根樁的分布是3行兩列,X方向為3根,Y方向為2根;參數(shù)1.5、0,8表示每一行中樁的間距是1.5,每一列中樁的間距是0.8;參數(shù)0、0、35表示整個樁群沿參考坐標系X、Y、Z軸分別旋轉(zhuǎn)的角度是0度、0度、35度。

    式(17)中:Piles_installed表示變量用來存儲裝配就位的樁模型;Install(…)表示將構(gòu)件變換到裝配坐標系中的函數(shù);Pile_prepared表示式(15)中生成的處于最佳安裝位置的樁。

    式(18)中:Coordination_for_pileCap表示變量用來存儲裝配就位的樁群模型為下一個待安裝的樁基承臺模型生成的裝配坐標系;provide_coordination(…)表示函數(shù)為下一個待安裝構(gòu)件提供裝配坐標系。

    式(19)中:PileCap_original表示變量用來存儲在參考坐標系中的最佳生成位置生成的樁基承臺模型;pileCap(…)表示生成樁基承臺模型的函數(shù)名;參數(shù)5、3、1分別表示樁基承臺的長、寬、高。

    式(20)中:PileCap_prepared表示變量用來存放從最佳生成位置轉(zhuǎn)移到最佳安裝位置的樁基承臺模型;preparation_for_installation表示將構(gòu)件從最佳生成位置轉(zhuǎn)移到最佳安裝位置的命令;PileCap_original表示式(19)中所描述的初始化的樁基承臺模型。

    式(21)中:Coordination_for_ pileCap表示變量用來存放樁基承臺模型的裝配坐標系;coordination_for_pileCap表示式(18)中生成的樁基承臺裝配坐標系。

    式(22)中:PileCap_installed表示變量用來存放裝配就位的樁基承臺模型。

    式(23)中:provide_coordination_for_pier表示變量用來存放裝配就位的樁基承臺模型為下一個待安裝的樁模型生成的裝配坐標系。

    本研究在式(14)~式(23)的基礎(chǔ)上,用Python語言實現(xiàn)了該DSL語言,然后開發(fā)了該DSL語言與Autodesk圖形開發(fā)庫Dynamo的接口,使得內(nèi)核運行的結(jié)果可以調(diào)用Dynamo庫生成三維模型。如圖5所示的某簡支梁橋的三維模型就是采用目前已經(jīng)開發(fā)出來的工程三維模型自動建模系統(tǒng)的原型系統(tǒng)自動生成的。

    4" 結(jié)" 論

    本文研究的目的是實現(xiàn)工程設(shè)計中的三維模型自動生成,此類技術(shù)可以幫助工程師將二維設(shè)計圖紙快速轉(zhuǎn)變?yōu)槿S模型,這樣可以降低所謂的“識圖技術(shù)門檻”,使得更多的工程參與者通過三維可視化演示更加容易地理解設(shè)計內(nèi)容,這就可以大大減少工程進行中由誤解設(shè)計意圖所導(dǎo)致的各種錯誤及事故。本文所采用的技術(shù)路線為程序化建模技術(shù),提出了一種程序化建模算法來實現(xiàn)工程三維模型自動生成。本文在第2節(jié)詳細描述了該算法的前提假設(shè)、基本操作、以及算法步驟的偽代碼描述,在這個基礎(chǔ)上,一種DSL語言被設(shè)計出來以驗證本文所提出的算法的有效性。第3節(jié)給出了一個實例驗證,用這種DSL語言描述了一個簡支梁橋工程的三維模型建模過程,然后用Python實現(xiàn)了該語言,連接到Dynamo圖形庫最終自動生成了該工程的三維模型。從而該算法的有效性得到了初步的驗證。本文是工程三維模型自動生成研究的初步嘗試,未來會進一步改進算法和支撐這種算法的DSL語言,以實現(xiàn)對更多種類工程的支持。

    參考文獻:

    [1] 黃翠香,董毅,姜立,等.三維模型在建筑工程設(shè)計中的應(yīng)用 [C]//工程三維模型與虛擬現(xiàn)實表現(xiàn)——第二屆工程建設(shè)計算機應(yīng)用創(chuàng)新論壇論文集.上海:[出版者不詳],2009:119-124.

    [2] 伊斯曼. BIM手冊 [M].北京:中國建筑工業(yè)出版社,2016.

    [3] 楊德磊.國外BIM應(yīng)用現(xiàn)狀綜述 [J].土木建筑工程信息技術(shù),2013,5(6):89-94+100.

    [4] Autodesk. Revit簡介 [EB/OL].[2023-09-26].https://www.autodesk.com/products/revit/.

    [5] Bentley. Bentley軟件簡介 [EB/OL].[2023-09-26].https://www.bentley.com/.

    [6] 何清華,錢麗麗,段運峰,等.BIM在國內(nèi)外應(yīng)用的現(xiàn)狀及障礙研究 [J].工程管理學(xué)報,2012,26(1):12-16.

    [7] 周在輝,馬靜,許五弟,等.基于CGA的建筑物程序化建模研究 [J].測繪與空間地理信息,2013,36(6):17-20+24.

    [8] 王新征.BIM建模高度參數(shù)化與程序化相結(jié)合的技術(shù)應(yīng)用 [J].城市建設(shè)理論研究:電子版,2018(11):178-179.

    [9] 曹建濤,王磊,許澤琪,等.山嶺隧道襯砌結(jié)構(gòu)BIM建模方法研究與應(yīng)用 [J].公路,2020,65(8):386-389.

    [10] 歐陽春生,羅迎社,鄧宇龍,等.BIM技術(shù)二次開發(fā)及其在裝飾工程中的程序化應(yīng)用 [J].科技和產(chǎn)業(yè),2022,22(1):316-322.

    [11] 王榮亮,郭軍,陳龍.基于剖面圖的三維地質(zhì)建模算法研究與技術(shù)應(yīng)用 [J].煤炭科技,2022,43(3):109-113.

    [12] 劉勐.基于無人機傾斜攝影的露天鐵礦實景三維建模方法 [J].自動化與儀器儀表,2022(12):222-225+231.

    [13] 譚金娥.現(xiàn)澆混凝土建筑結(jié)構(gòu)多尺度三維BIM建模方法研究 [J].太原學(xué)院學(xué)報:自然科學(xué)版,2023,41(2):8-14.

    [14] 孫竹青,許鵬程,張大寶.基于密集三維點云的歷史建筑BIM自動建模算法研究 [J].建筑技術(shù),2023,54(13):1630-1634.

    [15] 郭威,張成煒,尹元,等.基于激光雷達與BIM技術(shù)的變電站施工三維仿真模擬 [J].湘潭大學(xué)學(xué)報:自然科學(xué)版,2021,43(3):106-113.

    作者簡介:楊林(1977-),男,漢族,山西華陰人,講師,碩士研究生,研究方向:工程管理信息化。

    猜你喜歡
    計算機圖形學(xué)
    計算機圖形學(xué)與圖形圖像處理技術(shù)
    用面向科學(xué)思維的教學(xué)方法改進計算機圖形學(xué)課程教學(xué)
    計算機教育(2016年8期)2016-12-24 10:17:35
    三維投影變換的MATLAB實現(xiàn)
    BRDF模型研究綜述
    基于計算思維的計算機圖形學(xué)教學(xué)改革與實踐
    考試周刊(2016年64期)2016-09-22 14:17:14
    計算機圖形學(xué)教學(xué)改革淺論
    考試周刊(2016年65期)2016-09-22 14:11:34
    德惠市| 吉隆县| 灵丘县| 宕昌县| 颍上县| 漯河市| 南昌市| 高密市| 顺平县| 铜川市| 岚皋县| 武夷山市| 乾安县| 新密市| 新竹县| 卢氏县| 温州市| 广汉市| 宝鸡市| 乐都县| 普陀区| 紫阳县| 那坡县| 米脂县| 神农架林区| 商城县| 彰化市| 崇义县| 左贡县| 台南市| 文昌市| 郁南县| 小金县| 博湖县| 惠来县| 石棉县| 广平县| 遂平县| 牡丹江市| 双鸭山市| 东平县|