MatterHackers / MatterSlice

MatterSlice is a C# console application that generates GCode (hardware control) for 3D printing. It was originally ported from CuraEngine (another great open source 3D printing engine). It is the primary slicing engine for MatterSlice and under constant development.
164 stars 69 forks source link

G-code generated requested 30m of filament to be extruded #4

Closed RobotCaleb closed 9 years ago

RobotCaleb commented 9 years ago
G1 F6000 X39.25 Y-31.46 E10117.36035
G1 F4800 E10109.36035
<snip>
G92 E0
G1 F4800 E10117.36035
G1 F6000 X-39.81 Y27.37 E0.20195

Given my limited understanding of G-code, this is the reason I ended up with a large coil of filament on my floor that escaped my extruder.

The G-code seems fine outside of that reset-then-large-extrusion.

If you need the actual G-code generated and/or the stl file used to generate, I can provide both. Let me know where to send them.

I'll comment with the bottom of the G-code file that lists the settings.

img_20141227_173117

RobotCaleb commented 9 years ago

; filament used = 14591.7 ; filament used extruder 1 (mm) = 14591.7 ; filament used extruder 2 (mm) = 0.0 ; total print time (s) = 6432 ; MatterControl Version 1.2.0 Build 1.2.0.3295 : GCode settings used ; Date 12/27/2014 00:00:00 Time 0:10 ; avoidCrossingPerimeters = True ; bottomClipAmount = 0 ; centerObjectInXy = True ; continuousSpiralOuterPerimeter = False ; doCoolHeadLift = False ; endCode = G28; home\nM104 S140; \nM190 S80;\nM84; disable motors ; zOffset = 0 ; extruderOffsets = [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]] ; extrusionWidth = 0.4 ; fanSpeedMaxPercent = 100 ; fanSpeedMinPercent = 35 ; filamentDiameter = 1.75 ; extrusionMultiplier = 1 ; firstLayerExtrusionWidth = 0.8 ; firstLayerSpeed = 30 ; firstLayerThickness = 0.2 ; firstLayerToAllowFan = 1 ; outputType = REPRAP ; generateInternalSupport = False ; infillExtendIntoPerimeter = .06 ; infillPercent = 40 ; infillType = TRIANGLES ; infillSpeed = 100 ; bridgeSpeed = 60 ; bridgeFanSpeedPercent = 100 ; raftFanSpeedPercent = 100 ; raftPrintSpeed = 100 ; infillStartingAngle = 45 ; supportInfillStartingAngle = 45 ; insidePerimetersSpeed = 60 ; layerThickness = 0.2 ; minimumExtrusionBeforeRetraction = .1 ; minimumPrintingSpeed = 10 ; minimumLayerTimeSeconds = 30 ; minimumTravelToCauseRetraction = 20 ; numberOfBottomLayers = 4 ; numberOfSkirtLoops = 2 ; numberOfTopLayers = 4 ; outsidePerimeterSpeed = 42 ; numberOfPerimeters = 3 ; positionToPlaceObjectCenter = [0,0] ; enableRaft = True ; raftExtraDistanceAroundPart = 5 ; raftAirGap = 0.4 ; repairOutlines = NONE ; retractionOnExtruderSwitch = 10 ; retractionOnTravel = 8 ; retractionSpeed = 80 ; retractionZHop = 0 ; skirtDistanceFromObject = 6 ; skirtMinLength = 0 ; startCode = ; automatic settings before start_gcode\nG21 ; set units to millimeters\nM107 ; fan off\nM190 S113 ; wait for bed temperature to be reached\nM104 T0 S255 ; wait for extruder 1 temperature\nT0 ; set the active extruder to 0\n; settings from start_gcode\nG28;\nG29 Z-0.2\nG1 e5 f300\n; automatic settings after start_gcode\nM109 T0 S255 ; wait for extruder 1 temperature\nT0 ; set the active extruder to 0\nG90 ; use absolute coordinates\nG92 E0 ; reset the expected extruder position\nM82 ; use absolute distance for extrusion ; supportExtruder = 0 ; supportLineSpacing = 2.5 ; supportExtrusionPercent = 100 ; supportMaterialSpeed = 100 ; supportEndAngle = 45 ; supportType = LINES ; supportXYDistanceFromObject = 0.7 ; supportNumberOfLayersToSkipInZ = 1 ; supportInterfaceLayers = 0 ; travelSpeed = 200 ; wipeShieldDistanceFromObject = 0 ; wipeTowerSize = 0 ; MatterControl Version 1.2.0 Build 1.2.0.3295 : GCode settings used ; Date 12/27/2014 00:00:00 Time 0:10 ; avoid_crossing_perimeters = 1 ; bed_shape = rectangular ; bed_size = 200,200 ; bed_temperature = 113 ; bottom_clip_amount = 0 ; bottom_solid_layers = 4 ; bridge_acceleration = 0 ; bridge_fan_speed = 100 ; bridge_flow_ratio = 1 ; bridge_speed = 60 ; brim_width = 0 ; build_height = 250 ; cancel_gcode = ; center_part_on_bed = 1 ; complete_objects = 0 ; cool_extruder_lift = 0 ; cooling = 1 ; create_raft = 1 ; default_acceleration = 0 ; disable_fan_first_layers = 1 ; end_gcode = G28; home\nM104 S140; \nM190 S80;\nM84; disable motors ; external_perimeter_speed = 70% ; external_perimeters_first = 0 ; extra_perimeters = 1 ; extruder_clearance_height = 20 ; extruder_clearance_radius = 20 ; extruder_count = 1 ; extruder_offset = 0x0 ; extruders_share_temperature = 0 ; extrusion_axis = E ; extrusion_multiplier = 1 ; extrusion_width = 0 ; fan_always_on = 0 ; fan_below_layer_time = 60 ; filament_diameter = 1.75 ; fill_angle = 45 ; fill_density = 0.4 ; fill_pattern = honeycomb ; first_layer_acceleration = 0 ; first_layer_bed_temperature = 100 ; first_layer_extrusion_width = 200% ; first_layer_height = 0.2 ; first_layer_speed = 30% ; first_layer_temperature = 255 ; g0 = 0 ; gap_fill_speed = 20 ; gcode_arcs = 0 ; gcode_comments = 0 ; gcode_flavor = reprap ; gcode_output_type = REPRAP ; has_fan = 0 ; has_heated_bed = 1 ; has_sd_card_reader = 0 ; infill_acceleration = 0 ; infill_every_layers = 1 ; infill_extruder = 1 ; infill_extrusion_width = 0 ; infill_first = 1 ; infill_only_where_needed = 0 ; infill_overlap_perimeter = .06 ; infill_speed = 100 ; infill_type = TRIANGLES ; layer_gcode = ; layer_height = 0.2 ; max_fan_speed = 100 ; min_extrusion_before_retract = .1 ; min_fan_speed = 35 ; min_print_speed = 10 ; min_skirt_length = 0 ; notes = ; nozzle_diameter = 0.4 ; only_retract_when_crossing_perimeters = 1 ; ooze_prevention = 0 ; output_filename_format = [input_filename_base].gcode ; overhangs = 1 ; pause_gcode = ; perimeter_acceleration = 0 ; perimeter_extruder = 1 ; perimeter_extrusion_width = 0 ; perimeter_speed = 60 ; perimeters = 3 ; post_process = ; print_center = 0,0 ; raft_air_gap = 0.4 ; raft_extra_distance_around_part = 5 ; raft_fan_speed_percent = 100 ; raft_layers = 0 ; raft_print_speed = 100% ; randomize_start = 1 ; repair_outlines_extensive_stitching = 0 ; repair_outlines_keep_open = 0 ; resolution = 0 ; resume_gcode = ; retract_before_travel = 20 ; retract_layer_change = 0 ; retract_length = 8 ; retract_length_tool_change = 10 ; retract_lift = 0 ; retract_restart_extra = 0.15 ; retract_restart_extra_toolchange = 0 ; retract_speed = 80 ; skirt_distance = 6 ; skirt_height = 1 ; skirts = 2 ; slowdown_below_layer_time = 30 ; small_perimeter_speed = 60 ; solid_fill_pattern = rectilinear ; solid_infill_below_area = 70 ; solid_infill_every_layers = 0 ; solid_infill_extrusion_width = 0 ; solid_infill_speed = 100 ; spiral_vase = 0 ; standby_temperature_delta = -5 ; start_gcode = G28;\nG29 Z-0.2\nG1 e5 f300 ; start_perimeters_at_concave_points = 0 ; start_perimeters_at_non_overhang = 1 ; support_material = 1 ; support_material_angle = 0 ; support_material_create_internal_support = 0 ; support_material_enforce_layers = 0 ; support_material_extruder = 1 ; support_material_extrusion_width = 0 ; support_material_infill_angle = 45 ; support_material_interface_extruder = 1 ; support_material_interface_layers = 0 ; support_material_interface_spacing = 0 ; support_material_pattern = rectilinear ; support_material_spacing = 2.5 ; support_material_speed = 100 ; support_material_threshold = 45 ; support_material_xy_distance = 0.7 ; support_material_z_distance = 0.15 ; support_material_z_gap_layers = 1 ; support_type = LINES ; temperature = 255 ; thin_walls = 0 ; threads = 2 ; toolchange_gcode = ; top_infill_extrusion_width = 0 ; top_solid_infill_speed = 90 ; top_solid_layers = 4 ; travel_speed = 200 ; use_firmware_retraction = 0 ; use_relative_e_distances = 0 ; vibration_limit = 0 ; wipe = 1 ; wipe_shield_distance = 0 ; wipe_tower_size = 0 ; z_can_be_negative = 0 ; z_offset = 0

RobotCaleb commented 9 years ago

After looking at the numbers more, I suspect that what occurred is is attempted to retract 8mm (G1 E10109.36035) then it reset the extrusion amount (G92 E0), then it tried to extrude the amount retracted (presumably to get ready for printing) but didn't remember that it was 8mm and instead tried to get from 10109.36035 to 10117.36035.

Hope my interpretation makes sense and helps.

larsbrubaker commented 9 years ago

@RobotCaleb thanks for the detailed report. This has been fixed in development and will be in the next release. You can use it from Experimental now. Here are instructions to get it:

Experimental Build: This is for testing only and should not be use in production environments.

MatterControl Experimental Latest

This version of MatterControl is to help get feedback on new features and ideas. It is intended only for testing and should not be considered reliable, stable or even working (from time to time).

RobotCaleb commented 9 years ago

Thanks.