Jump to content

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


Recommended Posts

Srgwell
28.04.2024 в 23:16, Solidman сказал:

Shift+TAB

Ctrl + Shift+TAB вроде. Это конечно. Но как то при отпускании некоторые детали или сборки вблизи уходят в скрытость. Нужно поймать момент. Может при отпускании нужно последнюю клавишу отпускать Shift либо Ctrl (еще не определил). То есть фактически срабатывает TAB опять. Может клавиатура плохо срабатывает. Приходится заново включать Ctrl + Shift+TAB

Edited by Srgwell
Link to post
Share on other sites


DuS

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

Забодал после разных команд блокируется и ни в какую!!!! Пишет что "текущую операцию невозможно прекратить..."

Link to post
Share on other sites
Solidman
54 минуты назад, Srgwell сказал:

Ctrl + Shift+TAB вроде. Это конечно. Но как то при отпускании некоторые детали или сборки вблизи уходят в скрытость. Нужно поймать момент. Может при отпускании нужно последнюю клавишу отпускать Shift либо Ctrl (еще не определил). То есть фактически срабатывает TAB опять. Может клавиатура плохо срабатывает. Приходится заново включать Ctrl + Shift+TAB

Из справки SolidWorks

Вы можете переключаться между режимами отображения твердых тел и тел поверхности, переместив указатель на тело в графической области и нажав Tab для скрытия или Shift + Tab для отображения. 

Кроме того, можно отобразить одно или несколько скрытых тел. Для этого переместите указатель в графическую область, затем нажмите и удерживайте сочетание клавиш Ctrl + Shift + Tab. Скрытые тела временно отображаются как прозрачные. Чтобы вернуть их в режим отображения, нажмите на них.

  • Нравится 2
Link to post
Share on other sites
Snake 60
2 часа назад, DuS сказал:

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

https://kelnyproject.ucoz.ru/load/7-1-0-14

не уверен, что будет работать на новых версиях SW

  • Чемпион 1
Link to post
Share on other sites
DuS
2 часа назад, Snake 60 сказал:

https://kelnyproject.ucoz.ru/load/7-1-0-14

не уверен, что будет работать на новых версиях SW

спасибо! буду ждать когда опять заблокируется, тогда и проверю!

Link to post
Share on other sites
Kelny
20 часов назад, Snake 60 сказал:

https://kelnyproject.ucoz.ru/load/7-1-0-14

не уверен, что будет работать на новых версиях SW

Работает.

 

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

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

Выше ссылку дали.

Странно, что вы его тут же сами не написали, там помнится простенький код - там штатный функционал API блокировки всего при запуске встроенных или своих инструментов для работы с программой.

 

  • Нравится 1
Link to post
Share on other sites
Snake 60

@Kelny  А можно ссылку на API этого кода? Или по какому ключевому слову искать?

Edited by Snake 60
Link to post
Share on other sites
Kelny
19 часов назад, DuS сказал:

когда опять заблокируется, тогда и проверю!

Легко заблокировать. Можно открыть сборку или чертёж, а потом открыть деталь от туда и редактировать любой эскиз, вернувшись в сборку или чертёж, программа собщит что одна из деталей в состоянии отката и не даст ни чего делать. Программка UnlockSolidworks позволяет разблокировать программу, померить или что-то изменить и потом снова вернуться к редактированию эскиза.

 

 

UnlockSolidworks.rar

Edited by Kelny
  • Нравится 2
Link to post
Share on other sites
Kelny
59 минут назад, Snake 60 сказал:

А можно ссылку на API этого кода? Или по какому ключевому слову искать?

Если не путаю, то вот (уж не припомню почему использовал цикл), а для блокировки ModelDoc2.Lock:

Цитата

Private Sub Form_Unload(Cancel As Integer)
While ModelDoc2.GetBlockingState
ModelDoc2.UnLock
Wend
End
End Sub

 

https://help.solidworks.com/2010/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~getblockingstate.html?_gl=1*181ceau*_up*MQ..*_ga*MTIwODAyMDIyNy4xNzE0NzE5ODQ1*_ga_XQJPQWHZHH*MTcxNDcxOTg0NS4xLjAuMTcxNDcxOTg0NS4wLjAuMA..

 

 

Edited by Kelny
  • Нравится 2
Link to post
Share on other sites
DuS
52 минуты назад, Kelny сказал:

Выше ссылку дали.

