|
|
|
|
|
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..
Причина: Добавил объявление.
|
Просмотров: 1406486
|
6 пользователя(ей) сказали cпасибо:
|
|
04.08.2014, 14:48
|
#391
|
VIP
Регистрация: 05.05.2008
Адрес: Коломна
Сообщений: 10,452
Сказал(а) спасибо: 14,824
Поблагодарили 20,865 раз(а) в 5,387 сообщениях
Вес репутации: 5413
|
Цитата:
Сообщение от Ozimko
Добрались руки до скрипта AVENTOS HF. Ну что тут скажешь - конгениально! maxgmv, снимаю шляпу, рядовым пользователям базиса вроде меня такие высоты не снились... После таких скриптов понимаешь ущербность модуля БАЗИС ШКАФ...
|
Зачем ущебность? БАЗИС-Шкаф выполняет свою функцию - массово и без специальной подготовки, скрипты - свою функцию, но это уже немного другой уровень подготовки.
Пусть расцветают все цветы! - учит нас Председатель Мао.
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
04.08.2014, 15:05
|
#392
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Цитата:
Сообщение от DTioutiou
Зачем ущебность? БАЗИС-Шкаф выполняет свою функцию - массово и без специальной подготовки, скрипты - свою функцию, но это уже немного другой уровень подготовки.
Пусть расцветают все цветы! - учит нас Председатель Мао.
|
Ладно, про ущербность перегнул слегонца - для реалтайм общения с клиентом шкаф подходит весьма неплохо. Но сам лично использовал его уже давно, да и то только для фасадов шкафа - купе... А скрипты - это конечно бомба, уметь бы ей пользоваться... А то мануал для КОНСТРУКТОРА МЕБЕЛИ малоинформативен. Нет там примеров полноценных. Остается только ковырять чужие скрипты, подгонять под себя....А это время, понимаете ли...
|
|
|
04.08.2014, 16:05
|
#393
|
Пользователь
Регистрация: 11.11.2012
Адрес: Тула
Сообщений: 87
Сказал(а) спасибо: 48
Поблагодарили 46 раз(а) в 22 сообщениях
Вес репутации: 157
|
Лучше бы Базис начал активно распространять скрипты, глядишь и конкурентов на лопатки положил бы окончательно.
А философия типа: Excell продается пустой, без таблиц, и сами в нем создавайте, что нужно - не канает. Рынок меняется и причем стремительно.
Но Excell- прога не заточенная под конкретный вид деятельности.
Видел у знакомого программу по приему, расчету, передачу в производство окон. Он не занимается ни черчением, ни конструированием. Есть программа, есть клиент с деньгами и блондинка на компьютере. И всё!
Вот такого уровня должна быть программа.
В тот же Базис шкаф можно было бы напихать все известные системы раздвижения. А уж кому и этого мало- создавайте шаблоны, хотя и это должны взять на себя.
Hettich Top Line L у меня так и не получается в БШ отрисовать.
|
|
|
04.08.2014, 16:59
|
#394
|
VIP
Регистрация: 05.05.2008
Адрес: Коломна
Сообщений: 10,452
Сказал(а) спасибо: 14,824
Поблагодарили 20,865 раз(а) в 5,387 сообщениях
Вес репутации: 5413
|
Цитата:
Сообщение от Miknm
Лучше бы Базис начал активно распространять скрипты
|
Без проблем, пишите скрипты, присылайте - мы с удовольствием их выложим у себя для свободного скачивания: http://www.bazissoft.ru/service/file_archive/other/
Было бы желание скриптописателей , а за нами не заржавеет.
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
05.08.2014, 18:05
|
#395
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
Господа, спасайте.
Пробовал ковырять скрипт авентос HF... Не, чукча не писатель (это я о себе).
Хочу сделать скрипт попроще - проверка веса панели.
Алгоритм такой. Выделяю панель. Вызываю скрипт. В окошке вылазит таблица:
вес дсп 18мм, HK - такой-то механизм, НК-S - такой-то....
вес дсп 22мм
вес мдф 19мм
вес рамка Z12+ стекло...
Рассчитать по формуле все вроде просто, в экселе все данные выползают без проблем, а ведь это можно сделать и в базисе.
В идеале, конечно, сделать сие действо на HK, HK-S с автоматической установкой, как в HF, но скрипач не нужен (я про короб)....Нужен только механизм, а ума разобраться в скрипте не хватает....
|
|
|
06.08.2014, 00:10
|
#396
|
Местный
Регистрация: 15.02.2012
Адрес: Винница, УКРАИНА
Сообщений: 171
Сказал(а) спасибо: 1,164
Поблагодарили 2,282 раз(а) в 140 сообщениях
Вес репутации: 622
|
Цитата:
Сообщение от maxgmv
Вот написал скрипт для установки кухонного шкафа с Aventos HF.
Ссылка на скрипт.
|
Ссылка уже не работаеть... огромная просьба - обновите пожалуйста!
|
|
|
07.08.2014, 20:07
|
#397
|
VIP
Регистрация: 11.07.2008
Сообщений: 1,019
Сказал(а) спасибо: 261
Поблагодарили 314 раз(а) в 143 сообщениях
Вес репутации: 357
|
все работает. дальше есть обновленная ссылка
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
09.08.2014, 03:28
|
#398
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 243
Поблагодарили 1,095 раз(а) в 210 сообщениях
Вес репутации: 387
|
Цитата:
Сообщение от Briz
Пример гнутой панели:
Panel = AddFrontPanel(0, 0, 0, 0, 0);
Bent = NewContour();
Bent.AddArc3(0, 0, 500, 500, 1000, 0);
Panel.BentContour = Bent;
Panel.Contour.Clear();
Panel.Contour.AddRoundRect(0, 0, Bent.ObjLength(), 1000, 100);
Panel.Bent = true;
Panel.Build();
|
У Вас при изменение траектории всё в порядке?
У меня чёт всегда панель перепрыгивает на другое положение.
|
|
|
10.08.2014, 04:38
|
#399
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 243
Поблагодарили 1,095 раз(а) в 210 сообщениях
Вес репутации: 387
|
Заготовка контура типа арки, только с острым углом.
Может быть полезна наличием функции (не найденных мною в предопределённых) сопряжения линии с точкой.
Скрытый текст
function MakeOstriy(ln,pv,
hv, hn)
{
Contour = NewContour();
HalfW= (pv.x-ln.x)/2
p1 = NewPoint(ln.x,pv.y-hv)
p2 = NewPoint(ln.x,ln.y+hn)
p3 = NewPoint(ln.x+HalfW,ln.y)
l1 = Contour.AddLine(p1,p2);
c = SopriajeniyeLinii_s_Tochkoy(l1,p2,p3,true);
Contour.AddList(c.MakeCopy());
p4 = NewPoint(ln.x+HalfW,pv.y)
c = SopriajeniyeLinii_s_Tochkoy(l1,p1,p4,false);
Contour.AddList(c.MakeCopy());
Contour.Symmetry(p3.x, 0, p3.x, 1, true)
return Contour;
}
function SopriajeniyeLinii_s_Tochkoy(l1,p1,p2,storona)
{
vspomContour = NewContour();
vspom_l = vspomContour.AddLine(p1,p2);
ul1= l1.LineAngle()/(Math.PI / 180)
u_vspom_l= vspom_l.LineAngle()/(Math.PI / 180)
ul1l2 = Math.abs(ul1-u_vspom_l+90)
if (ul1l2>180)
{
ul1l2= Math.abs((ul1l2-360))
}
b=vspom_l.ObjLength();
R =b/(2*Math.cos(ul1l2*(Math.PI / 180))) ; //http://www-formula.ru/index.php/lengthpartiesisoscelestriangle
center = NewPoint(p1.x+R, p1.y);
c = NewContour();
c.AddArc(p1, p2, center,storona);
return c
}
function MakePanel (hh,ww, otstup , hv, hn)
{
ln=NewPoint(otstup,otstup)
pv=NewPoint(ww-otstup,hh-otstup)
P = AddPanel(ww, hh);
StartEditing(P)
P.Contour.Subtraction(MakeOstriy(ln,pv,hv, hn));
//P.Contour.Addition(MakeEllipse(50, 140, ww*0.5, hh*0.5));
P.Build();
return P
}
x=0
p = MakePanel(770,300, 70 , 200, 200)
p.Translate(x,0,0)
x = x+ 300+100
p = MakePanel(770,400, 70 , 250, 250)
p.Translate(x,0,0)
x = x+ 300+100
[свернуть]
Заготовка обыкновенного 6ти угольника.
Скрытый текст
function Make6Ugol(ln,pv,
hln, wln, hpn, wpn,
hlv, wlv, hpv, wpv,radius)
{
Contour = NewContour();
// Intermediate ellipse quantities.
p1 = NewPoint(ln.x,ln.y+hln)
p2 = NewPoint(ln.x+wln,ln.y)
p3 = NewPoint(pv.x-wpn,ln.y)
l1 = Contour.AddLine(p1.x,p1.y,p2.x,p2.y);
l2 = Contour.AddLine(p2.x,p2.y,p3.x,p3.y);
p4 = NewPoint(pv.x,ln.y+hpn)
l3 = Contour.AddLine(p3.x,p3.y,p4.x,p4.y);
p5 = NewPoint(pv.x,pv.y-hpv)
l4 =Contour.AddLine(p4.x,p4.y,p5.x,p5.y);
p6 = NewPoint(pv.x-wpv,pv.y)
l5 =Contour.AddLine(p5.x,p5.y,p6.x,p6.y);
p7 = NewPoint(ln.x+wlv,pv.y)
l6 =Contour.AddLine(p6.x,p6.y,p7.x,p7.y);
p8 = NewPoint(ln.x,pv.y-hlv)
l7 =Contour.AddLine(p7.x,p7.y,p8.x,p8.y);
//p9 = NewPoint(ln.x,ln.y+hln)
l8 =Contour.AddLine(p8.x,p8.y,p1.x,p1.y);
if (radius>0)
{
Contour.RoundingEx(l1, l2, p2.x+1, p2.y+1, radius)
Contour.RoundingEx(l2, l3, p3.x-1, p3.y+1, radius)
Contour.RoundingEx(l3, l4, p4.x-1, p4.y+1, radius)
Contour.RoundingEx(l4, l5, p5.x-1, p5.y-1, radius)
Contour.RoundingEx(l5, l6, p6.x-1, p6.y-1, radius)
Contour.RoundingEx(l6, l7, p7.x+1, p7.y-1, radius)
Contour.RoundingEx(l7, l8, p8.x+1, p8.y-1, radius)
Contour.RoundingEx(l8, l1, p1.x+1, p1.y+1, radius)
}
return Contour;
}
hh=770
ww=300
otstup = 70
radius = 30;
ln=NewPoint(otstup,otstup)
pv=NewPoint(ww-otstup,hh-otstup)
P = AddPanel(ww, hh);
P.Contour.Subtraction(Make6Ugol(ln,pv, 50, 50,50,50,50, 50,50,50,radius));
//P.Contour.Addition(MakeEllipse(50, 140, ww*0.5, hh*0.5));
[свернуть]
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
14.08.2014, 04:58
|
#400
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 243
Поблагодарили 1,095 раз(а) в 210 сообщениях
Вес репутации: 387
|
Заготовка фасада Полоски.
Скрытый текст
function MakePoloski(h, promejutok, k_polos)
{
Contour = NewContour();
poloj=0;
napr=0;
for (i=0;i<k_polos;i++)
{
p1 = NewPoint(poloj,0)
p2 = NewPoint(poloj,h)
if (napr==0)
{
l1 = Contour.AddLine(p1,p2);
napr=1
}
else
{
l1 = Contour.AddLine(p2,p1);
napr=0
}
poloj = poloj + promejutok;
}
return Contour;
}
function MakePanelPoloski (hh,ww,
otstup_L, promejutok_L, k_polos_L,
otstup_P, promejutok_P, k_polos_P,
otstup_N, promejutok_N, k_polos_N,
otstup_V, promejutok_V, k_polos_V,
virez, otstupVirez)
{
Obj = AddPanel(ww, hh);
Frezerovka(Obj, Obj.Contour.MakeCopy(),
"\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Фрагменты\\Фрезы\\Скругление 10.frw",
'Скругление')
poloski_L = MakePoloski(hh, promejutok_L, k_polos_L);
poloski_L.Move(otstup_L, 0);
Frezerovka(Obj, poloski_L,
'\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Фрагменты\\Острая глубина 4.frw', 'Полоски')
poloski_P = MakePoloski(hh, promejutok_P, k_polos_P);
poloski_P.Move(ww-otstup_P - poloski_P.Width, 0);
Frezerovka(Obj, poloski_P,
'\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Фрагменты\\Острая глубина 4.frw', 'Полоски')
poloski_V = MakePoloski(ww, promejutok_V, k_polos_V);
poloski_V.Rotate(0, 0, -90);
poloski_V.Move(0,hh-otstup_V);
Frezerovka(Obj, poloski_V,
'\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Фрагменты\\Острая глубина 4.frw', 'Полоски')
poloski_N = MakePoloski(ww, promejutok_N, k_polos_N);
poloski_N.Rotate(0, 0, -90);
poloski_N.Move(0,otstup_N+poloski_N.Height);
Frezerovka(Obj, poloski_N,
'\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Фрагменты\\Острая глубина 4.frw', 'Полоски')
if (virez)
{
ln=NewPoint(otstupVirez,otstupVirez)
pv=NewPoint(ww-otstupVirez,hh-otstupVirez)
ellips = MakeEllipse(ww*0.5- otstupVirez , hh*0.5-otstupVirez, ww*0.5, hh*0.5);
StartEditing(Obj)
Obj.Contour.Subtraction(ellips);
Obj.Build();
Frezerovka(Obj, ellips,
'\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Фрагменты\\Фрезы\\Скругление 10.frw', 'Скругление')
}
//else {alert(virez)}
return Obj
}
x=0
p = MakePanelPoloski(770,300,
70, 30, 3,
50, 20, 4,
60, 40, 2,
10, 35, 6,
false,70)
p.Translate(x,0,0)
x = x+ 300+100
p = MakePanelPoloski(770,400,
70, 30, 1,
50, 20, 2,
60, 40, 3,
10, 35, 4,
true,70)
p.Translate(x,0,0)
x = x+ 300+100
//poloski = MakePoloski(ln, pv, promejutok, k_polos, virez)
// P.Contour.Subtraction(Make6Ugol(ln,pv, 50, 50,50,50,50, 50,50,50,radius));
//P.Contour.Addition(MakeEllipse(50, 140, ww*0.5, hh*0.5));
function MakeEllipse(A, B, x, y) {
Contour = NewContour();
// Intermediate ellipse quantities.
a2 = A * A;
b2 = B * B;
ab = A * B;
invB2mA2 = 1 / (b2 - a2);
// Curvature at end points, store curvature
// for computing arcs.
curv0 = A / b2;
curv1 = B / a2;
// Select ellipse points
// based on curvature properties.
ElemsCount = 16;
invNumArcs = 1 / ElemsCount;
Points = [];
for (i = 0; i <= ElemsCount; i++) {
// Curvature at new point is weighted average of curvature at ends.
weight1 = i * invNumArcs;
weight0 = 1 - weight1;
curv = weight0 * curv0 + weight1 * curv1;
// Compute point having this curvature.
tmp = Math.pow(ab / curv, 2 / 3);
px = A * Math.sqrt(Math.abs((tmp - a2) * invB2mA2));
py = B * Math.sqrt(Math.abs((tmp - b2) * invB2mA2));
Points.push(NewPoint(px, py));
}
// Compute arcs at intermediate points between (a,0) and (0,b).
m = 3;
while (m <= Points.length - 2) {
p1 = Points[m - 2];
p2 = Points[m - 1];
p3 = Points[m];
Arc = Contour.AddArc3(p1, p2, p3);
//alert(m);
m = m + 2;
}
Ellipse = Contour;
Ellipse.Symmetry(0, 0, 1, 0, true);
Ellipse.Symmetry(0, 0, 0, 1, true);
p1 = Points[Points.length - 2];
p2 = Points[Points.length - 1];
p3 = NewPoint(-Points[Points.length - 2].x, Points[Points.length - 2].y);
ArcV = Ellipse.AddArc3(p1, p2, p3);
p1 = NewPoint(Points[Points.length - 2].x, -Points[Points.length - 2].y);
p2 = NewPoint(-Points[Points.length - 1].x, -Points[Points.length - 1].y);
p3 = NewPoint(-Points[Points.length - 2].x, -Points[Points.length - 2].y);
ArcN = Ellipse.AddArc3(p1, p2, p3);
p1 = Points[1];
p2 = Points[0];
p3 = NewPoint(Points[1].x, -Points[1].y);
ArcP = Ellipse.AddArc3(p1, p2, p3);
p1 = NewPoint(-Points[1].x, Points[1].y);
p2 = NewPoint(-Points[0].x, Points[0].y);
p3 = NewPoint(-Points[1].x, -Points[1].y);
ArcL = Ellipse.AddArc3(p1, p2, p3);
Ellipse.Move(x, y);
return Ellipse;
}
function Frezerovka(Obj, Contur, FileFreza, CutName) {
//FileFreza = 'Фреза1.frw';
if (system.fileExists(FileFreza)) {
// Obj = Obj.AsPanel;
StartEditing(Obj);
Cut = Obj.AddCut(CutName);
Traj = Cut.Trajectory;
Traj.AddList(Contur.MakeCopy());
//L1 = Traj.AddLine(100, 100, 200, 200);
Cut.Contour.Load(FileFreza);
//Cut.CutMode=0;
//Cut.CutType=0;
//Cut.IndexOfPanelElem=-1;
Cut.Contour.Move(0, Obj.Thickness);
Obj.Build();
}
else {alert(FileFreza)}
}
[свернуть]
путь к фрезам -- вручную.
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 16:18. Часовой пояс GMT +3.
|