|
|
|
|
|
13.01.2014, 13:22
|
|
БАЗИС 8 - Скрипты
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
13.01.2014, 13:22
Рейтинг:
()
ВНИМАНИЕ! Правила выкладывания скриптов.
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 объект по его типу') [свернуть]
Обратите внимание на полезные ответы в этой теме!
Последний раз редактировалось systland; 26.12.2017 в 11:52..
Причина: Добавил объявление.
|
Просмотров: 1391061
|
6 пользователя(ей) сказали cпасибо:
|
|
31.01.2014, 11:42
|
#151
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Как вариант. Просто правда в том, что под пятник НА БОКОВИНЕ. Сделал так:
SetCamera(p3dLeft);
KrVidimKorp = NewButtMaterialInput("вид");
KrNotVidimKorp = NewButtMaterialInput("невид");
Thick = ActiveMaterial.Thickness;
p1 = GetPoint('Укажите первую точку');
p2 = GetPoint('Укажите вторую точку');
V1 = AddVertPanel(p1.z, p1.y+6, p2.z, p2.y, p1.x);
v2=AddHorizPanel (0, 0, Thick, p2.z, 6);
Screw = OpenFurniture('CAMAR x30605 (52мм).f3d');
Screw.Mount1( v2, Thick/2, 0, 50, 0);
Screw.Mount1( v2, Thick/2, 0, p2.z-50, 0);
V1.Name = 'бок правый';
V1.AddButt(KrNotVidimKorp, 0);
V1.AddButt(KrVidimKorp, 1);
V1.AddButt(KrNotVidimKorp, 2);
V1.AddButt(KrNotVidimKorp, 3);
DeleteObject(v2);
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
31.01.2014, 11:56
|
#152
|
VIP
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
|
Цитата:
Сообщение от Ozimko
Вернемся к нашим баранам.....Я про подпятник.
Тишина насчет вопроса понятна - установить подпятники, используемые в базе фурнитуры невозможно, ибо в скриптах есть 2 варианта установки - на 2 панели или на пласть. А у нас торец. Но мы не привыкли отступать. Создаю подпятник для скрипта - поворачиваю его и сдвигаю на 9мм. В итоге результат есть, но это полумера - для замены на другой инструменты базиса не подходят (позиционируется не так), либо подойдут, если создать опять же аналог повернутый.... Мягко скажем - г...ня получается, хотя работать можно....
Созрела идея - ставить боковину+ горизонтальную полку, подпятник монтировать на горизонт, а затем горизонт удалить.... Должно сработать вроде....
А сам сыр-бор из-за вот чего: сейчас для установки боковины шкафа с опорами, кромкой, именем я делаю 3 клика - запуск скрипта сочетанием клавиш, и указания 2 точек на виде сбоку. Очень удобно, знаете ли...
Помните - пару лет назад была дискуссия про построение мебели голосовыми командами....а ведь осталось-то совсем ничего....
Кстати - вот сам скрипт и опора.
|
Вот поправил скрипт и опору перевернул. И еще, можете указывать точки в любом порядке в любые 2-ух диагоналях на виде слева. Бок ставиться корректно и опоры тоже. После установки боковины менял на свои опоры, все менялось.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
|
|
|
6 пользователя(ей) сказали cпасибо:
|
|
31.01.2014, 12:47
|
#153
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Спасибо, но при замене опор идет поворот на 90 градусов, что неприемлимо. Окончательно сделал так:
// Установка бокин с опорой
SetCamera(p3dLeft);
KrVidimKorp = NewButtMaterialInput("вид");
KrNotVidimKorp = NewButtMaterialInput("невид");
Thick = ActiveMaterial.Thickness;
p1 = GetPoint('Укажите первую точку');
p2 = GetPoint('Укажите вторую точку');
SetCamera(p3dTop);
p3 = GetPoint('Укажите точку');
V1 = AddVertPanel(p1.z, p1.y+6, p2.z, p2.y, p1.x);
v2=AddHorizPanel (0, 0, p3.x, p2.z, 6);
Screw = OpenFurniture('CAMAR x30605 (52мм).f3d');
Screw.Mount1( v2, Thick/2, 0, 50, 180);
Screw.Mount1( v2, Thick/2, 0, p2.z-50, 180);
V1.Name = 'бок левый';
V1.AddButt(KrNotVidimKorp, 0);
V1.AddButt(KrVidimKorp, 1);
V1.AddButt(KrNotVidimKorp, 2);
V1.AddButt(KrNotVidimKorp, 3);
V3 = AddVertPanel(p1.z, p1.y+6, p2.z, p2.y, p3.x-Thick);
Screw = OpenFurniture('CAMAR x30605 (52мм).f3d');
Screw.Mount1( v2, p3.x-Thick/2, 0, 50, 0);
Screw.Mount1( v2, p3.x-Thick/2, 0, p2.z-50, 0);
V3.Name = 'бок правый';
V3.AddButt(KrNotVidimKorp, 0);
V3.AddButt(KrVidimKorp, 1);
V3.AddButt(KrNotVidimKorp, 2);
V3.AddButt(KrNotVidimKorp, 3);
DeleteObject(v2);
А теперь вопрос: можно ли кромку в скрипт привязать постоянно и как? Допустим, невидимые торцы съемной полки всегда ПВХ 0,5мм с подрезкой?
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
31.01.2014, 18:06
|
#154
|
VIP
Регистрация: 18.01.2008
Сообщений: 1,047
Сказал(а) спасибо: 2,864
Поблагодарили 1,853 раз(а) в 435 сообщениях
Вес репутации: 695
|
Можно написать функцию установки полки по параметрам с нужными типами кромки и потом использовать ее при необходимости.
Вот пример:
//Функция установки полки по параметрам с зазором и разной кромкой
function PolkaSKrom(x1, z1, x2, z2, y, Zazor, KrVidim, KrNeVidim) {
Pol = AddHorizPanel(x1 + Zazor, z1, x2 - Zazor, z2, y)
Pol.AddButt(KrNeVidim, 0)
Pol.AddButt(KrNeVidim, 1)
Pol.AddButt(KrVidim, 2)
Pol.AddButt(KrNeVidim, 3)
}
//Конец функции установки полки по параметрам с зазором и разной кромкой
function MakeProperties() {
Prop = Action.Properties;
Zaz = Prop.NewNumber('Зазор', 2);
KrVidim = Prop.NewButt('Видимая кромка');
KrNeVidim = Prop.NewButt('Невидимая кромка');
OkBtn = Prop.NewButton('Построить');
OkBtn.OnClick = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}
Prop.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей
};
}
function Make() {
DeleteNewObjects();
PolkaSKrom(0, 0, 500, 400, 200, Zaz.Value, KrVidim, KrNeVidim)
}
MakeProperties()
Make();
Action.Continue();
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
01.02.2014, 21:42
|
#155
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Штанга с держателями. Хотелось универсальности, и вот что получилось:
Скрытый текст
PHP код:
FileOptions = 'Настройки установки штанги.xml';
MakeProperties();
var CurPos = NewVector(0, 0, 0);
var Block;
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
SelectPanel()
NewShtanga();
Make();
Action.Continue();
function SelectPanel() {
Select = function() {
Pan1 = GetPanel("Укажите 1-ую вертикальную панель");
Pan2 = GetPanel("Укажите 2-ую вертикальную панель");
Left = Pan1.GabMax.x;
Right = Pan2.GabMin.x;
};
Select()
if (Pan1.GabMax.x == Pan2.GabMax.x){
alert("Укажите разные панели");
Select()
}
if (Left > Right){
Left = Pan2.GabMax.x;
Right = Pan1.GabMin.x;
AAA = Pan2;
Pan2 = Pan1;
Pan1 = AAA;
};
};
//Создание и заполнение окна свойств
function MakeProperties() {
Prop = Action.Properties;
Shtanga = Prop.NewGroup('Штанга')
DShtanga = Shtanga.NewNumber('Диаметр', 25);
WidthShtanga = Shtanga.NewNumber('Ширина', 0);
VerticalShift = Shtanga.NewNumber('Сдвиг по вертикали', 0);
Slack = Shtanga.NewNumber('Зазор');
MatShtanga = Shtanga.NewMaterial('Материал');
Consol = Prop.NewFurniture('Штангодержатель');
Prop.OnChange = function() {
Make();
};
}
function NewShtanga() {
Make();
SetCamera(p3dLeft);
Action.Hint = 'Укажите положение';
Action.ShowPoints = true;
Action.OnMove = function() {
Block.Position = Action.Pos3;
CurPos = Action.Pos3;
};
Action.OnClick = function() {
Action.OnMove = undefined;
Action.ShowPoints = false;
Action.Finish();
};
}
function Make() {
DeleteNewObjects();
//устанавливаем консоли****************************
FConsol = Consol.Value;
Block = BeginBlock("Штанга с держателями");
FConsol.Mount1(Pan1, Pan1.Thickness, 0, 0, 0);
FConsol.Mount1(Pan2, 0, 0, 0, 0);
//Строим штангу************************************
MatShtanga.SetActive();
Ext = AddExtrusion('1');
Ext.MaterialWidth = DShtanga.Value;
if (WidthShtanga.Value < DShtanga.Value) {
Ext.Contour.AddCircle(0, 0, DShtanga.Value * 0.5);
}
else {
d = WidthShtanga.Value - DShtanga.Value
p1 = NewPoint(-DShtanga.Value * 0.5, 0);
p2 = NewPoint(DShtanga.Value * 0.5, 0);
p3 = NewPoint(-DShtanga.Value * 0.5, d);
p4 = NewPoint(DShtanga.Value * 0.5, d);
centre1 = NewPoint(0, -DShtanga.Value * 0.5);
centre2 = NewPoint(0, DShtanga.Value * 0.5 + d);
Ext.Contour.AddArc3(p1, centre1, p2);
Ext.Contour.AddArc3(p3, centre2, p4);
Ext.Contour.AddLine(p1.x, p1.y, p3.x, p3.y);
Ext.Contour.AddLine(p2.x, p2.y, p4.x, p4.y);
};
Ext.Thickness = Right - Left - Slack.Value * 2;
Ext.Name = "Штанга" + Math.round(Ext.Thickness);
Ext.Build();
Ext.RotateY(90);
Ext.PositionX = Pan1.Thickness + Slack.Value
Ext.PositionY = VerticalShift.Value
EndBlock();
Block.Position = CurPos;
}
[свернуть]
|
|
|
12 пользователя(ей) сказали cпасибо:
|
|
01.02.2014, 22:43
|
#156
|
VIP
Регистрация: 24.06.2010
Адрес: Україна, Проскурів
Сообщений: 1,950
Сказал(а) спасибо: 6,603
Поблагодарили 5,053 раз(а) в 1,304 сообщениях
Вес репутации: 1374
|
Коллеги, на вебинаре от 30 января показали скрипт от maxgmv - Кухонная тумба(вроде как-то так).
Поделитесь,у кого-то есть данный скрипт. Он очень многим пользователям пригодится.
Он действительно очень здорово сделан.
Заранее благодарен.
Последний раз редактировалось FIDEL; 02.02.2014 в 11:13.
Причина: уточнил дату вебинара
|
|
|
8 пользователя(ей) сказали cпасибо:
|
|
02.02.2014, 12:14
|
#157
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Цитата:
Коллеги, на вебинаре от 30 января показали скрипт от maxgmv - Кухонная тумба(вроде как-то так).
Поделитесь,у кого-то есть данный скрипт. Он очень многим пользователям пригодится.
Он действительно очень здорово сделан.
Заранее благодарен.
|
Пишите в личку maxgmv. Здесь на форуме таких скриптов не было. То что было, это скрипт шкаф кухонный нижний с его редакцией, он кстати после обновы появился в скриптах, папка форум. Также заменили скрипт Двери купе на тот, что показывали на вебинаре, предыдущий был кривоват. Скрипт Шкаф кухонный, да признать очень хорош! Но его почему-то не посчитали нужным делать доступным. Хотя это и было обещано.
|
|
|
Пользователь сказал cпасибо:
|
|
02.02.2014, 14:26
|
#158
|
Пользователь
Регистрация: 11.11.2012
Адрес: Тула
Сообщений: 87
Сказал(а) спасибо: 48
Поблагодарили 46 раз(а) в 22 сообщениях
Вес репутации: 157
|
Посмотрел на вебинаре демонстрацию скрипта построения кухонной тумбы. Признаюсь впечатлен. Уважаемый maxgmv не могли бы Вы поделиться сим чудом?
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
02.02.2014, 15:18
|
#159
|
VIP
Регистрация: 24.06.2010
Адрес: Україна, Проскурів
Сообщений: 1,950
Сказал(а) спасибо: 6,603
Поблагодарили 5,053 раз(а) в 1,304 сообщениях
Вес репутации: 1374
|
Коллеги, помогите разобраться . Объясните "на пальцах" почему выдает ошибку?
Пробую спм написать скрипт по построению рамочного фасада(по своим стандартам)
и выдает ошибку при нажатии кнопки "Построить"
Скрытый текст
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;
H = Prop.NewNumber('Высота', 356);
Dl = Prop.NewNumber('Ширина', 596);
Ramka = Prop.NewCombo('Профиль', 'Т-4\nТ-9\nM-21\nТ-9');
Color = Prop.NewCombo('Цвет профиля', 'Серебро мат\nЗолото мат\nЗолото беж\nВенге глянец');
OkBtn = Prop.NewButton('Построить');
//Обработка нажатия на кнопку Построить
OkBtn.OnClick = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}
//Обработка любого изменения значений свойств
Prop.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей
};
}
function Make() {
//Удаление старых объектов из области скрипта
DeleteNewObjects();
//Считываем толщину текущего материала
//Thick = ActiveMaterial.Thickness;
ActiveMaterial.Make('Рамка Т-9 венге глянец', 21);
Thick = ActiveMaterial.Thickness;
p1 = GetPoint('Укажите первую точку');
p2 = GetPoint('Укажите вторую точку');
Panel=AddFrontPanel(p1.x, p1.y, p2.x, p2.y, p2.z);
Panel.Contour.AddRectangle(45,45, p2.x - 45, p2.y-45);
Cut = Panel.Cuts.Add();
Traj = Cut.Trajectory;
Traj.AddRectangle(0, 0, p2.x, p2.y);
ContPaz = Cut.Contour;
ContPaz.AddLine(3.5, 14, 47, 14);
ContPaz.AddLine(47, 14, 47, 22);
ContPaz.AddLine(47, 22, 7, 22);
ContPaz.AddLine(7, 22, 7, 18);
ContPaz.AddLine(7, 18, 3.5, 18);
ContPaz.AddLine(3.5, 18, 3.5, 14);
Panel.Build();
} [свернуть]
P.S. Там в скрипте еще много глупостей написано, но это так сказать , заготовка для дальнейшей работы с данным скриптом
|
|
|
02.02.2014, 16:39
|
#160
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Цитата:
Коллеги, помогите разобраться . Объясните "на пальцах" почему выдает ошибку?
Пробую спм написать скрипт по построению рамочного фасада(по своим стандартам)
и выдает ошибку при нажатии кнопки "Построить"
|
Скрытый текст
PHP код:
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; H = Prop.NewNumber('Высота', 356); Dl = Prop.NewNumber('Ширина', 596); Ramka = Prop.NewCombo('Профиль', 'Т-4\nТ-9\nM-21\nТ-9'); Color = Prop.NewCombo('Цвет профиля', 'Серебро мат\nЗолото мат\nЗолото беж\nВенге глянец');
OkBtn = Prop.NewButton('Построить'); //Обработка нажатия на кнопку Построить OkBtn.OnClick = function() { Make(); //Вызываем функцию построения всех панелей Action.Finish(); } p1 = GetPoint('Укажите первую точку'); p2 = GetPoint('Укажите вторую точку'); //Обработка любого изменения значений свойств Prop.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей }; }
function Make() { //Удаление старых объектов из области скрипта DeleteNewObjects();
//Считываем толщину текущего материала //Thick = ActiveMaterial.Thickness; ActiveMaterial.Make('Рамка Т-9 венге глянец', 21); Thick = ActiveMaterial.Thickness; Panel=AddFrontPanel(p1.x, p1.y, p2.x, p2.y, p2.z); Panel.Contour.AddRectangle(45,45, p2.x - 45, p2.y-45); Cut = Panel.Cuts.Add(); Traj = Cut.Trajectory; Traj.AddRectangle(0, 0, p2.x, p2.y); ContPaz = Cut.Contour; ContPaz.AddLine(3.5, 14, 47, 14); ContPaz.AddLine(47, 14, 47, 22); ContPaz.AddLine(47, 22, 7, 22); ContPaz.AddLine(7, 22, 7, 18); ContPaz.AddLine(7, 18, 3.5, 18); ContPaz.AddLine(3.5, 18, 3.5, 14); Panel.Build(); }
[свернуть]
Вот так все работает...там же написано, функция доступна в основном теле скрипта....
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 14:25. Часовой пояс GMT +3.
|