Pyslvs 開發進度
- 新版 Solvespace 獨立 solver 編譯成功
- 長時演算模式
Solvespace solver
根據新版 CMake list 任務,找到 solver 所需的 source code 與 header。
Sources
須注意要辨認平台選擇 platform 目錄中的檔案,否則會有找不到 windows.h
之類的錯誤發生。
- constraint.cpp
- constrainteq.cpp
- entity.cpp
- expr.cpp
- lib.cpp
- system.cpp
- util.cpp
- platform/platform.cpp
- platform/w32util.cpp (Windows)
- platform/unixutil.cpp (Unix)
Headers
雖然只會用到 solvespace.h
和 platform.h
,但是由於 solvespace.h
會 include 其他標頭檔,所以還是得附在目錄中。
- dsc.h
- expr.h
- polygon.h
- resource.h
- sketch.h
- solvespace.h
- ttf.h
- ui.h
- platform/platform.h
接著將所有 sources 編譯成 obj 檔,由於是較新版規則,在 g++ 中加入 -std=c++11
的參數供辨認。
最後包裝 obj 時加上 -shared
編成共享函式庫。
以上流程都為 C++ 編譯操作,往後可能會換成加入 SWIG 端口或 Cython 包裝。
長時演算模式
新增直到手動停止的模式,將代數改為 0 即可,這時 report 會變成每 10 代紀錄一次。
此模式下會一直演化,直到手動中斷為止。
這個模式只是用來測試用,若是在服務端,可以改成演化直到適應值小於某要求後停止,且加上評估演化效率後自動中止的機制。
Comments
comments powered by Disqus