/// <summary> /// Метод создает фаску в 45' /// </summary> public bool Create(double dist, Point3d coor) { try { ksEntityCollection edge = (ksEntityCollection)_app.Part.EntityCollection((short)Obj3dType.o3d_edge); if ((edge != null) && (edge.SelectByPoint(coor.X, coor.Y, coor.Z)) && (edge.GetCount() != 0)) { ksEntity chamfer = (ksEntity)_app.Part.NewEntity((short)Obj3dType.o3d_chamfer); ksChamferDefinition chDef = (ksChamferDefinition)chamfer.GetDefinition(); if (chDef != null) { chDef.tangent = true; chDef.SetChamferParam(false, dist, dist); ksEntityCollection chamferCollection = (ksEntityCollection)chDef.array(); chamferCollection.Clear(); chamferCollection.Add(edge.GetByIndex(0)); chamfer.Create(); } } return(true); } catch { return(false); } }
/// <summary> /// Метод копирует последнюю операцию /// по концентрической окружности относительно оси OY /// </summary> /// <param name="count">Количество копий</param> public bool CreateOperationCircPartArray(int count) { try { ksEntityCollection elemCol = (ksEntityCollection)_app.Part.EntityCollection((short)Obj3dType.o3d_cutExtrusion); if ((elemCol != null) && (elemCol.GetCount() != 0)) { ksEntity axis = (ksEntity)_app.Part.NewEntity((short)Obj3dType.o3d_axisOY); ksEntity circCopy = (ksEntity)_app.Part.NewEntity((short)Obj3dType.o3d_circularCopy); ksCircularCopyDefinition CopyDef = (ksCircularCopyDefinition)circCopy.GetDefinition(); if (CopyDef != null) { CopyDef.count1 = 1; CopyDef.count2 = count; CopyDef.step2 = 360; CopyDef.factor2 = true; CopyDef.SetAxis(axis); ksEntityCollection copiedElemCol = (ksEntityCollection)CopyDef.GetOperationArray(); copiedElemCol.Clear(); int i = elemCol.GetCount(); copiedElemCol.Add(elemCol.GetByIndex(i - 1)); circCopy.Create(); } } return(true); } catch { return(false); } }
public void Fillet(ksPart iPart, int index, double radius, TeaPotParams teaPotParams) { // Получение интерфейса объекта скругление ksEntity entityFillet = (ksEntity)iPart.NewEntity((int)Obj3dType.o3d_fillet); // Получаем интерфейс параметров объекта скругление ksFilletDefinition filletDefinition = (ksFilletDefinition)entityFillet.GetDefinition(); // Радиус скругления filletDefinition.radius = radius; // Не продолжать по касательным ребрам filletDefinition.tangent = true; // Получаем массив граней объекта ksEntityCollection entityCollectionPart = (ksEntityCollection)iPart.EntityCollection((int)Obj3dType.o3d_face); // Получаем массив скругляемых граней ksEntityCollection entityCollectionFillet = (ksEntityCollection)filletDefinition.array(); entityCollectionFillet.Clear(); //ksEntity ENT = entityCollectionFillet.GetByIndex(0); // Заполняем массив скругляемых объектов entityCollectionFillet.Add(entityCollectionPart.GetByIndex(index)); // Создаем скругление int X = Convert.ToInt32(teaPotParams.TeaPotHandleColor); entityFillet.SetAdvancedColor(X, 2, 2, 2, 2, 1, 2); entityFillet.Create(); }
public override ksEntity Execute() { ksEntity cut = Part.NewEntity((short)Obj3dType.o3d_cutEvolution); ksCutEvolutionDefinition definition = cut.GetDefinition(); definition.cut = true; definition.sketchShiftType = 1; definition.SetSketch(_drawSectionCmd.Execute()); ksEntityCollection entityCollection = definition.PathPartArray(); entityCollection.Clear(); entityCollection.Add(_drawTrajectoryCmd.Execute()); cut.Create(); return(cut); }
/// <summary> /// Выдавливание по траектории /// </summary> /// <param name="entityEvolution">вырез кинматики</param> /// <param name="skechOne">Эскиз сечения</param> /// <param name="skechTwo">Эскиз траектории</param> /// <param name="ksEntityCollection"></param> private void KinematicExstrusion(ksEntity skechOne, ksEntity skechTwo) { ksEntity entityEvolution = (ksEntity)_ksPart.NewEntity((short)Obj3dType.o3d_baseEvolution); ksBaseEvolutionDefinition baseEvolutionDefinition = (ksBaseEvolutionDefinition)entityEvolution.GetDefinition(); baseEvolutionDefinition.sketchShiftType = 1; baseEvolutionDefinition.SetSketch(skechOne); ksEntityCollection ksEntityCollection = (ksEntityCollection)baseEvolutionDefinition.PathPartArray(); ksEntityCollection.Clear(); ksEntityCollection.Add(skechTwo); entityEvolution.Create(); }
public override ksEntity Execute() { _extrudeHandleCmd.Execute(); ksEntity fillet = Part.NewEntity((short)Obj3dType.o3d_fillet); ksFilletDefinition filletDefinition = fillet.GetDefinition(); filletDefinition.radius = 1; filletDefinition.tangent = false; ksEntityCollection facesToFillet = filletDefinition.array(); facesToFillet.Clear(); ksEntityCollection partFaces = Part.EntityCollection((short)Obj3dType.o3d_face); for (int i = 0; i < partFaces.GetCount(); i++) { facesToFillet.Add(partFaces.GetByIndex(i)); } fillet.Create(); return(fillet); }
/// <summary> /// Скругление /// </summary> private void Filled(ksEntity ksEntity) { const int grayColor = 16777215; ksEntity ksEntityFilled = (ksEntity)_ksPart.NewEntity( (short)Obj3dType.o3d_fillet); ksFilletDefinition ksFilletDefinition = (ksFilletDefinition)ksEntityFilled.GetDefinition(); ksFilletDefinition.radius = 2; ksFilletDefinition.tangent = false; ksEntityCollection ksEntityCollectionPart = (ksEntityCollection)_ksPart.EntityCollection( (short)Obj3dType.o3d_edge); ksEntityCollection ksEntityCollectionFillet = (ksEntityCollection)ksFilletDefinition.array(); ksEntityCollectionFillet.Clear(); ksEntityCollectionFillet.Add(ksEntityCollectionPart.GetByIndex(1)); ksEntityCollectionFillet.Add(ksEntityCollectionPart.GetByIndex(0)); ksEntityFilled.useColor = 0; ksEntityFilled.SetAdvancedColor(grayColor, 0.9, 0.8, 0.7, 0.6, 1, 0.4); ksEntityFilled.Create(); }
/// <summary> /// CСоздание резьбы на ножке /// </summary> /// <param name="diameterLeg">Диаметр ножки</param> /// <param name="lengthLeg">Длина ножки</param> /// <param name="diameterBracing">Диаметр крепления</param> /// <param name="lengthHead">Длина головки</param> private void BuildThreadLeg(double diameterLeg, double lengthLeg, double diameterBracing, double lengthHead) { #region Константы для резьбы const int part = -1; const int planeOffset = 14; const int sketch = 5; const int planeXOY = 1; const int cylindricspiral = 56; const int cutEvolution = 47; const int planeXOZ = 2; #endregion //Смещенеие плоскости _part = _doc3D.GetPart(part); ksEntity entityOffset = _part.NewEntity(planeOffset); ksPlaneOffsetDefinition planeDefinition = entityOffset.GetDefinition(); planeDefinition.offset = lengthHead; planeDefinition.direction = true; ksEntity EntityPlaneOffset = _part.GetDefaultEntity(planeXOY); planeDefinition.SetPlane(EntityPlaneOffset); entityOffset.Create(); //Построение спирали ksEntity entityCylinderic = _part.NewEntity(cylindricspiral); ksCylindricSpiralDefinition cylindricSpiral = entityCylinderic.GetDefinition(); cylindricSpiral.SetPlane(entityOffset); cylindricSpiral.buildDir = true; cylindricSpiral.buildMode = 1; cylindricSpiral.height = lengthLeg; cylindricSpiral.diam = diameterLeg; cylindricSpiral.firstAngle = 0; cylindricSpiral.turnDir = true; cylindricSpiral.step = 0.5; entityCylinderic.Create(); //Эскиз треуголника ksEntity Entity2 = _part.NewEntity(sketch); ksSketchDefinition sketchDefinition = Entity2.GetDefinition(); ksEntity Entity = _part.GetDefaultEntity(planeXOZ); sketchDefinition.SetPlane(Entity); Entity2.Create(); Document2D document2D = sketchDefinition.BeginEdit(); var StartX = diameterLeg / 2 - (diameterLeg / 100); // var StartY = -0.5 / 2 + 0.01; document2D.ksLineSeg(StartX, -lengthHead, diameterLeg - StartX, -lengthHead + StartY, 1); document2D.ksLineSeg(StartX, -lengthHead, diameterLeg - StartX, -lengthHead - StartY, 1); document2D.ksLineSeg(diameterLeg - StartX, -lengthHead + StartY, diameterLeg - StartX, -lengthHead - StartY, 1); sketchDefinition.EndEdit(); //Кинематическое вырезание ksEntity entityCutEvolution = _part.NewEntity(cutEvolution); ksCutEvolutionDefinition cutEvolutionDefinition = entityCutEvolution.GetDefinition(); cutEvolutionDefinition.cut = true; cutEvolutionDefinition.sketchShiftType = 1; cutEvolutionDefinition.SetSketch(sketchDefinition); ksEntityCollection EntityCollection = (cutEvolutionDefinition.PathPartArray()); EntityCollection.Clear(); EntityCollection.Add(entityCylinderic); entityCutEvolution.Create(); }