oknosoft / windowbuilder

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

Фильтр по графикам допустимых размеров #573

Open unpete opened 4 years ago

unpete commented 4 years ago

Полезно иметь возможность резать спецификацию не только по линейным размерам или параметрам, но и по вхождению габаритов в некую область на графике. Пример для EUROLINE: image

пояснения по областям...

image

Решено:

Вот текст формулы, описывающей графики EUROLINE:

if(!this._res) {
const {Path} = $p.EditorInvisible.prototype;
this._res = {
  white: {
    norm: new Path({
      insert: false,
      closed: true,
      segments: [[40,40], [40,220], [80,220], [90,210], [90,150], [110,150], [120,140], [120,95], [50,40]]
    }),
    power: new Path({
      insert: false,
      closed: true,
      segments: [[40,40], [40,230], [85,230], [100,215], [100,160], [120,160], [135,145], [135,110], [50,40]]
    }),
    power_pasting: new Path({
      insert: false,
      closed: true,
      segments: [[40,40], [40,240], [90,240], [110,220], [110,170], [130,170], [150,150], [150,120], [50,40]]
    }),
    impost: new Path({
      insert: false,
      closed: true,
      segments: [[40,210], [40,230], [85,230], [100,215], [100,210]]
    }),
  },
  clr: {
    norm: new Path({insert: false}),
    power: new Path({
      insert: false,
      closed: true,
      segments: [[40,40], [40,220], [90,220], [100,210], [100,160], [120,130], [120,95],[50,40]]
    }),
    power_pasting: new Path({
      insert: false,
      closed: true,
      segments: [[40,40], [40,230], [100,230], [110,220], [110,170], [130,170], [140,160], [140,110], [50,40]]
    }),
    impost: new Path({
      insert: false,
      closed: true,
      segments: [[40,210], [40,220], [90,220], [100,210]]
    }),
  }
};
}
return this._res;
DmitryDergunov commented 4 years ago

Структуру формулы надо полностью повторить? А если нужен только один вариант - norm:? И цветное не учитывать. Как в этом случае будет выглядеть формула?

unpete commented 4 years ago

Не обязательно полностью. Если для цветных и белых одинаково, clr заменяем на геттер, возвращающий norm. N уровней позволяют сформировать разный текст ошибки для разных диапазонов. Если диапазон контроля один, то и в структуре достаточно одной таблицы. Ещё, желательно согласовать со мной способ встраивания графика размеров в спецификацию, чтобы как с другими формулами не получилось.