Saturday, March 30, 2019

V-rep 與 Webots 使用者手冊轉入 CMSimfly

網際內容管理實習專案

V-rep

http://www.coppeliarobotics.com/helpFiles/ (Github 倉儲) 為一系列 html 檔案, 可從 V-rep 3.6.1 helpFile 檔案下載, 為了讓使用者能直接利用 CMSimfly 編輯管理此一文件資料, 請各組討論該如何將這些資料內容轉為 CMSimfly 格式的靜態與動態網頁.

靜態網頁請使用 Github Pages, 同步動態網頁則採用 Heroku 製作.

Webots

https://cyberbotics.com/doc/guide/menu (Github 倉儲) 中的 docs 目錄則有一系列的 Markdown 檔案, 目前 Webots 採用 Javascript 以動態模式, 將 Markdown 文件轉為 html, 並且透過倉儲 tag 的版次號, 讓使用者可以直接在網際以 URL 參數擷取不同版次下的技術文件.

Webots 目前對於技術文件處理的流程, 除了能夠將網際文件 (目前有英文版的 guide, reference 與 automobile 等三個文件目錄) 以分散式多人協同進行管理外, 對於之後建立不同語系技術文件, 也相對較有效率, 因為只要透過 URL 的參數指向不同語系 Markdown 所在目錄即可讓使用者選擇各語系、各版次 (透過倉儲 tag release) 的網際技術文件.

例如:

以下為 R2019a 版次, guide, reference 與 automobile 目錄下的文件.

https://www.cyberbotics.com/doc/guide/page?version=R2019a

https://www.cyberbotics.com/doc/reference/page?version=R2019a

https://www.cyberbotics.com/doc/automobile/page?version=R2019a

R2019a-rev1 版次文件則分別如下:

https://www.cyberbotics.com/doc/guide/page?version=R2019a-rev1

https://www.cyberbotics.com/doc/reference/page?version=R2019a-rev1

https://www.cyberbotics.com/doc/automobile/page?version=R2019a-rev1

至於 CMSimfly 直接讓使用者編輯 html 檔案的方式, 只要設法引入網際 Markdown Editor, 並採用上述 Webots 處理 Markdown 文件與版次的方式即可!?


參考資料

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

https://pythonprogramminglanguage.com/get-all-image-links-from-webpage/

https://stackoverflow.com/questions/20132458/how-to-concatenate-two-html-file-bodies-with-beautifulsoup

https://stackoverflow.com/questions/39292881/python-beautifulsoup-replace-img-src

Thursday, March 28, 2019

利用 Msys2 編譯 Multiphysics 分析套件 Range3

編譯步驟

https://github.com/Range-Software/range3 是一套能夠進行機構應力與熱流力分析的電腦輔助工程分析套件.

利用 Msys2 執行 Range3 編譯的流程與 https://2019wcm.blogspot.com/2019/03/v-rep.html 類似, 只需透過

pacman -Sy mingw-w64-x86_64-ffmpeg

加裝 ffmpeg 模組, 然後進入 Range3 目錄中的 range 目錄, 執行

qmake -o Makefile range.pro

mingw32-make -f Makefile

就可以在 Range3/range/Range 目錄中得到 Range_debug.exe, 執行時除了可攜系統中必要的 dll 檔案外, 必須額外下載 libcrypto-1_1-x64.dll 檔案, 就可以開啟執行.

自行利用 Msys2 編譯的 Range3, 由於完全獨立於 Windows 系統中的各動態程式庫, 因此相對於採用 Visual Studio 所的到的 100 MB 套件容量, 上述流程編譯取得的 Range3 容量將高達 1 GB 左右.

參考資料

kmol_range3.7z 下載

電子教科書:

Finite Elements - A Gentle Introduction
https://link.springer.com/book/10.1007/978-1-349-13898-2

Finite Element Methods - A Practical Guide
https://link.springer.com/book/10.1007/978-3-319-49971-0

An Introduction to Linear and Nonlinear Finite Element Analysis - A Computational Approach
https://link.springer.com/book/10.1007/978-0-8176-8160-9

Finite Elements Methods in Mechanics
https://link.springer.com/book/10.1007/978-3-319-08037-6

One-Dimensional Finite Elements - An Introduction to the FE Method
https://link.springer.com/book/10.1007/978-3-319-75145-0

Development and Application of the Finite Element Method based on Matlab
https://link.springer.com/book/10.1007/978-3-642-13153-0

Finite Element Methods for Engineering Sciences - Theoretical Approach and Problem Solving Techniques
https://link.springer.com/book/10.1007/978-3-540-76343-7

Range CAE 開發歷史:

2006.08.19 - 推出 0.9.5-2 版 (GUI 採 GTK+ 編寫)
2006.9.28 - 推出 0.9.6-1 版 (GUI 採 GTK+ 編寫)
2006.10.1 - 推出 0.9.6-2 版 (GUI 採 GTK+ 編寫)
2006.10.27 - 推出 1.0.0-RC1 版 (GUI 採 GTK+ 編寫)
2007.09.17 - 推出 1.1 版 (GUI 採 GTK+ 編寫)
2007.12.18 - 推出 1.2 版 (GUI 採 GTK+ 編寫)
2008.02.25 - 推出 1.3 版 (GUI 採 GTK+ 編寫)
2008.04.07 - 推出 1.4 版 (GUI 採 GTK+ 編寫)
2008.06.23 - 推出 1.5 版 (GUI 採 GTK+ 編寫)
2008.10.30 - 推出 1.6 版 (GUI 採 GTK+ 編寫)
2009.02.16 - 推出 1.9 版 (GUI 採 GTK+ 編寫)
2010.01.18 - 推出 2.1 版 (GUI 採 GTK+ 編寫)
2010.06.01 - 推出 2.2 版 (GUI 採 GTK+ 編寫)
2011.09.05 - 推出 2.3 版 (GUI 採 GTK+ 編寫)

