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");
        }
Example #2
0
        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);
        }