Jump to content

slammers

Dormant
  • Posts

    1
  • Joined

  • Last visited

Personal Information

  • Country
    CA

slammers's Achievements

0

Reputation

  1. I am having the same issue. I downloaded the latest CuraEngine code and it seems like the E-Steps per mm should affect the extruder speed unless I am not understanding this. If you look at this code the rpm is being multiplied by extrusion_per_mm and then exported in the M108 gcode line. But adjusting that value in the GUI has no effect. Is this just stale code? void GCodeExport::writeMoveBFB(int x, int y, int z, double speed, double extrusion_mm3_per_mm){ double extrusion_per_mm = extrusion_mm3_per_mm; if (!is_volumatric) { extrusion_per_mm = extrusion_mm3_per_mm / extruder_attr[current_extruder].filament_area; } Point gcode_pos = getGcodePos(x,y, current_extruder); //For Bits From Bytes machines, we need to handle this completely differently. As they do not use E values but RPM values. float fspeed = speed * 60; float rpm = extrusion_per_mm * speed * 60; const float mm_per_rpm = 4.0; //All BFB machines have 4mm per RPM extrusion. rpm /= mm_per_rpm; if (rpm > 0) { if (extruder_attr[current_extruder].retraction_e_amount_current) { if (currentSpeed != double(rpm)) { //fprintf(f, "; %f e-per-mm %d mm-width %d mm/s\n", extrusion_per_mm, lineWidth, speed); //fprintf(f, "M108 S%0.1f\r\n", rpm); *output_stream << "M108 S" << std::setprecision(1) << rpm << "\r\n"; currentSpeed = double(rpm); } //Add M101 or M201 to enable the proper extruder. *output_stream << "M" << int((current_extruder + 1) * 100 + 1) << "\r\n"; extruder_attr[current_extruder].retraction_e_amount_current = 0.0; } //Fix the speed by the actual RPM we are asking, because of rounding errors we cannot get all RPM values, but we have a lot more resolution in the feedrate value. // (Trick copied from KISSlicer, thanks Jonathan) fspeed *= (rpm / (roundf(rpm * 100) / 100)); //Increase the extrusion amount to calculate the amount of filament used. Point3 diff = Point3(x,y,z) - getPosition(); current_e_value += extrusion_per_mm * diff.vSizeMM(); }
×
×
  • Create New...