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

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


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

19 минут назад, Solidman сказал:

работает также как и старая версия

43 минуты назад, Kelny сказал:

Делал такую вариацию SetDimension V1.0:

https://kelnyproject.ucoz.ru/load/2-1-0-1

 

в дополнении есть ещё такая штука:

Условное обозначение отверстий (calloutformat.txt)

https://kelnyproject.ucoz.ru/load/uslovnoe_oboznachenie_otverstij_calloutformat_txt/2-1-0-27

при нажатии на кнопку запуска макроса ничего не происходит((

не понял что это значит:

"' * Для запуска макроса SetDimension.swp используйте модуль SetDimension_run
' * или класс ClassSetDimension, во всех других случаях при запуске макроса
' * возможно появление ошибки.

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


59 минут назад, DuS сказал:

не понял что это значит:

"' * Для запуска макроса SetDimension.swp используйте модуль SetDimension_run

Это если запускать макрос из редактора, понится были какие-то проблемы с запуском - уже не помню, что побудило написать это.

Так же проверить, что нет потерынных ссылок MISSING в меню редактора VBA Tool->References...

 

 

Если сделать кнопку для макроса, то выбора не оставляет и позволяет выбрать то что нужно: SetDimension_run.main

 

1 час назад, DuS сказал:

при нажатии на кнопку запуска макроса ничего не происходит((

Попробуйте уменьшить размер окна Solidworks, т.к. если не показывает ни каких ошибок, то возможно появляется под окном Solidworks.

1 час назад, DuS сказал:

работает также как и старая версия

Помнится эта проблема вытекает из-за того что М запрятана в парметр <DIM> в строке размера уже с этой буквой и макрос не может проверить, что в теге уже есть буковка M.

Ссылка на сообщение
Поделиться на других сайтах
13 минут назад, Kelny сказал:

Попробуйте уменьшить размер окна Solidworks, т.к. если не показывает ни каких ошибок, то возможно появляется под окном Solidworks.

нет, окна нет.

14 минут назад, Kelny сказал:

Помнится эта проблема вытекает из-за того что М запрятана в парметр <DIM> в строке размера уже с этой буквой и макрос не может проверить, что в теге уже есть буковка M.

согласен

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, DuS сказал:

нет, окна нет.

Таких проблем замечено не было.

Так нет потерянных ссылок?

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

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, Kelny сказал:

Таких проблем замечено не было.

Так нет потерянных ссылок?

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

Аннотация 2022-12-02 150749.jpg

ругается на что то

Ссылка на сообщение
Поделиться на других сайтах
32 минуты назад, DuS сказал:

ругается на что то

Можно сделать код универсальным

Цитата

#If Win64 Then

          Private Declare PtrSafe Function ...

          ...

#Else    

          Private Declare Function ...

          ...

#End If

или просто добавить PtrSafe для всех фукнций такого рода:

Цитата

Private Declare PtrSafe Function ...

и ещё, если не заработает, то только в этих функциях поменять Long на LongPtr

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

Помнится эта проблема вытекает из-за того что М запрятана в парметр <DIM> в строке размера уже с этой буквой и макрос не может проверить, что в теге уже есть буковка M.

Какие-никакие данные можно выкопать из интерфейса IDisplayData ( IDisplayDimension.GetDisplayData() ).

Там при вызове метода IDisplayData.GetTextAtIndex(0) получается:

 - если обычный размер то данный текст содержит ПрефиксТекст + ЗначениеРазмера + СуффиксТекст.

 - если размер с резьбой - то только значение резьбового размера. (например М5)

Не факт что это все закономерности, но что заметил - то заметил.

Причем IDisplayData только для чтения.

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, nicomed сказал:

Какие-никакие данные можно выкопать из интерфейса IDisplayData ( IDisplayDimension.GetDisplayData() ).

Там при вызове метода IDisplayData.GetTextAtIndex(0) получается:

 - если обычный размер то данный текст содержит ПрефиксТекст + ЗначениеРазмера + СуффиксТекст.

 - если размер с резьбой - то только значение резьбового размера. (например М5)

Не факт что это все закономерности, но что заметил - то заметил.

Причем IDisplayData только для чтения.

Может быть , если у вас есть возможность , вы поправите макрос? Для меня весь этот VBA как египетские иероглифы)

Ссылка на сообщение
Поделиться на других сайтах
Только что, DuS сказал:

Может быть , если у вас есть возможность , вы поправите макрос? Для меня весь этот VBA как египетские иероглифы)

Увы, я на VBA тоже не пишу - я на C#.

Ссылка на сообщение
Поделиться на других сайтах
Только что, nicomed сказал:

Увы, я на VBA тоже не пишу - я на C#.

Жаль( 

Я то по простоте своей думал, открою макрос, найду строчку где он добавляет букву М и вместо М сделаю пробел. ))) Не получилось.

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

