Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public void LastExternalCommand() // This method can have any name
 {
     SetImpliedSelection();
     ExCommandExecutor.InvokeCurrentExternalCommand();
 }
Esempio n. 4
0
 public static void LastExternalCommand()
 {
     ExCommandExecutor.InvokeCurrentExternalCommand();
 }