Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't call method "wipe" on an undefined value #1530

Closed
cakeller98 opened this issue Nov 17, 2013 · 10 comments
Closed

Can't call method "wipe" on an undefined value #1530

cakeller98 opened this issue Nov 17, 2013 · 10 comments
Labels
Milestone

Comments

@cakeller98
Copy link
Contributor

Win 7 x64
Citrusperl 5.14 x64

During "Exporting G-code to..." step, I receive this error only when
extruder 3 is set for perimeters, and
extruder 1 is set for infill, support, and support interface

Can't call method "wipe" on an undefined value at C:/Dev/RepRap/Slic3r/lib/Slic3r/GCode.pm line 72.

note this does not occur if perimeters use extruder 2 or 1

@cakeller98
Copy link
Contributor Author

increased the number of extruders from 3 to 4, and now the error is
Can't call method "absolute_E" on an undefined value at C:/Dev/RepRap/Slic3r/lib/Slic3r/Print.pm line 902.

@cakeller98
Copy link
Contributor Author

In addition - with the latest commit, I couldn't even change the number of extruders, however I found the config problem.

retract_layer_change = 1,1,

appears that since it was missing it's value - I couldn't change the number of extruders form 3 to 2 or 4 without crashing perl, and once I put in 0,0,0 I was able to slice again.

It would be great if, when slic3r read in configuration information, it could do some validation, especially on arrays - if it's expecting a certain number of items just don't let it fill a value with UNDEFINED without asking the user for the config value or something.

e.g. "Uh, something went wrong and this value is missing [retract on layer change for tool 3] please tell me what you want it to be so i can fix it" - then CORRECT it, and SAVE the ini file.

:) just a thought. - closing the issue

@cakeller98
Copy link
Contributor Author

Spoke too soon... multi-extruder configs just seems not to work. after deleting all configs, then simply try to add a second extruder by pressing the up-arrow on the extruder number spin control... does this:

multi-extruder configs

@cakeller98
Copy link
Contributor Author

OK Sorry for all the flailing about - but here's the final thing that seems to clearly be the issue causing this:

08:22:25.625 : <Slic3r> => Exporting G-code to C:\Users\Chirstopher\AppData\Local\RepetierHost\composition.gcode
08:22:25.631 : <Slic3r> Can't call method "wipe" on an undefined value at C:/Dev/RepRap/Slic3r/lib/Slic3r/GCode.pm line 72.

#IF USING MULTI EXTRUDERS - assinging any extruder higher than another extruder that is not used.

IOW -
assinging extruder 1 to everything works fine
assinging extruder 1 to perims and infill and extruder 2 for support and suppor tinterface if fine.
assinging extruder 3 only for everything... DOES NOT WORK
assinging extruder 1 for peterimeters and infill and extruder 3 for support and interface DOES NOT WORK...

any time a lower numbered extruder is un-used, slicing causes the can't call method on undefined value.

strangely assinging everything to extruder 2 does work with a skirt (mine is set for 9999 layers) - but everything on the skirt above the first layer uses EXTRUDER #1, so probably a bug in skirt is causing extruder #1 to be used.... and it is only when extruder #3 is used without any calls for extruder #2 - then this "undefined" element hapens for WIPE.

@cakeller98
Copy link
Contributor Author

this sucks for me at the moment, because my ext #2 is dead at the moment... but 1 and 3 are not dead :) ....
I could swap them - but then I'd have to modify the offsets... which is what I'm going to do. - work around for the few that might have 3 extruders AND trying only to use 1 and 3 ---- soooooo prolly just ME! 💃

@cakeller98
Copy link
Contributor Author

There are actually a lot of bugs popping up related to multiple extruders:

If I only want to use extruder 2, slic3r still turns on, and draws a skirt with extruder 1.
as such - if extruder 1 is 0.35, and 2 is 0.5 I can't make a first layer of 0.4mm because it "exceeds the diameter of the extruder" even if I don't have 1 selected for anything...

@alranel alranel modified the milestones: 1.1.2, After 1.0.0 Apr 21, 2014
@alranel
Copy link
Member

alranel commented Apr 22, 2014

Hi @cakeller98! I think all of these issues were fixed in the newly released 1.1.1 – except for skirt which I need to redesign.

Can you provide any feedback?

@cakeller98
Copy link
Contributor Author

Sure, I'll come back and give it a whirl!

@cakeller98
Copy link
Contributor Author

t\arcs.t ............. 1/24
#   Failed test 'path collection now contains three paths'
#   at t\arcs.t line 70.
#          got: '1'
#     expected: '3'

#   Failed test ''second one is arc' isa 'Slic3r::GCode::ArcFitting::Arc''
#   at t\arcs.t line 72.
#     'second one is arc' isn't defined

#   Failed test ''third one is polyline' isa 'Slic3r::Polyline''
#   at t\arcs.t line 73.
#     'third one is polyline' isn't defined
# Looks like you failed 3 tests of 24.

@alranel
Copy link
Member

alranel commented Apr 29, 2014

Fixed by fbce8e6

@alranel alranel closed this as completed Apr 29, 2014
@alranel alranel added the Fixed label Apr 29, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants