C# SolidWorks 二次开发 API — 创建Pane页面(预览BOM)
今天讲一下怎么在Solidworks界面中显示出窗体界面。
今天的功能是在右边提前预览BOM 清单,功能比较简单。预览图如下:
由于不是插件的形势,所以效率不是太高,如果大家想速度快,请自己改成插件形式,其实更好的方法是做成插件,可以在打开装配体之后自动预览BOM, 时间关系,这里仅作为示例。
这里面涉及到的功能大概有,遍历装配体,遍历零件属性,组织层级结构等等。
完成后效果如下图:
下面只显示了关键的页面加载代码,实际的代码请参考源码:
https://gitee.com/painezeng/CSharpAndSolidWorks
private void btn_Pane_Click(object sender, EventArgs e)
{
//注意: 这里只是显示自己的窗体到solidworks中,目前还是走的exe的方式 .
//真正开发的时候应该在DLL中加入,这样速度会快很多. exe读bom需要40s dll 只需要3秒左右.
//获取当前程序所在路径
string Dllpath = Path.GetDirectoryName(typeof(MyPane).Assembly.CodeBase).Replace(@"file:\", string.Empty);
var imagePath = Path.Combine(Dllpath, "bomlist.bmp");
ISldWorks swApp = Utility.ConnectToSolidWorks();
string toolTip;
toolTip = "BOM List";
//创建页面
if (taskpaneView != null)
{
taskpaneView.DeleteView();
Marshal.FinalReleaseComObject(taskpaneView);
taskpaneView = null;
}
taskpaneView = swApp.CreateTaskpaneView2(imagePath, toolTip);
MyPane myPane = new MyPane(swApp);
myPane.Dock = DockStyle.Fill;
// myPane.Show();
//在页面中显示窗体(嵌入)
taskpaneView.DisplayWindowFromHandlex64(myPane.Handle.ToInt64());
}
如果大家有什么问题,可以留言给我。
posted @
2019-10-22 14:32
painezeng 阅读(
163) 评论(
0)
编辑
收藏
举报