예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                // clear output directory
                DirectoryHelpers.ClearDirectory(Output);

                try
                {
                    string filePath = Server.MapPath(@"~\Images\Texture.png");
                    if (File.Exists(filePath))
                    {
                        BitmapTexture = new Bitmap(filePath);
                    }
                }
                catch (Exception ex)
                {
                    string message = ex.ToString();
                }
                DimCaseCtrl        = DimCase;
                WeightCaseCtrl     = WeightCase;
                PalletIndexCtrl    = PalletIndex;
                WeightPalletCtrl   = WeightPallet;
                NumberOfLayersCtrl = NumberOfLayers;

                BTRefresh_Click(null, null);
            }
            ExecuteKeyPad();
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ChkbMirrorLength.Checked = LayersMirrorLength;
                ChkbMirrorWidth.Checked  = LayersMirrorWidth;
                TBFileName.Text          = FileName;
                var interlayerArray = Interlayers.Select(p => p == '1' ? true : false).ToArray();
                var listInterlayers = new List <InterlayerDetails>();
                PalletStacking.InitializeInterlayers(DimCase, DimPallet, MaxPalletHeight, string.Empty, ref listInterlayers);
                for (var i = 0; i < interlayerArray.Length; ++i)
                {
                    if (i < listInterlayers.Count)
                    {
                        listInterlayers[i].Activated = interlayerArray[i];
                    }
                }

                listInterlayers.Reverse();
                LVInterlayers.DataSource = listInterlayers;
                LVInterlayers.DataBind();

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

            int    caseCount = 0, layerCount = 0;
            double weightLoad = 0.0, weightTotal = 0.0;
            var    bbLoad   = Vector3D.Zero;
            var    bbTotal  = Vector3D.Zero;
            string fileGuid = Guid.NewGuid().ToString() + ".glb";

            PalletStacking.GenerateExport(
                DimCase, WeightCase, BitmapTexture,
                DimPallet, WeightPallet,
                MaxPalletHeight,
                BoxPositions,
                ChkbMirrorLength.Checked, ChkbMirrorWidth.Checked,
                InterlayersBoolArray,
                Path.Combine(Output, fileGuid),
                ref caseCount, ref layerCount,
                ref weightLoad, ref weightTotal,
                ref bbLoad, ref bbTotal
                );

            XModelDiv.InnerHtml = $"<x-model class=\"x-model\" src=\"./Output/{fileGuid}\"/>";

            loadedPallet.Update();
        }
예제 #4
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();
        }
예제 #5
0
        protected void OnPrevious(object sender, EventArgs e)
        {
            // clear output directory
            DirectoryHelpers.ClearDirectory(Output);

            if (LayerEdited)
            {
                Response.Redirect("LayerEdition.aspx");
            }
            else
            {
                Response.Redirect("LayerSelectionWebGL.aspx");
            }
        }