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("选择完成!");
}
}
posted @
2019-11-25 13:53
painezeng 阅读(
101) 评论(
0)
编辑
收藏
举报