public void ProcessAnalysis(PackPalletAnalysis analysis) { _packProperties = analysis.PackProperties; _palletProperties = analysis.PalletProperties; _interlayerProperties = analysis.InterlayerProperties; _constraintSet = analysis.ConstraintSet; analysis.Solutions = GenerateSolutions(); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); ComboBoxHelpers.FillCombo(_packs, cbPack, (null != _analysis) ? _analysis.PackProperties : _packs[0]); ComboBoxHelpers.FillCombo(_pallets, cbPallet, (null != _analysis) ? _analysis.PalletProperties : _pallets[0]); ComboBoxHelpers.FillCombo(_interlayers, cbInterlayer, (null != _analysis ? _analysis.InterlayerProperties : (_interlayers.Length > 0 ? _interlayers[0] : null))); chkbInterlayer.Enabled = cbInterlayer.Items.Count > 0; chkbInterlayer.Checked = (null != _analysis) ? _analysis.HasInterlayer : false; PackPalletConstraintSet constraintSet = (null != _analysis) ? _analysis.ConstraintSet : null; if (null != constraintSet) { chkbInterlayerFirstLayer.Checked = constraintSet.HasFirstInterlayer; OverhangX = constraintSet.OverhangX; OverhangY = constraintSet.OverhangY; MinimumOverhangX = constraintSet.MinOverhangX; MinimumOverhangY = constraintSet.MinOverhangY; MaximumSpace = constraintSet.MaximumSpaceAllowed; MinimumSpace = constraintSet.MinimumSpace; MaximumPalletHeight = constraintSet.MaximumPalletHeight; MaximumPalletWeight = constraintSet.MaximumPalletWeight; MaximumLayerWeight = constraintSet.MaximumLayerWeight; } else { chkbInterlayerFirstLayer.Checked = false; OverhangX = Settings.Default.OverhangX; OverhangY = Settings.Default.OverhangY; MinimumOverhangX = OptDouble.Zero; MinimumOverhangY = OptDouble.Zero; MaximumSpace = OptDouble.Zero; MinimumSpace = OptDouble.Zero; MaximumPalletHeight = new OptDouble(true, UnitsManager.ConvertLengthFrom(1200.0, UnitsManager.UnitSystem.UNIT_METRIC1)); MaximumPalletWeight = new OptDouble(false, UnitsManager.ConvertMassFrom(1000.0, UnitsManager.UnitSystem.UNIT_METRIC1)); MaximumLayerWeight = new OptDouble(false, UnitsManager.ConvertMassFrom(100.0, UnitsManager.UnitSystem.UNIT_METRIC1)); } onInterlayerChecked(this, null); UpdateStatus(string.Empty); }
public void EditPackPalletAnalsyis(PackPalletAnalysis analysis) { // do we need to recompute analysis bool recomputeRequired = false; FormNewAnalysisPackPallet form = new FormNewAnalysisPackPallet(this, analysis); form.Packs = ListByType(typeof(PackProperties)).ToArray(); form.Pallets = Pallets.ToArray(); form.Interlayers = ListByType(typeof(InterlayerProperties)).ToArray(); if (recomputeRequired = (DialogResult.OK == form.ShowDialog())) { // analysis name / description analysis.Name = form.ItemName; analysis.Description = form.ItemDescription; // analysis pack / pallet /interlayer analysis.PackProperties = form.PackProperties; analysis.PalletProperties = form.PalletProperties; analysis.InterlayerProperties = form.InterlayerProperties; // constraint set PackPalletConstraintSet constraintSet = analysis.ConstraintSet; constraintSet.OverhangX = form.OverhangX; constraintSet.OverhangY = form.OverhangY; constraintSet.MinOverhangX = form.MinimumOverhangX; constraintSet.MinOverhangY = form.MinimumOverhangY; constraintSet.MinimumSpace = form.MinimumSpace; constraintSet.MaximumSpaceAllowed = form.MaximumSpace; constraintSet.LayerSwapPeriod = form.LayerSwapPeriod; constraintSet.InterlayerPeriod = form.InterlayerPeriod; constraintSet.HasFirstInterlayer = form.HasFirstInterlayer; // stop criterions constraintSet.MaximumPalletHeight = form.MaximumPalletHeight; constraintSet.MaximumPalletWeight = form.MaximumPalletWeight; } if (recomputeRequired) { analysis.OnEndUpdate(null); if (analysis.Solutions.Count < 1) { MessageBox.Show(Properties.Resources.ID_ANALYSISHASNOSOLUTION, Application.ProductName, MessageBoxButtons.OK); } } }
public Layer(PackProperties packProperties, PalletProperties palletProperties, PackPalletConstraintSet constraintSet , HalfAxis.HAxis axisOrtho, bool inversed) { _axisOrtho = axisOrtho; _inversed = inversed; _forcedSpace = constraintSet.MinimumSpace.Value; _palletLength = palletProperties.Length + constraintSet.OverhangX + _forcedSpace; _palletWidth = palletProperties.Width + constraintSet.OverhangY + _forcedSpace; Initialize(packProperties); }
private Layer2D BuildLayer(PackProperties packProperties, PalletProperties palletProperties, PackPalletConstraintSet constraintSet, HalfAxis.HAxis axisOrtho, bool swapped, bool inversed) { double forcedSpace = constraintSet.MinimumSpace.Value; return(new Layer2D( new Vector3D(packProperties.Length + forcedSpace, packProperties.Width + forcedSpace, packProperties.Height) , new Vector2D( palletProperties.Length + constraintSet.OverhangX + forcedSpace , _palletProperties.Width + constraintSet.OverhangY + forcedSpace) , axisOrtho, swapped)); }
private void btAddPackPalletAnalysis_Click(object sender, EventArgs e) { try { // get selected box BoxProperties boxProperties = SelectedBox; // get selected pallet PalletProperties palletProperties = SelectedPallet; // get selected caseOptimSolution CaseOptimSolution sol = SelectedSolution; PackArrangement arrangement = sol.CaseDefinition.Arrangement; // build new case name string name = string.Format("{0}_{1}*{2}*{3}_{4}{5}" , boxProperties.Name , arrangement._iLength , arrangement._iWidth , arrangement._iHeight , sol.CaseDefinition.Dim0 , sol.CaseDefinition.Dim1); // build new case description string description = string.Format("Case generated by case optimization for box {0} and pallet {1}" , boxProperties.Name , palletProperties.Name); // analysis name/description string analysisName = string.Format("OptimAnalysis{0}_{1}*{2}*{3}_{4}{5}" , boxProperties.Name , boxProperties.Name , arrangement._iLength , arrangement._iWidth , arrangement._iHeight , sol.CaseDefinition.Dim0 , sol.CaseDefinition.Dim1); string analysisDescription = string.Format("Pallet analysis generated by case optimisation for box {0} and pallet {1}" , boxProperties.Name , palletProperties.Name); // create PackProperties HalfAxis.HAxis axis = PackProperties.Orientation(sol.CaseDefinition.Dim0, sol.CaseDefinition.Dim1); double wrapperWeight = WrapperCardboard.EstimateWeight( SelectedBox , arrangement , axis , NoWalls , WallThickness , WallSurfaceMass); // cardboard wrapper WrapperCardboard wrapper = new WrapperCardboard(WallThickness, wrapperWeight, Color.Chocolate); wrapper.SetNoWalls(NoWalls[0], NoWalls[1], NoWalls[2]); // pack PackProperties pack = _document.CreateNewPack( name, description , boxProperties, arrangement, axis , wrapper); // constraint set PackPalletConstraintSet constraintSet = new PackPalletConstraintSet(); constraintSet.OverhangX = OverhangX; constraintSet.OverhangY = OverhangY; constraintSet.MaximumPalletHeight = new OptDouble(true, MaximumPalletHeight); // create analysis _document.CreateNewPackPalletAnalysis( analysisName , analysisDescription , pack , palletProperties , null , constraintSet , new PackPalletSolver()); } catch (Exception ex) { _log.Error(ex.ToString()); } }