Странно, что вы его тут же сами не написали, там помнится простенький код - там штатный функционал API блокировки всего при запуске встроенных или своих инструментов для работы с программой.

Вы меня с кем то путаете, я совсем не программист. Вообще ноль в этом деле.

Link to post
Share on other sites
Kelny
9 минут назад, DuS сказал:

Вы меня с кем то путаете, я совсем не программист. Вообще ноль в этом деле.

Тоже не сильно программист, но это не мешает облегчать себе жизнь некоторыми макросами и програмками.

  • Нравится 4
Link to post
Share on other sites
nicomed

В продолжение работы с кромками приложение "костылящее" разрыв линии чертежа.

С толщинами генерируемых линий не возился там не все понятно.

Программа скрывает видимую кромку детали и на ее месте рисует две другие с разрывом. Можно разрывать и  эскизные линии.

 

Работа приложения: при запущенной программе выберите кромку детали или эскизную линию.

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

        public void EdgeProcessind(Edge edge)
        {
            ModelDoc2 modelDoc = swApp.ActiveDoc;
            ModelDocExtension modelDocExtension = modelDoc.Extension;
            DrawingDoc drawing = modelDoc as DrawingDoc;

            SelectionMgr selectionMgr = modelDoc.SelectionManager;
            SelectData selectData = selectionMgr.CreateSelectData();

            double[] selectionPoint = selectionMgr.GetSelectionPoint2(1, -1);

            View selectedView = selectionMgr.GetSelectedObjectsDrawingView2(1, -1);
            MathTransform modelTransform = selectedView.ModelToViewTransform;
            double[] viewPosition = selectedView.Position;

            drawing.ActivateView(selectedView.Name);

            modelDocExtension.RunCommand(57, "");
            selectionMgr.AddSelectionListObject(edge, selectData);
            drawing.HideEdge();

            bool selectionStatus = modelDocExtension.SelectByID2("", "SKETCHSEGMENT", selectionPoint[0], selectionPoint[1], selectionPoint[2], false, -1, null, 0);

            if (selectionStatus)
            {
                selectData = selectionMgr.CreateSelectData();
                SketchSegment segment = selectionMgr.GetSelectedObject6(1, -1);

                SketchManager sketchManager = modelDoc.SketchManager;
                SketchSegment tmpSegment = sketchManager.CreateCircleByRadius(
                    (selectionPoint[0] - viewPosition[0]) / modelTransform.ArrayData[12],
                    (selectionPoint[1] - viewPosition[1]) / modelTransform.ArrayData[12],
                    selectionPoint[2],
                    0.003);

                selectionMgr.AddSelectionListObject(segment, selectData);

                bool status = sketchManager.SketchTrim(
                    (int)swSketchTrimChoice_e.swSketchTrimClosest,
                    (selectionPoint[0] - viewPosition[0]) / modelTransform.ArrayData[12],
                    (selectionPoint[1] - viewPosition[1]) / modelTransform.ArrayData[12],
                    selectionPoint[2]);

                modelDoc.ClearSelection2(true);
                selectionMgr.AddSelectionListObject(tmpSegment, selectData);
                modelDocExtension.DeleteSelection2(2);
            }
           modelDoc.ClearSelection2(true);
        }

 

Весь код в одном методе, без проверок. Просто сам принцип. (В данном коде нет обработки линий эскиза - там я, от лени, просто продублировал данный метод с передачей в параметре SketchSegment и одним булевым полем для защиты от зацикливания).

 

TestEdgeTrim.zip

  • Нравится 3
Link to post
Share on other sites
malvi.dp
5 часов назад, nicomed сказал:

Программа скрывает видимую кромку детали и на ее месте рисует две другие с разрывом. Можно разрывать и  эскизные линии.

SW2020 работает.

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

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

Снимок экрана 2024-05-06 210237.png

 

Link to post
Share on other sites
nicomed
1 час назад, malvi.dp сказал:

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

Окно изменил ( первое это у меня просто тестовое приложение для всего, так что было "как есть").

Орфографию поправил.

Толщина и тип - там надо подумать, как лучше выбирать рассеченные сегменты эскиза. Есть большой вопрос как прочитать стиль и толщину выбранной линии ( в частности кромки).  Так что пока нет.

EdgeTrim_v2.zip

 

З.Ы. Исходники

Edited by nicomed
  • Нравится 1
  • Чемпион 2
Link to post
Share on other sites
malvi.dp

