C# SolidWorks 二次开发 API —只开工程图的情况下直接转出3D和2D

C# SolidWorks 二次开发 API —只开工程图的情况下直接转出3D和2D

##昨天晚上有网友咨询了一个问题,问如何只打开工程图的情况下导出step与pdf.

之前我写的博客中存3D格式是在打开的情况下做的,之前我的一篇文章中有写过怎么在工程图中获取零件对象,所以我们只需要在那上面改一改就可以了。直接调用ModelDoc2.Extension.SaveAs方法就可以存成想要的格式,而不产生单独打开窗口的动作了。

代码如下:

           //连接到Solidworks
            ISldWorks swApp = Utility.ConnectToSolidWorks();

            ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;

            // DrawingDoc dc = (DrawingDoc)swModel;

            SelectionMgr selectionMgr = (SelectionMgr)swModel.SelectionManager;

            //获取选择的视图对象
            View view = (View)selectionMgr.GetSelectedObject5(1);

            //获取视图中的引用模型
            var viewModel = view.ReferencedDocument;

            //其它读取属性请参考博文 读取零件属性 ->BtnGetPartData_Click

            MessageBox.Show(viewModel.GetPathName());

            //下面是导出,如果不需要请注释掉以下代码。
            int error = 0;
            int warnings = 0;

            var stepName = System.IO.Path.GetFileNameWithoutExtension(viewModel.GetPathName());

            var bRes = viewModel.Extension.SaveAs($@"D:\{stepName}.step", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warnings);

            if (bRes == true)
            {
                MessageBox.Show("Export step Done!");
            }
            else
            {
                MessageBox.Show("Export Error!");
            }

代码已经发布在码云和github.

posted @
2020-04-23 11:31 
painezeng  阅读(
180)  评论(
0
编辑 
收藏 
举报