Coder Social home page Coder Social logo

prusa3d / prusacontrol Goto Github PK

View Code? Open in Web Editor NEW
127.0 27.0 45.0 6.44 MB

PrusaControl is an alternative user interface for Slic3r Prusa Edition

Home Page: http://prusacontrol.org

License: GNU General Public License v3.0

Python 98.70% GLSL 1.30%
3d-printing python pyqt4 opengl numpy prusa

prusacontrol's Introduction

PrusaControl is deprecated

PrusaControl is an alternative user interface for Slic3r Prusa Edition. With focus to be easy to use, novice friendly, multi-language and with auto updated printing settings. Just load stl file, select material and press generate button.

Key features

  • Simple and good looking user interface
  • Best from Slic3r slicing engine
  • Multi-language
  • For main desktop platforms (Windows, macOS, Linux)
  • Auto-updated printing settings
  • Software update check
  • Easy use rotation and scale tool
  • Undo and Redo

Some features are still in development

Video:

Dependencies (tested version)

  • python (3.5.x)

  • PyQt4 (4.11.4)

  • numpy (1.12.1)

  • numpy-stl (2.2.3)

  • pyrr (0.8.3)

  • PyOpenGL (3.1.0)

  • PyOpenGL-accelerate (3.1.0)

  • Slic3r PE (>=1.31.2)

  • pyobjc (3.2.1) on macOS platform

Slic3r is placed in folder tools/Slic3r-Lite

Documentation

Not yet, but we are working on it :-)

Translations

If you want to create translation of PrusaControl, to your native language, you can. First, check if your language is not in folder ts or in pull request section. If you find pull request, of your language, please review it. We are not able to check every language and we will accept only translations reviewed by some other translator.

For translating to new language, make fork of PrusaControl repository. Create new file in ts folder by copy/rename of file en_US.ts and use it as example. Its XML file with simple structure. Please, try to make same long strings as in English translation and be careful on space/tab symbols. You can use tool Qt Linguist for edit and generating binary version .qm of translation. For testing, you have to add binary (.qm) file to translation folder and add new language identifier to controller.py file in dict self.enumeration(around line 92). When you are done, create pull request only from new .ts file.

License

PrusaControl is licensed under GPLv3

prusacontrol's People

Contributors

backendrulz avatar narfdotpl avatar probonopd avatar prusa-support avatar tibor-vavra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

prusacontrol's Issues

Remember print settings between jobs

Every time I press Reset, or restart the application, the print settings revert back to their default settings (PLA, 0,15 mm, 20 %). I would prefer that PrusaControl remember the last used settings instead. Possibly with a "default" button which reverts the settings to their default values.

PrusaControl crash on bootup

PrusaControl fails on bootup with a Fatal Error! when using Windows 8.1

Failed to execute script main.

The same installer at another windows 8.1 laptop works fine.

`
[INFO][controller.py:55:init()]-Local path: C:\Program Files (x86)\PrusaControl
[ERROR][main.py:77:log_exception()]-Logging an uncaught exception
Traceback (most recent call last):
File "urllib\request.py", line 1254, in do_open
File "http\client.py", line 1107, in request
File "http\client.py", line 1152, in _send_request
File "http\client.py", line 1103, in endheaders
File "http\client.py", line 934, in _send_output
File "http\client.py", line 877, in send
File "http\client.py", line 1253, in connect
File "http\client.py", line 849, in connect
File "socket.py", line 712, in create_connection
File "socket.py", line 703, in create_connection
TimeoutError: [WinError 10060] Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "main.py", line 170, in
File "main.py", line 139, in main
File "controller.py", line 62, in init
File "parameters.py", line 292, in init
File "parameters.py", line 363, in download_new_settings_files
File "urllib\request.py", line 163, in urlopen
File "urllib\request.py", line 466, in open
File "urllib\request.py", line 484, in _open
File "urllib\request.py", line 444, in _call_chain
File "urllib\request.py", line 1297, in https_open
File "urllib\request.py", line 1256, in do_open
urllib.error.URLError: <urlopen error [WinError 10060] Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder>`

Servers down? HTTP error 500: internal server error

When trying to start prusacontrol i get an error straight away.
When looking into the log file ist says this:

