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)
编辑
收藏
举报