CAD .NET是一款在CAD领域被广泛应用的控件,可以快速准确的阅读DWG和DXF文件,并且通过Windows GDI+方法绘制件,支持多种文件格式,包括DWG、DXF、Gerber、光栅图像等,并支持部分编辑功能。
CAD .NET应用领域:
- 监控和遥控程序
- 数控加工
- 数据导出为CAD格式
- 文件管理系统
- 与数据库合作
- 高度专业化的产品使用图纸
CADSoftTools——CAD .NET常见问题解答
Q1:关于打印的选择
问:我正在寻找可以选择图像的一部分的东西,就像选择一个部分来缩放那个部分,然后打印或导出那个可见的部分?
答:您可以使用重载方法CADImage.SaveToStream的以下签名将CAD图像的一部分保存到MemoryStream:
public virtual void SaveToStream( Stream str, ImageFormat ImgFormat, DRect aCurRect, Rectangle clipRect )
ImgFormat参数指定保存图像的文件格式(Bmp,Jpeg等)。CurRect参数表示当前显示在屏幕上的CAD图像部分,而clipRect确定将保存到流的部分(Stream str)。
将裁剪的部分放入内存流后,可以从中创建新的位图:
MemoryStream ms = new MemoryStream(); ... Bitmap bmp = new Bitmap(ms);
然后使用PrintDocument类在打印机页面上绘制此位图:
public static void PrintBitmap(Bitmap bitmap, string printerName, int paperWidth, int paperHeight) { PrintDocument pd = new PrintDocument(); pd.PrinterSettings.PrinterName = printerName; pd.PrinterSettings.DefaultPageSettings.Landscape = true; pd.PrinterSettings.DefaultPageSettings.PaperSize = new PaperSize("Custom size", paperWidth, paperHeight); pd.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0); pd.PrinterSettings.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0); pd.PrintPage += (sender, args) => { Rectangle m = args.MarginBounds; if ((double)bitmap.Width / (double)bitmap.Height > (double)m.Width / (double)m.Height) { m.Height = (int)((double)bitmap.Height / (double)bitmap.Width * (double)m.Width); } else { m.Width = (int)((double)bitmap.Width / (double)bitmap.Height * (double)m.Height); } args.Graphics.DrawImage(bitmap, m); }; pd.Print(); }
要使用鼠标选择CAD图像的一部分,可以使用CADEditorControl.ClipRectangle工具,如下面的代码示例所示。
using System; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Printing; using System.IO; using System.Windows.Forms; using CADImport; using CADImport.FaceModule; public partial class Form1 : Form { public Form1() { InitializeComponent(); cadEditorControl1.EditorCADPictureBox.MouseDown += EditorCADPictureBox_MouseDown; cadEditorControl1.EditorCADPictureBox.MouseUp += EditorCADPictureBox_MouseUp; } void EditorCA