public SingleMaterialFFFCompiler(GCodeBuilder builder, SingleMaterialFFFSettings settings, AssemblerFactoryF AssemblerF)
 {
     Builder            = builder;
     Settings           = settings;
     this.AssemblerF    = AssemblerF;
     featureTypeLabeler = CreateFeatureTypeLabeler();
 }
Пример #2
0
        public static BaseDepositionAssembler Factory(
            GCodeBuilder builder, IPrintProfileFFF settings)
        {
            var asm = new RepRapAssembler(builder, settings);

            asm.HeaderCustomizerF = (state, builder) => HeaderCustomF(settings as IPrintProfileFFF, state, builder);
            return(asm);
        }
Пример #3
0
        public RepRapAssembler(GCodeBuilder useBuilder, SingleMaterialFFFSettings settings) : base(useBuilder, settings.Machine)
        {
            Settings = settings;

            OmitDuplicateZ = true;
            OmitDuplicateF = true;
            OmitDuplicateE = true;
        }
Пример #4
0
        public GenericMillingAssembler(GCodeBuilder useBuilder, SingleMaterialFFFSettings settings) : base(useBuilder, settings.Machine)
        {
            Settings = settings;

            OmitDuplicateZ = true;
            OmitDuplicateF = true;

            HomeSequenceF = StandardHomeSequence;
        }
Пример #5
0
        public GenericMillingAssembler(GCodeBuilder useBuilder, IPrintProfileFFF settings) : base(useBuilder, settings.Machine)
        {
            Settings = settings;

            OmitDuplicateZ = true;
            OmitDuplicateF = true;

            HomeSequenceF = StandardHomeSequence;
        }
Пример #6
0
        public static BaseDepositionAssembler Factory(
            GCodeBuilder builder, IPrintProfileFFF settings)
        {
            var asm = new RepRapAssembler(builder, settings);

            asm.HomeSequenceF     = (builder) => HomeSequence(builder, settings);
            asm.HeaderCustomizerF = HeaderCustomF;
            asm.TravelGCode       = 1;
            return(asm);
        }
        public BaseDepositionAssembler(GCodeBuilder useBuilder, FFFMachineInfo machineInfo)
        {
            Builder     = useBuilder;
            currentPos  = Vector3d.Zero;
            lastPos     = Vector3d.Zero;
            extruderA   = 0;
            currentFeed = 0;

            MinExtrudeStepDistance = machineInfo.MinPointSpacingMM;
        }
Пример #8
0
 private static void HeaderCustomF(
     IPrintProfileFFF settings, RepRapAssembler.HeaderState state, GCodeBuilder builder)
 {
     if (state == RepRapAssembler.HeaderState.BeforePrime)
     {
         if (settings.Machine.HasAutoBedLeveling && settings.Machine.EnableAutoBedLeveling)
         {
             builder.BeginGLine(29, "auto-level bed");
         }
     }
 }
Пример #9
0
        public RepRapAssembler(GCodeBuilder useBuilder, IPrintProfileFFF settings) : base(useBuilder, settings.Machine)
        {
            Settings = settings;

            OmitDuplicateZ = true;
            OmitDuplicateF = true;
            OmitDuplicateE = true;

            HomeSequenceF = StandardHomeSequence;

            UseFirmwareRetraction = settings.Part.UseFirmwareRetraction;
        }
        public override void Initialize(PrintMeshAssembly meshes,
                                        PlanarSliceStack slices,
                                        SingleMaterialFFFSettings settings,
                                        AssemblerFactoryF overrideAssemblerF = null)
        {
            file_accumulator = new GCodeFileAccumulator();
            builder          = new GCodeBuilder(file_accumulator);
            AssemblerFactoryF useAssembler = overrideAssemblerF ?? settings.AssemblerType();

            compiler = new SingleMaterialFFFCompiler(builder, settings, useAssembler);
            Initialize(meshes, slices, settings, compiler);
        }
Пример #11
0
        public RepRapAssembler(GCodeBuilder useBuilder, SingleMaterialFFFSettings settings) : base(useBuilder, settings.Machine)
        {
            Settings = settings;

            OmitDuplicateZ = true;
            OmitDuplicateF = true;
            OmitDuplicateE = true;

            HomeSequenceF = StandardHomeSequence;

            UseFirmwareRetraction = settings.UseFirmwareRetraction;
        }
Пример #12
0
        public MakerbotAssembler(GCodeBuilder useBuilder, SingleMaterialFFFSettings settings) : base(useBuilder, settings.Machine)
        {
            Settings = settings as SingleMaterialFFFSettings;

            PositionBounds = new AxisAlignedBox2d(settings.Machine.BedSizeXMM, settings.Machine.BedSizeYMM);
            PositionBounds.Translate(-PositionBounds.Center);

            // [RMS] currently bed dimensions are hardcoded in header setup, and this trips bounds-checker.
            // So, disable this checking for now.
            EnableBoundsChecking = false;

            TravelGCode = 1;
        }
Пример #13
0
        public MakerbotAssembler(GCodeBuilder useBuilder, SingleMaterialFFFSettings settings) : base(useBuilder, settings.Machine)
        {
            if (settings is MakerbotSettings == false)
            {
                throw new Exception("MakerbotAssembler: incorrect settings type!");
            }

            Settings = settings as MakerbotSettings;

            PositionBounds = new AxisAlignedBox2d(settings.Machine.BedSizeXMM, settings.Machine.BedSizeYMM);
            PositionBounds.Translate(-PositionBounds.Center);

            TravelGCode = 1;
        }
