2016-09-28 6 views
3

Я пытаюсь открыть файл .dwg в ​​SolidWorks 2015. Я был succsesfully смог открыть .slddrw с помощьюОткрыть .dwg Использование SolidWorks API

IModelDoc2 doc = swApp.OpenDoc6("C:/Temp/BlankDraw.SLDDRW", (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0); 

Вопрос становится, когда я заменить .slddrw части с .dwg, он возвращает null.

Есть ли способ по-другому, что мне нужно, чтобы открыть .dwg?

+0

SOLIDWORKS не собирается делать большую работу, открывающий Dwg файл. Если вы открываете его вручную, обычно процесс конверсии. Что вы пытаетесь выполнить? Вам может понадобиться API eDrawings или что-то еще. – AndrewK

+0

@AndrewK Я пытаюсь разработать программу, которая преобразует наши .dwg в ​​.tif. Проведя некоторое время, пытаясь сделать это с помощью SolidWorks, это выглядит не так просто, как мы думали, потому что SolidWorks не играет хорошо с .dwg's – Cogorlopez

+0

Я бы предложил попробовать API eDrawings ... Это будет лучше работать с 2D-чертежом, и я знаю пользовательский интерфейс позволяет легко сохранить .tif – AndrewK

ответ

3

API SOLIDWORKS рекомендует использовать метод ISldWorks::LoadFile4 для загрузки несекретных файлов.

Это то, что API docs говорит об удалении файлов dwg с помощью LoadFile4.

DXF/DWG файлы:

Вы можете:

Пусть SOLIDWORKS определить значения по умолчанию: размер

бумаги и масштаб листа вычисляются с учетом входных данных.

Единица измерения длины определяется из заголовка входного файла DXF/DWG.

Имя листа совпадает с именем макета во входном файле DXF/DWG.

  • или -

Установите собственные значения с помощью:

ISldWorks :: GetImportFileData получить интерфейс IImportDxfDwgData .

Используйте следующие методы с листком аргументом "" (пустая строка) для настройки параметров по умолчанию перед загрузкой файла:

IImportDxfDwgData :: GetPaperSize

IImportDxfDwgData :: GetPosition

IImportDxfDwgData :: GetSheetScale

IImportDxfDwgData :: ImportMethod

IImportDxfDwgData :: LengthUnit

IImportDxfDwgData :: SetPaperSize

IImportDxfDwgData :: SetPosition

IImportDxfDwgData :: SetSheetScale

IImportDxfDwgData :: SheetName

См IImportDxfDwgData подробную информацию об импорте DXF/DWG данные.

ПРИМЕЧАНИЯ:

Получение интерфейс IImportDxfDwgData не получает значения по умолчанию из входного файла. Любые значения, не заданные вами, равны значениям , вычисленным SOLIDWORKS.

Если файл DWG/DXF имеет несколько листов, используйте эти методы с допустимым именем макета в аргументе «Лист», чтобы настроить параметры листа, которые переопределяют настройки по умолчанию. Если какой-либо из отдельных элементов не указан для заданного имени макета, значение используется по умолчанию (имя макета ""). Если значение по умолчанию не указано, SOLIDWORKS вычисляет и использует значимое значение для этого элемента.

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 
+0

У меня были некоторые проблемы с Loadfile4 с dwgs. –