Выделить цепочку элементов

Автор feniks, 14.02.14, 11:32:31

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

feniks

Предлагаю дополнить Компас 3D новой командой "Выделить цепочку элементов".

Команда может упростить работу с насыщенными чертежами, содержащими контуры со сложной геометрией.

Принцип работы следующий, при вызове команды курсор наводиться на цепочку, состоящую из последовательных геометрических примитивов которые, по сути, являются контуром, но не объединены в него, выбранная цепочка подсвечивается красным, после щелчка ЛКМ цепочка становиться выделенной (смотри вложения).
P.S.
Прошу прощения если предложение покажется не актуальным либо данный функционал уже доступен в Компас 3D.

VIO

Есть две возможности такого выделения.
Первый создание макроса, но он не работает в 3D.
Второе создать группу с её названием (доступна с 10-ки) для работы в 3D не мешает.
Такой выход Вас устроит?
:)

Starik

Идея хорошая, мне нравится. Надо обязательно распространить это на эскизы в 3D. И ещё, с помощью этой функции хорошо было бы искать разрывы и пересечения в эскизах. А то использование для этой цели команды "Создать контур" требует много лишних телодвижений.
+1

feniks

Цитата: VIO от 14.02.14, 11:58:22
Есть две возможности такого выделения.
Первый создание макроса, но он не работает в 3D.
Второе создать группу с её названием (доступна с 10-ки) для работы в 3D не мешает.
Такой выход Вас устроит?
:)

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

feniks

Цитата: Starik от 14.02.14, 12:11:32
И ещё, с помощью этой функции хорошо было бы искать разрывы и пересечения в эскизах. А то использование для этой цели команды "Создать контур" требует много лишних телодвижений.
+1

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

Resfeder

См. Пример 3. Т.е. ... Всё понял! Толковое предложение! +1

obesov

 В примере 2 подсвечена некая последовательность геометрических объектов, очень похожая на замкнутый контур. Если применить терминологию, предлагаемую топикстартером - Замкнутая цепочка, так?
