protected virtual void AddPrimeLine(IPrintProfileFFF Settings) { Builder.AddCommentLine(" "); Builder.AddCommentLine("feature nozzle priming"); Builder.AddCommentLine("---begin prime type=line"); // extruder prime by drawing line across front of bed double PrimeHeight = Settings.Machine.MaxLayerHeightMM; double PrimeWidth = 2 * Settings.Machine.NozzleDiamMM; // assumes origin is at center of bed... Vector3d frontRight = new Vector3d(Settings.Machine.BedSizeXMM / 2, -Settings.Machine.BedSizeYMM / 2, PrimeHeight); frontRight.x -= 10; frontRight.y += 5; Vector3d frontLeft = frontRight; frontLeft.x = -frontRight.x; double primeLen = frontRight.Distance(frontLeft); double PrimeFeedRate = 1800; double prime_feed_len = AssemblerUtil.CalculateExtrudedFilament( PrimeWidth, PrimeHeight, primeLen, Settings.Material.FilamentDiamMM); Builder.BeginGLine(92, "reset extruded length").AppendI("E", 0); BeginTravel(); AppendMoveTo(frontRight, 9000, "start prime"); EndTravel(); AppendExtrudeTo(frontLeft, PrimeFeedRate, prime_feed_len, "extrude prime"); AppendResetExtrudedLength(); Builder.AddCommentLine("---end prime"); }
void AppendHeader_StandardRepRap() { base.AddStandardHeader(Settings); Builder.AddCommentLine("; Model: " + Settings.Machine.ManufacturerName + " " + Settings.Machine.ModelIdentifier); HeaderCustomizerF(HeaderState.AfterComments, Builder); // M190 if (Settings.Machine.HasHeatedBed) { if (Settings.HeatedBedTempC > 0) { SetBedTargetTempAndWait(Settings.HeatedBedTempC); } else { SetBedTargetTemp(0, "disable heated bed"); } } // M109 SetExtruderTargetTempAndWait(Settings.ExtruderTempC); HeaderCustomizerF(HeaderState.AfterTemperature, Builder); Builder.BeginGLine(21, "units=mm"); Builder.BeginGLine(90, "absolute positions"); Builder.BeginMLine(82, "absolute extruder position"); DisableFan(); HeaderCustomizerF(HeaderState.BeforeHome, Builder); Builder.BeginGLine(28, "home x/y").AppendI("X", 0).AppendI("Y", 0); currentPos.x = currentPos.y = 0; PositionShift = 0.5 * new Vector2d(Settings.Machine.BedSizeXMM, Settings.Machine.BedSizeYMM); Builder.BeginGLine(28, "home z").AppendI("Z", 0); currentPos.z = 0; HeaderCustomizerF(HeaderState.BeforePrime, Builder); // extruder prime by drawing line across front of bed double PrimeHeight = Settings.LayerHeightMM * 1.35; double PrimeWidth = 2 * Settings.Machine.NozzleDiamMM; Vector3d frontRight = new Vector3d(Settings.Machine.BedSizeXMM / 2, -Settings.Machine.BedSizeYMM / 2, PrimeHeight); frontRight.x -= 10; frontRight.y += 5; Vector3d frontLeft = frontRight; frontLeft.x = -frontRight.x; double primeLen = frontRight.Distance(frontLeft); double PrimeFeedRate = 1800; double prime_feed_len = AssemblerUtil.CalculateExtrudedFilament( PrimeWidth, PrimeHeight, primeLen, Settings.Machine.FilamentDiamMM); Builder.BeginGLine(92, "reset extruded length").AppendI("E", 0); BeginTravel(); AppendMoveTo(frontRight, 9000, "start prime"); EndTravel(); AppendExtrudeTo(frontLeft, PrimeFeedRate, prime_feed_len, "prime"); // [RMS] this does not extrude very much and does not seem to work? //Builder.BeginGLine(1, "move platform down").AppendF("Z", 15).AppendI("F", 9000); //currentPos.z = 15; //Builder.BeginGLine(92, "reset extruded length").AppendI("E", 0); //extruderA = 0; //Builder.BeginGLine(1, "extrude blob").AppendI("F", 200).AppendI("E", 3); //Builder.BeginGLine(92, "reset extruded length again").AppendI("E", 0); //extruderA = 0; //Builder.BeginGLine(1, "reset speed").AppendI("F", 9000); // move to z=0 BeginTravel(); AppendMoveTo(new Vector3d(NozzlePosition.x, NozzlePosition.y, 0), Settings.ZTravelSpeed, "reset z"); EndTravel(); ShowMessage("Print Started"); in_retract = false; in_travel = false; UpdateProgress(0); }