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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 14.09.2019, 00:17  
БАЗИС 11-2023 - Скрипты
 
Аватар для AlexBolton
AlexBolton
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,943

Сказал(а) спасибо: 7,295
Поблагодарили 16,918 раз(а) в 3,211 сообщениях
Версия для печати Отправить по электронной почте
AlexBolton AlexBolton вне форума 14.09.2019, 00:17
Рейтинг: ()

Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.

Новшества Базис Мебельщик версии 11:
.....
6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....

Новшества Базис Мебельщик версии 2021:

16. Отладчик скриптов.



VISUAL CODE

Код:
Примеры скриптов из видео

Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
node.js обновился с 7.0.0 до 8.11.3

Напиши себе Базис или Моя первая тумбочка 2
Комплект - руководство+ файлы+ скрипт

Обратите внимание на полезные ответы в этой теме!

__________________
.
▓▒░ Халявы не бывает ░▒▓

[ Как правильно задавать вопросы на форумах ] | [ Как просто, быстро и правильно опубликовать фото и файлы в сообщении 15.03.2024]

[ USDownloader - удобно и безопасно скачиваем с файлообменников 09.02.2024] | [ Обходим блокировки сайтов, торрентов, месенджеров, ФО - RU - UA]


Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д. >сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 599876
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 07.02.2020, 16:29   #141
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Да я именно про new Map(); и говорил.
Цитата:
Сообщение от rombler Посмотреть сообщение
В лубом случае includes помог.
У меня ощущение, что Вы либо сами запутались, либо нас путаете ))
Если бы использовался Map, то includes() не помог бы. Для поиска ключа в Map используется метод has(), но в первом сообщении Вы написали, что has() не работает, значит в коде не Map.
Сейчас Вы пишите, что includes() помог, значит проблема была с обычным массивом Array.
Остаётся вопрос: почему Вы решили, что в Вашем массиве есть строковый ключ "key2"? Если записать что-то в Array с использованием строкового ключа, то массив преобразуется в обычный объект, и ни has(), ни includes() не работали бы.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 12.02.2020, 13:35   #142
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
У меня ощущение, что Вы либо сами запутались, либо нас путаете ))
Если бы использовался Map, то includes() не помог бы. Для поиска ключа в Map используется метод has(), но в первом сообщении Вы написали, что has() не работает, значит в коде не Map.
Сейчас Вы пишите, что includes() помог, значит проблема была с обычным массивом Array.
Остаётся вопрос: почему Вы решили, что в Вашем массиве есть строковый ключ "key2"? Если записать что-то в Array с использованием строкового ключа, то массив преобразуется в обычный объект, и ни has(), ни includes() не работали бы.
Когда мне понадобился ассоциативный массив я погуглил и определил что в JS его можно создать используя Map. При выполнении экспериментов в базисе на Map выходила ошибка. В справочнике скриптов базиса написано:
"Массив при программировании скриптов на самом деле представляет собой Std::Map, то есть не обязательно задавать элементы массива с идентификационным номером. Можно задавать их также и с текстовым значением, соответственно и обращаться к таким элементам массива через текстовое значение. "
Т.е видимо в базисе ассоциативный массив используется немного иначе чем в JS. Экспериментируя дальше я наконец узнал как правильно прописать такой массив. но вот как определить есть ли ключ в массиве или не не получалось.
Поэтому и написал что метод includes помог. И поэтому дальнейшие эксперименты с Map посчитал ненужными.

Добавлено через 10 минут
Я в скриптах базиса новичок и все приходится постигать с самого начала.
Подскажите в чём проще писать скрипты?

Я скачал демо версию базис 11 и пишу скрипты в редакторе скриптов. Но если возникает какая нибудь ошибка, то отображение этой ошибки в логе очень обобщенное. Но ладно с этим можно смириться, но вот если же выводить сообщения в лог, то при достижении определённого количества сообщений в логе базис вылетает без возможности сохранить написанный скрипт.
Еще если образуется бесконечный цикл, то базис так же вылетает и помогает только аварийное завершение без возможности сохранить прогресс.
Я видел ролик что как то можно настроить VSCode. но в ролике показано настройка для базис 10. И на моей демке не получается его использовать. А демка базис 10 отсутствует в интернете.
Помогите новичку ПОЖАЛУЙСТА.
rombler вне форума   Ответить с цитированием Вверх
Старый 12.02.2020, 14:44   #143
alexrain
Новичок
 
