C# SolidWorks 二次开发 API—让用户选择对象后执行操作
在做一些交互操作的时候,有时候需要用户做选择。比如对象很多的时候,让用户指定选择某个特征,或者基准面等等。
我用一个简单的例子说明一下如何处理。
这个是例用了solidworks提供的事件来操作,我们需要进行事件的绑定。
查看我的API中文宝典,发现有个官方例子:
这例子也比较简单,我就不多说了。
代码部分:
//用于事件对象共享。
private PartDoc partDoc = null;
private void btnUserSelectFirst_Click(object sender, EventArgs e)
{
SldWorks swApp = Utility.ConnectToSolidWorks();
if (swApp != null)
{
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
partDoc = swModel as PartDoc;
//为当前文件增加选择对象之后 通知事件
partDoc.UserSelectionPostNotify += PartDoc_UserSelectionPostNotify;
}
}
/// <summary>
/// 选择之后 处理事件内容
/// </summary>
/// <returns></returns>
private int PartDoc_UserSelectionPostNotify()
{
SldWorks swApp = Utility.ConnectToSolidWorks();
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
var swSelMgr = (SelectionMgr)swModel.SelectionManager;
var selectType = swSelMgr.GetSelectedObjectType3(1, -1);
SendMessageToUser("You Select :" + Enum.GetName(typeof(swSelectType_e), selectType));
return 1;
}
/// <summary>
/// 做完通知之后 ,去掉事件绑定
/// </summary>
/// <param name="s"></param>
private void SendMessageToUser(string s)
{
SldWorks swApp = Utility.ConnectToSolidWorks();
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
swApp.SendMsgToUser(s);
partDoc.UserSelectionPostNotify -= PartDoc_UserSelectionPostNotify;
}
逻辑如下:当点击界面上的按钮之后,会给当前零件增加一个事件绑定。用于当用户选择对象之后,进行某些操作。
执行完操作之后,删除绑定(这里按实际需要处理)。
我这个例子结果如下:
posted @
2022-12-23 11:51
painezeng 阅读(
0) 评论(
0)
编辑
收藏
举报
来源