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  的協同產品設計實習課程, 以虛擬手足球系統的搭建, 讓學員有機會利用上述網際內容管理系統, 從 OnshapeSolvespace 的手足球零組件設計, 到 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 執行協同產品設計專案, 完全是時間與所花費心力成本的考量. 況且從網際可程式化的機械設計的角度而言, 吾人需要的重點技術是透過開源套件, 例如: SolvespaceFreeCADBlenderV-repWebotsRange3 等, 透過 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 年的 WebotsRange3 開源及商業可自由使用, 加上 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


Sunday, April 21, 2019

Virtualbox 虛擬主機的網路設定

Virtualbox 兩層次設定

Virtualbox File 下拉式功能表下的 Preferences 屬於全系統的偏好設定, 而與各虛擬主機對應的 Settings 則僅與該對應的虛擬主機有關.

Virtualbox 虛擬主機網路設定

參考:

https://www.virtualbox.org/manual/ch06.html

https://technology.amis.nl/2018/07/27/virtualbox-networking-explained/

Not Attached

當使用者需要模擬虛擬主機的網路卡連接線被拔除的情況時, 可將該虛擬主機的網路卡以 Not Attached 模式設定.

NAT

當使用者只需要讓虛擬主機能夠上網, 下載檔案或登入電子郵箱時, 可以將虛擬主機的網路卡以 NAT 模式設定. 在 NAT 模式下, 只有 ping 能夠運作, tracert 與其他與 ICMP 、VPN 或 PPTP 等協定對應的功能都將會失效.

NAT  Network

NAT Network 與 NAT 類似, 但使用者可以透過 File-Preferences-Network 新增多個 NAT Network, 並選擇所要使用的網段與 DHCP 或是否支援 IPv6 等設定.

Bridged Adapter

當使用者需要利用虛擬主機建立與 Host 位階相同的網路模式時, 可以將虛擬主機的網卡設訂為 Bridged Adapter.

Internal Network

當使用者需要讓虛擬主機設定為 https://en.wikipedia.org/wiki/Software-defined_networking 時, 可以將網路卡設為可透過軟體調控的網路模式.

Host-only Adapter

當使用者只需要讓虛擬主機與 Host 電腦連線時, 可以將網卡設為 Host-only Adapter, 此一模式的使用時機可以在虛擬主機中配置 WWW 伺服器、應用程式伺服器、Fossil SCM 伺服器, 然後透過 Host 上的瀏覽器進行連線測試, 或者在虛擬主機上安裝特定軟體套件的認證主機, 以便讓 Host 中的軟體套件透過虛擬主機執行授權認證.

參考 vdi:

位於雲端的 Ubuntu 18.04_201904.vdi (約 9 GB) - 已經配置 Fossil SCM: https 5443, Host-only: 192.168.56.2, https: 443 and 8843 for CMSimfly, Squid Proxy Server.

假如要利用 USB 隨身碟存放上述約 9 GB 的 Ubuntu 18.04 vdi 檔案, 必須將隨身碟格式化為 NTFS, 若採 Fat32 格式, 最大單一檔案必須小於 4 GB.

另外在近端有一類似的檔案, 可提供上課學員下載:

http://wcmg1.kmol.info:88/ub1804_nox.vdi (僅限近端用戶使用 IPv6 協定者下載)

參考網際應用程式:

https://github.com/mdecourse/wcms-scrum1

http://mde.tw/2017springcd/blog/brython-spur-gears.html

https://github.com/mdecourse/cd2018/issues/33

https://github.com/looooo/freecad.gears

https://forum.freecadweb.org/viewtopic.php?t=27566

https://www.freecadweb.org/wiki/Scripting_examples

https://github.com/mdecourse/WebCADViewer

https://github.com/JMG1/ExplodedAssembly

https://github.com/shaise/FreeCAD_SheetMetal

https://github.com/jmplonka/InventorLoader

https://github.com/jptned/3DGuitar

https://framagit.org/FrViPofm/Bike3D

Ubuntu 18.04 虛擬主機網路連線設定

設定檔案 /etc/netplan/50-cloud-init.yaml

修改後, 以

    sudo netplan apply

讓設定生效.

Ubuntu 18.04 Service 管理

https://github.com/mdecourse/cadp2018/issues/16#issuecomment-485048985

CMSimfly 透過 uwsgi 在 Ubuntu 18.04 以 service 啟動

https://github.com/mdecourse/cadp2018/issues/16#issuecomment-485080368

Ubuntu 18.04 apt proxy 設定

安裝 Ubuntu 18.04-2 過程中所輸入的 proxy server, 將存入 /etc/apt/apt.conf.d/90curtin-aptproxy 檔案中, 這與之前使用 /etc/apt/apt.conf 的設定不同.

Virtualbox 虛擬主機與實體操作系統間的雙向轉換

https://github.com/mdecourse/cadp2018/issues/16#issuecomment-485101887

Table Foosball 動態系統模擬專案

Table Foosball 動態系統模擬專案

2019 Spring 協同產品設計實習分組專案, 希望利用 Solvespace, Onshape 與 V-rep 建立一個類似



的手足球動態模擬系統, 能讓多使用者利用鍵盤或實體操控桿對打, 使用者與電腦對打, 或透過影像辨識讓電腦程式與程式對打的虛實機電資整合系統.

Table Foosball 相關專利

多年來與 Table Foosball 相關的主要專利如下:

Game Apparatus (1939)

Simulated Hockey Game (1950)

Table soccer or football game structure (1973)

Table soccer or football game structure (1975)

Rod Bearing for Table Soccer  or Fussball Game Structure (1983)

Sectional Rod Bearing for Fussball Game Structure (1991)

Table Soccer or Fussball Game Playing Ball (1991)

Table Soccer Game Bumper Structure (1991)

Table Soccer Playing Figure (1994)

Soccer Table (1994)

Convertible Game Table (1997)

Bracing Structure of Rotary Rod (2000)

Structure of a Soccer Game Table (2001)

Player Structure in a Fooz Ball Game (2002)

Retractable Rotating Rod for Football Table (2002)

Double Sided Soccer Man (2010)

Support Device for Slidable Shafts of Table Soccer Games (2012)

Table FoosBall 尺寸

球桌尺寸可參考:

https://www.gameamigos.net/foosball-table-dimensions/

https://bargames101.com/foosballtabledimensions/

https://en.wikipedia.org/wiki/Table_football#Tables

https://grabcad.com/library/foosball-pool-table-1

https://www.tlnt.com/no-one-accepts-your-offer-because-of-your-foosball-table/

https://www.instructables.com/id/Arduino-Servo-Foosball/

https://www.instructables.com/id/Autonomous-Foosball-Table/

https://create.arduino.cc/projecthub/OSZT/automatic-arduino-goal-counter-for-table-football-soccer-4c4807

感測器與多連桿機構結合, 將得分球送回球場





網際參數可程式化機械設計系統

由於 FreeCAD 自 0.18 版起, 將支援 Python3 執行 API 應用 (https://forum.freecadweb.org/viewtopic.php?f=4&t=35546), 因此未來若能結合 FreeCADWebots, 將有機會建立網際參數可程式化的 Table Foosball 系統 (類似 https://robotbenchmark.net/), 可進一步納入機械設計導向用之影像辨識或 AI 相關系統的開發.

DIY Foosball Table



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/...