Регистрация: 03.04.2016
Адрес: Бронницы
Сообщений: 19
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
alexrain пока не определено
По умолчанию

Всем привет.
Вот пример скрипта:

Скрытый текст

MakeProperties();

FileOptionsPolka1Dver = 'Polka1Dver.xml';

var startAngle = 0;

if (!ParametricBlock) {

Action.Properties.Load(FileOptionsPolka1Dver);

Action.OnFinish = function() {
Action.Properties.Save(FileOptionsPolka1Dver);
}

} else {

Action.Properties.Load(FileOptionsPolka1Dver);

}

Action.Continue();

function MakeProperties() {

Prop = Action.Properties;
Seperator = Prop.NewSeparator();

GabRaz = Prop.NewGroup('Габаритные размеры изделия по корпусу');
KH = GabRaz.NewNumber('Высота', 720);
KB = GabRaz.NewNumber('Ширина', 600);
KT = GabRaz.NewNumber('Глубина', 300);
Seperator = GabRaz.NewSeparator();

Konstruktiv = Prop.NewGroup('Конструктивные изменения');
Paz = Konstruktiv.NewNumber('Паз', 18);
BigLevBok = Konstruktiv.NewNumber('Увеличить левую боковину на ...', 0);
BigPravBok = Konstruktiv.NewNumber('Увеличить правую боковину на ...', 0);
Seperator = Konstruktiv.NewSeparator();

}

OkBtn = Prop.NewButton('Построить');

OkBtn.OnClick = function() {

Action.Properties.Save(FileOptionsPolka1Dver);

Action.Finish();

}

Action.OnStart = function() {
//обработка событий в любых полях ввода свойства
Prop.OnChange = Primenit;
Primenit();
}

Action.Continue();

function Primenit() {

Make();

}

function Make() {

DeleteNewObjects();

BL = BeginParametricBlock('Полка 1 дверь');

// устанавливаем детали корпуса
UstanovkaLevBokPazZamer(); // устанавливаем левую боковину
UstanovkaPravBokPazZamer(); // устанавливаем правую боковину
UstanovkaDnoPazZamer(); // устанавливаем нижний горизонт
UstanovkaVerhPazZamer(); // устанавливаем верхний горизонт
UstanovkaZadnStenkaPolkaPazZamer(); // устанавливаем заднюю стенку ДВП

EndParametricBlock();

}

function UstanovkaLevBokPazZamer() {
// Определяем материал детали
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// Устанавливаем левую боковину
LevBok = AddVertPanel(-BigLevBok.Value, 0, KT.Value, KH.Value, 0);
LevBok.TextureOrientation = TextureOrientation.Vertical;

// Строим паз
CutLevBok = LevBok.AddCut('паз');
CutLevBok.Trajectory.AddLine(BigLevBok.Value + Paz.Value, 0, BigLevBok.Value + Paz.Value, KH.Value);
CutLevBok.Contour.AddRectangle(0, 0, -4, 8);

// Указываем дополнительные свойства
LevBok.Name = 'Боковина левая';
LevBok.ArtPos = '1';

LevBok.Build();

}

// устанавливаем правую боковину
function UstanovkaPravBokPazZamer() {
// Определяем материал боковины
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// Устанавливаем правую боковину
PravBok = AddVertPanel(-BigPravBok.Value, 0, KT.Value, KH.Value, KB.Value - ActiveMaterial.Thickness);
PravBok.TextureOrientation = TextureOrientation.Vertical;

// Строим паз
CutPravBok = PravBok.AddCut('паз');
CutPravBok.Trajectory.AddLine(BigPravBok.Value + Paz.Value, 0, BigPravBok.Value + Paz.Value, KH.Value);
CutPravBok.Contour.AddRectangle(0, PravBok.Thickness, -4, PravBok.Thickness - 8);

// Указываем дополнительные свойства
PravBok.Name = 'Боковина правая';
PravBok.ArtPos = '2';

PravBok.Build();

}

