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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 13:22  
БАЗИС 8 - Скрипты
 
Аватар для Igor_482
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174

Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 13:22
Рейтинг: ()

ВНИМАНИЕ! Правила выкладывания скриптов.

1. Если в скрипте нет ссылок на фурнитуру, фрагменты и.т.д то достаточно его упаковать в архив и выложить.

2. Если в скрипте есть ссылки на фурнитуру, фрагменты и т.д. то архив должен содержать папку с самим скриптом и всеми файлами на которые есть ссылки в тексте скрипта.


Т.к. при запуске скрипта на другом компе возникает ошибка о не возможности открыть то или иной файл и скрипт до конца не отрабатывает свой текст. Не соблюдается "чистота проверки" работы скрипта.

__________________________________________________ _______________

Интересует информация по редактору скриптов в БМ8. Существует ли справочная документация и примеры использования скриптов в БМ8. Какие возможности дает данная функция? Владеющим информацией по данному вопросу просьба поделиться ею.

Новое в скриптописании для БМ:

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

while (true)
Вот полный список новшеств, добавленных в скрипты с момента их выхода:

14 декабря 2014

Добавлена поддержка эластичных блоков

List3D : {
IsElastic: new HDefinition("?Boolean:", 'Являетсяли объект эластичным'),
ElasticResize: new HDefinition("?Vector:newSize", 'Растянуть объект до требуемых размеров'),
}

27 ноября 2014

Вспомогательные геометрические алгоритмы, реализованы в глобальном объекте geometry

geometry : new HDefinition("Geometry2D", 'Вспомогательные геометрические функции'),

Geometry2D : {
Intersect: new HDefinition("?Array.<Point>:elem1,elem2", 'Вычислить точки пересечения двухмерных элементов'),
Compare: new HDefinition("?Boolean:elem1,elem2", 'Сравнить элементы'),
Distance: new HDefinition("?Number:elem1,elem2", 'Найти кратчайшее расстояние между элементами'),
Area: new HDefinition("?Number:contour", 'Найти площадь контура')
}

17 ноября 2014

Работа с пользовательскими свойствами

Object3 : {
UserPropCount: new HDefinition("Number", 'Количество пользовательских свойств'),
UserProperty: new HDefinition('Array.<Object>', 'Значение свойства по его имени или индексу'),
UserPropertyName: new HDefinition('Array.<String>', 'Названия свойств')
}

Новые элементы управления на панели свойств

ScriptProperty: {
NewColor: new HDefinition("?ScriptColorProperty:'Название'", 'Создать свойство типа цвет'),
NewSeparator: new HDefinition("?ScriptProperty", 'Создать разделитель')
}

ScriptColorProperty: {
Value: new HDefinition("Number")
},

----------------------------------------------------------------------------------------------------
29 сентября 2014

system.apiVersion = 90 -> Bazis9
system.apiVersion = 85 -> Bazis8

----------------------------------------------------------------------------------------------------
15 сентября 2014

Contour2D : {
Min: new HDefinition("Point", 'Левый нижний угол охватывающего прямоугольника'),
Max: new HDefinition("Point", 'Правый верхний угол охватывающего прямоугольника'),
AddEquidistant : new HDefinition("?undefined:contour,offset,false,false", 'Добавить эквидистанту контура. Последние 2 параметры отвечают за направление и скругление')
}

ScriptProperty: {
OnDeactivate : new HDefinition("Function", 'Обработчик деактивации свойства или меню'),
OnValueValidate : new HDefinition("Function", 'Проверка корректности значения'),
ValueValid: new HDefinition("Boolean", 'Флаг корректности введенного значения, выставляется обработчиком OnValueValidate'),
Validate: new HDefinition("?Boolean:", 'Проверить значение свойства и вложенных свойств')
}

----------------------------------------------------------------------------------------------------
2 сентября 2014

ScriptProperty: {
NameEditable: new HDefinition("Boolean", 'Разрешить редактирование имени (для создания таблиц)'),
NewSeparator: new HDefinition("?ScriptProperty", 'Создать разделитель')
}

----------------------------------------------------------------------------------------------------
9 августа 2014

Добавлены подменю в кнопки

InButton : {
NewSubMenu : new HDefinition('?InButton:"Меню"', 'Создать подменю'),
Combo: new Definition("Boolean", 'Отдельная стрелка для подменю')
},

Добавлены всплывающие меню и цвет фона для всех свойств. Созданы обработчики активации и изменения свойства.
Прежнее событие OnChange срабатывало не только при изменении самого параметра, но и при изменении дочерних свойств.
OnValueChange срабатывает только при изменении значения свойства.

