Показать сообщение отдельно
Старый 14.08.2014, 04:58   #400
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 243
Поблагодарили 1,095 раз(а) в 210 сообщениях
Вес репутации: 387
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Заготовка фасада Полоски.

Скрытый текст







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)}

}


[свернуть]




путь к фрезам -- вручную.
v22884 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
maxgmv (14.08.2014), Oldman (14.08.2014)