發表文章

目前顯示的是有「org-mode」標籤的文章

Docs-as-Code: A Practical Workflow for Engineering Teams

圖片
Docs-as-Code 文章蒐集   告別 Excel 煉獄:我如何用 Docs-as-Code 管理壓力容器設計 實作 org-head-calc - 其採用 Docs-as-Code 工作流,確保工程計算與技術文件的一致性。    PV Insight Map — 壓力容器工程判斷導航 - 由「各申機械設計工作室」維護,專注於 ASME Sec.VIII Div.1 等國際規範實務應用。使用 Docs-as-Code 並利用 Github Actions 產生網頁。

Automating Engineering Judgment for Pressure Vessel Design

圖片
一鍵產出 ASME 碟形端板計算簡報:GitHub Actions 與 Docs-as-Code 的完美結合 在壓力容器設計中,「工程判斷」的價值在於如何將複雜的法規邏輯轉化為可靠的決策。本影片展示了如何將 ASME Section VIII-1 UG-32 的碟形端板(Torispherical Head)厚度計算,整合進 GitHub Actions 自動化工作流。 透過 Docs-as-Code 的概念,我們實現了從修改參數到自動產出技術簡報的完整流程。這不僅提升了設計效率,更重要的是建立了可追溯、減少人為失誤的「風險防護網」。 【技術重點】 法規依據: 深入解析 ASME VIII-1 碟形端板計算公式。 工具鏈整合: * 使用 Emacs Org-mode 進行技術文件撰寫。 利用 Common Lisp / Maxima 處理核心工程計算。 透過 GitHub Actions 自動化觸發 CI/CD 流程。 成果輸出: 自動產生網頁版技術投影片(Reveal.js),直接用於客戶溝通與技術審核。 投影片:  碟形端板厚度計算 (ASME SEC.VIII DIV.1)  https://roscoe-tw.github.io/org-head-calc/calculation.html Github Project: https://github.com/roscoe-tw/org-head-calc Youtube URL: https://youtu.be/DJ4ZvcYJQQE

同時支援新舊版本的 autolisp

emacs org mode 導出原始碼 使用 emacs 的 org mode 可以用源代碼塊 ( Structure of Code Blocks ) 導出 Big5 和 Unicode (UTF-8) 二個程式。加上文學編程可以同時編二個程式。再加上可以直接編寫程式的說明文件,所以使用 emacs 的 org-mode 可以一舉三得。 舉例如 autolisp-export-example ,原始碼顯示一次可以導出 org-export-big5.lsp 和 org-export-utf-8.lsp ,其中 org-wxport-big5.lsp 支援 Big-5 碼,而 org-export-utf-8.lsp 支援 UTF-8 碼。我們可以另外寫一個 acaddoc.lsp 來判斷以何時載入適合的程式。例如在程式中判定 (defun load-file-mode ()   (if (eql "24.1s (LMS Tech)" (getvar "acadver"))     (load "org-export-utf-8.lsp")     (load "org-export-big5.lsp")) 其中以 AutoCAD 2022 與 AutoCAD 2017 為例。在 (getvar "acadver") 返回  "24.1s (LMS Tech)" 時是 AutoCAD 2022 的版本,它的 autolisp 支援 UTF-8 版本;如果 (getvar "acadver") 返回 "21.0s (LMS Tech)" 它代表 Autocad 2017 ,其 autolisp 支援 Big-5 碼。如此可以依企業中使用新舊版本的 AutoCAD 時,依狀況載入合適的程式碼。

Emacs org-mode 9.4 呼叫 (org-insert-structure-template)

 在 Emacs 中目前最吸睛的套件應該是 org-mode 了。它有著強捍的功能及穩定的品質,但是有個問題是,它幾次升級後都有些在向後支援的設定上令人苦惱。 這次發現的問題是,在 tty 環境下使用 Emacs 26.1 搭配 org-mode 9.4 會有一個狀況,就是要使用 'C-c C-, ' 呼叫 ( org-insert-structure-template ) 功能時, terminal 無法辨示 'C-,' 而送給 emacs ',' 訊號,所以它被解讀為 'C-c ,' (org-priority &optional ACTION SHOW)。 目前的解法: 使用 Emacs gui 程式。 在 .emacs.d/init.el 中加入 (require 'org-tempo) 就可以使用 <s TAB 產生 #+begin_src #+end_src 一來和較舊的版本行為一致,二來可以避開無法呼叫 ( org-insert-structure-template ) 的問題。   參考: org-priority and org-insert-structure-template key binding clash org mode: Structure Templates  

Emacs 與 PDF 檔案互動

 在開發壓力容器強度計算程式時常常需要對照參考文件,有很多文件都是 PDF 檔。要找某一個說明時,在向前跳轉 100 頁時常常會忘了剛才是在哪一頁。後來在網路上看到 Emacs 下有人開發了可以和 PDF 互動的模組 "Interleave",它可以和 org-mode 產生互動。讓人可以使用 org 記錄書籤位置,並可以寫下相關的筆記。 可以讓 org 和 PDF 互動的套件: interleave 另一個套件為 org-noter