• 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

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

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

  • 相关阅读:
    Spring测试数据准备_java培训
    Tomcat的部署及常见问题的解决(IDEA)
    前端学习C语言 - 第二篇(常量、运算符、控制和循环)
    嵌入式开发:嵌入式基础——软件错误分类
    二叉树-28最大深度29二叉树路径和
    吃透Redis(三):数据结构篇-skiplist、quicklist、listpack
    全链路压测:保障系统稳定性与性能的关键措施
    NLP机器翻译全景:从基本原理到技术实战全解析
    Linux这么在两个服务器直接传文件?
    面霸的自我修养:ThreadLocal专题
  • 原文地址:https://blog.csdn.net/zengqh0314/article/details/126585301