I was trying out Slic3r but I found that it's command line version didn't take into account custom bed centers, so it always threw the extruder off the bed. It ignored the bed center in the .ini config file, it ignored in its designated command line option. Apparently it only worked in the very first few versions circa 2012, so it's worthless.
Is there another command line slicer you'd recommend?
You'd /hope/ a so-called 'commercial' tool like S3D would have command line support, but it apparently doesn't, making it effectively useless for use by businesses. I can't be at my computer clicking away everytime one of my models just got done rendering. I'm rendering about 500 models an hour, a task I'm not going to undertake with S3D. And, furthermore, I need to slice for 5 different kinds of filament, meaning I need to slice 2500 times an hour.
And Cura uses python, which is non-ideal. And it seems like it has its yet-undiscovered command line issues. (Models randomly not slicing, from one thread I read.)
Can anyone recommend a working command line slicer?
Re: Can anyone recommend a working command line slicer?
Eh, I'll probably just write a quick script to manually adjust the Gcode values. It looks simple enough. (God, I hate how it seems like I have to write code to address every 3d printing software inadequacy out there that shouldn't exist in the first place.)
Re: Can anyone recommend a working command line slicer?
It takes some coercion, but Slic3r actually does that just fine.swbluto wrote:didn't take into account custom bed centers
The config doc:
http://manual.slic3r.org/configuration- ... ganization
... suggests the default configuration values may not be what you expect; it's not clear how to choose specific profiles from the command line (or if that's possible). Use File -> Export Config in the GUI to save a single configuration file based on the active profiles, then use --load config.ini parameter to use it.
For my M2, Printer -> General -> Bed Shape -> Set has Size = 200x250 and Origin = 100x125. The "Origin" is apparently the offset of the 0,0 origin within the overall Size; I vaguely recall making the mistake of trying -100x-125, back when I set that up.
You must use the --print-center 0,0 parameter to force the object to a known coordinate. I design parts around the XY=0 origin (because OpenSCAD), but Slic3r's command-line process apparently centers the object at the Origin specified in the Shape settings, which is probably what's putting your models off in the weeds.
So use --load config.ini to get the proper slicing parameters, plus --print-center 0,0 to put the object at the origin in the middle of the platform.
Or are you trying to accomplish something else?
Re: Can anyone recommend a working command line slicer?
Lol, slic3r could use some better documentation. If they were smart, they'd make it a wiki so I could make appropriate edits.ednisley wrote:For my M2, Printer -> General -> Bed Shape -> Set has Size = 200x250 and Origin = 100x125. The "Origin" is apparently the offset of the 0,0 origin within the overall Size; I vaguely recall making the mistake of trying -100x-125, back when I set that up.
I'll try it out, it seems that's what the issue probably is.
Okay, just got done and it looks like origin=0,0 changed the values, but now it seems like it's printing even more in the weeds, lol.
But, just from the fact that it changed suggests that, yes, there's some value that WILL make it work. Now what's that value?
It's a 230x150 bed, so I originally tried 115,75(In that order) and now just tried 0,0.
Re: Can anyone recommend a working command line slicer?
The whole command-line thing is pretty well written up at:swbluto wrote:slic3r could use some better documentation
http://manual.slic3r.org/advanced/command-line
I'll grant that I figured out most of that by reading the results of --help and putzing around a bit.
That puts the origin at the front-left corner of the platform, where all RepRap family printers have it by default. If you want the origin in the middle of a 230x150 platform, use Origin = 115,75. Remember that you must re-export the configuration or directly tinker the values inside the existing config.ini file.origin=0,0 changed the values, but now it seems like it's printing even more in the weeds
Then you put --print-center 0,0 on the command line to center your model at the origin, which is now in the middle of the platform.
It actually makes sense, although (as usual with software) some experimentation is required...
Re: Can anyone recommend a working command line slicer?
Lol, I tried reading --help, but the results exceeded the command prompt's memory limits and I could only read the last 10-20% of the output, lol. I didn't get to the part where it talked about print-center.ednisley wrote:The whole command-line thing is pretty well written up at:swbluto wrote:slic3r could use some better documentation
http://manual.slic3r.org/advanced/command-line
I'll grant that I figured out most of that by reading the results of --help and putzing around a bit.
origin=0,0 changed the values, but now it seems like it's printing even more in the weeds
Okay, I tried finding this 'origin' value in the .ini file and couldn't find it. Here's my .ini file. Interesting, however, I see no mention of the 230x150 I defined in the GUI. It seems to solely use the bed_shape variable to determine the size and origin.That puts the origin at the front-left corner of the platform, where all RepRap family printers have it by default. If you want the origin in the middle of a 230x150 platform, use Origin = 115,75. Remember that you must re-export the configuration or directly tinker the values inside the existing config.ini file.
Then you put --print-center 0,0 on the command line to center your model at the origin, which is now in the middle of the platform.
It actually makes sense, although (as usual with software) some experimentation is required...
Here's my command line's input:# generated by Slic3r 1.2.9 on Sun Nov 1 18:45:47 2015
avoid_crossing_perimeters = 0
bed_shape = -115x-75,115x-75,115x75,-115x75
bed_temperature = 70
before_layer_gcode =
bottom_solid_layers = 2
bridge_acceleration = 0
bridge_fan_speed = 100
bridge_flow_ratio = 1
bridge_speed = 50
brim_width = 0
complete_objects = 0
cooling = 1
default_acceleration = 0
disable_fan_first_layers = 1
dont_support_bridges = 1
duplicate_distance = 6
end_gcode = ; **** Replicator 2X end.gcode ****\nM73 P100 ; end build progress\nG1 Z155 F1000 ; send Z axis to bottom of machine\nM140 S0 T0 ; cool down HBP\nM104 S0 T0 ; cool down right extruder\nM104 S0 T1 ; cool down left extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM72 P1 ; play Ta-Da song\n; **** end of end.gcode ****
external_fill_pattern = rectilinear
external_perimeter_extrusion_width = 0
external_perimeter_speed = 30
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extruder_offset = 0x0
extrusion_axis = E
extrusion_multiplier = 0.93
extrusion_width = 0
fan_always_on = 0
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_diameter = 1.75
fill_angle = 45
fill_density = 20%
fill_pattern = honeycomb
first_layer_acceleration = 0
first_layer_bed_temperature = 75
first_layer_extrusion_width = 200%
first_layer_height = 0.255
first_layer_speed = 15
first_layer_temperature = 215
gap_fill_speed = 20
gcode_arcs = 0
gcode_comments = 1
gcode_flavor = makerware
infill_acceleration = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_overlap = 15%
infill_speed = 60
interface_shells = 0
layer_gcode =
layer_height = 0.3
max_fan_speed = 100
max_print_speed = 80
max_volumetric_speed = 0
min_fan_speed = 35
min_print_speed = 10
min_skirt_length = 0
notes =
nozzle_diameter = 0.4
octoprint_apikey =
octoprint_host =
only_retract_when_crossing_perimeters = 0
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 40
perimeters = 2
post_process =
pressure_advance = 0
raft_layers = 0
resolution = 0
retract_before_travel = 2
retract_layer_change = 1
retract_length = 2
retract_length_toolchange = 10
retract_lift = 0.5
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 20
seam_position = aligned
skirt_distance = 6
skirt_height = 1
skirts = 1
slowdown_below_layer_time = 5
small_perimeter_speed = 15
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 20
spiral_vase = 0
standby_temperature_delta = -5
start_gcode = G90\nM83\n; **** Replicator 2X start.gcode ****\nM73 P0 ; Enable build progress\nG162 X Y F3000 ; Home XY maximum\nG161 Z F1200 ; Home Z minimum\nG92 Z-5 ; Set Z to -5\nG1 Z0 ; Move Z to 0\nG161 Z F100 ; Home Z slowly\nM132 X Y Z A B ; Recall home offsets\nM135 T0 ; Load right extruder offsets\nG1 X-130 Y-75 Z30 F9000 ; Move to wait position off table\nG130 X20 Y20 Z20 A20 B20 ; Lower stepper Vrefs while heating\nM127 ; Set fan speed\nM140 S75 T0 ; Heat buildplate\nM134 T0 ; Stabilize bed temperature\nM104 S210 T0 ; Heat right extruder\nM133 T0 ; Stabilize extruder temperature\nG130 X127 Y127 Z40 A127 B127 ; Default stepper Vref\nG92 A0 B0 ; Zero extruders\nG1 X100 Y-70 F9000 ; Move to front right corner of bed\nG1 Z0.3 F6000 ; Move down to purge\nG1 X-90 Y-70 E24 F2000 ; Extrude a line of filament across the front edge of the bed\nG1 X-100 Y-70 F180 ; Wait for ooze\nG1 X-110 Y-70 F5000 ; Fast wipe\nG1 Z0.5 F100 ; Lift\nG92 A0 B0 ; Zero extruders\nM73 P1 ;@body (notify GPX body has started)\n; **** end of start.gcode ****\nM135 T0
support_material = 0
support_material_angle = 0
support_material_contact_distance = 0.2
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_extruder = 1
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_interface_speed = 100%
support_material_pattern = pillars
support_material_spacing = 2.5
support_material_speed = 50
support_material_threshold = 0
temperature = 210
thin_walls = 1
threads = 2
toolchange_gcode =
top_infill_extrusion_width = 0
top_solid_infill_speed = 15
top_solid_layers = 5
travel_speed = 100
use_firmware_retraction = 0
use_relative_e_distances = 1
use_volumetric_e = 0
vibration_limit = 0
wipe = 0
xy_size_compensation = 0
z_offset = 0
And a snippet of the resulting gcode (The very start of the code):E:\Program Files\Slic3r\slic3r.exe "thestl.stl" --load "C:\Something.ini" --print-center 0,0
This g-code should look more like (Manually done via GUI)......
G1 X94.132 Y39.898 E0.46281 F900.000 ; skirt
G1 X95.543 Y38.121 E0.10882 ; skirt
G1 X97.480 Y36.939 E0.10882 ; skirt
G1 X99.801 Y36.496 E0.11331 ; skirt
G1 X124.251 Y36.354 E1.17254 ; WE'RE NOW OFF IN THE WEEDS
G1 X127.301 Y36.359 E0.14626 ; weeds
M101 ; extruder on
G1 X129.619 Y36.451 E0.11127 F900.000 ; weeds
G1 X131.343 Y36.756 E0.08395 ; weeds
G1 X131.800 Y36.902 E0.02304 ; weeds
G1 X133.806 Y37.963 E0.10882 ; weeds
G1 X134.928 Y39.082 E0.07597 ; weeds
G1 X135.612 Y40.054 E0.05698 ; weeds
...
The values are so nice and close to 0.G1 X-4.999 Y32.580 E0.47416 F1800.000
G1 X-5.662 Y32.781 E0.02144
G1 X-6.497 Y32.968 E0.02648
G1 X-17.953 Y34.761 E0.35879
G1 X-18.426 Y34.817 E0.01474
G1 X-19.784 Y34.931 E0.04216
G1 X-20.498 Y34.952 E0.02210
G1 X-21.835 Y34.919 E0.04140
G1 X-22.571 Y34.859 E0.02284
G1 X-23.886 Y34.679 E0.04107
G1 X-24.724 Y34.509 E0.02644
G1 X-26.342 Y34.056 E0.05199
G1 X-27.690 Y33.597 E0.04405
G1 X-28.472 Y33.274 E0.02620
G1 X-30.007 Y32.521 E0.05290
G1 X-30.628 Y32.174 E0.02201
G1 X-32.335 Y31.096 E0.06247
G1 X-32.832 Y30.749 E0.01877
G1 X-34.174 Y29.718 E0.05235
G1 X-34.915 Y29.055 E0.03075
G1 X-35.281 Y28.675 E0.01634
G1 X-36.813 Y26.108 E0.09249
G1 X-36.887 Y25.879 E0.00744
G1 X-37.155 Y24.653 E0.03884
G1 X-38.719 Y11.752 E0.40208
G1 X-38.576 Y9.463 E0.07096
G1 X-38.133 Y8.202 E0.04133
G1 X-21.090 Y-28.152 E1.24233
G1 X-20.670 Y-28.913 E0.02690
G1 X-20.506 Y-29.170 E0.00941
G1 X-19.090 Y-30.750 E0.06566
G1 X-18.852 Y-30.943 E0.00947
G1 X-17.526 Y-31.775 E0.04844
G1 X-12.739 Y-34.044 E0.16391
G1 X-10.997 Y-34.591 E0.05649
G1 X-9.722 Y-34.805 E0.04002
G1 X-8.810 Y-34.893 E0.02835
G1 X-6.716 Y-34.951 E0.06479
G1 X-6.225 Y-34.946 E0.01520
M101 ; extruder on
G1 X-3.863 Y-34.830 E0.07316 F1800.000
G1 X6.810 Y-33.879 E0.33154
G1 X7.976 Y-33.760 E0.03629
G1 X8.488 Y-33.688 E0.01598
G1 X32.864 Y-29.259 E0.76658
G1 X34.661 Y-28.657 E0.05865
G1 X35.091 Y-28.440 E0.01489
Re: Can anyone recommend a working command line slicer?
C'mon, you're a coding hotshot: slic3r --help | less or, if you're wedged in a Windows command prompt, slic3r --help | more. Worst case, slic3r --help > slic3r-help.txt and load it into your favorite editor.swbluto wrote:exceeded the command prompt's memory limits
Bonus! Because we live in the future where memory has become cheap & readily available, set Defaults -> Command History -> Buffer size: 999. That's a pale shadow of the 10k lines I depend on with Linux terminals, but, hey...
It's not there. You feed it into the command line on a per-model basis.I tried finding this 'origin' value in the .ini file
As nearly as I can tell, the GUI's Size-and-Origin values set the bed's outline coordinates. You must then tell slic3r where you want the object within that coordinate space, using --print-center what,ever if you don't want the default of 100,100.
The top of that config file listing says # generated by Slic3r 1.2.9 on Sun Nov 1 18:45:47 2015. I'll lay you long odds that's not what's in the c:\Something.ini you show in the command line; you should have been doing some twiddling & exporting since then.
Yeah, I've made that mistake a few times...
Re: Can anyone recommend a working command line slicer?
Geez, now all of a sudden it starts working. No clue why since everything is the same, it just suddenly worked. Now, is it repeatable?
*crosses fingers*
It is repeatable! I have no idea what changed, but it's working, OMG! lol.
Maybe there's something wrong with my original process, I'll reintegrate and try again.
*crosses fingers*
It is repeatable! I have no idea what changed, but it's working, OMG! lol.
Maybe there's something wrong with my original process, I'll reintegrate and try again.