Огромное спасибо, все работает. Что бы мы, дилетанты, без вас делали....
А по этому скрипту - нельзя ли сделать точку вставки фрагмента привязанной либо к положению курсора, либо вводом высоты полки в выпадающее окно либо в панели свойств? Добили бы тогда офигенный скрипт.
с вводом высоты справился. А вот с привязкой к курсору мыши не могу....
const filename = 'C:\\Bazis 10\\Фрагменты\\35\\11.fr3d';
pozY = NewNumberInput('высота полки');
pozY.Value = 30;
SetCamera(p3dFront);
var Bok1 = GetPanel("Укажите 1-ую вертикальную панель");
var Bok2 = GetPanel("Укажите 2-ую вертикальную панель");
SetCamera(p3dTop);
var Back = GetEdge('Укажите заднюю границу', AxisX).First.z;
var Front = GetEdge('Укажите переднюю границу', AxisX).First.z;
SetCamera(p3dFront);
var x1 = Bok1.GabMax.x + 0;
var x2 = Bok2.GabMin.x - 0;
// Максимальная координата по высоте из двух минимальных координат панелей
var y1 = Math.max(Bok1.GabMin.y, Bok2.GabMin.y);
// Минимальная координата по высоте из двух максимальных координат панелей
var y2 = Math.min(Bok1.GabMax.y, Bok2.GabMax.y);
var z1 = Back;
var z2 = Front;
var frag = OpenFurniture(filename);
if (frag) {
var obj = frag.Make(0, 0);
if (obj) {
// размер по оси = максимум - минимум
obj.ElasticResize({
x: x2 - x1,
y: y2 - y1,
z: z2 - z1
});
obj.Owner = Model.Temp;
}
// минимальная координата идёт в координату позиции
obj.Position = {
x: x1,
y: y1 + pozY.Value,
z: z1
}
}
|