計算機程式

計算機程式課程在教導學生利用電腦完成各項與機械設計流程有關的任務.

為什麼非學不可?

https://cacm.acm.org/blogs/blog-cacm/166115-why-scientists-and-engineers-must-learn-programming/fulltext

首先, 看看機械設計流程會牽涉哪些任務, 所謂機械設計, 就是歷經詳細思慮考量, 完成互動元件間之精巧配置, 使其展現特定功能之具體規劃表達.

換言之, 機械設計是一種具體規劃的表達 (presentation), 其內容是經過一系列詳細的思慮與考量所得到的結果, 而此項結果通常有具體的功能, 並且包含許多互動 (interaction) 元件之間的彈性與精巧配置 (flexible and sophisticated configuration).

我們將上述與機械設計有關的關鍵字引列如下:

  1. 機械設計是一種表達, 此種表達可以利用文字、口語、2D 靜態圖像、3D 或影音動態圖像、理論分析或實體呈現.

  2. 機械設計的過程所需要的各種思慮與考量牽涉許多定性與定量的分析, 包含許多工程原理原則與實務經驗, 這些分析除了必須利用數學建立模型, 透過演算預先模擬外, 還需要使用有效率可協同的方式紀錄過程中所產生的各種資料.

  3. 機械設計產品中所包含的各種互動元件, 包括硬體元件、流體元件、軟體元件與管理元件等.

  4. 機械設計過程中, 為了在實體化之前能預先針對各種互動元件間的組成與配置進行最佳化, 因此需要使用各種逼真的模擬方法加以呈現.

如何進行文字、2D&3D表達

有沒有一種方法可以讓多名使用者協同管理一份文件, 其中包含各種互動式圖文與影音資料, 各使用者在編修內容過程可以有效對資料進行保全, 可以有效分散備份, 可以紀錄各編修者所增刪的內容, 可以透過有效率的方法散佈此份文件的內容?

使用工具的評量方法

機械設計工程師為了有效完成具體規劃內容的表達, 過程中必須使用各種類型的工具, 其中包括:

  1. 文字資料構建、管理與呈現的工具 (text)

2 口語資料構建、管理與呈現的工具 (oral)

  1. 2D 靜態圖像資料構建、管理與呈現的工具 (2d)

  2. 3D 或影音動態圖像資料構建、管理與呈現的工具 (3d)

  3. 理論分析資料構建、管理與呈現的工具 (analytical)

  4. 實體構建、管理與呈現的工具 (physical)

工具取得、維護使用成本與其他工具整合效能成本等

  1. 工具取得成本 (now and how)

  2. 維護更新與永續使用成本 (update and sustainable)

  3. 工具掌握度與整合效能成本 (integration)

一定要學 C

C 是為建立 Unix 操作系統而生的程式語言, 也是近代許多高階程式語言建構的基礎, 例如, 最早的 C 程式編譯器雖然採用組合語言編寫, 但是隨後的 C 程式編譯器則可以採用舊版的 C 來編譯, 而 Python 解譯器在 1980 年代晚期出現時, 就是以 C 程式編寫, 之後雖然有採用 Java 編寫的 Jython (2001), 以 C# 編寫的 IronPython (2006), 以 RPython 編寫的 PyPy (2007), 以 Javascript 編寫的 Brython (2012), 但是 CPython 仍然是最通用的版本.

儘管 C 程式語言對於工程師而言非常重要, 但是 C 或更進階的 C++ 程式語言的學習並不容易, 並不只是因為 C/C++ 擁有指標, 能夠控制電腦的底層記憶體, 而是因為 C/C++ 程式語言所涵蓋的應用非常廣.

但是無論如何, 工程師一定要學會基本的 C 程式語言, 倒是毋庸置疑.

https://www.asme.org/career-education/articles/teachers-academics/c-as-part-of-a-mechanical-engineering-curriculum

C 的指標與陣列導引

http://cad-lab.github.io/manual/post/c-cheng-shi-yu-yan-de-zhi-biao-yu-zhen-lie-dao-yin-zhong-wen-fan-yi.html

CP to CADP

https://github.com/2015fallhw/cptocadp

如何完成下列工作?

1) 從一本英文書的文字檔中, 算出總字數, 並按照英文字母排列, 列出書中所使用的單字, 並查出各單字的中文解釋.

2) 從網站中擷取當天台幣與美金及英鎊的匯率, 並根據某一列有台幣、美金與英鎊的檔案進行各幣值的總結算.

3) 每組有六人, 某一任務需要完成六項工作, 每人負責一項, 但各工作間必須互相配合, 任務進行中需要完整呈現各組員每一階段所完成的內容細節, 請問該如何完成.

https://github.com/dustinrohde/python-rpn

4) 如何將材料特性 2D 圖表轉為電腦可以套用的文字檔或資料庫檔案?

漸開線正齒輪齒面寬運算 - 選擇正齒輪對所要傳遞的功率大小, 選擇所要使用的正齒輪齒數、模數與壓力角, 選擇齒輪的材質, 選擇小齒輪的齒數, 選擇安全係數, 從上述資料中算出齒輪齒面寬, 以便能在安全的範圍中, 不致產生過大噪音條件下完成所需功率的傳遞.

漸開線正齒輪

功率

齒數、模數與壓力角

齒輪的材質與強度

安全係數

振動與噪音

齒輪的鍵銷設計

齒輪的軸尺寸、強度與耐用度設計

軸承的選用設計

齒輪箱的設計

齒輪的潤滑與散熱設計

其他相關的設計分析、製造規劃與後勤維修等議題

5) 文字檔與數位檔案的差別與運用, 各種 2D 與 3D 零組件檔格式的讀取與轉換

https://en.wikipedia.org/wiki/AutoCAD_DXF

http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf

ASCII DXF File Format

Binary DXF File Format

https://en.wikipedia.org/wiki/STL_(file_format)

http://www.fabbers.com/tech/STL_Format

ASCII STL File Format

Binary STL File Format

IGES Version 5.3: http://paulbourke.net/dataformats/iges/IGES.pdf

IGES Version 6: https://filemonger.com/specs/igs/devdept.com/version6.pdf

https://en.wikipedia.org/wiki/IGES

DXF, IGES and STEP: http://homepages.cae.wisc.edu/~me232/info/dxf_iges_step.pdf

Python3 學習

Official Tutorial: https://docs.python.org/3/tutorial/

10 min Python Tutorial

help(), dir(), print(), range(), built-in types,

看影片自學: https://www.youtube.com/watch?v=D48iCw3WWpI

http://www.spronck.net/pythonbook

https://github.com/coodict/python3-in-one-pic/blob/master/notebooks/py3-in-one-pic.ipynb

資料分析: https://lectures.quantecon.org/py/

Python 很慢?

https://www.youtube.com/watch?v=8hHOxfXcWsg

https://www.youtube.com/watch?v=a8LsdodGoWQ

PyQT

https://kuanyui.github.io/2014/09/13/learn-python-via-pyqt/

網際程式繪圖