- 积分
- 113
- 明经币
- 个
- 注册时间
- 2011-10-10
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
我想实现在winform点一个按钮,在AutoCAD中就画出图形的功能。
一个简单的类,我在winf里面调用就是报错
Class1 c1=new Class1() ;
c1.Welcome();
提示未能加载文件或程序集“acmgd, Version=17.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
类具体如下:
public class Class1 //: IExtensionApplication
{
public void Initialize()
{
Welcome();
}
[CommandMethod("LoadCad")]
public void LoadCad()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "C:\\Program Files\\AutoCAD 2008\\acad.exe";//需要启动的程序名
p.StartInfo.Arguments = "/nologo /b start.scr";//启动参数
p.Start();//启动
//ExtensionLoader.Load("CAGAcad.dll");
}
public void Terminate()
{
Debug.WriteLine("程序结束,你可以在里做一些程序的清理工作,如关闭AutoCAD文档");
}
[CommandMethod("Welcome")]
public void Welcome()
{
//ExtensionLoader.Load("");
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("CAG绘图功能加载!");
}
[CommandMethod("FirstLine")]
public void FirstLine()
{
Database db = HostApplicationServices.WorkingDatabase;
Point3d pt1 = new Point3d(0, 0, 0);
Point3d pt2 = new Point3d(0, 500, 0);
Line lineEnt = new Line(pt1, pt2);
using (Transaction ta = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)ta.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)ta.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
btr.AppendEntity(lineEnt);
ta.AddNewlyCreatedDBObject(lineEnt, true);
ta.Commit();
}
}
}
|
|