// устанавливаем дно
function UstanovkaDnoPazZamer() {
// Определяем материал детали
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// Устанавливаем нижний горизонт
Dno = AddHorizPanel(LevBok.Thickness, 0, KB.Value - PravBok.Thickness, KT.Value, 0);
Dno.TextureOrientation = TextureOrientation.Horizontal;

// Строим паз
CutDno = Dno.AddCut('Паз');
CutDno.Trajectory.AddLine(0, -Paz.Value, KB.Value - (PravBok.Thickness + LevBok.Thickness), -Paz.Value);
CutDno.Contour.AddRectangle(0, Dno.Thickness, -4, Dno.Thickness - 8);

// Указываем дополнительные свойства
Dno.Name = 'Нижний горизонт';
Dno.ArtPos = '3';

Dno.Build();

}

// устанавливаем верх
function UstanovkaVerhPazZamer() {
// Определяем материал детали
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// устанавливаем верхний горизонт
Verh = AddHorizPanel(LevBok.Thickness, 0, KB.Value - PravBok.Thickness, KT.Value, KH.Value - Dno.Thickness);
Verh.TextureOrientation = TextureOrientation.Horizontal;

// Строим паз
CutVerh = Verh.AddCut('Паз');
CutVerh.Trajectory.AddLine(0, -Paz.Value, KB.Value - (PravBok.Thickness + LevBok.Thickness), -Paz.Value);
CutVerh.Contour.AddRectangle(0, 0, -4, 8);

// Указываем дополнительные свойства
Verh.Name = 'Верхний горизонт';
Verh.ArtPos = '4';

Verh.Build();

}

// устанавливаем заднюю стенку ДВП
function UstanovkaZadnStenkaPolkaPazZamer() {

// Определяем материал детали
ActiveMaterial.Make('ДВП ламинированная\rДВП', 4);

// Устанавливаем заднюю стенку из ДВП
ZadnStenkaDVP = AddFrontPanel(LevBok.Thickness - 7, Dno.Thickness - 7, (KB.Value - PravBok.Thickness) + 7, KH.Value - 9.5, Paz.Value);
ZadnStenkaDVP.TextureOrientation = TextureOrientation.Vertical;

// Указываем дополнительные свойства
ZadnStenkaDVP.Name = 'Задняя стенка ДВП';
ZadnStenkaDVP.ArtPos = '8';

ZadnStenkaDVP.Build();

}
[свернуть]
--------------------------

Суть следующая:
Создаем с помощью скрипта редактируемую параметрическую 3Д-модель.
Есть ли возможность сделать следующее:
1. Использовать ее (модель) в модуле Базис-Салон.
2. Установив в интерьере (Базис-Салон-Интерьер) --> вызываем модель на редактирование через модуль Базис-Мебельщик --> выделяем 3Д-модель, нажимаем "Редактировать" и изменяем габариты (свойства) изделия, подтверждаем изменения --> загружаем обратно в Базис-Салон-Интерьер (передать в модуль Расстановка).

Если да, то подскажите, пожалуйста, что необходимо сделать? Изменить код, подготовить определенные действия и др.
Спасибо!

Последний раз редактировалось Letos; 12.02.2020 в 15:04. Причина: Спрятал код в спойлер
alexrain вне форума   Ответить с цитированием Вверх
Старый 12.02.2020, 14:55   #144
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Подскажите в чём проще писать скрипты?

Я видел ролик что как то можно настроить VSCode. но в ролике показано настройка для базис 10. И на моей демке не получается его использовать.
С VSCode у 11 версии проблемы - отладчик не работает. В этом сообщении я писал, как можно заставить отладчик заработать, но это крайне нестабильно - при отладке скрипта в уже запущенном БМ появляются ошибки, при отладке скрипта в незапущенном БМ (тогда VSCode сам его запускает) работает нормально (у меня, кто-то писал, что и такой вариант не работает). В VSCode писать всё равно гораздо приятнее, чем в базисном редакторе.

Ещё я под себя настроил отдельную конфигурацию для запуска (только запуска) скрипта из VSCode:

Конфигурация и комментарии

