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

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


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

6 минут назад, alek77 сказал:

закоментите эту строку

ок, попробую

Отключил ту строку. 

Даже не знаю что написать. Всё работает великолепно! Добавить нечего. 

5b6aa13a11815_.JPG.c9bdfb0b09d94e15f681300654cf9da7.JPG

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


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

ок, попробую

Отключил ту строку. 

Даже не знаю что написать. Всё работает великолепно! Добавить нечего. 

5b6aa13a11815_.JPG.c9bdfb0b09d94e15f681300654cf9da7.JPG

добавить всегда есть что! Спасибо за помощь! Напишите, если что-то всплывет

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

добавить всегда есть что! Спасибо за помощь! Напишите, если что-то всплывет

Обязательно напишу! Спасибо за макрос.

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

Напишите, если что-то всплывет

Родилась такая мысль: если после того как отсортировалось дерево повторно запустить макрос и снять все галочки, то дерево вернется к первоначальному виду. Так вот, для удобства можно сделать кнопку снимающую все галочки и назвать ее как нибудь типа "отменить сортировку".

Это мелочь конечно, но вдруг кому так будет удобнее.)

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

Родилась такая мысль: если после того как отсортировалось дерево повторно запустить макрос и снять все галочки, то дерево вернется к первоначальному виду. Так вот, для удобства можно сделать кнопку снимающую все галочки и назвать ее как нибудь типа "отменить сортировку".

Это мелочь конечно, но вдруг кому так будет удобнее.)

Да, так стало удобнее и возможности сортировки увеличились. Прошу потестить

 

Для более ранних версий SW (до sw2017) не забываем удалять или комментировать строку:

 

FeatureMgr.GroupComponentInstances = False

 

 

TreeSorter rev03.swp

TreeSorter.Bmp

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

FeatureMgr.GroupComponentInstances = False

Сделайте ещё грамотнее, типа:

bool startupVariable = FeatureMgr.GroupComponentInstances;

FeatureMgr.GroupComponentInstances = False

//// куча кода

FeatureMgr.GroupComponentInstances = startupVariable

 

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

Сделайте ещё грамотнее, типа:


bool startupVariable = FeatureMgr.GroupComponentInstances;

FeatureMgr.GroupComponentInstances = False

//// куча кода

FeatureMgr.GroupComponentInstances = startupVariable

 

Спасибо за подсказку,  обязательно попробую 

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

Streamdown, можно ли сделать так, что когда я в ранней версии SW получаю ошибку 438 об отсутствии комманды (пример: группировка деталей в дереве, которой нет в SW15)  - обойти такую ошибку и продолжить работу макроса? Грубо говоря, есть ли какой способ игнорировать определенные типы ошибок?

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

Определить текущую версию SW, и дальше  IF-ами жонглировать)))

Моей благодарности нет предела!

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

Ждем конечную версию?

Подождите немного, пробую варианты по сокращению времени работы макроса.

Сейчас пока можно пользоваться 03 версией.

SWCorp рекомендует для этого 5 вариантов, мне нужно время на проверки.

Кто нибудь применял в макросах DoEvents для сокращения времени работы? Стоит оно того и что это за зверь такой? А то пока еще совсем ничего не понятно

И отпуск у меня начинается, не смогу некоторое время проверять

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

для сокращения времени работы

:bomb:

Не трогайте этот DoEvents. Серьёзно! Вам понадобится огромная куча кода для грамотной отработки всего приложения.

Самый примитивнейший пример "выстрела себе в голову" (как говорят эти программисты :biggrin: ) это:

- Запустили окошко, запустили выполнение тяжёлого участка кода, вызвали DoEvents, случайно нажали кнопку ещё раз => получили StackOverflow и падение как макроса так и солида.

- Запустили окошко, запустили выполнение тяжёлого участка кода, вызвали DoEvents, случайно нажали "закрыть окно" => окно закрыто, НО КОД ВСЁ ЕЩЁ ВЫПОЛНЯЕТСЯ :smile:

 

Двух примеров пока достаточно? 

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

:bomb:

Не трогайте этот DoEvents. Серьёзно! Вам понадобится огромная куча кода для грамотной отработки всего приложения.

Самый примитивнейший пример "выстрела себе в голову" (как говорят эти программисты :biggrin: ) это:

- Запустили окошко, запустили выполнение тяжёлого участка кода, вызвали DoEvents, случайно нажали кнопку ещё раз => получили StackOverflow и падение как макроса так и солида.

- Запустили окошко, запустили выполнение тяжёлого участка кода, вызвали DoEvents, случайно нажали "закрыть окно" => окно закрыто, НО КОД ВСЁ ЕЩЁ ВЫПОЛНЯЕТСЯ :smile:

 

Двух примеров пока достаточно? 

вполне, спасибо

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

варианты по сокращению времени работы макроса

В некоторых (но не во всех) вариантах вам поможет такой код:

