用Android设备调用CuraEngine对3D打印进行切片

用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,谢谢!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值