Форум профессиональных мебельщиков PROMEBELclub
 
PROMEBELclub - Форум для мебельщиков: конструкторов, дизайнеров, мастеров, технологов и всех, кто имеет отношение к производству и изготовлению мебели. Программы для конструирования и дизайна мебели. Мебельная литература и обучающие пособия.
 
 

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 21.03.2018, 14:48  
Обсуждение скриптов в Системе Базис
Letos
Консультант
Регистрация: 28.06.2017
Сообщений: 555

Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Версия для печати Отправить по электронной почте
Letos Letos вне форума 21.03.2018, 14:48
Рейтинг: ()

Если вы не знаете, или не уверены, куда задавать вопрос по скриптам в Системе Базис, то эта тема для вас.
Просмотров: 237737
Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (28.07.2021), Максим Геннадьевич (08.06.2018)
Старый 18.06.2018, 00:02   #91
Guamoko
Пользователь
 
Регистрация: 04.04.2018
Адрес: Санкт-Петербург
Сообщений: 34
Сказал(а) спасибо: 18
Поблагодарили 18 раз(а) в 3 сообщениях
Вес репутации: 0
Guamoko на пути к лучшему
По умолчанию

Спасибо большое за помощь. Попробовал все 3 варианта. Результат одинаков.
1). Выдает ошибку в строке arguments[0].SetActive();
TypeError: Cannot read properti "SetActive" of undefined at HNap at Function Window1.Hprm.OnValuehange
2) Я поменял arguments[0] и arguments[1] на Mater11 и HNap11 и теперь иоя функция выглядит так:

function HNap(Mater11,Hnap11){

Window1.Mater11.SetActive();

var thick = ActiveMaterial.Thickness;
if(thick == 10){

Window1.Hnap11.Value=Window1.Hprm.Value-99;
Window1.Hnap11.Layout.Top=Window1.Hnap11.Layout.To p;
}
if(thick == 4){

Window1.Hnap11.Value=Window1.Hprm.Value-102;
Window1.Hnap11.Layout.Top=Window1.Hnap11.Layout.To p;
}
}

Window1.Hprm.OnValueChange=function(){
Hdvr(); LVProf(); LChleg();LObVProf();
for (var i = 0; i < mater.length; i++) {
HNap(Window1[mater + i + '1'], Window1[hnap + i + '1']);
}
}
Но при вызове через for срабатывает только Mater11 и HNap11 все 3 варианта. Наверное что то в функции

P.S. Я изначально писал через имена, но что то не получалось, а через
arguments получилось запустить хотя бы перечислением.
Guamoko вне форума   Ответить с цитированием Вверх
Старый 18.06.2018, 00:49   #92
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Guamoko Посмотреть сообщение
Я поменял arguments[0] и arguments[1] на Mater11 и HNap11
Но при вызове через for срабатывает только Mater11 и HNap11 все 3 варианта.
Нужно использовать не "Window1.Mater11" а просто "Mater11" - параметр, который у вас передаётся в функции (аналог arguments[0]).

Цитата:
Сообщение от Guamoko Посмотреть сообщение
Выдает ошибку в строке arguments[0].SetActive();
TypeError: Cannot read properti "SetActive" of undefined at HNap at Function Window1.Hprm.OnValuehange
Рекомендую тогда для проверки использовать второй способ:
Код:
var mater = [Window1.Mater11, Window1.Mater21, Window1.Mater31];
//исправил регистр буквы n 
var hnap = [Window1.Hnap11, Window1.Hnap21, Window1.Hnap31];
Window1.Hprm.OnValueChange = function () {
    for (var i = 0, j = 0; i < mater.length, j < hnap.length; i++ , j++) {
        HNap(mater[i], hnap[j]);
    }
}
Теоретически(!) оно должно работать. Если не работает, то напишите при каком конкретно коде оно не работает, и (маловажно, но не помешает хотя бы номер) версию Базиса .
Letos вне форума   Ответить с цитированием Вверх
Старый 18.06.2018, 01:14   #93
Guamoko
Пользователь
 
