Цитата:
Сообщение от Letos
Как-то так:
Код
Код:
var B = Model.Selected;
var selGab = B.NToGlobal(B.GSize);
var offset = 150;
var D = AddCopy(B)
//сдвиг на нужный "вид"
D.Translate({x: 0,
y: -(selGab.x + offset),
z: 0
})
D.RotateX(90)
var C = AddCopy(B)
//сдвиг на нужный "вид"
C.Translate({x: selGab.y + offset,
y: 0,
z: 0
})
C.RotateY(90)
var U = AddCopy(B)
U.Translate({x: selGab.y + offset,
y: -(selGab.x + offset),
z: 0
})
U.RotateY(-20)
U.RotateX(20)
UnSelectAll();
[свернуть]
В чем суть: для получения "видов" Вам нужно еще сдвигать копии на нужное расстояние. В приведенном коде для сдвига используется значение <Глобальный габарит по оси + offset>, где offset - переменная с произвольным сдвигом (чтобы "виды" не сливались). Гарантировать работу скрипта не могу, т.к. восьмерки у меня нет. Надеюсь, что помог, если не кодом, то советом.
|
Код четко работает с панелями. Но в случае с блоками, при повороте самого блока, ось вращения берется не понятно от куда (мне не понятно). При чем зависит ось поворота от того места где блок был создан.
Поэтому после поворота профильный вид оказывается с лева.
Думаю что тут при повороте нужно использовать не просто Rotate, а Rotate вдоль определенной оси. Только вот беда, как эту ось задать правильно.