4

我正在尝试在 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?

4

2 回答 2

3

简单如:

    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
于 2016-11-15T21:56:19.973 回答
3

SOLIDWORKS API 建议使用该方法ISldWorks::LoadFile4加载非原生文件。

这就是 API 文档所说的带有 LoadFile4 的 aboot dwg 文件。

DXF/DWG 文件:

你可以:

让 SOLIDWORKS 确定默认值:

计算纸张大小和纸张比例以适合输入数据。

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

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

  • 或者 -

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

ISldWorks::GetImportFileData 获取 IImportDxfDwgData 接口。

在加载文件之前,使用以下方法和“”(一个空字符串)的 Sheet 参数来设置您的默认值:

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 文件有多个图纸,请使用这些方法和图纸参数中的有效布局名称来设置图纸特定设置,这将覆盖默认设置。如果没有为给定的布局名称指定任何单个项目,则使用的值来自默认值(布局名称“”)。如果未指定默认值,SOLIDWORKS 会为该项目计算并使用有意义的值。

于 2016-10-11T15:10:20.407 回答