本發(fā)明屬于試驗(yàn)?zāi)M仿真,具體為一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法。
背景技術(shù):
1、塊體離散元是一種基于離散元思想的延伸方法,主要用于模擬具有顯著不連續(xù)特征的材料或結(jié)構(gòu)的力學(xué)行為,如巖體、砌體等。它結(jié)合了離散元法和塊體力學(xué)的思想,將整體模擬材料分解為一系列塊體單元,通過塊體之間的接觸、碰撞、滑動(dòng)和分離來描述其整體行為。隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,數(shù)值模擬已經(jīng)成為研究塊體離散元方法的重要手段。數(shù)值模擬能夠高效靈活地模擬不同情況下塊體離散程度,在理解巖體力學(xué)性質(zhì)和數(shù)值模擬基礎(chǔ)方面發(fā)揮著重要作用。通過建立參數(shù)化模型,可以研究不同裂隙密度、方向和開度等因素對(duì)巖體強(qiáng)度和變形的影響規(guī)律,為工程設(shè)計(jì)和穩(wěn)定性評(píng)估提供重要依據(jù);可以更深入地了解巖體的力學(xué)行為,提高數(shù)值模擬的準(zhǔn)確性和可靠性,為工程實(shí)踐和地質(zhì)研究提供有力的支持。
2、當(dāng)前在利用udec內(nèi)置命令創(chuàng)建塊體模型圖時(shí),存在以下不足:首先,grasshopper為參數(shù)化建模提供了技術(shù)支持,但其內(nèi)置電池生成的delaunay圖形質(zhì)量有限。因此對(duì)grasshopper建模功能的二次開發(fā),追求更高質(zhì)量的網(wǎng)格模型顯得較為重要。其次,udec內(nèi)置的delaunay算法、quad算法、voronoi算法在生成塊體時(shí)會(huì)在模型邊界生成扁平不均勻的塊體。更重要的是,在udec中生成模型時(shí)仍需要先對(duì)cad文件進(jìn)行處理。對(duì)于頻繁迭代的項(xiàng)目,無法實(shí)現(xiàn)高效準(zhǔn)確地生成數(shù)值模型。而參數(shù)化模型具有靈活性、可編輯性、自動(dòng)化與批量化建模的優(yōu)勢(shì)。因此發(fā)明一種自動(dòng)、高效地生成數(shù)值模型的方法具有十分重要的意義和廣闊的應(yīng)用場(chǎng)景。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對(duì)現(xiàn)在利用udec內(nèi)置命令創(chuàng)建塊體模型圖時(shí)存在生成的圖形類型有限和質(zhì)量低的問題,提供了一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法。
2、為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,包括以下步驟:
3、1)基于rhino中g(shù)rasshopper參數(shù)化建模功能的二次開發(fā)。在rhino的grasshopper中,利用c#編程語(yǔ)言及rhinocommon內(nèi)部的api,實(shí)現(xiàn)對(duì)傳入任意幾何平面的邊界內(nèi)部生成三角形網(wǎng)格、四邊形網(wǎng)格和voronoi網(wǎng)格。利用自定義delaunay圖形生成算法,自定義quad圖形生成算法和自定義voronoi圖形生成算法,在rhino中實(shí)現(xiàn)參數(shù)化網(wǎng)格模型建立與迭代算法優(yōu)化。利用迭代算法對(duì)生成的delaunay網(wǎng)格模型進(jìn)行優(yōu)化。
4、2)在數(shù)據(jù)文本處理及輸出模塊,提取步驟1)生成網(wǎng)格模型的參數(shù)信息。具體為先提取每個(gè)delaunay網(wǎng)格模型的頂點(diǎn);將提取到的頂點(diǎn)傳入到grasshopper內(nèi)置的point電池中,之后再提取delaunay網(wǎng)格模型中每條線段,將提取到的線段傳入到grasshopper內(nèi)置的curve電池中。
5、3)在udec快捷讀取與建模中,對(duì)巖層柱狀圖信息進(jìn)行提取保存至excel表中,自動(dòng)化讀取該excel表,將讀取的信息傳入到自定義的udec自動(dòng)化生成插件中。同時(shí)利用udec內(nèi)置命令對(duì)步驟2)生成的數(shù)據(jù)文本進(jìn)行處理,將相應(yīng)的grasshopper電池傳入到自定義的udec自動(dòng)化生成插件中,自動(dòng)生成“txt”格式文檔后導(dǎo)入udec中生成參數(shù)化網(wǎng)格模型。
6、步驟1)中涉及到利用rhino的grasshopper中的內(nèi)置電池。主要包含point、curve和mesh電池。
7、步驟1)中生成的參數(shù)化網(wǎng)格模型能夠反應(yīng)網(wǎng)格劃分后的網(wǎng)格特征,并可通過panel電池來記錄網(wǎng)格點(diǎn)坐標(biāo)、網(wǎng)格線段數(shù)據(jù)類型信息以及基本網(wǎng)格劃分結(jié)果。
8、其中基本網(wǎng)格劃分結(jié)果包括:由若干個(gè)短線段構(gòu)成的線,每個(gè)短線段由兩個(gè)網(wǎng)格點(diǎn)確定;網(wǎng)格邊界內(nèi)部由若干三角網(wǎng)格面構(gòu)成,每個(gè)三角網(wǎng)格面由三個(gè)網(wǎng)格點(diǎn)確定;
9、步驟2)中,對(duì)步驟1)生成的網(wǎng)格模型進(jìn)行處理:將模型圖中的點(diǎn)、線信息作為參數(shù)鏈接至grasshopper內(nèi)置的電池中,以便后續(xù)生成“txt”格式文檔;步驟3)自定義c#插件中的參數(shù)信息來自步驟2)中電池的參數(shù)信息。
10、步驟3)中,將步驟2)中的電池傳入自定義c#插件中生成“txt”格式文檔,利用udec的“call”命令讀取“txt”文檔運(yùn)行建模程序,生成udec模型圖。
11、步驟1)實(shí)現(xiàn)grasshopper的參數(shù)化建模,網(wǎng)格塊體模型選擇二維網(wǎng)格模型,步驟3)中的“txt”文檔數(shù)據(jù)類型格式對(duì)應(yīng)二維網(wǎng)格數(shù)據(jù)格式。
12、步驟1)—步驟3)中,利用自定義c#算法二次開發(fā)grasshopper參數(shù)化建模,將生成的模型參數(shù)傳入自定義c#插件中生成“txt”格式文檔,在udec中讀取并生成參數(shù)化數(shù)值模型。
13、本發(fā)明相對(duì)于現(xiàn)有技術(shù)具備的有益效果為:本發(fā)明利用c#的高效處理能力,對(duì)grasshopper參數(shù)化建模進(jìn)行了二次開發(fā),使其能夠適應(yīng)更多類型的模型圖。此外,自動(dòng)讀取自定義“txt”文檔大大提高了udec建模的效率。該方法不僅克服了udec中最原始的建模缺陷,還提升了模擬的準(zhǔn)確性和實(shí)用性。這一創(chuàng)新方法將為塊體離散元領(lǐng)域帶來新的思路,為工程實(shí)踐和地質(zhì)研究提供強(qiáng)大的技術(shù)支持。
1.一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟1)中,使用grasshopper中的c#script插件編輯網(wǎng)格劃分電池,并結(jié)合grasshopper中內(nèi)置電池生成網(wǎng)格模型。
3.根據(jù)權(quán)利要求1所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟1)中,邊界范圍內(nèi)所生成離散點(diǎn)的數(shù)學(xué)分布模型服務(wù)于參數(shù)化delaunay、quad和voronoi網(wǎng)格模型的網(wǎng)格劃分。
4.根據(jù)權(quán)利要求1所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟1)中參數(shù)化delaunay網(wǎng)格模型的生成涉及三種不同的算法,分別是:引入滿足泊松分布模型的離散點(diǎn),利用自定義delauany劃分算法生成三角網(wǎng)格模型;通過控制三角網(wǎng)最大邊長(zhǎng)與最小邊長(zhǎng)范圍的三角網(wǎng)格優(yōu)化算法;通過控制三角網(wǎng)最大面積與最小面積范圍的三角網(wǎng)格優(yōu)化算法;三角網(wǎng)格模型生成后任選一種三角網(wǎng)格優(yōu)化算法生成delaunay網(wǎng)格模型。
5.根據(jù)權(quán)利要求1所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟2)中涉及到利用rhino的grasshopper中的內(nèi)置電池,包括point、curve和mesh電池。
6.根據(jù)權(quán)利要求1或2或3或4或5所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟1)是對(duì)grasshopper參數(shù)化建模的二次開發(fā),實(shí)現(xiàn)了對(duì)任意邊界內(nèi)部進(jìn)行網(wǎng)格劃分,同時(shí)實(shí)現(xiàn)了網(wǎng)格劃分算法的優(yōu)化。
7.根據(jù)權(quán)利要求1所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟2)繼承步驟1)生成的網(wǎng)格模型;將模型中的點(diǎn)和線鏈接至grasshopper中內(nèi)置的電池,以便后續(xù)實(shí)現(xiàn)udec快捷讀取并生成數(shù)值模型。
8.根據(jù)權(quán)利要求1所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:在步驟3)中,udec的快捷讀取與建模的實(shí)現(xiàn)方法為開發(fā)自定義c#電池,包括將execl表格中數(shù)據(jù)存入至panel電池并自動(dòng)讀?。蛔x取點(diǎn)、線信息并將其作為參數(shù)傳入自定義電池的算法中,生成“txt”格式文檔,在udec中讀取并實(shí)現(xiàn)參數(shù)化數(shù)值模型構(gòu)建。
9.根據(jù)權(quán)利要求7或8所述的一種基于grasshopper-c#-udec數(shù)值模型參數(shù)化構(gòu)建方法,其特征在于:步驟1)實(shí)現(xiàn)對(duì)grasshopper的圖形參數(shù)化建模;步驟2)實(shí)現(xiàn)對(duì)文本數(shù)據(jù)處理;步驟3)實(shí)現(xiàn)參數(shù)化“txt”格式文檔創(chuàng)建,并實(shí)現(xiàn)udec模型參數(shù)化構(gòu)建。