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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章