天天看点

Mechanical ARX 无法打开图纸

用ARX对ACAD Mechanical版本进行开发发现使用acDocManager->appContextOpenDocument方法时会出现eNotApplicable错误,此时调用acDocManager->isApplicationContext会发现此时的Context不在Application中,而appContextOpen必须在ApplicationContext下运行。

最后发现在需要调用到appContextOpenDocument的命令的注册方法flags参数中加上ACRX_CMD_MODAL就好了。

如:acedRegCmds->addCommand(_T("Test"), _T("Test"), _T("Test"), ACRX_CMD_MODAL|ACRX_CMD_SESSION,Test);

出现此错误的原因视乎是在没有加ACRX_CMD_MODAL时,会将命令的执行Context锁定到当前文档,如果要运行需要ApplicationContext环境的函数就会报错。

另外添加了ACRX_CMD_MODAL后命令的执行效率会不同,同时还有一些其他的限制(具体的我没有详细研究,其中有个限制是,在执行一些行为时会有需要锁定文档的要求)。

继续阅读