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

Сделай свою работу в 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 эмодзи.

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

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

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

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

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • maxx2000
      Подушную малость. Чё там. Уже в упор научились резьбу резать без выходной канавки?
    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
    • brigval
    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
×
×
  • Создать...