Exemple #1
0
        /// <summary>
        /// Returns heights at which each slice should be printed for a given height
        /// </summary>
        /// <param name="height"></param>
        /// <param name="StartThickness"></param>
        /// <param name="ThicknessDel"></param>
        /// <param name="Thicknesses"></param>
        /// <param name="HeightFactor"></param>
        /// <param name="ThicknessIncrement"></param>
        /// <returns></returns>
        ///
        public static List <double> ZHeights(double height, double StartThickness, ThicknessIncrementDelegate ThicknessDel, out List <double> Thicknesses, double HeightFactor = 1.0, double ThicknessIncrement = 0.0)
        {
            List <double> heights     = new List <double>();
            List <double> thicknesses = new List <double>();

            double CurrentHeight    = 0.005; // todo: Figure out why 0.0 flips the offset of the section curves
            double CurrentThickness = StartThickness;

            int i = 0;

            while (CurrentHeight < height)
            {
                heights.Add(CurrentHeight);
                if (ThicknessDel == null)
                {
                    CurrentThickness += ThicknessIncrement * i;
                }
                else
                {
                    CurrentThickness = StartThickness + ThicknessDel(i);
                }
                thicknesses.Add(CurrentThickness);
                CurrentHeight += V2GPrint.Height(CurrentThickness, HeightFactor);
                i++;
            }

            Thicknesses = thicknesses;

            return(heights);
        }
Exemple #2
0
        public static double LayerHeight(double _thickness, double _factor = 1.0)
        {
            double FilamentDiameter = 1.75;
            double FilamentArea     = Math.PI * Math.Pow((FilamentDiameter / 2), 2);
            double height           = Math.Sqrt(FilamentArea * V2GPrint.EUnitIncrease(_thickness));

            height *= _factor;
            if (height < 0)
            {
                return(0);
            }
            return(height * _factor);
        }