Commit graph

22967 commits

Author SHA1 Message Date
fieldOfView
b2fc155c3b Fix legacy glsl shaders
By @smartavionics
2020-03-31 11:26:21 +02:00
Tim Kuipers
687f598d81
Fix xray composite shader for opengl 2.1
A commit from @fieldOfView
2020-03-28 10:20:03 +01:00
fieldOfView
0794766644 Fix xray composite shader for opengl 2.1
textureSize() is not available in opengl 2.1, so we calculate the xray error image scale outside the shader (which is also a theoretical performance improvement because now the scale does not get computed over and over for each pixel)
2020-03-27 23:24:20 +01:00
Ghostkeeper
986284052d
Show warning on any invalid pixel, not just 10
Now that we have no noise any more we can do this.
Possibly cuts the processing time in half, too.

Contributes to issue CURA-7262.
2020-03-25 18:57:30 +01:00
Ghostkeeper
c2651d1141
Unobfuscate and document this SVG
These numbers end up beautifully on round numbers if you were to just scale them to their original size and apply these mysterious translation operations.
Also do away with all of the Inkscape and Sodipodi metadata. They don't make it any easier to read.

Contributes to issue CURA-7262.
2020-03-25 18:51:09 +01:00
Ghostkeeper
4c770587e2
Fix getting additional bytes from QImage
QImage's bytes are aligned to memory words per column of pixels. That means that one of these columns contains 99% valid image data, but with several bytes of unassigned noise at the end. How many of these padding bytes there are would depend on the image size, i.e. Cura's window size. In the end, the total number of bytes in the image ends up slightly more than w*h*3. As a result, Cura would crash because it couldn't reshape the image. Reshaping was completely unnecessary anyway, but this random noise was giving false positives also.
But how do you then get only the actual pixels from each column of data? We can't just go iterating over this array, as that would be an iteration of thousands of columns which is prohibitively slow in Python. No, we're going to do some Numpy magic. We're going to create a class that pretends to be a Numpy array. Give this class some data and say that this data has a certain pixel size but also a certain STRIDE LENGTH. This stride length can be the length of the actual pixel data. As a result when Numpy sees this object it will read out the data using these strides, all done efficiently within the C code of Numpy.

Framerate is fantastic on my computer. No problems at all. Pretty powerful computer though. But also a big 5k screen. Still no problem for Numpy. Seems to be decently efficient.

Took me quite a while to figure all of this out.

Contributes to issue CURA-7262.
2020-03-25 18:00:14 +01:00
Ghostkeeper
a4fbf3c613
Move X-ray set-up code into _checkSetup
That's what that function is meant for. It's executing essentially the same, since before it was executed right after the call to _checkSetup() and now it's at the end inside that function.

Contributes to issue CURA-7262.
2020-03-25 15:13:33 +01:00
Ghostkeeper
0150f37937
Merge branch 'master' into xray_in_solid_view 2020-03-24 21:45:48 +01:00
Ghostkeeper
8e324c594e
Adjust wall thickness to 1 line if using spiralise
Except for printers that explicitly override it.

Fixes #7317.
2020-03-24 14:22:28 +01:00
Ghostkeeper
5cdf1adccc
Fix duplicate shortcut keys 2020-03-24 13:18:50 +01:00
Ghostkeeper
a551492ebb
Adjust start g-code to not mix 50/50 by default
This new start g-code has been tested on the A20 by @leshuguets in issue thread #7280.
2020-03-24 13:12:56 +01:00
Jaime van Kessel
2d82538996
Merge branch 'CURA-7313_s3s5_intent_profile_update' of github.com:Ultimaker/Cura 2020-03-24 11:33:59 +01:00
Remco Burema
c20b2c6ee0
Merge pull request #7211 from Ultimaker/CURA-7150_proper_http_request_headers
CURA-7150_proper_http_request_headers
2020-03-24 11:25:07 +01:00
Ghostkeeper
0fd6044c70
Fixes for translations and some missing bits 2020-03-24 09:44:20 +01:00
Ghostkeeper
cdcf3a9df8
Interpunction corrections to Hungarian translation
These are important as they are used as dividers in our interface.
2020-03-24 09:43:57 +01:00
Ghostkeeper
37673691fd
Clarify tooltip about resolution between per-extruder values
It was using a bit of programmer jargon there that was very hard to understand. Initially I was coming in here to remove the space at the end of the translated string but I'm now changing all of it to make it more clear to the user as well.

