AutoCAD .Net开发常见问题汇总

1.显示无法加载程序集

    因为我的环境是VS2010,.Net版本是4.0,而AutoCAD 2008的版本是2.0,因此会出现不兼容的问题,可以通过设置.NET Framework版本的方法来解决这个问题,在“目标框架”下拉框中选择.NET Framework3.5

2.提示输入的命令为未知命令

出现这种问题是与添加的两个程序集acdbmgd.dll和acdmgd.dll有关。请首先关闭CAD回到Visual Studio开发环境,然后在解决方案管理器中依次单击acdbmgd.dll和acdmgd.dll引用,查看他们“复制本地”属性,你会发现属性值为True,意思是当程序编译的时候这2个程序集会复制输出到文件夹里。我们只需要把这2个属性设置为False,就可以让程序正常运行了。

3.使用Visual Studio对代码进行调试

a.将acdbmgd.dll和acdmgd.dll这2个引用的“复制本地”属性设置为False

b.设置程序的调试环境

4.如何使用向导完成AutoCAD .NET开发需要进行的准备工作

     https://www.cnblogs.com/ParanoiaApe/p/10544636.html

5.VS2010开发AutoCAD 2012 .net应用程序调试时断点不起作用

VS2010+ AutoCAD 2012开发调试过程中,发现普通的Class里面的断点是可以跟踪到的,可能是创建自定义的Form做界面是,Form1.cs中的代码断点却不管用。原因在于AutoCAD的纤程(Fiber)。是的,是纤程(Fiber)而不是线程(Thread)。VS2010的调试器和AutoCAD的纤程一起工作时会有问题。解决的办法就是关闭AutoCAD纤程。通过系统环境变量FIBERWORLD来查看当前纤程是否打开,如果是1,则可以通过把系统环境变量NEXTFIBERWORLD设为0。

Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("NEXTFIBERWORLD", 0); 

如果你是在使用VS2010 基于AutoCAD 2011 及其垂直产品,可以参考http://www.cnblogs.com/junqilian/archive/2010/04/29/1724403.html

注意,当修改NEXTFIBERWORLD为0后如果出现CAD软件里所有的工具点击失效而只能输入命令行使用时再将NEXTFIBERWORLD改为1即可解决该问题,即NEXTFIBERWORLD只在开发调试过程中作更改,开发完后再将其原值改回。

6.CAD开发遇到eLockViolation错误的解决办法:

对CAD数据库进行写操作时,要把当前文档锁住,即添加如下两句代码:

DocumentLock docLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument();
  //执行代码
....
....
....
 docLock.Dispose();
View Code

7.无法加载程序集。错误详细信息: Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey

命令 重复了, 要把命令单独放在一个文件里,并且不能有重复的

 

posted @ 2019-01-23 16:17  ParanoiaApe  阅读(1717)  评论(0)    收藏  举报