天天看點

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後指令的執行效率會不同,同時還有一些其他的限制(具體的我沒有詳細研究,其中有個限制是,在執行一些行為時會有需要鎖定文檔的要求)。

繼續閱讀