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

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


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

Кто подскажет. Существует ли какой небудь плагин или макрос к солиду для выпуска извещений по ГОСТу?

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


Выкладываю бета версию обновленного макроса RecordDimM.

Из нового:

- теперь можно не указывать допуск резьбы.

- можно ставить *, а также ** и даже *** к размеру.

- теперь макрос можно "пришпилить" и редактировать разные размеры не закрывая его.

- редактирование размеров "интерактивное". Т.е щелкаете в окне солида по размеру и он сразу попадает в окно макроса.

Выкладываю бету, потому что я немного замучился с этими переделками. Коментарии я писать тогда поленился да и исходный код не мой, а Rich, поэтому на вспомининие и отлавливание глюков ушло много времени. Потом не доделана защита от запуска вне чертежа. Стандартную пришлось переделать, т.к. обработка событий потребовала добавления нового класса. Я с этим не вполне разобрался, т.к фича для меня совершенно новая (я ведь все-таки не програмер) а единственный пример в справке не очень удачный. Поэтому, прошу, кому не лень потестить в разных комбинациях.

Но вообще, возможность отлавливать макросом события происходящие в самом солиде вещь интересная. Я раньше о ней как-то не думал. Открывает большие возможности. Можно писать макросы, запускаемые с самим солидом через ярлык, которые будут висеть в фоне постоянно и следить за определенными действиями юзера. Таким образом, например, можно контролировать полноту заполнения необходимых атрибутов чертежа и пр.

RD4beta.rar

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

To Leon

Не критично, конечно, но лучше заменить swApp на swApp1 в событие Click на кнопке About, а то вылетать будет при ее нажатии.

Private Sub CmdAbout_Click()

swApp.SendMsgToUser ("Made by Leon, 2007" & Chr$(10) & "Идея и исходный код - Rich")

End Sub
и здесь, это уже выполнение кода

If OptPaz.Value Then

	If ColEl.Value < 2 Then

		swApp.SendMsgToUser "Значение количества для пазов должно быть 2 или более"

		ColEl.Value = 2

...........................................

.........................................
If Massiv.Value Then

	If ColEl.Value < 3 Or ColEl.Value = "" Then

		swApp.SendMsgToUser "Значение количества для массива должно быть 3 или более"

		ColEl.Value = 3

.........................................

.........................................
P.S. Я обычно для отлова таких опечаток, в каждом модуле прописывал Option Explicit.
Ссылка на сообщение
Поделиться на других сайтах

Не критично, конечно, но лучше заменить swApp на swApp1

<{POST_SNAPBACK}>

Спасибо, самое важное, кнопку About я и пропустил )))

Вообще я не очень понял почему декларирование swApp и ModelDoc2 в Классе не распространяется на весь макрос? Мне пришлось для формы прописывать это еще раз и я забыл изменить swApp на swApp1. Надо, наверно, все таки книжку по VB почитать. Однако VB и VBA нодно и тоже. Вот, например, хотел переключатель Fix сделать большим и в виде залипающей кнопки. В VB это без проблем, а в макросе не получилось.

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

И кстати простое исправление swApp на swApp1 не помогает, если макрос запущен в режиме когда не один размер не выбран. Ладно, буду думать...

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

- теперь макрос можно "пришпилить" и редактировать разные размеры не закрывая его.

<{POST_SNAPBACK}>

вот за это спасибо! )))
Ссылка на сообщение
Поделиться на других сайтах

Вообще я не очень понял почему декларирование swApp и ModelDoc2 в Классе не распространяется на весь макрос?

По моему, переменные, объявленные в классе, принадлежат только классу. Глобальной видимости их нет. Хотя я в VB классы почти не применял (не было особой необходимости).

Но вообще, возможность отлавливать макросом события происходящие в самом солиде вещь интересная.

Вообще-то, даже необходимая стала в последнее время.
Ссылка на сообщение
Поделиться на других сайтах

Что-то не получилось запустить макрос, выдает Run-time error '13'

Type mismath

