예제 #1
0
        protected void BTRefresh_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (Page.IsValid)
            {
                bool onlyBestLayers = false;

                DimCase         = DimCaseCtrl;
                WeightCase      = WeightCaseCtrl;
                DimPallet       = DimPalletCtrl;
                WeightPallet    = WeightPalletCtrl;
                MaxPalletHeight = MaxPalletHeightCtrl;

                List <LayerDetails> listLayers = new List <LayerDetails>();
                PalletStacking.GetLayers(DimCaseCtrl, WeightCaseCtrl, DimPalletCtrl, WeightPalletCtrl, MaxPalletHeightCtrl, onlyBestLayers, ref listLayers);

                dlLayers.DataSource = listLayers;
                dlLayers.DataBind();
                layersUpdate.Update();
                ExecuteKeyPad();
                PalletDetails.DataSource = null;
                PalletDetails.DataBind();
                dlLayers.SelectedIndex = -1;

                selectedLayer.Update();
            }
        }
예제 #2
0
        protected void BTRefresh_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (Page.IsValid)
            {
                DimCase        = DimCaseCtrl;
                WeightCase     = WeightCaseCtrl;
                PalletIndex    = PalletIndexCtrl;
                WeightPallet   = WeightPalletCtrl;
                NumberOfLayers = NumberOfLayersCtrl;

                if (DimCase.X < 50 || DimCase.Y < 50 || DimCase.Z < 50)
                {
                    return;
                }

                List <LayerDetails> listLayers = new List <LayerDetails>();
                PalletStacking.GetLayers(DimCaseCtrl, WeightCaseCtrl, PalletIndexCtrl, WeightPalletCtrl, NumberOfLayersCtrl, false, ref listLayers);

                dlLayers.DataSource = listLayers;
                dlLayers.DataBind();
                layersUpdate.Update();
                ExecuteKeyPad();
                PalletDetails.DataSource = null;
                PalletDetails.DataBind();
                dlLayers.SelectedIndex = -1;

                selectedLayer.Update();
            }
        }
예제 #3
0
        protected void UpdateImage()
        {
            // clear output directory
            DirectoryHelpers.ClearDirectory(Output);

            Vector3D caseDim         = DimCaseCtrl;
            double   caseWeight      = WeightCaseCtrl;
            Vector3D palletDim       = DimPalletCtrl;
            double   palletWeight    = WeightPalletCtrl;
            double   maxPalletHeight = MaxPalletHeightCtrl;

            byte[]      imageBytes = null;
            int         caseCount = 0;
            int         layerCount = 0;
            double      weightLoad = 0.0, weightTotal = 0.0;
            Vector3D    bbLoad      = Vector3D.Zero;
            Vector3D    bbTotal     = Vector3D.Zero;
            string      fileGuid    = Guid.NewGuid().ToString() + ".glb";
            List <bool> interlayers = new List <bool>();

            PalletStacking.GenerateExport(
                caseDim, caseWeight, BitmapTexture,
                palletDim, palletWeight,
                maxPalletHeight,
                BoxPositionsLayer,
                false, false,
                interlayers,
                Path.Combine(Output, fileGuid),
                ref caseCount, ref layerCount,
                ref weightLoad, ref weightTotal,
                ref bbLoad, ref bbTotal
                );

            XModelDiv.InnerHtml = string.Format("<x-model class=\"x-model\" src=\"./Output/{0}\"/>", fileGuid);

            var palletDetails = new List <PalletDetails>
            {
                new PalletDetails("Number of cases", $"{caseCount}", ""),
                new PalletDetails("Layer count", $"{layerCount}", ""),
                new PalletDetails("Load weight", $"{weightLoad}", "kg"),
                new PalletDetails("Total weight", $"{weightTotal}", "kg"),
                new PalletDetails("Load dimensions", $"{bbLoad.X} x {bbLoad.Y} x {bbLoad.Z}", "mm"),
                new PalletDetails("Overall dimensions", $"{bbTotal.X} x {bbTotal.Y} x {bbTotal.Z}", "mm")
            };

            PalletDetails.DataSource = palletDetails;
            PalletDetails.DataBind();

            DimCase         = caseDim;
            DimPallet       = palletDim;
            MaxPalletHeight = maxPalletHeight;
            Session[SessionVariables.ImageWidth]  = 500;
            Session[SessionVariables.ImageHeight] = 460;
            Session[SessionVariables.ImageBytes]  = imageBytes;

            selectedLayer.Update();
        }
예제 #4
0
        private void UpdateImage()
        {
            var caseDim         = DimCaseCtrl;
            var caseWeight      = WeightCaseCtrl;
            var palletDim       = DimPalletCtrl;
            var palletWeight    = WeightPalletCtrl;
            var maxPalletHeight = MaxPalletHeightCtrl;

            byte[] imageBytes = null;
            int    caseCount = 0;
            int    layerCount = 0;
            double weightLoad = 0.0, weightTotal = 0.0;
            var    bbLoad  = Vector3D.Zero;
            var    bbTotal = Vector3D.Zero;

            PalletStacking.GetSolution(
                caseDim, caseWeight, BitmapTexture,
                palletDim, palletWeight,
                maxPalletHeight,
                BoxPositionsLayer,
                false, false,
                new List <bool>(),
                Angle,
                new Size(500, 460),
                ref imageBytes,
                ref caseCount, ref layerCount,
                ref weightLoad, ref weightTotal,
                ref bbLoad, ref bbTotal
                );

            var palletDetails = new List <PalletDetails>
            {
                new PalletDetails("Number of cases", $"{caseCount}", ""),
                new PalletDetails("Layer count", $"{layerCount}", ""),
                new PalletDetails("Load weight", $"{weightLoad}", "kg"),
                new PalletDetails("Total weight", $"{weightTotal}", "kg"),
                new PalletDetails("Load dimensions", $"{bbLoad.X} x {bbLoad.Y} x {bbLoad.Z}", "mm"),
                new PalletDetails("Overall dimensions", $"{bbTotal.X} x {bbTotal.Y} x {bbTotal.Z}", "mm")
            };

            PalletDetails.DataSource = palletDetails;
            PalletDetails.DataBind();

            DimCase         = caseDim;
            DimPallet       = palletDim;
            MaxPalletHeight = maxPalletHeight;
            Session[SessionVariables.ImageWidth]  = 500;
            Session[SessionVariables.ImageHeight] = 460;
            Session[SessionVariables.ImageBytes]  = imageBytes;

            selectedLayer.Update();
        }