SolidWorks二次开发—装配体中打开零件时保持方向
不出意外,这是8月份最后一篇博文了。
其实代码在gitee上提交了很久了,一直没写博文。
前一段时间,在solidworks看到了这个小图标,这个功能是在装配体界面上查看零件预览,它和单独打开零件时的区别在于,在这里预览的时候零件的方向和选中时一样。
零件单独打开时是这样的状态,这个状态是零件保存时的方向,和资源管理器上预览图标显示一致。
今天要做的功能,就是做个小功能,让零件单独打开的时候保持和装配体右侧预览的方向一样。
(大家可以自己想一想,要怎么实现。)
——————————————————-分—————–分———————————————————–
这样有某些特定情况下,会更方便确定我要修改的位置。
先大概说一下原理,就是在装配环境下先获取选中零件的变换矩阵,然后打开零件之后,把当前视角的矩阵变换为装配体相对的方向。
上代码:
private void btnKeepView_Click(object sender, EventArgs e)
{
var swApp = PStandAlone.GetSolidWorks();
var swModel = (ModelDoc2)swApp.ActiveDoc;
var oldView = swApp.IActiveDoc2.IActiveView;
var oldAsmOrientation = oldView.Orientation3; //矩阵向量
var oldAsmsc = oldView.Scale2; //比例
var swModelAsm = (AssemblyDoc)swModel; //获取当前零件
var baseComp = swModel.ISelectionManager.GetSelectedObjectsComponent3(1, -1);
var PartTransform2 = baseComp.Transform2;//零件与装配体坐标完全重合 变换到安装位置的变换
baseComp.Select(false);
swModelAsm.OpenCompFile();
swModel = (ModelDoc2)swApp.ActiveDoc;
var newView = swApp.IActiveDoc2.IActiveView;
newView.Orientation3 = PartTransform2.IMultiply(oldAsmOrientation);
//newView.Scale2 = oldAsmsc;
swModel.ViewZoomtofit();
newView.GraphicsRedraw(null);
}
代码很简单,但是解释起来也有点麻烦,因为我的数学也不好,我就不解释了,怕误导大家。
在装配中选中零件后,执行命令后,零件被打开,并自动切换和装配一样的相对视角。
好,就写这么多了。将就看吧。
posted @
2022-08-29 15:24
painezeng 阅读(
0) 评论(
0)
编辑
收藏
举报
来源