repetier/Repetier-Host — pull request #239 by eze-eoc (2013-08-09 17:54:41+00:00)
Title: Features and bug fix

Hi
I work for kikailabs, a company that manufactures and sells 3d printers. Our models are based on reprap and are open source too.
We've been making some customizations to Repetier-Host based on a couple of features some customers requested, and we decided to share them in the hope they could be useful.
These are the changes done so far:
- Added an area to write a printer id, on top of the controllers. This area can be hidden (it's hidden by default). You can set a text and a background color. This is useful in environments with many 3d printers. Users probably have many Repetier-Host processes running, and this allows them to identify which printer they are using in each one. This configuration is not persistent (it's instance specific, so it doesn't make sense to persist it).
- Added a feature to postpone a job. This stores the current state and remaining gcode in a file, so that it can be resumed later. When resuming, it generates a gcode in the gcode editor, with a short gcode at the beginning that restores the state and the remaining gcode later. This feature has been tested with our printers, which use a Marlin, and with only one extruder (the code should support multi-extruders, but as I say, it hasn't been tested).
In order to save the state, you must go to "File" -> "Postponed jobs" -> "Postpone current job" or press F8. This will ask you to name the snapshot, and then it will store the state once the current layer is finished (giving you the chance to force saving the state "now" or resume the job without saving the state). Once saved, it stops the job.
- Fixed a bug: Some windows, like Slic3rSetup, if you close them using ALT+F4 instead of clicking on OK or Cancel, if you reopen the window it throws an error and closes the app. The problem was that the code expected the window to be hidden, not disposed, and closing with ALT+F4 disposed the window. In order to fix them, each time the window is closing, it hides it instead.
- Changed slic3r folder browser, so that it shows the full file system, and not only subdirectories of ApplicationData. This was requested by some users. We were thinking in selecting ApplicationData by default if no path was given, but I haven't changed this yet.

Known bugs:
- When resuming a postponed job, there's a step where it uses @pause to let the user extrude some plastic in order to have flow. This step is after the step where repetier waits for the temperature to be restored. However, the @pause is executed before the temperature is reached, because it's the arduino, and not the repetier, the one who blocks waiting for that temperature. This can be a bit confusing, because the user will see the pause window saying "extrude plastic please", but they won't be able until the temperature is reached.
- When the extruder position is restored, it first goes 5 millimeters up in order to ensure it won't touch the model when moving, and then it goes down. However, I haven't added a validation to ensure the extruder won't try to go higher than the maximum z. If the model is too tall, it could try to move higher than possible.
- Translations for these new features have only been written in spanish (written by me) and english (written by me and corrected by someone from usa). This corrections led to some differences between the code and the messages, like calling "Pending jobs" in the code but "Postponed Job" in the messages. It would be better to unify this.
- If you decide to merge this changes, please, verify my project configuration doesn't change yours. I added two images (rename.png and rename32.png, even though only one of them is used), so, it's not enough to merge code changes, you will have to merge resource files too.

Well, that's all so far. We might add more features in the future.
I hope these changes will be useful.