У меня есть смоделированный ландшафт плагином Ground Crew. Мне нужно создать файл, в котором будут координаты z всех точек поверхности (грубо говоря, высота каждой вершины отностиельно некого нулевого уровня).
Насколько я понимаю для меня нужно его немного подправить
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";
);
Ещё нужно, что бы в файле отображалось количество точек по вертикали и горизонтали.
Разобрался немного. Хоть щас выводит числа, но при большом количестве вершин выбрасывает? Есть какое-нибудь ограничение или нет? И как сделать что бы числа не округлялись?
С тримешем может прокатить, но не всегда
точки в локальных координатах, так как работаеш через тримеш
еслибы конвертил в едитмеш все было-бы впорядке
выше пример он не должен валится на больших сетках
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
-- ---------------------------------------------------------
Написал новый скрипт. Вроде не надо делать 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. В чём может быть проблема?
Сорри, что подымаю древнюю тему, но все же.
Отконвертил объект в едитабле меш, но GetVert все равно дает локальные координаты. Обошел это путем получения <mesh>.pos, но все равно модель экспортируется частично криво - некоторые меши не на своих местах. Что я не так делаю? 🙁
И второй вопрос - модель имеет симметрию, и ее явно рисовали миррором. В результате на половине полигонов вывернуты нормали, причем без закономерности от расположения. Как с этим справиться?
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Гость
Нашёл вот такой скрипт 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";
);
Ещё нужно, что бы в файле отображалось количество точек по вертикали и горизонтали.
Заранее спасибо.
Гость
Гость
Просто совсем не шарю в скриптах.
Savin Denis
точки в локальных координатах, так как работаеш через тримеш
еслибы конвертил в едитмеш все было-бы впорядке
выше пример он не должен валится на больших сетках
Savin Denis
2.С подсчетом не все так просто может замедлить вывод при очень большой сетке.
-- ---------------------------------------------------------
obj=$
file = createfile "c:\\aaa.txt"
for i = 1 to obj.numverts do
print ((getvert obj i).z) to:file
close file
-- ---------------------------------------------------------
Гость
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. В чём может быть проблема?
Гость
Отконвертил объект в едитабле меш, но GetVert все равно дает локальные координаты. Обошел это путем получения <mesh>.pos, но все равно модель экспортируется частично криво - некоторые меши не на своих местах. Что я не так делаю? 🙁
И второй вопрос - модель имеет симметрию, и ее явно рисовали миррором. В результате на половине полигонов вывернуты нормали, причем без закономерности от расположения. Как с этим справиться?