ScriptProperty: {
BackColor: new HDefinition("Number", 'Цвет фона'),
PopupMenu: new HDefinition("ScriptMenu", 'Всплывающее меню'),
OnActivate : new HDefinition("Function", 'Обработчик активации свойства пользователем'),
OnValueChange : new HDefinition("Function", 'Обработчик изменения свойства')
Tag: new HDefinition("Number", 'Пользовательское число'),
}

Добавлено выпадающее меню:

ScriptProperty: {
DropDownMenu: new HDefinition("ScriptMenu", 'Выпадающее меню')
}

----------------------------------------------------------------------------------------------------
21 апреля 2014:

Добавлены свойства и методы:

ScriptMaterialProperty: {
Width: new HDefinition("Number", "Ширина листа"),
}

ScriptButtProperty: {
Thickness: new HDefinition("Number", "Толщина кромки"),
Width: new HDefinition("Number", "Ширина ленты"),
}

Contour2D : {
IsPointInside: new HDefinition("?Boolean:x,y", "Находится ли точка внутри контура?"),
IsInContour: new HDefinition("?Boolean:contour", "Находится ли контур внутри другого?"),
IsClosedContour: new HDefinition("?Boolean:", "Является ли контур замкнутым?"),
IsContourRectangle: new HDefinition("?Boolean:", "Является ли контур прямоугольным?"),
OrderContours: new HDefinition("?Boolean:true", "Упорядочить элементы контура в одном направлении")
}


----------------------------------------------------------------------------------------------------
6 февраля 2014

Реализовано подключение и вызов функций COM и OLE объектов

ScriptProperty : {
Expanded: new HDefinition("Boolean", 'Развернуты ли вложенные свойства')
}

Добавлен метод:
NewCOMObject: new HDefinition("?IDispatch:'CLSID'", 'Создать новый COM объект по его типу')
[свернуть]

Нажмите на изображение для увеличения
Название: Базис.jpg
Просмотров: 1496
Размер:	36.4 Кб
ID:	86248

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


Последний раз редактировалось systland; 26.12.2017 в 11:52.. Причина: Добавил объявление.
Просмотров: 1378719
Ответить с цитированием Вверх
6 пользователя(ей) сказали cпасибо:
Старый 07.09.2020, 20:50   #1301
sanyava
Новичок
 
Регистрация: 16.05.2019
Сообщений: 9
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
sanyava пока не определено
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Можно найти, что нужно изменить и через функцию replace заменить на нужное и пустое значение (типа удалить).
У меня есть скрипт меняет цифровое значение у выделенных панелей или если оставить 0 то число убирается.

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


PHP код:
'use strict';
var 
prop Action.Properties;
var 
numm prop.NewNumber('Номер');
var 
botm prop.NewButton('Заменить').OnClick = function(){
    
ObjReplace();
    
Action.Finish();
}

function 
ObjReplace() {
    
Model.forEach(function (obj) {
        if (
obj.Selected == true) {
            
Undo.Changing(obj);
            var 
pan obj.AsPanel;
            if (
pan) {
                var 
nulIe parseInt(obj.Name.match(/\d+/));
                if (
isNaN(nulIe)) {
                    
obj.Name obj.Name numm.Value;
                } else {
                    
obj.Name obj.Name.replace(obj.Nameobj.Name.replace(nulIe, (numm.Value == '' numm.Value)));
                }
            } else {
                for (var 
obj.Count 1>= 0i--) {
                    var 
mod obj.Objects[i].AsPanel;
                    if (
mod) {
                        var 
nulIe parseInt(obj.Objects[i].Name.match(/\d+/));
                        if (
isNaN(nulIe)) {
                            
obj.Objects[i].Name obj.Objects[i].Name ' ' numm.Value;
                        } else {
                            
obj.Objects[i].Name obj.Objects[i].Name.replace(obj.Objects[i].Nameobj.Objects[i].Name.replace(nulIe, (numm.Value == '' numm.Value)));
                        }
                    }
                }
            }
        }
    });
}

Action.Continue(); 
[свернуть]
Тупо добавляет введенное число в конец имени, хоть 0, хоть любое другое число. Или я не понял смысла скрипта ?
sanyava вне форума   Ответить с цитированием Вверх
Старый 07.09.2020, 21:05   #1302
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от sanyava Посмотреть сообщение
Тупо добавляет введенное число в конец имени, хоть 0, хоть любое другое число. Или я не понял смысла скрипта ?
Данный скрипт как пример , добавляет число к имени, но можно переделать код под себя. Или нужен готовый, есть тема заявки на создание скрипта.
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
sanyava (08.09.2020)
Старый 09.09.2020, 11:35   #1303
toucaner
Новичок
 
