Closed rnpoddor closed 4 years ago
У нас, вроде, была функция, ищущая пересечения в окрестности узла в модуле src/geometry/paper_ex.js
Зачем сугубо геометрический метод get_intersection
помещен вовнутрь редактора?
Если он реально нужен, как его использовать в других местах?
У нас, вроде, была функция, ищущая пересечения в окрестности узла
Функция intersect_point
в решении данной задачи не подходит.
Зачем сугубо геометрический метод get_intersection помещен вовнутрь редактора?
Возможно наименование функции не отражает полностью её предназначение. Коммит обновил, изменил наименование, не знаю как ещё назвать и ещё доработку добавил, пока думал, нашёл изъян. Этот метод специфичен данной задаче, где-то еще применить наврятли получится, поэтому не стал никуда выносить. В этом методе ищется не только пересечение путей в окрестности точки, а работа ведётся с импостом и проверяется также противоположный конец импоста. Возвращает пересечение если оно есть и не противоречит противоположному концу, в противном случае undefined
.
Дело не в названии методов, а в месте, где эти методы живут и каким классам принадлежат. editor_dhtmlx
- это визуальная надстройка и в ней живут методы, через который ui старой рисовалки отдаёт приказы невизуальной части.
Требуется:
paper_ex
и в profile
Коммит обновил с учётом замечаний.
Есть еще замечания - сам поправлю руками.
про деление горизонтальных и вертикальных совсем забыл
Дело не в способе деления, а в том, что для некоторых раскладок, Varsavia 18мм
в том числе, у вас разрешены соединения с пустотой. Система, увидев такое соединение не пыталась что-либо уравнивать.
Сделал маленькие оптимизации https://github.com/oknosoft/windowbuilder/commit/bc40ad7d65917a0ff23cd2257b9d77fdde5be0c выкинул метод get_nearest_intersection и отдельный код про удлинение, т.к. всё это есть в стандартном и абстрактном path.intersect_point().
Оптимизации - это мелочь. За +/- 40 строчек кода я никого критиковать не посмею, но в формулах-модификаторах нашел реальную дичь. Формула "Автоуравнивание при вставке раскладки". Не важно, кто автор, но начальника, пропустившего такое в прод надо наказывать. Формулу "Автоуравнивание при вставке раскладки" нужно немедленно отключить, удалить и никогда не писать кода, как в той формуле.
dev обновил - проверяйте.
Не работает. Для теста можно использовать заказ 00-007-0006
, строка продукции №20. На примере раскладки Раскладка Varsavia 18мм
, деление горизонтальных. Вставляю раскладку и меняю размеры так
после исправления соединений результат такой
для некоторых раскладок, Varsavia 18мм в том числе, у вас разрешены соединения с пустотой
Мы от такого соединения избавились, где Вы его нашли?
Но в формулах-модификаторах нашел реальную дичь. Формула "Автоуравнивание при вставке раскладки".
Формулу писал я, ещё в прошлом году. Избавимся после нахождения альтернативного решения.
Сделал elongation перед поиском пересечений - проверяйте.
По формуле, мои замечания не к исполнителю, а к начальнику.
Не надо управленческого опыта, не надо высшего образования и даже техникума. Все учились в средней школе, у всех было черчение и все видели угловой штамп. Там есть ячейки для подписей: разработал
, чертил
, проверил
, нормоконтролер
, утвердил
. Любую фигню: кирпич, балку, шестерню, гвоздь и тем более, программный код надо проверять и согласовывать.
Опыт десятков поколений инженеров говорит: если человек чего-то потихоньку рисует и не советуется с товарищами, на выходе будет плохо. Видимо, ваши начальники хотят, чтобы было плохо - иначе регламент работы ИТ не объяснить.
Работает!
На днях осознал, что сделано неаккуратно. Метод path.intersect_point()
надо дорабатывать. Сейчас, когда исходный путь внутри замкнутого и сильно смещен к одной из сторон замкнутого - будет ошибка. Аберрации возможны не только при уравнивании, но и при расчете геометрии.
Нпример такой вариант приводит к ошибке, если применить восстановление соединений
Это понятно. Просто, править надо не восстановление вульгарного соединения, а ошибку в базовом методе.
Метод path.intersect_point() надо дорабатывать.
Решение найти не удаётся. Нужна помощь! Решение этой задачи держит обновление продакшена.
Просьба суть проблемы вместо эмоций
С примером на изделии разумных размеров
Вроде нормально написал, эмоций не было. Заказ в продакшене 00-007-0006 изделие 20. И пример выше в обсуждении был https://github.com/oknosoft/windowbuilder/pull/556#issuecomment-568262917.
Фразы "Отгрузка остановлена", "Не можем работать", "Клиенты оборвали телефон", "Держит обновление продакшена", "Вы обещали" и т.п., используют "Эффективные менеджеры", чтобы вызвать чувство вины у подчиненного. Лучшая защита от таких манипуляций - ругать и бить первым. Своих. Чтобы чужие боялись.
Мы сможем решить эту задачу до того как Вы будете отсутствовать?
Легко
Правильно ли я понимаю, не протестировав до конца изменения из https://github.com/unpete/ecookna/issues/881, мы не сможем обновить prod? Те изменения которые мы вносили ранее не могут быть перенесены отдельно?
Текущая сборка wb опирается на отдельную библиотеку wb-core. Про какие именно изменения вопрос?
Например текущую задачу.
Уточню: не текущая, а текущие. Главный акцент сейчас на wb-light. Сборку на dhtmlx пора хоронить. Chrome об этом тоже напоминает: в апреле отключат AppCache. Чтобы войти в горячий сезон без нервотрёпки, советую заняться формулами. Под словом 'заняться', понимаю 'согласовать со мной'
Я Вас понял, а как сейчас сделать обновление prod?
Давайте про ваш регламент не в общей ветке. Если грубых ошибок в dev не наблюдаете, prod можно обновить хоть сейчас.
Тестировал восстановление соединений только для типа деления
Крест в стык
, про деление горизонтальных и вертикальных совсем забыл. Например если выбрать раскладкуРаскладка Varsavia 18мм
, для неё деление горизонтальных, вертикальные импосты имеют соединение снизу и сверху, для такого деления всё ломается.