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

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

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

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

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

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

    • Srgwell



  • Сообщения

    • gudstartup
      @Alexey8107 а отдельное питание туда зачем приходит ? там явно не только трансформатор и фильтр
    • Alexey8107
      Да, я уже изучил те платы от старых ремонтов, там и судя по всему килоомный резистор в параллель обмотке стоит судя по всему(видимо нагрузочный, чтобы обмотка была нагружена всегда, и RC фильтр. Но не уверен на 100% что это обычный трансформатор тока, хотя все говорит об этом). На одной бахнули IGBT очень смачно, так что там не показатель, выгорело и управление ими. На двух 100% рабочие, там контроль напряжения в отвале, но трансы на 100 всего. Еще на одной, если не ошибаюсь шпиндельной, на 400. Там была проблема с рекуперацией. Так что тоже можно ориентироваться на их исправность.
    • mr_Voden
    • gudstartup
      @Alexey8107 подайте 24 в только на spm и посмотрите будет на нем 30 или нет если будет то для начала смотрите датчики тока на силовой плате    там внутри еще схемка есть для выдачи адекватного сигнала на схему контроля тока. если поставите не родной возможны сбои при работе шпинделя. в худшем случае может они окажуться исправны. сейчас не помню какой там уровень по аварии сравните с соседним модулем контроля тока их там 2. их питание тоже проверьте
    • Alexey8107
      Да, здесь я оговорился. Конечно же резисторы на контроль фаз. Тоже об этом думал, т.к. силовуха ну не имеет явных признаков неисправности, да и в принципе даже включается и работает. На данный момент от предыдущих ремонтов остались трансформаторы тока фанук A44L-0001-0165# на 100, 400 и 600 ампер. Причем номер у всех почему то одинаковый, а ампераж разный. Найти документацию на них я даже не пытался, это невозможно. Надо будет снять и проверить. Если кто знает, это обычный трансформатор тока или все таки какое-нибудь чудо на эффекте холла???
    • Kydes
      Пришлите свою почту, отправлю эти файлы 
    • gudstartup
      вот схема кабеля там еще линия esp есть и интерфейс по которому модули сообщают об ошибках сигнальная пара mifa xmifa возможно именно через него ваш psm получает инфу о том что на dc линии кз. возможно что инфа приходит и от spm но вы почему то исключаете замену psm spm целиком а ограничились платой управления
    • kanapello
    • Ветерок
      И что мешает сделать всё это нормальной подсборкой (как это и есть на самом деле)? И будет "одна строка" в спецификации.   Извращаетесь там, где это вообще не нужно. Булками задается то, чего в конструкторской сборке физически нет - ЗИП, краска, упаковка и т.п. И лишь при отсутствии ПДМ.
    • david1920
      Вот и ответ для автора
×
×
  • Создать...