Render.ru

Помогите со скриптом, пожалуйста.

#1
У меня есть смоделированный ландшафт плагином Ground Crew. Мне нужно создать файл, в котором будут координаты z всех точек поверхности (грубо говоря, высота каждой вершины отностиельно некого нулевого уровня).

Нашёл вот такой скрипт http://www.render.ru/forum/read.php?31,340669

Насколько я понимаю для меня нужно его немного подправить

obj=$;
file = createfile "c:\\aaa.txt";
text_data="";
for i = 1 to $.numverts do
(
pstn=getvert obj i
text_data+=(floor(pstn.z)) as string+"\n";
);
format "%\n" text_data to:file;
close file;

но мой макс (версия 5.0) ругается на это

text_data+=(floor(pstn.z)) as string+"\n";
);

Ещё нужно, что бы в файле отображалось количество точек по вертикали и горизонтали.

Заранее спасибо.
 
#3
Разобрался немного. Хоть щас выводит числа, но при большом количестве вершин выбрасывает? Есть какое-нибудь ограничение или нет? И как сделать что бы числа не округлялись?

Просто совсем не шарю в скриптах.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
С тримешем может прокатить, но не всегда
точки в локальных координатах, так как работаеш через тримеш
еслибы конвертил в едитмеш все было-бы впорядке
выше пример он не должен валится на больших сетках
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#5
1.Выделенный обьект должен быть Editable_Mesh
2.С подсчетом не все так просто может замедлить вывод при очень большой сетке.


-- ---------------------------------------------------------
obj=$
file = createfile "c:\\aaa.txt"
for i = 1 to obj.numverts do
print ((getvert obj i).z) to:file
close file
-- ---------------------------------------------------------
 
#6
Написал новый скрипт. Вроде не надо делать Editable_Mesh (или надо?).

file = createfile "D:\\Cords.txt";
text_data="";
m=selection[1].mesh; n=getNumVerts m
for i = 1 to n do
(
p=getvert m i
text_data+=(floor(1000*p.x)/1000) as string+" ";
text_data+=(floor(1000*p.y)/1000) as string+" ";
text_data+=(floor(1000*p.z)/1000) as string+"\n";
);
format "%\n" text_data to:file;
close file;

Только щас заметил, что скрипт не даёт реального расположения точек. Ввожу для проверки куб, и координаты получаются не вершин, а точек лежащих на прямых, соединяющие вершины. Я в этом плохо разбираюсь. Скажите, где я могу ошибаться?

Ещё проблема, когда ввожу много точек, то вываливается надпись unknown system exeption. В чём может быть проблема?
 
#7
Сорри, что подымаю древнюю тему, но все же.
Отконвертил объект в едитабле меш, но GetVert все равно дает локальные координаты. Обошел это путем получения <mesh>.pos, но все равно модель экспортируется частично криво - некоторые меши не на своих местах. Что я не так делаю? :(
И второй вопрос - модель имеет симметрию, и ее явно рисовали миррором. В результате на половине полигонов вывернуты нормали, причем без закономерности от расположения. Как с этим справиться?
 
Сверху