Здравствуйте, всем!

как в SW можно добавить такое обозначение номера размера на продолжении размерной линии? Может есть макрос?

ps

при оформлении эскизов ЕСТД

 

image.png

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, anton1308 сказал:

как в SW можно добавить такое обозначение номера размера на продолжении размерной линии?

Можно ручками через заметку и группировку с размером. Макрос такой не встречал, теоретически, думаю, реализуемо.

Скрытый текст

2022-12-05_18-39-00.gif

 

Ссылка на сообщение
Поделиться на других сайтах
11.03.2013 в 22:40, Shvg сказал:

Тема про условные обозначения отверстий. <noindex>http://fsapr2000.ru/index.php?showtopic=60...st&p=532211</noindex>

Макрос для выполнения этих функций. Выделяем кромку отверстия на чертеже, конвертируем его в окружность, выделяем эту окружность, жмем кнопку OK. Поддерживается множественный выбор.

HoleSymbol.rarНедоступно

Уважаемый Shvg, а нельзя ли ещё разок сделать доступным сие чудо света?

Ссылка на сообщение
Поделиться на других сайтах
05.12.2022 в 13:35, anton1308 сказал:

как в SW можно добавить такое обозначение номера размера на продолжении размерной линии?

 

20 часов назад, Snake 60 сказал:

Макрос такой не встречал, теоретически, думаю, реализуемо.

Возможно в API это Compound Note (вольный машинный перевод):

Цитата

Составная заметка — это заметка, которая может содержать несколько текстовых строк и геометрию эскиза.

Составные заметки эквивалентны определяемому пользователем символу и могут быть созданы с помощью IDrawingDoc::CreateCompoundNote . После создания вы можете использовать другие методы составных заметок для добавления текста и геометрии эскиза к объекту.

Этот объект представляется конечному пользователю, как если бы это был один элемент. Если пользователь выбирает составную заметку и перетаскивает ее, все объекты и текст перемещаются вместе.

https://help.solidworks.com/2010/english/api/sldworksapiprogguide/overview/compound_note.htm

 

Пример:

https://help.solidworks.com/2010/english/api/sldworksapi/create_compound_note_example_vb.htm

 

 

 

 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Mop2 сказал:

Уважаемый Shvg, а нельзя ли ещё разок сделать доступным сие чудо света?

Так по вашей же ссылке файл HoleSymbol.rar лежит:

https://cccp3d.ru/applications/core/interface/file/attachment.php?id=56398

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

Здравствуйте. Подскажите пожалуйста, существует ли способ автоматического запуска макроса совместно с открытием файла чертежа или модели.

Полистав форумы стало понятно, что в WORD, EXEL, CORELDRAW, да наверно и еще где то, есть уже встроенный список событий позволяющий это сделать.

(Вот пример для Корела - https://forum.rudtp.ru/threads/avtozapusk-makrosa-v-corel-x3-x4-est-li.40828/)

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

Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, SerSAW сказал:

Полистав форумы стало понятно, что в WORD, EXEL, CORELDRAW, да наверно и еще где то, есть уже встроенный список событий позволяющий это сделать.

Тоже самое.

 

19 часов назад, SerSAW сказал:

существует ли способ автоматического запуска макроса совместно с открытием файла чертежа или модели.

Существует способ постоянного висения в памяти и слежения за действиями и в случае запуска нужного активация нужных действий.

 

19 часов назад, SerSAW сказал:

Для Solidworks такого не нашел есть только события Workspace_Startup() и Workspace_Exit()

https://help.solidworks.com/2010/english/api/swconst/solidworks.interop.swconst~solidworks.interop.swconst.swappnotify_e.html

 

https://help.solidworks.com/2010/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.DSldWorksEvents_FileOpenNotify2EventHandler.html

 

Пример:

https://help.solidworks.com/2010/english/api/sldworksapi/fire_notification_after_adding_a_mate_example_vb.htm

 

https://help.solidworks.com/SearchEx.aspx?q=Notify+example&nresults=5&sort=&version=2010&lang=english&prod=api

 

 

 

 

 

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
21 час назад, SerSAW сказал:

Здравствуйте. Подскажите пожалуйста, существует ли способ автоматического запуска макроса совместно с открытием файла чертежа или модели.

Полистав форумы стало понятно, что в WORD, EXEL, CORELDRAW, да наверно и еще где то, есть уже встроенный список событий позволяющий это сделать.

(Вот пример для Корела - https://forum.rudtp.ru/threads/avtozapusk-makrosa-v-corel-x3-x4-est-li.40828/)

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

вопрос решил в следующей последовательности:

1) https://www.youtube.com/watch?v=T8MhrWHzUQc&t=142s&ab_channel=JavelinTechnologiesInc.|ATriMechCompany) от сюда передрал код для обработчика событий.

2) https://r1132100503382-eu1-3dswym.3dexperience.3ds.com/?_gl=1*1sb0o1g*_ga*MTI1NzU1NjE1Ny4xNjU2ODQxMzI5*_ga_XQJPQWHZHH*MTY3MTAxOTA3Ny4yMi4wLjE2NzEwMTkwNzcuNjAuMC4w&serverId=SwymHttpdTomcatServer_3#community:yUw32GbYTEqKdgY7-jbZPg/iquestion:tBn8dQ49Tci3Ap3MbglWwQ От сюда взял строку кода для запуска второго макроса из первого

