Beispiel #1
0
 public void Export(string v)
 {
     if (v.ToLower().EndsWith("svg"))
     {
         SvgParser.Export(v, Polygons, Sheets);
     }
     else if (v.ToLower().EndsWith("dxf"))
     {
         DxfParser.Export(v, Polygons, Sheets);
     }
     else
     {
         throw new NotImplementedException($"unknown format: {v}");
     }
 }
Beispiel #2
0
        public void LoadXml(string v)
        {
            var d   = XDocument.Load(v);
            var f   = d.Descendants().First();
            var gap = int.Parse(f.Attribute("gap").Value);

            SvgNest.Config.spacing = gap;

            foreach (var item in d.Descendants("sheet"))
            {
                int src = GetNextSheetSource();
                var cnt = int.Parse(item.Attribute("count").Value);
                var ww  = int.Parse(item.Attribute("width").Value);
                var hh  = int.Parse(item.Attribute("height").Value);

                for (int i = 0; i < cnt; i++)
                {
                    AddSheet(ww, hh, src);
                }
            }
            foreach (var item in d.Descendants("part"))
            {
                var       cnt  = int.Parse(item.Attribute("count").Value);
                var       path = item.Attribute("path").Value;
                RawDetail r    = null;
                if (path.ToLower().EndsWith("svg"))
                {
                    r = SvgParser.LoadSvg(path);
                }
                else if (path.ToLower().EndsWith("dxf"))
                {
                    r = DxfParser.LoadDxf(path);
                }
                else
                {
                    continue;
                }

                var src = GetNextSource();

                for (int i = 0; i < cnt; i++)
                {
                    ImportFromRawDetail(r, src);
                }
            }
        }
Beispiel #3
0
 public void ExportDxf(string v)
 {
     DxfParser.Export(v, Polygons, Sheets);
 }
        public void LoadXml(string v)
        {
            var d   = XDocument.Load(v);
            var f   = d.Descendants().First();
            var gap = int.Parse(f.Attribute("gap").Value);

            SvgNest.Config.Spacing = gap;

            foreach (var item in d.Descendants("sheet"))
            {
                int src = GetNextSheetSource();
                var cnt = int.Parse(item.Attribute("count").Value);
                var ww  = int.Parse(item.Attribute("width").Value);
                var hh  = int.Parse(item.Attribute("height").Value);

                for (int i = 0; i < cnt; i++)
                {
                    AddSheet(ww, hh, src);
                }
            }
            foreach (var item in d.Descendants("parts"))
            {
                var cnt  = int.Parse(item.Attribute("count").Value);
                var dir  = item.Attribute("dir").Value;
                var dxfs = Directory.GetFiles(dir, "*.dxf");
                var svgs = Directory.GetFiles(dir, "*.svg");

                foreach (var dxf in dxfs)
                {
                    var r   = DxfParser.loadDxf(dxf);
                    var src = GetNextSource();
                    for (int i = 0; i < cnt; i++)
                    {
                        ImportFromRawDetail(r, src);
                    }
                }

                foreach (var svg in svgs)
                {
                    var r   = SvgParser.LoadSvg(svg);
                    var src = GetNextSource();
                    for (int i = 0; i < cnt; i++)
                    {
                        ImportFromRawDetail(r, src);
                    }
                }
            }
            foreach (var item in d.Descendants("part"))
            {
                var       cnt  = int.Parse(item.Attribute("count").Value);
                var       path = item.Attribute("path").Value;
                var       ext  = Path.GetExtension(path);
                RawDetail r;
                if (ext.ToLower() == ".dxf")
                {
                    r = DxfParser.loadDxf(path);
                }
                else
                {
                    r = SvgParser.LoadSvg(path);
                }

                var src = GetNextSource();
                for (int i = 0; i < cnt; i++)
                {
                    ImportFromRawDetail(r, src);
                }
            }
        }