/// <summary> /// Окрашивание места для хвата в чёрный /// </summary> /// <param name="iPart">Интерфейс детали</param> /// <param name="side">Направление</param> private void CreateBlackColor(ksPart iPart, bool side) { //Получение радиуса ручки var X = _modelelParameters.Parameter(ParametersName.HandleRadius).Value; //Получение длины гладкой части var Y = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value + 5; var Z = 0; //Получаем массив граней объекта ksEntityCollection entityCollectionPart = (ksEntityCollection)iPart.EntityCollection((short)Obj3dType.o3d_face); //Сортируем грани по заданным координатам if (side == true) { entityCollectionPart.SelectByPoint(X, Y, Z); } else { entityCollectionPart.SelectByPoint(X, -Y, Z); } //Получаем первый элмент массива ksEntity element = entityCollectionPart.First(); //Получаем интерфейс управления цветом детали ksColorParam colorParam = element.ColorParam(); //Назначаем цвет colorParam.color = 333333; //Применяем изменения element.Update(); }
/// <summary> /// Построение держателя для блинов /// </summary> /// <param name="iPart">Интерфейс детали</param> /// <param name="side">Направление</param> private void CreateHolder(ksPart iPart, bool side) { //Получаем массив граней объекта ksEntityCollection entityCollectionPart = (ksEntityCollection)iPart.EntityCollection((short)Obj3dType.o3d_face); //Получаем длину гладкой части var Y = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value / 2; //Получаем длину места хвата var Y1 = _modelelParameters.Parameter(ParametersName.GripLength).Value / 2; var Y2 = 15; //Сортируем грани по координатам if (side == false) { entityCollectionPart.SelectByPoint(0, -(Y + Y1 + Y2), 0); } if (side == true) { entityCollectionPart.SelectByPoint(0, (Y + Y1 + Y2), 0); } //Получаем первый элемент массива var planeDetal = entityCollectionPart.First(); //Создаем новый эскиз ksEntity iSketch = (ksEntity)iPart.NewEntity((short)Obj3dType.o3d_sketch); //Получаем интерфейс свойств эскиза ksSketchDefinition iDefinitionSketch = (ksSketchDefinition)iSketch.GetDefinition(); //Устанавливаем плоскость эскиза iDefinitionSketch.SetPlane(planeDetal); //Создание эскиза iSketch.Create(); //Создание нового 2Д документа ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit(); //Получение радиуса рукоятки var rad = _modelelParameters.Parameter(ParametersName.HolderRadius).Value; //Создание кругов iDocument2D.ksCircle(0, 0, 3, 1); iDocument2D.ksCircle(0, 0, rad, 1); //Создание эскиза iDefinitionSketch.EndEdit(); //Получение глубины выдавливания var depth = _modelelParameters.Parameter(ParametersName.HolderLength).Value; //Выполнение выдавливания ExctrusionSketch(iPart, iSketch, depth, true); }
/// <summary> /// Построение места для хвата /// </summary> private void CreateGrip(ksPart iPart, bool side) { //Объявление объекта плоскости ksEntity planeDetal = null; var direction = true; //Если длина гладкого места равна 0 if (_modelelParameters.Parameter(ParametersName.ConnectionLength).Value == 0) { //Получаем интерфейс базовой плоскости ХОY planeDetal = (ksEntity)iPart.GetDefaultEntity((short)Obj3dType.o3d_planeXOZ); if (side == true) { direction = false; } } else { //Получаем массив граней объекта ksEntityCollection entityCollectionPart = (ksEntityCollection)iPart.EntityCollection((short)Obj3dType.o3d_face); //Получаем длину гладкой части var Y = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value / 2; //Сортируем грани по принадлежности к координатам if (side == false) { entityCollectionPart.SelectByPoint(0, -Y, 0); } if (side == true) { entityCollectionPart.SelectByPoint(0, Y, 0); } //Получение первой грани массива planeDetal = entityCollectionPart.First(); } //Создаем новый эскиз ksEntity iSketch = (ksEntity)iPart.NewEntity((short)Obj3dType.o3d_sketch); //Получаем интерфейс свойств эскиза ksSketchDefinition iDefinitionSketch = (ksSketchDefinition)iSketch.GetDefinition(); //Устанавливаем плоскость эскиза iDefinitionSketch.SetPlane(planeDetal); //Создание эскиза iSketch.Create(); //Создание нового 2Д документа ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit(); //Получение радиуса ручки var rad = _modelelParameters.Parameter(ParametersName.HandleRadius).Value; //Создание круга iDocument2D.ksCircle(0, 0, rad, 1); //Создание эскиза iDefinitionSketch.EndEdit(); //Получение глубины выдавливания var depth = _modelelParameters.Parameter(ParametersName.GripLength).Value / 2; //Выполнение выдавливания ExctrusionSketch(iPart, iSketch, depth, direction); }