—摘自TEKLA官网

在开发和调试插件时,停止和重新启动 Tekla Structures 非常耗时。因此,使用XS_PLUGIN_DEVELOPER_MODE来替换.dll同时打开 Tekla Structures。

将以下高级选项添加到 teklastructures.ini 文件中:设置 XS_PLUGIN_DEVELOPER_MODE=TRUE

插件 dll 文件必须位于 (.environments\common\extensions\) 子文件夹下。

注意:此高级选项不能与嵌套插件或包含静态变量的插件 dll 文件一起使用。

在 UI 开发中调试插件

XS_PLUGIN_DEVELOPER_MODE还可用于模型和绘图插件的UI开发。

如果插件设置为 TRUE,则可以更改并重新加载具有 PluginFormBase(Forms) 或 PluginWindowBase(Wpf) 对话框的 XS_PLUGIN_DEVELOPER_MODE插件,而无需重新启动 Tekla Structures。

工作流程如下:

  1. “set XS_PLUGIN_DEVELOPER_MODE=true”添加到 teklastructures.ini 文件并打开 Tekla Structures。
  2. 运行插件(模型或绘图),或从视图中的对象打开插件对话框。
  3. 在 Microsoft Visual Studio 中,更改插件 UI,生成插件,并将更改后的 dll 复制为生成后事件。(您也可以手动复制插件文件,或将已编译的二进制文件的位置设置为Microsoft Visual Studio中的扩展目录。使用生成后事件只是另一种选择。xcopy $(TargetDir)$(TargetName).dll “C:\ProgramData\Tekla Structures\Work\Environments\common\extensions\DrawingPluginDemo\” /R /Y
  4. 在侧窗格的“应用程序和组件”目录中运行 UI 宏(Reloadplugins.cs)。
  5. 再次打开插件对话框,查看 UI 是否为新 UI。
  6. 如果在运行 Reloadplugins 宏后打开对话框时出现问题,请先使用 Forms 打开另一个插件对话框,然后重试。
  7. 该插件可以在不重新启动Tekla Structures的情况下进行调试和更改(至少适用于Microsoft Visual Studio 2017)。
    • 首先附加调试器并运行插件。
    • 可以通过从菜单中全部分离来停止调试。
    • 可以更改和重新生成代码。
    • 执行 Reloadplugins 后,可以再次启动调试。

重新加载.cs代码:

#pragma warning disable 1633 // Unrecognized #pragma directive
#pragma reference "Tekla.Macros.Akit"
#pragma reference "Tekla.Macros.Wpf.Runtime"
#pragma reference "Tekla.Macros.Runtime"
#pragma warning restore 1633 // Unrecognized #pragma directive

namespace UserMacros
{
   public sealed class Macro
   {
       [Tekla.Macros.Runtime.MacroEntryPointAttribute()]

       public static void Run(Tekla.Macros.Runtime.IMacroRuntime runtime)
       {
           Tekla.Structures.ModelInternal.Operation.dotStartAction("dotdiaLoadDialogs", "");
           Tekla.Structures.ModelInternal.Operation.dotStartAction("dotdiaReloadDialogs", "");
           Tekla.Structures.Model.Operations.Operation.DisplayPrompt("Dialogs reloaded..");
       }
   }
}