private void Compute() { // build imposition solutions impositionTool = ImpositionTool.Instantiate(Factory, ImpSettings); // -> margins impositionTool.SpaceBetween = ImpSpace; impositionTool.Margin = ImpMargin; impositionTool.MinMargin = ImpRemainingMargin; impositionTool.HorizontalAlignment = HorizontalAlignment; impositionTool.VerticalAlignment = VerticalAlignment; // -> patterns impositionTool.AllowRotationInColumns = AllowColumnRotation; impositionTool.AllowRotationInRows = AllowRowRotation; impositionTool.AllowBothDirection = AllowBothDirection; // -> offset impositionTool.ImpositionOffset = Offset; try { // instantiate ProgressWindow and launch process ProgressWindow progress = new ProgressWindow(); System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(GenerateImpositionSolutions), progress); progress.ShowDialog(); LoadSolutions(); } catch (PicToolTooLongException /*ex*/) { MessageBox.Show( string.Format(Properties.Resources.ID_ABANDONPROCESSING, PicToolArea.MaxNoSegments) , Application.ProductName , MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public void BuildLayout() { Pic.Factory2D.Control.FormImpositionSettings formSettings = new Pic.Factory2D.Control.FormImpositionSettings(); if (null != _cardboardFormatLoader) formSettings.FormatLoader = _cardboardFormatLoader; // get offset Vector2D impositionOffset = Component.ImpositionOffset(CurrentParameterStack); // initialize form with offsets formSettings.OffsetX = impositionOffset.X; formSettings.OffsetY = impositionOffset.Y; if (DialogResult.OK == formSettings.ShowDialog()) { using (PicFactory factory = new PicFactory()) { // build factory entities Component.CreateFactoryEntities(factory, CurrentParameterStack); if (_reflectionX) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionX)); if (_reflectionY) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionY)); // build imposition solutions if (formSettings.Mode == 0) _impositionTool = new ImpositionToolCardboardFormat(factory, formSettings.CardboardFormat); else _impositionTool = new ImpositionToolXY(factory, formSettings.NumberDirX, formSettings.NumberDirY); // -> margins _impositionTool.HorizontalAlignment = formSettings.HorizontalAlignment; _impositionTool.VerticalAlignment = formSettings.VerticalAlignment; _impositionTool.SpaceBetween = new Vector2D(formSettings.ImpSpaceX, formSettings.ImpSpaceY); _impositionTool.Margin = new Vector2D(formSettings.ImpMarginLeftRight, formSettings.ImpMarginBottomTop); _impositionTool.MinMargin = new Vector2D(formSettings.ImpRemainingMarginLeftRight, formSettings.ImpRemainingMarginBottomTop); // -> allowed patterns _impositionTool.AllowRotationInColumnDirection = formSettings.AllowColumnRotation; _impositionTool.AllowRotationInRowDirection = formSettings.AllowRowRotation; // -> offsets _impositionTool.ImpositionOffset = new Vector2D(formSettings.OffsetX, formSettings.OffsetY); // instantiate ProgressWindow and launch process ProgressWindow progress = new ProgressWindow(); System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(GenerateImpositionSolutions), progress); progress.ShowDialog(); // show dialog if (null != _solutions && _solutions.Count > 0) { Pic.Factory2D.Control.FormImposition form = new Pic.Factory2D.Control.FormImposition(); form.Solutions = _solutions; form.Format = formSettings.CardboardFormat; if (DialogResult.OK == form.ShowDialog(this)) { } } } } }
private void onOK(object sender, EventArgs e) { // build factory entities try { // load file Pic.Factory2D.PicFactory factory = new PicFactory(); PicLoaderDes picLoaderDes = new PicLoaderDes(factory); using (DES_FileReader fileReader = new DES_FileReader()) { fileReader.ReadFile(_drawingName, picLoaderDes); } // build imposition solutions if (Mode == 0) { _impositionTool = new ImpositionToolCardboardFormat(factory, CurrentCardboardFormat); } else { _impositionTool = new ImpositionToolXY(factory, NumberDirX, NumberDirY); } // -> margins _impositionTool.HorizontalAlignment = HorizontalAlignment; _impositionTool.VerticalAlignment = VerticalAlignment; _impositionTool.SpaceBetween = new Vector2D(ImpSpaceX, ImpSpaceY); _impositionTool.Margin = new Vector2D(ImpMarginLeftRight, ImpMarginBottomTop); _impositionTool.MinMargin = new Vector2D(ImpRemainingMarginLeftRight, ImpRemainingMarginBottomTop); // -> allowed patterns _impositionTool.AllowRotationInColumnDirection = AllowColumnRotation; _impositionTool.AllowRotationInRowDirection = AllowRowRotation; // -> offsets _impositionTool.ImpositionOffset = Offset; _solutions = new List <ImpositionSolution>(); // instantiate ProgressWindow and launch process ProgressWindow progress = new ProgressWindow(); System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(GenerateImpositionSolutions), progress); progress.ShowDialog(); if (null != _solutions && _solutions.Count > 0) { FormLayoutViewer form = new FormLayoutViewer(); // set solutions form.Solutions = _solutions; form.Format = CurrentCardboardFormat; form.DrawingName = Path.GetFileNameWithoutExtension(_drawingName); // show imposition dlg if (DialogResult.OK == form.ShowDialog(this)) { _outputFilePath = form.OutputFilePath; _result = form.Result; } else { _result = 0; return; } } } catch (PicToolTooLongException /*ex*/) { MessageBox.Show( string.Format(Properties.Resources.ID_ABANDONPROCESSING , Pic.Factory2D.Properties.Settings.Default.AreaMaxNoSegments) , Application.ProductName , MessageBoxButtons.OK , MessageBoxIcon.Stop); } catch (Exception ex) { _log.Error(ex.ToString()); } if (null != LayoutValidated) { LayoutValidated(sender, new LayoutCtrlEventArgs(_result, GetOutputFile())); } }