Range CAE 以 Qt 改寫

2018.04.30 - 推出 3.0 版, 原始碼以 GPL3 授權釋出 (GUI 採 Qt 編寫)
2018.11.08 - 推出 3.1 版 (GUI 採 Qt 編寫)
2019.01.12 - 推出 3.2 版 (GUI 採 Qt 編寫)

其他原始碼:

https://github.com/FreeFem/FreeFem-sources

https://github.com/FreeFem/FreeFem-doc

https://github.com/ritchie46/anaStruct

https://github.com/ruimaciel/femp

https://github.com/AppliedMechanics-EAFIT/SolidsPy

Thursday, March 21, 2019

透過 Python 程式修改網誌文章

使用 Google Blogger API 可以利用程式修改網誌文章內容. http://mde.tw/cd2019

執行以下程式, 需要擷取 client_secrets.json 權限資料. 參考 https://developers.google.com/api-client-library/python/guide/aaa_client_secrets, 從  https://console.developers.google.com/apis/credentials 取得 client_secrets.json

可攜程式系統執行前, 必須額外安裝:

pip install google-api-python-client

pip install oauth2client

__author__ = 'disk1 At goodkym.com'

import sys
from oauth2client import client
from googleapiclient import sample_tools

argv = ""
# 認證並建立服務
service, flags = sample_tools.init(
  argv, 'blogger', 'v3', __doc__, __file__,
  scope='https://www.googleapis.com/auth/blogger')

try:
    users = service.users()
    # 取得使用者 profile 資料
    user = users.get(userId='self').execute()
    print('網誌名稱: %s' % user['displayName'])
    blogs = service.blogs()
    # 取得使用者所建立網誌名稱
    blogs = blogs.listByUser(userId='self').execute()
    for blog in blogs['items']:
        print(blog['name'], blog['url'])
    posts = service.posts()
    # 新增網誌 post 時, 需要 blog id
    '''
    body = {
    "kind": "blogger#post",
    "id": "5276710004996457925",
    "title": "透過 Python 程式新增網誌文章",
    "content":"使用 Google Blogger API 可以利用程式新增網誌文章內容"
    }
    insert = posts.insert(blogId='5276710004996457925', body=body)
    posts_doc = insert.execute()
    print(posts_doc)
    '''
    # 更新網誌文章時的 body
    body = {
    "kind": "blogger#post",
    "title": "透過 Python 程式修改網誌文章",
    "content":'''使用 Google Blogger API 可以利用程式修改網誌文章內容. http://mde.tw/cd2019
    '''
    }
    update = posts.update(blogId="5276710004996457925", postId="1389587938059038064", body=body, publish=True)
    update_doc = update.execute()
    print(update_doc)
except(client.AccessTokenRefreshError):
    print("error")
    
參考資料

Wordpress 與 Pelican 整合方案

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 操作設定

Thursday, March 14, 2019

Github Learning Lab

https://lab.github.com/ 是 Github 利用其倉儲所提供的學習課程, 以下為介紹影片.



https://lab.github.com/githubtraining/introduction-to-github 介紹 Github 系統的相關功能, 其中包括:

  • Communicate in issues
  • Manage notifications
  • Create branches
  • Make commits
  • Introduce changes with pull requests
Github 團隊為此, 還特別建置了一個專門的討論區:



goodkym.com 網站

網域購買費用

goodkym.com 是以 .com 為名的網域, 每年的購買費用約為新台幣 500 - 700 元, 至於 .com.tw 的相對網址, 每年的擁有成本稍貴, 約為新台幣 700 - 1000 元, 亦即任何人或單位, 若自行購買網域, 費用大約是每天 2 - 3 元新台幣左右.

至於一個單位或公司需不需要將英文名稱隨後的所有附屬網域全數購買, 就要看公司的規模大小, 因為除了 .com 之外, 還有無數的附屬網域名稱, 假如公司屬於中小企業, 也就是根據台灣的定義, 以製造業、營造業、礦業及土石採取業登記的公司, 其經常雇用員工數未滿兩百人 (與歐盟相同, 但美國則定義為 500 名員工以下為中小企業), 或實收資本額在新台幣八千萬以下者, 建議只要維護一個 .com 網域即可, 不用理會一些網路蟑螂所佔用的 .com.tw, .tw 或其他許許多多的相同名稱, 但附屬網域登記在不同國家的網域名稱.

如何使用公司的網域

公司的網域名稱只是一個代號, 其功用與實體商標類似, 可以印在與公司產品有關的各種文書資料中, 但最大的功用是要讓既有的產品客戶或潛在客戶, 能夠利用公司的網站擷取到所需的服務或資料, 除此之外則希望當這些新舊客戶利用瀏覽器搜尋時, 公司的官方網站能夠名列前茅, 讓使用者很快找到有用的第一手資訊.

利用 Github Pages 伺服公司網站

總共有兩個步驟:


  1. 使用 Github 帳號上的ㄧ個倉儲, 啟用其 Github Pages, 並且將 Domain Name 設為 goodkym.com
  2. 在 goodkym.com 的 DNS 伺服器設定中, 依照 https://help.github.com/en/articles/setting-up-an-apex-domain 的說明進行設定.


完成後, 當使用者以瀏覽器連結 http://goodkym.com, 就可以連結到所設定的 Github Pages 網頁.

接下來就是採用各種網際內容管理的方法, 希望以永續經營的方式來推廣公司的產品, 造福客戶.

目前, 透過 https://onepagelove.com/logis, 將這個免費的單頁網站資料放到上述對應的倉儲分支中, 就從這裡開始設計一個合用的網站.

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