@nicomed, по Edge Trime_v.2 с окошком и орфографией все хорошо. Выявил, что силуэтные кромки тел вращения не обрабатываются. В sw 2016 при выборе более трёх-пяти кромок подряд солид крошится и вылетает. В sw 2020 такого не заметил.

После того как приложение отработало ничего не возможно сделать с новыми разорванными линиями эскиза (ни передвинуть место разрыва ни поменять толщину или слой). Нужно активировать или другой вид или поле чертежа, затем снова активировать вид на котором наша разорванная кромка и только тогда появляется возможность двигать место разрыва и изменять вид, толщину эскизных линий.

Link to post
Share on other sites
nicomed
1 час назад, malvi.dp сказал:

В sw 2016 при выборе более трёх-пяти кромок подряд солид крошится и вылетает. В sw 2020 такого не заметил.

По этому поводу ничего не могу сказать. У меня 2021 везде, и, других версий пока и не предвидится. И, вроде, работает без вылетов.

 

1 час назад, malvi.dp сказал:

После того как приложение отработало ничего не возможно сделать с новыми разорванными линиями эскиза (ни передвинуть место разрыва ни поменять толщину или слой). Нужно активировать или другой вид или поле чертежа, затем снова активировать вид на котором наша разорванная кромка и только тогда появляется возможность двигать место разрыва и изменять вид, толщину эскизных линий.

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

  • Нравится 1
Link to post
Share on other sites
Snake 60
14 минут назад, nicomed сказал:

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

Redraw не помогает?

Link to post
Share on other sites
nicomed
5 минут назад, Snake 60 сказал:

Redraw не помогает?

Не-а. Не GraphicsRedraw2, не ForceRebuild3, не UpdateViewDisplayGeometry,  не активации других видов через АПИ.

Пока самый жизнеспособный вариант выглядит как активация чертежного листа. Тогда надо меньше делать дополнительных "мышиных телодвижений". Активируешь двойным кликом тот вид на котором надо подвигать сегменты эскиза (рассечения линии), и , они становятся доступны к перемещению.

Link to post
Share on other sites
nicomed

Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры...

Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза.

Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml.

По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".

 

Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения.

EdgeTrim_v3.3.zip

  • Нравится 1
  • Чемпион 2
Link to post
Share on other sites
Valedol

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • Tad
      Очень понятно)) Тип, маркировка датчика?   Это надо смотреть схему и актуальное состояние машины. Что смущает на 7 входе J10? Что он выполняет по электросхеме?
    • shiloinass
      Не знаю как загрузить фото https://disk.yandex.ru/i/YkGNHxktblDoiQ
    • shiloinass
      Датчик который стоит на раме и срабатывает при подъеме балки вверх, как понимаю аварийный.  Параметры а input. 8 битный показатель входов на j10
    • Jesse
      Берите худший вариант по перепаду. Проверьте самое главное коэфф температруного расширения: термические напряжения возникают из-за стесненных температурных перемещений/деформаций, а последние зависят от коэфф темп расширения. Его можно, к слову, сделать зависимым от температуры программе.  Можно ещё вручную оценку сделать по простой формуле dL= alfa*L*dT, посмотреть на сколько сожмётся обечайка, "сжать" на величину этих деформаций кольцо обечайкм и рассчитать напряжения в ней
    • Tad
      Что это за датчик? По каким именно?
    • shiloinass
      Спасибо за участие в проблеме. Я не только сравнил, но и снёс все и по новой прописал машинные параметры. Но есть расхождения по входящим параметрам. Особое внимание привлекает вход с датчика ВМТ балки. Он как будто инвертировался. То есть раньше при опущенной балке показывало ноль, а теперь когда балка внизу показывает единицу,  когда балка уехала вверх, то показывает ноль. Как это исправить - информации не нашел
    • Viktor2004
      В качестве картридера я купил на Авито старый ноутбук с разьемом PCMCIA за 2.5 т.руб Очень неудобно. Особенно восстанавливать SRAM. Надо помнить под каким он номером, снова подключать к компу, переименовывать в 001 и только тогда загружать. Запутаться очень просто. Раз уж все равно подключать к компу, проще на компе и хранить
    • Killerchik
      И картридеры по 600$ :(
    • uropb
      Тем, что в приложении 14 нет доп. исполнения. А значит нумерация начинается с исполнения 00
    • Bot
      Выпущены из редакции и поступили в свободную продажу новые учебные пособия по автоматизации проектирования КД, а так же технологий и программ для станков с ЧПУ. Смотреть полностью
×
×
  • Create New...