參數介紹
命令行參數用在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)