|
|
|
|
|
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..
|
Просмотров: 994085
|
Пользователь сказал cпасибо:
|
|
28.09.2015, 16:40
|
#891
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Огромное спасибо! Все работает, и большой респект за сохранение параметров. Пойду перебивать все свои скрипты под данный шаблон - так удобнее.
|
|
|
28.09.2015, 21:17
|
#892
|
VIP
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
|
Цитата:
Сообщение от Uncle
И вообще , почему то шкант углубляется в пласть на половину своей длины, хотя в Параметрах указано 10 мм...
|
Шкант, как произвольная фурнитура, созданный по схеме "пласть-торец" устанавливается корректно..
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
|
|
|
29.09.2015, 09:44
|
#893
|
VIP
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
|
Цитата:
Сообщение от maxgmv
Держите
|
В общем, скрипт отличный. Если есть возможность у тех кто в теме немножко переделать его для вертикальных перегородок, для накладных крыши и дна и для полок - буду очень благодарен. Пробовал сам разбираться и редактировать- потратил несколько часов - так толком ничего и не вышло.
Для перегородки - в принципе все то же но это должна быть вертикальная панель между двумя горизонтальными.
Для полки - дополнительно указывать отступы по бокам и стороны облицовки
Для крыши и дна - накладная горизонтальная панель с указанием сторон облицовки..
Благодарность может быть выражена в денежном эквиваленте
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
|
|
|
29.09.2015, 12:38
|
#894
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Все, что вы просите - весьма просто....(на мой дилетанский взгляд). Правда, не в одном скрипте, а в нескольких.
Я иду слегка по другому пути.... Вот пример - рыба короба.
Но и ее нужно долепливать - например, задняя стенка ставить эксцентрики с шагом по всей длине. Гуру - помогайте!
А скрипт хорош уже тем, что опоры камар развернуты как нужно - отверстия внутрь шкафа.
скрипт в работе - дверь ставлю, петли на неё....
Тело:
Код HTML:
OkBtn = NewButtonInput("ЗАКОНЧИТЬ")
OkBtn.OnChange = function() {
Action.Cancel();
};
FileOptions = 'короб2.xml';
Makeprop();
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
};
function Makeprop() {
Action.Properties.Load(FileOptions);
Prop = Action.Properties;
KrVidimKorp = Prop.NewButt("корпус видимая кромка");
KrNotVidimKorp = Prop.NewButt("корпус невидимая кромка");
KrDV = Prop.NewButt("дверь кромка");
Thick = ActiveMaterial.Thickness;
MatDV = Prop.NewMaterial(' дверь');
MatKorp = Prop.NewMaterial(' з.с');
prit = Prop.NewNumber('притопление');
prit.Value = 7;
Screw = Prop.NewFurniture('опора');
V135 = Prop.NewFurniture('крепеж дна')
V35 = Prop.NewFurniture('крепеж крыши')
rast = Prop.NewFurniture('крепеж задней стенки');
prit2 = Prop.NewNumber('высота цоколя');
prit2.Value = 50;
Btn = Prop.NewButton('ЗАКОНЧИТЬ')
Btn.OnClick = function() {
Action.Cancel();
};
};
SetCamera(p3dTop);
SetCamera(p3dLeft);
p1 = GetPoint('Укажите нижнюю заднюю точку');
p2 = GetPoint('Укажите верхнюю переднюю точку');
SetCamera(p3dTop);
p3 = GetPoint('Укажите габарит шкафа');
p33 = p1.x;
V1 = AddVertPanel(p1.z, p1.y+10, p2.z, p2.y, p1.x);
V1.TextureOrientation = TextureOrientation.Vertical;
v2=AddHorizPanel (Thick, p33, p3.x -Thick, p2.z, 10);
Thick2 = MatKorp.Thickness;
Screw.Value.Mount1( v2, Thick +50, 0, 0-Thick2/2, 270);
Screw.Value.Mount1( v2, p3.x-Thick -50, 0, 0-Thick2/2, 270);
Screw.Value.Mount1( v2, Thick/2, 0, 50, 180);
Screw.Value.Mount1( v2, Thick/2, 0, p2.z-50, 180);
Screw.Value.Mount1( v2, p3.x-Thick/2, 0, 50, 0);
Screw.Value.Mount1( v2, p3.x-Thick/2, 0, p2.z-50, 0);
DeleteObject(v2);
V1.Name = 'бок левый';
V1.AddButt(KrNotVidimKorp, 0);
V1.AddButt(KrVidimKorp, 1);
V1.AddButt(KrNotVidimKorp, 2);
v22=AddHorizPanel (Thick, p33, p3.x -Thick, p2.z -prit.Value, prit2.Value+10);
v22.TextureOrientation = TextureOrientation.Horizontal;
v22.AddButt(KrVidimKorp, 2);
v22.Name = 'дно';
V3 = AddVertPanel(p1.z, p1.y+10, p2.z, p2.y, p3.x-Thick);
V3.Name = 'бок правый';
V3.TextureOrientation = TextureOrientation.Vertical;
V3.AddButt(KrNotVidimKorp, 0);
V3.AddButt(KrVidimKorp, 1);
V3.AddButt(KrNotVidimKorp, 2);
g4 =AddHorizPanel (Thick, p33, p3.x -Thick, p2.z -prit.Value, p2.y -Thick);
g4.TextureOrientation = TextureOrientation.Horizontal;
g4.AddButt(KrVidimKorp, 2);
g4.Name = 'полик';
x1 = V1.GabMax.x + 0;
x2 = V3.GabMin.x - 0;
z1 = V1.GabMax.z -prit.Value;
V135.Value.Mount(v2, V1, x1, 0, 64)
V135.Value.Mount(v2, V1, x1, 0, z1 -64)
V135.Value.Mount(v2, V3, x2, 0, 64)
V135.Value.Mount(v2, V3, x2, 0, z1 -64)
V35.Value.Mount(g4, V1, x1, 0, 64)
V35.Value.Mount(g4, V1, x1, 0, z1 -64)
V35.Value.Mount(g4, V3, x2, 0, 64)
V35.Value.Mount(g4, V3, x2, 0, z1 -64)
MatKorp.SetActive();
Thick2 = MatKorp.Thickness;
Panel = AddFrontPanel(p1.x, p1.y +10, p3.x, p2.y, p1.z -Thick2);
Panel.Name = 'задняя стенка';
Panel.TextureOrientation = TextureOrientation.Vertical;
Panel.AddButt(KrNotVidimKorp, 0);
Panel.AddButt(KrNotVidimKorp, 2);
rast.Value.Mount(V1, Panel, x1 +1, 160, 0)
rast.Value.Mount(V3, Panel, x2 +1, 160, 0)
rast.Value.Mount(V1, Panel, x1 +1, p2.y -150, 0)
rast.Value.Mount(V3, Panel, x2 +1, p2.y -150, 0)
MatDV.SetActive();
dver = AddFrontPanel(p1.x+1.5, p1.y +prit2.Value+11.5, p3.x-1.5, p2.y-1.5, p3.z +1.5);
dver.Name = 'дверь';
dver.TextureOrientation = TextureOrientation.Vertical;
dver.AddButt(KrDV, 0);
dver.AddButt(KrDV, 2);
dver.AddButt(KrDV, 1);
dver.AddButt(KrDV, 3);
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
29.09.2015, 13:22
|
#895
|
VIP
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
|
Цитата:
Сообщение от Ozimko
Все, что вы просите - весьма просто....(на мой дилетанский взгляд)
|
Я тоже так думаю, но похоже мой взгляд ещё более дилетантский чем Ваш)..Пробовал , разбирался, менял иксы с игреками - не получилось. Панель ставится но не так как надо..
Цитата:
Сообщение от Ozimko
Правда, не в одном скрипте, а в нескольких.
|
Несомненно.. Я это и подразумевал..
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
|
|
|
29.09.2015, 16:15
|
#896
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Тут на форуме выкладывали отличный скрипт КУХОННАЯ ТУМБА. Скажите, у всех программа ругается при замене кол-ва полок на тумбе из 2 фасадов? У меня ругается, НО скрипт срабатывает, тумба строится. Где собака порылась?
|
|
|
29.09.2015, 18:27
|
#897
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Пока суть да дело, вот скрипт тумбы на опорах (можно комар с поворотом), задняя стенка двп в паз, крыша накладная с выбором свесов, полка съемная 1шт с выбором зазоров, крепеж и притопление от лица - по нашему стандарту (64мм от края полки под долбежку), цоколь - выбор высоты, крепеж фикс на уголки, все крепежи, кромка и материалы - на выбор (внутрянка, лицо, фасад). У меня все летает без глюков.
Код HTML:
FileOptions = 'Настройки.xml';
MakeProperties();
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
BtnMake = NewButtonInput('Закончить');
BtnMake.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}
Make();
Action.Continue();
function MakeProperties() {
//Создание и заполнение окна свойств
Prop = Action.Properties;
Dl = Prop.NewNumber('Ширина', 500);
Gl = Prop.NewNumber('Глубина корпуса', 400);
H = Prop.NewNumber('Высота без опор', 700);
Hd = Prop.NewNumber('цоколь', 50);
Korpus = Prop.NewGroup('Корпус')
MatKorp = Korpus.NewMaterial('Материал корпуса');
KrVidimKorp = Korpus.NewButt('Видимая кромка');
KrNotVidimKorp = Korpus.NewButt('Невидимая кромка');
MatKorp2 = Korpus.NewMaterial('Материал КРЫШИ');
KrVidimKorp2 = Korpus.NewButt('КРОМКА КРЫШИ');
Sl = Prop.NewNumber('СВЕС КРЫШИ', 2);
S2 = Prop.NewNumber('СВЕС КРЫШИ НАД ФАСАДОМ', 23);
Vnutr = Prop.NewGroup('Внутрянка')
MatVnutr = Vnutr.NewMaterial('Материал внутрянки');
KrVidimVnutr = Vnutr.NewButt('Видимая кромка внутри');
KrNotVidimVnutr = Vnutr.NewButt('Невидимая кромка внутри');
Sl1 = Vnutr.NewNumber('минус по ширине', 0);
ZadnStenka = Prop.NewGroup('Задняя стенка');
MatZadnStenka = ZadnStenka.NewMaterial('Материал');
Dver = Prop.NewGroup('Дверь')
MatDver = Dver.NewMaterial('Материал');
KrDver = Dver.NewButt('Кромка');
Petli = Dver.NewFurniture('Петля');
krep = Prop.NewGroup('КРЕПЕЖ')
Excentric = krep.NewFurniture('крепеж крыши');
Evrik = krep.NewFurniture('крепеж дна');
Shkant = krep.NewFurniture('шкант');
Polkodergatel = krep.NewFurniture('полкодержатель');
Screw = krep.NewFurniture('подпятник');
};
OkBtn = Prop.NewButton('Построить');
//Обработка нажатия на кнопку Построить
OkBtn.OnClick = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}
//Обработка любого изменения значений свойств
Prop.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей
};
function Make() {
//Удаление старых объектов из области скрипта
DeleteNewObjects();
//Определяем толщину задней стенки для правильного формирования толщины паза
MatZadnStenka.SetActive();
ThickZadSt = ActiveMaterial.Thickness;
MatKorp2.SetActive();
//Считываем толщину текущего материала
ThickKrishka = MatKorp2.Thickness;
Krishka = AddHorizPanel(0-Sl.Value, 0, Dl.Value+Sl.Value, Gl.Value+S2.Value, H.Value - ThickKrishka);
Krishka.TextureOrientation = ftoHorizontal;
//Присваиваем панели имя
Krishka.Name = 'Крышка';
Krishka.AddButt(KrVidimKorp2, 0);
Krishka.AddButt(KrVidimKorp2, 1);
Krishka.AddButt(KrVidimKorp2, 2);
Krishka.AddButt(KrVidimKorp2, 3);
//Стоим паз
Cut = Krishka.AddCut('ПЗС 7*4-16');
Traj = Cut.Trajectory;
Traj.AddLine(0+Sl.Value+11, -16, Dl.Value+Sl.Value-11, -16);
ContPaz = Cut.Contour;
ContPaz.AddRectangle(0, 0, -ThickZadSt - 0, 7);
Krishka.Build();
//дно для подпятников
Thick = ActiveMaterial.Thickness;
v2=AddHorizPanel (Thick, 0, Dl.Value -Thick, Gl.Value , 0);
Screw.Value.Mount1( v2, Thick/2, 0, 50, 180);
Screw.Value.Mount1( v2, Thick/2, 0, Gl.Value-50, 180);
Screw.Value.Mount1( v2, Dl.Value-Thick/2, 0, 50, 0);
Screw.Value.Mount1( v2, Dl.Value-Thick/2, 0, Gl.Value-50, 0);
DeleteObject(v2);
MatKorp.SetActive();
//Считываем толщину текущего материала
Thick = MatKorp.Thickness;
LevBok = AddVertPanel(0, 0, Gl.Value, H.Value - ThickKrishka, 0);
LevBok.TextureOrientation = ftoVertical;
//Присваиваем панели имя
LevBok.Name = 'Бок левый';
LevBok.AddButt(KrNotVidimKorp, 0);
LevBok.AddButt(KrVidimKorp, 1);
// LevBok.AddButt(KrNotVidimKorp, 2)
LevBok.AddButt(KrNotVidimKorp, 3);
LevBok.AddButt(KrNotVidimKorp, 4);
Cut = LevBok.AddCut('ПЗС 7*4-16');
Traj = Cut.Trajectory;
Traj.AddLine(16, 0, 16, H.Value - Thick);
ContPaz = Cut.Contour;
ContPaz.AddRectangle(0, 0, -ThickZadSt - 0, 7);
LevBok.Build();
PravBok = AddSymmetry(LevBok, NewVector(Dl.Value / 2, 0, 0), AxisX);
//Присваиваем панели имя
PravBok.Name = 'Бок правый';
MatVnutr.SetActive();
Dno = AddHorizPanel(Thick, 0, Dl.Value - Thick, Gl.Value, Hd.Value);
//Присваиваем панели имя
Dno.Name = 'Дно';
Dno.AddButt(KrNotVidimVnutr, 0);
Dno.TextureOrientation = ftoHorizontal;
// Dno.AddButt(KrVidimKorp, 1);
Dno.AddButt(KrVidimVnutr, 2)
// Dno.AddButt(KrVidimKorp, 3);
Cut = Dno.AddCut('ПЗС 7*4-16');
Traj = Cut.Trajectory;
Traj.AddLine(0, -16, Dl.Value - Thick, -16);
ContPaz = Cut.Contour;
ContPaz.AddRectangle(0, Thick, -ThickZadSt - 0, Thick - 7);
Dno.Build();
MatKorp.SetActive();
Cokol = AddFrontPanel(Thick, 0, Dl.Value - Thick, Hd.Value, Gl.Value - 20 - Thick);
Cokol.TextureOrientation = ftoHorizontal;
//Присваиваем панели имя
Cokol.Name = 'Цоколь';
Cokol.AddButt(KrNotVidimKorp, 0);
Cokol.Build();
MatVnutr.SetActive();
ThickVnutr = MatVnutr.Thickness;
//Высота проема в полке
Hp = H.Value - ThickKrishka - Hd.Value - ThickVnutr;
//Высота полки в проеме
Hp = Hp / 2 - 0.5 * ThickVnutr;
//Высота полки в глобальной системе координат
Hp = Hp + Hd.Value + ThickVnutr;
Polka = AddHorizPanel(Thick + Sl1.Value, 16 + ThickZadSt, Dl.Value - Thick - Sl1.Value, Gl.Value - 7 , Hp);
Polka.TextureOrientation = ftoHorizontal;
//Присваиваем панели имя
Polka.Name = 'Полка';
Polka.AddButt(KrNotVidimVnutr, 0);
Polka.AddButt(KrNotVidimVnutr, 1);
Polka.AddButt(KrVidimVnutr, 2)
Polka.AddButt(KrNotVidimVnutr, 3);
Polka.Build();
MatZadnStenka.SetActive();
ZadnStenka = AddFrontPanel(Thick - 6.5, Hd.Value + Thick - 6.5,
Dl.Value - Thick + 6.5, H.Value - ThickKrishka + 6.5, 16);
//Присваиваем панели имя
ZadnStenka.Name = 'Задняя стенка';
Block = BeginBlock("Дверь")
MatDver.SetActive();
ThickDver = ActiveMaterial.Thickness;
Dver = AddFrontPanel(1.5, Hd.Value + 1, Dl.Value - 1.5, H.Value - ThickKrishka-3, Gl.Value+1.5);
Dver.TextureOrientation = ftoVertical;
//Присваиваем панели имя
Dver.Name = 'Дверь';
for (var k = 0; k < 4; k++) {
Dver.AddButt(KrDver, k)
}
Rucka = OpenFurniture('ручка скоба.f3d');
Rucka.Mount1(Dver, Dl.Value - 2 - 100, H.Value - 50, Gl.Value + ThickDver, 0);
FPetli = Petli.Value;
Block.AnimType = AnimationType.DoorLeft;
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + 100, 0);
FPetli.Mount(LevBok, Dver, 2 * Thick, H.Value - ThickKrishka-103, 0);
Ost = (Gl.Value - 37 - 40) % 32;
k = ((Gl.Value - 37 - 40) - Ost) / 32;
Dz = Gl.Value - 37 - k * 32;
Dz1 = Gl.Value - 37 ;
Polkodergatel.Value.Mount(Polka, LevBok, 2 * Thick, Hp, 84);
Polkodergatel.Value.Mount(Polka, LevBok, 2 * Thick, Hp, Gl.Value-71);
Polkodergatel.Value.Mount(Polka, PravBok, 2 * Thick, Hp, 84);
Polkodergatel.Value.Mount(Polka, PravBok, 2 * Thick, Hp, Gl.Value-71);
Evrik.Value.Mount(Dno, LevBok, 2 * Thick, Hd.Value, Dz);
Evrik.Value.Mount(Dno, LevBok, 2 * Thick, Hd.Value, Dz1);
Evrik.Value.Mount(Dno, PravBok, 2 * Thick, Hd.Value, Dz);
Evrik.Value.Mount(Dno, PravBok, 2 * Thick, Hd.Value, Dz1);
Excentric.Value.Mount(LevBok, Krishka, 2 * Thick, Hd.Value - Thick, Dz);
Excentric.Value.Mount(LevBok, Krishka, 2 * Thick, Hd.Value - Thick, Dz1);
Excentric.Value.Mount(PravBok, Krishka, 2 * Thick, Hd.Value - Thick, Dz);
Excentric.Value.Mount(PravBok, Krishka, 2 * Thick, Hd.Value - Thick, Dz1);
//Excentric.Mount(Cokol, LevBok, 2 * Thick, Hd.Value * 0.5, 0);
//Excentric.Mount(Cokol, PravBok, 2 * Thick, Hd.Value * 0.5, 0);
Shkant.Value.Mount(Dno, LevBok, 2 * Thick, Hd.Value, Dz + 32);
Shkant.Value.Mount(Dno, LevBok, 2 * Thick, Hd.Value, Dz1 - 32);
Shkant.Value.Mount(Dno, PravBok, 2 * Thick, Hd.Value, Dz + 32);
Shkant.Value.Mount(Dno, PravBok, 2 * Thick, Hd.Value, Dz1 - 32);
Shkant.Value.Mount(LevBok, Krishka, 2 * Thick, Hd.Value, Dz + 32);
Shkant.Value.Mount(LevBok, Krishka, 2 * Thick, Hd.Value, Dz1 - 32);
Shkant.Value.Mount(PravBok, Krishka, 2 * Thick, Hd.Value, Dz + 32);
Shkant.Value.Mount(PravBok, Krishka, 2 * Thick, Hd.Value, Dz1 - 32);
ugolok = OpenFurniture('Уголок пластик в цвет.f3d');
ugolok.Mount(Cokol, LevBok, 2 * Thick, Hd.Value * 0.5, 0);
ugolok.Mount(Cokol, PravBok, 2 * Thick, Hd.Value * 0.5, 0);
ugolok.Mount(Cokol, Dno, 100, Hd.Value * 0.5, 0);
ugolok.Mount(Cokol, Dno, Dl.Value-100, Hd.Value * 0.5, 0);
ugolok.Mount(Cokol, Dno, Dl.Value/2, Hd.Value * 0.5, 0);
}
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
30.09.2015, 08:28
|
#898
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Господа, работает ли скрипт со схемами крепежа?
И еще - может ли кто выложить образец размещения крепежа на всю длину боковины (с задней стенкой) с определенным шагом?
и еще - пример с выбором петли слева или справа...
|
|
|
30.09.2015, 09:10
|
#899
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
|
Да, последние обновления девятки умеют и работать с существующими схемами крепежа и создавать новые. Вот пример:
Код HTML:
V1 = AddVertPanel(0, 0, 500, 300, 0);
V2 = AddVertPanel(0, 0, 500, 300, 200);
H = AddHorizPanel(V1.Thickness, 0, 200, 500, 100);
Scheme = OpenFurnitureScheme('Schemes.config','Ст+Шкант');
Scheme.FurniturePosition = FurniturePosition.Down;
Scheme.Mount(V1, H);
Scheme.FurniturePosition = FurniturePosition.Up;
Scheme.Mount(V2, H);
Код HTML:
function DoInstall(){
DeleteNewObjects();
V1 = AddVertPanel(0, 0, 500, 300, 0);
V2 = AddVertPanel(0, 0, 150, 300, 200);
H = AddHorizPanel(V1.Thickness, 0, 200, 500, 100);
Scheme = NewFurnitureScheme(Window1.SchemeName.Value); //обязательный параметр: имя не должно быть пустым
Scheme.SchemeType = Window1.SchemeType.ItemIndex; //по умолчанию с фикс. отступом
Scheme.Furniture = Window1.Furn.Value; //Обязательный параметр - ставить что-то надо
Scheme.AdditionalFurn = Window1.AdFurn.Value;
Scheme.FixBaseIndent = Window1.StartIndent.Value; //по умолчанию 0
// идентично свойству Scheme.MinSymmetricIndent
Scheme.Percent = Window1.Percent.Value; // по умолчанию false
Scheme.FixSymmetricIndent = Window1.FixIndent.Value; // по умолчанию false
Scheme.MinBaseIndent = Window1.EndIndent.Value; //по умолчанию 0
Scheme.SetFurnitureCount(Window1.FurnCount.Value); //по умолчанию 2
Scheme.FurnitureStep = Window1.FurnStep.Value; // значение по умолчанию 32
Scheme.AdditionalFurnStep = Window1.AdFurnStep.Value; // значение по умолчанию 32
Scheme.Mount(V1, H); // скрепляет две панели по схеме.
}
//-- window Window1
Window1 = { Form : NewForm() };
Props = Window1.Form.Properties;
Window1.Form.Width = 299;
Window1.Form.Height = 340;
Window1.Form.Caption = 'Window1';
//-- window Window1 properties
Window1.Group1 = Props.NewGroup('Параметры схемы');
Window1.Group1.SetLayout(1, 1, 208, 253);
Window1.Group1.Align = AlignType.Top;
Window1.SchemeName = Window1.Group1.NewString('Имя схемы');
Window1.SchemeName.SetLayout(2, 15, 204, 20);
Window1.SchemeName.Value = 'Scheme1';
Window1.SchemeName.Align = AlignType.Top;
Window1.SchemeType = Window1.Group1.NewCombo('Тип схемы', '');
Window1.SchemeType.SetLayout(2, 35, 263, 20);
Window1.SchemeType.Align = AlignType.Top;
Window1.SchemeType.AddItem('С фиксированным отступом');
Window1.SchemeType.AddItem('Симметричная');
Window1.SchemeType.AddItem('С переменным шагом');
Window1.Furn = Window1.Group1.NewFurniture('Основная фурнитура');
Window1.Furn.SetLayout(2, 55, 204, 20);
Window1.Furn.Align = AlignType.Top;
Window1.AdFurn = Window1.Group1.NewFurniture('Дополнительная фурнитура');
Window1.AdFurn.SetLayout(2, 75, 316, 20);
Window1.AdFurn.Align = AlignType.Top;
Window1.StartIndent = Window1.Group1.NewNumber('Фиксированный отступ от базы');
Window1.StartIndent.SetLayout(2, 95, 293, 20);
Window1.StartIndent.Align = AlignType.Top;
Window1.Percent = Window1.Group1.NewBool('Отступ в процентах', false);
Window1.Percent.SetLayout(2, 115, 293, 20);
Window1.Percent.Visible = False;
Window1.Percent.Align = AlignType.Top;
Window1.FixIndent = Window1.Group1.NewBool('Фиксировать отступ', false);
Window1.FixIndent.SetLayout(2, 135, 293, 20);
Window1.FixIndent.Visible = False;
Window1.FixIndent.Align = AlignType.Top;
Window1.EndIndent = Window1.Group1.NewNumber('Минимальный отступ');
Window1.EndIndent.SetLayout(2, 155, 293, 20);
Window1.EndIndent.Align = AlignType.Top;
Window1.FurnCount = Window1.Group1.NewNumber('Количество фурнитуры');
Window1.FurnCount.SetLayout(2, 175, 263, 20);
Window1.FurnCount.Value = 2;
Window1.FurnCount.Align = AlignType.Top;
Window1.FurnStep = Window1.Group1.NewNumber('Кратность шага основного крепежа');
Window1.FurnStep.SetLayout(2, 195, 263, 20);
Window1.FurnStep.Value = 32;
Window1.FurnStep.Align = AlignType.Top;
Window1.AdFurnStep = Window1.Group1.NewNumber('Кратность шага дополнительного крепежа');
Window1.AdFurnStep.SetLayout(2, 215, 263, 20);
Window1.AdFurnStep.Value = 32;
Window1.AdFurnStep.Align = AlignType.Top;
Window1.InstallFurn = Props.NewButton('Установить крепеж');
Window1.InstallFurn.SetLayout(1, 254, 297, 31);
Window1.InstallFurn.Align = AlignType.Top;
Window1.Button1 = Props.NewButton('Завершить скрипт');
Window1.Button1.SetLayout(1, 285, 297, 32);
Window1.Button1.Align = AlignType.Top;
//-- window Window1 events
Window1.InstallFurn.OnClick = function(){
DoInstall();
}
Window1.Form.OnClose = function(){
Action.Finish();
}
Window1.Button1.OnClick = function(){
Window1.Form.Close();
}
Window1.SchemeType.OnChange = function(){
switch (Window1.SchemeType.ItemIndex)
{
case 0: EnableWithBaseProps(); break;
case 1: EnableSymmetricProps(); break;
case 2: EnableVarStepProps(); break;
}
}
function EnableWithBaseProps(){
Window1.AdFurn.Visible = true;
Window1.StartIndent.Visible = true;
Window1.FixIndent.Visible = false;
Window1.Percent.Visible = false;
Window1.EndIndent.Visible = true;
Window1.FurnCount.Visible = true;
Window1.AdFurnStep.Visible = true;
Window1.StartIndent.Name = 'Фиксированный отступ от базы';
}
function EnableSymmetricProps(){
Window1.AdFurn.Visible = true;
Window1.StartIndent.Visible = true;
Window1.FixIndent.Visible = true;
Window1.Percent.Visible = true;
Window1.EndIndent.Visible = false;
Window1.FurnCount.Visible = true;
Window1.AdFurnStep.Visible = true;
if (Window1.FixIndent.Value)
Window1.StartIndent.Name = 'Фиксированный отступ от краев';
else
Window1.StartIndent.Name = 'Минимальный отступ от краев';
}
function EnableVarStepProps(){
Window1.AdFurn.Visible = false;
Window1.StartIndent.Visible = false;
Window1.FixIndent.Visible = false;
Window1.Percent.Visible = false;
Window1.EndIndent.Visible = false;
Window1.FurnCount.Visible = false;
Window1.AdFurnStep.Visible = false;
}
Window1.FixIndent.OnChange = function(){
if (Window1.FixIndent.Value)
Window1.StartIndent.Name = 'Фиксированный отступ от краев';
else
Window1.StartIndent.Name = 'Минимальный отступ от краев';
}
//-- window Window1 ends
Window1.Form.Show(WindowPosition.Left);
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
30.09.2015, 10:10
|
#900
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Не ставит....
V1 = AddVertPanel(0, 0, 500, 300, 0);
V2 = AddVertPanel(0, 0, 500, 300, 200);
H = AddHorizPanel(V1.Thickness, 0, 200, 500, 100);
Scheme = OpenFurnitureScheme('Schemes.config','VB135');
Scheme.FurniturePosition = FurniturePosition.Down;
Scheme.Mount(V1, H);
Scheme.FurniturePosition = FurniturePosition.Up;
Scheme.Mount(V2, H);
РЕШЕНО
Последний раз редактировалось Ozimko; 30.09.2015 в 11:13.
|
|
|
Пользователь сказал cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 17:51. Часовой пояс GMT +3.
|