C# SolidWorks 二次开发 API ---草图轮廓环的选择

本篇文章讨论一下Solidworks草图中存在多个闭环轮廓时如何进行操作。
我们就以最简单的拉伸来介绍一下:
默认情况下:

  • 在只一有个闭环轮廓 或者 多个不相交的闭环轮廓 下,Solidworks会默认自动选择上所有轮廓进行拉伸。
    如下图: 在这里插入图片描述

  • 在多个轮廓有相交的情况下,Solidworks在点击完拉伸命令之后会进入轮廓选择状态,提示选择你需要的轮廓。
    如下图:
    在这里插入图片描述

我们先考虑一种简单的情况,就是怎么把所有的轮廓都选中,让程序进行拉伸特征。
当前零件草图如下:
在这里插入图片描述
下面的代码就是简单的遍历轮廓之后 ,选中所有轮廓,做一个拉伸特征。

 		/// <summary>
        /// 遍历 草图中的闭环轮廓
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void butGetSketchContour_Click(object sender, EventArgs e)
        {
    
    
            SldWorks swApp = PStandAlone.GetSolidWorks();

            ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;

            SelectionMgr swSelMgr = (SelectionMgr)swModel.SelectionManager;

            //选择草图
            swModel.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, false, 4, null, 0);

            //把选择转换为特征
            var swFeat = (Feature)swSelMgr.GetSelectedObject6(1, -1);

            swModel.ClearSelection();

            //把特征转换为草图
            var swSketch = (Sketch)swFeat.GetSpecificFeature2();

            //获取轮廓数量
            var sketchContoursCount = swSketch.GetSketchContourCount();
            var sketchContours = (object[])swSketch.GetSketchContours();

            //选择所有轮廓
            for (int i = 0; i < sketchContoursCount; i++)
            {
    
    
                var skContous = (SketchContour)sketchContours[i];

                skContous.Select(true, 0);

            }


            var swFeatureManager = (FeatureManager)swModel.FeatureManager;
            //做一个简单的拉伸
            var swFeature = (Feature)swFeatureManager.FeatureExtrusion2(true, false, false, 0, 0, 0.01, 0.01, false, false, false,
            false, 0, 0, false, false, false, false, true, true, true, 0, 0, false);



        }

那问题来了,如果我只想选中某一个轮廓,应该怎么玩?

  1. 两个方法,按上面的方案遍历一次。然后再通过 skContous.GetEdges 去找到对应的边,或者其它信息来判断 哪一个轮廓是想要的。
  2. 如果知道一个内部点坐标,也可以通过直接选择的方式来,具体可以参考api中的例子。
    Enable Contour Selection Example (C#)

关键地方在这里:
在这里插入图片描述

源代码已上传:

在这里插入图片描述
https://gitee.com/painezeng/CSharpAndSolidWorks

https://github.com/painezeng/CSharpAndSolidWorks

猜你喜欢

转载自blog.csdn.net/zengqh0314/article/details/109071850