ODA Drawings Explorer 菜单和工具栏自定义

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 字符:

 

原始字符

转义字符

&

&amp;

"

&quot;

'

&apos;

<

&lt;

>

&gt;

 

ODE 使用其自己的 OdDieselService 实现来调用 OdDieselEvaluate() — 请参阅 Drawing/Examples/Qt/OdaQtConsole/OdqConsole.cpp 中的 OdqDieselServiceImpl 类。如有必要,您可以通过更改此类中 getSystemVariable() 的实现来扩展 DIESEL 函数集。

有关更多信息,请参阅 ODA 文档

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用