C# 使用SolidWorksAPI打开.dwg

C# 使用SolidWorksAPI打开.dwg,c#,solidworks,dwg,C#,Solidworks,Dwg,我正在尝试在SolidWorks 2015中打开.dwg文件。我已成功地使用打开了.slddrw IModelDoc2 doc = swApp.OpenDoc6("C:/Temp/BlankDraw.SLDDRW", (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0); 当我用.dwg替换.slddrw部分时,问题就出现了,它返回null 打开.dwg是否

我正在尝试在SolidWorks 2015中打开.dwg文件。我已成功地使用打开了.slddrw

IModelDoc2 doc = swApp.OpenDoc6("C:/Temp/BlankDraw.SLDDRW", (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0);
当我用.dwg替换.slddrw部分时,问题就出现了,它返回null


打开.dwg是否需要另一种方法?

SOLIDWORKS API建议使用该方法加载非本机文件

这是API文档对LoadFile4中的dwg文件所说的

DXF/DWG文件:

你可以:

让SOLIDWORKS确定默认值:

计算图纸尺寸和图纸比例以适合输入数据

长度单位由输入DXF/DWG文件的标题确定

图纸名称与输入DXF/DWG文件中的布局名称相同

  • 或-
使用以下命令设置您自己的值:

ISldWorks::GetImportFileData以获取IImportDxfDwgData 接口

将以下方法与工作表参数“”一起使用(空 字符串)要在加载文件之前设置默认值,请执行以下操作:

IImportDxfDwgData::GetPaperSize

IImportDxfDwgData::GetPosition

IImportDxfDwgData::GetSheetScale

IImportDxfDwgData::ImportMethod

IImportDxfDwgData::LengthUnit

IImportDxfDwgData::SetPaperSize

IImportDxfDwgData::设置位置

IImportDxfDwgData::SetSheetScale

IImportDxfDwgData::SheetName

有关导入DXF/DWG数据的详细信息,请参见IImportDxfDwgData

注:

获取IImportDxfDwgData接口不会获取默认值 从输入文件。未设置的任何值都将设置为 由SOLIDWORKS计算

如果DWG/DXF文件有多张图纸,请将这些方法与 “图纸”参数中的有效布局名称,用于设置特定于图纸的布局 设置,它将覆盖默认设置。如果有 未为给定布局名称指定单个项,该值 使用的是默认值(布局名称“”)。如果默认值为 未指定,SOLIDWORKS计算并使用有意义的 这个项目

简单到:

    Option Explicit
    Dim swApp As Object

    Dim Part As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long

    Sub main()

    Set swApp = Application.SldWorks

    boolstatus = swApp.LoadFile2("T:\Debug-LstBlock.dwg", "11 0")
    Set Part = swApp.ActiveDoc
    End Sub

SOLIDWORKS在打开dwg文件方面做得并不好。如果手动打开,通常会有一个转换过程。你想完成什么?您可能需要eDrawings API或其他东西。@AndrewK我正在尝试开发一个程序,将.dwg转换为.tif。在花了一些时间尝试使用SolidWorks进行此操作后,它似乎不像我们想象的那么容易,因为SolidWorks与.dwg的关系不太好。我建议尝试使用eDrawings API…这将更好地处理二维图形,我知道UI允许轻松保存到。tifI在使用dwg的Loadfile4时遇到一些问题。