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.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paine Zeng

如果对有帮助,请我喝咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值