如何新建一个文档

本文原作者:Luca Gutierrez,经授权后转发

扫码关注微信公众号:CATIA二次开发助手

扫码关注微信公众号:CATIA二次开发助手

新建文档


新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
  • 创建会话
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session
  1. 1char *sessionName = "CAA2_Sample_Session"
  2. 2CATSession *pSession = NULL
  3. 3HRESULT rc = ::Create_Session(sessionName, pSession); 
  • 创建文档
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
  1. 1CATDocument* pDoc = NULL
  2. 2rc = CATDocumentServices::New("Part",pDoc); 
  3. 3if (NULL != pDoc) cout << "New document created OK" << endl
  • 保存文档
使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。
  1. 1rc = CATDocumentServices::SaveAs (*pDoc, "TestPart"); 
  2. 2if (SUCCEEDED(rc)) cout << "Document saved OK" << endl
  • 移除文档
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。
  1. 1rc = CATDocumentServices::Remove (*pDoc); 
  2. 2if (SUCCEEDED(rc)) cout << "Document removed OK" << endl
  3. 3pDoc = NULL
  • 删除会话
在程序的最后不要忘记使用全局函数Delete_Session删除会话。
  1. 1rc = ::Delete_Session(sessionName); 
  2. 2if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl