用Android設備呼叫CuraEngine
1、打開Android studio,新建c++工程,
2、將引擎所以原始碼匯入.\app\src\main\cpp中,(引擎原始碼最好通過git clone下載)
3、修改cmkelists,首先將兩個中間件protobuf和arcus去掉,然后將生成exe去掉,具體如圖



將clipper編譯成動態庫,

將其他所有原始碼編譯成動態庫,

連接上述兩個庫,

再連接多執行緒,

編譯native-lib動態庫,

連接到原始碼庫,

分別連接log-lib庫,

4、添加讀寫sd卡檔案的權限:
首先在AndroidManifest.xml中添加讀寫檔案的靜態權限,

其次在mainactivity.java中添加讀寫檔案動態權限,代碼有些長,如何添加可百度,
5、添加c++共享庫:
在build.gradle中添加如下代碼,用來生成c++共享庫,

6、在native-lib.cpp中寫jni介面,
將原始碼中的main.cpp代碼移植到此cpp中,匯入相應頭檔案,將main函式改為無參函式,具體引數在main函式中直接賦值,具體做法如圖所示:

其中上圖最下面一行為引擎原始碼提供的介面,經過上述賦值后,要將myargv強制轉換成char**,
7、拼接命令列,
命令列中具體引數含義要搞清楚,可以在引擎官網查看,其中需要兩個json組態檔,要列印模型的stl檔案,需要四個路徑(兩個json檔案所在路徑,stl檔案所在路徑,輸出gcode路徑),其路徑均為android上路徑,因此android上存盤檔案的路徑要弄明白,我的路徑命令列為:{“a”, “slice”, “-v”, “-j”,"/mnt/sdcard/Android/data/com.example.myapplication/definitions/fdmprinter.def.json", “-v”, “-j”, “/mnt/sdcard/Android/data/com.example.myapplication/definitions/fdmextruder.def.json”,"-o", “/mnt/sdcard/Android/data/com.example.myapplication/output/test2.gcode”,"-e1","-l", “/mnt/sdcard/Android/data/com.example.myapplication/stl/aixin.STL”}
最后所編譯出來的庫有:

在編譯程序原始碼有可能出現錯誤,按提示修改即可,(原始碼總體上不用修改太多)
可以通過log重定向,將引擎中的log輸出連接到Android上,可以查看列印程序,具體成功截圖:







PS:第一次寫博客,水平有限,有什么問題可以聯系本尊,扣扣:1335823306,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/162579.html
標籤:其他
上一篇:在現有Fabric網路上設定和運行Caliper性能測驗 官方操作檔案中文版
下一篇:自定義回應資料結構