Done as a 5 minute fix.
2020-03-24 09:35:10 +01:00
Ghostkeeper
c6fde82ec1
Merge branch 'master' of https://github.com/greatnam/Cura into greatnam-master 2020-03-24 09:16:49 +01:00
Ghostkeeper
308096ec84
Style consistency / readability
Contributes to issue CURA-7313.
2020-03-23 16:10:56 +01:00
Ghostkeeper
e1c6f6ad55
Add engineering profiles for engineering materials for UMS3 and UMS5
These are optimised for engineering applications, with greater dimensional accuracy and strength.

Implements CURA-7313.
2020-03-23 16:08:01 +01:00
Jaime van Kessel
3e58d96da4
Merge branch 'feature_extension_separator' of https://github.com/fieldOfView/Cura 2020-03-23 14:17:42 +01:00
Ghostkeeper
03ca1c0498
Merge branch 'CURA-7016_missing_signature_key' 2020-03-23 11:59:40 +01:00
Nino van Hooff
1a4cb49eba Hide upload message progress when upload is done
CURA-7150
2020-03-23 11:17:32 +01:00
Ghostkeeper
566af8be2e
Don't crash when importing definition files as materials
Reproduction steps:
* In the Material Manager, click on 'Import material'.
* Change the file type in the file dialogue to 'All files'.
* Select any .def.json file, for example from Cura's own resources/definitions folder.

Previously this crashed the application. Now it shows the user an error message instead.

Fixes Sentry error CURA-D4.
2020-03-23 09:06:20 +01:00
fieldOfView
fa091a48b9 Allow spaces in separator name 2020-03-23 08:12:29 +01:00
fieldOfView
18263220ff Add method to add separators to extension menus 2020-03-22 22:07:50 +01:00
Nino van Hooff
96d1e6385d Merge remote-tracking branch 'origin/CURA-7150_proper_http_request_headers' into CURA-7150_proper_http_request_headers 2020-03-20 17:34:12 +01:00
Nino van Hooff
6db8a9ec3e Set progress of backup message to 100% when done
CURA-7150
2020-03-20 17:31:54 +01:00
Nino van Hooff
72a66f1358 Do not use the JsonDecorator scope for binary downloads
CURA-7150
2020-03-20 17:31:21 +01:00
Ghostkeeper
485e37e7f5
Extruders can be undefined, not null
This happens when the printer is changed, such as when changing the Machine Width in the machine settings dialogue. It updates these menus then and if not all extruders are defined it'll give the following errors:
2020-03-20 16:56:57,839 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/SettingsMenu.qml:51: TypeError: Cannot read property 'isEnabled' of undefined
2020-03-20 16:56:57,840 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/SettingsMenu.qml:44: TypeError: Cannot read property 'isEnabled' of undefined
2020-03-20 16:56:57,841 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:26: TypeError: Cannot read property 'isEnabled' of undefined
2020-03-20 16:56:57,841 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:28: TypeError: Cannot read property 'material' of undefined

Done during Turbo Testing and Tooling.
2020-03-20 17:03:08 +01:00
Ghostkeeper
2f3462203c
Fix QML errors due to property providers not being initialised yet
This then updates in a fraction of a millisecond later before things even appear on the screen, so it's not so bad to not have a tooltip or to have it show 0 then.

Done during Turbo Testing and Tooling.
2020-03-20 16:58:18 +01:00
Ghostkeeper
31aee866f4
Check if options are available before matching on them
This prevents a QML warning when the ListModel is created before the property provider is. This QML warning looked like this:
2020-03-20 15:04:30,012 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/cura/../resources/qml/MachineSettings/ComboBoxWithOptions.qml:74: TypeError: Cannot call method 'match' of undefined

Done during Turbo Testing and Tooling.
2020-03-20 15:09:46 +01:00
Ghostkeeper
5cfe71e516
Fix binding loop in action panel widget
This widget can't set its width to the width of its children, since its children anchor to its right-hand side which depends on the width.
This fixes the following warning in the log:
2020-03-20 14:25:20,351 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/plugins/PrepareStage/PrepareMain.qml:16:5: QML ActionPanelWidget: Binding loop detected for property width

Done during Turbo Testing and Tooling.
2020-03-20 14:52:33 +01:00
Ghostkeeper
3af91bfca7
Fix QML warning assigning undefined to an integer field
Fixes the following QML warning in the logs:
2020-03-20 14:02:13,482 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:125:13: Unable to assign [undefined] to int

