qdby 发表于 2002-4-4 21:07:00

AutoCAD数据库的准入问题

我有几个问题,请教各位大侠!
    第一:能否在ObjectARX的入口函数acrxEntryPoint的AcRx::kInitAppMsg之外注册命令?我原来在AutoCAD 14.0下的ARX中是可行的。这使得我可以在我需要命令的时候注册它,而一旦用完就可马上注销它。而现在我在AutoCAD 2000及2002以外则不行了,导致AutoCAD异常退出。
    第二:是在未注册为命令的函数中能否生成实体。我在两处生成实体,一处在命令之内,一处在命令之外,原14.0都可正常运行。但进入2000/2002之后就出错了。一查,原来是模型空间不能打开为写方式,pBlockTable->getAt(ACDB_MODEL_SPACE, BlockTableRecord, AcDb::kForWrite);块表getAt返回值为320即Acad::eLockViolation。即有一个锁定,我试着锁定或解锁程序,均无济于事。不知ACAD数据库是否也有一锁定操作。
    第三:就是ARX程序能否实现自退出。我原在AutoCAD14.0下通过给AutoCAD发送(Arxunload "arxfile")成功实现自退出,但现在,又导致了AutoCAD异常退出。
    以上种种,望各位大侠好心指点。

goldenshin 发表于 2002-4-9 13:39:00

不知道是不是这样

1、在R2000下,如果不用defun注册命令,大约是不能在这个入口之外注册命令的

2、R2000是有自锁机制,很可能是相对R14来说,R2000加强了安全机制,但是如果只是增加实体,则不需要用write方式,用read方式足够;

3、这种情况没有试过,我想可能是注销机制不一样,在R2000下,注销的同时要做所有的内存清理(自已清理自已当然出错),而且R14下的注销可能只是从命令列表中进行清除。
页: [1]
查看完整版本: AutoCAD数据库的准入问题