Регистрация: 04.04.2018
Адрес: Санкт-Петербург
Сообщений: 34
Сказал(а) спасибо: 18
Поблагодарили 18 раз(а) в 3 сообщениях
Вес репутации: 0
Guamoko на пути к лучшему
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Нужно использовать не "Window1.Mater11" а просто "Mater11" - параметр, который у вас передаётся в функции (аналог arguments[0]).



Рекомендую тогда для проверки использовать второй способ:
Код:
var mater = [Window1.Mater11, Window1.Mater21, Window1.Mater31];
//исправил регистр буквы n 
var hnap = [Window1.Hnap11, Window1.Hnap21, Window1.Hnap31];
Window1.Hprm.OnValueChange = function () {
    for (var i = 0, j = 0; i < mater.length, j < hnap.length; i++ , j++) {
        HNap(mater[i], hnap[j]);
    }
}
Теоретически(!) оно должно работать. Если не работает, то напишите при каком конкретно коде оно не работает, и (маловажно, но не помешает хотя бы номер) версию Базиса .
Цитата:
Сообщение от Letos Посмотреть сообщение
Нужно использовать не "Window1.Mater11" а просто "Mater11"
Если:
function HNap(Mater11,Hnap11){

Mater11.SetActive();

var thick = ActiveMaterial.Thickness;
if(thick == 10){

Window1.Hnap11.Value=Window1.Hprm.Value-99;
Window1.Hnap11.Layout.Top=Window1.Hnap11.Layout.To p;
}
if(thick == 4){

Window1.Hnap11.Value=Window1.Hprm.Value-102;
Window1.Hnap11.Layout.Top=Window1.Hnap11.Layout.To p;
}
}
ошибка
TypeError: Cannot read properti "SetActive" of undefined at HNap at Function Window1.Hprm.OnValuehange

Если Window1.Mater11.SetActive(); то

Window1.Hprm.OnValueChange=function(){
Hdvr(); LVProf(); LChleg();LObVProf();
for (var i = 0; i < mater.length; i++) {
HNap(Window1[mater + i + '1'], Window1[hnap + i + '1']);
}
}
срабатывает только Mater11 и HNap11.

Цитата:
Сообщение от Letos Посмотреть сообщение
(маловажно, но не помешает хотя бы номер) версию Базиса .
Базис- Мебельщик 10 Демо версия

Добавлено через 7 минут
Цитата:
Сообщение от Guamoko Посмотреть сообщение
Рекомендую тогда для проверки использовать второй способ:
Код:
var mater = [Window1.Mater11, Window1.Mater21, Window1.Mater31];
//исправил регистр буквы n
var hnap = [Window1.Hnap11, Window1.Hnap21, Window1.Hnap31];
Window1.Hprm.OnValueChange = function () {
for (var i = 0, j = 0; i < mater.length, j < hnap.length; i++ , j++) {
HNap(mater[i], hnap[j]);
}
}
Скопировал Ваш код, срабатывает только Mater11, HNap11
и при
Mater11.SetActive();
и при
Window1.Mater11.SetActive();
Guamoko вне форума   Ответить с цитированием Вверх
Старый 18.06.2018, 03:05   #94
Guamoko
Пользователь
 
Регистрация: 04.04.2018
Адрес: Санкт-Петербург
Сообщений: 34
Сказал(а) спасибо: 18
Поблагодарили 18 раз(а) в 3 сообщениях
Вес репутации: 0
Guamoko на пути к лучшему
По умолчанию

Спасибо большое за помощь и потраченное время. Код заработал, правда после того,
как я вернулся к arguments и учел Ваши поправки в цикле.Если Вам интересно, выглядит он так:
function BNap(Mater11,Bnap11){

arguments[0].SetActive();

var thick = ActiveMaterial.Thickness;
if(thick == 10){
arguments[1].Value=Window1.LGProf.Value+15;
arguments[1].Layout.Top=arguments[1].Layout.Top;
}
if(thick == 4){
arguments[1].Value=Window1.LGProf.Value+11;
arguments[1].Layout.Top=arguments[1].Layout.Top;
}
}
var mater = [Window1.Mater11, Window1.Mater21, Window1.Mater31];
var hnap = [Window1.Hnap11, Window1.Hnap21, Window1.Hnap31];

