打开.dwg使用SolidWorks API

时间:2016-09-28 21:10:36

标签: 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?

2 个答案:

答案 0 :(得分:3)

SOLIDWORKS API建议使用方法ISldWorks::LoadFile4加载非本机文件。

这就是API文档说使用LoadFile4 aboot dwg文件的内容。

  

DXF / DWG文件:

     

你可以:

     

让SOLIDWORKS确定默认值:

     

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

     

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

     

工作表名称与输入DXF / DWG文件中的布局名称相同。

     
      
  • 或 -
  •   
     

使用以下方法设置您自己的值:

     

ISldWorks :: GetImportFileData获取IImportDxfDwgData   接口

     

使用以下方法,使用Sheet参数“”(空白   string)在加载文件之前设置默认值:

     

IImportDxfDwgData :: GetPaperSize

     

IImportDxfDwgData ::为getPosition

     

IImportDxfDwgData :: GetSheetScale

     

IImportDxfDwgData :: ImportMethod

     

IImportDxfDwgData :: LengthUnit

     

IImportDxfDwgData :: SetPaperSize

     

IImportDxfDwgData :: SETPOSITION

     

IImportDxfDwgData :: SetSheetScale

     

IImportDxfDwgData :: SHEETNAME

     

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

     

注意:

     

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

     

如果DWG / DXF文件有多个工作表,请使用这些方法   Sheet参数中的有效布局名称,用于设置特定于工作表   设置,它会覆盖默认设置。如果有的话   没有为给定的布局名称(值)指定单个项目   used来自默认值(布局名称“”)。如果默认值是   未指定,SOLIDWORKS计算并使用有意义的值   该项目。

答案 1 :(得分:2)

简单如下:

    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