public Image GetImage(Size imageSize, bool showDimensions, List <short> groups, List <short> layers) { // computing bounding box Box2D box = BoundingBox(showDimensions); box.AddMarginRatio(0.05); // build filter PicFilter filter = new PicFilterListGroup(groups) & new PicFilterListLayer(layers) & (showDimensions ? PicFilter.FilterNone : PicFilter.FilterNotCotation); // cotations with long lines PicGlobalCotationProperties.ShowShortCotationLines = false; // drawing PicGraphicsImage picGraph = new PicGraphicsImage(imageSize, box); _factory.Draw(picGraph, filter); return(picGraph.Bitmap); }
public byte[] GenerateExportFile(string fileFormat, ParameterStack stack) { // build factory Pic.Factory2D.PicFactory factory = new Pic.Factory2D.PicFactory(); _component.CreateFactoryEntities(factory, stack); if (_reflexionX) { factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionX)); } if (_reflexionY) { factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionY)); } // instantiate filter PicFilter filter = (_showCotations ? PicFilter.FilterNone : !PicFilter.FilterCotation) & PicFilter.FilterNoZeroEntities; // get bounding box Pic.Factory2D.PicVisitorBoundingBox visitorBoundingBox = new Pic.Factory2D.PicVisitorBoundingBox(); factory.ProcessVisitor(visitorBoundingBox, filter); Pic.Factory2D.Box2D box = visitorBoundingBox.Box; // add margins : 5 % of the smallest value among height box.AddMarginHorizontal(box.Width * 0.05); box.AddMarginVertical(box.Height * 0.05); // get file content if ("des" == fileFormat) { Pic.Factory2D.PicVisitorDesOutput visitor = new Pic.Factory2D.PicVisitorDesOutput(); visitor.Author = "treeDiM"; // process visitor factory.ProcessVisitor(visitor, filter); return(visitor.GetResultByteArray()); } else if ("dxf" == fileFormat) { Pic.Factory2D.PicVisitorOutput visitor = new Pic.Factory2D.PicVisitorDxfOutput(); visitor.Author = "treeDiM"; // process visitor factory.ProcessVisitor(visitor, filter); return(visitor.GetResultByteArray()); } else if ("pdf" == fileFormat) { PicGraphicsPdf graphics = new PicGraphicsPdf(box); graphics.Author = "treeDiM"; graphics.Title = "Pdf Export"; // draw factory.Draw(graphics, filter); return(graphics.GetResultByteArray()); } else { throw new Exception("Invalid file format : " + fileFormat); } }
public byte[] GetExportFile(string fileExt, Pic.Plugin.ParameterStack stack) { // build factory Pic.Factory2D.PicFactory factory = new Pic.Factory2D.PicFactory(); Component.CreateFactoryEntities(factory, stack); if (_reflectionX) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionX)); if (_reflectionY) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionY)); // instantiate filter PicFilter filter = (_showCotations ? PicFilter.FilterNone : PicFilter.FilterCotation) & PicFilter.FilterNoZeroEntities; // get bounding box Pic.Factory2D.PicVisitorBoundingBox visitorBoundingBox = new Pic.Factory2D.PicVisitorBoundingBox(); factory.ProcessVisitor(visitorBoundingBox, filter); Pic.Factory2D.Box2D box = visitorBoundingBox.Box; // add margins : 5 % of the smallest value among height box.AddMarginHorizontal(box.Width * 0.05); box.AddMarginVertical(box.Height * 0.05); string author = Application.ProductName + " (" + Application.CompanyName + ")"; string title = Application.ProductName + " export"; string fileFormat = fileExt.StartsWith(".") ? fileExt.Substring(1) : fileExt; fileFormat = fileFormat.ToLower(); // get file content if (string.Equals("des", fileFormat)) { Pic.Factory2D.PicVisitorDesOutput visitor = new Pic.Factory2D.PicVisitorDesOutput(); visitor.Author = author; factory.ProcessVisitor(visitor, filter); return visitor.GetResultByteArray(); } else if (string.Equals("dxf", fileFormat)) { Pic.Factory2D.PicVisitorOutput visitor = new Pic.Factory2D.PicVisitorDxfOutput(); visitor.Author = author; factory.ProcessVisitor(visitor, filter); return visitor.GetResultByteArray(); } else if (string.Equals("pdf", fileFormat)) { Pic.Factory2D.PicGraphicsPdf graphics = new PicGraphicsPdf(box); graphics.Author = author; graphics.Title = title; factory.Draw(graphics, filter); return graphics.GetResultByteArray(); } else if (string.Equals("ai", fileFormat) || string.Equals("cf2", fileFormat)) { Pic.Factory2D.PicVisitorDiecutOutput visitor = new Pic.Factory2D.PicVisitorDiecutOutput(fileFormat); visitor.Author = author; visitor.Title = title; factory.ProcessVisitor(visitor, filter); return visitor.GetResultByteArray(); } else throw new Exception("Invalid file format:" + fileFormat); }
private void RePaint(PaintEventArgs e, ParameterStack stack) { try { // instantiate PicGraphics if (_picGraphics == null) _picGraphics = new PicGraphicsCtrlBased(this.Panel1.ClientSize, e.Graphics); _picGraphics.GdiGraphics = e.Graphics; _picGraphics.Size = this.Panel1.ClientSize; // instantiate filter PicFilter filter = _showCotations ? PicFilter.FilterNone : PicFilter.FilterCotation; // build factory using (Pic.Factory2D.PicFactory factory = new Pic.Factory2D.PicFactory()) { // create entities Component.CreateFactoryEntities(factory, stack); if (_reflectionX) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionX)); if (_reflectionY) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionY)); // remove existing quotations factory.Remove((new PicFilterCode(PicEntity.eCode.PE_COTATIONDISTANCE)) | (new PicFilterCode(PicEntity.eCode.PE_COTATIONHORIZONTAL)) | (new PicFilterCode(PicEntity.eCode.PE_COTATIONVERTICAL)) ); // build auto quotation if (_showCotations) PicAutoQuotation.BuildQuotation(factory); // update drawing box? if (_computeBbox) { Pic.Factory2D.PicVisitorBoundingBox visitor = new Pic.Factory2D.PicVisitorBoundingBox(); factory.ProcessVisitor(visitor); _box = new Box2D(visitor.Box); Box2D box = visitor.Box; box.AddMarginRatio(0.05); _picGraphics.DrawingBox = box; // update factory data if (null != factoryDataCtrl) factoryDataCtrl.Factory = factory; _computeBbox = false; } // draw factory.Draw(_picGraphics, filter); } } catch (Pic.Plugin.PluginException ex) { // might happen _picGraphics.ShowMessage(ex.Message); } catch (Exception ex) { _picGraphics.ShowMessage(ex.ToString()); _log.Error(ex.ToString()); } }
public byte[] GenerateExportFile(string fileFormat, ParameterStack stack) { // build factory Pic.Factory2D.PicFactory factory = new Pic.Factory2D.PicFactory(); _component.CreateFactoryEntities(factory, stack); if (_reflexionX) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionX)); if (_reflexionY) factory.ProcessVisitor(new PicVisitorTransform(Transform2D.ReflectionY)); // instantiate filter PicFilter filter = (_showCotations ? PicFilter.FilterNone : PicFilter.FilterCotation) & PicFilter.FilterNoZeroEntities; // get bounding box Pic.Factory2D.PicVisitorBoundingBox visitorBoundingBox = new Pic.Factory2D.PicVisitorBoundingBox(); factory.ProcessVisitor(visitorBoundingBox, filter); Pic.Factory2D.Box2D box = visitorBoundingBox.Box; // add margins : 5 % of the smallest value among height box.AddMarginHorizontal(box.Width * 0.05); box.AddMarginVertical(box.Height * 0.05); // get file content if ("des" == fileFormat) { Pic.Factory2D.PicVisitorDesOutput visitor = new Pic.Factory2D.PicVisitorDesOutput(); visitor.Author = "treeDiM"; // process visitor factory.ProcessVisitor(visitor, filter); return visitor.GetResultByteArray(); } else if ("dxf" == fileFormat) { Pic.Factory2D.PicVisitorOutput visitor = new Pic.Factory2D.PicVisitorDxfOutput(); visitor.Author = "treeDiM"; // process visitor factory.ProcessVisitor(visitor, filter); return visitor.GetResultByteArray(); } else if ("pdf" == fileFormat) { PicGraphicsPdf graphics = new PicGraphicsPdf(box); graphics.Author = "treeDiM"; graphics.Title = "Pdf Export"; // draw factory.Draw(graphics, filter); return graphics.GetResultByteArray(); } else throw new Exception("Invalid file format : " + fileFormat); }