[INFO][controller.py:55:__init__()]-Local path: C:\Program Files (x86)\PrusaControl\ [ERROR][main.py:77:log_exception()]-Logging an uncaught exception Traceback (most recent call last): File "main.py", line 170, in <module> File "main.py", line 139, in main File "controller.py", line 62, in __init__ File "parameters.py", line 292, in __init__ File "parameters.py", line 378, in download_new_settings_files File "urllib\request.py", line 163, in urlopen File "urllib\request.py", line 472, in open File "urllib\request.py", line 582, in http_response File "urllib\request.py", line 510, in error File "urllib\request.py", line 444, in _call_chain File "urllib\request.py", line 590, in http_error_default urllib.error.HTTPError: HTTP Error 500: Internal Server Error

I searched trough other errors here on the git and saw the link others where send to check, and also this gives a 500 error.

Crashes on Kubuntu 17.04

Starts OK, but crashes after selecting anything from the menu

Cannot mix incompatible Qt library (version 0x40807) with this library (version 0x40806)
Aborted (core dumped)

Save project don't save on Linux

Using Ubuntu 16.04, PrusaControl 0.9.2_297_beta.
"Save Project" actually saves nothing...it just creates a 21 bytes file. If you open it with "Open Project", nothing is loaded.

Feature Request: Easy Add/modify/manage new filiment

Would be great if we could add our own filament types within the GUI easily and then manage our types.

Just needs a few basic categories of material with basic settings, then you can modify temperatures, % rate, and perhaps a first layer modify.

example:
Select template type PLA [it will pre-fill/suggest 210 for the extruder and 50 for print bed]

Name: Inland PLA
print bed: 60 extruder: 205 extrusion rate: 100
First layer modifier checked
Extrusion rate: 101 [it keeps the other settings the same]

Boot splash screen is forced above all other windows

Using Windows 10, the boot up splash screen hovers over all other windows, effectively rendering the computer unusable until PrusaControl finishes loading. Given that it takes quite some time to load, this is a bit of a nuisance.

It'd be lovely if the splash screen could be sent to the background (e.g., some other window gets focus, alt-tab, etc).

Warning and Print info distorted on Retina windows displays

Warning and Print info distorted on Retina windows displays.

Probably other items on screen too small (button save gcode, back, buttons to arrange, rotate - 2nd screenshot).

See attached images. Done on Microsoft Surface Pro4 (Screen: 12.3” PixelSense Display , Resolution: 2736 x 1824 (267 PPI))
prusa-control
prusa-control2

Feature request: Make json_settings_url in AppParameters user configurable

I'd like to configure the repository where the settings come from. Currently it is hard-coded to the software:
https://github.com/prusa3d/PrusaControl/blob/master/parameters.py#L222

My use case is the following: We have a Prusa i3 MK2S at work and everyone is allowed to use it (Slic3r runs on their own computers). However, as we print mostly mechanical objects I tuned our settings. I distribute these settings by having a git repo that is cloned by each user into ~/.Slicer. As PrusaControl already has the feature to update print settings on startup, it would be awesome if it would instead pull from our settings, instead of the official ones.

