上个月开始接触C# 的CAD二次开发,通常使用cad的人群都是学习工程或是设计行业的。我在这里发表一下学习的过程,写得不好勿喷,只希望能帮到有需要的人。
下面我们直接开始进入主题吧:
首先我们需要安装好AutoCAD 绘图工具,接下来需要引用到绘图工具的程序集。
接下来我们进入到项目,我们需要引用 Interop.ACFOCUSCTRLLib.dll Autodesk.AutoCAD.Interop.dll Autodesk.AutoCAD.Interop.Common.dll ,这几个文件可以到你安装包里面的文件夹里找到。
准备工作完成了,接着下一步。这里我先建立了一个CAD启动类CadClass,实现打开CAD绘图工具,最后返回的是一个AcadApplication对象,
public class CadClass
{
public static AcadApplication GetObject()
{
AcadApplication oAcadApplication;
try
{
bool isExist = false;
Process[] oProcess = Process.GetProcesses();
foreach (var oItem in oProcess)
{
if (oItem.ProcessName.Contains("acad"))
{
//判断是否一定打开CAD绘图工具
if ((int)oItem.MainWindowHandle == 0)
{
if (!oItem.HasExited)
{
oItem.Kill();
}
else
{
oItem.Close();
oItem.Dispose();
}
}
else
{
isExist = true;
break;
}
}
}
object o = new object();
if (!isExist)
{
Type oType = Type.GetTypeFromProgID("AutoCAD.Application.18");
o = Activator.CreateInstance(oType);
//新创建的就设置最大化信息
oAcadApplication = (AcadApplication)o;
}
else
{
o = Marshal.GetActiveObject("AutoCAD.Application.18");
oAcadApplication = (AcadApplication)o;
oAcadApplication.Visible = true;
}
return oAcadApplication;
}
catch (COMException x)
{
throw new COMException("请重试\r\n" + x.Message);
}
}
}
有了画板之后,我们就要打开一张图纸来进行绘图,并获取一个图形 对象 oAcadDocument
string FileName = @"E:\模板\sketch_Drawing_05.dwg";
AcadApplication oAcadApplication = CadClass.GetObject();
//最大化autoCAD
oAcadApplication.WindowState = Autodesk.AutoCAD.Interop.Common.AcWindowState.acMax;
//打开并获取当前AutoCAD活动图形对象
AcadDocument oAcadDocument = oAcadApplication.Documents.Open(FileName, null, null);
到这里我们已经成功用程序实现打开了一张dwg图纸。
CAD二次开发学习二,进入详细的线条描绘说明。