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> /// 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(); }