コード例 #1
0
ファイル: MainForm.cs プロジェクト: ming91915/SDSS
        private void buttonSolve_Click(object sender, EventArgs e)
        {
            StringBuilder errorMessage = new StringBuilder();

            // 对模型进行检查,看是否可以进行计算
            if (Model.Validate(ref errorMessage))
            {
                _Solver = new AnsysSolver(
                    workingDir: WorkingDir,
                    solverGui: Options.SolverGUI
                    );

                // 检查计算环境,文件配置
                if (_Solver.SetEnvironment(Model, ref errorMessage))
                {
                    // 求解计算
                    _bcParameters = new BgwParameters()
                    {
                        Solver       = _Solver,
                        ErrorMessage = errorMessage.ToString(),
                    };
                    //
                    progressBar1.Visible = true;
                    progressBar1.Style   = ProgressBarStyle.Marquee;

                    if (_bgw_Solver.IsBusy != true)
                    {
                        //
                        OnSdCalculationStart();
                        // Start the asynchronous operation.
                        _bgw_Solver.RunWorkerAsync(argument: _bcParameters);
                    }
                }
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: ming91915/SDSS
 /// <summary> 窗口关闭时将窗口所对应的模型数据也关闭 </summary>
 private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     Model = null;
     //
     if (_Solver != null)
     {
         _Solver.Dispose();
         _Solver = null;
     }
     //
     _PostProcessor = null;
 }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: ming91915/SDSS
        /// <summary> 计算完成,开始后处理 </summary>
        private void _backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            OnSdCalculationFinished();
            AnsysSolver solver = _bcParameters.Solver;

            //
            if (e.Cancelled) // 判断是否是手动退出线程
            {
                // 说明
                // solver.State = SolverState.FailedInCs;
            }

            // 后处理
            StringBuilder sb = new StringBuilder();

            _PostProcessor = new PostProcessor(Model, solver);
            if (_PostProcessor.CheckFinishState(errorMessage: ref sb))
            {
                SolverState ss = _PostProcessor.CheckOutputFiles(errorMessage: ref sb);
                if (ss == SolverState.Succeeded)
                {
                    if (Options.DirectlyReport)
                    {
                        ReadAndShowResults();
                    }
                    else
                    {
                        var res = MessageBox.Show(@"计算结束且成功,是否直接生成报告?", @"Congratulations", MessageBoxButtons.OKCancel,
                                                  MessageBoxIcon.Asterisk);
                        if (res == DialogResult.OK)
                        {
                            ReadAndShowResults();
                        }
                    }
                }
                else if (ss == SolverState.FailedWithError)
                {
                    var res = MessageBox.Show("Ansys 计算结束!\r\n" + sb.ToString(), @"提示", MessageBoxButtons.OK,
                                              MessageBoxIcon.Error);
                }
            }
            else
            {
                var res = MessageBox.Show("Ansys 计算过程未正常结束!\r\n" + sb.ToString(), @"提示", MessageBoxButtons.OK,
                                          MessageBoxIcon.Error);
            }
        }
コード例 #4
0
ファイル: Model1Form.cs プロジェクト: ming91915/SDSS
        private void tsm_TestShowResult_Click(object sender, EventArgs e)
        {
            var solver = new AnsysSolver(WorkingDir, Options.SolverGUI);
            var pp     = new PostProcessor(Model, solver);

            try
            {
                if (pp.Results == null)
                {
                    pp.ReadResultFile(resultFilePath: WorkingDir.F_AnsysResult);
                }
                pp.ShowResultsList();
            }
            catch (Exception ex)
            {
                // ignored
                var res = MessageBox.Show("后处理过程出现异常!\r\n", @"提示", MessageBoxButtons.OK,
                                          MessageBoxIcon.Error);
            }
        }
コード例 #5
0
ファイル: PostProcessor.cs プロジェクト: ming91915/SDSS
 public PostProcessor(ModelBase model, AnsysSolver solver) : this()
 {
     Model       = model;
     Solver      = solver;
     _workingDir = solver.WorkingDir;
 }