В примере 3 подсвечена уже некая последовательность геометрических объектов, очень похожая на незамкнутый контур. Т.е. Незамкнутая цепочка.  И вот тут возникает вопрос.  :um:  Как (по какому принципу) система определит, где эта незамкнутая цепочка должна начаться и где закончиться?   Опять же в этом случае нужно обеспечить именно разрыв! :o!:
Лично мне на ум ничего путного не приходит.  :(((

feniks

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

Цитата: obesov от 14.02.14, 12:32:43
И вот тут возникает вопрос.  :um:  Как (по какому принципу) система определит, где эта незамкнутая цепочка должна начаться и где закончиться?   Опять же в этом случае нужно обеспечить именно разрыв! :o!:
Лично мне на ум ничего путного не приходит.  :(((

По тому же принципу по которому контур определяется командами "эквидистанта по стрелке" и "собрать контур".

Resfeder

В примере 2 выделена цепочка объектов выполненных основной линией. Получился замкнутый контур.
В примере 3 выделена цепочка объектов выполненных основной линией от примыкания к отрезку до примыкания к отрезку
Цитироватьу которых есть совпадения крайних точек
. Что то вроде этого. Я так думаю! :um:

feniks

Цитата: Resfeder от 14.02.14, 12:44:17
В примере 2 выделена цепочка объектов выполненных основной линией. Получился замкнутый контур.
В примере 3 выделена цепочка объектов выполненных основной линией от примыкания к отрезку до примыкания к отрезку. Что то вроде этого. Я так думаю! :um:


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

obesov

14.02.14, 13:47:44 #10 Последнее редактирование: 14.02.14, 14:04:44 от obesov
 Предположим, появилась такая команда "Собрать цепочку".
Первое, что должно в ней присутствовать, это выбор действий для замкнутого и незамкнутого набора геометрических элементов.
Начнём с Незамкнутой цепочки:
1. Нужно будет указать начальный элемент и, соответственно, конечный элемент этой цепочки.
2. Желательно, также задавать направление обхода этой цепочки.
3. Если пользователь ошибся - предусмотреть повторное указание (выбор) элементов и направление обхода.
4.  Результатом выполненной операции (команды): должен ли появиться некий объект ""цепочка или всем знакомый Макроэлемент? Или нужно ограничиться просто выделением элементов цепочки?
Для Замкнутой цепочки, по всей видимости 1-й и 2-й пункты (см. выше), необязательны.
Не такая уж и простая команда получается, а? И очень что-то уже существующее напоминает.  88))
Что касается разрывов, пересечений, наложений и пр. Ну нашла их (подсветила) предлагаемая команда, а "уворачиваться" от них как прикажете? Ручками? Т.е. выйти из команды, исправить огрехи, снова скомандовать, -  Собери цепочку! ...  :shu:
Может есть другие варианты, коллеги?

Pav

Практическое применение какое ?

Если выделять нужно часто, то удобнее собрать макро элемент или контур.
Если выделять нужно редко, то быстрее выделить вручную, чем вспоминать, что есть такая функция и искать где на нее кнопка.

Я пока против :)
P.S. По поводу реализации, все ясно.

tramp_m

Цитата: feniks от 14.02.14, 11:32:31
Предлагаю дополнить Компас 3D новой командой "Выделить цепочку элементов".

Команда может упростить работу с насыщенными чертежами, содержащими контуры со сложной геометрией.

Принцип работы следующий, при вызове команды курсор наводиться на цепочку, состоящую из последовательных геометрических примитивов которые, по сути, являются контуром, но не объединены в него, выбранная цепочка подсвечивается красным, после щелчка ЛКМ цепочка становиться выделенной (смотри вложения).
P.S.
Прошу прощения если предложение покажется не актуальным либо данный функционал уже доступен в Компас 3D.



А, если разложить по слоям.
И по слоям перебрасывать в 3D...
Или чего то не понял...

Resfeder

В Компасе есть команда "собрать контур". Это и есть по сути предложение ув. feniks. Вот ещё "научить" отличать стиль линии при обходе!

feniks

Цитата: obesov от 14.02.14, 13:47:44
1. Нужно будет указать начальный элемент и, соответственно, конечный элемент этой цепочки.

1 Вовсе нет, Вы же не указываете начальный и конечный элементы при использовании команды "собрать контур", при указании элемента образующего контур Компас должен проверить наличие совпадений конечных точек других элементов с указанным если совпадения есть то проверить совпадения на концах этих элементов и так далее, когда совпадения прекратятся контур будет определен.
Цитата: obesov от 14.02.14, 13:47:44
2. Желательно, также задавать направление обхода этой цепочки.

2. Это не обязательно см п. 1.
Цитата: obesov от 14.02.14, 13:47:44
3. Если пользователь ошибся - предусмотреть повторное указание (выбор) элементов и направление обхода.

3. Согласен стандартный элемент интерфейса "указать заново" не помешает.
Цитата: obesov от 14.02.14, 13:47:44
4.  Результатом выполненной операции (команды): должен ли появиться некий объект ""цепочка или всем знакомый Макроэлемент? Или нужно ограничиться просто выделением элементов цепочки?

4. Мое предложение заключается в быстром выделении последовательно соединенных геометрических примитивов образующих цепочку(контур), элементы будут выделены и пользователь на свой выбор сможет создать макроэлемент либо изменить стиль, либо удалить, скопировать и т.д.
Команда на самом деле простая главное не перегружать ее не первостепенно важными элементами.
Цитата: obesov от 14.02.14, 13:47:44
Что касается разрывов, пересечений, наложений и пр. Ну нашла их (подсветила) предлагаемая команда, а "уворачиваться" от них как прикажете? Ручками? Т.е. выйти из команды, исправить огрехи, снова скомандовать, -  Собери цепочку! ...  :shu:

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

feniks

Цитата: Pav от 14.02.14, 13:52:23
Практическое применение какое ?

Если выделять нужно часто, то удобнее собрать макро элемент или контур.
Если выделять нужно редко, то быстрее выделить вручную, чем вспоминать, что есть такая функция и искать где на нее кнопка.

Макро элемент в принципе удобен, но чтобы его собрать нужно выделить элементы в ручную, а когда контур сложный, а чертеж насыщен сделать это рамкой не получиться, да и у макроэлемента есть ограничения, например через компактную панель нельзя поменять стиль линии (не прибегая к ухищрениям).
Контур полученный командой "собрать контур " имеет ограничения при редактировании, например нельзя применить команду "скругление" или "фаска", а каждый рас разрушать контур, редактировать и собирать заново как то:
Цитата: Starik от 14.02.14, 12:11:32
требует много лишних телодвижений.
+1


Цитата: Pav от 14.02.14, 13:52:23
Практическое применение какое ?

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

GenTAPo

Да просто новую команду в панель выделений "Выделить цепочку". И неважно, в какой элемент цепочки ткнуть, выделить в обе стороны до ближайшего разрыва. Здесь существенное замечание obesovа, а если этот контур уходит и не туда, куда надо. Тогда вариант этой же команды с указанием начала и конца цепочки. Если внутри есть незамеченный разрыв или перехлёст линий, сразу выделить его стандартной красной окружностью. Заодно будет и проверка замкнутости.

feniks

Цитата: GenTAPo от 14.05.14, 09:34:04
Да просто новую команду в панель выделений "Выделить цепочку". И неважно, в какой элемент цепочки ткнуть, выделить в обе стороны до ближайшего разрыва. Здесь существенное замечание obesovа, а если этот контур уходит и не туда, куда надо. Тогда вариант этой же команды с указанием начала и конца цепочки. Если внутри есть незамеченный разрыв или перехлёст линий, сразу выделить его стандартной красной окружностью. Заодно будет и проверка замкнутости.

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