Files
wg_cpso/CPSO/Forms/61_Settings/ViewAbaqusSettings.cs
2026-03-25 18:20:24 +08:00

95 lines
3.5 KiB
C#

using CaeGlobals;
using DynamicTypeDescriptor;
using System;
using System.ComponentModel;
using System.Drawing.Design;
using System.IO;
using System.Windows.Forms;
#pragma warning disable IDE0130
namespace CPSO.Settings
{
[Serializable]
public class ViewAbaqusSettings : IViewSettings, IReset
{
// Variables
private AbaqusSettings _abaqusSettings;
private DynamicCustomTypeDescriptor _dctd = null;
// Properties
[Category("Abaqus")]
[OrderedDisplayName(0, 10, "Work directory")]
[Description("Select the work directory.")]
[Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(UITypeEditor))]
[Id(1, 1)]
public string WorkDirectory
{
get { return _abaqusSettings.WorkDirectoryForSettingsOnly; }
set
{
if (value != _abaqusSettings.WorkDirectoryForSettingsOnly)
{
if (!Directory.Exists(value) &&
MessageBoxes.ShowWarningQuestionOKCancel("The selected work directory does not exist.") ==
DialogResult.Cancel)
return;
//
_abaqusSettings.WorkDirectoryForSettingsOnly = value;
}
}
}
//
[Category("Abaqus")]
[OrderedDisplayName(1, 10, "Use .pmx folder as work directory")]
[Description("Select yes to use .pmx file folder as a work directory.")]
[Id(2, 1)]
public bool UsePmxFolderAsWorkDirectory
{
get { return _abaqusSettings.UsePmxFolderAsWorkDirectory; }
set { _abaqusSettings.UsePmxFolderAsWorkDirectory = value; }
}
//
[Category("Abaqus")]
[OrderedDisplayName(2, 10, "Executable")]
[Description("Select the Abaqus executable file.")]
[Editor(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(UITypeEditor))]
[Id(3, 1)]
public string AbaqusExe
{
get { return _abaqusSettings.AbaqusExe; }
set { _abaqusSettings.AbaqusExe = value; }
}
//
[Category("Parallelization")]
[OrderedDisplayName(0, 10, "Number of processors")]
[Description("Set the number of processors for the executable to use.")]
[Id(1, 2)]
public int NumCPUs
{
get { return _abaqusSettings.NumCPUs; }
set { _abaqusSettings.NumCPUs = value; }
}
// Constructors
public ViewAbaqusSettings(AbaqusSettings abaqusSettings)
{
_abaqusSettings = abaqusSettings;
_dctd = ProviderInstaller.Install(this);
// Now lets display Yes/No instead of True/False
_dctd.RenameBooleanPropertyToYesNo(nameof(UsePmxFolderAsWorkDirectory));
}
// Methods
public ISettings GetBase()
{
return _abaqusSettings;
}
public void Reset()
{
_abaqusSettings.Reset();
}
}
}