<{POST_SNAPBACK}>

Странно, запускаться то он должен. Может библиотеки проверить? Пока довести макрос до полностью рабочего состояния времени нет и не знаю когда появится.
Ссылка на сообщение
Поделиться на других сайтах

Sub main()

MyClass.MonitorSolidWorks - здесь возникает ошибка

End Sub

<{POST_SNAPBACK}>

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

Так при нем же родимом и запускаю!

А для чего ты ввел

Sub main()

MyClass.MonitorSolidWorks

End Sub

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

А для чего ты ввел

Sub main()

MyClass.MonitorSolidWorks

End Sub

<{POST_SNAPBACK}>

Так это и есть основная фича, реализация которой вызвала проблемы! Чтобы отслеживать макросом события, происходящие в солиде, необходимо добавить новый класс. Если есть вопросы давай лучше в PM, чтобы форум не засорять. Могу номер аськи дать.
Ссылка на сообщение
Поделиться на других сайтах

Привет всем, .. помогите, ........

.. замучился проставлять диаметры :blink: , ... может найдуться у вас макросы под все эти кнопочки

.. или подскажите как эффективнее это все делать

.. спасибо :bleh:

и это вот ... забыл ... (((

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

.. замучился проставлять диаметры , ... может найдуться у вас макросы под все эти кнопочки

.. или подскажите как эффективнее это все делать

<{POST_SNAPBACK}>

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

Пишите вопросы грамотно...На не грамотный вопрос, даже с картинками очень сложно ответить...

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

уважаемый Кельни, .. как это прастите я смогу настроить эту опцию если нет не одного размера в темплейте (коряво конечно - но смысл вы уловили))) ),

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

.. обьясните тогда что и как я должен сохранить, ...

.. или так - сделать примитивный чертеж в темплах, поставить мне там все как надо, .. удалить чертеж, .. и все это сохраниться ???

спасибо

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

.. обьясните тогда что и как я должен сохранить, ...

.. или так - сделать примитивный чертеж в темплах, поставить мне там все как надо, .. удалить чертеж, .. и все это сохраниться ???

<{POST_SNAPBACK}>

post-6363-1177573186_thumb.png

Окошко из SW2007, в предыдущих тоже всё настраивалось без проблем...

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

:doh::doh::doh:

.. спасибо кельни, ... :wallbash:

...

... а как быть с оттененным указателем радиуса ????

..

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

... а как быть с оттененным указателем радиуса ????

