Авторасстановка размеров. Реализация N2

Автор Pav, 13.05.13, 22:25:49

« назад - далее »

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

Pav

Ранее было озвучено предложение реализовать возможность автоматической расстановки размеров:
Цитата: JIK от 01.05.13, 01:17:45
1) расстояние между размерными линиями...вправо/вниз 10мм, влево/вверх 5мм. (и.т.п.)
2) ...линии, по возможности, не должны пересекать друг друга...(и.т.п.)
Я это предложение поддерживаю, но решил написать свой вариант реализации, итак поехали:

В первую очередь это требования к набору интервалов между размерами, геометрией и прочими обозначениями. Требования должны определяться в настройках для каждого чертежа, за первоначальные настройки можно взять ГОСТ 2.307 на который указал Goran.

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

Предлагаемая последовательность ввода размера (на примере линейного) следущая:
а. Указываем точку 1 (как мы это делаем обычно)
б. Указываем точку 2 (как мы это делаем обычно)
с. Указываем точку 3 (как мы это делаем обычно) или d по желанию
d. Указываем соседний объект или два соседних объекта (смотрим рисунок 1)
На рисунке 1 показан процесс указания соседнего объекта, в данном примере мы можем выбрать либо верхний отрезок (вариант 1), либо нижний размер (вариант2), при этом размер встает относительно соседнего объекта в соответствии с настройками для данного чертежа (читайте выше). В качестве соседнего объекта предполагается использовать почти любой объект, например - знак шероховатости, дуга окружности, грань модели для 3Д размеров и.т.п.

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

Теперь самое интересное... Как мы все знаем Компас имеет большие возможности по параметризации/ассоциативности чертежей и 3Д моделей. В развитии темы можно ввести параметрическую связь соседство, которая будет также иметь возможность автоматически накладываться на размеры во время построения, как и другие связи. При этом мы сможем получить (впервые) полностью параметрический размер в 2Д и в 3Д (размер с 0 степенями свободы).

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

P.S.1 "Авторасстановка размеров. Реализация N1" тут http://forum.ascon.ru/index.php/topic,24339.0/topicseen.html#quickreply
P.S.2 Свое предложение создал не из вредности, а потомучто мне кажется удобнее два варианта реализации одного предложение обсуждать в различных темах. Если считаете нужным объеденить, то я не против.
P.S.3 Если кто-то не плюсодин:), то прошу формулировать пост, чтобы было понятно речь о "несогласии" или есть вопрос и требуется уточнение, либо это дополнение к предложению ?
+ Благодарностей: 1

СВ

 Думается, удобство пользования можем оценивать по универсальному критерию - скорости работы.
Расстановка размеров минимально может проводиться в 2 (линия, окружность, дуга) клика или в 3 клика (остальное). Все остальные дополнительные движения нужно стараться исключить. Если же эти доп. движения появятся, то должны компенсироваться, например, тем, что уже проставленные размеры сами начнут перемещаться (т.е будет автоматическое редактирование, если можно так назвать). Остаётся только посмотреть, будет ли ускорение работы по данному предложению или нет. Как это сделать умозрительно?

----------------------
И ещё. По многим предложениям уже с ходу, так сказать, видишь, что оно может быть реализовано. А вот по "Авторасстановке размеров" кажется (мне, разумеется), что разработчиков это ни на "грамм" не заинтересует, подумают что-то типа - Ну вы и зажрались, ребята!
А потому вопрос к Аскону: - Есть ли вообще смысл обсуждать эту тему?

Pav

В развитии предложения возможна реализация инструмента "присоседить объекты". Команда выравнивает объекты в соответствии с настройками чертежа. Для этого нужно просто выделить группу объектов и вызвать соответствующую команду (см. рисунок). При этом в зависимости от настроек может автоматически накладываться или не накладываться параметрическая связь.

Pav