3) https://www.codestack.net/solidworks-api/getting-started/macros/run-macro-on-solidworks-start/ По этому методу добавил макрос с обработчиком событий в загрузку вместе с солидом.

Получилось что я теперь могу добавить любой макрос на какое действие программы (в моем случае открытие документа) Для моих задач этого хватило

 

Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, SerSAW сказал:

вопрос решил в следующей последовательности

Часть ресурсов не доступно для РФ, а видео смотреть долго, было бы нагляднее указать конкретные используемые строки или зарисовку макроса для того, что бы вашим последователям было проще разобраться в вопросе и не изучать вопрос с нуля.

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Kelny сказал:

Часть ресурсов не доступно для РФ, а видео смотреть долго, было бы нагляднее указать конкретные используемые строки или зарисовку макроса для того, что бы вашим последователям было проще разобраться в вопросе и не изучать вопрос с нуля.

Извиняюсь. ну ресурсы не для РФ обычно мало кого останавливают)

В общем делать надо так:

1) По видео на ютубе наверно пояснений не нужно. просто нужно все повторить как там показано.

2) Private Function swApp_FileOpenPostNotify(ByVal FileName As String) As Long

swApp.RunMacro "C:\Users\SER\Desktop\Macro", "Macro1", "main"

End Function

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

Этот кусок надо поставить вместо функции из видео, которая вызывает MSG при создании документа. 

3) Создаем новый ярлык на Solidworks

В поле объект (нового ярлыка) прописываем примерно так A:\SW2020\SOLIDWORKS\SLDWORKS.exe /m "C:\Users\user.SER\Desktop\Event Listener.swp" только нужно указать свои пути к солиду и к макросу.

В принципе по пункту 3 было много инфы на форуме правда подробно, как сделать только по ссылке выше нашел.