Пример #14
0
 private static void HomeSequence(GCodeBuilder builder, IPrintProfileFFF profile)
 {
     if (profile.Machine.HasAutoBedLeveling && profile.Machine.EnableAutoBedLeveling)
     {
         builder.BeginGLine(28).AppendL("W").AppendComment("home all without bed level");
         builder.BeginGLine(80, "auto-level bed");
     }
     else
     {
         // standard home sequenece
         builder.BeginGLine(28, "home x/y").AppendI("X", 0).AppendI("Y", 0);
         builder.BeginGLine(28, "home z").AppendI("Z", 0);
     }
 }
Пример #15
0
        public BaseDepositionAssembler(GCodeBuilder useBuilder, FFFMachineInfo machineInfo)
        {
            Builder     = useBuilder;
            currentPos  = Vector3d.Zero;
            lastPos     = Vector3d.Zero;
            extruderA   = 0;
            currentFeed = 0;

            Vector2d originRepositioning = new Vector2d(machineInfo.BedOriginFactorX, machineInfo.BedOriginFactorY);
            Vector2d bedSize             = new Vector2d(machineInfo.BedSizeXMM, machineInfo.BedSizeYMM);

            PositionShift = originRepositioning * bedSize;

            MinExtrudeStepDistance = machineInfo.MinPointSpacingMM;
        }
        public BaseDepositionAssembler(GCodeBuilder useBuilder, MachineProfileFFF machine)
        {
            Builder     = useBuilder;
            currentPos  = Vector3d.Zero;
            lastPos     = Vector3d.Zero;
            extruderA   = 0;
            currentFeed = 0;

            var originRepositioning = new Vector2d(
                MachineBedOriginLocationUtility.LocationXFromEnum(machine.OriginX),
                MachineBedOriginLocationUtility.LocationYFromEnum(machine.OriginY));

            var bedSize = new Vector2d(machine.BedSizeXMM, machine.BedSizeYMM);

            PositionShift = originRepositioning * bedSize;

            MinExtrudeStepDistance = machine.MinPointSpacingMM;
        }
Пример #17
0
 private static void HeaderCustomF(RepRapAssembler.HeaderState state, GCodeBuilder Builder)
 {
     if (state == RepRapAssembler.HeaderState.AfterComments)
     {
         Builder.BeginMLine(201)
         .AppendI("X", 1000).AppendI("Y", 1000).AppendI("Z", 200).AppendI("E", 5000)
         .AppendComment("Set maximum accelleration in mm/sec^2");
         Builder.BeginMLine(203)
         .AppendI("X", 200).AppendI("Y", 200).AppendI("Z", 12).AppendI("E", 120)
         .AppendComment("Set maximum feedrates in mm/sec");
         Builder.BeginMLine(204)
         .AppendI("S", 1250).AppendI("T", 1250)
         .AppendComment("Set acceleration for moves (S) and retract (T)");
         Builder.BeginMLine(205)
         .AppendF("X", 10).AppendF("Y", 10).AppendF("Z", 0.4).AppendF("E", 2.5)
         .AppendComment("Set jerk limits in mm/sec");
         Builder.BeginMLine(205)
         .AppendI("S", 0).AppendI("T", 0)
         .AppendComment("Set minimum extrude and travel feed rate in mm/sec");
     }
 }
Пример #18
0
 public virtual void StandardHomeSequence(GCodeBuilder builder)
 {
     Builder.BeginGLine(28, "home x/y").AppendI("X", 0).AppendI("Y", 0);
     Builder.BeginGLine(28, "home z").AppendI("Z", 0);
 }
Пример #19
0
 public static BaseDepositionAssembler Factory(GCodeBuilder builder, SingleMaterialFFFSettings settings)
 {
     return(new RepRapAssembler(builder, settings));
 }
Пример #20
0
 public static BaseMillingAssembler Factory(GCodeBuilder builder, SingleMaterialFFFSettings settings)
 {
     return(new GenericMillingAssembler(builder, settings));
 }
 public BaseThreeAxisMillingCompiler(GCodeBuilder builder, IPrintProfileFFF settings, MillingAssemblerFactoryF AssemblerF)
 {
     Builder         = builder;
     Settings        = settings;
     this.AssemblerF = AssemblerF;
 }
 public BaseMillingAssembler(GCodeBuilder useBuilder, FFFMachineInfo machineInfo)
 {
     Builder     = useBuilder;
     currentPos  = Vector3d.Zero;
     currentFeed = 0;
 }
 public SingleMaterialFFFCompiler(GCodeBuilder builder, SingleMaterialFFFSettings settings, AssemblerFactoryF AssemblerF)
 {
     Builder         = builder;
     Settings        = settings;
     this.AssemblerF = AssemblerF;
 }
Пример #24
0
 public static BaseDepositionAssembler Factory(GCodeBuilder builder, IPrintProfileFFF settings)
 {
     return(new RepRapAssembler(builder, settings));
 }
Пример #25
0
 public BaseThreeAxisMillingCompiler(GCodeBuilder builder, SingleMaterialFFFSettings settings, MillingAssemblerFactoryF AssemblerF)
 {
     Builder         = builder;
     Settings        = settings;
     this.AssemblerF = AssemblerF;
 }
Пример #26
0
 public static BaseMillingAssembler Factory(GCodeBuilder builder, IPrintProfileFFF settings)
 {
     return(new GenericMillingAssembler(builder, settings));
 }