Window1.Hprm.OnValueChange=function(){
Hdvr(); LVProf(); LChleg();LObVProf();
for (var i = 0; i < mater.length; i++) {
HNap(mater[i], hnap[i]);
}
}
По Вашему совету избавился от лишней j.
Теперь попробую додуматься, как короче записать

var mater = [Window1.Mater11, Window1.Mater12, Window1.Mater13,
Window1.Mater21, Window1.Mater22, Window1.Mater23,
.................................................. ........................ ,
Window1.Mater51, Window1.Mater52, Window1.Mater53];
Guamoko вне форума   Ответить с цитированием Вверх
Старый 04.07.2018, 19:03   #95
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию Редактировать панель

В справочнике есть пример редактирования панели, но панель ставиться фронтально. Если поставить горизонтальную панель то пример не подходит.
Планирую написание концевого модуля кухни с угловой дверкой 30,45 градусов.
Если нужно "срезать" угол нужно строить замкнутый треугольник и вычитать его из панели?
Может есть какие то решения. Или направьте на путь.
Спасибо
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 04.07.2018, 23:00   #96
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Если нужно "срезать" угол нужно строить замкнутый треугольник и вычитать его из панели?
Можно еще нарисовать по линиям уже срезанный контур, но на мой вгляд, вычитание треугольника проще написать и параметризовать. Вот пример создания треугольника и вычитания его из прямоугольного контура панели:
Код:
var p = AddPanel();
var c = p.Contour;
c.Clear();
//добавляем прямоугольник 100х200
c.AddRectangle(0, 0, 100, 200);
// создаём треугольник с координатами {0,0} {50, 0} {0, 100}
var tri = NewContour();
tri.AddLine(0, 0, 50, 0);
tri.AddLine(50, 0, 0, 100);
tri.AddLine(0, 100, 0, 0);
//Вычитаем треугольник
c.Subtraction(tri);
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Старый 05.07.2018, 11:51   #97
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Вот пример создания треугольника и вычитания его из прямоугольного контура панели:
Именно этот пример и использую.
Насчет создания треугольника понял, просто у меня задается длина среза т.е гипотенуза треугольника, ну не беда будем вычислять по формуле устанавливать расположение точек линий.
Но как редактировать горизонтальную панель? Можно конечно создать фронт панель, отредактировать и потом ее повернуть.
И все таки есть ли еще варианты.
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 05.07.2018, 13:59   #98
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Но как редактировать горизонтальную панель? Можно конечно создать фронт панель, отредактировать и потом ее повернуть.
И все таки есть ли еще варианты.
Не совсем понял ваш вопрос. Если вы про редактирование уже существующей панели - то так же, как и фронтальную. А если вы про создание горизонтальной панели, то функция AddPanel() создает панель в ближайшей к текущему виду проекции. Также существуют отдельные функции для создания горизонтальной, фронтальной и вертикальной панелей:
Код:
// фронтальная
AddFrontPanel();
// вертикальная
AddVertPanel();
// горизонтальная
AddHorizPanel();
Letos вне форума   Ответить с цитированием Вверх
Старый 06.07.2018, 08:27   #99
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Также существуют отдельные функции для создания горизонтальной, фронтальной и вертикальной панелей:
Какие ставиться панели я знаю. Все разобрался, спасибо.
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 15.07.2018, 16:53   #100
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Код:
c.Clear();
А есть вариант без Clear(), просто редактировать контур.
Спасибо
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждение готовых скриптов Letos Базис-мебельщик. Скрипты 492 04.03.2024 11:42
БАЗИС 8 - общее обсуждение DTioutiou Базис-мебельщик 8 2092 15.08.2023 01:44
БАЗИС 8 - Фурнитура, обсуждение nayrogi Базис-мебельщик 8 1390 16.04.2022 22:47
MasterBox 7. Работа с ящиками в системе БАЗИС Daddy Базис-мебельщик 7 605 13.11.2019 11:13
Общие вопросы по системе БАЗИС 7.0 COBA Базис-мебельщик 7 904 24.08.2016 19:16


Текущее время: 02:35. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика