Showing posts with label 2019 spring. Show all posts
Showing posts with label 2019 spring. Show all posts

Tuesday, June 11, 2019

Git 不只是一種軟體工具

Git 所代表的不只是一種軟體工具, 而是一種信念, 一種人與電腦溝通的穩當工作流程.

您所處的團隊沒有使用 Git 或類似的工具, 並不代表您就要跟他們一樣打混仗, 您還在使用目錄複製的方式備份電腦資料嗎? 您還在利用電子郵件上傳或下載檔案的方式執行協同嗎?

利用電腦工作, 真的不用這樣辛苦......

充分了解 Git 與 Fossil SCM 所代表的意義, 才是體驗數位生活該有的正途!

https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/

https://www.freecodecamp.org/news/git-cheat-sheet-and-best-practices-c6ce5321f52/

https://git-scm.com/book/en/v1/Getting-Started-Git-Basics

https://rubygarage.org/blog/most-basic-git-commands-with-examples

https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners

https://github.blog/2013-07-11-github-flow-in-the-browser/

https://github.blog/2009-10-20-how-we-made-github-fast/

https://help.github.com/en/articles/github-glossary

https://www.howtogeek.com/180167/htg-explains-what-is-github-and-what-do-geeks-use-it-for/

https://docs.microsoft.com/en-us/azure/devops/learn/git/what-is-git

https://help.github.com/en/articles/about-project-boards

https://github.com/trending

https://www.techrepublic.com/article/how-to-install-http-git-server-on-ubuntu-18-04/

https://www.techrepublic.com/article/how-to-set-up-a-gitlab-server-and-host-your-own-git-repositories/




第十七週前請完成個人期末報告影片與各項查驗資料準備 - 2019 年 Spring 最重要宣告

KMOLab 課程期末報告提醒 (W15)

宣告重點: 至今仍無個人課程網頁內容者、未每週持續提交工作進度者、未實際拍攝各週操作影片以及未實際根據評分項目參與各分組與全班協同者, 最後將無法順利取得修課及格之學期成績.


請本學期選修協同產品設計實習與網際內容管理課程的同學特別注意, 務必在第十七週上課前, 依據各週所提交推送的操作影片、Github 倉儲提交紀錄、個人網頁、分組網頁與全班協同網頁等資料, 配合下列各課程評分比列進行具體自評.

第十七週與第十八週將分別請每一位同學上台進行期末簡報, 詳細說明本學期各項評分項目中的自評內容與分數.

每一位學員自我查驗項目:

1. 是否在第十七週上課前完成個人至多 5 分鐘的期末報告影片, 上傳至以學號登錄的 Youtube 帳號下, 並分別嵌入個人網站中, 且標題分別為:

    協同產品設計實習課程

        國立虎尾科技大學 - 機械設計工程系 - 協同產品設計實習期末報告 - 學號 - 姓名

    四技部網際內容管理課程

        國立虎尾科技大學 - 機械設計工程系 - 網際內容管理期末報告 - 學號 - 姓名

    五專部網際內容管理課程

        國立虎尾科技大學 - 精密機械工程科 - 網際內容管理期末報告 - 學號 - 姓名

    請注意: 未按照上述規定完成期末報告影片署名與提交嵌入者, 一律不予計分.

2. 每一位學員上台進行期末自評簡報時, 必須舉證個人在各週實際完成的 Github 倉儲歷程資料, 說明個人在分組與全班協同過程中所扮演的角色與貢獻, 且依據課程評分比例進行自評.

以下為各課程的學員評分比例與評分方式:

協同產品設計實習課程

評分比例:

    學員出席 (20%)

    Github 倉儲管理  (20%)

    Onshape 協同操作 (20%)

    V-rep 模擬 (20%)

    程式開發 (20%)

評分方式:

    CD 每週自評與互評表單: https://goo.gl/forms/qtk5fxdeGYHCeI1M2

    學員自我評量 (30%)

    分組自我評量 (30%)

    倉儲歷程查驗 (40%)

網際內容管理課程

評分比例:

    學員出席 (20%)

    電腦組裝與操作系統安裝 (10%) - 以 Virtualbox 虛擬主機配置與設定取代實體安裝

    網路連線配置與設定  (10%)

    Github 倉儲與 CMSimfly 配置 (30%)

    CMSimfly 操作 (20%)

    CMSimfly 開發 (10%)

評分方式:

    WCM 每週自評與互評表單: https://goo.gl/forms/gExeWw3JIrenXi453

    學員自我評量 (30%)

    分組自我評量 (30%)

    倉儲歷程查驗 (40%)


Friday, May 31, 2019

協同產品設計實習課程總結

協同產品設計實習課程流程圖

2019 年 Spring 課程以 V-rep 取代 Webots.



107學年教育目標: 

