int main(int argc, char **argv) { #if defined(__linux__) || (defined(__APPLE__) && defined(__MACH__)) //Lower the process priority on linux and mac. setpriority(PRIO_PROCESS, 0, 10); #endif signal(SIGFPE, signal_FPE); GCodeExport gcode; Config config; int fileNr = 0; config.filamentDiameter = 2890; config.filamentFlow = 100; config.initialLayerThickness = 300; config.layerThickness = 100;//100 config.extrusionWidth = 400; config.insetCount = 2; config.downSkinCount = 6; config.upSkinCount = 6; config.initialSpeedupLayers = 4; config.initialLayerSpeed = 20; config.printSpeed = 50; config.infillSpeed = 50; config.moveSpeed = 200; config.fanOnLayerNr = 2; config.skirtDistance = 6000; config.skirtLineCount = 1; config.sparseInfillLineDistance = 100 * config.extrusionWidth / 20; config.infillOverlap = 15;//15 config.objectPosition = Point(102500, 102500); config.objectSink = 0; config.supportAngle = -1; config.supportEverywhere = 0; config.supportLineWidth = config.extrusionWidth; config.retractionAmount = 4.5; config.retractionSpeed = 45; config.retractionAmountExtruderSwitch = 14.5; config.multiVolumeOverlap = 0; config.minimalLayerTime = 5; config.minimalFeedrate = 10; config.coolHeadLift = 1; config.fanSpeedMin = 100; config.fanSpeedMax = 100; config.raftMargin = 5000; config.raftLineSpacing = 1000; config.raftBaseThickness = 0; config.raftBaseLinewidth = 0; config.raftInterfaceThickness = 0; config.raftInterfaceLinewidth = 0; config.fixHorrible = 0; config.startCode = "M109 S210 ;Heatup to 210C\n" "G21 ;metric values\n" "G90 ;absolute positioning\n" "G28 ;Home\n" "G1 Z15.0 F300 ;move the platform down 15mm\n" "G92 E0 ;zero the extruded length\n" "G1 F200 E5 ;extrude 5mm of feed stock\n" "G92 E0 ;zero the extruded length again\n"; config.endCode = "M104 S0 ;extruder heater off\n" "M140 S0 ;heated bed heater off (if you have it)\n" "G91 ;relative positioning\n" "G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n" "G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\n" "G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n" "M84 ;steppers off\n" "G90 ;absolute positioning\n"; fprintf(stdout,"Cura_SteamEngine version %s\n", VERSION); for(int argn = 1; argn < argc; argn++) { char* str = argv[argn]; if (str[0] == '-') { for(str++; *str; str++) { switch(*str) { case 'h': print_usage(); exit(1); case 'v': verbose_level++; break; case 'b': argn++; binaryMeshBlob = fopen(argv[argn], "rb"); break; case 'o': argn++; gcode.setFilename(argv[argn]); if (!gcode.isValid()) { logError("Failed to open %s for output.\n", argv[argn]); exit(1); } gcode.addComment("Generated with Cura_SteamEngine %s", VERSION); break; case 's': argn++; setConfig(config, argv[argn]); break; case 'm': argn++; sscanf(argv[argn], "%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf", &config.matrix.m[0][0], &config.matrix.m[0][1], &config.matrix.m[0][2], &config.matrix.m[1][0], &config.matrix.m[1][1], &config.matrix.m[1][2], &config.matrix.m[2][0], &config.matrix.m[2][1], &config.matrix.m[2][2]); break; default: logError("Unknown option: %c\n", *str); break; } } }else{ if (!gcode.isValid()) { logError("No output file specified\n"); return 1; } processFile(argv[argn], config, gcode, fileNr == 0); fileNr ++; } } if (gcode.isValid()) { gcode.addFanCommand(0); gcode.addCode(config.endCode); log("Print time: %d\n", int(gcode.getTotalPrintTime())); log("Filament: %d\n", int(gcode.getTotalFilamentUsed())); } }