Показать сообщение отдельно
Старый 20.04.2018, 10:00   #37
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
Подскажите пож.(не нашел в мануале): как назначить ориентацию текстуры для создаваемой панели HPanel=AddHorizPanel(...) ?
HPanel.TextureOrientation = TextureOrientation.Horizontal; //Например

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
и еще такой вопрос: кромку на панель ставлю так:
for(var side_butt=0; side_butt < 4; side_butt++){
Butt_Material = arr[row][4+side_butt*3];
if (Butt_Material != '')
{
Butt = HPanel.Butts.Add();
Butt.Material = arr[row][4+side_butt*3];
Butt.Material.Allowance = 0.5;
Butt.Material.ClipPanel = true;
Butt.ElemIndex = side_butt;
Butt.Sign = arr[row][6+side_butt*3];
Butt.Thickness = Number(arr[row][5+side_butt*3],10);
}
}
}
в итоге толщина кромки в БМ не попадает, хотя в исходнике(строка CSV) толщина присутствует
соответственно, что делаю неправильно?
Сделал тестовый пример у себя на основе вашего кода - у меня все нормально (БМ10). Все, написанное ниже относится к 10 версии, поэтому где-то я могу быть не прав:
1. Вот эти две строки мне не понятны:
Код:
Butt.Material.Allowance = 0.5;
Butt.Material.ClipPanel = true;
в БМ10 свойство Material - строковое. А свойства Allowance и ClipPanel доступны у объекта кромки. Думаю, эти строки должны быть такими:
Код:
Butt.Allowance = 0.5;
Buttl.ClipPanel = true;
2. Самый простой способ проверить, проверить, почему толщина кромки не попадает, это алертом вывести толщину, например:
Код:
alert(Number(arr[row][5+side_butt*3],10))
Butt.Thickness = Number(arr[row][5+side_butt*3],10);
алерт выведет, какое значение вы пытаетесь получить.
Кстати, с дробными числами есть еще одна неприятная вещь: если в строке разделитель дроби - запятая, а не точка, то такое преобразование вернет Nan. Возможно, в этом проблема.


P.S. И, напоследок, пара советов:
  1. У вас идет два присвоения одного и того же сложного значения:
    Код:
    //1
    Butt_Material = arr[row][4+side_butt*3];
    //промежуточный код
    //2
    Butt.Material = arr[row][4+side_butt*3];
    Предлагаю во второй раз брать значение из уже заданной переменной:
    Код:
    //1
    Butt_Material = arr[row][4+side_butt*3];
    //промежуточный код
    //2
    Butt.Material = Butt_Material;
    Так уже идет доступ сразу к Butt_material, а не к arr->arr[row]->arr[row][4+side_butt*3]. Но, что более важно, если что-то изменится (например, нужно будет брать значение не из [4+side_butt*3], а из [2+side_butt*2]), то править код надо будет всего в одном месте, что уменьшает вероятность ошибки при запуске измененного/исправленного кода
  2. У вас очень часто повторяется arr[row]. Можно и его записать в отдельную переменную. Особо видимых плюсов не принесет, поэтому это из разряда "придраться".
  3. И еще из разряда "придраться" по поводу правил хорошего тона. В JS принято называть переменные с маленькой буквы (а названия функций и классов - с большой). Из видимых плюсов - меньше Shift лишний раз нажимать.
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
bbb i ko (20.04.2018), Briz (26.04.2018), maxgmv (20.04.2018), Ovsyanicov (21.04.2018)