Hank's Blog

工程人的設計監造VBA工具交流區

前言

工程執行過程免不了會有很多品管文件需要製作,紙本文件的加值應用相當困難,通常都會放置於一堆又一堆的資料夾中,有需要再去相互參照,大多流於形式,倘若工程文件能夠數位化,對於整個工程資料的保存、查詢會有很多好處,但經過幾次查核委員的建議,關於簽名這件事情他們有意見,既然是需要在現場進行檢查的文件,那當然會是手寫的才最香,殊不知很多委員還是認為電腦直接出的文件不能用,至少簽名的部分要手寫才是真的。

基於這些理由,我希望能夠做到用手寫的觸感去簽署文件,透過Streamlit的前端及streamlit-drawable-canvas作為繪圖器,opencv作為背景去背處理,及PyMuPDF作為轉檔工具,來達成委員的要求...

其實我一直不能理解,中華電信都可以用手寫的觸控板來跟客戶簽約了,為什麼公共工程一定要用紙+筆,現在其實平板電腦都很方便,把要抽查的PDF都先放好在雲端,帶去工地現場選取要抽查的對應PDF後寫紀錄表,寫完後可以即時上傳到雲端,資訊流動才會迅速,也不用這樣浪費一堆紙來記錄這些內容,未來要翻閱從雲端去撈取出來即可。

閱讀全文 »

前言

工程特性如為帶狀工程,比如:水溝、道路等等,通常會以橫斷面法作為土方計算的數量依據,此指土方計算不外乎為:挖方、填方、回填方、CLSM之類。

在繪製土方基本資料時,面積的框選便會是決定數量很重要的部分,實務上的土方計算流程為:

圖層設定:

  • 原地面線
  • 結構線
  • 開挖線
  • 填方線
  • 開挖面積
  • 挖方面積
  1. 繪製挖方面積時,將原地面線與開挖線隔離顯示,透過BO或HATCH生成面積
  2. 繪製填方面積時,將回填線、結構線、開挖線隔離顯示,透過BO或HATCH生成面積

封閉聚合線

CAD內建指令'BO'會出現一張介面,可以藉由點選內部點生成封閉聚合線,指令'-BO'則可以略過介面的程序直接點選,此時封閉聚合線會有'面積'屬性。

填充線

CAD內建指令'HATCH'可以點選內部點生成填充線,此時填充線會有'面積'屬性,須注意之前測試過HATCH可能會有些許的誤差,這個也不清楚原因為何...

閱讀全文 »

前言

目前在處理輸出報表的實務上會遇到要貼上照片的問題,有關python在處理Excel照片部分會需要透過openpyxl裡面相關的套件進行,希望能夠達成下列情況:

給定照片之後可以依照儲存格的範圍貼上照片,儲存格可能是單一儲存格或者是合併儲存格,找出儲存格範圍寬度、儲存格範圍高度

最適合的方式計算過程

  • 照片寬的,比例設定為儲存格範圍寬度/照片寬度,照片長寬同乘上這個比例放大縮小
  • 照片長的,比例設定為儲存格範圍高度/照片高度,照片長寬同乘上這個比例放大縮小
閱讀全文 »

前言

權限控管顧名思義則是讓有登記的人可以進來雲端網頁中操作介面,這對於一些公司內部才能操作的內容有很大的幫助。

權限控管基本功能:

  • 註冊
  • 登入
  • 忘記密碼
  • 重置密碼

發送重置密碼時會隨意產生一組token,內容會包在電子郵件中寄送,這也算是一種多因素認證的機制。

本篇文章前端介面採用Python的Streamlit套件實作,後端邏輯則採用GAS實作,資料庫則採用GoogleSpreadSheet儲存。

正常的帳號密碼實作流程不建議採用明碼儲存,這裡只是一個實作的經驗,看之後密碼的部分要加鹽還是做哈希加密都可以再追加進去。

閱讀全文 »

前言

工程估算為提報計畫前的必要內容,所提報的概估經費關乎於計畫核定後是否會造成實際所需經費是否足夠、執行率會不會有問題。

工程估算方法有兩種:材料及類別

  • 材料是將單元拆分為鋼筋、模板、混凝土...等等可以從標準斷面計算而得的內容。
  • 類別是將工程拆分為渠道工程、道路工程、橋梁工程...等可以明確分類的內容。

