Форум профессиональных мебельщиков PROMEBELclub

Форум профессиональных мебельщиков PROMEBELclub (https://промебельклуб.рф/forum/index.php)
-   Базис-мебельщик. Скрипты (https://промебельклуб.рф/forum/forumdisplay.php?f=273)
-   -   БАЗИС 8 - Скрипты (https://промебельклуб.рф/forum/showthread.php?t=7533)

Igor_482 13.01.2014 13:22

БАЗИС 8 - Скрипты
 
Вложений: 1
ВНИМАНИЕ! Правила выкладывания скриптов.

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 объект по его типу')
[свернуть]

Вложение 86248

sborchik 13.01.2014 13:26

Вложений: 1
Цитата:

Сообщение от Igor_482 (Сообщение 258286)
Интересует информация по редактору скриптов в БМ8.

Скрипты как скрипты.. Учебников полно.
Примеры - только те, что есть.
Пишите скрипт и сохраняете в папке Scripts (C:\Users\user\Documents\Bazis8)

ЗЫ. Не вы, случайно, на другом форуме?)
Вложение 86249

Igor_482 13.01.2014 13:42

Цитата:

Сообщение от sborchik (Сообщение 258287)
Примеры - только те, что есть.
Пишите скрипт и сохраняете в папке Scripts (C:\Users\user\Documents\Bazis8)/

Не совсем понял о каких примерах идет речь. Что такое Java скрипт мне в общих чертах понятно. Вопрос в том, что дает их использование в БМ8. Задавая свой вопрос я предположил, что в БМ8 реализован API и встроенный редактор позволяет программно использовать функции программы для расширения ее возможностей. Например: мне нужно при моделировании присвоить некий код создаваемой детали из какой либо сторонней БД - я используя информацию по программному интерфейсу БМ8 пишу скрипт который это реализует и таким образом решаю эту свою "проблему" (адаптирую данное ПО под свое производство). Т.е. интересует конкретная информация по данной функции: какие практические цели этот редактор реализует в отношении БМ8, верны ли мои предположения?

Цитата:

Сообщение от sborchik (Сообщение 258287)
ЗЫ. Не вы, случайно, на другом форуме?)

Действительно похож ))) но это не я )

sborchik 13.01.2014 13:53

Вложений: 1
Цитата:

Сообщение от Igor_482 (Сообщение 258288)
Не совсем понял о каких примерах идет речь.

Вложение 86252

Возможно, эту тему еще рано обсуждать на форуме?

Am0ralist 13.01.2014 16:15

Цитата:

Сообщение от Igor_482 (Сообщение 258288)
Не совсем понял о каких примерах идет речь. Что такое Java скрипт мне в общих чертах понятно.

Для начала:
"Java представляет собой объектно-ориентированный язык программирования, а JavaScript - это объектно-ориентированный язык создания сценариев"
Ваше написание же - это просто что-то с нечто. Не надо так.
Цитата:

Сообщение от Igor_482 (Сообщение 258288)
Т.е. интересует конкретная информация по данной функции: какие практические цели этот редактор реализует в отношении БМ8, верны ли мои предположения?

Скриптовый язык - по сути набор команды, которые эта программа выполняет. Таким образом написанный скрипт - это порядок действий программы Базис с какими-то заданными условиями (либо внесенными в скрипт, либо по выбору пользователя). То есть написав скрипт, вы автоматизируете какие-то действия, которые пользователь может сделать сам, но в силу их однотипности можно описать алгоритм и возложить выполнение этой задачи - на программу. Скрипт будет выполняться только после запуска, а выполнив свою задачу - завершится, давая пользователю дальше делать свою задачу.

Сможете ли вы что-то сделать или нет для адаптации - это зависит от того, какие действия можно будет задавать в скрипте и что вы хотите получить в итоге.
То есть нарисовать тумбочку - вы сможете, заполнив несколько значений (например, габариты, количество ящиков и материалы). Но надеяться, что он будет думать за конструкторов - вряд ли.
Цитата:

