参数介绍
命令行参数用在windows的cmd.exe中。首先cd到CuraEngine.exe所在文件夹,执行:
CuraEngine.exe [参数1] [参数2……] -o <gcode名字> <stl文件名>
就会在当前目录生成相应的gcode。
-h
用法介绍,在cmd里会显示说明
-v
提升verboseb_level等级,不加参数的话默认0级,不会打印log日志,加上-v的话就能用log函数了(logoutput.cpp)
-p
开启logProgress功能(logoutput.cpp),将信息输出到stderr。
-m
这个参数貌似没实现,用的话会报错。
-c
同上。
-j
调用json配置文件,配置文件名紧跟在-j参数后(用空格隔开)。
-s
在命令行输入配置,如:
-s 属性名=值
- -connect ip:portNumber (其中ip和portNumber为整数)
连接一个CommandSocket 对象,配置ip地址和端口号,port默认为49674
- -
处理多个文件,或者清空(?)
-o
紧跟gcode文件名,用fffProcessor.setTargetFile 方法设置输出文件名
代码解析
参数定义在main.cpp中,
首先定义:
fffProcessor processor; //处理stl文件的处理器
std::vector<std::string> files; //记录文件名,因为可能有多个文件
CommandSocket* commandSocket = NULL; //通信类
std::string ip; //ip地址
int port = 49674; //端口号
通过参数对files,commandsocket,ip,port和json文件配置。(for循环)
检测是否有自定义的json文件载入,否则载入默认的fdmprinter.json (和CuraEngine.exe放在同一目录)
如果定义commandsocket,连接。
开始处理stl文件咯~ stl文件处理链接
processor.processFiles(files);
释放处理器资源
processor.finalize();
其他
main.cpp中的signal_FPE函数用于中断处理,当debug模式出现除数为零时打印出错信息并退出。
main.cpp大致就这些。
信息提示输出
定义在logoutput.cpp中。
//输出出错信息
void logError(const char* fmt, ...);
//输出出错信息
void log(const char* fmt, ...);
//输出打印信息,type:哪个处理过程
void logProgress(const char* type, int value, int maxValue)