예제 #1
0
        /// <summary>
        /// Создание гофрированного цоколя
        /// </summary>
        public static void CreatePlinth(double plinthLength, SldWorks swApp, ModelDoc2 swModel, List <string> detailNames, string textEtching, string pathName)
        {
            var angleExtrusion = 2 * Math.PI;
            var polX           = 0.005;
            var textWidth      = 40;
            var textHeight     = 100;

            string modelName = pathName + "Гофра.sldprt";

            swApp.NewPart();
            swModel = swApp.IActiveDoc2;

            // Создание изолятора
            swModel.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreateCircleByRadius(0, 0, 0, polX);
            swModel.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, false, 0, null, 0);
            swModel.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, plinthLength, 0, false, false, false, false, _draftAngle, _draftAngle, false, false, false, false, true, true, true, 0, 0, false);
            swModel.ClearSelection2(true);

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreateCenterLine(0, 0, 0, 0, -plinthLength, 0);
            swModel.SketchManager.InsertSketch(true);

            // Вырез под гофру
            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreatePolygon(polX + 0.002, 0, 0, polX - 0.001, 0, 0, 3, false);
            swModel.Extension.SelectByID2("Line1@Эскиз2", "EXTSKETCHSEGMENT", 0, 0, 0, true, 16, null, 0);
            swModel.FeatureManager.FeatureRevolve2(true, true, false, true, false, false, 0, 0, angleExtrusion, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true);
            swModel.ClearSelection2(true);

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreatePolygon(polX + 0.002, -0.002, 0, polX - 0.001, -_distanceExtrusion, 0, 3, false);
            swModel.Extension.SelectByID2("Line1@Эскиз2", "EXTSKETCHSEGMENT", 0, 0, 0, true, 16, null, 0);
            swModel.FeatureManager.FeatureRevolve2(true, true, false, true, false, false, 0, 0, angleExtrusion, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true);
            swModel.ClearSelection2(true);

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreatePolygon(polX + 0.002, -0.004, 0, polX - 0.001, -0.004, 0, 3, false);
            swModel.Extension.SelectByID2("Line1@Эскиз2", "EXTSKETCHSEGMENT", 0, 0, 0, true, 16, null, 0);
            swModel.FeatureManager.FeatureRevolve2(true, true, false, true, false, false, 0, 0, angleExtrusion, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true);
            swModel.ClearSelection2(true);

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreatePolygon(polX + 0.002, -0.006, 0, polX - 0.001, -0.006, 0, 3, false);
            swModel.Extension.SelectByID2("Line1@Эскиз2", "EXTSKETCHSEGMENT", 0, 0, 0, true, 16, null, 0);
            swModel.FeatureManager.FeatureRevolve2(true, true, false, true, false, false, 0, 0, angleExtrusion, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true);
            swModel.ClearSelection2(true);

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreatePolygon(polX + 0.002, -0.008, 0, polX - 0.001, -0.008, 0, 3, false);
            swModel.Extension.SelectByID2("Line1@Эскиз2", "EXTSKETCHSEGMENT", 0, 0, 0, true, 16, null, 0);
            swModel.FeatureManager.FeatureRevolve2(true, true, false, true, false, false, 0, 0, angleExtrusion, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true);
            swModel.ClearSelection2(true);

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.SketchManager.CreatePolygon(polX + 0.002, -0.01, 0, polX - 0.001, -0.01, 0, 3, false);
            swModel.Extension.SelectByID2("Line1@Эскиз2", "EXTSKETCHSEGMENT", 0, 0, 0, true, 16, null, 0);
            swModel.FeatureManager.FeatureRevolve2(true, true, false, true, false, false, 0, 0, angleExtrusion, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true);
            swModel.ClearSelection2(true);

            // Создание текста

            swModel.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.FeatureManager.InsertRefPlane(_firstConstraint, 0.006, 0, 0, 0, 0);

            swModel.Extension.SelectByID2("Плоскость4", "PLANE", 0, 0, 0, false, 0, null, 0);
            swModel.InsertSketchText(-0.003, -plinthLength + 0.002, 0, textEtching, 0, 0, 0, textWidth, textHeight);

            swModel.SketchManager.InsertSketch(true);
            swModel.Extension.SelectByID2("Эскиз9", "SKETCH", 0, 0, 0, false, 4, null, 0);
            swModel.Extension.SelectByID2("", "FACE", 0.005, 0.0007, 0.02, true, 1, null, 0);
            swModel.FeatureManager.InsertWrapFeature(1, 0.001, false);
            //swModel.FeatureManager.FeatureCut3(true, false, true, 0, 0, 0.05, 0.05, false, false, false, false, 0.017, 0.017, false, false, false, false, false, true, true, true, true, false, 0, 0, false);

            swModel.SaveAs(modelName);
            detailNames.Add(modelName);
        }