SolidWorks API, макрос работает в VSTA, но не из dll

Очень ценю тех, кто может потратить пару минут, чтобы помочь мне, так что заранее спасибо!

Попал в ситуацию, когда запуск макроса в VSTA works (vb.net), но запуск dll файлов из солида не работает. Наверное, забыл что-то очень простое. Принцип заключается в том, что текстовый файл находится в той же папке, что и файлы dll, и по умолчанию читается из этой папки без длинной строки местоположения.

Это работает в VSTA и после сборки dll (очень просто)

Partial Class SolidWorksMacro
    Public Sub main()
        Dim Model As ModelDoc2 = swApp.ActiveDoc
        Dim LayerName As String = "Stamp"
        MsgBox(LayerName)
    End Sub
    Public swApp As SldWorks
End Class

Нет, я хочу сделать то же самое, чтобы имя слоя считывалось из текстового файла. Работает при запуске из VSTA, но после сборки в dll и запуска из солида выдает ошибку: не удается открыть

"Местоположение"\macro.dll.

Partial Class SolidWorksMacro
    Public Sub main()
        Dim Model As ModelDoc2 = swApp.ActiveDoc
        Dim LayerName As String = "Stamp"
        Dim FileName As String = "LayerName.txt"
        Dim LayerName As String
        Dim sr As New StreamReader(FileName)
        LayerName = sr.ReadLine
        MsgBox(LayerName)
    End Sub
    Public swApp As SldWorks
End Class

person Alar    schedule 30.01.2017    source источник


Ответы (1)


Как вы планируете запускать код? Вам потребуется создать дополнительные функции для создания кнопки/панели задач/страницы свойств с помощью API для SOLIDWORKS, чтобы знать, что вы хотите сделать. Это немного сложнее, чем запуск макроса. Какие ссылки вы добавили в свой проект? Вам нужно будет добавить как минимум:

  • SolidWorks.Interop.sldworks
  • SolidWorks.Interop.swопубликовано

Правильно ли вы реализуете интерфейс ISwAddin? Кроме того, мне не очень повезло просто открыть DLL с помощью SOLIDWORKS, я использую regasm.exe для регистрации COM DLL или создаю установщик wix для создания записей реестра при распространении на несколько машин.

Страница Начало работы в Справка по API будет хорошим справочником, чтобы увидеть некоторые примеры и узнать, как настроить вашу среду.

person AndrewK    schedule 02.02.2017
comment
плюс 1 за ответ - person Amen Jlili; 02.02.2017
comment
Я знаю об этих вещах и разобрался с ними. Чтобы SolidWorks запускал макросы dll, необходимо установить VSTA. Как я уже сказал, это часть более крупного кода, и если я использую пример 1, он работает в VSTA и Solidworks, если я использую пример 2, он работает в VSTA, но не в SolidWorks.... VSTA использует Visual Studio 2005.... - person Alar; 04.02.2017