oknosoft / windowbuilder

Окнософт:Заказ дилера
http://www.oknosoft.ru/zd/
Other
10 stars 19 forks source link

Прокидывание номера контура при refill() #426

Closed admake closed 6 years ago

admake commented 6 years ago

Прошу обратить внимание. Я решаю задачу по связям параметров для ограничения фурнитур. В свою очередь хочу использовать вычисляемый параметр Признак прямоугольности контура, который сейчас всегда принимает только { cnstr: 0 } и никак иначе.

unpete commented 6 years ago

есть кнопка перезаполнения параметров фурнитуры, у неё cnstr !== 0 есть кнопка перезаполнения параметров изделия, , у неё cnstr === 0 в чём вопрос? Может, надо формулу подпроавить, а не код аккордеона?

admake commented 6 years ago

Вычисляемый параметр добавлен во вкладку параметры фурнитуры, но из формулы параметра стек вызовов ведет именно в кнопку перезаполнения параметров изделия.

Для примера в dev система EUROLINE: окно, параметр: Признак прямоугольности контура

admake commented 6 years ago

Еще раз. Хоть вычисляемый параметр и добавлен в Параметры фурнитуры, вычисляющая формула вызывается с кнопки обновить параметры во вкладке Свойства продукции

admake commented 6 years ago

Код на кнопке обновить параметры в Фурнитуре такой:

case 'refill':
            const {_obj} = this.stv._grid;
            _obj.furn.refill_prm(_obj);
            this.stv.reload();
            break;

в _obj объект Contour, но метод _refillprm ожидает другой состав аргументов:

    refill_prm: {
        value(ox, cnstr = 0) {
admake commented 6 years ago

Отставить. Я не прав. У фурнитуры refill_prm({project, furn, cnstr}). Дальше смотрю.

admake commented 6 years ago

Вычисляемый параметр просто не существует при выполнении обновления параметров фурнитуры. Его проигнорируем здесь как вычисляемый https://github.com/oknosoft/windowbuilder/blob/c49a41ad9029a5e3c578c4357f8b8239c6ebb629/src/modifiers/catalogs/cat_furns.js#L154


this.selection_params.each((row) => {
  aprm.indexOf(row.param)==-1 && !row.param.is_calculated && aprm.push(row.param)
});`
admake commented 6 years ago

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

unpete commented 6 years ago

Я не против, но при чем тут аккордеон рисовалки?

admake commented 6 years ago

при чем тут аккордеон рисовалки?

Да уже совсем ни при чём. Я пытаюсь над задачей подумать шире, как вычисляемым параметром продукции повлиять список выбора фурнитур для разных контуров. Коммит отменю, но мне совет нужен.

unpete commented 6 years ago

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

unpete commented 6 years ago

Если будете делать через paper, не забудьте в формуле проверить его существование, чтобы в node не загнулось. Ваши формулы попадают в сервис рендеринга эскизов, который работает посредником при загрузке в упп. Кривые формулы могут эту загрузку парализовать.

unpete commented 6 years ago

Наверное, надо контекст вычисляемого параметра расширить, но это после 14-го.