PHP код:
{
            
"type""node",
            
"request""launch",
            
"name""Bazis 11 run"
            
"runtimeExecutable""D:\\Bazis\\Bazis.exe",
            
"runtimeArgs": [
                
"--eval",
            ],
            
"port"5858,
            
"noDebug"true,
            
"cwd""C:\\",
            
"timeout"30000,
            
"program""${file}"
        
}, 
Здесь:
  • type - Тип конфигурации. В данном случае это говорит, что нужно использовать конфигурацию для NodeJS.
  • request - запрос. Есть два вида - "launch" и "attach" (запуск скрипта и подключение к запущенному скрипту, соответственно). Нам нужен "launch"
  • name - имя конфигурации которое будет отображаться в списке конфигураций для отладки
  • runtimeExecutable - Путь к исполняемому файлу. В нашем случае - путь к ехе-шнику БМ.
  • runtimeArgs - аргументы запуска. В нашем случае аргумент "--eval" говорит о том, что мы хотим просто запустить скрипт (подробнее можно узнать в документации к NodeJS).
  • port - порт отладки. В данном случае не играет никакой роли, однако, если его не задать, автоматически добавится параметр "--inspect-brk=port" (запуск на отладку по порту port) в строку запуска, а это нам не нужно.
  • [B]noDebug[B] - хитрый недокументированный параметр, который сообщает VSCode, что мы не хотим отлаживать то, что запускаем. Соответственно, не будет ошибок о том, что не удалось подключиться в течение времени "timeout after <кол-во миллисекунд>" (про timeout чуть ниже).
  • cwd - current working directory - текущая рабочая директория. Мешает тем, что пытается преобразовать абсолютный путь в относительный. В данном случае я выставил путь к диску С, потому что у меня все скрипты на диске D и путь остаётся абсолютным. Можно поставить путь к папке с ехе-шником БМ - у меня получилось таким образом запустить скрипт (путь получился относительно папки с ехе-шником)
  • timeout - время на попытки подключения к процессу для отладки (в мс). Стандартное значение - 10 секунд (10000). В данном случае не нужно, осталось от старой конфигурации
  • program - путь к скрипту. Значение "${file}" указывает, что будет браться тот файл, который открыт в редакторе на момент запуска. Удобно, чтобы не переписывать этот параметр при запуске другого скрипта
Есть и некоторые загвоздки:
  • Если запускать скрипт при ещё не запущенном БМ, VSCode решит, что раз он породил процесс, он этот процесс и убьёт, что неудобно, потому, что если он не смог подключиться для отладки (при невыставленном noDebug)или по иной причине прекращается отладка, то БМ схлопывается мгновенно.
    При уже запущенном БМ ситуация иная - VSCode запускает ещё один процесс БМ, который передаёт все данные основному и спокойно завершается. VSCode видит, что порождённый процесс умер сам и спокойно считает, что его полномочия на этому закончились и основной процесс продолжает жить.
  • Отладки не будет. По ссылке выше её можно настроить, но и та конфигурация будет причинять боль (может даже больше, чем помогать)
[свернуть]


Насчёт настроек VSCode посмотрите всё-таки ролики - с их помощью поймёте, как настроить файлы определений (автодополнения) для VSCode и как работать с конфигурацией запуска.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
rombler (12.02.2020)
Старый 12.02.2020, 15:11   #145
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от alexrain Посмотреть сообщение
Есть ли возможность сделать следующее:
1. Использовать ее (модель) в модуле Базис-Салон.
2. Установив в интерьере (Базис-Салон-Интерьер) --> вызываем модель на редактирование через модуль Базис-Мебельщик --> выделяем 3Д-модель, нажимаем "Редактировать" и изменяем габариты (свойства) изделия, подтверждаем изменения --> загружаем обратно в Базис-Салон-Интерьер (передать в модуль Расстановка).

Если да, то подскажите, пожалуйста, что необходимо сделать? Изменить код, подготовить определенные действия и др.
Спасибо!
В сам код не вникал, но у вас вроде создаётся блок через BeginParametricBlock(). Соответственно этот блок можно редактировать. Модель конечно же можно использовать в салоне, но по поводу второго вопроса сказать точно не могу (я так понимаю под пунктом "выделяем 3Д-модель, нажимаем "Редактировать" и изменяем габариты (свойства) изделия, подтверждаем изменения" имеется в виду редактирование блока, созданного скриптом), но в теории должно сработать и при таком коде, если моё предположение верно и результат скрипта создаётся с помощью BeginParametricBlock().
Letos вне форума   Ответить с цитированием Вверх
Старый 12.02.2020, 19:38   #146
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Когда мне понадобился ассоциативный массив я погуглил и определил что в JS его можно создать используя Map. При выполнении экспериментов в базисе на Map выходила ошибка.
Возможно, в ходе экспериментов была допущена ошибка. У меня в нескольких скриптах используется Map и проблем с ним я не замечал.
К тому же, следующий код, взятый отсюда прекрасно работает в Базисе.
PHP код:
let map = new Map();

