
# 实施步骤
#### 准备工作
1. 开发技能
   - 熟悉C++语言，能够编写C++语言代码。
   
   - 熟悉CAD建模相关知识。
   
   - 了解OCCT几何建模相关知识。
   
   - 了解C++构建相关工具（cmake等）。
    
2. 开发环境
   - Windows 10+
     - Visual Studio 2017+或适用于Visual Studio 2017+的Microsoft Visual生成工具
     
     - CMake 3.7+
      
   
   - Linux：
     - gcc g++ gdb
     
     - CMake 3.7+
      
    
3. 许可准备 开发和使用DEE SDK需要获取DEE SDK许可文件。
   
 
#### 操作步骤
通过以下示例代码将一个模型文件从一种CAD格式转换为另一种CAD格式。
通过使用通用的ModelData_ModelReader和ModelData_ModelWriter，您可以处理任何支持格式的导入和导出。
1. 创建一个ModelData_ModelReader。 
   ```
   ModelData_ModelReader aReader;
   ```
   
   
2. （可选）设置读（Reader）参数。 
   ```
   STEP_ReaderParameters aSTEPReaderParams;
   aSTEPReaderParams.PreferredBRepRepresentationType() = STEP_ReaderParameters::AdvancedBRep;
   aReader.SetReaderParameters (aSTEPReaderParams);
   JT_ReaderParameters aJTReaderParams;
   aJTReaderParams.LayerConversionMode() = JT_ReaderParameters::LayerFilter;
   aReader.SetReaderParameters (aJTReaderParams);
   ```
   
   
3. 读取模型数据并将其数据读取到ModelData_Model对象。 
   ```
   ModelData_Model aModel;
   if (!aReader.Read (aSource, aModel)) {
       cerr << "Failed to open and convert the file " << aSource << endl;
       return 1;
   }
   ```
   
   
4. （可选）访问ModelData_Model对象，并在进一步的转换和操作中使用它。 
   ```
   cout << "Model name: " << aModel.Name().ToUTF8().Data() << endl;
   cout << "Number of roots: " << aModel.NumberOfRoots() << endl;
   ```
   
   
5. 创建一个ModelData_ModelWriter。 
   ```
   ModelData_ModelWriter aWriter;
   ```
   
   
6. （可选）设置写（Writer）参数。 
   ```
   OBJ_WriterParameters anOBJParams;
   anOBJParams.LengthUnit() = Base_LengthUnit::Base_LU_Centimeters;
   anOBJParams.ToGenerateMtlFile() = true;
   aWriter.SetWriterParameters (anOBJParams);
   JT_WriterParameters aJTParams;
   aJTParams.SetFileSplitMode (JT_WriterParameters::PerPart);
   aWriter.SetWriterParameters (aJTParams);
   ```
   
   
7. 将模型数据转换为选定的格式（指定文件扩展名）并保存。 
   ```
   if (!aWriter.Write (aModel, aDest)) {
       cerr << "Failed to convert and write the file to specified format" << aDest << endl;
       return 1;
   }
   ```
   
   
 
#### 常见问题
**Q：为什么使用SDK时，抛出了许可证相关的异常？**
**A：**请检查许可证的有效性，例如产品名称是否匹配，是否超过有效期限，并使用有效的许可证。
**Q：为什么导入文件时，出现异常？**
**A：**请检查文件是否能在指定的路径下查找到，并检查输入文件是否为DEE SDK支持的文件类型。
**Q：为什么转换后得到的结果文件中，不包含PMI的信息？**
**A：**此参数在默认情况下被设置为false，如果您需要此信息，请使用Base_WriterParameters::WritePMI()方法更改此项输出参数为true。
