|
|
|
|
|
13.01.2014, 13:22
|
|
БАЗИС 9 - Скрипты
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
13.01.2014, 13:22
Рейтинг:
()
ВНИМАНИЕ! Правила выкладывания скриптов.
1. Если в скрипте нет ссылок на фурнитуру, фрагменты и.т.д то достаточно его упаковать в архив и выложить.
2. Если в скрипте есть ссылки на фурнитуру, фрагменты и т.д. то архив должен содержать папку с самим скриптом и всеми файлами на которые есть ссылки в тексте скрипта.
Т.к. при запуске скрипта на другом компе возникает ошибка о не возможности открыть то или иной файл и скрипт до конца не отрабатывает свой текст. Не соблюдается "чистота проверки" работы скрипта.
__________________________________________________ _______________
Интересует информация по редактору скриптов в БМ8. Существует ли справочная документация и примеры использования скриптов в БМ8. Какие возможности дает данная функция? Владеющим информацией по данному вопросу просьба поделиться ею.
Для работы скриптов от Igor_482 необходим установленный ODBC драйвер FireBird, установленные и зарегистрированные в ОС модули FBDBDialog.dll, MSDATGRD.OCX, MSCOMCTL.OCX и MSSTDFMT.DLL ( сообщение с описанием установки этих модулей в ОС, ссылка на модули и исходник "FBDBDialog.dll") а так же файл "ADODB.ini" с настройками соединения к БД в папке со скриптом.
ADODB.ini
[General]
FDBServ = t001
FBSPort = 14357
FDBFile = D:\DBBM\Библиотека\БД\BMDB09.FDB
FBCFile = C:\Windows\System32\fbclient.dll
----------------------------------------------
Переменные .ini:
FDBServ - имя ПК на котором находится сервер FireBird с используемой БД (если локально, то параметр: localhost или 127.0.0.1);
FBSPort - в настройке не нуждается (по умолчанию: 14357);
FDBFile - локальный путь к БД на сервере FireBird;
FBCFile - путь к файлу "fbclient.dll" (находится в корневой папке программы Базис).
[свернуть]
Последний раз редактировалось systland; 23.09.2016 в 11:52..
|
Просмотров: 985388
|
Пользователь сказал cпасибо:
|
|
25.07.2017, 21:31
|
#1351
|
Местный
Регистрация: 16.03.2008
Адрес: Челябинск CCCР
Сообщений: 445
Сказал(а) спасибо: 829
Поблагодарили 435 раз(а) в 188 сообщениях
Вес репутации: 419
|
у меня заведено в базу ПЛИТКА №1, ПЛИТКА №2.....ПЛИТКА №5 вполне хватает пяти плиток при проектировании дизайна помещений(личное мнение). Текстуру каждый раз назначаю в соответствии с пожеланиями заказчика.
|
|
|
26.07.2017, 11:47
|
#1352
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от FIDEL
есть ли возможность скриптом выбрать все панели определенного материала в модели и переименовать это материал произвольным образом ( не выбирая из Базы материалов)
|
Надеюсь, что правильно понял вопрос и набросал примерный скрипт. Как им пользоваться:
1. Запустить скрипт, выбрать панель с материалом, который нужно заменить.
2. Ввести новое имя материала в появившееся поле и всё.
Код скрипта под спойлером.
Скрытый текст
Код:
var panel = GetPanel('Выберите панель, материал которой надо заменить');
if (panel){
var oldName = panel.MaterialName;
var newName = prompt('Старый материал:' + oldName + '. Введите новое название материала');
if (newName){
Model.forEachPanel(function (panel) {
if (panel.MaterialName === oldName)
panel.MaterialName = newName;
});
}
}
[свернуть]
|
|
|
9 пользователя(ей) сказали cпасибо:
|
|
26.07.2017, 14:06
|
#1353
|
VIP
Регистрация: 24.06.2010
Адрес: Україна, Проскурів
Сообщений: 1,950
Сказал(а) спасибо: 6,603
Поблагодарили 5,053 раз(а) в 1,304 сообщениях
Вес репутации: 1373
|
Вопрос понят правильно. Огромное спасибо.
Единственное, если можно - менять материал в ЗАРАНЕЕ выделенных панелях. То есть Выделить по материалу- запустить скрипт ( или выделять все панели нужного материала самим скриптом, я не знаю как проще) и присвоить новое наименование материала выделенному.
P.S. проверил только что внимательнее- даже при выделении какой-либо одной панели- меняет материал у всех панелей данного материала. Так как нужно.
|
|
|
26.07.2017, 14:40
|
#1354
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от FIDEL
менять материал в ЗАРАНЕЕ выделенных панелях
|
Тогда можно первую строчку заменить на эту и просто перед выполнением скрипта выделить панель с нужным материалом.
Код:
var panel = Model.Selected;
|
|
|
7 пользователя(ей) сказали cпасибо:
|
|
04.08.2017, 10:17
|
#1355
|
Новичок
Регистрация: 03.04.2016
Адрес: Бронницы
Сообщений: 19
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Уважаемые форумчане!
Подскажите, пожалуйста, для чего нужны и как пользоваться следующими свойствами и методами:
1. OnActivate.
2. OnDeactivate.
3. NewSeparator.
Заранее спасибо!
|
|
|
06.08.2017, 13:40
|
#1356
|
Новичок
Регистрация: 28.07.2017
Сообщений: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Добрый день. Подскажите пожалуйста по анимации.
В скрипте созданы свойства угол открытия и смещение двери, как эти значения привязать к AnimationType.DoorLeft, т е чтобы после того как скрипт закончил работу, значения введенные пользователем (открытие и смещение двери) сохранились в AnimationType.DoorLeft
MakeProp();
BtnMake = NewButtonInput('Закончить');
BtnMake.OnChange = function() {
Action.Finish();
}
Make();
Action.Continue();
function MakeProp() {
Prop = Action.Properties;
H1 = Prop.NewNumber('Высота двери', 800);
W1 = Prop.NewNumber('Ширина двери', 300);
AnimDver = Prop.NewGroup('Анимация');
Ugol = AnimDver.NewNumber('Угол открытия', 100);
Sme = AnimDver.NewNumber('Смещение', 30);
//Make();
Prop.OnChange = function() {
DeleteNewObjects();
Make();
}
}
function Make() {
Block = BeginBlock("Дверь")
Dver = AddPanel(W1.Value, H1.Value);
Dver.Build();
EndBlock();
Block.AnimType = AnimationType.DoorLeft;
}
|
|
|
07.08.2017, 09:37
|
#1357
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от alexrain
Уважаемые форумчане!
Подскажите, пожалуйста, для чего нужны и как пользоваться следующими свойствами и методами:
1. OnActivate.
2. OnDeactivate.
3. NewSeparator.
Заранее спасибо!
|
1, 2. OnActivate и OnDeactivate обрабатывают активацию/деактивацию свойства. То есть, когда на панели свойств мы выбираем кнопку, текстовое поле и т.д. (без его изменения, просто выделяем) срабатывает событие активации. Если до этого было выделено другое свойство, у него сработает событие деактивации (Примечание: деактивация предыдущего свойства срабатывает раньше активации текущего!). Советов по использованию дать не могу, т.к. самому не приходилось их использовать.
3. NewSeparator создает разделитель - на панели свойств это просто еще одно пустое свойство без всяких полей, кнопок и т.д. То есть, это что-то типа интерфейсного элемента для разделения каких-то групп параметров.
Добавлено через 9 минут
Цитата:
Сообщение от EVGENTAR
Добрый день. Подскажите пожалуйста по анимации.
В скрипте созданы свойства угол открытия и смещение двери, как эти значения привязать к AnimationType.DoorLeft, т е чтобы после того как скрипт закончил работу, значения введенные пользователем (открытие и смещение двери) сохранились в AnimationType.DoorLeft
|
Как я понял, Вашему скрипту не хватает этих строк:
Код:
Block.DoorAngle = Ugol.Value; //присваиваем угол
Block.DoorShift = Sme.Value; //присваиваем смещение
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
07.08.2017, 21:05
|
#1358
|
Новичок
Регистрация: 28.07.2017
Сообщений: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Большое спасибо, все работает.
Есть еще вопрос, как сделать анимацию подъемной кровать (шкаф-кровать).
Получается, что нужно установить ось вращения в определенном месте панели или блока. Как можно это сделать.
|
|
|
08.08.2017, 09:32
|
#1359
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от EVGENTAR
Есть еще вопрос, как сделать анимацию подъемной кровать (шкаф-кровать).
Получается, что нужно установить ось вращения в определенном месте панели или блока. Как можно это сделать.
|
На примере предыдущего скрипта с дверью:
Код:
var anim = Block.Animation;
if (anim){ //анимации может и не быть
//Устанавливаем ось анимации как ось ОХ
anim.AxisStart = {x: 0, y: 0, z: 0}; // точка начала (0, 0, 0)
anim.AxisEnd = {x: 1, y: 0, z: 0}; // точка конца (1, 0, 0)
}
|
|
|
6 пользователя(ей) сказали cпасибо:
|
|
08.08.2017, 20:14
|
#1360
|
Новичок
Регистрация: 28.07.2017
Сообщений: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Большое спасибо Letos за помощь.
Где Вы находите все эти функции и как узнаете правильность записи?
|
|
|
|
|
|
Нижняя навигация
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 03:19. Часовой пояс GMT +3.
|