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

Сделай свою работу в 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 пользователей

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




  • Сообщения

    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
    • gudstartup
      @david1920 имеется ввиду платы на системах с сертификацией опций фалом oprminf старые в расчет не принимаются вы свой 18i восстановили?
    • gudstartup
      очень даже спрашивают как обязательную информацию для проверки вашей компании налоговый идентификатор должен быть указан. на myfanuc не спрашивают а вот на портале к сожалению просто так не зарегаться. 
    • david1920
      На 0I-TC mate менял плату управления приводами На 18i-TB менял для диагностики платы процессоров (один был от Spinner другой простой) процы были одинаковые Всё работает
    • brigval
      Браком 1.04В версии 1.04Добавлено: Автоуменьшение высоты шрифта многострочного наименования в ОН чертежа.Добавлено: Переименование поверхностей, баз, размеров в порядке их следования на чертеже.Добавлено: Переименование изображений по ГОСТ: сначала виды, затем разрезы, сечения, выносные элементы.Добавлено: Выравнивание неассоциативных видов.Добавлено: Ручной ввод шага и угла наклона штриховки.Добавлено: Перемещаются в макроэлемент компоненты, исключаемые из спецификации.Добавлено: Выбор количества значащих цифр в значении площади поверхности детали для вставки в ТТ.Добавлено: Возможность не авторазмещать ТТ перед конвертацией чертежа в PDF.Добавлено: Добавлены кнопки «Выделить все включенные в расчет» и Выделить все исключенные из расчета».Добавлено: Версия КОМПАС-3D Home показывается в программе со словом Home.Добавлено: Улучшен алгоритм считывания и вставки ТТ чертежа.Добавлено: При конвертации чертежа в PDF удаляется старый файл с таким же обозначением в начале имени, как обозначение в начале имени нового файла.Добавлено: Улучшено считывание номеров позиций из 3D-модели сборки.Исправлено: Иногда скрытые и потом показанные объекты чертежа отображались не серым цветом.Исправлено: Иногда после ручного заполнения графы «Масса» ОН чертежа в окне программы масса могла отображаться не правильно.Исправлено: В некоторых случаях из ОН чертежа могла не считываться литера.Исправлено: В некоторых окнах программы неправильно показывался заголовок окна программы.Исправлено: Другие замеченные мелкие ошибки и неточности кода.Скачать
    • boomeeeer
      Не помню чтобы у меня такое спрашивали при регистрации.
    • Snake 60
      @eljer0n  Откройте макрос SaveDRW.swp редактором VBA Найдите вот эти строки: Поменяйте выделенную цифру на нужную вам 3 или 4 - это количество символов которое останется от имени конфигурации. PS При сохранении в PDF тоже ругается на неправильное название чертежа, т.к. тоже обрезает название конфигурации до двух знаков, там тоже надо править при желании...
    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
×
×
  • Создать...