<{POST_SNAPBACK}>

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • SAPRonOff
      https://dzen.ru/b/ZjnRssPLbUcXVOUZ
    • davidovka
      Creo 9, VS 2019 (v142). Если использовать стандарт языка С++14, все собирается работает. При переключении на C++17 - ошибки (см. скрин - тестовое приложение из папки Creo) Хотел в проекте использовать <filesystem>
    • maxx2000
    • ДОБРЯК
      Нулевых частот может быть любое количество. Вот эта матрица не будет вырождена.    
    • Orchestra2603
      Речь идет о собственных векторах, связанных с нулевым СЗ. Вы же понимаете.
    • ДОБРЯК
      Для сложных систем их может быть и 100 и 200 и 1000...
    • maxx2000
      @Artas28так надо рецепт в массы нести, а то Ванёк ничему не научится
    • Orchestra2603
      Выкидываем не в смыле, что мы ее вырезаем.. Простите мне эту вольность)) Просто там две одинаковые строки. Достаточно рассмотреть только одну. Нет смысла хранить вторую строку в матрице, поскольку она ничего не привносит. Вы можете совершенно формально взять полученный i-й собственный вектор, умножить на матрицу K-lambda_i*M и получиь нулевой вектор.   На самом деле.. Мне прям пришлось прям подумать над аналогией с включением закрепления в статике. И это было полезно и интересно. Так что вам спасибо за "подгон", что называется )) Но все-таки разница есть ...   Вот у вас в статике:   И здесь действительно получается, что если мы зафиксируем, например, положив a=0, то это будет эквивалентно "выкидыванию" 1-го стобца и 2-й строки, и решению уже такой модифицированной невырожденной системы *в данном случае вообще тривиальной). При этом f2 просто станет узловой реакцией и определится как -f1 автоматически: К слову, можно положить любой a, не только нулевой. Результат будет такой же для сил, но прогибы, ясное дело, поменяются.   Но это отличается от нашей задачи на собственные значения. У нас нет внешних сил {f}.  А знaчит и упругие силы [K]{x} в системе должны быть равны нулю. И для нулевой собственной частоты мы по сути ищем такой набор перемещений, при которых в системе отсутствуют упругие силы.  И таких наборов перемещений бесконечно много. Вообще говоря, для трехмерных более сложных систем оказывается, что существует до 6-ти базисных векторов (понятно, что связанных с движениями как твердого целого), и любая линейная комбинация из этих векторов будет решением такой задачи. Но нам не нужно само решение! Нам нужен как раз сам базис пространства решений! Причем, сами вектора в этом базисе нас интересуют с точностью до множителя, ь.е. таких базисов можно напридумывать бесконечно много. Но нам нужен толкьо какой-то один базис, и всего-то. В этой простейшей задачке - это просто один вектор  {1, 1}. Можно взять {2,2} или {e,e} - не имеет значения, нас любой из них строит. И нам этого достаточно.    Обратите внимание, что этот вектор нельзя получить из задачи статики, где {f} ≠ {0}, положив какое-то значение для a, т.е. внедрив какое-то "закрепление" в вашей интерпретации.  Пожтому я убежден, что это другая задача, т дело тут не в закреплениях.   Не понимаю, про какую вы матрицу
    • Viktor2004
      Туда вроде наоборот заносится значение какое-то, но не считывается Смотрю чужие программы, там вроде только 8549 используют. При чем у них в программах циклы поболее моих, которыми я круги чертил O4198 ; #500=#8549 ; IF[ #8549 EQ 0 ] THEN ; #10409=0 ; ENDIF ; IF[ #8549 EQ 134 && #10409 EQ 0 && #10422 NE 0 ] THEN ; #10409=1 ; #10422=FIX[#10422 / 10] ; #10427=1 ; ENDIF ; IF[ #8549 EQ 48 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 0 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 49 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 1 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 50 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 2 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 51 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 3 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 52 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 4 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 53 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 5 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 54 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 6 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 55 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 7 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 56 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 8 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 57 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 9 ; #10427=1 ; ENDIF ; IF[ #10422 GT 9999 ] THEN ; #10422=FIX[#10422 / 10] ; ENDIF ; IF[ #500 EQ 249 && #8500 EQ 4170 ] THEN ; #8500=4601 ; M99 ; ENDIF ; IF[ #500 EQ 240 ] THEN ; IF[ #8500 EQ 4174 || #8500 EQ 4173 || #8500 EQ 4177 ] THEN ; #8500=4170 ; M99 ; ENDIF ; IF[ #8500 EQ 4178 ] THEN ; #8500=4170 ; M99 ; ENDIF ; ENDIF ; IF[ #500 EQ 248 && #8500 EQ 4170 && D34.0 NE 0 ] THEN ; #8500=4174 ; M99 ; ENDIF ; IF[ #500 EQ 247 && #8500 EQ 4170 && D30.4 EQ 1 && D29.6 EQ 0 ] THEN ; #8500=4175 ; M99 ; ENDIF ; IF[ #500 EQ 246 && #8500 EQ 4170 && D35.0 EQ 1 && D35.4 EQ 1 ] THEN ; #8500=4178 ; M99 ; ENDIF ; IF[ #8549 EQ 152 && #10409 EQ 0 && #10422 EQ 5656 ] THEN ; #8500=4177 ; M99 ; ENDIF ; M99 ;  
    • nicomed
      Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры... Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза. Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml. По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".   Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения. EdgeTrim_v3.3.zip
×
×
  • Создать...