public virtual void Plot() { using (new AutoCadConnector()) { int i = 1; foreach (CadPaper cadpaper in this) { try { cadpaper.Print(); Thread.Sleep(500); var args = new CadPaperProgressEventArgs { Count = Count, CurrentPoint = i++, CurrentPaper = cadpaper, SenderMethod = CadPaperProgressSender.打印 }; OnCadPaperProgress(args); Application.DoEvents(); } catch (Exception) { break; } } } }
protected virtual void OnCadPaperProgress(CadPaperProgressEventArgs args) { CadPaperProgressEventHandler handler = CadPaperProgress; if (handler != null) { handler(args); } }
public virtual void Plot() { using (new AutoCadConnector()) { int i = 1; foreach (CadPaper cadpaper in this) { try { if (cadpaper.MapSheet.ToLower() == "other") { continue; } cadpaper.Print(); //Thread.Sleep(500); var args = new CadPaperProgressEventArgs { Count = Count, CurrentPoint = i++, CurrentPaper = cadpaper, SenderMethod = CadPaperProgressSender.打印 }; OnCadPaperProgress(args); } catch (COMException ex) { MessageBox.Show(string.Format("调用CAD程序进行批量打印时出错!\n请先手工打开Autocad界面再尝试重新筛选!\n错误描述:{0}", ex.Message), @"CAD批量打印", MessageBoxButtons.OK, MessageBoxIcon.Error); OnCadPaperProgress(new CadPaperProgressEventArgs { SenderMethod = CadPaperProgressSender.运行错误 }); break; } catch (Exception ex) { MessageBox.Show(string.Format("CAD批量打印输出时出错!\n错误描述:{0}", ex.Message), @"CAD批量打印", MessageBoxButtons.OK, MessageBoxIcon.Error); OnCadPaperProgress(new CadPaperProgressEventArgs { SenderMethod = CadPaperProgressSender.运行错误 }); break; } } } OnCadPaperProgress(new CadPaperProgressEventArgs { SenderMethod = CadPaperProgressSender.打印完成 }); }
public void Screen() { using (new AutoCadConnector()) { int i = 1; foreach (CadPaper paper in this) { paper.Screen(); Application.DoEvents(); var args = new CadPaperProgressEventArgs { Count = Count, CurrentPoint = i++, CurrentPaper = paper, SenderMethod = CadPaperProgressSender.筛选 }; OnCadPaperProgress(args); } } }
public void Screen() { //var startDate=DateTime.Now; using (AutoCadConnector cad = new AutoCadConnector()) { int i = 1; foreach (CadPaper paper in this) { try { //AcadDocument doc = cad.Application.Documents.Open(paper.FileFullName); //paper.Scale = Convert.ToDouble(doc.GetVariable("DIMSCALE")); //var points = (double[]) doc.Limits; //var width = (int) Math.Ceiling((points[2] - points[0])/paper.Scale); //var height = (int) Math.Ceiling((points[3] - points[1])/paper.Scale); //doc.Close(false, ""); //paper.Angle = width > height ? 90 : 0; //paper.Width = width; //paper.Height = height; //paper.PrintedNum = 0; paper.Screen(); var args = new CadPaperProgressEventArgs { Count = Count, CurrentPoint = i++, CurrentPaper = paper, SenderMethod = CadPaperProgressSender.筛选 }; //Console.WriteLine(@"begin invoke OnCadPaperProgress ,id:{0},{1}",Thread.CurrentThread.ManagedThreadId,i); OnCadPaperProgress(args); } catch (COMException ex) { MessageBox.Show(string.Format("调用CAD程序图幅筛选时出错!\n请先手工打开Autocad界面再尝试重新筛选!\n错误描述:{0}", ex.Message), @"CAD批量打印", MessageBoxButtons.OK, MessageBoxIcon.Error); OnCadPaperProgress(new CadPaperProgressEventArgs { SenderMethod = CadPaperProgressSender.运行错误 }); break; } catch (Exception ex) { MessageBox.Show(string.Format("程序在图幅筛选时出错!\n错误描述:{0}", ex.Message), @"CAD批量打印", MessageBoxButtons.OK, MessageBoxIcon.Error); OnCadPaperProgress(new CadPaperProgressEventArgs { SenderMethod = CadPaperProgressSender.运行错误 }); break; } } } OnCadPaperProgress(new CadPaperProgressEventArgs { SenderMethod = CadPaperProgressSender.筛选完成 }); //Console.WriteLine(@"end invoke OnCadPaperProgress"); //var endTime = DateTime.Now; //var n = endTime.Subtract(startDate).TotalSeconds; //Console.WriteLine(@"总共耗时:{0}",n); }