失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C# Solidworks二次开发 输入零件名选中零件

C# Solidworks二次开发 输入零件名选中零件

时间:2020-07-02 09:54:31

相关推荐

C# Solidworks二次开发 输入零件名选中零件

实现功能

基于.NET Framework控制台应用程序进行SolidWorks二次开发,实现输入零件名,在软件中选中零件。

注意:(1)进行SolidWorks控制台程序二次开发不能使用.NET Core,有一些方法会无法调用

(2)添加SolidWorks引用路径:安装盘:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist

总体思路

使用SelectByID2方法,传入零件名数组,进行零件选中;也可以在控制台中输入,使用ReadLine然后Split,形成零件名数组,此处选择直接传入。

注意:如果出现无法选中的情况,可能是输入的零件名有问题,本文中零件命名规则为:零件名-sw软件中的序号(在sw软件中为零件名<序号>),之前使用版本的SolidWorks做二次开发的命名规则为:零件名@装配体名,需要多尝试修改几次。

方法介绍

System.bool SelectByID2(

System.string Name,

System.string Type,

System.double X,

System.double Y,

System.double Z,

System.bool Append,

System.int Mark,

Callout Callout,

System.int SelectOption

)

Name:待选中对象名称

Type:待选中对象类型

X、Y、Z:X、Y、Z选择位置,可以填0

Append:

如果是True - ①对于未被选中的对象,实体追加到当前选择列表;②对于已经被选中的对象,实体被移出当前选择列表。

如果是False - ①对于未被选中的对象,清除当前选择,然后将实体放在列表中;②对于已经被选中的对象,当前选择列表保持不变。

Mark:要用作标记的值,此值由需要顺序选择的其他函数使用,可以填0

Callout:指向关联标注的指针,可以为空

SelectOption:swSelectOption_e中定义的选择选项

具体代码

public static void SelectComponent(){string[] selComp = { "part2-1", "part3-1" };int nSelCount;bool boolstatus = false;SldWorks swApp = (SldWorks)Marshal.GetActiveObject("Sldworks.Application");ModelDoc2 swModel = swApp.ActiveDoc;SelectionMgr swSelMgr = swModel.SelectionManager;SelectData selData = swSelMgr.CreateSelectData();if (swApp != null){swModel.ClearSelection();for (int i = 0; i < selComp.Length; i++){Debug.WriteLine(selComp[i].ToString());boolstatus = swModel.Extension.SelectByID2(selComp[i], "COMPONENT", 0, 0, 0, true, 0, null, 0);swSelMgr.AddSelectionListObject(selComp[i], selData);}nSelCount = swSelMgr.GetSelectedObjectCount();Debug.WriteLine(nSelCount);if (nSelCount != 0) { Console.WriteLine("Successfully selected!"); }}else{Console.WriteLine("SolidWorks is not connected!");}}

如果觉得《C# Solidworks二次开发 输入零件名选中零件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。