namespace Kompas.Mcp.Core.Conversion; /// Вариант стандарта STEP для экспорта. public enum StepFormat { /// Формат по умолчанию (ksConverterToSTEP). Auto, Ap203, Ap214, Ap242, } /// /// Маппинг формата STEP в целочисленные коды конвертера КОМПАС (ksKOMPASConverterEnum). /// Эти коды передаются в IApplication.get_Converter и IAdditionConvertParameters.Format. /// public static class StepFormats { /// Код импорта STEP — ksConverterFromSTEP. public const int ImportConverterCode = -3; /// Код экспорта STEP для выбранного стандарта (ksConverterToSTEP[_APxxx]). public static int ExportConverterCode(StepFormat format) => format switch { StepFormat.Auto => 3, StepFormat.Ap203 => 203, StepFormat.Ap214 => 214, StepFormat.Ap242 => 242, _ => throw new ArgumentOutOfRangeException(nameof(format), format, "Неизвестный формат STEP."), }; /// Разобрать строку формата ("auto"/"step", "ap203", "ap214", "ap242"). public static StepFormat Parse(string? value) => value?.Trim().ToLowerInvariant() switch { null or "" or "auto" or "step" => StepFormat.Auto, "ap203" or "203" => StepFormat.Ap203, "ap214" or "214" => StepFormat.Ap214, "ap242" or "242" => StepFormat.Ap242, _ => throw new ArgumentException( $"Неизвестный формат STEP '{value}'. Допустимо: auto, ap203, ap214, ap242.", nameof(value)), }; }