|
|
|
|
|
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..
|
Просмотров: 996087
|
Пользователь сказал cпасибо:
|
|
23.01.2014, 09:41
|
#81
|
Местный
Регистрация: 16.11.2011
Адрес: Москва / Пенза
Сообщений: 1,135
Сказал(а) спасибо: 307
Поблагодарили 1,257 раз(а) в 524 сообщениях
Вес репутации: 516
|
Цитата:
Сообщение от botik
Так в скриптах её можно создать?
|
Просто найти неокромленные торцы - думаю будет легко. А вот понять, что он открыт частично или полностью или закрыт - у скрипта глаз нет, тут, как мне кажется, придется долго думать и реализовывать нестандартный алгоритм
Добавлено через 2 минуты
Дмитрий, а хелпа по скриптам в виде PDF-ки (для печати) не бывает? А то редактировать chm-ку в том виде, как она сейчас - долго, а печатать как есть - очень много бумаги...
__________________
Нахожусь в режиме поиска интересных задач, связанных с Базисом. Москва, 2015.
|
|
|
23.01.2014, 10:22
|
#82
|
Местный
Регистрация: 24.07.2009
Адрес: Минск
Сообщений: 302
Сказал(а) спасибо: 674
Поблагодарили 296 раз(а) в 97 сообщениях
Вес репутации: 269
|
Цитата:
Сообщение от Am0ralist
А вот понять, что он открыт частично или полностью
|
Наверно выражусь по дилетантски.Но может заинтересованного человека подтолкнёт на мысль.Если как в экселе "правда-ложь"или условие-"если" использовать расстояние между открытым торцом и пластью панели?
|
|
|
23.01.2014, 10:23
|
#83
|
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,977
Сказал(а) спасибо: 7,296
Поблагодарили 16,963 раз(а) в 3,224 сообщениях
Вес репутации: 4063
|
Цитата:
Сообщение от Am0ralist
а хелпа по скриптам в виде PDF-ки (для печати) не бывает?
|
Так подойдет?
|
|
|
23.01.2014, 12:08
|
#84
|
Местный
Регистрация: 16.11.2011
Адрес: Москва / Пенза
Сообщений: 1,135
Сказал(а) спасибо: 307
Поблагодарили 1,257 раз(а) в 524 сообщениях
Вес репутации: 516
|
Цитата:
Сообщение от AlexBolton
Так подойдет?
|
Спасибо) у меня вот с закладками не получалось.
Но я именно для печати хотел, чтоб раза в три страничек поменьше было.
Пока сам ковыряю, 140 страничек в 56 утрамбовались) за сегодня-завтра допилю может в перерывах между делами.
__________________
Нахожусь в режиме поиска интересных задач, связанных с Базисом. Москва, 2015.
|
|
|
23.01.2014, 13:22
|
#85
|
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,977
Сказал(а) спасибо: 7,296
Поблагодарили 16,963 раз(а) в 3,224 сообщениях
Вес репутации: 4063
|
Цитата:
Сообщение от Am0ralist
Но я именно для печати хотел, чтоб раза в три страничек поменьше было.
|
Pdf - ужатый по страницам с заголовками
Doc - ужатый по страницам (редакцией стиля можно ужать ещё больше - междустрочные и тэги заголовков и основного шрифта)
|
|
|
Пользователь сказал cпасибо:
|
|
23.01.2014, 13:39
|
#86
|
Местный
Регистрация: 16.11.2011
Адрес: Москва / Пенза
Сообщений: 1,135
Сказал(а) спасибо: 307
Поблагодарили 1,257 раз(а) в 524 сообщениях
Вес репутации: 516
|
Цитата:
Сообщение от AlexBolton
Pdf - ужатый по страницам с заголовками
Doc - ужатый по страницам (редакцией стиля можно ужать ещё больше - междустрочные и тэги заголовков и основного шрифта)
|
Слушайте, вы - волшебник) Пара менять мне инструменты, чувствуется
__________________
Нахожусь в режиме поиска интересных задач, связанных с Базисом. Москва, 2015.
|
|
|
23.01.2014, 14:30
|
#87
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Подогнал под себя скрипт установки полок съемных в секцию. Ставится все гуд,кромки катаются, панели именуются, текстура вращается, но нужно слегка подкорректировать. Полкодержатели должны базироваться от зада с шагом 64мм, шаг до 1 =64мм, ну а передний не менее 30мм от лица. Пробовал взять из примеров - как только речь заходит об ОСТ (например Ost = (Gl.Value - 37 - 40) % 32 - подсвет красным - ошибка...Помогайте, гуру....
Скрытый текст
Код:
// Установка полок в секцию
ShelfCount = NewNumberInput('Количество полок');
ShelfCount.Value = 5;
KrVidimKorp = NewButtMaterialInput("вид");
KrNotVidimKorp = NewButtMaterialInput("невид");
SetCamera(p3dFront);
LeftPanel = GetPanel('Укажите левую панель');
RightPanel = GetPanel('Укажите правую панель');
Left = LeftPanel.GabMax.x;
Right = RightPanel.GabMin.x;
Top = GetEdge('Укажите верхнюю границу', AxisX).First.y;
Bottom = GetEdge('Укажите нижнюю границу', AxisX).First.y;
SetCamera(p3dLeft);
Back = GetEdge('Укажите заднюю границу', AxisY).First.z;
Front = GetEdge('Укажите переднюю границу', AxisY).First.z;
Offset = 0;
Count = ShelfCount.Value;
Thick = ActiveMaterial.Thickness;
PosY = Bottom;
SectionHeight = Top - Bottom;
YInc = (SectionHeight - Count * Thick) / (Count + 1);
LCorner = OpenFurniture('Крепёж\\полкодержатель арт.ЕА24+242_L_CGR+ доп отв +-32.f3d');
for (var k = 0; k < Count; k++) {
PosY += YInc;
Panel = AddHorizPanel(Left + Offset, Back + Offset, Right - Offset,
Front - 7, PosY);
Panel.TextureOrientation = TextureOrientation.Horizontal;
Panel.AddButt(KrNotVidimKorp, 0);
Panel.AddButt(KrNotVidimKorp, 1);
Panel.AddButt(KrVidimKorp, 2);
Panel.AddButt(KrNotVidimKorp, 3);
//Присваиваем панели имя
Panel.Name = 'Полка съемная';
LCorner.Mount(Panel, LeftPanel, Left, PosY, Back + 64);
LCorner.Mount(Panel, RightPanel, Right, PosY, Back + 64);
LCorner.Mount(Panel, LeftPanel, Left, PosY, Front - 64);
LCorner.Mount(Panel, RightPanel, Right, PosY, Front - 64);
PosY += Thick;
}
SetCamera(p3dFront);
[свернуть]
|
|
|
23.01.2014, 18:22
|
#88
|
Местный
Регистрация: 18.08.2008
Сообщений: 116
Сказал(а) спасибо: 110
Поблагодарили 105 раз(а) в 27 сообщениях
Вес репутации: 223
|
Скрытый текст
Код:
shag=64;
RasstOtPereda=30;
for (var Sdvig=64; Sdvig < (Gl.Value - RasstOtPereda ;Sdvig++))
{
Sdvig+=Sdvig;
}
if ((Sdvig + RasstOtPereda) > Gl.Value
{
Sdvig = Sdvig - shag ;
}
for (var k = 0; k < Count; k++) {
PosY += YInc;
Panel = AddHorizPanel(Left + Offset, Back + Offset, Right - Offset,
Front - 7, PosY);
Panel.TextureOrientation = TextureOrientation.Horizontal;
Panel.AddButt(KrNotVidimKorp, 0);
Panel.AddButt(KrNotVidimKorp, 1);
Panel.AddButt(KrVidimKorp, 2);
Panel.AddButt(KrNotVidimKorp, 3);
//??????????? ?????? ???
Panel.Name = '????? ???????';
LCorner.Mount(Panel, LeftPanel, Left, PosY, Back + shag);
LCorner.Mount(Panel, RightPanel, Right, PosY, Back + shag);
LCorner.Mount(Panel, LeftPanel, Left, PosY, Back + Sdvig);
LCorner.Mount(Panel, RightPanel, Right, PosY, Back + Sdvig);
PosY += Thick;
}
[свернуть]
Вроде должно работать.
Если не работает скиньте весь код.
|
|
|
24.01.2014, 09:57
|
#89
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Спасибо, но не работает.
for (var Sdvig=64; Sdvig < (Gl.Value - RasstOtPereda ;Sdvig++))
{
высвечивает ошибку 34-SyntaxError:missing) in parenthrtical
|
|
|
24.01.2014, 10:00
|
#90
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
А вот и весь код
Скрытый текст
Код:
// Установка полок в секцию
ShelfCount = NewNumberInput('Количество полок');
ShelfCount.Value = 5;
KrVidimKorp = NewButtMaterialInput("вид");
KrNotVidimKorp = NewButtMaterialInput("невид");
SetCamera(p3dFront);
LeftPanel = GetPanel('Укажите левую панель');
RightPanel = GetPanel('Укажите правую панель');
Left = LeftPanel.GabMax.x;
Right = RightPanel.GabMin.x;
Top = GetEdge('Укажите верхнюю границу', AxisX).First.y;
Bottom = GetEdge('Укажите нижнюю границу', AxisX).First.y;
SetCamera(p3dLeft);
Back = GetEdge('Укажите заднюю границу', AxisY).First.z;
Front = GetEdge('Укажите переднюю границу', AxisY).First.z;
Offset = 0;
Count = ShelfCount.Value;
Thick = ActiveMaterial.Thickness;
PosY = Bottom;
SectionHeight = Top - Bottom;
YInc = (SectionHeight - Count * Thick) / (Count + 1);
LCorner = OpenFurniture('Крепёж\\полкодержатель арт.ЕА24+242_L_CGR+ доп отв +-32.f3d');
shag=64;
RasstOtPereda=30;
for (var Sdvig=64; Sdvig < (Gl.Value - RasstOtPereda ;Sdvig++))
{
Sdvig+=Sdvig;
}
if ((Sdvig + RasstOtPereda) > Gl.Value
{
Sdvig = Sdvig - shag ;
}
for (var k = 0; k < Count; k++) {
PosY += YInc;
Panel = AddHorizPanel(Left + Offset, Back + Offset, Right - Offset,
Front - 7, PosY);
Panel.TextureOrientation = TextureOrientation.Horizontal;
Panel.AddButt(KrNotVidimKorp, 0);
Panel.AddButt(KrNotVidimKorp, 1);
Panel.AddButt(KrVidimKorp, 2);
Panel.AddButt(KrNotVidimKorp, 3);
//Присваиваем панели имя
Panel.Name = 'Полка съемная';
LCorner.Mount(Panel, LeftPanel, Left, PosY, Back + shag);
LCorner.Mount(Panel, RightPanel, Right, PosY, Back + shag);
LCorner.Mount(Panel, LeftPanel, Left, PosY, Back + Sdvig);
LCorner.Mount(Panel, RightPanel, Right, PosY, Back + Sdvig);
PosY += Thick;
}
SetCamera(p3dFront);
[свернуть]
|
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 23:30. Часовой пояс GMT +3.
|