SolidWorks API (Application Programming Interface) — это интерфейс, позволяющий разрабатывать пользовательские приложения для системы SolidWorks. API – интерфейс содержит множество функций, которые можно вызывать из программ Microsoft Visual Basic, Microsoft Visual C++, Microsoft Visual Studio или из файлов-макросов SolidWorks. Эти функции предоставляют программисту прямой доступ к функциональным возможностям SolidWorks.
С помощью API – приложений можно решать множество различных задач, например такие как: интеграция SolidWorks с другими программными пакетами, разработка специализированных модулей, добавляющих к базовым возможностям SolidWorks дополнительную функциональность и различные другие задачи. API – приложения позволяют получить множество конфигураций одной детали или сборки, тем самым выиграть огромное количество времени при принятии конструкторских решений.
Разработка API — приложения может осуществляться на уровне создания макроса в SolidWorks, либо на уровне отдельного приложения, написанного на языке C# или VisualBasic. Все динамические библиотеки, необходимые для работы с API – приложениями автоматически инсталлируются вместе с SolidWorks. Как правило, если необходимо разработать полноценное приложение, для геометрических построений удобнее использовать программный код, записанный в макрос SolidWorks. Для начала работы с макросами, необходимо в программном пакете SolidWorks отобразить панель инструментов «Макрос».
Cоздание нового макроса и его выполнение
Последовательность действий для создания макроса в SolidWorks.
1. Перед тем, как начать записывать макрос, необходимо создать новый файл детали (сборки).
2. Для начала записи макроса на панеле «Макрос» кликнуть «Записьпауза макроса», после чего каждое построение или изменение свойства будет записываться в файл макроса.
3. Далее проводим все построения, которые должны быть отображены в программном коде макроса.
4. После этого останавливаем запись, кликнув «Остановить запись макроса». Появится окно, в котором необходимо указать физический путь файла макроса на жестком диске и указать формат, в котором он будет записан.
Форматы, в которых может быть сохранен макрос:
• VBA – упрощенная реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office.
• VSTA VB – макрос будет сохранен в программном коде на языке Visual Basic. VSTA – инструментарий расширения функциональности приложений, основанный на .NET.
• VSTA C# — макрос будет сохранет в программном коде на языке C#.
Для того, чтобы выполнить записанный макрос необходимо на панеле «Макрос» кликнуть «Выполнить макрос», после чего появится окно «Открыть».
Редактирование макроса
Для того, чтобы редактировать созданный макрос, необходимо на панеле «Макрос» кликнуть «Редактировать макрос», после чего в появившемся окне указать расположение файла макроса на жестком диске и его формат. Для редактирование макроса (VB, C#) используется набор инструментов Visual Studio for Applications (VSTA). VSTA автоматически запускается после выбора макроса для редактирования. В окне VSTA отображается сгенерированный код редактируемого макроса.
С помощью этого инструмента можно внести изменения в сгенерированный код и пересохранить макрос. Необходимо обратить внимание на то, что в окне Project Explorer уже указаны ссылки на все необходимые динамические библиотеки.
Создание приложения в Visual Studio
Указание ссылок на библиотеки
API – приложение можно разрабатывать непосредственно в Visual Studio, используя при этом программный код, сгенерированный при записи макроса.
Для того чтобы подключить динамические библиотеки для работы с интерфейсом API необходимо в окне Solution Explorer правой кнопкой кликнуть по вкладке Ссылки (References) и во всплывающем меню выбрать пункт «Добавить ссылку». После этого появится меню «Добавить ссылку», в котором выбираем вкладку COM и добавляем следующие библиотеки: SolidWorks2010 Type Library, SolidWorks2010 Constant Type Library, SolidWorks.Interop.swocommands.dll. Далее необходимо в самом приложении в классах где это необходимо (т.е. в тех, в которых будет использоваться программный код связанный с работой в SolidWorks) подключить соответствующие пространства имен.
Создание файла детали
Для прекращения записи макроса и его сохранения кликаем «Остановить запись макроса» и указываем путь сохранения. В результате получаем сгенерированный код на языке C#, который мы можем использовать в своем Windows Form приложении. Однако в проект необходимо добавить некоторый код для создания нового файла детали. Фрагмент кода выглядит следующим образом:
Document = "C:\ProgramData\SolidWorks\SolidWorks 2010\templates\ Сборка.asmdot";
swModelDoc = (ModelDoc2)swApp.OpenDoc6(document, (int)swDocumentTypes_e.swDocASSEMBLY, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);
Основные методы, изменение формальных параметров которых может повлиять на геометрию данной модели модели
• Метод InsertSketch класса SketchManager служит для добавления эскиза в активной плоскости. В качестве формального параметра принимает значение типа bool. Прежде чем создавать новый эскиз следует выбрать плоскость, на которой он будет размещен.
boolstatus = swDoc.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, false, 0, null, 0);
swDoc.SketchManager.InsertSketch(true);
• Метод CreateLine класса SketchManager служит для создания новой линии эскиза в режиме редактирования эскиза. Принимает 6 формальных параметров – координаты конечной и начальной точки линии. Аналогично методу CreateLine существуют методы для создания других элементов эскиза. Пример использования метода CreateLine:
skSegment= ((SketchSegment) (swDoc.SketchManager.CreateLine (0.116812, 0.026916, 0.000000, 0.149183, 0.026916, 0.000000)));
• Метод EditDimensionProperties класса swDoc служит для редактирования свойств нанесенного размера. Принимает множество формальных параметров, каждый из которых отвечает за определенное состояния какого – либо свойства размера.
• Метод AddDimension класса swDoc служит для создания нового размера и в качестве формальных параметров принимает координаты граничных точек размера. Для корректного использования необходимо явное приведение к типу DisplayDimension.
Автор: kaRTman3103