ODA Drawings Explorer (ODE) 是一个基于 QT 的示例应用程序,用于查看和编辑 ODA 数据库。它集成了对 .dwg 文件的支持,并且可以通过 OdDbDatabasePE 和相应的桥接模块访问其他格式(DGN、PRC 等)的数据库。DGN 和 .dwg 文件支持编辑。该应用程序的源代码位于 Drawing/Examples/Qt/OdaQtApp 目录中。
该应用程序的用户界面基于命令处理。与 Autodesk® AutoCAD® 中一样,菜单和工具栏的加载和卸载是使用 CUILOAD 和 CUIUNLOAD 命令执行的(MENU 命令是 CUILOAD 的同义词)。
您还可以在应用程序的 main() 函数中从资源或文件系统加载 CUI 文件:
int main(int argc, char *argv[])
{
...
QString qsMenuProfile = "qrc:/cui/odq_menu_base.cui",
qsToolbarsProfile = "qrc:/cui/odq_toolbar_base.cui";
getIConsole()->postponeCommand(QString("menu \"%1\"").arg(qsMenuProfile),
true, NULL, 100);
getIConsole()->postponeCommand(QString("cuiload \"%1\"").arg(qsToolbarsProfile),
true, NULL, 100);
...
}
从 Drawing/Examples/Qt/OdaQtApp/data/data.qrc 文件中指定的资源加载 CUI 文件时,使用“qrc:/”前缀。
ODE 工具栏和菜单文件基于 AutoCAD CUI 用户界面格式。CUI 文件最初是使用 AutoCAD 2009 的自定义用户界面 (CUI) 编辑器创建的。由于更高版本的 AutoCAD 使用 CUIx 格式(这是一个包含一组 CUI 文件的 ZIP 打包目录),因此强烈建议使用您首选的文本编辑器而不是 AutoCAD CUI 编辑器。文件格式基于 XML 且相当简单;所需的更改数量通常很少。
就像在 AutoCAD 中一样,对于菜单项、图标和命令,会通过 DIESEL 评估器执行初步处理。例如,如果 getIConsole()->evaluateDieselExpression(...); 对于打开的绘图当前状态下的菜单项返回以“~”开头的文本,则相应的菜单项将被禁用(灰色且不可点击)。如果返回空文本,则跳过该菜单项。
ODE diesel 命令会在控制台中检查结果,例如:
diesel "$(if,$(or,$(<,$(strlen,$(getvar,filename)),1),$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1))),~,)Top"
如果没有打开的图形,该命令将返回“~Top”;如果存在已选择模型空间选项卡的打开图形,则返回“Top”。
注意:将 DIESEL 命令添加到 CUI 文件时,请转义以下 XML 字符:
|
原始字符 |
转义字符 |
|
& |
& |
|
" |
" |
|
' |
' |
|
< |
< |
|
> |
> |
ODE 使用其自己的 OdDieselService 实现来调用 OdDieselEvaluate() — 请参阅 Drawing/Examples/Qt/OdaQtConsole/OdqConsole.cpp 中的 OdqDieselServiceImpl 类。如有必要,您可以通过更改此类中 getSystemVariable() 的实现来扩展 DIESEL 函数集。
有关更多信息,请参阅 ODA 文档。