Цитата: СВ от 14.05.13, 00:09:53
Думается, удобство пользования можем оценивать по универсальному критерию - скорости работы.
Расстановка размеров минимально может проводиться в 2 (линия, окружность, дуга) клика или в 3 клика (остальное). Все остальные дополнительные движения нужно стараться исключить.
Я не считаю что критерии это скорость работы и количество кликов, все сложнее, но даже если так считать, то я не увеличиваю количество кликов. Например для линейного размеры было 3, стало 3.

Цитата: СВ от 14.05.13, 00:09:53
...можем оценивать по универсальному критерию - скорости работы...
Вспоминается анекдот:
Блондинка на собеседовании отвечает: "скорость печати 800 знаков минуту, но такая фигня получается" :)

Goran

Цитата: Pav от 13.05.13, 22:25:49
... Далее... Для объяснения мне нужно ввести новый термин "соседство" и "соседний объект" (эти термины я придумал только что, при желании можно использовать другие термины, это не важно)...
Очень даже важно! И в данном контексте как раз и требуется присутствие программистов.
Что подразумевается под объектом?
1. Допустим, объект-линейный размер, который содержит размерную линию и цифру (высота шрифта). Возникает вопрос по определению некой точки/линии/базы отсчета данного объекта.
2. Допустим объект- знак шероховатости, который кроме всего прочего может еще ориентироваться в пространстве чертежа (боком, снизу/сверху, на полке выноске), что в данном случае будет "базой отсчета"?
3. Как предполагается определение "некой общей базы" для одновременно существующих нескольких разноплановых "соседних  объектов"?
Я конечно не программист, но мне думается, что для них (программистов) необходим некий конкретно-определенный алгоритм действий-требований. В противном случае все сведется к "ручной" расстановке, поскольку понимание простановки размеров несущих  в себе "технологию выполнения" для программеров - глушь непроходимая!
В прочем, на истину не претендую. 

tramp_m

Если кого то интересует моё мнение, то предлагаю по предложению, не гнаться за скоростью...
Основное в простановке размеров, это пожалуй исключить человеческий фактор (а не скорость)
В простановке размеров, ну скажем  в спешке ткнул не туда курсор и в итоге размерная линия не совпадает с реальной длиной грани....
Для этого, может быть ввести автопростановку размерных линий со значениями сразу после завершения построения грани.
Т.е. чертим прямоугольник и сразу после или одновременно образмеривается прямоугольник, лишние размеры (не нужный размер либо удалить , либо скрыть).
Меньше тыков, и меньше ошибок в простановке, и есть себя проверить в построении...
Вот примерно так для начала хотя бы так.
И не загромождать интерфейс дополнительными кнопками диалоговыми окнами (а то и так вроде как перегружен дублированием и повторениями типа размер геометрический, параметрический и т. д....)...
Может быть, ошибаюсь...

JIK

Цитата: Pav от 14.05.13, 11:59:23
"присоседить объекты".
С этим полностью согласен, полезно для формирования "размерных групп"!
А вот с остальным и да, и нет. Здесь Вы обходите "кривость" команды "авторазмер". Предложения по доработке команды "авторазмер" выдвигались, не буду сейчас их поднимать. Плюс не понятно зачем указывать соседние объекты для "вклинивания"? Есть правило минимального числа пересечении - программа должна считать это. Чтобы происходило автоматическое "вклинивание" в размеры, необходимо исключить "третий клик" и заменить его движением курсора в область куда тянется размер, с последующим подтверждением любым способом, отличным от основного клика ЛКМ, например, клик ПКМ.
PS: Я б, все-таки, объединил темы, зачем идти по двум путям? Лучше выработать общее предложение.

tramp_m

#7
Ведем линию одновременно с размерной линией и её значениями, как в параметризации.
Размер не проставляем вручную, а он должен появиться автоматически, как только начинаем построение (и значение между начальной и конечной точкой линии больше ноля...)...

tramp_m

Цитата: JIK от 14.05.13, 18:02:10

PS: Я б, все-таки, объединил темы, зачем идти по двум путям? Лучше выработать общее предложение.


Поддерживаю JIK а, будет понятнее о чем речь...