コード例 #1
0
        private void OnBestCombinationClicked(object sender, EventArgs e)
        {
            try
            {
                Packable         packable         = cbCases.SelectedType as Packable;
                PalletProperties palletProperties = cbPallets.SelectedType as PalletProperties;
                if (null == packable || null == palletProperties)
                {
                    return;
                }

                // get best combination
                List <KeyValuePair <LayerDesc, int> > listLayer = new List <KeyValuePair <LayerDesc, int> >();
                LayerSolver.GetBestCombination(
                    packable.OuterDimensions,
                    new Vector2D(palletProperties.Length + 2.0 * uCtrlOverhang.ValueX, palletProperties.Width + 2.0 * uCtrlOverhang.ValueY),
                    BuildConstraintSet(),
                    ref listLayer);

                // select best layers
                List <LayerDesc> listLayerDesc = new List <LayerDesc>();
                foreach (KeyValuePair <LayerDesc, int> kvp in listLayer)
                {
                    listLayerDesc.Add(kvp.Key);
                }
                uCtrlLayerList.SelectLayers(listLayerDesc);
            }
            catch (Exception ex)
            {
                _log.Error(ex.ToString());
            }
        }
コード例 #2
0
        private void OnBestCombinationClicked(object sender, EventArgs e)
        {
            try
            {
                // get box & case
                if (!(cbBoxes.SelectedType is PackableBrick packable) ||
                    !(cbCases.SelectedType is BoxProperties caseProperties))
                {
                    return;
                }
                var constraintSet = BuildConstraintSet();
                // get best combination
                var listLayer = new List <KeyValuePair <LayerEncap, int> >();
                LayerSolver.GetBestCombination(
                    packable.OuterDimensions,
                    packable.Bulge,
                    caseProperties.GetStackingDimensions(constraintSet),
                    constraintSet,
                    ref listLayer);
                if (0 == listLayer.Count)
                {
                    _log.Warn("Failed to find a single valid layer");
                    return;
                }
                // select best layer
                List <LayerDesc> layerDesc = new List <LayerDesc>();
                foreach (var kvp in listLayer)
                {
                    layerDesc.Add(kvp.Key.LayerDesc);
                }
                uCtrlLayerList.SelectLayers(layerDesc);

                _item = _document.CreateNewAnalysisBoxCase(
                    ItemName, ItemDescription
                    , SelectedBoxProperties, SelectedCase
                    , new List <InterlayerProperties>()
                    , BuildConstraintSet()
                    , listLayer
                    );
                Close();
            }
            catch (Exception ex)
            {
                _log.Error(ex.ToString());
            }
        }
コード例 #3
0
        private void OnBestCombinationClicked(object sender, EventArgs e)
        {
            try
            {
                Packable         packable         = cbCases.SelectedType as Packable;
                PalletProperties palletProperties = cbPallets.SelectedType as PalletProperties;
                if (null == packable || null == palletProperties)
                {
                    return;
                }
                ConstraintSetAbstract constraintSet = BuildConstraintSet();
                // get best combination
                List <KeyValuePair <LayerDesc, int> > listLayer = new List <KeyValuePair <LayerDesc, int> >();
                LayerSolver.GetBestCombination(
                    packable.OuterDimensions,
                    palletProperties.GetStackingDimensions(constraintSet),
                    constraintSet,
                    ref listLayer);

                // select best layers
                List <LayerDesc> listLayerDesc = new List <LayerDesc>();
                foreach (KeyValuePair <LayerDesc, int> kvp in listLayer)
                {
                    listLayerDesc.Add(kvp.Key);
                }
                uCtrlLayerList.SelectLayers(listLayerDesc);

                _item = _document.CreateNewAnalysisCasePallet(
                    ItemName, ItemDescription
                    , SelectedPackable, SelectedPallet
                    , new List <InterlayerProperties>()
                    , null, null, null
                    , BuildConstraintSet()
                    , listLayer
                    );
                Close();
            }
            catch (Exception ex)
            {
                _log.Error(ex.ToString());
            }
        }