C# SolidWorks 二次开发 API --- 利用射线选择相对面

最近的项目中需要用到一个新的功能,在用户选择了一个面的情况下,找到此面的对面那个面。用来在这两个面上创建一对特征。

如下图,需要选中红色箭头中的那个面:

通过测试,可以通过 SelectByRay这个函数来获取。

意思是在某个点,画一条射线,看哪个面与它相交。

需要注意的是,如果一个轴线上有很多个相交面它会选择最后一个.

private void btn_SelectByRay_Click(object sender, EventArgs e)
        {
            //连接到Solidworks
            ISldWorks swApp = Utility.ConnectToSolidWorks();

            ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;

            Face2 swSelFace = default(Face2);
            SelectionMgr swSelMgr = (SelectionMgr)swModel.SelectionManager;

            //获取选择数据
            SelectData swSelData = default(SelectData);

            swSelData = swSelMgr.CreateSelectData();

            swSelFace = (Face2)swSelMgr.GetSelectedObject6(1, 0);

            var t = (double[])swSelFace.Normal;

            //获取屏幕鼠标选择的那个点
            var mousePoint = (double[])swSelMgr.GetSelectionPoint2(1, 0);

            swModel.ClearSelection2(true);

            //创建Ray选择

            var boolstatus = swModel.Extension.SelectByRay(mousePoint[0], mousePoint[1], mousePoint[2], t[0], t[1], t[2], 0.1, 2, false, 0, 0);

            if (boolstatus == true)
            {
                MessageBox.Show("选择完成!");
            }
        }
发布了51 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

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