# 1
| Тема: Кто пользуется макросами? |
Артем Татуревич
Администратор
Местный
Сообщений: 23
Откуда: Ukraine
Зарегистрирован: 07.12.09 Пол:
Мужской Статус: offline
|
Опубликовано 04.03.2010 20:04 |
| |
Интересно было бы узнать, кто пользуется SolidWorks API в целях автоматизации проектирования.
Макросы и другие API-приложения могут быть очень мощным и удобным инструментом для автоматизации многих задач.
Также, если кому требуется консультация по этому вопросу - всегда пожалуйста :-) |
|
[Изменил(а) Артем Татуревич, 04.03.2010 20:07]
| |
^ наверх ^
|
# 2
| |
NikitOS
Пользователь
Новичок
Сообщений: 1
Откуда: Russia
Зарегистрирован: 16.04.10 Пол:
Не определен Статус: offline
|
Опубликовано 16.04.2010 17:19 |
| |
Артем, подскажите, пожалуйста, ресурсы по программирования SolidWorks через COM-объекты. Желательно чтобы все подробно разъяснялось (уровень: новичок).
Есть ли такие ресурсы (книги, сайты, статьи) на русском? |
|
| |
^ наверх ^
|
# 3
| |
Артем Татуревич
Администратор
Местный
Сообщений: 23
Откуда: Ukraine
Зарегистрирован: 07.12.09 Пол:
Мужской Статус: offline
|
Опубликовано 16.04.2010 22:26 |
| |
NikitOS написал:
Артем, подскажите, пожалуйста, ресурсы по программирования SolidWorks через COM-объекты. Желательно чтобы все подробно разъяснялось (уровень: новичок).
Есть ли такие ресурсы (книги, сайты, статьи) на русском?
К большому сожалению, подобные ресурсы мне не встречались. Более того, их нет даже на английском. Сам искал такие, когда начинал изучать SolidWorks API. Все, что мне удалось найти - это официальные курсы API Fundamentals, предоставляемые SolidWorks. Но приобрести такую книгу в свободной продаже или в интернете не удастся, возможно, Вам в этом вопросе помогут реселлеры.
Пара полезных сайтов, которыми сам пользуюсь, но они на английском.
https://forum.solidworks.com/community/solidworks/api
http://eng-tips.com/threadminder.cfm?pid=559
Еще много полезной информации можно найти из стандартной справки SolidWorks API.
Если у Вас есть навыки в программировании и есть вопросы по SolidWorks API, пожалуйста обращайтесь. |
|
| |
^ наверх ^
|
# 4
| |
Max
Пользователь
Местный
Сообщений: 8
Откуда: Ukraine
Зарегистрирован: 28.07.10 Пол:
Не определен Статус: offline
|
Опубликовано 13.10.2011 20:04 |
| |
Артем, подскажите можно ли, построить куб, задать в уравнениях три стороны (а, б, с) и по некоторому уравнению к каждой стороне добавлять по 5мм после добавления снимать масовые характеристики (взвесить).
Как такое можно сделать? Макросами или как-то по другому? Может имеются ссылки?
Заранее спасибо. |
|
| |
^ наверх ^
|
# 5
| |
Max
Пользователь
Местный
Сообщений: 8
Откуда: Ukraine
Зарегистрирован: 28.07.10 Пол:
Не определен Статус: offline
|
Опубликовано 30.10.2011 12:51 |
| |
Здравствуйте, начал писать макросы в VBA и столкнулся с проблемой.
Суть ее такова: Я записываю макрорекордером некие действия далее сохраняю макрос и редактирую его, добавляю форму пользователя с TextBox для ввода некоторых данных, вставляю кнопку и в нее заливаю код записаный макрорекордером. Когда я в редакторе макроса делаю активким окно формы (кликаю мишкой по окну) запускаю его на выполнение, то он работает и выполняется. Когда я начинаю запускать макрос на выполнение непосредственно из SolidWorks, то форма не выплывает, а вся деталь строится по по коду записаного макрорекордером. Впрос вот вчем: Как сделать так чтобы призапуске макроса в среде солида посялялась форма в которую я внесу данные по которым будет построина деталь. |
|
| |
^ наверх ^
|
# 6
| |
Артем Татуревич
Администратор
Местный
Сообщений: 23
Откуда: Ukraine
Зарегистрирован: 07.12.09 Пол:
Мужской Статус: offline
|
Опубликовано 31.10.2011 14:29 |
| |
Дело в том, что существует входная точка в макросах VBA - это функция main и вот она запускается по умолчанию. Когда Вы работаете в редакторе, то запускается активный модуль (в Вашем случае форма). Для того, чтобы запускалась форма автоматически, необходимо добавить строчку <FormName>.Show, например UserForm1.Show.
Отвечая на предыдущий вопрос. Сделал небольшой примерчик, который строит куб по заданным уравнениям типа (А+Б) и по заданному количеству итераций их изменяет. При этом отображает массу детали в поле. Не могу найти, как прикрепить приложение к посту. Оставьте почту - перешлю файл.
Макрос может быть значительно упрощен. Но в нем я показал, как можно создать такой макрос, не зависящий от версии/платформы.
Если есть вопросы – обращайтесь. |
|
| |
^ наверх ^
|
# 7
| |
Max
Пользователь
Местный
Сообщений: 8
Откуда: Ukraine
Зарегистрирован: 28.07.10 Пол:
Не определен Статус: offline
|
Опубликовано 31.10.2011 21:24 |
| |
Спасибо, теперь все получилось.))) |
|
| |
^ наверх ^
|
# 8
| |
Tanya
Пользователь
Новичок
Сообщений: 1
Откуда: Russia
Зарегистрирован: 09.11.11 Пол:
Не определен Статус: offline
|
Опубликовано 09.11.2011 11:12 |
| |
Здравствуйте, я создаю макрос в VBA для SW 2011 построения 3D катушки.
Есть кромка состоящая из нескольких отрезков. Мне нужно перпендикулярно каждому отрезку провести вспомогательную плоскость. Проблема в том что количество этих отрезков и координаты будут различным для разных катушек. Подскажите пожалуйста, как можно считать координаты этих отрезков в макрос? |
|
| |
^ наверх ^
|
# 9
| |
Артем Татуревич
Администратор
Местный
Сообщений: 23
Откуда: Ukraine
Зарегистрирован: 07.12.09 Пол:
Мужской Статус: offline
|
Опубликовано 09.11.2011 18:19 |
| |
Здравствуйте,
Не совсем понял, что Вы имеете ввиду. Если не ошибаюсь, речь идет об объектах IEdge. Получать их можно многими способами (см. пункт Accessors в API Help для интерфейса IEdge). Уточните, какие исходное данные у Вас есть. Хорошо бы приложить модель, или хотя бы скриншот.
Но, как я это понимаю, Вам будет нужен обход всех кромок (IBody2::GetEdges) и отсеивание лишних по какому-либо критерию, например Edge::GetCurve:: IsCircle. Чтообы получить координаты кромки, используйте Edge::GetEndVertex/ Edge::GetStartVertex.
~A. |
|
| |
^ наверх ^
|
# 10
| |
YARL
Пользователь
Новичок
Сообщений: 1
Откуда: Ukraine
Зарегистрирован: 26.02.12 Пол:
Не определен Статус: offline
|
Опубликовано 26.02.2012 17:48 |
| |
Кто знает как с помощью макросов сделать так чтобы при нажатии на какую-нибудь из деталей в сборке появлялось сообщение MsgBox в котором я допустим пропишу название детали. Вобщем как прописать путь к детали и как присоединить его к событию (напр. Click). Кто знает, подскажите пожалуйста? |
|
| |
^ наверх ^
|
# 11
| |
DSN
Пользователь
Новичок
Сообщений: 1
Откуда: Russia
Зарегистрирован: 27.03.13 Пол:
Не определен Статус: offline
|
Опубликовано 27.03.2013 10:09 |
| |
Подскажите пожалуйста, есть небольшая проблема с написанным мной макросом:
макрос написан для добавления текста под размером,
макрос добавляет к тексту размера - "<stack><stack>",
после чего можно далее вписывать любой требуемый текст,
создал кнопку с привязанным к нему этим макросом,
все работает, но осталась небольшая шероховатость:
в окне Property Manager не происходит обновления - "<stack><stack>" не появляется,
приходится очищать select и повторно выделять размер,
но при повторном выборе размера не происходит автоматического открытия окна Property Manager, приходится делать лишний клик мышью для выбора редактируемого размера, после чего окно Property Manager открывается и все изменения, внесенные макросом, видны.
Можно ли сразу обновить окно Property Manager без его закрытия?
Если нет, то как после повторного программного выбора редактируемого размера открыть окно Property Manager без лишних телодвижений?
Текст макроса прилагаю:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swDispDim As SldWorks.DisplayDimension
Dim swDim As SldWorks.Dimension
Dim swDimName As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
If swSelMgr.GetSelectedObjectType3(1, -1) <> swSelDIMENSIONS Then
MsgBox " Вначале нужно выбрать размер. "
Exit Sub
End If
Set swDispDim = swSelMgr.GetSelectedObject6(1, 0)
swDimName = swDispDim.GetNameForSelection()
swDispDim.SetText SwConst.swDimensionTextParts_e.swDimensionTextCalloutBelow, "<stack><stack>"
swModel.ClearSelection2 True
swModel.EditRebuild3
swModel.SelectByID swDimName, "DIMENSION", 0, 0, 0
Set swSelMgr = swModel.SelectionManager
Set swDispDim = swSelMgr.GetSelectedObject6(1, 0)
Set swDim = swDispDim.GetDimension
End Sub
Заранее благодарю, DSN. |
|
| |
^ наверх ^
|
# 12
| |
turta
Пользователь
Новичок
Сообщений: 1
Откуда: Russia
Зарегистрирован: 26.12.14 Пол:
Не определен Статус: offline
|
Опубликовано 26.12.2014 15:40 |
| |
Подскажите пожалуйста, как с помощью VBA получить координаты точек произвольного контура и типы примитивов из которых он состоит? |
|
| |
^ наверх ^
|