autolisp 齒輪繪製/ Gear Drawing

 前一陣子有發表了使用 autolisp 驅動齒輪的文章,就有朋友在問:有了齒輪會轉是很炫沒錯,但是前題是你要有齒輪才能轉呀!怎麼繪製齒輪對學機械設計的人來說,它是一門學問。因為它和有一堆的參數要記得。而且數據多到只能用查表得到。我們也知道一般的正齒輪的齒面曲線為拋物線,在取點的過程中如果要更精密的拋物線就要分更多線段才能獲得。基本上繪製一個齒輪如果要用按步就班的使用 CAD 指令畫出來,就要花費不少時間。假設在設計的過程之中發現齒輪的參數不對,或是其他零件配合不上時,基本上已經花費時間畫好的齒輪就要擱置,重新使用新的參數繪製。

我們自行開發了正齒輪繪製程式,用來展現齒輪動畫的成果,詳情請見《 將 autocad 繪製的齒輪轉動》。而下面的影片是展示齒輪繪製的流程;我們把要輪入的參數儘量的減少,並且把齒面的拋物線取樣數提高,得到一個快速繪製出齒輪的幾何圖形。


 對於自由軟體使用或是程式開發相關問題有興趣的話,歡迎留言討論。

 

各申機械設計工作室; Each Application Mechanical Design Studio

壓力容器設計 各申機械設計工作室

壓寶計劃的環境介紹

 使用專用軟體

工作室剛運行的時候,採購專用軟體及它可使用的系統花了一筆不少的費用。後續軟體的維護費持續的增加之中,如果沒有客戶的支持,可能在第二年就要結束。專用的軟體在世面上流通的很少,而用於壓力容器設計的專用軟體更少;在各國設計壓力容器的專用軟體的數量曲指可數。所以在創業初期投資在它身上可以獲得不錯的利益。當然有些人士會認為軟體使用非正當方式取得就好,甚至以為計算書的內容用非法手段取得就好,不需要購買正式的版權軟體。但是在提供正式的壓力容器/ 桶槽的設計計算文件服務時,可以確認其內容可以供專業人士信賴是基本要求。就市場上的競爭方面,也可以保護自己,尤其是對手使用法律或是版權使用規範去攻擊其文件的合法性時,採購正版的軟體可以免除這方面的麻煩。

然而在專用軟體可提供的計算文件之外,其他要驗證的機件、結構或是其他計算,有什麼工具好使用呢?我們以下介紹壓寶計劃使用的軟體及環境。

自由軟體的應用

《壓寶計劃的作業環境》 中有列出我們所使用的工具,有專用軟體如 PVElite 、 AutoCAD 等,也展現出其使用的作業系統等更全面性的介紹。其內容會依壓寶計劃進行的狀態而調整。

作業系統

依作業系統的支援,因為要安裝專用軟體所以有 MS Windows ,在此之外,大部份的環境是在 Debian/ Linux 的系統上開發和使用。在組織外部需要使用壓寶計劃的相關工具,則經由網路連回組織內的主機進行運算。使用 Debian/ Linux 主要的原因是穩定,而且套件管理使用 APT 系統,安裝及升級的部份相對簡單。其官網在這 Debian 通用作業系統

軟體研發

說到軟體開發,我們使用 common lisp , SBCL。這是一個相對冷門的程式語言,而且常有人問為何要用它開發程式?簡單的回答是因為壓力容器設計沒有很多軟體工具,所以必需自己開發,然而是自己開發的話,使用自己喜歡的程式語言會比較合適。對於 common lisp 比較詳細的介紹,可以看看《駭客與畫家》或是 《WHAT MADE LISP DIFFERENT》。目標是在網際網路上放上壓寶計劃系統。以下是用 common lisp 作為網站程式開發的介面。

Arduino UNO 網路控制介面

 


 自底向上的開發模式: 從簡單易懂的切入點開始。

 
長度單位換算 common lisp 套件開發網頁程式

以單位換算的函數開始一步一步增加工具的實用性,並維持正確性。


 

排版系統

壓寶計劃: 計算書文件的排版工具 》 中有介紹我們使用的排版系統,主要是 LaTeX 的使用。使用 LaTeX 排版是因為它可以應用版本控制。版本控制我們使用 git 系統,它可以使用網路分散作業,以及可以分支作業。Git 是一個 免費和開源 的 分佈式版本控制系統旨在處理從小型到 速度和效率非常大的項目。官網 Git 。有個小知識是 Git 和 Linux 的作者都是 Linus Torvalds

 工程計算

設計壓力容器計算工具介紹 》,直接以 Maxiam 作為首先介紹的工具。 Maxima wiki 有列出

它的能力

  • 符號運算(含一定的推理能力)
  • 各種基礎數學函式庫
  • 複數和任意精度(use "bfloats")計算(只受記憶體限制)
  • 利用 gnuplot 進行2維及3維函式繪圖
  • 可編程
  • 可計算文件,支援插入,標題單元,章節單元,備註,輸入單元,文字單元,圖片
  • 生成 LaTeX 格式的數學式
  • 方便的載入 Common Lisp 語言或 Maxima 本身的語言寫成的 Package
  • 基於符號而不只是數值的微積分運算
  • 矩陣運算
  • 函式展開化簡縮併
  • 上千頁的手冊

其實重點只有三個,1. 它可編程。2. 它可以生成 LaTeX 的數學式。3. 它是 Common lisp 寫成的。

文件編輯器/ 系統

