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

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


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

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

Shift+TAB

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

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


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

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

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

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

Из справки SolidWorks

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

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

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

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

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

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

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

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

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

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

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

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

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

Работает.

 

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

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

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

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

 

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

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

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

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

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

 

 

UnlockSolidworks.rar

Изменено пользователем 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..

 

 

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

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

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

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

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

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

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

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

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

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

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

 

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

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

        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

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

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

SW2020 работает.

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

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

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

 

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

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

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

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

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

EdgeTrim_v2.zip

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

EdgeTrim_v3.3.zip

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...