public frmLayout(CADLayoutCollection layouts) { InitializeComponent(); Layouts = new ArrayList(); foreach (CADLayout layout in layouts) { // if(layout.PaperSpaceBlock==null)continue; ListViewItem item = listView1.Items.Add(""); item.StateImageIndex = 1; item.Tag = layout; item.SubItems.Add(layout.Name); } listView1.FullRowSelect = true; }
public frmLayout(CADLayoutCollection layouts) { InitializeComponent(); Layouts = new ArrayList(); foreach(CADLayout layout in layouts) { // if(layout.PaperSpaceBlock==null)continue; ListViewItem item = listView1.Items.Add(""); item.StateImageIndex=1; item.Tag = layout; item.SubItems.Add(layout.Name); } listView1.FullRowSelect =true; }
void checkLayout(CADImage cadimage) { multiView =false; foreach(CADLayout layout in cadimage.Layouts) { if(layout.PaperSpaceBlock!=null) { multiView =true; break; } } if(multiView)layouts = cadimage.Layouts; }
private ItopVector.Core.Document.SvgDocument getSvg(string filename) { flashwindow.RefleshStatus("���ڷ���CAD�ļ�..."); string exten=Path.GetExtension(filename); string svgFile = filename; double pWidth =800; double pHeight =600; ArrayList selectLayout = new ArrayList(); CADImage cadimage=null; if (exten.ToLower()==".dwg") { if(useCache && filename==cacheFile) { cadimage = cacheCAD; } else { DWGImage dwg =new DWGImage(); dwg.LoadFromFile(filename); cadimage = dwg; } svgFile = filename +".svg"; } else if(exten.ToLower()==".dxf") { if(useCache && filename==cacheFile) { cadimage = cacheCAD; } else { cadimage =new CADImage(); cadimage.LoadFromFile(filename); } svgFile = filename +".svg"; } else if(exten.ToLower()==".svg") { flashwindow.RefleshStatus("���ڷ���SVG�ļ�..."); goto label_01; } else { return null; } if(useCache) { cacheFile = filename; cacheCAD = cadimage; } checkLayout(cadimage); if (multiView) { paperspace = cadimage.converter.Entities[0].PaperSpace; cadimage.CurrentLayout = cadimage.Layouts[paperspace]; using(frmLayout dlg =new frmLayout(cadimage.Layouts)) { dlg.Layouts = selectLayout; dlg.ShowDialog(); } } pWidth = cadimage.AbsWidth; pHeight = cadimage.AbsHeight; // cadimage.Layouts[0].PaperSpaceBlock!=null; flashwindow.RefleshStatus(string.Format("������������ģ��{0}...","")); // cadimage.converter.Layers stw =File.CreateText(svgFile); stw.AutoFlush=true; string hd = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!----><!DOCTYPE svg PUBLIC \"-/W3C/DTD SVG 1.1/EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">" + "\r\n<svg id=\"svg\" width=\"" +pWidth + "\" height=\"" + pHeight + "\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:tonli=\"http://www.tonli.com/tonli\">"; stw.Write(hd); string lar = "\r\n<defs id=\"defs00001\">"+createLayer(cadimage.converter.Layers) + "\r\n</defs>"; stw.Write(lar); if(!multiView || selectLayout.Contains(paperspace)) { Parse(cadimage.converter.Entities,cadimage.AbsHeight,cadimage.AbsWidth,cadimage.xMin,cadimage.yMin,""); } if (multiView) { paperspace=-1; foreach(CADLayout layout in cadimage.Layouts) { paperspace++; if(!selectLayout.Contains(paperspace))continue; if(layout.PaperSpaceBlock !=null) { cadimage.CurrentLayout = cadimage.Layouts[paperspace]; DRect rect = layout.PaperSpaceBlock.Box; pWidth = Math.Max(pWidth,cadimage.AbsWidth); pHeight = Math.Max(pHeight,cadimage.AbsHeight); Parse(layout.PaperSpaceBlock.Entities,cadimage.AbsHeight,cadimage.AbsWidth,cadimage.xMin,cadimage.yMin,""); } } } stw.Write("\r\n</svg>"); stw.Flush(); stw.Close(); label_01: ItopVector.Core.Document.SvgDocument doc= ItopVector.Core.Document.SvgDocumentFactory.CreateDocumentFromFile(svgFile); // doc.PreserveWhitespace = true; // DateTime dt1 =DateTime.Now; // doc.Load(svgFile); if (doc==null)return null; bool flag = doc.AcceptChanges; doc.AcceptChanges=false; if(multiView) { doc.RootElement.SetAttribute("width",""+pWidth); doc.RootElement.SetAttribute("height",""+pHeight); } for(int i=doc.Layers.Count-1;i>=0;i--) { Layer layer = doc.Layers[i] as Layer; if(layer.GraphList.Count==0)layer.Remove(); } if(multiView && doc.Layers.Count>0 ) { (doc.Layers[0] as Layer).Visible=true; } #if !DEBUG File.Delete(filename+".svg"); #endif doc.FilePath=""; doc.FileName=Path.GetFileNameWithoutExtension(filename); doc.AcceptChanges=flag; layouts =null; cadimage =null; return doc; }