1. 中望CAD文档管理器概述
在CAD二次开发领域,文档管理是核心功能模块之一。中望CAD作为国产CAD软件的领军产品,其ZRX C++开发接口提供了完善的文档管理能力。文档管理器(Document Manager)在多文档环境下扮演着系统管家的角色,负责协调各个文档的生命周期、状态维护和资源分配。
我从事CAD二次开发多年,处理过各种文档管理场景。实际项目中,90%的崩溃问题都源于不规范的文档操作。文档管理器就像CAD系统的交通警察,确保所有文档操作有序进行。理解其工作原理,是开发稳定插件的基础。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文档管理核心操作详解
2.1 获取文档对象
获取当前活动文档是最基础的操作:
cpp复制ZcApDocument* pDoc = zcDocManager->curDocument();
这里有几个关键点需要注意:
zcDocManager是全局单例,无需手动创建- 返回值可能为NULL(当无打开文档时)
- 指针生命周期由CAD系统管理,不应手动释放
安全用法应添加判空:
cpp复制if(ZcApDocument* pDoc = zcDocManager->curDocument()) {
// 安全操作文档
}
2.2 文档属性访问
获取文档路径的完整示例:
cpp复制const ZTCHAR* path = pDoc->fileName();
if(path && *path) {
// 处理有效路径
zcwprintf(_T("当前文档: %s\n"), path);
}
注意:新建未保存的文档返回空路径,应先检查
isSaved()状态
其他常用属性:
isModified()判断是否有未保存修改database()获取底层图形数据库commandContext()获取命令执行上下文
2.3 多文档遍历
获取所有打开文档的推荐方式:
cpp复制ZcApDocumentIterator* iter = zcDocManager->newDocumentIterator();
for(; !iter->done(); iter->step()) {
ZcApDocument