Sub PerformanceBoost(swModel As sldworks.ModelDoc2, _
                             Optional ByVal CommandInProgress As Boolean = False,
                             Optional ByVal EnableGraphicsUpdate As Boolean = True,
                             Optional ByVal EnableFeatureTree As Boolean = True
                             )
          

            Try
                SwApp.CommandInProgress = CommandInProgress
                SwApp.SetUserPreferenceToggle(swconst.swUserPreferenceToggle_e.swFeatureManagerDynamicHighlight, EnableFeatureTree)

                Dim swModelView As sldworks.ModelView = swModel.GetFirstModelView
                While Not swModelView Is Nothing
                    swModelView.EnableGraphicsUpdate = EnableGraphicsUpdate
                    swModelView.UpdateAllGraphicsLayers = EnableGraphicsUpdate
                    swModelView = swModelView.GetNext
                End While

                swModel.FeatureManager.EnableFeatureTree = EnableFeatureTree

                swModel.FeatureManager.EnableFeatureTreeWindow = EnableFeatureTree
                If EnableFeatureTree Then swModel.FeatureManager.UpdateFeatureTree()
                If EnableGraphicsUpdate Then swModel.GraphicsRedraw2()
            Catch ex As Exception

            End Try

End Sub

 

Фактически, отключение графики и визуализации процесса. Но не забудьте, если приложение падает или завершается некорректно - надо всё вернуть назад кодом. Иначе пользователю надо будет перезапускать SW.

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

В некоторых (но не во всех) вариантах вам поможет такой код:


Sub PerformanceBoost(swModel As sldworks.ModelDoc2, _
                             Optional ByVal CommandInProgress As Boolean = False,
                             Optional ByVal EnableGraphicsUpdate As Boolean = True,
                             Optional ByVal EnableFeatureTree As Boolean = True
                             )
          

            Try
                SwApp.CommandInProgress = CommandInProgress
                SwApp.SetUserPreferenceToggle(swconst.swUserPreferenceToggle_e.swFeatureManagerDynamicHighlight, EnableFeatureTree)

                Dim swModelView As sldworks.ModelView = swModel.GetFirstModelView
                While Not swModelView Is Nothing
                    swModelView.EnableGraphicsUpdate = EnableGraphicsUpdate
                    swModelView.UpdateAllGraphicsLayers = EnableGraphicsUpdate
                    swModelView = swModelView.GetNext
                End While

                swModel.FeatureManager.EnableFeatureTree = EnableFeatureTree

                swModel.FeatureManager.EnableFeatureTreeWindow = EnableFeatureTree
                If EnableFeatureTree Then swModel.FeatureManager.UpdateFeatureTree()
                If EnableGraphicsUpdate Then swModel.GraphicsRedraw2()
            Catch ex As Exception

            End Try

End Sub

 

Фактически, отключение графики и визуализации процесса. Но не забудьте, если приложение падает или завершается некорректно - надо всё вернуть назад кодом. Иначе пользователю надо будет перезапускать SW.

 

Только эти команды:

 

FeatureMgr.EnableFeatureTree = False

тут код
FeatureMgr.EnableFeatureTree = True

 

снизили время выполнения макроса в 20 раз, я просто выпал в осадок

 

 

 

 

 

 

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

Только эти команды:

Не забудьте ещё Rebuild полный сделать после ваших манипуляций с деревом. Это обновит графику и дерево, если вдур там всё осталось по старому после вкл/выкл команд.

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

Я иногда ругаюсь громко, когда телефон ежедневно обновляет какие-то приложения, бесит просто,

теперь вот сам уже до 4 версии докатился.

Простите великодушно, стараюсь все поправить и улучшить.

 

Чего коснулись последние изменения:

  • проверка версии солида, если 16 и выше - работа макроса с группировкой компонентов, если были сгруппированы - сгруппирует в конце работы, если не сгруппированы - так и оставит
  • коментить строки группировки компонентов вызывающие ошибку в версиях св15 и ниже теперь не нужно
  • ускорена работа макроса за счет отключения дерева конструирования и включения после работы макроса

 

Прошу потестить, буду рад любым предложениям и замечаниям

 

TreeSorter rev04.swp

TreeSorter.Bmp

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

Я иногда ругаюсь громко, когда телефон ежедневно обновляет какие-то приложения, бесит просто,

теперь вот сам уже до 4 версии докатился.

Простите великодушно, стараюсь все поправить и улучшить.

 

Чего коснулись последние изменения:

  • проверка версии солида, если 16 и выше - работа макроса с группировкой компонентов, если были сгруппированы - сгруппирует в конце работы, если не сгруппированы - так и оставит
  • коментить строки группировки компонентов вызывающие ошибку в версиях св15 и ниже теперь не нужно
  • ускорена работа макроса за счет отключения дерева конструирования и включения после работы макроса

 

Прошу потестить, буду рад любым предложениям и замечаниям

 

TreeSorter rev04.swp

TreeSorter.Bmp

Макрос стал работать так быстро, что я даже подумал что он не работает)))

Короче, все отлично работает, мне очень нравится! 

Небольшое пожелание, нельзя ли сделать чтобы окно появлялось там же куда его передвинули в предыдущее место?

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

Макрос стал работать так быстро, что я даже подумал что он не работает)))

Короче, все отлично работает, мне очень нравится! 

Небольшое пожелание, нельзя ли сделать чтобы окно появлялось там же куда его передвинули в предыдущее место?

не знаю как, там всего три положения для выбора стартовой позиции формы

прошу помощи зала

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...