• 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);
    
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    代码很简单,但是解释起来也有点麻烦,因为我的数学也不好,我就不解释了,怕误导大家。

    在这里插入图片描述
    在装配中选中零件后,执行命令后,零件被打开,并自动切换和装配一样的相对视角。
    在这里插入图片描述
    好,就写这么多了。将就看吧。

  • 相关阅读:
    taro vue3 ts nut-ui 项目
    python中setattr()函数用法详解
    Springboot视图解析与模板引擎~
    java毕业设计电商项目mybatis+源码+调试部署+系统+数据库+lw
    mac安装git
    博弈论专题
    大模型引领未来:探索其在多个领域的深度应用与无限可能【第五章、广告营销与文化娱乐:AI与大模型创造无限可能】
    STL:vector容器详解
    【PS-6】视图操作
    数据结构与算法(07)之数组与字符串解法(双指针,快慢指针,哈希表,KMP算法等)
  • 原文地址:https://blog.csdn.net/zengqh0314/article/details/126585301