В итоге получаем что Event Listener.swp загружается вместе с Солидом и висит в памяти. Как только происходит открытие документа (или какое то ваше необходимое событие) Event Listener.swp запускает нужный вам макрос.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • boomeeeer
      @anykeyto Я не оператор. Настраивал работу этой функции на токарно-фрезерном, где нужно было позиционировать шпиндель, для нарезания пазов. Что такое G07 не знаю. Вот такой пример для фрезерного станка нашёл   G108 B0; переключение на ось B для управления положением; G68.2 X10 Y10 Z20 I0 J90 K0 Положение заготовки (10,10,20) Угол Эйлера для определения характеристической системы координат; G53.2 Управление направлением инструмента   G109 B0 - отключит режим
    • anykeyto
      Ага, спасибо... А в связке с G07.1 это как работает? Есть детали ,кольца, на которых надо делать по 4 паза. Сейчас программист написал прогу под шаровую фрезу. Там рабочие движеня происходят через одновременное смещение по оси Х и Z... фреза убивается буквально на третьем кольце, да и обработка получаестя фиговой.. На сколько я понимаю надо стремиться к тому, чтобы на 5ти осном станке фреза всегда была перпендикулярна касательной ли самой поверхности. Мне посоветовал как раз цилндрческую интерполяцию, когда ось С преобразуется в плоскость. В мануале к HNC описано эт криво, но в примерах программ как раз сначала включается CTOS и потом G07.1. но дальше как запрограммировать понимания пока нет...  P.S. хочу добавить, что на 5-снике раньше работал только как оператор по готовым программам  на Хенденхайне. А сейчас на новом предприятии на новой для меня стойке нужно все делать с нуля и самостоятельно. С одной стороны интересно, с другой стороны спросить не у кого, в инете инфы по стойке нет от слова совсем, уж тем более видео....  чем это отличается от просто G0 C180? Или это уже будет шпиндель позиционироваться, а не стол?
    • AlexKaz
      Различают жёсткие и гибкие ротора. В данном случае вал жёсткий. Для него соответствуюшая формула. 4000 об/мин = 66.67 Гц, это ни о чём, эффекты для такой частоты почти не скажутся на жёстком роторе. Но проблема в том, что в лопаточных машинах (а насос на скрине наверное лопаточная?) собственные кратны числу лопаток. Я не разбирался в вопросе чтобы что-то здесь советовать. Лучше не спешить и внимательно почитать про модальный в лопаточных. Заодно проверить, а какое нагружение идёт в деталях насоса чтобы корректно выполнить престресс.
    • ДОБРЯК
      Хотите еще и матрицу масс изменить. :=) И сколько килограмм воды будете присоединять?  Опыт правильного моделирования, опыт расчета таких конструкций накапливается десятилетиями. Маловероятно, что кто-то на форуме будет вам объяснять как правильно моделировать, какие КЭ использовать, какие граничные условия задавать и т. д. Вы же всегда уклоняетесь от разговора на эти темы, даже для простых моделей.  Даже если перейдете на Ансис и не разберётесь в том, что он считает это не поможет вам написать грамотный отчет и объяснить грамотному заказчику, что вы там насчитали. Считает расчетчик, а программа это инструмент. Это только в рекламе пишут, что купите программу трехмерного моделирования, сделайте трехмерную модель, потом нажмите одну кнопку и на обычном игровом компьютере все посчитаете. Только в жизни все немножко иначе...:=)
    • Jesse
      Вот что у Биргера: Центробежные силы и индуцированный гироскопический момент зависят от квадрата частоты вращения вала   Хотя уже сама критическая частота зависит только от момента инерции колеса (альфа, бэта, гамма - это прогибы, углы поворота и прочая шелуха), т.е. частота вращения в формулу не входит, а всё определяется только моментом инерции Jm Ну у него рассматривается простая одномассовая система (фактически грузик на пружинке). Думаю поискать публикации.. мб где то раскопали аналитическую зависимость первой и высшей СЧ от частоты вращения для сложных систем. Хотя если выяснится что зависит,  всё равно обоснование придумывать придётся.  Эхх...
    • Fedor
      https://www.litres.ru/book/v-n-faddeeva/vychislitelnye-metody-lineynoy-algebry-65999878/  Ну и классику жанра :) 
    • Jesse
      4000 об/мин при наружном диаметре колеса 380 мм. Думаете, на больших оборотах вилка всё равно может разойтись и могут появиться гироскопические эффекты? Даже несмотря на вышеприведенные массово-инерционные оценки и расположение опор?   да я влияние престресс (вращение) особо не увидел... Думал обычным модальником прогнать, Ланцошом (он пошустрее).   Ещё мои раздумья направлены в сторону присоединённой массы воды, что по идее должно занижать частоты. Хотя для такого массивного вала как у меня даже на это дело можно забить, наверно...
    • Handrusik
      Maxx2000 - благодарю Павлуха - это не фриланс Утомлённый солнцем - приятно, что меня помнят
    • Борман
      Я так понимаю, что обороты не особо большие. ДК - это чисто высокооборотистая тема.   Просто мысли вслух... Если вилка будет сильно расходится, то всегда будет точка пересечения любого луча с кривой BW. Причем точка будет на меньших оборотах по сравнению с обычным престресс-модальником. Какие дальше действия ? С чем тут нужно дополнительно бороться по сравнению с тем, с чем нужно было бы бороться по результатам обычного престресс-модальника Если вилка не сильно расходится (от кривой обычного престресс-мобальника), то смысла стоить строгую ДК большого нет.    
    • boomeeeer
      На сименсе параметрами настраивается многое, что связано с менеджером иснструмента. Вызов возможен как по номерам, так и по именам инструментов. Через равно вроде как по имени вызывается (Т="имя"), а по номеру можно было, например, Т1 M6, а первый корректор подтянулся бы автоматически. И не всегда М6 на смену. Производитель мог нагородить чего угодно. Параметры надо смотреть
×
×
  • Создать...