我正在尝试在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?
发布于 2016-10-11 23:10:20
SOLIDWORKS API建议使用ISldWorks::LoadFile4方法加载非本机文件。
这是API文档在LoadFile4的dwg文件上所说的。
DXF/DWG文件:
您可以:
让SOLIDWORKS确定默认值:
计算图纸大小和图纸比例以适应输入数据。
长度单位由输入DXF/DWG文件的标题确定。
图纸名称与输入DXF/DWG文件中的布局名称相同。
使用以下命令设置您自己的值:
获取IImportDxfDwgData接口。
在加载文件之前,使用以下带有"“(空字符串)的工作表参数的方法来设置默认值:
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-11-16 05:56:20
简单地说:
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 Subhttps://stackoverflow.com/questions/39757719
复制相似问题