Регистрация: 15.01.2009
Сообщений: 19
Сказал(а) спасибо: 38
Поблагодарили 7 раз(а) в 6 сообщениях
Вес репутации: 0
toucaner пока не определено
По умолчанию

Можно ли поставить хоткеи на скрипты ?
toucaner вне форума   Ответить с цитированием Вверх
Старый 09.09.2020, 12:14   #1304
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,024 раз(а) в 6,492 сообщениях
Вес репутации: 5257
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от toucaner Посмотреть сообщение
Можно ли поставить хоткеи на скрипты ?
А что, Вы пробовали и у Вас не получилось? Есть же штатная настройка горячих клавиш.
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
donik (09.09.2020)
Старый 09.09.2020, 17:13   #1305
toucaner
Новичок
 
Регистрация: 15.01.2009
Сообщений: 19
Сказал(а) спасибо: 38
Поблагодарили 7 раз(а) в 6 сообщениях
Вес репутации: 0
toucaner пока не определено
По умолчанию

Цитата:
Сообщение от Uncle Посмотреть сообщение
А что, Вы пробовали и у Вас не получилось? Есть же штатная настройка горячих клавиш.
спс, не разглядел эту опцию
toucaner вне форума   Ответить с цитированием Вверх
Старый 13.09.2020, 11:12   #1306
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 423
Сказал(а) спасибо: 52
Поблагодарили 479 раз(а) в 147 сообщениях
Вес репутации: 194
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
System

Системный объект

Методы:

require — Подключить указанный файл JavaScript.

log — Вывести диагностическое сообщение (для отладки).

fileExists —Проверить, существует ли указанный файл.

writeTextFile — Записать текст в файл.

askWriteTextFile —Записать текст в файл с запросом имени файла.

readTextFile — Считать текст из файла.

askReadTextFile — Считать текст из файла с запросом выбора файла.

secureExec —Выполнить зашифрованный код.

exec —Выполнить внешнюю программу.

Свойства:

apiVersion —Текущая версия Bazis API.
Этот объект ограничен только этими методами? Нет ли чего то недокументированного?
Я всё думаю как связать скрипт с внешней программой не через чтение файла.

Ещё вопрос, в описании темы сказано что добавлена поддержка эластичных блоков, но ведь их нет в 8 версии.
Цитата:
Вот полный список новшеств, добавленных в скрипты с момента их выхода:

14 декабря 2014

Добавлена поддержка эластичных блоков

List3D : {
IsElastic: new HDefinition("?Boolean:", 'Являетсяли объект эластичным'),
ElasticResize: new HDefinition("?Vector:newSize", 'Растянуть объект до требуемых размеров'),
}
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 17.09.2020, 23:49   #1307
Aleks-V
Новичок
 
Регистрация: 17.09.2020
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Aleks-V пока не определено
По умолчанию ПОМОГИТЕ

Добрый день!
Начинающий в базисе, подскажите где можно скачать или купить скрипты для базиса 8, для проектировки кухни?
Aleks-V вне форума   Ответить с цитированием Вверх
Старый 18.09.2020, 09:23   #1308
danzum
Новичок
 
Регистрация: 07.05.2018
Сообщений: 7
Сказал(а) спасибо: 14
Поблагодарили 12 раз(а) в 1 сообщении
Вес репутации: 0
danzum на пути к лучшему
По умолчанию

Цитата:
Сообщение от Aleks-V Посмотреть сообщение
Добрый день!
Начинающий в базисе, подскажите где можно скачать или купить скрипты для базиса 8, для проектировки кухни?
http://promebelclub.ru/forum/showthread.php?t=13300
danzum вне форума   Ответить с цитированием Вверх
Старый 20.09.2020, 10:58   #1309
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 423
Сказал(а) спасибо: 52
Поблагодарили 479 раз(а) в 147 сообщениях
Вес репутации: 194
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Как сместить все выделенные объекты вместе с подсвеченной фурнитурой?
В ручную двигается нормально, а с помощью например PositionX фурнитура остаётся на месте.
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 20.09.2020, 19:26   #1310
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 423
Сказал(а) спасибо: 52
Поблагодарили 479 раз(а) в 147 сообщениях
Вес репутации: 194
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Сделал костыль с помощью сторонней программы, так и не понял как это всё реализовать только силами Базиса.

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






Переделал на использование метода копирования по линии.
[свернуть]

Последний раз редактировалось systland; 21.09.2020 в 11:51.
sergio1982 вне форума   Ответить с цитированием Вверх
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1441 27.02.2024 10:48
БАЗИС 9 nayrogi Базис-мебельщик 9 785 01.10.2022 23:13
БАЗИС-ЧПУ 8 chingisnah Базис-мебельщик 8 119 21.12.2017 22:04
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 16.01.2014 00:37


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


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

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