map.set("1""str1");    // строка в качестве ключа
map.set(1"num1");      // цифра как ключ
map.set(true"bool1");  // булево значение как ключ

// помните, обычный объект Object приводит ключи к строкам?
// Map сохраняет тип ключей, так что в этом случае сохранится 2 разных значения:
alert(map.get(1)); // "num1"
alert(map.get("1")); // "str1"

alert(map.size); // 3 
Цитата:
Сообщение от rombler Посмотреть сообщение
В справочнике скриптов базиса написано:
"Массив при программировании скриптов на самом деле представляет собой Std::Map, то есть не обязательно задавать элементы массива с идентификационным номером. Можно задавать их также и с текстовым значением, соответственно и обращаться к таким элементам массива через текстовое значение. "
Честно говоря, этот текст в руководстве немного вводит в заблуждение, по моему мнению. Дело в том, что, если в JS создать массив с помощью new Array() или с помощью литерала [], а потом добавить в него запись в виде пары "строковый ключ": "значение", то этот массив станет объектом. Соответственно, методы массива к нему станут неприменимы. Обращаться к его элементам с помощью текстового ключа, конечно, можно, но вот свойство length у него уже не будет отражать действительного количества элементов.
Цитата:
Сообщение от rombler Посмотреть сообщение
Экспериментируя дальше я наконец узнал как правильно прописать такой массив.
И как же? Не сочтите за сарказм, просто интересно.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 13.02.2020, 06:59   #147
alexrain
Новичок
 
Регистрация: 03.04.2016
Адрес: Бронницы
Сообщений: 19
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
alexrain пока не определено
По умолчанию

Это просто скрипт для примера.
Вопрос такой - как в модуле Базис-Салон использовать редактируемые параметрические скрипты?
alexrain вне форума   Ответить с цитированием Вверх
Старый 13.02.2020, 09:24   #148
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Вот пример кода для добавления элемента в ассоциативный массив который лежит в другом массиве.
var arrRis =[];
var nomris=0;
arrRis[nomris]=new Array();
arrRis[nomris]["Tip"]="line";
console.log(arrRis[0]["Tip"]); //"line"
rombler вне форума   Ответить с цитированием Вверх
Старый 13.02.2020, 11:40   #149
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от alexrain Посмотреть сообщение
Это просто скрипт для примера.
Вопрос такой - как в модуле Базис-Салон использовать редактируемые параметрические скрипты?
Думаю, кнопка "Редактировать" доступна только в БМ, но утверждать не могу, может IStiv подскажет.

UPD:
Цитата:
Сообщение от alexrain Посмотреть сообщение
Вопрос такой - как в модуле Базис-Салон использовать редактируемые параметрические скрипты?
Вопрос лучше перефразировать, ибо непонятно, хотите вы использовать редактируемые блоки, которые создаются скриптом или хотите узнать, как использовать/запускать скрипты в Салоне.
Letos вне форума   Ответить с цитированием Вверх
Старый 13.02.2020, 12:16   #150
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Вот пример кода для добавления элемента в ассоциативный массив который лежит в другом массиве.
var arrRis =[];
var nomris=0;
arrRis[nomris]=new Array();
arrRis[nomris]["Tip"]="line";
console.log(arrRis[0]["Tip"]); //"line"
Это массив, в котором лежит объект, а не ассоциативный массив.

Вот так тоже сработает:
PHP код:
console.log(arrRis[0].Tip); //"line" 
А запись следующей пары ключ-значение у Вас произойдёт в arrRis[1], да?

В Вашем примере includes() не даёт результата:
PHP код:
console.log(arrRis.includes("Tip")); //false
console.log(arrRis[0].includes("Tip")); //false 
Зато работает hasOwnProperty();
PHP код:
console.log(arrRis[0].hasOwnProperty("Tip")); //true 
Пример кода с использованием Map:
PHP код:
let arrRis = new Map();
arrRis.set('Tip''line'); //запись пары ключ-значение
console.log(arrRis.get('Tip')); //возвращает значение, соответствующее ключу
console.log(arrRis.has('Tip')); //проверка наличия ключа 
Ovsyanicov вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Letos (13.02.2020), rombler (13.02.2020)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 126 27.03.2024 08:56
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 714 06.03.2024 09:09
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1441 27.02.2024 10:48
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 70 29.01.2024 17:25
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1524 07.12.2022 19:53


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


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

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