/// <summary> /// Метод для отрисовки эскиза внешнего обода в КОМПАС-3D /// </summary> /// <param name="rimsDoc">эскиз</param> /// <param name="BearingWidth">Ширина подшипника</param> /// <param name="InnerRimDiam">Диаметр внутреннего обода</param> /// <param name="OuterRimDiam">Диаметр внешнего обода</param> /// <param name="RimsThickness">Толщина подшипника</param> /// <param name="BallDiam">Диаметр шарика</param> private static void DrawOuterRim(ksDocument2D rimsDoc, double BearingWidth, double InnerRimDiam, double OuterRimDiam, double RimsThickness, double BallDiam, RollingElementForm rollingElementForm, double BearingAxis, double GutterDepth, double GutterWidth) { rimsDoc.ksLineSeg(-BearingWidth / 2, OuterRimDiam / 2, BearingWidth / 2, OuterRimDiam / 2, 1); rimsDoc.ksLineSeg(-BearingWidth / 2, OuterRimDiam / 2, -BearingWidth / 2, OuterRimDiam / 2 - RimsThickness, 1); rimsDoc.ksLineSeg(BearingWidth / 2, OuterRimDiam / 2, BearingWidth / 2, OuterRimDiam / 2 - RimsThickness, 1); if (rollingElementForm is RollingElementForm.Ball) { rimsDoc.ksLineSeg(-BearingWidth / 2, OuterRimDiam / 2 - RimsThickness, -GutterWidth, OuterRimDiam / 2 - RimsThickness, 1); rimsDoc.ksLineSeg(BearingWidth / 2, OuterRimDiam / 2 - RimsThickness, GutterWidth, OuterRimDiam / 2 - RimsThickness, 1); rimsDoc.ksArcBy3Points(-GutterWidth, OuterRimDiam / 2 - RimsThickness, 0, OuterRimDiam / 2 - RimsThickness + GutterDepth, GutterWidth, OuterRimDiam / 2 - RimsThickness, 1); } else { rimsDoc.ksLineSeg(-BearingWidth / 2, OuterRimDiam / 2 - RimsThickness, -GutterWidth, OuterRimDiam / 2 - RimsThickness, 1); rimsDoc.ksLineSeg(BearingWidth / 2, OuterRimDiam / 2 - RimsThickness, GutterWidth, OuterRimDiam / 2 - RimsThickness, 1); rimsDoc.ksLineSeg(-GutterWidth, OuterRimDiam / 2 - RimsThickness, -GutterWidth, OuterRimDiam / 2 - RimsThickness + GutterDepth, 1); rimsDoc.ksLineSeg(GutterWidth, OuterRimDiam / 2 - RimsThickness, GutterWidth, OuterRimDiam / 2 - RimsThickness + GutterDepth, 1); rimsDoc.ksLineSeg(-GutterWidth, OuterRimDiam / 2 - RimsThickness + GutterDepth, GutterWidth, OuterRimDiam / 2 - RimsThickness + GutterDepth, 1); } }
public void TestBearingNegativeParams(RollingElementForm rollingElementForm, double bearingWidth, double innerRimDiam, double outerRimDiam, double rimsThickness, double rollingElementDiam) { NUnit.Framework.Assert.That(() => { new BearingParametrs(rollingElementForm, bearingWidth, innerRimDiam, outerRimDiam, rimsThickness, rollingElementDiam); }, Throws.TypeOf(typeof(ArgumentException))); }
/// <summary> /// Метод для отрисовки эскиза элемена качения в КОМПАС-3D /// </summary> /// <param name="ballDoc">эскиз</param> /// <param name="BearingWidth">Ширина подшипника</param> /// <param name="InnerRimDiam">Диаметр внутреннего обода</param> /// <param name="OuterRimDiam">Диаметр внешнего обода</param> /// <param name="RimsThickness">Толщина подшипника</param> /// <param name="BallDiam">Диаметр шарика</param> private static void DrawBalls(ksDocument2D ballDoc, double BearingWidth, double InnerRimDiam, double OuterRimDiam, double RimsThickness, double BallDiam, RollingElementForm rollingElementForm, double BearingAxis, double GutterDepth, double GutterWidth) { if (rollingElementForm is RollingElementForm.Ball) { ballDoc.ksArcByAngle(0, BearingAxis, BallDiam / 2, -90, 90, 1, 1); ballDoc.ksLineSeg(0, 0, 0, 1, 3); } else { ballDoc.ksLineSeg(-GutterWidth, BearingAxis, -GutterWidth, BearingAxis - BallDiam / 2, 1); ballDoc.ksLineSeg(-GutterWidth, BearingAxis - BallDiam / 2, GutterWidth, BearingAxis - BallDiam / 2, 1); ballDoc.ksLineSeg(GutterWidth, BearingAxis - BallDiam / 2, GutterWidth, BearingAxis, 1); ballDoc.ksLineSeg(-GutterWidth, BearingAxis, GutterWidth, BearingAxis, 3); } }
/// <summary> /// Построение детали /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BuildBearingButton(object sender, EventArgs e) { ValidateTextFields(); if (_errorList.Count != 0) { return; } _errorList.Clear(); RollingElementForm rollingElementForm = RollingElementForm.Ball; if (RollingElementBall.Checked) { rollingElementForm = RollingElementForm.Ball; } if (RollingElementCylinder.Checked) { rollingElementForm = RollingElementForm.Cylinder; } double bearingWidth = Convert.ToDouble(bearingWidthBox.Text); double innerRimDiam = Convert.ToDouble(innerRimDiamBox.Text); double outerRimDiam = Convert.ToDouble(outerRimDiamBox.Text); double rimsThickness = Convert.ToDouble(rimsThicknessBox.Text); double ballDiam = Convert.ToDouble(rollingElementDiam.Text); BearingParametrs bearing = null; try { bearing = new BearingParametrs(rollingElementForm, bearingWidth, innerRimDiam, outerRimDiam, rimsThickness, ballDiam); } catch (ArgumentException exception) { _errorList.Add(exception.Message); ShowErrors(); return; } _kompas3D.BuildBearing(bearing); }
/// <summary> /// Метод для отрисовки эскиза внутреннего обода в КОМПАС-3D /// </summary> /// <param name="rimsDoc">эскиз</param> /// <param name="BearingWidth">Ширина подшипника</param> /// <param name="InnerRimDiam">Диаметр внутреннего обода</param> /// <param name="OuterRimDiam">Диаметр внешнего обода</param> /// <param name="RimsThickness">Толщина подшипника</param> /// <param name="BallDiam">Диаметр шарика</param> private static void DrawInnerRim(ksDocument2D rimsDoc, double BearingWidth, double InnerRimDiam, double OuterRimDiam, double RimsThickness, double RollingElementDiam, RollingElementForm rollingElementForm, double BearingAxis, double GutterDepth, double GutterWidth) { //ось вращения rimsDoc.ksLineSeg(-BearingWidth / 2, 0, BearingWidth / 2, 0, 3); //основание rimsDoc.ksLineSeg(-BearingWidth / 2, InnerRimDiam / 2, BearingWidth / 2, InnerRimDiam / 2, 1); //левая грань rimsDoc.ksLineSeg(-BearingWidth / 2, InnerRimDiam / 2, -BearingWidth / 2, RimsThickness + InnerRimDiam / 2, 1); //правая грань rimsDoc.ksLineSeg(BearingWidth / 2, InnerRimDiam / 2, BearingWidth / 2, RimsThickness + InnerRimDiam / 2, 1); if (rollingElementForm is RollingElementForm.Ball) { //левая верхняя rimsDoc.ksLineSeg(-BearingWidth / 2, RimsThickness + InnerRimDiam / 2, -GutterWidth, RimsThickness + InnerRimDiam / 2, 1); //правая верхняя rimsDoc.ksLineSeg(BearingWidth / 2, RimsThickness + InnerRimDiam / 2, GutterWidth, RimsThickness + InnerRimDiam / 2, 1); // желоб rimsDoc.ksArcBy3Points(-GutterWidth, RimsThickness + InnerRimDiam / 2, 0, RimsThickness + InnerRimDiam / 2 - GutterDepth, GutterWidth, RimsThickness + InnerRimDiam / 2, 1); } else { rimsDoc.ksLineSeg(-BearingWidth / 2, RimsThickness + InnerRimDiam / 2, -GutterWidth, RimsThickness + InnerRimDiam / 2, 1); rimsDoc.ksLineSeg(BearingWidth / 2, RimsThickness + InnerRimDiam / 2, GutterWidth, RimsThickness + InnerRimDiam / 2, 1); rimsDoc.ksLineSeg(-GutterWidth, RimsThickness + InnerRimDiam / 2, -GutterWidth, RimsThickness + InnerRimDiam / 2 - GutterDepth, 1); rimsDoc.ksLineSeg(GutterWidth, RimsThickness + InnerRimDiam / 2, GutterWidth, RimsThickness + InnerRimDiam / 2 - GutterDepth, 1); rimsDoc.ksLineSeg(-GutterWidth, RimsThickness + InnerRimDiam / 2 - GutterDepth, GutterWidth, RimsThickness + InnerRimDiam / 2 - GutterDepth, 1); } }
public void TestBearingParamsRightProp(RollingElementForm rollingElementForm, double bearingWidth, double innerRimDiam, double outerRimDiam, double rimsThickness, double rollingElementDiam) { var unused = new BearingParametrs(rollingElementForm, bearingWidth, innerRimDiam, outerRimDiam, rimsThickness, rollingElementDiam); }