本課程延續四技部計算機程式與電腦輔助設計實習之教學內容, 探討如何在網際協同環境進行機械產品開發. 

107-2學期教育目標: 

使用可攜程式系統, 以及 CMSimfly 與 portable Git 管理各學員與分組的動態與靜態網際內容管理系統, 同時利用 Onshape 與 V-rep 執行機電資整合產品開發, 當面臨各協同設計階段所遭遇問題時, 各學員可利用客製化程式加以解決.

課程議題:

參與協同產品設計者能否透過可攜程式環境提升效能? 與非可攜程式相較, 有何效益? 必須付出那些代價?

協同設計過程中所牽涉的各種資料, 如何透過版次管理, 讓各成員在專案執行過程所投入的貢獻, 能夠公開透明?

如何利用 Onshape 執行協同產品設計?

如何利用 V-rep 執行協同產品設計?

如何利用 Git 與 Github 執行協同產品設計?


Thursday, May 9, 2019

網際內容管理課程回顧

2019 Spring 網際內容管理課程

五專部

1. 是否已經在自己的隨身碟建立隨身程式系統?

此一隨身系統以 2019_cdb_w5.7z 為基礎, 使用者必須會自行查驗

    是否已經將 portablegit 中的 helper = manager 的設定移除?
     python 是否已經安裝 flask, bs4 與 lxml 模組?
    是否了解 git 以 https 連線時, proxy 將採用那一個檔案中的設定?
    是否已經學會如何採用 ssh 模式維護 github 上的倉儲?
    是否了解 CMSimfly 動態與靜態系統之間的關係?
    是否會在 CMSimfly 中上傳檔案, 引用檔案?
    是否會在 CMsimfly 中上傳圖檔, 引用圖檔?
    是否會在 CMSimfly 中嵌入 Youtube 影片?
    是否會在 CMSimfly 頁面中加入 Javascript 互動程式?

