/// <summary> 执行 CAD 的外部命令 </summary> /// <param name="assemblyPath">外部命令所对应的dll的绝对路径</param> /// <param name="externalCommand">此命令必须是实现了 IExternalCommand.Execute </param> /// <remarks>出于调试的即时更新的考虑,这里在每一次调试外部命令时,都对最新的dll进行重新加载。</remarks> public static void InvokeExternalCommand(string assemblyPath, ICADExCommand externalCommand) { string errMsg; var res = ExCommandExecutor.RunActiveCommand(externalCommand, assemblyPath, out errMsg); if (res == ExternalCommandResult.Failed) { MessageBox.Show($"外部命令加载或运行时出错!\r\n{errMsg}", @"出错", MessageBoxButtons.OK, MessageBoxIcon.Error); } // _currentExternalCommandAssemblyPath = assemblyPath; _currentExternalCommand = externalCommand; }
private void RunExternalCommand(TreeNode ndCommand) { var exCommand = ndCommand.Tag as ICADExCommand; AddinManagerAssembly asm = ndCommand.Parent.Tag as AddinManagerAssembly; // string assemblyPath = asm.Path; // ---------- 将窗口缩小 ---------- if (checkBox_MinimizeWhileRun.Checked) { this.WindowState = FormWindowState.Minimized; } // 执行外部命令 ExCommandExecutor.InvokeExternalCommand(assemblyPath, exCommand); }
public void LastExternalCommand() // This method can have any name { SetImpliedSelection(); ExCommandExecutor.InvokeCurrentExternalCommand(); }
public static void LastExternalCommand() { ExCommandExecutor.InvokeCurrentExternalCommand(); }