Model.forEachPanel(function(p) {
//p = AddPanel(width, height)
c = p.Contour.MakeCopy()
scaleX = 0.4
scaleY = 0.2
c = MashtabirovaniyeContura(c, scaleX,scaleY)
StartEditing(p)
p.Contour.Clear()
p.Contour.Addition(c)
p.Build()
/*p.PositionX = p.PositionX*scale
p.PositionY = p.PositionY*scale
p.PositionZ = p.PositionZ*scale
*/
});
function MashtabirovaniyeContura(scontur, scaleX,scaleY) {
s = scontur
sh = s.Height
sw = s.Width
s.Fit(0, 0, sw, sh)
ss = NewContour()
sc = s.Count
for (i = 0; i < sc; i++)
{
if (s[i].ElType == 1) {
x1 = s[i].Pos1.x * scaleX
y1 = s[i].Pos1.y * scaleY
x2 = s[i].Pos2.x * scaleX
y2 = s[i].Pos2.y * scaleY
ss.AddLine(x1, y1, x2, y2)
}
if (s[i].ElType == 2) {
p1 = NewPoint(s[i].Pos1.x * scaleX, s[i].Pos1.y * scaleY)
p2 = NewPoint(s[i].Pos2.x * scaleX, s[i].Pos2.y * scaleY)
p3 = NewPoint(s[i].Pos2.x * scaleX, s[i].Pos2.y * scaleY)
// alert(JSON.stringify(s[i].ArcCenter()))
// alert(JSON.stringify(s[i].Center))
ArcCenter = s[i].ArcCenter()
centre = NewPoint(ArcCenter.x * scaleX, ArcCenter.y * scaleY)
/*
//проверка тру или фелс в направлении дуги
p1t = NewPoint(s[i].Pos1.x, s[i].Pos1.y)
p2t = NewPoint(s[i].Pos2.x, s[i].Pos2.y)
centre_t = NewPoint(s[i].Center.x, s[i].Center.y)
st = NewContour()
st.AddArc(p1t, p2t, centre_t, true)
if (st[0].ObjLength() == s[i].ObjLength())
{
napravleniye = true
} else {
napravleniye = false
}
//----проверка тру или фелс в направлении дуги
*/
ss.AddArc3(p1, centre, p2)
//
//ss.AddArc(p1, p2, centre, napravleniye)
}
if (s[i].ElType == 3) {
xc = s[i].Center.x * scaleX
yc = s[i].Center.y * scaleY
rad = s[i].CirRadius * scaleX
ss.AddCircle(xc, yc, rad)
}
}
return ss
}
[свернуть]