Instead it now assigns the first extruder before a printer has been created. The first extruder also doesn't exist yet at this point, but this doesn't really matter because there is no interface to show yet at this point.

Done during Turbo Testing and Tooling.
2020-03-20 14:17:24 +01:00
Ghostkeeper
c44f82c44f
Add placeholder header pattern
This removes a warning from our log that this image couldn't be found. Instead it now draws a completely transparent image there.
The warning that is no longer in the log now looked like this:
2020-03-20 13:52:27,980 - WARNING - [MainThread] UM.Qt.Bindings.Theme.getImage [133]: No image header_pattern defined in Theme

Done during Turbo Testing and Tooling.
2020-03-20 14:05:42 +01:00
Ghostkeeper
c7e6553dbf
Disallow printers larger than 2km
To do this, I'm giving more power to the NumericTextFieldWithUnit QML element, to allow an arbitrary minimum and maximum. Enforcing this minimum and maximum is fairly simple with a JavaScript hook. This hook is necessary because the DoubleValidator allows intermediary values which defeats the purpose, essentially allowing any number as long as it has the correct number of digits.
Printers larger than 2km would start to give overflow errors in its X and Y coordinates. Z is okay up to about 9 billion kilometres in theory, since we don't need to do any squaring math on those coordinates afaik. In practice I'm doing this because at very high values the Arranger also gives errors because Numpy can't handle those extremely big arrays (since the arranger creates a 2mm grid).

Fixes Sentry issue CURA-CB.
2020-03-20 11:16:16 +01:00
Remco Burema
3f69e11d90
Merge pull request #7311 from fieldOfView/fix_project_comments
Fix loading comments in gcode snippets from 3mf projects
2020-03-20 11:13:23 +01:00
Jaime van Kessel
49949acdf2
Merge branch 'master' of github.com:Ultimaker/Cura 2020-03-20 11:05:08 +01:00
Jaime van Kessel
decf96e99e
Set verticalAlignment of numericTextField
Contributes to #7300
2020-03-20 11:04:24 +01:00
Nino van Hooff
65336d84e5 Add pytest to requirements 2020-03-20 10:57:23 +01:00
fieldOfView
7f6a39d7d0 Fix loading comments in gcode snippets from 3mf projects
Fixes #7304
2020-03-20 09:26:31 +01:00
Nino van Hooff
93f3970453 Move the package signature pem file to the Resources folder
It will get automatically packed into builds when in the Resources

CURA-7016
2020-03-19 15:14:21 +01:00
Ghostkeeper
44b61d370f
Merge branch 'master' of github.com:Ultimaker/Cura 2020-03-19 14:48:45 +01:00
Ghostkeeper
df0a3143d2
Merge branch 'master' of https://github.com/Magicfirm/Cura into Magicfirm-master 2020-03-19 14:43:47 +01:00
konskarm
90ed7ac184
Merge pull request #7298 from Ultimaker/CURA-7311_stair_step_height_0_for_pva
Reduce stair step height to 0 for PVA
2020-03-19 14:12:28 +01:00
konskarm
7d2391c4ed
Merge pull request #7101 from yyh1002/master
Add DXU machine profile
2020-03-18 16:12:50 +01:00
Ghostkeeper
fdd1cef11a
Reduce stair step height to 0 for PVA
Given that:
* stair stepping is intended to be used to reduce the adhesion between support and the model, where the support rests on the model, and to reduce scarring, and
* PVA doesn't suffer from scarring or adhesion issues due to its water-solubility, and
* our current stair stepping algorithm has some bugs, causing support to disappear sometimes

we've decided to set stair stepping to 0 for all PVA profiles for UM3, UMS5 and UMS3.

Contributes to issue CURA-7311.
2020-03-18 15:50:27 +01:00
Jaime van Kessel
8a7823e49b
Merge branch 'fix_3mf_file_watcher' of https://github.com/fieldOfView/Cura 2020-03-18 12:51:53 +01:00
Jaime van Kessel
a26de5ce79
Gracefully handle the sitation if the changelog was not found
CURA-4R
2020-03-18 11:17:23 +01:00
Jaime van Kessel
ced25adc2b
Merge branch 'CURA-7017_link_to_help' of github.com:Ultimaker/Cura 2020-03-18 10:49:35 +01:00
Kostas Karmas
34f81ed0b0 Add link then the printer is not found
CURA-7017
2020-03-18 09:31:13 +01:00