張志遙
(上海申元巖土工程有限公司 上海市 200011)
目前市場尚未見有適用于巖土工程勘察的輔助設計系統,隨著計算機技術的應用的發展,基于CAD 二次開發來提高工程人員生產效率的思路和方法也得到了極大的拓展。勘察工作中大量的密集、重復性的勞動,都可利用輔助程序來完成。
目前勘察工程師的主要任務為項目報價、編寫標書、編寫勘察報告三項,以上三項工作都需要布置勘察方案。在巖土工程勘察實踐中,布置勘察方案是一個巖土工程師的核心技能。勘察方案應根據擬建物的性質、幾何形狀、拓撲關系、擬采用的基礎形式和相應的規范要求布置。其中大部分的工作在CAD 內中完成,工程師需逐點放置勘探孔,并且勘探孔圖元和其代表的信息無法直接對應。勘察工作人員需要花費大量的時間逐一放置和編輯勘探孔,在進行大量重復操作時,出錯的概率隨著項目規模的增大而線形增加,所以在布置工程勘察方案結束后需花大量時間進行校核。同時在進行方案修改時,需對CAD 中的勘探孔逐個進行修改,在變更量較大時,幾乎等同于全部重做。工程中需要對勘察工作的造價進行估計,這項工作需要在較短的時間完成,因此需要工程師在較短的時間布置勘察方案。基于以上問題,本文利用Lisp 語言開發了一套勘察輔助設計系統,可以有效地減少布置勘察方案的重復性勞動,提高布置勘察方案的效率,保證方案的質量。
目前布置勘察方案共9 個步驟,在工程實踐中,工程師布置勘察方案的各步驟及其用時占比如下:
(1)查找擬建場地周邊勘察資料(3%);
(2)確定勘探孔的深度(3%);
(3)確定基礎勘探孔的間距和控制方式(4%);
(4)布置勘察方案,為控制建筑輪廓,人工放置圖元(30%);
(5)人工檢查勘探孔間距(6%);
(6)選擇勘探孔,將其改為控制性孔(4%);
(7)繪制勘探孔剖面(20%);
(8)人工統計孔數、進尺(10%);
(9)根據地層分布、勘探孔進尺確定地基土原位測試、室內試驗項目、數量(20%)。
其中第4 步~第8 步在CAD 中進行,累計用時占比約70%。這5 個步驟計算量極少,幾乎全部是重復性工作,但是占用了勘察工程師大量的時間。對以上5 個步驟用輔助程序來完成,是大幅提高布置勘察方案的效率,提高方案質量關鍵。
本文采用AutoLISP 對AutoCAD 進行二次開發。AutoLISP 是為二次開發AutoCAD 而專門設計的編程語言,它起源于LISP 語言,嵌入在AutoCAD 的內部,可以在AutoCAD 命令行中直接進行使用,也在AutoCAD 內置的編輯器中進行編寫。
AutoLISP 采用了和CommonLISP 最相近的語法和習慣約定,具有CommonLISP 的特性,但又針對AutoCAD 增加了許多功能。它既有LISP 語言人工智能的特性,又具有AutoCAD 強大的圖形編輯功能的特點。它可以把AutoLISP程序和AutoCAD 的繪圖命令透明地結合起來,使設計和繪圖完全融為一體,還可以實現對AutoCAD 圖形數據庫的直接訪問和修改。[1]
本次研究旨在利用AutoLISP 編程語言,研發具有用戶操作界面的布置勘察方案的輔助程序。在前述中,需對第4步~第8 步進行簡化。具體需求如下:
(1)實現自動布置勘探孔圖元同時控制勘探孔間距。將相關規范和工程經驗編入勘察方案的輔助程序,使得用戶在拾取CAD 中兩點或較規則的擬建物輪廓時,輔助程序可按規范規則自動布置勘察方案。
(2)實現勘探孔自動編號。同時用戶可以批量增加、刪除、修改、查詢、提取、自動統計勘探孔信息;
(3)按照用戶選擇的勘探孔批量生產工程剖面,并批量修改剖面編號,大幅減少布置勘察方案所用時間。
基于以上需求,本文充分利用了AutoLISP 開發了一套針對布置勘察方案重復操作的,極大程度提高工作效率及方案質量的勘察方案輔助程序。
依據對自動布置勘探孔圖元同時控制勘探孔間距需求的分析,目前該步驟主要為在確定了布孔原則后,工程師需在總平面圖上,延擬建物輪廓或柱網軸線逐點放置按規范勘探孔。針對一個擬建物單體布置勘察方案的人工實現如下:
(1)根據建筑輪廓,將其抽象或分割成四邊形或三角形(一條邊長度為0 的四邊形)的組合。
(2)選中四邊形或三角形,選取2 條對邊。
(3)選擇一條邊。
(4)根據該邊的長度以及擬選用的勘探孔間距計算出要布置多少鉆孔。
(5)放置圖元,量取并標記下一點的坐標。
(6)重復上一步操作,直至該條邊放置勘探孔圖元結束。
(7)選中另一條邊,重復第6 步操作,直至該條邊放置勘探孔圖元結束。
(8)將兩條邊上的勘探孔一一對應,并依次做輔助直線。
(9)選中所有輔助直線,對每一條,進行4-5 步操作。
(10)對所有邊布置勘探孔后,做一個輔助圓,輔助圓的半徑等于最大勘探孔間距,對勘探孔間距進行人工檢查,若發現勘探孔間距大于圓半徑,則調整勘探孔的距離。
(11)在檢查所有勘探孔間距后,根據勘探孔在當前坐標系中勘探孔的位置,需要按照先上后下,先左后右的規則修改鉆孔的孔號。
(12)依次修改勘探孔的孔深,按一定比例調整勘探孔的類型。
(13)按規范選擇部分勘探孔,將其孔深改為控制下勘探孔的孔深。
(14)統計勘探孔的屬性,并導出表格
(15)按照一定規則繪制剖面,剖面為多段線,多段線的端點經過相應的勘探孔圖元的基點。
以上步驟中第13 步的邏輯較為復雜,不同的建筑單體,其控制性勘探孔的比例和放置位置差距較大。除此之外,其余步驟都可由程序來代替或簡化。根據具體需求,可拆分成四段程序。
3.2.1 勘探孔動態屬性塊
在目前的規范中,僅對勘探孔的圖例做了規定,但未對勘探孔的cad 圖元格式有要求。按照以往的模式,工程師會按照規范圖例在cad 中繪制出勘探孔形狀,然后使用單行文字表示其孔號、孔深、孔數等信息。該方法有較大的局限性,文字只是簡單地擺在圖例邊,兩者是無關的圖元。如果要對孔號等參數進行修改,則需要選擇勘探孔邊的文字,依次進行修改。
若要實現批量處理鉆孔,那么首先需要將勘探孔的信息與圖元掛鉤,將其結合成一個屬性塊。勘探孔本身作為一個塊,孔深、孔數、高程、坐標作為該塊的屬性,與勘探孔塊綁定在一起。再將動作賦給每一個屬性,使得屬性和圖元可以在塊外進行移動或旋轉。根據圖元dxf 碼就能讀取勘探孔內在的參數,進而可以實現批量操作。[2]
3.2.2 直線布孔
布置勘探孔的基本流程有三個,選擇勘探孔屬性快,選擇布置勘探孔的坐標,插入勘探孔屬性快。在一般的勘察項目中,取土孔、靜力觸探孔和小螺紋鉆孔占所有勘探孔的比例超過90%,所以在編寫批量布置鉆孔的程序時,僅考慮批量布置上述3 種鉆孔。根據工程經驗,取土孔與靜力觸探孔的比例不小于1:2,所以程序中2 種勘探孔的比例按照1:2 考慮,小螺紋孔的孔距小于15m,一般在取土孔和靜力觸探孔中均勻分布。針對該步驟,其程序設計思路如下:
(1)輸入直線開始點和結束點的坐標,計算兩點間距離L。
(2)選擇取土孔和靜探孔保持固定比例時的插入順序,如取靜靜(既取土-靜探-靜探),靜取靜(既靜探-取土-靜探),靜靜取(既靜探-取土-靜探)等模式。
(3)讓用戶輸入勘探孔間距S。
(4)設定參數daixz,該參數初始值為0。并讓用戶選擇是否帶小螺紋鉆孔,若帶小螺紋鉆孔,令其值為1。
(5)設定兩點間要插入n 個勘探孔,則兩點間距離L被分為n+1 段。n 的初始值為0。

