1、CAD崩溃,错误“unhandled access violation reading”=“未将对象引用设置到对象的实例”。

2、

建模操作错误:指向给定边的指针为空。

建模操作错误:访问冲突。

acdbmgdeGeneralModelingFailure

这类错误是CAD直接在其命令行中输出提示的,有时候会引发CAD崩溃,但有时候又不会引发崩溃。

我碰到的这种类错误的情况是:频繁对一些Region进行重复炸碎,出现了这类错误。重复时间间隔越短越容易出问题,有时候中间间隔十几秒半分钟,但还会引发这类错误。

原因可能是炸碎之后对象的释放不及时,CAD内存管理上出了问题;炸碎之后的实体存放在了DBObjectCollection中,虽然这个类的继承了IDisopsable,并且实现了Dispose方法和析构函数,但C#对它的释放时机好像没有把握对,释放的太晚,可能我第一次炸碎之后的得到的对象,在我第二次进行炸碎操作的时候还没有释放掉,或者在炸碎的过程中进行了释放,于是出错误。

而对于释放不及时的原因,我猜想是因为DBObjectCollection内部有些地方用了GC.KeepAlive,而使得C#对它的释放不够及时。

解决的办法是尽量手动释放,发现这个问题之后,我刚开始是在使用完炸碎Region得到的DBObjectCollection之后,进行了统一的释放,但是还会出现这类错误。于是在使用DBObjectCollection的循环内部,每次循环结束后,主动调用每个DBObject的Dispose方法,然后在循环结束之后,再对DBObjectCollection进行统一释放,至此,没有再出现这类错误。

3、不会命中断点,源代码与原始版本不同。

在时候用VS调试代码的时候设的断点无效,断点上会出来一个黄色的三角形,鼠标放上去会提示“不会命中断点,源代码与原始版本不同”,出现这种情况可以把项目中bin文件夹和obj文件夹清空,然后再重新生成解决方案。如果不能解决,可以找到工具->选项->调试->要求源文件与原始版本完成匹配,去掉勾选。

4、eNonCoplanarGeometry

当实体不共面时,即有些实体的Z值不为0,则进行想到计算、判断时(如面域的布尔运算),会有此提示,此时把对应实体或所有实体的Z值全部清零即可,或者是在进行计算、判断前先判断每个参与操作的实体的Z值是否为0,如果不为0则跳过不进行运算。

5、eNotApplicable

情况1:一个面域是复合面域,是一个回字形面域,但它里面的那一块非常非常小,此时将它炸开时会失败(不管是用接口的炸开还是用CAD命令炸开都会失败)。

AutoCAD.NET二次开发错误集锦的更多相关文章

  1. 利用C#进行AUTOCAD的二次开发

    众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++, ...

  2. AutoCAD .NET二次开发(一)

    其他话不多说,直接进入主题,既然是二次开发,当然是用CAD平台已经封装好了很多类,我们需要熟悉和使用它们.常用的AutoCAD .NET API的四个主要DLL文件是: 名称 作用 备注 AcDbMg ...

  3. ArcEngine10.1二次开发错误: 无法嵌入互操作类型,请改用适用的接口

    在之前配置ArcEngine.VS2010二次开发程序的时候,遇见"无法嵌入互操作类型,请改用适用的接口"的错误,在网上查了下,下面引用解决方法. 解决方式为在提示错误的引用上面右 ...

  4. AutoCAD C#二次开发

    https://www.cnblogs.com/gisoracle/archive/2012/02/19/2357925.html using System; using System.Collect ...

  5. AutoCAD.NET二次开发:创建自定义菜单(AcCui)

    从CAD2007之后,Autodesk提供了一个新的程序集AcCui.dll,使用这个程序集,我们可以方便地做一些界面方面的操作,比如创建自定义菜单. 下面介绍一下菜单的创建过程: 1.在项目中添加引 ...

  6. 【Android 应用开发】Android 开发错误集锦

    1. eclipse的Device中不显示手机 在eclipse中连接不上手机,出现adb server didn't ACK  fail to start daemon 错误. 出现这种原因是因为a ...

  7. ArcEngine二次开发错误编码对照表(转)

    阅读数:3323 每当我们在进行AE开发,出现错误时经常会出现错误代码,但是我们并不知道它到底代表什么意思,这里的而错误编码我们可以对照着找到我们需要的时候常详细信息(问题是,经常还是会出现没有错误编 ...

  8. Android 开发错误集锦

    1. eclipse的Device中不显示手机 在eclipse中连接不上手机,出现adb server didn't ACK  fail to start daemon 错误. 出现这种原因是因为a ...

  9. AutoCAD .NET二次开发(四)

    在CAD中,属性信息一般是以注记的形式存在,但当属性数据内容较多时,显示就成了问题.扩展属性(Xdata)可以解决这一问题,比如南方Cass中就利用了这一点.我们经常用Lisp来读取操作扩展属性. 查 ...

随机推荐

  1. Codeforces Round #275 (Div. 2)

    A. Counterexample 题意:给出l,r,找出使得满足l<a<b<c<r,同时满足a,b的最大公约数为1,b,c的最大公约数为1,且a,b的最大公约数不为1 因为题 ...

  2. wince6下载地址

    http://geekswithblogs.net/WindowsEmbeddedCookbook/archive/2010/08/31/installing-windows-ce-6.0-tools ...

  3. IOS学习-报错误 Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

    环境:XCODE:5.0.2  IOS7模拟器 界面:使用storyboard 拖拽 简单应用:一个CoreData的CRUD用例. 界面如下图(一个UITableViewController 列表 ...

  4. HDU 1548 A strange lift 奇怪的电梯(BFS,水)

    题意: 有一座电梯,其中楼层从1-n,每层都有一个数字k,当处于某一层时,只能往上走k层,或者下走k层.楼主在a层,问是否能到达第b层? 思路: 在起点时只能往上走和往下走两个选择,之后的每层都是这样 ...

  5. 08day1

    高中运动会 最大公约数 [问题描述] 梦幻城市每年为全市高中生兴办一次运动会.为促使各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数皆相同.为增加 ...

  6. Mac 上安装MySQL

    http://blog.neten.de/posts/2014/01/27/install-mysql-using-homebrew/ http://www.wkii.org/mac-os-x-ins ...

  7. JFinal 部署在 Tomcat 下推荐方法(转)

    首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任何差别.Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免,所以撰写 ...

  8. 把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列。

    编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列. 实现了unsigned long型的转换. // 十进制转换为二进制,十进制数的每1bit转换为二进制的1 ...

  9. 微信支付-JSAPI支付V3-查询退款

    接口地址 接口链接:https://api.mch.weixin.qq.com/pay/refundquery 是否需要证书 不需要. 请求参数 字段名 变量名 必填 类型 示例值 描述 公众账号ID ...

  10. Tomcat: localhost:8080 提示404

    下午配置环境,配置完成后,欣喜地进入localhost:8080,结果给我提示404 心想:尼玛,这localhost都还会404,这不坑爹吗?! 琢磨了好久,结果被我搞定了,只需要做一个改动: 打开 ...