|
|
|
|
|
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..
|
Просмотров: 996558
|
Пользователь сказал cпасибо:
|
|
03.07.2014, 03:28
|
#341
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 387
|
Чот работает через раз. Потом посмотрю.
|
|
|
03.07.2014, 09:46
|
#342
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
|
Альтернативный вариант равномерного расположения полок:
Скрытый текст
MinY = 1e10; // низ нижней полки
MaxY = -1e10; // верх верхней полки
SumThickness = 0; // суммарна толщина панелей
Count = 0; // количество панелей
for (k = 0; k < Model.SelectionCount; k++) {
obj = Model.Selections[k];
if (obj.Thickness > 1) {
if (obj.GabMin.y < MinY)
MinY = obj.GabMin.y;
if (obj.GabMax.y > MaxY)
MaxY = obj.GabMax.y;
SumThickness += obj.Thickness;
Count = Count + 1;
}
}
// нужное расстояние между полками
SpaceBetween = (MaxY - MinY - SumThickness) / (Count - 1);
CurY = MinY;
for (k = 0; k < Model.SelectionCount; k++) {
obj = Model.Selections[k];
if (obj.Thickness > 1) {
Undo.Changing(obj);
obj.Translate(0, CurY - obj.GabMin.y, 0);
CurY = CurY + SpaceBetween + obj.Thickness;
}
}
[свернуть]
|
|
|
Пользователь сказал cпасибо:
|
|
04.07.2014, 11:52
|
#343
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Господа, завис.....
Хотел сделать скрипт: проставить на фасад амортизаторы врезные (глухое отверстие 8*10мм), 4 (или 2) шт в уголки, по 10мм от края.
алгоритм прост вроде бы: выделить панель, поставить крепеж.... но ничего не выходит....
если делать фасад с нуля, все гуд, а вот проставить на выделенную панель - никак.
Гуру - спасайте.
|
|
|
05.07.2014, 13:34
|
#344
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
|
Props = Action.Properties;
Furn = Props.NewFurniture('Крепеж');
OffsetX = Props.NewNumber('Отступ x', 20);
OffsetY = Props.NewNumber('Отступ y', 20);
Options = 'myfurn.xml';
Props.Load(Options);
Action.OnFinish = function() { Props.Save(Options) }
while (Panel = GetPanel("Укажите панель"))
{
Pos = NewVector();
Pos.x = Panel.GMin.x + OffsetX.Value;
Pos.y = Panel.GMin.y + OffsetY.Value;
Pos.z = Panel.GMax.z;
Pos = Panel.ToGlobal(Pos)
system.log('x = ' + Pos.x);
system.log('y = ' + Pos.y);
system.log('z = ' + Pos.z);
Furn.Value.Mount1(Panel, Pos.x, Pos.y, Pos.z, 0);
}
|
|
|
05.07.2014, 15:40
|
#345
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Спасибо, будем попробовать!
пробую....
Props = Action.Properties;
Furn = Props.NewFurniture('Крепеж');
OffsetX = Props.NewNumber('Отступ x', 10);
OffsetY = Props.NewNumber('Отступ y', 10);
Options = 'myfurn.xml';
Props.Load(Options);
Action.OnFinish = function() { Props.Save(Options) }
while (Panel = GetPanel("Укажите панель"))
{
Pos = NewVector();
Pos.x = Panel.GMin.x + OffsetX.Value;
Pos.a = Panel.GMax.x - OffsetX.Value;
Pos.y = Panel.GMin.y + OffsetY.Value;
Pos.z = Panel.GMax.z;
Pos = Panel.ToGlobal(Pos)
system.log('x = ' + Pos.x);
system.log('y = ' + Pos.y);
system.log('z = ' + Pos.z);
Furn.Value.Mount1(Panel, Pos.x, Pos.y, Pos.z, 0);
Furn.Value.Mount1(Panel, Pos.a, Pos.y, Pos.z, 0);
}
И ничего....(Это я хотел еще 1 крепеж поставить в другой угол)
|
|
|
05.07.2014, 21:03
|
#346
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
|
Координата "a" это что-то новенькое.
У точки коодинаты могут быть только x, y, z. Если нужно поставить другой крепеж в другую точку - нужно объявить другую точку, Pos2 = NewVector();
|
|
|
06.07.2014, 02:59
|
#347
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 387
|
Может кто делал. Не сверялся.
Задача: Кухня расставлена и клиент теперь выбирает в каких дверях будут стёкла.
В этом скрипте пока только прямоугольный вырез.
Использование: Выбираем панели, в которых будут стёкла, Запускаем скрипт, изменяем параметры.
Кто знает как во время работы скрипта убрать одну пропертю, отобразить другую, или постоянно перестраивать проперти целиком?
и как это правильнее сделать после выбора в Комбе?
|
|
|
Пользователь сказал cпасибо:
|
|
06.07.2014, 08:10
|
#348
|
Новичок
Регистрация: 17.09.2009
Сообщений: 8
Сказал(а) спасибо: 2
Поблагодарили 2 раз(а) в 1 сообщении
Вес репутации: 0
|
Подскажите, как написать скрипт чтобы он рисовал панель неправильной формы
|
|
|
06.07.2014, 09:31
|
#349
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
|
В предпоследнем посте есть пример этого, да и в поставке идет немало примеров, не ленитесь посмотреть
|
|
|
06.07.2014, 10:11
|
#350
|
Новичок
Регистрация: 17.09.2009
Сообщений: 8
Сказал(а) спасибо: 2
Поблагодарили 2 раз(а) в 1 сообщении
Вес репутации: 0
|
Спасибо Все нашел
|
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 13:17. Часовой пояс GMT +3.
|