可攜 CoppeliaSim 4.3.0 rev12

CoppeliaSim 的安裝套件採用 QSetup 製作, 即便在安裝過程可從 %temp% 中的暫存目錄 (例如: AppData\Local\Temp\SETUP_2639) 取得其 setup.exe 所解開的檔案, 但仍無法直接 extract 出完整的可攜 CoppeliaSim 目錄.

Portable CoppeliaSim

因此這裡所謂的可攜 CoppeliaSim, 其實就是從操作系統完成安裝的目錄中取出資料, 然後加上存入操作系統中的 redistributable dll 檔案製作而成.

其中的 vcRedist/vc2019redist_x64.exe 需要利用 Wix 解出 .msi 之後, 再利用 UniExtract2 解出所需要的 .dll, 並將所有的 .dll 檔案放入可攜 CoppeliaSim 的根目錄中.

解開 vc2019redist_x64.exe 的指令:

wix311-binaries\dark.exe vc2019redist_x64.exe -x extracted

表示要在 extracted 目錄中取得 extracted\AttachedContainer\packages\vcRuntimeMinimum_amd64\vc_runtimeMinimum_x64.msi 之後, 再利用 UniExtract2 解開所需的 dll 檔案, 最後再放入 CoppeliaSim 根目錄. 啟動時直接執行 coppeliaSim.exe 即可.

simscene XML

CoppeliaSim4.0.0 版開始, 提供 XML 檔案格式的輸出入, 此功能允許使用者透過 ASCII 檔案格式建構 CoppeliaSim場景. 其中與機電產品開發過程中的電腦輔助設計架構最直接關聯的就是, 使用者可以直接透過程式方法, 將設計零件以 STL 格式輸出後, 套接在使用者所建構的機電資場景中. 意即: 使用者可以直接從 MCAD 套件中將組立檔案轉進具有 jointsCameraVision sensorsForce sensorsProximity sensors與控制 Scripts 的模擬環境, 而無需全部採手動轉檔方式, 在 CoppeliaSim 圖形介面中進行組立、設定參數或配接各項模擬元件樹狀架構.

當使用者從 CoppeliaSim場景 存為 exhaustive sinscent XML 檔案格式 後, 可以利用下列 Python 程式讀出其中的標註 (總數超過 326 個), 之後再設法利用 Leo Editor 的 import-xml-tags data 設定解讀所有 tags 內容, 並以階層式架構呈現 :

# from https://stackoverflow.com/questions/29596584/getting-a-list-of-xml-tags-in-file-using-xml-etree-elementtree
import xml.etree.ElementTree as ET

def leo_print(x):
    try:
        print(x)
    except:
        g.es(x)

# load and parse the file
xmlTree = ET.parse('two_link_slvs_shaft_simple.simscene.xml')

elemList = []

for elem in xmlTree.iter():
    elemList.append(elem.tag)

# now I remove duplicities - by convertion to set and back to list
elemList = list(set(elemList))

# Just printing out the result
try:
    print(elemList)
except:
    # echo string
    g.es(elemList)

for i in elemList:
    leo_print(i)

下載 CoppeliaSimEdu_4.3.0_rev12.7z (for @gm users only) / 下載 CoppeliaSimEdu_4.3.0_rev12.7z for @nfu