SolidWorks API, макрос работает в VSTA, но не из dll
Очень ценю, кто может потратить пару минут, чтобы выручить меня, так что спасибо заранее!
Попал в ситуацию, когда работает макрос в VSTA works (vb.net)
, но запуск DLL-файлов из Solid Works не работает. Наверное, забыл что-то очень простое. Принцип заключается в том, что текстовый файл находится в той же папке, что и DLL-файлы, и по умолчанию считывается из этой папки без длинной строки "string".
Это работает в 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
1 ответ
Как вы планируете запустить код? Вам нужно будет создать дополнительные функции для создания страницы кнопки / панели задач / свойств через API для SOLIDWORKS, чтобы знать, что вы хотите сделать. Это немного сложнее, чем запускать макрос. Какие ссылки вы добавили в свой проект? Вам нужно будет добавить как минимум:
- SolidWorks.Interop.sldworks
- SolidWorks.Interop.swpublished
Правильно ли вы реализуете интерфейс ISwAddin? Кроме того, мне не повезло просто открыть DLL с помощью SOLIDWORKS, я использую regasm.exe для регистрации COM DLL или создания установщика wix для создания записей реестра при распространении на несколько машин.
Страница " Приступая к работе" в справке по API станет хорошим справочным материалом для ознакомления с некоторыми примерами и настройкой среды.