張志遙
(上海申元巖土工程有限公司 上海市 200011)
目前市場尚未見有適用于巖土工程勘察的輔助設計系統(tǒng),隨著計算機技術的應用的發(fā)展,基于CAD 二次開發(fā)來提高工程人員生產(chǎn)效率的思路和方法也得到了極大的拓展??辈旃ぷ髦写罅康拿芗?、重復性的勞動,都可利用輔助程序來完成。
目前勘察工程師的主要任務為項目報價、編寫標書、編寫勘察報告三項,以上三項工作都需要布置勘察方案。在巖土工程勘察實踐中,布置勘察方案是一個巖土工程師的核心技能??辈旆桨笐鶕?jù)擬建物的性質(zhì)、幾何形狀、拓撲關系、擬采用的基礎形式和相應的規(guī)范要求布置。其中大部分的工作在CAD 內(nèi)中完成,工程師需逐點放置勘探孔,并且勘探孔圖元和其代表的信息無法直接對應??辈旃ぷ魅藛T需要花費大量的時間逐一放置和編輯勘探孔,在進行大量重復操作時,出錯的概率隨著項目規(guī)模的增大而線形增加,所以在布置工程勘察方案結(jié)束后需花大量時間進行校核。同時在進行方案修改時,需對CAD 中的勘探孔逐個進行修改,在變更量較大時,幾乎等同于全部重做。工程中需要對勘察工作的造價進行估計,這項工作需要在較短的時間完成,因此需要工程師在較短的時間布置勘察方案?;谝陨蠁栴},本文利用Lisp 語言開發(fā)了一套勘察輔助設計系統(tǒng),可以有效地減少布置勘察方案的重復性勞動,提高布置勘察方案的效率,保證方案的質(zhì)量。
目前布置勘察方案共9 個步驟,在工程實踐中,工程師布置勘察方案的各步驟及其用時占比如下:
(1)查找擬建場地周邊勘察資料(3%);
(2)確定勘探孔的深度(3%);
(3)確定基礎勘探孔的間距和控制方式(4%);
(4)布置勘察方案,為控制建筑輪廓,人工放置圖元(30%);
(5)人工檢查勘探孔間距(6%);
(6)選擇勘探孔,將其改為控制性孔(4%);
(7)繪制勘探孔剖面(20%);
(8)人工統(tǒng)計孔數(shù)、進尺(10%);
(9)根據(jù)地層分布、勘探孔進尺確定地基土原位測試、室內(nèi)試驗項目、數(shù)量(20%)。
其中第4 步~第8 步在CAD 中進行,累計用時占比約70%。這5 個步驟計算量極少,幾乎全部是重復性工作,但是占用了勘察工程師大量的時間。對以上5 個步驟用輔助程序來完成,是大幅提高布置勘察方案的效率,提高方案質(zhì)量關鍵。
本文采用AutoLISP 對AutoCAD 進行二次開發(fā)。AutoLISP 是為二次開發(fā)AutoCAD 而專門設計的編程語言,它起源于LISP 語言,嵌入在AutoCAD 的內(nèi)部,可以在AutoCAD 命令行中直接進行使用,也在AutoCAD 內(nèi)置的編輯器中進行編寫。
AutoLISP 采用了和CommonLISP 最相近的語法和習慣約定,具有CommonLISP 的特性,但又針對AutoCAD 增加了許多功能。它既有LISP 語言人工智能的特性,又具有AutoCAD 強大的圖形編輯功能的特點。它可以把AutoLISP程序和AutoCAD 的繪圖命令透明地結(jié)合起來,使設計和繪圖完全融為一體,還可以實現(xiàn)對AutoCAD 圖形數(shù)據(jù)庫的直接訪問和修改。[1]
本次研究旨在利用AutoLISP 編程語言,研發(fā)具有用戶操作界面的布置勘察方案的輔助程序。在前述中,需對第4步~第8 步進行簡化。具體需求如下:
(1)實現(xiàn)自動布置勘探孔圖元同時控制勘探孔間距。將相關規(guī)范和工程經(jīng)驗編入勘察方案的輔助程序,使得用戶在拾取CAD 中兩點或較規(guī)則的擬建物輪廓時,輔助程序可按規(guī)范規(guī)則自動布置勘察方案。
(2)實現(xiàn)勘探孔自動編號。同時用戶可以批量增加、刪除、修改、查詢、提取、自動統(tǒng)計勘探孔信息;
(3)按照用戶選擇的勘探孔批量生產(chǎn)工程剖面,并批量修改剖面編號,大幅減少布置勘察方案所用時間。
基于以上需求,本文充分利用了AutoLISP 開發(fā)了一套針對布置勘察方案重復操作的,極大程度提高工作效率及方案質(zhì)量的勘察方案輔助程序。
依據(jù)對自動布置勘探孔圖元同時控制勘探孔間距需求的分析,目前該步驟主要為在確定了布孔原則后,工程師需在總平面圖上,延擬建物輪廓或柱網(wǎng)軸線逐點放置按規(guī)范勘探孔。針對一個擬建物單體布置勘察方案的人工實現(xiàn)如下:
(1)根據(jù)建筑輪廓,將其抽象或分割成四邊形或三角形(一條邊長度為0 的四邊形)的組合。
(2)選中四邊形或三角形,選取2 條對邊。
(3)選擇一條邊。
(4)根據(jù)該邊的長度以及擬選用的勘探孔間距計算出要布置多少鉆孔。
(5)放置圖元,量取并標記下一點的坐標。
(6)重復上一步操作,直至該條邊放置勘探孔圖元結(jié)束。
(7)選中另一條邊,重復第6 步操作,直至該條邊放置勘探孔圖元結(jié)束。
(8)將兩條邊上的勘探孔一一對應,并依次做輔助直線。
(9)選中所有輔助直線,對每一條,進行4-5 步操作。
(10)對所有邊布置勘探孔后,做一個輔助圓,輔助圓的半徑等于最大勘探孔間距,對勘探孔間距進行人工檢查,若發(fā)現(xiàn)勘探孔間距大于圓半徑,則調(diào)整勘探孔的距離。
(11)在檢查所有勘探孔間距后,根據(jù)勘探孔在當前坐標系中勘探孔的位置,需要按照先上后下,先左后右的規(guī)則修改鉆孔的孔號。
(12)依次修改勘探孔的孔深,按一定比例調(diào)整勘探孔的類型。
(13)按規(guī)范選擇部分勘探孔,將其孔深改為控制下勘探孔的孔深。
(14)統(tǒng)計勘探孔的屬性,并導出表格
(15)按照一定規(guī)則繪制剖面,剖面為多段線,多段線的端點經(jīng)過相應的勘探孔圖元的基點。
以上步驟中第13 步的邏輯較為復雜,不同的建筑單體,其控制性勘探孔的比例和放置位置差距較大。除此之外,其余步驟都可由程序來代替或簡化。根據(jù)具體需求,可拆分成四段程序。
3.2.1 勘探孔動態(tài)屬性塊
在目前的規(guī)范中,僅對勘探孔的圖例做了規(guī)定,但未對勘探孔的cad 圖元格式有要求。按照以往的模式,工程師會按照規(guī)范圖例在cad 中繪制出勘探孔形狀,然后使用單行文字表示其孔號、孔深、孔數(shù)等信息。該方法有較大的局限性,文字只是簡單地擺在圖例邊,兩者是無關的圖元。如果要對孔號等參數(shù)進行修改,則需要選擇勘探孔邊的文字,依次進行修改。
若要實現(xiàn)批量處理鉆孔,那么首先需要將勘探孔的信息與圖元掛鉤,將其結(jié)合成一個屬性塊??碧娇妆旧碜鳛橐粋€塊,孔深、孔數(shù)、高程、坐標作為該塊的屬性,與勘探孔塊綁定在一起。再將動作賦給每一個屬性,使得屬性和圖元可以在塊外進行移動或旋轉(zhuǎn)。根據(jù)圖元dxf 碼就能讀取勘探孔內(nèi)在的參數(shù),進而可以實現(xiàn)批量操作。[2]
3.2.2 直線布孔
布置勘探孔的基本流程有三個,選擇勘探孔屬性快,選擇布置勘探孔的坐標,插入勘探孔屬性快。在一般的勘察項目中,取土孔、靜力觸探孔和小螺紋鉆孔占所有勘探孔的比例超過90%,所以在編寫批量布置鉆孔的程序時,僅考慮批量布置上述3 種鉆孔。根據(jù)工程經(jīng)驗,取土孔與靜力觸探孔的比例不小于1:2,所以程序中2 種勘探孔的比例按照1:2 考慮,小螺紋孔的孔距小于15m,一般在取土孔和靜力觸探孔中均勻分布。針對該步驟,其程序設計思路如下:
(1)輸入直線開始點和結(jié)束點的坐標,計算兩點間距離L。
(2)選擇取土孔和靜探孔保持固定比例時的插入順序,如取靜靜(既取土-靜探-靜探),靜取靜(既靜探-取土-靜探),靜靜?。褥o探-取土-靜探)等模式。
(3)讓用戶輸入勘探孔間距S。
(4)設定參數(shù)daixz,該參數(shù)初始值為0。并讓用戶選擇是否帶小螺紋鉆孔,若帶小螺紋鉆孔,令其值為1。
(5)設定兩點間要插入n 個勘探孔,則兩點間距離L被分為n+1 段。n 的初始值為0。
(8)根據(jù)所有勘探孔孔數(shù)和勘探孔最終間距,以開始點為基點計算插入勘探孔的點的坐標,并檢查開始點和結(jié)束點是否已經(jīng)存在勘探孔。
你知道嗎羅漠,他們是真的恩愛,每天父親上班前都會親吻我們,買各種各樣的禮物,給母親,給我。他們從來不吵架,永遠微笑。那時候真幸福啊,羅漠,我以為自己是公主,永遠沒有憂愁。
(9)根據(jù)計算所得的插入點坐標,循環(huán)執(zhí)行插入勘探孔命令。
3.2.3 四邊形布孔
本功能對應3.1 節(jié)的第1 步-第10 步操作,有了直線布孔的函數(shù)基礎,可以完成第1-8 步后,循環(huán)執(zhí)行第9 步。具體流程如下:
(1)拾取已有四邊形,或繪制四邊形。
(2)按順時針取得四邊形四個頂點,分別賦值給pt1、pt2、pt3、pt4。
(3)根據(jù)四個點,選取2 條對邊,兩條邊的邊長分別為L1、L2。設定第一條兩點間要插入n1 個勘探孔,則兩點間距離L1被分為n1+1段;第二條兩點間要插入n2個勘探孔,則兩點間距離L2 被分為n2+1 段。n1 和n2 的初始值都為0。
(4)開啟循環(huán),測試條件為勘探孔間距S 和第一條邊長度L1 的對比,當S 小于L1 時,n1 的值+1。在經(jīng)過若干輪循環(huán)之后,得到的最終插入勘探孔數(shù)為n1 個,勘探孔最終間距為x1。開啟第二輪循環(huán),測試條件為勘探孔間距S和第二條邊長度L2 的對比,當S 小于L2 時,n2 的值+1。在經(jīng)過若干輪循環(huán)之后,得到的最終插入勘探孔數(shù)為n2 個,勘探孔最終間距為x2。若兩條對邊的插入的勘探孔數(shù)相等,則執(zhí)行下一步;若不相等,則對另外兩條對邊進行測試。若依然不相等,則打印提示。
(5)根據(jù)勘探孔數(shù)和孔距,以開始點為基點計算插入勘探孔的點的坐標,并檢查開始點和結(jié)束點是否已經(jīng)存在勘探孔,然后插入勘探孔。兩條對邊上的勘探點的插入點一一對應,根據(jù)一一對應的點再執(zhí)行按兩點間直線布孔函數(shù),依次執(zhí)行生成勘探孔。
由于勘探孔位置由程序控制,勘探孔的間距完全滿足用戶要求,無需執(zhí)行第10 步。
3.2.4 批量修改勘探孔孔號
本功能對應3.1 節(jié)的第11 步-第12 步操作。在布置好鉆孔之后,需要按照先上后下,先左后右的規(guī)則修改鉆孔的孔號,然后按照擬建物的性質(zhì)批量修改孔深。在全部修改完畢之后,才能根據(jù)對所有鉆孔的個數(shù)與進尺進行統(tǒng)計。這個步驟僅需要進行簡單的計算,基本都為重復操作,適合應用程序來批量處理。具體流程如下:
(1)根據(jù)勘探孔的種類創(chuàng)建選擇集,有n 種勘探孔就創(chuàng)建n 個選擇集。根據(jù)圖層、圖元類型、塊名屬性選擇所有的勘探孔,每種勘探孔的數(shù)量就代表相應選擇集列表的長度。
(2)遍歷n 個選擇集,然后在遍歷單個選擇集中每個元素,將單個選擇集內(nèi)勘探孔的圖元名取出放在一個數(shù)組里。這樣就針對n 種勘探孔生成n 個包含勘探孔圖元名的數(shù)組。
(3)遍歷第一個數(shù)組中所有圖元,根據(jù)圖元名取到每個勘探孔的基點坐標,使用冒泡排序算法,將勘探孔根據(jù)先比較Y 坐標排序,再比較X 坐標,對數(shù)組重新排序。然后將由小到大孔號根據(jù)數(shù)組順序依次替換勘探孔圖元的孔號屬性。
(4)遍歷n 個數(shù)組,重復以上操作,直至所有數(shù)組循環(huán)完畢。
3.2.5 統(tǒng)計勘探孔的屬性
本功能對應3.1 節(jié)的第14 步操作。在布置好鉆孔之后,自動選中所有勘探孔,對勘探孔進行分類匯總,并自動計算總孔深。這個步驟僅需要進行簡單的計算,具體流程如下:
(1)根據(jù)勘探孔的種類創(chuàng)建n 個選擇集,選擇集包含圖紙范圍內(nèi)所有的該類型勘探孔。
(2)遍歷選擇集中每個元素,將單個選擇集內(nèi)勘探孔的圖元名取出放在一個數(shù)組里。這樣就針對n 種勘探孔生成n 個包含勘探孔圖元名的數(shù)組。
(3)遍歷數(shù)組中所有圖元名,根據(jù)圖元名取到圖元所有屬性。
(4)將同類型同孔深的勘探孔放在同一個數(shù)組中,數(shù)組長度則為該類型勘探孔個數(shù);將同類型勘探孔的孔數(shù)相加求和,將該類型的勘探孔名稱和孔數(shù)之和組成新的數(shù)組。
(5)將以上數(shù)組以Excel 表格形式導出。
3.2.6 繪制剖面圖
本功能對應3.1 節(jié)的第15 步操作。在完全布置好鉆孔之后,按照一定規(guī)律創(chuàng)建多段線,使得多段線通過相應的鉆孔。具體流程如下:
(1)選中所有勘探孔動態(tài)快圖元,將其基點放入數(shù)組1。
(2)遍歷數(shù)組1,取得其中點的最大x 坐標maxX、最小x 坐標minX、最大y 坐標maxY 和最小y 坐標minY,以及最小x 坐標和最大y 坐標對應的點序號。
(3)比較(maxX-minX)和(maxY-minY)的大小,若大于,則按橫向考慮。
(4)新建數(shù)組2,若按橫向考慮,將具有minX 的點添加進數(shù)組2,并在數(shù)組1 中移除該點。若按縱向考慮,將具有maxY 的點添加進數(shù)組2,并在數(shù)組1 中移除該點。
(5)將數(shù)組2 中最后一點作為參照點,遍歷數(shù)組1 中其他點,計算其中所有點到參照點的距離,將距離最小的點加入數(shù)組2。
(6)重復上述操作,直至數(shù)組1 中元素為0。
(7)將數(shù)組2 中第一個元素按照既定的向量方向平移復制產(chǎn)生端點1,數(shù)組2 中最后一個元素按照既定的向量方向平移復制產(chǎn)生端點2。
(8)端點1 向既定的向量方向平移復制產(chǎn)生文字插入點1,端點2 向既定的向量方向平移復制產(chǎn)生文字插入點2。
(9)使用多段線命令,按數(shù)組2 中順序插入點,生成多段線。
(10)在插入點1、插入點2 處插入剖面號文字,并對文字的屬性進行設置。
為評估該方法的實用性、效率提升效果,本文以“上海楊浦B 站項目地質(zhì)勘察工程”項目為例。項目總建筑面積約77.2 萬平方米,其中地上總建筑面積為約35.9 萬平方米,地下總建筑面積約41.3 萬平方米(其中地下商業(yè)約9.2 萬平方米)。
項目基地范圍內(nèi)地下室連通(含基地內(nèi)市政道路下方),地下四層地下室,基礎埋設22.8m,塔樓及附屬裙房共同嵌固于同一地下室。項目包含多個塔樓及群房,其中超高層塔樓地上34 層,總高度150m,標準層平面約60×54m,主體結(jié)構(gòu)擬采用型鋼(鋼管)框架-砼核心筒結(jié)構(gòu)體系。
以工作時長為5 年的中級工程師為樣本,在確定勘探孔深度和控制方案后布置項目的勘察方案,每個步驟實測用時為:
(1)布置勘察方案,為控制建筑輪廓,人工放置圖元(約120 分鐘);
(2)人工檢查勘探孔間距(約20 分鐘);
(3)選擇勘探孔,將其改為控制性孔(約30 分鐘);
(4)繪制勘探孔剖面(約40 分鐘);
(5)人工統(tǒng)計孔數(shù)、進尺(約20 分鐘)。
完成該項目,累計用時230 分鐘,共布置60.0~135.0m的取土孔50 只,布置60.0 ~90.0m 靜力觸探孔100 只,小螺紋鉆孔135 只。
在使用勘察方案輔助設計系統(tǒng)后,4.2 節(jié)中每個步驟的處理方法和實測用時為:
第一步
該項目共計19 個地上擬建單體,下設4 層地下室。各單體及地下室形狀近矩形,可組合使用直線布孔和四邊形布孔命令,大致完成布孔,用時5 分鐘。刪除不需要的小螺紋鉆孔,并微調(diào)鉆孔,使其能更好地控制建筑,使用批量更改孔號命令,再使用批量更改孔深命令,用時10 分鐘。該步驟用時約15 分鐘。
第二步:人工檢查勘探孔間距
勘探孔間距由根據(jù)用戶輸入值而確定,并程序計算控制,無需人工復檢,用時0 分鐘。
第三步:選擇勘探孔,將其改為控制性孔
本工程單體較多,且擬建物輪廓及性質(zhì)差異較大,該步驟需人工完成,用時30 分鐘。
第四步:繪制勘探孔剖面
使用生成剖面命令,選中一定的勘探孔即可生成剖面,然后統(tǒng)一修改剖面序號,用時5 分鐘。
第五步:人工統(tǒng)計孔數(shù)、進尺
使用統(tǒng)計命令,即可獲取各類勘探孔及其孔深,用時1分鐘。
以上所有過程累計用時51 分鐘,為原用時的22%,以上5 個步驟中,除第3 步外,所有重復的過程由程序代替。完成的勘探點平面布置圖如圖1 所示。
圖1:勘探點平面布置圖
針對布置巖土工程勘察方案設計的工作量大,重復性高,耗時長,出錯高等問題,基于AutoLISP 語言開發(fā)了高效的勘察方案輔助系統(tǒng)。針對勘察方案設計中最耗時的步驟開發(fā)出5 個主要功能,使得用戶選擇擬建物輪廓并輸入勘探孔間距后可以在極短的時間內(nèi)放置勘探孔,并且使得用戶可以批量增加、刪除、修改、查詢、統(tǒng)計勘探孔。根據(jù)實例演示可知,采用該輔助極大地提高了巖土工程勘察方案設計的效率,并減少人工失誤的概率,提高勘察方案的質(zhì)量。