Maybe those hard-coded parameters (also the ones following after json_settings_url should be moved to data/defaults.cfg?

Feature request: Easy model rotation around all axes.

For now you only support graphical rotation around the z axis. Slic3r also only allows direct rotation only around z (via buttons) and other roations only via context menu.

However, most of the time when slicing my own models, I need to rotate around x or y because the CAD tool exported the model as designed, which is often not laying flat on the print table.

How about adding rotation options around the other two axes as well? I'd use that much more often than z rotation. I know I can do this on the right menu, but still, graphical option would be nice.

PrusaControl pollutes Windows home directory

On Windows installs PrusaControl saves a lot of files into the home directory. On Linux and OSX these files are saved to more appropriate locations which are hidden from the user in general use.

I propose that user files are added to the %appdata% folder which is the normal location for these sorts of files.

Problem files/folders

  • .prusacontrol
  • printrunconf.ini
  • prusacontrol.cfg

Ideally prusacontrol.log would also be relocated but I understand PC is still currently in beta so this isn't as important.

Advanced mode to change Slic3r settings?

I like the GUI, but have tweaked my Slic3r settings a lot to get them where I like them. I wouldn't use any software unless it offered me the same configuration options. Even an option to use one of the Slic3r settings files without any way of changing them in Prusa Control, like Repetier Host does, would be usable.

Space on vertical gap between part and support material is too thin.

Using the settings for non-solvable support with a soluble interface between the sport and the part. The vertical gap on the print is too small and the part and support fuse. The Slic3r settings that work appear to be 120%, but there is no setting to change that in PrusaControl. Please consider increasing the default to a larger gap.

Provide an AppImage for Linux

Providing an AppImage for PrusaControl (like the one that is provided for Slic3r Prusa Edition) would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions

Would there be interest in this? If yes, then I could help with this.

Mirror functionality missing

I am missing mirror functionality (even if negative percentage in size can be used, mirror is used quite often).

Failed to execute script main

When I execute PrusaControl.exe (with full path) from another directory it fails with "Failed to execute script main". This fatal error dialog is hidden behind always-on-top splash screen, which must be clicked on to hide and show the error.

I need to run it from another folder because I registered PrusaControl as default app for STL files
.
Also, I don't know why, but according to the code it can open STL file when it's specified in the command line as not first, but second parameter. This works: "PrusaControl.exe blabla myfile.stl" Is it a bug or just missing documentation?

Thanks!

Linux: Hardcoded username in path

On Linux with 0.9.2-297_beta-g9f565dd

            self.slicer_place = ['/home/tibor/dev/Slic3r/bin/slic3r']

The same also prevents me from doing any slicing.

Crashes on launch on Fedora 26 64-bit

Immediately after launching before any UI is drawn, the program crashes.

[dtaylor@dylantaylor-precision ~]$ ./prusacontrol_0.9.2.297_beta.AppImage 
Segmentation fault (core dumped)

415 much slower to read and render than on 390 on MacOS

I'm not sure if this effects Windows as well as the Mac but I'm seeing some strange behavior with the new version.

When dragging a gcode file into PC 415 it takes 24m21seconds to read the file and then display and show the estimated time. The same file in 390 beta takes 3 minutes.

Some more detailed info
2017 MacBook Pro Touchpad
16GB Ram
MacOS 10.3.1

.93_390_beta - Takes 3 minutes to read and render and estimates the total time is 7h 46mins
.93_415_beta - Takes 9m28seconds to read the file to 100% but then doesn't render or display the estimated time until 24m 21seconds. The estimated time is 21h 28m on 415 beta.

The real actual time to print this on my MK2S was 8h 3min.

Thanks

Feature request: Layer editing

Really like the Layer editing/vari-slice function your implemented in Slic3r 1.33 and it would be great if you could make this also available in Prusa Control.

Feature request: duplicate object

It would be good to have the ability to put 30 of a small object on the plate without needing to paste 30 times.

Having a "duplicate" button which asks how many copies you want would be useful, and the ability to manage how many duplicates,

Import Gcode, generate request hangs

If I drag and drop a gcode file (generated in Slic3r) into the program, I can only see a layer view, then hit BACK button, it still shows an active GENERATE button. If I push that it will hang at 11%. I am guessing it shouldn't be active because I already have gcode in the program. If I click the top right X (close) it prompts "Gcode is in generating process Do you want to cancel generating of Gcode and exit
If you don't attempt to close the program, if you wait a bit, the button grays out (not active) and it forgets I ever loaded the gcode. It's gone

If I drag it in there and click SAVE G CODE the counter gets to 99% and stays. If I click CANCEL nothing happens. If I click the top right X (close) the program closes without any prompts

PrusaControl doesn't start

On a fresh installation of Windows 10 (64bit) in a VM i get this error when i start PrusaControl.

auswahl_001

The error Failed to execute script main stays in the backgroud behind the splashscreen.
I have uninstalled and installed PrusaControl again a couple of times, but without success.

Slic3r PE works fine.

What am i doing wrong ?

Output to gcode file stops randomly

I loaded a gcode file (created using slicer PE) and added three color changes with prusa control. After pressinge save gcode and selecting the file name, the new gcode file is created but the output stops at some random position in the gcode. There should be another 500 lines of gcode. The Prusa GUI status bar in the lower right stops at 60%. The last line in the code is some random movement, not the position of an expected color change.

Prusa Control Version 0.9.2_297_beta
Win 10

Potential issue with infill calculation

I’m not 100% sure, as I didn’t test with slic3r prusa edition to compare (yet), but I ran into some issues printing from an stl file at draft quality. At first it was going well, but once my print got to where it needed to do infill (the infill portion was very small, probably just at the boundary of actually needing infill) the print got really messy. Almost as if there was way to much material being extruded for the infill (I think I was at 5% infill but don't remember, sorry). Tried 2 different filament brands and got same issue. If it helps this is what I was printing: https://www.thingiverse.com/thing:1214311

The issue started right after it finished the base, around the 3.35 layer in 0.35 mode.

I ran out of time yesterday, but once I have some I will try it with Slic3r to see if I get same results.

Possible license issue (AGPL vs. GPL)

Hi there.

PrusaControl is an alternative user interface for Slic3r Prusa Edition

Slic3r is licensed with AGPLv3. I'm not sure whether this alternative user interface isn't by design also licensed as AGPLv3, but this repo says GPLv3. Ask you lawyers if needed.

Hangs at 16%

Prusa control, version 0.9.3_390_beta slic3r: 1.37.1-prusa3d-win64 hangs at 16% draining over 30% of processor power and heavily writing on disk. Log file is empty, debug mode doesn't help. Reinstalling with removing every single Prusa file didn't help.
The model is a very simple STL - just a box lid.

OS: Win 10 Pro/1703/15063.674
Processor: i75600 2.6GHz
Graphics: Intel HD 5500

Missing make scripts

Documentation mentions:

For evert platform there is a make_ file:
make_lin.sh
make_win.bat
make_osx.sh
make_lin.sh

But Im unable to find them

Misspelling of "print" as "pritn"

"start_gcode": "M115 U3.0.12 ; tell printer latest fw version\\nM83 ; extruder relative mode\\nM104 S[first_layer_temperature] ; set extruder temp\\nM140 S[first_layer_bed_temperature] ; set bed temp\\nM190 S[first_layer_bed_temperature] ; wait for bed temp\\nM109 S[first_layer_temperature] ; wait for extruder temp\\nG28 W ; home all without mesh bed level\\nG80 ; mesh bed leveling\\nG1 Y-3.0 F1000.0 ; go outside pritn area\\nG1 X60.0 E9.0 F1000.0 ; intro line\\nG1 X100.0 E12.5 F1000.0 ; intro line",

and

"start_gcode": "M115 U3.0.12 ; tell printer latest fw version\\nM83 ; extruder relative mode\\nM104 S[first_layer_temperature] ; set extruder temp\\nM140 S[first_layer_bed_temperature] ; set bed temp\\nM190 S[first_layer_bed_temperature] ; wait for bed temp\\nM109 S[first_layer_temperature] ; wait for extruder temp\\nG28 W ; home all without mesh bed level\\nG80 ; mesh bed leveling\\nG1 Y-3.0 F1000.0 ; go outside pritn area\\nG1 X60.0 E9.0 F1000.0 ; intro line\\nG1 X100.0 E12.5 F1000.0 ; intro line",

Price simulation

A feature I would like to request is the addition of price simulation or options what output is desired. As of now PrusaControl shows the length of filament needed for the printjob. All other softwares seem to use the weight instead, or give a price based on a value the user can enter.

I woul like to see this option added to either choose the desired output of the simulation, or even to give a price for the print.

Faulty mirroring objects

When mirroring an object using scale (with unlocked proportions), faces of the mirrored objects will flip and gcode generates as negative. This works with 2 objects at a buildplate and more.

image

Feature request: Warn if model's first layer is not on a plane

If the user loads a file similar to this, then there should be a warning, saying that this will not print correctly and will result in "filament spaghetti". In this case, the rectangular area in the second picture will not have bed adhesion.

First layer:

screenshot_20170717_200851

Second layer:

screenshot_20170717_200950

Feature request: Send to Octoprint

I don't know if you want PrusaControl be a full-blown controll center to directly communicate with the printer (the name suggests this). However, I'd like to send my G-code directly to Octoprint, as it is possible with Slic3r.

Does not check if object is within printable area when modifying object settings

version 0.9.2_297_beta, on windows

if you import an object, then move/scale it outside of the printable area using the "Object settings" menu, then avoid moving your mouse inside the 3D preview area when you click the "Generate" button, it will start generating gcode while simultaneously giving you the "Object blah... is out of printable area!" error.

compared to the normal behavior, moving the object outside of the print area by dragging the object in the 3D view, it will instantly give you the error message, and make the "Generate" button unclickable.

this isn't an important issue, as the error message is still there in the gcode preview menu, and it makes the "Save G-Code" button unclickable.

Scale Bugs Out When Changing

Version: PrusaControl 0.9.4_215

When you change the scale by delete all the numbers and leave the percent sign (X). When you enter a number the other scale fields (Y/Z) will get set to be 9999% even if you only put in 1%(X) in the other fields.

Which causes one hell of a headache trying to fix the scale as well as Prusa Control locks up due to the scale being so large.

PrusaControl 0.9.4_415_beta (Not Responding)

Hi Guys

I recently became the proud new owner of the MK2 and I am dying to use it but I am having issues with PrusaControl. It opens up etc, but as soon as I bring the part in, big or small, it crashes. It goes into a white none responsive state and I have to force close. I have uninstalled it twice and the fresh install does the same thing. Anybody else having this issue?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.