/// <summary> /// Creates a new PackProperties object /// </summary> public void CreateNewPackUI() { using (FormNewPack form = new FormNewPack(this, null) { Boxes = Boxes.ToList() }) { if (DialogResult.OK == form.ShowDialog()) { PackProperties packProperties = CreateNewPack( form.ItemName, form.ItemDescription , form.SelectedPackable , form.Arrangement , form.BoxOrientation, form.RevSolidLayout , form.Wrapper , form.Tray); if (form.HasForcedOuterDimensions) { packProperties.ForceOuterDimensions(form.OuterDimensions); } packProperties.StrapperSet = form.StrapperSet; packProperties.Bulge = form.Bulge; } } }
public FormNewPack(Document doc, PackProperties packProperties) : base(doc, packProperties) { InitializeComponent(); PackProp = packProperties; StrapperSet = null != PackProp?PackProp.StrapperSet.Clone() : new StrapperSet(); }
public Box(uint pickId, Packable packable, LayerPosition bPosition) { if (!bPosition.IsValid) { throw new GraphicsException("Invalid BoxPosition: can not create box"); } _pickId = pickId; _dim[0] = packable.Length; _dim[1] = packable.Width; _dim[2] = packable.Height; // set position Position = bPosition.Position; // set direction length LengthAxis = HalfAxis.ToVector3D(bPosition.LengthAxis); // set direction width WidthAxis = HalfAxis.ToVector3D(bPosition.WidthAxis); _colors = Enumerable.Repeat <Color>(Color.Chocolate, 6).ToArray(); BProperties bProperties = packable as BProperties; if (null != bProperties) { _colors = bProperties.Colors; BoxProperties boxProperties = packable as BoxProperties; if (null != boxProperties) { List <Pair <HalfAxis.HAxis, Texture> > textures = boxProperties.TextureList; foreach (Pair <HalfAxis.HAxis, Texture> tex in textures) { int iIndex = (int)tex.first; if (null == _textureLists[iIndex]) { _textureLists[iIndex] = new List <Texture>(); } _textureLists[iIndex].Add(tex.second); } _showTape = boxProperties.ShowTape; _tapeWidth = boxProperties.TapeWidth; _tapeColor = boxProperties.TapeColor; } // IsBundle ? _isBundle = bProperties.IsBundle; if (bProperties.IsBundle) { BundleProperties bundleProp = packable as BundleProperties; if (null != bundleProp) { _noFlats = bundleProp.NoFlats; } } } PackProperties packProperties = packable as PackProperties; if (null != packProperties) { } }
private void Initialize(PackProperties packProperties) { switch (_axisOrtho) { case HalfAxis.HAxis.AXIS_Z_N: _boxLength = packProperties.Width + _forcedSpace; _boxWidth = packProperties.Length + _forcedSpace; _boxHeight = packProperties.Height; _lengthAxis = HalfAxis.HAxis.AXIS_Y_P; _widthAxis = HalfAxis.HAxis.AXIS_X_P; _vecTransf = new Vector3D(0.0, 0.0, packProperties.Height); break; case HalfAxis.HAxis.AXIS_Z_P: _boxLength = packProperties.Length + _forcedSpace; _boxWidth = packProperties.Width + _forcedSpace; _boxHeight = packProperties.Height; _lengthAxis = HalfAxis.HAxis.AXIS_X_P; _widthAxis = HalfAxis.HAxis.AXIS_Y_P; _vecTransf = Vector3D.Zero; break; default: break; } }
public void Draw(Graphics3DControl ctrl, Graphics3D graphics) { StrapperSet.SetDimension(OuterDimensions); // build pack PackProperties packProperties = new PackProperties( null, SelectedBox, Arrangement, BoxOrientation, Wrapper) { StrapperSet = StrapperSet }; if (uCtrlOuterDimensions.Checked) { packProperties.ForceOuterDimensions( new Vector3D(uCtrlOuterDimensions.X, uCtrlOuterDimensions.Y, uCtrlOuterDimensions.Z)); } Pack pack = new Pack(0, packProperties) { ForceTransparency = true }; graphics.AddBox(pack); graphics.AddDimensions(new DimensionCube(Vector3D.Zero, pack.Length, pack.Width, pack.Height, Color.Black, true)); if (packProperties.Wrap.Transparent) { graphics.AddDimensions( new DimensionCube( packProperties.InnerOffset , packProperties.InnerLength, packProperties.InnerWidth, packProperties.InnerHeight , Color.Red, false)); } }
public Pack(uint pickId, PackProperties packProperties) : base(pickId, packProperties.Length, packProperties.Width, packProperties.Height) { _packProperties = packProperties; _arrangement = _packProperties.Arrangement; _innerBox = new Box(0, packProperties.Box); }
private List <AnalysisLayered> PackOptimSolutions(ConstraintSetCasePallet constraintSet, int iNumber) { // TODO: better as IEnumerable<>? var analyses = new List <AnalysisLayered>(); foreach (CaseDefinition caseDefinition in CaseDefinitions(iNumber)) { try { // build pack properties Vector3D outerDimensions = caseDefinition.OuterDimensions(BoxProperties, ParamSetPackOpt); var packProperties = new PackProperties( null, BoxProperties, caseDefinition.Arrangement, PackProperties.Orientation(caseDefinition.Dim0, caseDefinition.Dim1), PackProperties.EnuRevSolidLayout.ALIGNED, BuildWrapper(), BuildTray() ); packProperties.ForceOuterDimensions(outerDimensions); // solver var solver = new SolverCasePallet(packProperties, PalletProperties, constraintSet); analyses.AddRange(solver.BuildAnalyses(false)); } catch (Exception ex) { _log.Error(ex.Message); } } // sort caseOptimSolution analyses.Sort(new AnalysisComparer()); return(analyses); }
private void onSelChangeGrid(object sender, SourceGrid.RangeRegionChangedEventArgs e) { try { SourceGrid.Selection.RowSelection select = sender as SourceGrid.Selection.RowSelection; SourceGrid.Grid g = select.Grid as SourceGrid.Grid; SourceGrid.RangeRegion region = g.Selection.GetSelectionRegion(); int[] indexes = region.GetRowsIndex(); if (indexes.Length < 1 || indexes[0] < 1) { _selectedAnalysis = null; } else { _selectedAnalysis = _analyses[indexes[0] - 1]; // analysis name/description if (null != _selectedAnalysis) { BoxProperties box = SelectedBox; PackProperties pack = _selectedAnalysis.Content as PackProperties; UpdateStatus(string.Empty); } } graphCtrlPack.Invalidate(); graphCtrlSolution.Invalidate(); } catch (Exception ex) { _log.Error(ex.Message); } }
private void onNext(object sender, EventArgs e) { try { // selected analysis -> get pack AnalysisCasePallet analysisSel = SelectedAnalysis; PackProperties packSel = analysisSel.Content as PackProperties; packSel.ID.SetNameDesc(AnalysisName, AnalysisName); // create pack PackProperties packProperties = _doc.CreateNewPack(packSel); PalletProperties palletProperties = _doc.CreateNewPallet(SelectedPallet); // create analysis List <InterlayerProperties> interlayers = new List <InterlayerProperties>(); AnalysisHomo analysis = _doc.CreateNewAnalysisCasePallet( AnalysisName, AnalysisDescription, packProperties, palletProperties, interlayers, null, null, null, BuildConstraintSet(), analysisSel.Solution.LayerDescriptors); FormBrowseSolution form = new FormBrowseSolution(_doc, analysis); if (DialogResult.OK == form.ShowDialog()) { } } catch (Exception ex) { _log.Error(ex.Message); } }
public Pack(uint pickId, PackProperties packProperties, BoxPosition position) : base(pickId, packProperties, position) { _packProperties = packProperties; _arrangement = _packProperties.Arrangement; _innerBox = new Box(0, packProperties.Box); _forceTransparency = false; }
public void ProcessAnalysis(PackPalletAnalysis analysis) { _packProperties = analysis.PackProperties; _palletProperties = analysis.PalletProperties; _interlayerProperties = analysis.InterlayerProperties; _constraintSet = analysis.ConstraintSet; analysis.Solutions = GenerateSolutions(); }
public Pack(uint pickId, PackProperties packProperties) : base(pickId, packProperties.Length, packProperties.Width, packProperties.Height) { _packProperties = packProperties; _arrangement = _packProperties.Arrangement; _innerBox = new Box(0, packProperties.Box); _forceTransparency = false; _boxPosition = BoxPosition.Zero; }
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); }
public Box(uint pickId, PackableBrick packable, LayerPosition bPosition) { // sanity checks CheckPosition(bPosition); // dimensions _pickId = pickId; _dim[0] = packable.Length; _dim[1] = packable.Width; _dim[2] = packable.Height; // set position _boxPosition = new BoxPosition(bPosition.Position, bPosition.LengthAxis, bPosition.WidthAxis); // colors _colors = Enumerable.Repeat <Color>(Color.Chocolate, 6).ToArray(); BProperties bProperties = PackableToBProperties(packable); if (null != bProperties) { _colors = bProperties.Colors; BoxProperties boxProperties = bProperties as BoxProperties; if (null != boxProperties) { List <Pair <HalfAxis.HAxis, Texture> > textures = boxProperties.TextureList; foreach (Pair <HalfAxis.HAxis, Texture> tex in textures) { int iIndex = (int)tex.first; if (null == _textureLists[iIndex]) { _textureLists[iIndex] = new List <Texture>(); } _textureLists[iIndex].Add(tex.second); } _showTape = boxProperties.ShowTape; _tapeWidth = boxProperties.TapeWidth; _tapeColor = boxProperties.TapeColor; } // IsBundle ? _isBundle = bProperties.IsBundle; if (bProperties.IsBundle) { BundleProperties bundleProp = packable as BundleProperties; if (null != bundleProp) { _noFlats = bundleProp.NoFlats; } } } PackProperties packProperties = packable as PackProperties; if (null != 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 onPackChanged(object sender, EventArgs e) { if (sender != uCtrlOuterDimensions && !this.DesignMode) { double length = 0.0, width = 0.0, height = 0.0; PackProperties.GetDimensions(SelectedBox, BoxOrientation, Arrangement, ref length, ref width, ref height); uCtrlOuterDimensions.X = length; uCtrlOuterDimensions.Y = width; uCtrlOuterDimensions.Z = height; } graphCtrl.Invalidate(); UpdateStatus(string.Empty); }
public Box(uint pickId, PackProperties packProperties, BoxPosition bPosition) { // sanity checks CheckPosition(bPosition); // dimensions _pickId = pickId; _dim[0] = packProperties.Length; _dim[1] = packProperties.Width; _dim[2] = packProperties.Height; // colors _colors = Enumerable.Repeat <Color>(Color.Chocolate, 6).ToArray(); // set position _boxPosition = bPosition; }
public Box(uint pickId, PackProperties packProperties, BoxPosition bPosition) { // sanity checks CheckPosition(bPosition); // dimensions PickId = pickId; _dim[0] = packProperties.Length; _dim[1] = packProperties.Width; _dim[2] = packProperties.Height; // box position BoxPosition = new BoxPosition(Vector3D.Zero, HalfAxis.HAxis.AXIS_X_P, HalfAxis.HAxis.AXIS_Y_P); // colors Colors = Enumerable.Repeat <Color>(Color.Chocolate, 6).ToArray(); // set position BoxPosition = bPosition; }
public override void UpdateStatus(string message) { if (!this.DesignMode) { double length = 0.0, width = 0.0, height = 0.0; PackProperties.GetDimensions( SelectedBox, BoxOrientation, Arrangement, ref length, ref width, ref height); if (uCtrlOuterDimensions.Checked && (uCtrlOuterDimensions.X < length || uCtrlOuterDimensions.Y < width || uCtrlOuterDimensions.Z < height)) { message = Properties.Resources.ID_INVALIDOUTERDIMENSION; } } base.UpdateStatus(message); }
public Pack(uint pickId, PackProperties packProperties, BoxPosition position) : base(pickId, packProperties, position) { _packProperties = packProperties; _arrangement = _packProperties.Arrangement; if (packProperties.Content is PackableBrick boxProperties) { _innerBox = new Box(0, boxProperties); } else if (packProperties.Content is CylinderProperties cylProp) { _innerBox = new Cylinder(0, cylProp); } else if (packProperties.Content is BottleProperties bottleProp) { _innerBox = new Bottle(0, bottleProp); } ForceTransparency = false; }
/// <summary> /// Creates a new PackProperties object /// </summary> public void CreateNewPackUI() { FormNewPack form = new FormNewPack(this, null); form.Boxes = Boxes; if (DialogResult.OK == form.ShowDialog()) { PackProperties packProperties = CreateNewPack( form.ItemName, form.ItemDescription , form.SelectedBox , form.Arrangement , form.BoxOrientation , form.Wrapper); if (form.HasForcedOuterDimensions) { packProperties.ForceOuterDimensions(form.OuterDimensions); } } }
private void OnSelChangeGrid(object sender, SourceGrid.RangeRegionChangedEventArgs e) { try { SourceGrid.Selection.RowSelection select = sender as SourceGrid.Selection.RowSelection; SourceGrid.Grid g = select.Grid as SourceGrid.Grid; SourceGrid.RangeRegion region = g.Selection.GetSelectionRegion(); int[] indexes = region.GetRowsIndex(); if (indexes.Length < 1 || indexes[0] < 1) { _selectedAnalysis = null; } else { _selectedAnalysis = _analyses[indexes[0] - 1]; // analysis name/description if (null != _selectedAnalysis) { BoxProperties box = SelectedBox; PackProperties pack = _selectedAnalysis.Content as PackProperties; AnalysisName = string.Format("Analysis_{0}x{1}x{2}_{3}_on_{4}", pack.Dim0, pack.Dim1, pack.Dim2, box.Name, _selectedAnalysis.Container.Name); AnalysisDescription = string.Format("Packing {0}x{1}x{2} {3} on {4}", pack.Dim0, pack.Dim1, pack.Dim2, box.Name, _selectedAnalysis.Container.Name); UpdateStatus(string.Empty); } else { AnalysisName = string.Empty; AnalysisDescription = string.Empty; } } graphCtrlPack.Invalidate(); graphCtrlSolution.Invalidate(); } catch (Exception ex) { _log.Error(ex.Message); } }
public void Draw(Graphics3DControl ctrl, Graphics3D graphics) { if (null == SelectedAnalysis) { return; } try { AnalysisCasePallet analysis = SelectedAnalysis; if (graphCtrlPack == ctrl) { bool showDimensions = true; // build pack PackProperties packProperties = analysis.Content as PackProperties; Pack pack = new Pack(0, packProperties) { ForceTransparency = true }; graphics.AddBox(pack); if (showDimensions) { graphics.AddDimensions(new DimensionCube(Vector3D.Zero, pack.Length, pack.Width, pack.Height, Color.Black, true)); if (packProperties.Wrap.Transparent) { graphics.AddDimensions( new DimensionCube( packProperties.InnerOffset , packProperties.InnerLength, packProperties.InnerWidth, packProperties.InnerHeight , Color.Red, false)); } } } else if (graphCtrlSolution == ctrl) { ViewerSolution sv = new ViewerSolution(SelectedAnalysis.Solution); sv.Draw(graphics, Transform3D.Identity); } } catch (Exception ex) { _log.Error(ex.Message); } }
public Box(uint pickId, PackProperties packProperties, BoxPosition bPosition) { if (!bPosition.IsValid) { throw new GraphicsException("Invalid BoxPosition: can not create box"); } _pickId = pickId; _dim[0] = packProperties.Length; _dim[1] = packProperties.Width; _dim[2] = packProperties.Height; _colors = Enumerable.Repeat <Color>(Color.Chocolate, 6).ToArray(); // set position Position = bPosition.Position; // set direction length LengthAxis = HalfAxis.ToVector3D(bPosition.DirectionLength); // set direction width WidthAxis = HalfAxis.ToVector3D(bPosition.DirectionWidth); }
private void OnCreateAnalysis(object sender, EventArgs e) { try { // selected analysis -> get pack AnalysisCasePallet analysisSel = SelectedAnalysis; PackProperties packSel = analysisSel.Content as PackProperties; packSel.ID.SetNameDesc(AnalysisName, AnalysisName); // create pack PackProperties packProperties = _doc.CreateNewPack(packSel); // create analysis List <InterlayerProperties> interlayers = new List <InterlayerProperties>(); AnalysisHomo packAnalysis = _doc.CreateNewAnalysisCasePallet( AnalysisName, AnalysisDescription, packProperties, SelectedPallet, interlayers, null, null, null, BuildConstraintSet(), analysisSel.Solution.LayerEncaps); } catch (Exception ex) { _log.Error(ex.Message); } }
private void FillGrid() { try { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader(); veHeaderCaption.BackColor = Color.SteelBlue; veHeaderCaption.Border = DevAge.Drawing.RectangleBorder.NoBorder; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** // set first row gridSolutions.BorderStyle = BorderStyle.FixedSingle; gridSolutions.ColumnsCount = 7; gridSolutions.FixedRows = 1; gridSolutions.Rows.Insert(0); // header int iCol = 0; SourceGrid.Cells.ColumnHeader columnHeader; // A1xA2xA3 columnHeader = new SourceGrid.Cells.ColumnHeader("A1 x A2 x A3"); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // dimensions columnHeader = new SourceGrid.Cells.ColumnHeader( string.Format(Properties.Resources.ID_DIMENSIONS, UnitsManager.LengthUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // weight columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Properties.Resources.ID_WEIGHT_WU, UnitsManager.MassUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // #packs columnHeader = new SourceGrid.Cells.ColumnHeader("#"); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // weight columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Properties.Resources.ID_PALLETWEIGHT, UnitsManager.MassUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // efficiency columnHeader = new SourceGrid.Cells.ColumnHeader(Properties.Resources.ID_EFFICIENCYPERCENTAGE); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // maximum space columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Properties.Resources.ID_MAXIMUMSPACE, UnitsManager.LengthUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; int iRow = 0; foreach (AnalysisHomo analysis in _analyses) { AnalysisCasePallet analysisCasePallet = analysis as AnalysisCasePallet; PackProperties pack = analysisCasePallet.Content as PackProperties; int layerCount = analysisCasePallet.Solution.Layers.Count; if (layerCount < 1) { continue; } int packPerLayerCount = analysisCasePallet.Solution.Layers[0].BoxCount; int itemCount = analysisCasePallet.Solution.ItemCount; double palletWeight = analysisCasePallet.Solution.Weight; double volumeEfficiency = analysisCasePallet.Solution.VolumeEfficiency; double maximumSpace = analysisCasePallet.Solution.LayerCount > 0 ? analysisCasePallet.Solution.LayerMaximumSpace(0) : 0; gridSolutions.Rows.Insert(++iRow); iCol = 0; gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0} x {1} x {2}", pack.Arrangement.Length, pack.Arrangement.Width, pack.Arrangement.Height)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.#} x {1:0.#} x {2:0.#}", pack.OuterDimensions.X, pack.OuterDimensions.Y, pack.OuterDimensions.Z)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.###}", pack.Weight)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0} = {1} x {2}", itemCount, packPerLayerCount, layerCount)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.###}", palletWeight)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.#}", volumeEfficiency)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.#}", maximumSpace)); } gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); // select first solution if (gridSolutions.RowsCount > 1) { gridSolutions.Selection.SelectRow(1, true); } else { // grid empty -> clear drawing _selectedAnalysis = null; graphCtrlPack.Invalidate(); graphCtrlSolution.Invalidate(); } } catch (Exception ex) { _log.Error(ex.Message); } }
private void btAddCasePalletAnalysis_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.Length , arrangement.Width , arrangement.Height , 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.Length , arrangement.Width , arrangement.Height , 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); /* * // add new case * CaseOfBoxesProperties caseProperties = _document.CreateNewCaseOfBoxes( * name, description * , boxProperties * , sol.CaseDefinition * , BuildCaseOptimConstraintSet()); * // set color * caseProperties.SetColor(Color.Chocolate); * // add new pallet analysis * List<CasePalletSolution> palletSolutionList = new List<CasePalletSolution>(); * palletSolutionList.Add(sol.PalletSolution); * Analysis analysis = _document.CreateNewCasePalletAnalysis( * analysisName * , analysisDescription * , caseProperties * , palletProperties * , null, null * , null, null, null * , BuildCasePalletConstraintSet() * , palletSolutionList); */ } catch (Exception ex) { _log.Error(ex.ToString()); } }
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.Length , arrangement.Width , arrangement.Height , 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.Length , arrangement.Width , arrangement.Height , 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 ConstraintSetCasePallet constraintSet = new ConstraintSetCasePallet() { Overhang = new Vector2D(OverhangX, OverhangY) }; constraintSet.SetMaxHeight(new OptDouble(true, MaximumPalletHeight)); constraintSet.OptMaxWeight = new OptDouble(false, 0); // interlayer List <InterlayerProperties> listInterlayers = new List <InterlayerProperties>(); // layer desc List <LayerDesc> layerDescs = new List <LayerDesc>(); // create analysis Analysis analysis = _document.CreateNewAnalysisCasePallet( analysisName, analysisDescription , pack, palletProperties , listInterlayers , null, null, null , constraintSet, layerDescs ); /* * // 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()); } }
public FormNewPack(Document doc, PackProperties packProperties) : base(doc, packProperties) { InitializeComponent(); _packProperties = packProperties; }
public SubContent(PackProperties pack) { PackProperties = pack; }