public void Test_CalculationMaxLenghtGrip() { var modelParameters = new ModelParameters(); var Handle = 1100; var expected = Handle; modelParameters.Parameter(ParametersName.HandleLength).Value = Handle; modelParameters.CalculationMaxLenghtGrip(); var actual = modelParameters.Parameter(ParametersName.GripLength).MaxValue; Assert.AreEqual(expected, actual, "Метод CalculationMaxLenghtGrip работает некорректно"); }
public void Test_Parameter() { var modelParameters = new ModelParameters(); var result = true; if (modelParameters.Parameter(ParametersName.HandleLength).MinValue != 890 || modelParameters.Parameter(ParametersName.HandleLength).MaxValue != 1100 || modelParameters.Parameter(ParametersName.HandleLength).Value != 890) { result = false; } Assert.IsTrue(result, "Метод Parameter работает некорректно"); }
/// <summary> /// Присваивает параметру значение /// из соответствующего элемента TextBox /// при изменении пользователем значения Text /// для TextBox /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TextBoxChanged(object sender, EventArgs e) { //Преобразуем из object в TextBox var textBox = (TextBox)sender; //Блок ожидания ошибки try { //Получаем текст из элемента TextBox var value = double.Parse(textBox.Text); //Определяем имя параметра соответствующего //данному TextBox var parameterName = _formElements[textBox]; //Присваиваем значение найденному параметру _modelParameters.Parameter(parameterName).Value = value; //Окрашиваем поле в зеленый цвет textBox.BackColor = Color.LightGreen; //При изменении длины места хвата if (parameterName == ParametersName.GripLength) { //Пересчитать длину гладкой части _modelParameters.CalculationLenghtConnection(); //Отобразить значение в TextBox HandleCLTextBox.Text = _modelParameters.Parameter(ParametersName.ConnectionLength).Value.ToString(); } //При изменении длины рукояти if (parameterName == ParametersName.HandleLength) { //Пересчитать максимальную длину места хвата _modelParameters.CalculationMaxLenghtGrip(); //Пересчитать минимальную дину места хвата _modelParameters.CalculationMinValueLenghtGrip(); //Расчитать текущую дину рукояти _modelParameters.CalculationLenghtGrip(); //Отобразить значение в TextBox HandleHLTextBox.Text = _modelParameters.Parameter(ParametersName.GripLength).Value.ToString(); //Отобразить новый интервал DisplayInterval(ParametersName.GripLength, IntervalHandleHLLabel); } //При изменении длины гладкой части if (parameterName == ParametersName.ConnectionLength) { //Пересчитать длину гладкой части _modelParameters.CalculationLenghtGrip(); //Отобразить поулченное значение в TextBox HandleHLTextBox.Text = _modelParameters.Parameter(ParametersName.GripLength).Value.ToString(); } } //Выполняется в случае выявления ошибки в try catch { //Окрашиваем полу в красный цвет textBox.BackColor = Color.Salmon; } }
/// <summary> /// Метод возвращает форму /// к начальным параметра /// при нажатии на кнопку "Сбросить" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ClearButton_Click(object sender, EventArgs e) { //Создание нового списка параметров _modelParameters = new ModelParameters(); //Перебор всех TextBox формы foreach (var textBox in _formElements.Keys) { //Определение имени параметра по TextBox var parameterName = _formElements[textBox]; //Окрашивание TextBox в зеленый цвет textBox.BackColor = Color.LightGreen; //Присваиваем текущее значение параметра в соответствующий TextBox textBox.Text = string.Concat(_modelParameters.Parameter(parameterName).Value); //Отображение интервала значений места хвата DisplayInterval(ParametersName.GripLength, IntervalHandleHLLabel); //Отображение интервала значений гладкого места DisplayInterval(ParametersName.ConnectionLength, IntervalHandleCLLabel); //Отображение интервала значений длины рукояти DisplayInterval(ParametersName.HandleLength, IntervalHandleLLabel); } }
public void Test_ModelParameters() { var modelParameters = new ModelParameters(); var result = true; var values = new List <(double min, double max, ParametersName name)> { (890, 1100, ParametersName.HandleLength), //Длина рукоятки (680, 890, ParametersName.GripLength), //Длина места хвата (0, 210, ParametersName.ConnectionLength), //Длина гладкой части (5, 10, ParametersName.HandleRadius), //Радиус рукоятки (100, 320, ParametersName.HolderLength), //Длина держателя блинов (35, 50, ParametersName.HolderRadius), //Радиус держателя блинов (55, 75, ParametersName.LimiterRadius) //Радиус ограничителя }; foreach (var value in values) { if (value.name == ParametersName.GripLength) { if (modelParameters.Parameter(value.name).MaxValue != value.max || modelParameters.Parameter(value.name).MinValue != value.min || modelParameters.Parameter(value.name).Value != value.max) { result = false; } } else { if (modelParameters.Parameter(value.name).MaxValue != value.max || modelParameters.Parameter(value.name).MinValue != value.min || modelParameters.Parameter(value.name).Value != value.min) { result = false; } } } Assert.IsTrue(result, "Конструктор ModelParameters не создает корректный экземпляр класса"); }
/// <summary> /// Построение гладкой части /// </summary> private void CreateConnector(ksPart iPatr) { if (_modelelParameters.Parameter(ParametersName.ConnectionLength).Value != 0) { //Получаем интерфейс базовой плоскости ХОY ksEntity planeZOY = (ksEntity)iPatr.GetDefaultEntity((short)Obj3dType.o3d_planeXOZ); //Создаем новый эскиз ksEntity iSketch = (ksEntity)iPatr.NewEntity((short)Obj3dType.o3d_sketch); //Получаем интерфейс свойств эскиза ksSketchDefinition iDefinitionSketch = (ksSketchDefinition)iSketch.GetDefinition(); //Устанавливаем плоскость эскиза iDefinitionSketch.SetPlane(planeZOY); //Создание эскиза iSketch.Create(); //Создание нового 2Д документа ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit(); //Получение радиуса рукояти var rad = _modelelParameters.Parameter(ParametersName.HandleRadius).Value; //Построение круга iDocument2D.ksCircle(0, 0, rad + 0.1, 1); //Создание эскиза iDefinitionSketch.EndEdit(); //Получение глубины выдавливания var depth = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value / 2; //Выдавливание в обе стороны ExctrusionSketch(iPatr, iSketch, depth, false); ExctrusionSketch(iPatr, iSketch, depth, true); } }