Перейти к публикации

Сделай свою работу в Solidworks эффективнее


Рекомендованные сообщения

У меня вопрос по аналогии с проставлением массы..и материала.. можно ли узнать название переменной где храниться текущий масштаб чертежа? И не спрашивайте меня зачем мне это... Не отвечу потому как сам не знаю...))..просто со всем вроде разобрался а здесь как-то не вышло..(

Можно перейти в редактирование "Основной надписи" (пр.кл.), выделить рамкой ту часть где есть запись про масштаб, ткнуть мышкой в эту область, пр. кл. - "Редактировать в окне"...

И получите все переменные для этой (или другой) записи...

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...


У меня вопрос.

подскажите команды макроса что-бы

как вставить деталь в сборку с совмещением 3-х плоскостей (названных 1 2 3) с тремя прлоскостями сборки

которые пользователь последовательно выберет в процессе вставки (выполнения макроса)

Ссылка на сообщение
Поделиться на других сайтах

как вставить деталь в сборку с совмещением 3-х плоскостей (названных 1 2 3) с тремя прлоскостями сборки

которые пользователь последовательно выберет в процессе вставки (выполнения макроса)

Макрос заменить всего 2 нажатия левой кнопки.
Ссылка на сообщение
Поделиться на других сайтах

У меня вопрос.

подскажите команды макроса что-бы

как вставить деталь в сборку с совмещением 3-х плоскостей (названных 1 2 3) с тремя прлоскостями сборки

которые пользователь последовательно выберет в процессе вставки (выполнения макроса)

Версию SW не указал...

делал я как-то что-то подобное:

<noindex>http://www.pogruzka.com/julio/swprog/assem...oolssca/faq.php</noindex>

Ссылка на сообщение
Поделиться на других сайтах

Нашёл в Tutorial как связаться с выбранным объектом, но он должен быть выбран заранее

А как сделать что-бы выбирался в процессе.

SW2009

Ссылка на сообщение
Поделиться на других сайтах

Нашёл в Tutorial как связаться с выбранным объектом, но он должен быть выбран заранее

А как сделать что-бы выбирался в процессе.

SW2009

По крайней мере до версии SW2007 API SW не поддерживает интерактивный метод работы.

И сомневаюсь, что в 8 или 9-й версиях что-то изменилось.

Т.е. нет метода, позволяющего сделать паузу для выбора объекта.

Тут надо макрос как-то по-другому строить:

например, на форме (которую выводит макрос) создать кнопку "добавить выбранный объект", при нажатии на которую будет осуществляться такая операция...

Ссылка на сообщение
Поделиться на других сайтах

По крайней мере до версии SW2007 API SW не поддерживает интерактивный метод работы.

И сомневаюсь, что в 8 или 9-й версиях что-то изменилось.

Т.е. нет метода, позволяющего сделать паузу для выбора объекта.

А как насчёт Events? Примером тому макрос RecordDimM, который проверяет выбранный объект и если это размер то зачитывает его параметры в окно макроса. Допускаю, что не совсем понял о чём речь.
Ссылка на сообщение
Поделиться на других сайтах

А как насчёт Events? Примером тому макрос RecordDimM, который проверяет выбранный объект и если это размер то зачитывает его параметры в окно макроса. Допускаю, что не совсем понял о чём речь.

ИМХО, речь как раз об этом.

Я сознательно не упомянул об этом методе, т.к. насколько я понял, автор вопроса еще не совсем владеет API SW в полной мере.

Ссылка на сообщение
Поделиться на других сайтах

Я пока мало что понимаю.

Даже не могу разобраться как поправить макрос (созданный с помощью записи), чтобы совмещал выбранные (можно и до запуска объекты) например три плоскости.

boolstatus = Part.Extension.SelectByID2("1@Д1-8@Rama1", "PLANE", 0, 0, 0, True, 1, Nothing, 0) - это выбор плоскости из дет Д1

'boolstatus = Part.Extension.SelectByID2("Front Plane@Prof1-1@Rama1", "PLANE", 0, 0, 0, True, 1, Nothing, 0) - это выбор плоскости в сборке !!! как эту плоскость заменить на мною выбранную ( пусть до запуска макроса)

Set myMate = Part.AddMate2(0, 0, False, 0.1020583161465, 0, 0, 0.001, 0.001, 0.001, 0, 0.5235987755983, 0.5235987755983, longstatus, 0, 0, 0, 0, 0, 1, False, False, False, False) - это создание сопряжения для ранее выбранных (плостостей)

в помощи про подсвешник нашел только

Set SelectedObject = Part.SelectionManager.GetSelectedObject6(1, 0) - но что это и как оно работает не понятно

Помогите Въехать...

как эту плоскость заменить на мною выбранную ??

и как поступать если мне нужно совместить не одну а сразу 3 плоскости и две ещё переопределить.

Изменено пользователем FoxTol
Ссылка на сообщение
Поделиться на других сайтах

в помощи про подсвешник нашел только

Set SelectedObject = Part.SelectionManager.GetSelectedObject6(1, 0) - но что это и как оно работает не понятно

Помогите Въехать...

Со справкой по API-интерфейсу не пробовали ознакомится? Русской справки по API-интерфейсу нет и не ожидается...
Ссылка на сообщение
Поделиться на других сайтах

Нашёл в Tutorial как связаться с выбранным объектом, но он должен быть выбран заранее

А как сделать что-бы выбирался в процессе.

SW2009

Забыл спросить: что это за Tutorial ?

Это что, Tutorial конкретно по API SW ?

Это новое в SW2009 ?

У меня SW 2007 - до сих пор видел/пользовался только Help`ом по API SW.

Ссылка на сообщение
Поделиться на других сайтах

Со справкой по API-интерфейсу не пробовали ознакомится? Русской справки по API-интерфейсу нет и не ожидается...

Пробовал, но не особо понятно

Забыл спросить: что это за Tutorial ?

Это что, Tutorial конкретно по API SW ?

Это новое в SW2009 ?

У меня SW 2007 - до сих пор видел/пользовался только Help`ом по API SW.

Да в 2009 есть интерактивный урок как создавать и редактировать макрос

Ссылка на сообщение
Поделиться на других сайтах

Я пока мало что понимаю.

Даже не могу разобраться как поправить макрос (созданный с помощью записи), чтобы совмещал выбранные (можно и до запуска объекты) например три плоскости.

....

....

Судя по всему Вы используете VBA (Visual Basic for Application) ?

А встроенный в SW редактор макросов используете?

Что такое режим отладки (Debug) знаете?

Вообще, опыт в программировании какой-нибудь есть?

PS. в Help`e по API SW есть масса примеров, но, конечно, все по англ.

Как, кстати, с англ. языком?

Есть также много других сайтов с примерами(работающими)...

Ссылка на сообщение
Поделиться на других сайтах

Судя по всему Вы используете VBA (Visual Basic for Application) ?

А встроенный в SW редактор макросов используете?

Записываю макрос

потом

Инструменты -> Макрос -> редактировать

далее выбираю файл с названием файла

И открывается текст в Microsoft Visual Basic (видимо это и есть встроенный)

PS. в Help`e по API SW есть масса примеров, но, конечно, все по англ.

Есть также много других сайтов с примерами(работающими)...

У меня есть опыт програмирования VB для EXEL

Взял примерчик в фелпе то что нашёл по сборкам

(Add Component and Mate Example) макрос вставляет , и совмещает .

а как сделать выбор элемента и использовать его в процедуре добавления совмещения?

Подскажите сайты... с работающими примерами

Изменено пользователем FoxTol
Ссылка на сообщение
Поделиться на других сайтах

Записываю макрос

потом

Инструменты -> Макрос -> редактировать

далее выбираю файл с названием файла

И открывается текст в Microsoft Visual Basic (видимо это и есть встроенный)

У меня есть опыт програмирования VB для EXEL

Подскажите сайты

Где конкретно примеры в фэлпе ?

Запускаем Help Api SW, закладкa "содержание" :

- SolidWorks API Help-> Examples and Projects"

- последняя строчка - видим: "SolidWorks API Sample Projects"

И в описаниях очень многих функций API SW есть кнопочка "Examples".

Или:

<noindex>http://www.solidworks.com/sw/support/APIDownloads.html</noindex>

ну и есть еще масса сайтов...

Ссылка на сообщение
Поделиться на других сайтах

Я пока мало что понимаю.

Даже не могу разобраться как поправить макрос (созданный с помощью записи), чтобы совмещал выбранные (можно и до запуска объекты) например три плоскости.

boolstatus = Part.Extension.SelectByID2("1@Д1-8@Rama1", "PLANE", 0, 0, 0, True, 1, Nothing, 0) - это выбор плоскости из дет Д1

'boolstatus = Part.Extension.SelectByID2("Front Plane@Prof1-1@Rama1", "PLANE", 0, 0, 0, True, 1, Nothing, 0) - это выбор плоскости в сборке !!! как эту плоскость заменить на мною выбранную ( пусть до запуска макроса)

Set myMate = Part.AddMate2(0, 0, False, 0.1020583161465, 0, 0, 0.001, 0.001, 0.001, 0, 0.5235987755983, 0.5235987755983, longstatus, 0, 0, 0, 0, 0, 1, False, False, False, False) - это создание сопряжения для ранее выбранных (плостостей)

в помощи про подсвешник нашел только

Set SelectedObject = Part.SelectionManager.GetSelectedObject6(1, 0) - но что это и как оно работает не понятно

Два простеньких примера. Процедура main1 создает сопряжение по двум выбранным до запуска макроса плоскостям. Процедура main2 выбирает плоскости програмно. В функции SelectByID2 имена плоскостей мои, вам нужно записать свои.

Option Explicit

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swAssembly As SldWorks.AssemblyDoc

Dim swSelMgr As SldWorks.SelectionMgr

Dim swMate As SldWorks.Mate2



Dim i As Integer

Dim bres As Boolean



Sub main1()

	Set swApp = Application.SldWorks

	Set swModel = swApp.ActiveDoc

	Dim docType As Long

	docType = swModel.GetType

	

	If docType <> swDocASSEMBLY Then '  если не сборка то выходим из процедуры

		Exit Sub

	End If

	

	Set swSelMgr = swModel.SelectionManager

	

	Dim selCount As Long

	selCount = swSelMgr.GetSelectedObjectCount

	If selCount <> 2 Then Exit Sub ' если выбрано не 2 объекта, то выходим из процедуры

	

	Dim bres As Boolean

	Dim selType As Long

	For i = 1 To selCount

		selType = swSelMgr.GetSelectedObjectType(i)

		If selType <> swSelDATUMPLANES Then Exit Sub ' если выбрана не плоскость, то выходим из прцедуры

	Next i

	Dim mateError As Long

	mateError = -1

	Set swAssembly = swModel

	Set swMate = swAssembly.AddMate3(swMateCOINCIDENT, swMateAlignALIGNED, True, 0, 0, 0, 0, 0, 0, 0, 0, False, mateError)

	swModel.ForceRebuild3 False

	

End Sub



Sub main2()

	Set swApp = Application.SldWorks

	Set swModel = swApp.ActiveDoc

	Dim docType As Long

	docType = swModel.GetType

	

	If docType <> swDocASSEMBLY Then

		Exit Sub

	End If

	swModel.ClearSelection2 True

	bres = swModel.Extension.SelectByID2("Plane1@Part1-1@Assem1", "PLANE", 0, 0, 0, True, 1, Nothing, swSelectOptionDefault)

	If bres = False Then Exit Sub

	

	bres = swModel.Extension.SelectByID2("Plane2@Part2-1@Assem1", "PLANE", 0, 0, 0, True, 1, Nothing, swSelectOptionDefault)

	If bres = False Then Exit Sub

	Dim mateError As Long

	mateError = -1

	Set swAssembly = swModel

	Set swMate = swAssembly.AddMate3(swMateCOINCIDENT, swMateAlignALIGNED, False, 0, 0, 0, 0, 0, 0, 0, 0, False, mateError)

	

	swModel.ForceRebuild3 False



End Sub

P.S. Вопрос не по теме, как мне кажется. Здесь выкладывают готовые макросы и вопросы по ним, а не по API. Для этого есть другой топик.

Ссылка на сообщение
Поделиться на других сайтах

P.S. Вопрос не по теме, как мне кажется. Здесь выкладывают готовые макросы и вопросы по ним, а не по API. Для этого есть другой топик.

Спасибо за пример. Жалко, но не всё открывается из того что выложенно (Примеров правда не хватает ) . А разве по API есть топик? (то что есть не совсем по API)

Ссылка на сообщение
Поделиться на других сайтах

А разве по API есть топик? (то что есть не совсем по API)

http://fsapr2000.ru/index.php?act=Search&...ighlite=%2BAPI*
Ссылка на сообщение
Поделиться на других сайтах

Пробовал этот макрос (OsnavnayNadpis_V1.0_Release) с вложенной функцией простановки неуказаной шероховатости, ничего не получается, матерится SW2008. Как решить проблему кто знает?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   2 пользователя

    • Shvg
    • madalik



  • Сообщения

    • Srgwell
      Кто изменяет так размеры? Киньте в них камень. Я так понял, это для разгреба ошибок конструкторов, которые уволились. А вот если подсветка меняется у размеров, которые поменялись после последнего запуска- это круто. Поиск и анализ изменений быстро происходит
    • si-64
      Возможно ли преобразование и внутренних объектов, а не только наружного периметра грани?  
    • Bot
      Форум посвящен новым ключевым направлениям в развитии T-FLEX PLM и новым продуктам в области инженерного ПО и управления полным жизненным циклом продукта Описание мероприятия Главное событие года компании «Топ Системы» — ежегодный Форум T-FLEX PLM — посвящен ключевым направлениям в развитии технологий и решений в области инженерного ПО и управления полным жизненным циклом продукта. Участники мероприятия познакомятся со стратегией развития, новыми разработками и функциональными возможностями отечественного комплекса T FLEX PLM, узнают о реализованных проектах у заказчиков, увидят программные продукты в действии. Если на предприятии стоят задачи: обеспечить бесперебойное производство, наладить выпуск новой продукции, удовлетворить рыночный спрос и обеспечить технологический суверенитет, то российский программный комплекс T FLEX PLM поможет в краткие сроки выполнить инженерные и производственные задачи выпуска изделий На мероприятии вы сможете: Узнать о [...] View the full article
    • gudstartup
      это неправильно разделите м коды на 2 кадра иначе будет вышеописанная ошибка а так программа нормально выполняется
    • malvi.dp
      Допилил. Поддерживает многолистовые чертежи Начинает работу при нажатии на кнопку макроса: -при нахождении измененных (установлена галочка "Измененное значение") размеров окрашивает их в красный цвет; -если с измененного размера снята галочка "Измененное значение", т.е. он стал обычным - цвет становится обычным; -по окончании работы в сообщении выводится статистика найденных измененных размеров, если они есть. Тестировался на sw2016 и sw2020.   ChangeColorForOverridedDimensions.zip   Да, что-то прошло не так... Уже поправил.
    • maxx2000
      Я скорее согласен с Надеждой Януарьевной
    • Koels
      Мотора 54 градуса, что на 6 градусов больше соседнего станка, вентеляторы в норме да. Ещё хочу сравнить нагрузку координаты с соседним станком, но пока не дают. У этих двух станков проблемы с охлаждением, на соседнем стоит автомобильный радиатор для охлаждения масла. xD
    • Bot
      Dassault Systèmes Reports Solid First Quarter Results And Reaffirms Full-Year Objectives Просмотр полной статьи
    • Ninja
    • Ninja
      В зимнее время водители устанавливают на колёса специальные цепи против скольжения. В мире разработано множество видов цепей и способов их установки. Японцы применяют "цепи Абэ". Кто этот великий инженер? Это знаменитый японский писатель Кобо Абэ. Для уединенного писательского труда Абэ купил домик в горах. А в горах зима ранняя, снежная, затяжная. Без цепей на колёсах можно и улететь с обрыва. Абэ периодически заводил машину и спускался в долину. Почту получить/отправить, в магазине продукты купить, ящик рисовой водки. (Известное дело: насухую великую книгу не напишешь). В долине приходилось цепи снимать. По правилам цепи запрещается применять при отсутствии на дороге снежного покрова. В те времена для установки/снятия цепи требовалось домкратом поднимать каждое колесо. В машине 4 колеса. Товарищу Абэ приходилось корячиться с домкратом. При этом в самых нелитературных выражениях комментируя политику правящей партии и все домкраты в мире. Купил в магазине бухлишко-закусь. Поехал домой в горы. А там снег, скользко. Цепи требуются. Опять писатель и драматург Абэ домкрат крутит. Всё это насмерть надоело Абэ. Обратился к компаниям-производителям: придумайте способ установки цепей без домкрата! Но производители ничего не придумали. Или не захотели. Тогда Абэ сам придумал способ установки цепей без необходимости поднимать колесо. Послал изобретение на конкурс. И неожиданно получил призовое место и патент. Новый способ установки цепей быстро завоевал популярность. Так и пошло у японцев - "цепи Абэ". Кобо Абэ не получил Нобелевскую премию по литературе. Уже выдвигался, уже все были уверены в том, что он её получит. Но не успели, писатель умер. А это всё дурацкие цепи виноваты. Сколько времени он потерял в установке/снятии цепей? Сколько времени, вместо того чтобы писать, он крутил домкрат? Вот и не успел. https://ru.ruwiki.ru/wiki/Абэ,_Кобо
×
×
  • Создать...