Сообщение от Igor_482 (Сообщение 258288)
Например: мне нужно при моделировании присвоить некий код создаваемой детали из какой либо сторонней БД - я используя информацию по программному интерфейсу БМ8 пишу скрипт который это реализует и таким образом решаю эту свою "проблему" (адаптирую данное ПО под свое производство).

Если будет команда переименования панелей и можно будет четко сформулировать алгоритм, в каком случае панель нужно назвать так, а в каком - по другому, то после запуска скрипта в принципе можно и подобное: найти по условиям и переименовать, иначе - нет. А если задача стоит в духе: строишь панель как обычно, а ей автоматом сразу же присвоилось название из базы данных другой программы - то это вряд ли.

Добавлено через 9 минут
Цитата:

Сообщение от sborchik (Сообщение 258290)
Возможно, эту тему еще рано обсуждать на форуме?

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

maxgmv 13.01.2014 16:53

Цитата:

Сообщение от sborchik (Сообщение 258290)
Вложение 86252

Возможно, эту тему еще рано обсуждать на форуме?

В принципе можно и обсуждать, т.к. объявлен вебинар на тему Скриптов, который пройдет 30 января.
http://www.bazissoft.ru/bazis-news/1...ary-march-2014

FIDEL 13.01.2014 17:10

Цитата:

В принципе можно и обсуждать,
К сожалению, обсуждать получится только тем пользователям, которые хоть что-то могут понять в JavaScript.
Для таких же пользователей как я, которые в данном вопросе "ни в зуб ногой" остается только методом научного тыка разбирать примеры скриптов из поставки , заменяя некоторые параметры на свои(если разобрался, что именно в данной строке написано).
Либо, как вариант, если на данном форуме кто-то владеет javascript-ом , то может такой человек сможет преподать некоторые базовые знания, как именно для Базис-Мебельщика можно реализовать то или иное задание.

Igor_482 13.01.2014 17:20

Вложений: 1
Цитата:

Сообщение от Am0ralist (Сообщение 258319)
"Java представляет собой объектно-ориентированный язык программирования, а JavaScript - это объектно-ориентированный язык создания сценариев"
Ваше написание же - это просто что-то с нечто. Не надо так.

Могли бы вы быть в своих сообщениях более конкретны? Какое именно написание Вас так смущает? Вместо "JavaScript" "Java скрипт"? Не соглашусь с тем, что эта ошибка в терминологии является существенной, при том, что суть вопроса ясна, тем более это форум мебельщиков.
Цитата:

Сообщение от Am0ralist (Сообщение 258319)
Но надеяться, что он будет думать за конструкторов - вряд ли.

А разве об этом идет речь? Взять некие данные из БД и вставить в БМ - разве это не относится на прямую к алгоритмам, реализация которых, возлагается на эти самые скрипты.
Цитата:

Сообщение от Am0ralist (Сообщение 258319)
Скриптовый язык - по сути набор команды

О том и речь - набор каких команд, есть ли информация по этим командам?
Цитата:

Сообщение от Am0ralist (Сообщение 258319)
подобные проблемы с "утечками" проще было бы решать закрытыми разделами на определенных форумах для обсуждения. это бы и другой вопрос решило бы...

О каких вы утечках говорите? Поясните свои мысли пожалуйста.

Цитата:

Сообщение от Ovsyanicov (Сообщение 258346)
Уважаемые коллеги, а в каком релизе БМ8.0 появился редактор скриптов?

Вложение 86271

Ovsyanicov 13.01.2014 17:21

Уважаемые коллеги, а в каком релизе БМ8.0 появился редактор скриптов?

maxgmv 13.01.2014 17:34

Цитата:

Уважаемые коллеги, а в каком релизе БМ8.0 появился редактор скриптов?
Должен быть в ближайшем обновление.


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

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