W14 -> 所完成的隨身示範系統為 2019_cdb_w13.7z (s1 Fossil SCM 的 doc 為: https://s1.mde.nfu.edu.tw:5443/kmol2019/doc/trunk/index.html, Github 倉儲為: https://github.com/scrum-4/2019wcmj, Github Pages 網頁為: https://scrum-4.github.io/2019wcmj/)

    是否會更改 CMsimfly 靜態系統所使用的模板?
    是否能將 USB 隨身碟格式為 NTFS 或 extFAT, 以便放入 Ubuntu 虛擬主機檔案?
    是否會使用自己隨身碟中的 Virtualbox 與 Ubuntu 中的 Fossil SCM 來伺服靜態 CMSimfly 檔案?
    是否會使用自己隨身碟中的 Virtualbox 與 Ubuntu 中的 uwsgi 來伺服動態 CMSimfly 系統?

2. 是否已經根據各上述階段任務的操作拍成說明影片, 嵌入自己的 Github Pages 網站?

3. 是否已經著手執行各學員的期末專案, 是否了解各學員的期末報告, 必須同時呈現 html 與 pdf 版本.

各學員繳交供評分之內容: 個人倉儲 Github Pages 網站及 pdf 格式之期末報告.

四技部

除上述五專部各階段任務外, 採用分組協同與全班 Github 協同倉儲模式執行期末專案, 各學員必須繳交在個別學員 Github 倉儲中的內容外, 各分組必須在分組倉儲中集合整理, 且將內容摘要到全班分組倉儲中.

各學員繳交供評分之內容: 個人倉儲 Github Pages 網站及 pdf 格式之期末報告.

各組繳交供評分之內容: 分組倉儲 Github Pages 網站及 pdf 格式之期末報告.

全班協同倉儲中的內容:全班倉儲 Github Pages 網站及 pdf 格式之期末報告.

Thursday, May 2, 2019

網際內容管理課程任務

期末報告類別

2019 年 Spring 的網際內容管理課程已經到了最後執行分組期末報告的階段, 總共可以分為兩個大類:
  1. 持續強化網際內容與系統的可用性
  2. 深入了解網際內容管理系統的配置環境
持續強化網際內容與系統的可用性

此類期末報告的任務, 在將更多適合機械設計與精密機械工程使用的 Javascript 導向內容, 放入 CMSimfly, 並且讓各種裝置都能順利閱讀.

此任務目前已經將 Bootstrap 前端框架配置到 CMSimfly, 其倉儲位於:

https://github.com/scrum-1/wcm2019

網頁則位於:

http://cpgx.kmol.info/wcm2019

在此一類別所能進行的期末報告, 可以透過組員的協同, 將

與
各式 Template 導入 CMSimfly, 讓未來的使用者可以根據不同環境需求, 選擇不同的靜態網頁模板.
至於內容的強化則可根據實習任務三的引導, 將更多設想中的動態 Javascript 模擬或遊戲內容, 放入各組的 CMSimfly 網站中.

深入了解網際內容管理系統的配置環境

此類期末報告的任務, 在利用 Virtualbox 中的 Ubuntu 操作系統, 配置一套可以動態啟動的虛擬網際內容管理系統, 並學習如何在虛擬操作系統與實體操作系統中配置 CMSimfly 網際內容管理系統. 相關規劃可以參考: https://2019wcm.blogspot.com/2019/04/virtualbox.html



Saturday, April 27, 2019

協同產品設計實習流程

Clone Github 倉儲

以 scrum-1 帳號為例, 若採 ssh clone 倉儲, 需要先設定對應權限.

基本概念

從 https://github.com/scrum-1/cd2019 倉儲中對應的 clone or downloads 中 Clone with SSH, 所列出的 URL 為:

    git@github.com:scrum-1/cd2019.git

表示將以 git 帳號, 登入 github.com 主機, 進入 scrum-1 帳號中對應的 cd2019 倉儲, 若直接 git clone 此一倉儲, 則指令為:

    git clone git@github.com:scrum-1/cd2019.git

特別注意, 其中的 github.com 為網站符號名稱, 意思是所採用的 ssh 將利用 @ 前方的 git 當作帳號, 並且將採用 ssh 協定登入 github.com 網站.

假如, 使用者所採用的可攜程式套件, 只在 home 目錄下的 .ssh 目錄登記一個 private key, 使用者就可以直接在 home/.ssh/config 中,將 github.com 當作 Host 代號, 並對應到 Hostname 為 github.com 作為連線的網站名稱.

但是, 若使用者所使用的可攜程式套件, 登錄一個以上的 private keys 時, 就必須透過一個以上不同的 Host 名稱加以區別, 以便導引 ssh 協定至不同區段, 以不同的 private key 對應 Github 上不同帳號下所登錄的 public key.

實際 .ssh/config 設定

# no proxy at home
#ProxyCommand y:/PortableGit/mingw64/bin/connect.exe -H mdeuser@140.130.17.7:3128 %h %p

# for user1
# url = git@github.com_user1:user1/cmstest.git
Host github.com_user1
    User git
    Port 22
    Hostname github.com

    IdentityFile "y:\home\.ssh\id_rsa_user1"

    TCPKeepAlive yes
    IdentitiesOnly yes
   
# for user1
# url = git@github.com_user2:user2/cd2019.git
Host github.com_user2
    User git
    Port 22
    Hostname github.com

    IdentityFile "y:\home\.ssh\id_rsa_user2"

    TCPKeepAlive yes
    IdentitiesOnly yes
   
# for scrum-1
# url = git@github.com_scrum-1:scrum-1/cd2019.git
Host github.com_scrum-1
    User git
    Port 22
    Hostname github.com

    IdentityFile "y:\home\.ssh\id_rsa_scrum-1"

    TCPKeepAlive yes
    IdentitiesOnly yes

 根據上述設定, scrum-1 若要以 ssh 協定在近端 git clone Github 上的 https://github.com/scrum-1/cd2019 內容, 除了必須在 Github 上與 scrum-1 帳號對應的 SSH and GPG keys 中納入 public key 外, 就必須採用:

    git clone git@github.com_scrum-1:scrum-1/cd2019.git

才能將遠端的倉儲內容 git clone 到近端, 之後也才能透過 y:\home\.ssh\id_rsa_scrum-1 這個 private key 進行認證後, 將近端的提交版本推送到遠端.

取得 CMSimfly 倉儲內容

    git clone https://github.com/chiamingyen/cmsimfly.git

由於 https://github.com/scrum-1/cd2019 倉儲一開始只有一個 README.md 檔案, 接下來將最新的 CMSimfly 倉儲內容納入 scrum-1/cd2019 倉儲中.

有關 CMSimfly 倉儲

由於 CMSimfly 是一個以網際可程式化機械設計合成系統教學為目標的網際內容管理系統, 因此除了電子書類的動態與靜態網頁系統外, 還包括網際簡報與靜態網誌系統, 而且各系統的開發流程均採用 Leo Editor 大綱管理系統進行, 將這些原先各自獨立的網際系統混雜在一個倉儲中, 雖然容易讓初學者望之卻步, 但是若能夠花一些時間了解這些系統間彼此的關聯性, 其終極目標不外乎在試圖打造一套「網際可程式化機械設計合成系統」,  CMSimfly 倉儲中包含:

1. 動態的 Python Flask 網際內容管理系統 (即動態 CMSimfly), 主要讓使用者可以編寫伺服器段的 Python3 程式, 透過瀏覽器 frontend 上的表單介面與存放在伺服器上的 CAD, CAE, 自動控制或最佳化分析程式庫進行互動, 最後再以 email 通知使用者設計分析結果, 並將 2D, 3D 與動態模擬的結果, 以 HTML5 與 Javascripts 格式傳回瀏覽器端.

2. 靜態的 CMSimfly, 主要從上述動態的 Python Flask 系統, 將各頁面轉為純 html 資料, 其目的就是要使用只提供 WWW 功能的 Github Pages, Fossil SCM doc Page, Nginx 等系統伺服這些靜態網頁.

3. 靜態的 Reveal.js 網際簡報系統, 機械設計流程牽涉一系列的表達, 因此在 CMSimfly 中採用 config 目錄中的 reveal.leo 來管理網際簡報系統的內容. 使用者透過 config/reveal.leo 所產生的網際簡報系統位於 CMSimfly 倉儲中的 reveal 目錄中, 且簡報內容所使用的靜態圖檔, 例如: .png, .jpg, .git 或 .svg, 可以取自靜態的 CMSimfly 系統中的 images 目錄, stl 格式的 3D 零組件檔案則可從 CMSimfly 的 downloads 目錄中引用, 例如, 從 http://mde.tw/cd2019/content/FreeCAD%20STL.html 頁面中引用 FreeCAD 所建立的簡單零件:



 並且, Leo Editor 僅透過大綱層次管理 Reveal.js 網際簡報檔案中的各 block 頁面, 從協同產品設計實習課程的角度而言, 未來也能透過 Python 程式, 根據靜態 CMSimfly 或 Pelican 網誌, 從各倉儲版次內容中, 「自動」整理出設計階段所需的網際簡報內容.

4. 靜態的 Pelican 網誌系統, 動態或動態 CMSimfly, 目的在編寫章節清楚的電子書, Reveal.js 則旨在建立網際簡報, 而 Pelican 則可配合協同設計專案執行日期, 以日誌模式編寫協同設計紀事, 且可以在每篇網誌文章中加入 Disqus 網際留言互動系統, 以便針對協同產品設計流程中所記錄的事項進行各種互動與討論. 至於 Pelican 網誌系統中必須引用的各式 2D, 3D, 動畫或數學方程式, 與 Reveal.js 網際剪報系統相同, 可以引用自靜態 CMSimfly 中已經上傳至遠端 Github Pages 上的對應版本內容.

5. Github 倉儲中的 Issues 系統, 可用來追蹤與倉儲內容相關的各種議題, 也可以將協同產品設計專案中所牽涉的各項任務, 利用 Issues 指派給各協同人員, 並藉以回報任務處理進度或面臨問題時將採取的處理方案討論等.

6. Github 倉儲中的 Wiki 系統, 由於上述 CMSimfly, 靜態與動態系統, 或 Reveal.js, 或 Pelican 網誌, 甚至 Issues 都與協同設計流程有關, 當個別使用者針對這些內容改版時, 必須設法與先前的內容版本合併, 或必須循序針對執行任務的結果進行追蹤或討論, 而 Wiki 系統則可以在這些系統之外, 提供一個各協同人員可以隨時任意編輯的網際「快記」系統, 無論是針對尚未納入 CMSimfly 電子書之前的瑣碎資料收集, 或者在執行特定任務時, 必須提醒或引導其他組員的各種內容, 都可以直接先放在與 Github 倉儲對應的 Wiki 系統中.

手足球模擬系統專案

當參與協同產品設計實習的各組員, 在充分了解上述 Github 倉儲與 CMSimfly 所提供的各式網際內容管理系統後, 真正的協同設計任務才正要開始展開.

2019 年 Spring  的協同產品設計實習課程, 以虛擬手足球系統的搭建, 讓學員有機會利用上述網際內容管理系統, 從 Onshape 與 Solvespace 的手足球零組件設計, 到 V-rep 的機電資系統模擬, 課程專案的執行共牽涉以下任務 (各階段負責執行任務組員除了將各項執行細節內容納入倉儲網際管理外, 必須各自拍攝操作過程影片, 納入各自的 Youtube 帳號中):

1. 手足球系統的零組件尺寸分析 (可行性分析)

2. 手足球系統的零組件參數設計與繪圖 (零組件初步設計繪圖)

3. 手足球系統中各球員擊球與操控桿移動旋轉的 V-rep 動態模擬 (系統功能模擬)

4. 手足球發球與進球後自動送球機構設計與 V-rep 動態模擬 (機構與傳動系統設計與模擬)

5. 手足球模擬系統功能展示 (模擬展示與說明影片)

6. 完成手足球零組件細部設計 (可參考 https://youtu.be/PgnvZV5s13c 中各項設計), 並將設計 BOM (Bill of Materials) 納入 CMSimfly 網際內容管理系統. (系統 BOM 文件整理)

7. 各組利用倉儲中的 Reveal.js 進行結案簡報 (結案口頭簡報)

8. 各組完成 html 與 pdf 格式之手足球專案結案報告 (文字結案報告書)

協同產品設計實習課程規劃與執行討論

為何使用 Onshape

當許多在高工時代便已經熟悉 SolidWorks, Inventor, NX 或 Creo 的學員, 一接觸到以自行建構「網際可程式化機械設計合成系統」為目標的系列課程, 例如: 電腦輔助設計實習與協同產品設計實習課程時, 第一個疑問就是: 為什麼要使用 Onshape 執行零組件的參數設計繪圖, 而不採用上述這些傳統廣為業界採用的電腦輔助設計繪圖套件 (MCAD, Mechanical Computer Aided Design), 理由其實很簡單:

因為這些以單機 Windows 版本為主的 MCAD, 沒有免費提供給非營利的教育單位使用, 並且若要利用這些單機套件執行網際雲端協同產品設計專案, 通常還必須搭配高單價且綁定在 Windows Server、 MS SQL 與產品資料管理 (Product Data Management) 系統架構群中.

換言之, 之所以採用 Onshape 執行協同產品設計專案, 完全是時間與所花費心力成本的考量. 況且從網際可程式化的機械設計的角度而言, 吾人需要的重點技術是透過開源套件, 例如: Solvespace、FreeCAD、Blender、V-rep、Webots 與 Range3 等, 透過 Ubuntu 伺服器端的 Python3 加上 Cython, 讓參與協同的學員, 能夠自行快速打造各式 Python3 設計分析程式, 並透過 Cython 轉換, 以 C/C++ 的速度執行網際協同設計分析.

為何需要 Github

由於上述採用開源軟體執行專案的同時, 以程式化操控各式套件產生零組件的過程, 這些明碼的設計流程資料, 便有利用分散式版次管理系統的價值.

例如: 在 https://github.com/KmolYuan/Pyslvs-UI 的多連桿機構設計流程中, 尺寸合成後已經可以直接透過程式取得各連桿的 Solvespace 格式檔案, 但目前仍需仰賴手動進行後續避開機構干涉的組立流程, 之後若能透過伺服器端的 Python3 程式操控 FreeCAD 0.18 之後的版本 (才能支援 Python3), 整個手足球模擬系統的得分後送球機構零組件, 便可透過多連桿機構套件與 FreeCAD 的結合, 自動在尺寸合成後, 完成多連桿的組立流程, 甚至自動轉為 VRML97 格式, 轉入 Webots 進行後續的模擬分析.

而這些與機械、電子電機與資訊科技密切整合的設計過程, 所牽涉的各項參數與流程訂定, 在不同時間點會有不同的版本細節內容, 若能使用雲端分散式版次管理, 除了較無需擔心重要資料遺失之外, 也能讓每一位參與協同的成員, 對專案任務的付出內容, 完全攤在陽光下, 不僅能有效提供任課教師針對執行歷程評分外, 各學員也能養成長期參與全球協同開源專案的認知與能力.

假如沒有網路與 Github

多年來, 網路上許多原先免費提供使用的服務, 終究有中止或改變營運策略的可能, 那麼一旦 Onshape 不再免費提供非營利教育單位使用, 諸如 Github 的各種服務, 也可能不再免費或無法使用, 該如何持續進行所謂的「網際可程式化機械設計合成系統」開發或相關課程推動?

未來能夠取代 Onshape 的工具, 將會是 FreeCAD, 由於 FreeCAD 的原始碼位於 https://github.com/FreeCAD, 吾人必須有能力自行編譯各操作系統中使用的 FreeCAD 套件.

此外, 在區域網路搭建 Fossil SCM 伺服主機, 已經可以完全取代 Github 目前所提供的主要功能. 並且透過 Virtualbox 虛擬主機, 可以大幅提升網際可程式化機械設計合成系統開發的效能.


Monday, April 22, 2019

讀書的方法

為何還需要談讀書的方法?

因為許多年經學子, 儘管已經上學十二多多年了, 可能還沒能了解, 何謂讀書的方法!

讀書是求取學問有效的方法之一, 問題在於:

假如某一門課, 並沒有指定特定的一本教科書, 只提供一堆網頁, 一堆程式套件, 該如何「讀書」?

其實, 仔細想想, 讀書是一種學習態度, 無論是哪一門課, 由哪位老師任教, 採用何種教材, 準備傳授何種知識與技能, 只要態度正確, 就應該算是掌握了正確的讀書方法.

何謂正確的讀書態度?

正確讀書態度的第一要務是積極, 積極的學習指的是一位學生:
  1. 會在課堂時間認真面對各時段所討論的主題
  2. 會認真設法了解電腦操作過程中的每一項細節
  3. 會思考揣摩任課教師所要傳達的理念
  4. 會想盡方法鼓舞同組學員認真參與學習
  5. 會認真仔細的幫助同組學員解決各項問題
  6. 會勤作筆記, 針對課程內容, 整理出屬於自己的一套學習心得
  7. 會隨時做好準備, 針對課程主題, 發表自己的看法
以網際內容管理課程為例

在機械設計工程系開設「網際內容管理」選修課程, 有其歷史背景.

當年, 虎尾科技大學在創設「資訊管理系」的時候, 正好是教育部推動「製造與商務科技教育整合」的時段, 當年機械設計工程系、自動化工程系、工業管理系與資訊管理系共同推動一個所謂「製商整合」學程, 其中的理念可說是目前正夯的「工業 4.0」概念初步萌芽的階段. 許多專家都一致認為, 機械設計與製造必須積極運用網路與資訊, 讓不同領域的工程師能夠透過網路與內容管理系統進行協同設計與製造.

於是, 「網際內容管理」選修課程就開在當年擁有全校唯一獨立連外網路專線, 且電腦伺服器眾多的機械設計工程系.

「網際內容管理」課程的目標, 就是讓機械設計工程師有能力透過網際上的內容管理系統, 從配置實體或虛擬的伺服器開始, 逐步將機械設計流程中所涉的各項內容, 包括口語、文字、 2D、3D、數學與實體內容, 放上網路, 目的在設法提升機械產品設計、自動化管理與製造流程的效益..

儘管之後不如預期達成四系製商整合學程的終極目標, 但是開設於機械設計工程系的「網際內容管理」課程的目的, 仍一本初衷, 希望透過與「計算機程式」、「電腦輔助設計實習」與「協同產品設計實習」等系列課程的訓練, 達到讓每一位學員都能運用網路與系統, 搭建一套「網際可程式化機械設計合成系統」的目的.
  1. 計算機程式 - 可程式化設計 - programming
  2. 網際內容管理 - 網際可程式化設計 - web-based programming
  3. 電腦輔助設計實習 - 網際可程式化機械設計 - web-based programmable mechanical design
  4. 協同產品設計實習 - 網際可程式化機械設計合成 - web-based programmable mechanical design synthesis
programming - python, c, lua, javascript, git, github, 網際工程計算機與運算儲存資料庫
web-based programming - flask, bs4, lxml, 網際內容管理與資料庫整合
web-based programmable mechanical design - onshape, solvespace, freecad, blender
從正齒輪齒面寬網際設計 - freecad 產生齒輪 3D 零件到網際齒輪箱設計
web-based programmable mechanical design synthesis - range3, fossil scm
AI 與影像辨識系統置入手足球系統或彈珠台

因此, 「網際內容管理」課程的主題, 就包含重點主題 - 延伸主題:
  1. 操作系統的網路設定 - Windows 10 與 Ubuntu 18.04-2
  2. 瀏覽器的代理主機設定 - 代理主機如何設置
  3. 可攜系統的網路應用 - Python、C 與 Lua 程式執行與分散式版次管理環境
  4. 網際內容管理系統的使用 - Python based 與 Blogger 整合
  5. 網際內容管理系統的創建 - 網路動態前後端系統與 Python/Javascript 整合
  6. 網際內容管理系統的配置 - 雲端與 Ubuntu 虛實伺服器整合
而各項主題的任務執行過程, 就會出現許多操作細節, 並且課程中所要傳達的重要理念就是:

機械設計工程師能否了解網路與內容管理系統, 進而透過網際內容管理系統的配置, 提升協同機械設計流程的效益.

以協同產品設計實習課程為例

一旦完成上述「網際內容管理」課程所要傳授的技術與知識, 隨後的「電腦輔助設計實習」與 「協同產品設計實習」課程其實都架構在同一個主線上, 也就是持續探討:

機械設計工程師能否運用網路系統, 以協同模式有效且持續改進的流程進行產品開發? 因為從 https://appstore.onshape.com 中各項原先被限制在只能單機或區網運作的許多機械設計分析與延伸規劃, 已經逐步被搬上雲端.

「電腦輔助設計實習」之所以主要採用 Onshape 進行零組件的設計與繪製, 就是植基於網際協同的大目標, 而透過 Github 整合所有課程內容, 則更是在有效協同與持續改進的方向上, 讓學員有機會利用網際系統長時間累積自己的學習歷程, 證明自己的學習成效.

「協同產品設計實習」課程的主題, 其實與「電腦輔助設計實習」的課程主題相同, 只是後者為前者的基礎, 當使用者能夠使用雲端 Onshape 進行實習項目的零組件設計繪圖之後, 必須設法透過參數化與程式化的設計結合, 在分散式版次管理的流程下, 進行機械設計,  以下就是這兩門課程的重點主題 - 延伸主題:
  1. 能否充分掌握 Onshape 設計繪圖的功能 - 利用 FeatureScript 進行零組件設計
  2. 能否將電腦輔助繪圖中的參數與設計目標結合 - 將繪圖系統配置於遠端, 透過網際表單操控零組件
  3. 能否透過設計分析進行機構設計 - 利用網際平台執行平面機構的結構與尺寸合成
  4. 能否透過設計分析進行傳動設計 - 利用網際平台執行傳動設計
  5. 能否透過設計分析進行機電設計 - 利用網際平台執行機電設計
  6. 能否利用單機套件進行機電資產品功能模擬 - 利用網際平台執行機電資產品功能模擬
  7. 能否針對上述機電資整合產品建立完成的製程規劃 - 能夠利用網際平台完成產品原型製作
結語

以「網際可程式化機械設計合成系統」 (web based programmable mechanical design synthesis system) 的開發, 作為培養下一代機械設計工程師的終極目標, 已經可以從 https://github.com/KmolYuan/Pyslvs-UI 專案開發歷程中看到方向, 過去幾乎必須仰賴封閉高價商用軟體套件教學的時代, 從 2013 年 V-rep 開源且教育版可自由使用, 到 2018 年的 Webots 及 Range3 開源及商業可自由使用, 加上 FreeCAD 0.18 版起開始支援 Python3, 以及 2002 年就已經開源可自由使用的 Blender, 對於能夠充分掌握讀書方法的機械設計工程師, 再也沒有比現在更好充分利用網際與開源套件, 打造真正屬於自己能掌握的高效機電資整合產品平台更好的時機了!

參考資料

Blender

https://www.blender.org



FreeCAD

https://forum.arduino.cc/index.php?topic=486053.0

https://github.com/FreeCAD/FreeCAD/releases/tag/0.18

FreeCAD 0.18.7z


Friday, April 12, 2019

2019 Spring 期中考週

學員期中報告影片錄製

上課鐘聲響後 20 分鐘內, 各學員必須啟動 ShareX, 在電腦教室錄製無語音, 至多五分鐘的期中報告自評影片, 拍攝過程中, 可利用 PowerPoint 或其他文字編輯器, 引導影片觀看者了解影片中所要呈現的網站、倉儲或特定的歷程內容.

影片內容必須清楚呈現各學員從開學至第八週期間, 與課程內容相關的各項任務執行所完成內容.

影片標題與說明

影片錄製完成後, 請上傳至個人的 Youtube 網站, 並且在影片標題註記「國立虎尾科技大學機械設計工程系 (or 精密機械工程科) 期中報告」並加上課程名稱以及學員學號. 影片說明欄位必須標示與影片內容有關的個人倉儲、網站以及其他相關網際連結.

學員填寫自評表單

上課鐘聲響後 25 - 30 分鐘內, 各學員將在即時網際試算表上填寫期中自評成績.

個人期中報告影片嵌入網頁

第一堂上課結束前, 各學員必須以期中報告作為 H1 頁面標題, 將上述個人期中報告影片, 依照學號順序, 嵌入分組網站(or 個人網站) 頁面中, 若該課程已經透過 Github Classroom 分組, 各學員必須以個人身分註記, 在分組倉儲中進行新增提交推送, 隨後進行改版學員, 則必須設法 git pull 並處理內容衝突或合併後改版.

學員口頭期中報告

自第二堂課起, 各學員依據上述所完成的各項任務內容,  按照學號順序, 進行 2-3 分鐘的口頭報告.


Thursday, March 21, 2019

2019 Spring 第五週總結課程教學影片內容

導入 Ungit

說明自 2019 Spring 開始, 可以利用 ungit 簡化近端 Git 指令的使用, 透過網際圖形化介面, 讓使用者進行分散式內容版次管理.

說明如何利用 CMSimfly 以動態模式在近端改版後, 將資料轉為靜態網頁後, 新增提交推送到遠端對應倉儲, 詳細說明請參閱下列影片:



利用 kungit.bat 在倉儲目錄中啟用 ungit



自製可攜系統

以下影片則說明如何自行建立可攜程式系統, 包括從 Python 下載, 安裝, 複製到隨身碟, 移除系統安裝, 然後進行命令搜尋設定等相關技術, 所完成的可攜隨身系統可以解譯流程執行 Python 3 與 ANSI C 程式:




納入 ShareX 的可攜系統:



建立 Blogger 網誌

本學期除了繼續使用 Pelican 網誌系統外, 還導入動態的 Google Blogger 網誌, 以下影片說明如何登入 Google 帳號後, 建立客製化的 Blogger 系統:



機械設計工程系網誌: https://mde2019.blogspot.com/ 

精密機械工程科網誌: https://pmenfu.blogspot.com/

建立 Github 倉儲




建立 Github Pages 網站




利用 CMSimfly 以及 Github Pages 建立網際內容管理系統:


以 ssh 連線對 Github 倉儲改版







加入 y:\home\.ssh\config 設定, 讓 ssh 連線透過 Proxy Server 擷取資料:






IPv6 環境設定與 Git 操作設定

Tuesday, March 5, 2019

Computer Networking 相關教材

https://github.com/mdecourse/wcm2019/issues/1 列出幾份與電腦網路有關的教材, 其中包括超過 800 頁的 An Introduction to Computer Networks.pdf, 100 頁左右的 Data Communication and Computer Network.pdf, 23 頁摘要式的 Introduction to Computer Networking.pdf, 以及 38 頁簡報式的 Networking Fundamental.pdf.

這些資料包含簡要瀏覽 [3, 4] 以及正式電腦網路相關課程都適合使用的完整教科書 [1, 2].

以機械設計或精密機械有關的網際內容管理來看, 學員可以從綜一館 6-9 樓的電腦網路配置與應用作為目標, 配合上述教材進行學習.

從客戶端的角色而言, 則可以先從 Windows 10 的網路設定開始, 了解基本 TCP/IP 的協定, IPv4 與 IPv6 的設定, DNS 伺服器的選擇, ipconfig /all, nslookup 與 tracert 等指令的使用作為開端.

接下來則配合 Google Chrome 與 Firefox 瀏覽器的 proxy 伺服器設定與選用, 了解如何在各樓層的電腦配線與路由器的接力下, 連通到系主幹以及學校主幹.

最後, 則可以將身分從網路使用者提升為網路管理者, 嘗試在 Windows 10 環境中, 以 Virtualbox 虛擬主機學習配置 Ubuntu 伺服器, 了解 Linux 的操作系統、網路架構與相關指令, 並且學習如何配置 Bind Server, Squid Proxy Server, Stunnel, WSGI Server, 以便將與機械設計或精密機械有關的網際程式安裝在虛擬主機中, 讓參與協同成員可以透過電腦與網路的整合, 提高工作效率.

Tuesday, February 26, 2019

Github Classroom

這個學期 KMOL 仍然沿用 https://classroom.github.com/, 並且將以 https://classroom.github.com/classrooms/47958496-mdekmol 作為雲端教室, 目前已經利用亂數隨機分組, 建立 https://classroom.github.com/classrooms/47958496-mdekmol/group-assignments/cd2019a-task1, 將全班分為六組, 以便進行協同產品設計實習任務.

目前所推動的第一任務為可攜程式環境系統建置, 希望建立可隨身啟用的 Python, ANIS C 與 Lua 程式開發環境, 並內建 Solvespace, V-rep, Range3 以及其他常用工具, 例如: zoomit, processexplorer, kdiff3, sharex, HxD, wget 等.

參考資料

https://education.github.com/guide/assignments





Wednesday, February 13, 2019

2019 Spring 課程目標

網際內容管理

讓學員得以利用全球資訊網發表與 (精密) 機械 (設計) 相關的內容, 並進行有效管理.

內容發表: Google Blogger, Github Pages

有效管理: 透過 API 程式整合兩者之間的內容, 包括 CMSimfly, Reveal 與 Pelican Blog 與 Blogger

協同產品設計實習

讓學員得以利用 Onshape 以協同模式, 進行機電資有關的產品開發, 並利用 V-rep 執行該產品的模擬驗證.

協同使用 Onshape

熟悉 V-rep 相關功能與應用

共同目標

各學員必須每週進行學習自評與互評, 並學習如何透過內容充實 (使用夠好麥克風錄音) 的影片 (on Youtube) 發表心得.


利用 Google 表單進行課程自評與互評

網際內容管理課程自評與互評表單: https://goo.gl/forms/gExeWw3JIrenXi453 (只允許 gm.nfu.edu.tw 帳號登入者填表)

協同產品設計實習課程自評與互評表單: https://goo.gl/forms/qtk5fxdeGYHCeI1M2 (只允許 gm.nfu.edu.tw 帳號登入者填表)

使用流程:

各學員在每週課程結束後至下週上課前時段, 可以利用上列表單回覆自評與互評結果.

由於各表單包含兩班修課人員, 因此將表單與 Google 試算表連結後, 可以將內如複製至 Ethercalc 查看, 或透過各班修課人員名單, 以程式從各週擷取各班學員自評與互評相關資料後, 以作為課程期中與期末評量時參考.

請注意: 本示範網誌以 disk1 AT Goodkym 達康登錄, 而上述評量表單則以 send1 At mde dot nfu dot edu dot tw 建立.



分組網誌回傳表單: https://goo.gl/forms/L5rlblsswi7nAz4v1 (由各班各分組組長負責填寫)

NX12

NX 12 Help https://docs.plm.automation.siemens.com/tdoc/nx/12/nx_help Python related https://docs.plm.automation.siemens.com/tdoc/nx/...