Emacs 這個軟體一開始是用來作文件編輯器使用的。但是它的工作不只於此。因為它有一個 Slime 模組可以成為 common lisp  的 repl 介面。 提供 GNU Emacs 網址,它會說明 Emacs 是用一種稱為 Emacs Lisp 作為擴展的文件編輯器。它整合了上述各種工具,使我們不需要離開 Emacs 就可以進行 Maxima 、 LaTeX 、 SBCL (common lisp) 程式開發以及使用 git 進行版本控制。與其說它是文件編輯器,不如認為它是一個整合好的系統開發環境。例如以下畫面

計算書製作-壓力容器容積計算

 


 它就是在 Emacs 下,使用各種擴展及模組進行此計劃的工具開發。在開發過程之中我們也使用 Emacs org-mode 作為紀錄及製作說明文件。 請見 Org mode  的介紹

串連工作/ 自動執行

壓寶計劃應用上述工具,在 Debian/ Linux 的環境之下,使用 Emacs 可以將各項開發工作串連在相同的系統操作之下。並且可以利用 Emacs org-mode 記錄開發過程及備註事項。使用 Unix like 的開發流程,讓我們得以有效率的獲得自由軟體開發者的貢獻。使用 REPL 的模式下,讓我們可以很快的取得結果,加快程式寫作的速度。在開源碼且正式授權下自由使用及開發各項自己所需的工具。如果在 MS Windows 環境下,我們使用 Cygwin  MSYS2 得到類似的支持。 作為開發者使用這些工具,及撰寫自動化執行的腳本,認為對系統開發會得到很大的幫助。 

無論是壓力容器設計專用軟體的採購,特殊要求的程式設置及開發,自從業以來產生種種奇特的經歷沒有能在一段文章說完整,下次會把詳細的狀況告訴大家。如果有任何議題或是意見請聯絡我們,大家一起分享討論。


各申機械設計工作室; Each Application Mechanical Design Studio

壓力容器設計 各申機械設計工作室

壓寶計劃: 計算書文件的排版工具

文件排版

現在使用電腦製作文件使用工具一般是微軟的辦公室文件系統( MS Office ) ,例如 Word、Excel 和 PowerPoint。這類工具一般稱為 所見即所得(英文:WYSIWYG 為"What You See Is What You Get"的縮寫)是一種系統。操作人員需要同時掌握更多相關領域的知識;如設計、打字、排版等工序等各個工序。假設製作短篇文件,或是由少數人共同編排時,使用這類工具可以迅速取得完整和美觀的文件。但是如果由多數人共同編排同一個文件時,常常會因為各個人員對於內容的排版安排的不同時,造成他們看到的文件呈現的方式不同。例如有些人認為每段文章要空二行,但是也有認為空一行即可。或者縮排要空幾格的問題?這些問題會在開始編輯後以及正式出版前會發生爭議。另外在投稿到其他平台時,每個平台會有各自對於排版的要求。例如各大專學校論文出版的要求。

 這些排版參數多如牛毛,而如 MS Office 這類工具軟體版本次多次更迭後,其檔案格式修改後或多或少會造成文件的編排不同。壓力容器設計的文件檔案會經過長時間的編輯,如計算文件使用的 Excel 公式,會使用試算表及公式的連結部份,經過長時間後會發現遺失公式的連結。要注意計算結果是否正確,不能直接使用。使用 Word ? 它不會計算數據。排數學公式還不錯,但是其計算結果需要自行輸入,使用上也要注意內容是否正確。

計算書文件製作

計算書的重點當然是數據計算要正確,以上的工具在少量的計算文件上可以在容許的時間中人工確認。但是要整合整個設備各種零件的計算及說明就要花費人員大量的時間及心力。所以專業的壓力容器計算工具如 PV Elite 就應運而生。它把壓力容器各項設計數據運算後產出符合法規的數據,及可利用的文件內容。如果想要有 PV Elite 這類工具的文件產出能力,我能想到數種的方案,而最直接的方式是使用現成的工具 1. Maxima 2. Make 3. LaTex 。

Maxima 電腦代數系統

Maxima 是一種用LISP 編寫的電腦代數系統(Computer Algebra System),用於公式推導和符號計算,它是一套自由軟體,在GNU通用公眾授權條款下發行。(Maxima Wiki)

使用 Maxima 產生完整的數據評估,並搭配 LaTeX 出版需要的文件。

Make 工具程式

Make 是一個在軟體開發中所使用的工具程式(Utility software),經由讀取「makefile」的檔案以自動化建構軟體。(make Wiki)

makefile 寫入需要評估最新版本的檔案資料,可以達成自動化建構最新的設計文件,節省人力校對的時間。

LaTeX 排版

 LaTeX 是一種基於 tex 的排版系統,使用它即使沒有排版的知識也可以發揮 tex 的功能。對於複雜的數學公式可以容易的生成,非常適合生成科技、物理和數學相關的文件。(LaTeX Wiki)

LaTeX 可以整合各項文件、圖表及資料整合。可維護長時間的版次檔案。

計算書文件製作步驟

  1. 使用 Maxima 計算所需要的數據,並且輸出結果。
  2. 製作 LaTex 檔案以排版輸出所需要的計算書文件。
  3.  製作 makefile 以確認 Maxima 及 LaTex 檔案的狀態,維持計算書文件為最新的版本。
 
 

源始碼

壓力容器容積計算工具源始碼,其中有應用端板體積計算的函數。另外還有圓桶形容積計算的說明。


各申機械設計工作室; Each Application Mechanical Design Studio

壓力容器設計 各申機械設計工作室


精選文章

X2Go 中 Emacs GUI 中的中文輸入

 為何要用 X2Go 連接遠端伺服器? 使用 Debian/Linux 很久了,從接觸 Emacs 作為主要的編輯器之後,它就伴隨著我在工作上解決各稱問題。最近我使用的筆電在過了十年之後到了壽命的終結。而此時剛好接到一個案子要到客戶的公司進行認證會議,急需一個熟悉的作業環境。後來...

熱門文章