本篇文章希望能夠藉由雲端介面的操作來達成以下幾點需求

  1. 工程估算方法將以往的材料導向為類別
  2. 各類別單元內容計算由程式接手,減少人力調配參數。
  3. 輸出報表採用最新版本號,避免各地版本不一造成困擾。
  4. 手機也能在工區現場獲得經費估算成果。
閱讀全文 »

🙌前言

Streamlit是使用python語言的前端套件,他最大的好處是就能透過套件本身程式碼生成一篇篇還算能看的使用者介面,對於Html、CSS、Javascript等前端語言感到不舒服的開發者可以妥善利用,在部署上難度也不高,幾乎可以一鍵達成。

除了python本身內鍵已經有本地端sqlite可以進行資料存儲,如果資料需要上雲的話就會需要額外找尋雲端資料庫來進行資料存放,標準的關聯式有MySQL、postgreSQL、SQLserver等等比較常見的工具、非關聯式資料庫則可以透過mongoDB、firestore等等工具進行挑選。

本篇要介紹的內容是針對比較簡易的前端介面,可以用Google提供的GoogleSheet來進行資料存放,並且透過GoogleAppScripts來做後端語言進行操作。

閱讀全文 »

🙌前言

本篇主要介紹利用 AutoCAD VBA 的物件操作+ Excel VBA 的工作表函數來簡化平坦地貌收方作業的過程。

土方計算是工程施作時有關於甲乙方針對土方數量時的重要依據,分為小型工程及大型工程來討論。

小型工程

土方金額佔比不高的情況下,通常契約數量多少就多少,甲乙雙方不太會有意見。

大型工程

土方金額佔比高的情況下,甲乙雙方會針對設計原始地貌進行收方作業並作成土方報告,並以此作為契約數量修正的依據,再根據結構體的設計高程及圖說指定的開挖方式重新計算挖填方數量。

計算方法選定

地形模型的建立會根據地貌狀況而定

  • 具有複雜地形特徵的地區,使用TIN(不規則三角網)
  • 地形變化相對平緩的地區,使用DEM(數字高程模型)

方格法便是使用DEM的概念,透過每個方格頂點計算方格平均高程後推算求得土方體積,高程頂點則利用IDW(反距離加權法)來進行高程賦值,插值過程會需要大量的基本運算。

有關不規則三角網另請參考筆者前文 CAD VBA@收方作業(不規則三角網法)

閱讀全文 »

🙌前言

工程價格資料庫作業辦法有明定,新台幣1000萬元以上之公共工程於決標日起30日內必須將資料傳輸到主管機關,資料內容:

  1. 得標廠商之契約單價
  2. 經機關核定之預算單價
  3. 其他經主管機關指定者

包含詳細價目表、單價分析表及資源統計表。

最容易達成的方式便是透過公共工程經費電腦估價系統(PCCES)進行預算書與契約編制。

因為大家都使用同一套系統,那麼輸出格式就能夠通用,後續要將契約內容彙整到公司內部所開發的報表系統只需要做一次工就可以了,然而非公共工程的內容會就因為個案不同而需要做細微調整。

閱讀全文 »

🙌前言

監造報表的數量填寫為施工紀錄時最重要的基本功,填寫方式可分為以儲存格填寫、使用者表單填寫,如果掌管工地現場的工地主任對資訊比較不了解的,也很有可能會將內容寫在紙本或白板上拍照上傳群組回報,再由內業工程人員進行資料登打,無論哪種方式,填寫內容都還是以契約項目為依據,只在數量部分做琢磨而已。

契約項目以可量化型態、一式型態、百分比型態為主,這部分請參考前文,不再另外闡述,本篇內容主要介紹填寫時透過單元的概念進行組合項目的過程,當內容以單元進行時,除了工地主任的回報會比較明確,同時也可以針對單元的進行輔以相對的檢核機制與防呆機制,會省下很多麻煩。

閱讀全文 »

🙌前言

CAD版本有非常多種,我目前有接觸過的就有AutoCAD、ZWCAD以及現在正在使用中的ProgeCAD。

在使用VBA進行二次開發的過程,需要考量引用物件模型之間的差異,就目前開發經驗中,AutoCAD與ZWCAD可以透過修改引用名稱就可以有很好的轉換體驗,但是ProgeCAD的基底物件有比較不同的設計,故本篇要來解釋從AutoCAD的VBAcode如何透過我所撰寫的物件轉換函數進行相容,讓程式碼在ProgeCAD也可以順利動起來。

🔗HanksVBA學習歷程-不同CAD版本間也可以引用的Library(clsACAD)

閱讀全文 »
0%