Hank's Blog

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

前言

目前在處理輸出報表的實務上會遇到要貼上照片的問題,有關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)

閱讀全文 »

🙌前言

👉縱斷面發展來源

AutoCAD VBA 縱斷面繪製自動化

🐞開發過程中的小問題

縱斷面繪製時會針對需要文字說明的樁號進行插旗繪製,可能會造成插旗文字出現重疊的原因有兩個

  1. 插旗說明樁號距離太近(0+200、0+205)
  2. 繪製X軸比例太小(1:1000 vs 1:5000)

繪製過程會考量圖紙輸出的舒適度,最小字高通常會以3.4.5為原則,文字說明會固定以30度呈現

當距離太近時可以透過調整X軸比例讓間距拉開,橫向會重疊的時候就進行上下位移,方便讀者觀看。

因此本篇就是要透過VBA抓取說明文字的外框及下線,自動調整文字重疊內容,以下進行說明:

閱讀全文 »

🙌前言

因為工作的緣故,日常會接觸大量的Excel操作,過程不外乎都是一些重複又無趣的動作,也讓我起心動念要透過程式碼的方法來解決這些問題,我操作的軟體是Excel,那直接採用ExcelVBA的語言會是最佳的一個路徑。

程式語言終究還是一種與電腦溝通的工具,重點是你有什麼生活中的問題要進行實作,能夠解決問題的語言就是好語言。

以下是我在自學路上的一些心得,與各位做個分享。

閱讀全文 »
0%