(8)根據所有勘探孔孔數和勘探孔最終間距,以開始點為基點計算插入勘探孔的點的坐標,并檢查開始點和結束點是否已經存在勘探孔。
你知道嗎羅漠,他們是真的恩愛,每天父親上班前都會親吻我們,買各種各樣的禮物,給母親,給我。他們從來不吵架,永遠微笑。那時候真幸福啊,羅漠,我以為自己是公主,永遠沒有憂愁。
(9)根據計算所得的插入點坐標,循環執行插入勘探孔命令。
3.2.3 四邊形布孔
本功能對應3.1 節的第1 步-第10 步操作,有了直線布孔的函數基礎,可以完成第1-8 步后,循環執行第9 步。具體流程如下:
(1)拾取已有四邊形,或繪制四邊形。
(2)按順時針取得四邊形四個頂點,分別賦值給pt1、pt2、pt3、pt4。
(3)根據四個點,選取2 條對邊,兩條邊的邊長分別為L1、L2。設定第一條兩點間要插入n1 個勘探孔,則兩點間距離L1被分為n1+1段;第二條兩點間要插入n2個勘探孔,則兩點間距離L2 被分為n2+1 段。n1 和n2 的初始值都為0。
(4)開啟循環,測試條件為勘探孔間距S 和第一條邊長度L1 的對比,當S 小于L1 時,n1 的值+1。在經過若干輪循環之后,得到的最終插入勘探孔數為n1 個,勘探孔最終間距為x1。開啟第二輪循環,測試條件為勘探孔間距S和第二條邊長度L2 的對比,當S 小于L2 時,n2 的值+1。在經過若干輪循環之后,得到的最終插入勘探孔數為n2 個,勘探孔最終間距為x2。若兩條對邊的插入的勘探孔數相等,則執行下一步;若不相等,則對另外兩條對邊進行測試。若依然不相等,則打印提示。
(5)根據勘探孔數和孔距,以開始點為基點計算插入勘探孔的點的坐標,并檢查開始點和結束點是否已經存在勘探孔,然后插入勘探孔。兩條對邊上的勘探點的插入點一一對應,根據一一對應的點再執行按兩點間直線布孔函數,依次執行生成勘探孔。
由于勘探孔位置由程序控制,勘探孔的間距完全滿足用戶要求,無需執行第10 步。
3.2.4 批量修改勘探孔孔號
本功能對應3.1 節的第11 步-第12 步操作。在布置好鉆孔之后,需要按照先上后下,先左后右的規則修改鉆孔的孔號,然后按照擬建物的性質批量修改孔深。在全部修改完畢之后,才能根據對所有鉆孔的個數與進尺進行統計。這個步驟僅需要進行簡單的計算,基本都為重復操作,適合應用程序來批量處理。具體流程如下:
(1)根據勘探孔的種類創建選擇集,有n 種勘探孔就創建n 個選擇集。根據圖層、圖元類型、塊名屬性選擇所有的勘探孔,每種勘探孔的數量就代表相應選擇集列表的長度。
(2)遍歷n 個選擇集,然后在遍歷單個選擇集中每個元素,將單個選擇集內勘探孔的圖元名取出放在一個數組里。這樣就針對n 種勘探孔生成n 個包含勘探孔圖元名的數組。
(3)遍歷第一個數組中所有圖元,根據圖元名取到每個勘探孔的基點坐標,使用冒泡排序算法,將勘探孔根據先比較Y 坐標排序,再比較X 坐標,對數組重新排序。然后將由小到大孔號根據數組順序依次替換勘探孔圖元的孔號屬性。
(4)遍歷n 個數組,重復以上操作,直至所有數組循環完畢。
3.2.5 統計勘探孔的屬性
本功能對應3.1 節的第14 步操作。在布置好鉆孔之后,自動選中所有勘探孔,對勘探孔進行分類匯總,并自動計算總孔深。這個步驟僅需要進行簡單的計算,具體流程如下:
(1)根據勘探孔的種類創建n 個選擇集,選擇集包含圖紙范圍內所有的該類型勘探孔。
(2)遍歷選擇集中每個元素,將單個選擇集內勘探孔的圖元名取出放在一個數組里。這樣就針對n 種勘探孔生成n 個包含勘探孔圖元名的數組。
(3)遍歷數組中所有圖元名,根據圖元名取到圖元所有屬性。
(4)將同類型同孔深的勘探孔放在同一個數組中,數組長度則為該類型勘探孔個數;將同類型勘探孔的孔數相加求和,將該類型的勘探孔名稱和孔數之和組成新的數組。
(5)將以上數組以Excel 表格形式導出。
3.2.6 繪制剖面圖
本功能對應3.1 節的第15 步操作。在完全布置好鉆孔之后,按照一定規律創建多段線,使得多段線通過相應的鉆孔。具體流程如下:
(1)選中所有勘探孔動態快圖元,將其基點放入數組1。
(2)遍歷數組1,取得其中點的最大x 坐標maxX、最小x 坐標minX、最大y 坐標maxY 和最小y 坐標minY,以及最小x 坐標和最大y 坐標對應的點序號。
(3)比較(maxX-minX)和(maxY-minY)的大小,若大于,則按橫向考慮。
(4)新建數組2,若按橫向考慮,將具有minX 的點添加進數組2,并在數組1 中移除該點。若按縱向考慮,將具有maxY 的點添加進數組2,并在數組1 中移除該點。
(5)將數組2 中最后一點作為參照點,遍歷數組1 中其他點,計算其中所有點到參照點的距離,將距離最小的點加入數組2。
(6)重復上述操作,直至數組1 中元素為0。
(7)將數組2 中第一個元素按照既定的向量方向平移復制產生端點1,數組2 中最后一個元素按照既定的向量方向平移復制產生端點2。
(8)端點1 向既定的向量方向平移復制產生文字插入點1,端點2 向既定的向量方向平移復制產生文字插入點2。
(9)使用多段線命令,按數組2 中順序插入點,生成多段線。
(10)在插入點1、插入點2 處插入剖面號文字,并對文字的屬性進行設置。
為評估該方法的實用性、效率提升效果,本文以“上海楊浦B 站項目地質勘察工程”項目為例。項目總建筑面積約77.2 萬平方米,其中地上總建筑面積為約35.9 萬平方米,地下總建筑面積約41.3 萬平方米(其中地下商業約9.2 萬平方米)。
項目基地范圍內地下室連通(含基地內市政道路下方),地下四層地下室,基礎埋設22.8m,塔樓及附屬裙房共同嵌固于同一地下室。項目包含多個塔樓及群房,其中超高層塔樓地上34 層,總高度150m,標準層平面約60×54m,主體結構擬采用型鋼(鋼管)框架-砼核心筒結構體系。
以工作時長為5 年的中級工程師為樣本,在確定勘探孔深度和控制方案后布置項目的勘察方案,每個步驟實測用時為:
(1)布置勘察方案,為控制建筑輪廓,人工放置圖元(約120 分鐘);
(2)人工檢查勘探孔間距(約20 分鐘);
(3)選擇勘探孔,將其改為控制性孔(約30 分鐘);
(4)繪制勘探孔剖面(約40 分鐘);
(5)人工統計孔數、進尺(約20 分鐘)。
完成該項目,累計用時230 分鐘,共布置60.0~135.0m的取土孔50 只,布置60.0 ~90.0m 靜力觸探孔100 只,小螺紋鉆孔135 只。
在使用勘察方案輔助設計系統后,4.2 節中每個步驟的處理方法和實測用時為:
第一步
該項目共計19 個地上擬建單體,下設4 層地下室。各單體及地下室形狀近矩形,可組合使用直線布孔和四邊形布孔命令,大致完成布孔,用時5 分鐘。刪除不需要的小螺紋鉆孔,并微調鉆孔,使其能更好地控制建筑,使用批量更改孔號命令,再使用批量更改孔深命令,用時10 分鐘。該步驟用時約15 分鐘。
第二步:人工檢查勘探孔間距
勘探孔間距由根據用戶輸入值而確定,并程序計算控制,無需人工復檢,用時0 分鐘。
第三步:選擇勘探孔,將其改為控制性孔
本工程單體較多,且擬建物輪廓及性質差異較大,該步驟需人工完成,用時30 分鐘。
第四步:繪制勘探孔剖面
使用生成剖面命令,選中一定的勘探孔即可生成剖面,然后統一修改剖面序號,用時5 分鐘。
第五步:人工統計孔數、進尺
使用統計命令,即可獲取各類勘探孔及其孔深,用時1分鐘。
以上所有過程累計用時51 分鐘,為原用時的22%,以上5 個步驟中,除第3 步外,所有重復的過程由程序代替。完成的勘探點平面布置圖如圖1 所示。

圖1:勘探點平面布置圖
針對布置巖土工程勘察方案設計的工作量大,重復性高,耗時長,出錯高等問題,基于AutoLISP 語言開發了高效的勘察方案輔助系統。針對勘察方案設計中最耗時的步驟開發出5 個主要功能,使得用戶選擇擬建物輪廓并輸入勘探孔間距后可以在極短的時間內放置勘探孔,并且使得用戶可以批量增加、刪除、修改、查詢、統計勘探孔。根據實例演示可知,采用該輔助極大地提高了巖土工程勘察方案設計的效率,并減少人工失誤的概率,提高勘察方案的質量。