Подскажите пожалуйста:
Как отделить елементы Editable Mesh обьекта в отдельные меши?
__________________________________________________________________
То Denis: Вообще-то это продолжение прошлой темы, но я посчитал, что она закрыта и Вы больше в нее не загляните.
-- Detach Faces in editMesh
p = Plane length:139.13 width:134.015 pos:[-28.133,12.7877,0] isSelected😮n
p = convertTo p TriMeshGeometry
t = meshop.detachFaces p #{2} asMesh😮n
setMesh (m = mesh transform🙁p.transform) /*Name:"Name_Face1"*/) t
update m
Очень признателен за ваши ответы!!!
Даже как-то неудобно быть столь навязчивым, но просто больше неоткуда ждать помощи. А проблема вот в чем.
В Махе скрипты прекрасно работают, но вот при экспорте в игровой *.мар файл для программы Quark, некоторые (%10) обьектов исчезают, уменьшаются, разваливаются на инвалидные фейсы или путают координаты наложения текстур.
Это, в принципе, происходило и при ручном отделении и экструдировании полигонов, в чем причина - одному процессору известно.
Сейчас я попробовал через частицы PArray где ParticleType - facing и далее Snapshot-ом создать обьект. Обьект тип:EditableMesh получился с уже выдавленными и отделенными фейсами, но возникла новая проблема, все они являются Елементами одного обьекта, а так как это один обьект у него куча нормалей и он вообще не экспортируется.
Вот как бы мне их отделить от обьекта? уже не полигоны a элементы.
Хотел сам попробовать написать скрипт по аналогии с тем что у меня уже есть, в смысле ваши скрипты, но ничего не вышло. Нашел в хелпе только одну опцию связанную с элементами: meshop.getElementsUsingFace(), но как я понял она лишь возвращает число фейсов во всех элементах обьекта.
>некоторые (%10) обьектов исчезают, уменьшаются, разваливаются на инвалидные фейсы или путают координаты наложения текстур.
возможно проблема в том что некоторые обьекты были в маштабе
(изменены с помощью Scale) или отражены с помощью Mirror
в первом случае поможет ResetXForm с послед Коллапсом
в топике Mirror а дававл скрипт который должен помочь в обоих случаях
>Сейчас я попробовал через частицы PArray где ParticleType - facing и далее Snapshot-ом создать обьект. Обьект тип:EditableMesh получился с уже выдавленными и отделенными фейсами, но возникла новая проблема, все они являются Елементами одного обьекта, а так как это один обьект у него куча нормалей и он вообще не экспортируется.
Вот как бы мне их отделить от обьекта? уже не полигоны a элементы
Если ты имеш в виду ParticleType - Fragments
то их можно выделить по Id матерьяла тк каждому привается свой ID
$.EditablePoly.selectByMaterial 2
Крутил вертел со вчерашнего дня, ничего не получается, единственное, что получилось это выделять элементы с указанным ID, а не отделять элементы от обьекта.
Как я понял нужно найти кол-во ID групп в обьекте и номера фейсов к которым он применен, и тогда подставив в прошлые скрипты эти переменные можно отделить фейсы по ID как елементы. Но в хелпе по скриптам я не нашел нужных опций для Poly или Mesh. Может, конечно плохо искал, беда с английским... 🙁(
obj = $
p = convertToPoly(obj)
bb =1
while on do(
$.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
if aa.count == 0 do exit
polyOp.detachFaces p aa asNode😮n delete😮ff
bb += 1
)
Спасибо за подсказку, но при исполнении скрипта виснет Мах. Я покавырялся получилось вот что:
obj = $
p = convertToPoly(obj)
fnum = (getPolygoncount p)[1]
bb = 0
n = 1
for i = 1 to fnum/n do
(
while bb < fnum/n do
(
bb += 1
print bb
$.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
print aa
polyOp.detachFaces p aa asNode😮n delete😮ff
)
)
Только он работает если все элементы с одинаковым кол-вом фейсов. Да черт с ним, "устал" уже.
И,наверное, самый последний вопрос по этой теме. Какой опцией с_weld_ить вершины #{4..6} в меше или в поли?
obj = $
p = convertToPoly(obj)
bb =1
while on do(
p.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
if aa.isEmpty do exit
polyOp.detachFaces p aa asNode😮n delete😮ff
bb += 1
)
>И,наверное, самый последний вопрос по этой теме. Какой опцией >с_weld_ить вершины #{4..6} в меше или в поли?
мог бы и сам в хелп заглянуть
Welds the specified vertices that are within the threshold distance. The threshold distance is a property (weldThreshold) of the editable poly. Only vertices on a border can be welded.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Гость
Как отделить елементы Editable Mesh обьекта в отдельные меши?
__________________________________________________________________
То Denis: Вообще-то это продолжение прошлой темы, но я посчитал, что она закрыта и Вы больше в нее не загляните.
Savin Denis
p = Plane length:139.13 width:134.015 pos:[-28.133,12.7877,0] isSelected😮n
p = convertTo p TriMeshGeometry
t = meshop.detachFaces p #{2} asMesh😮n
setMesh (m = mesh transform🙁p.transform) /*Name:"Name_Face1"*/) t
update m
Гость
Даже как-то неудобно быть столь навязчивым, но просто больше неоткуда ждать помощи. А проблема вот в чем.
В Махе скрипты прекрасно работают, но вот при экспорте в игровой *.мар файл для программы Quark, некоторые (%10) обьектов исчезают, уменьшаются, разваливаются на инвалидные фейсы или путают координаты наложения текстур.
Это, в принципе, происходило и при ручном отделении и экструдировании полигонов, в чем причина - одному процессору известно.
Сейчас я попробовал через частицы PArray где ParticleType - facing и далее Snapshot-ом создать обьект. Обьект тип:EditableMesh получился с уже выдавленными и отделенными фейсами, но возникла новая проблема, все они являются Елементами одного обьекта, а так как это один обьект у него куча нормалей и он вообще не экспортируется.
Вот как бы мне их отделить от обьекта? уже не полигоны a элементы.
Хотел сам попробовать написать скрипт по аналогии с тем что у меня уже есть, в смысле ваши скрипты, но ничего не вышло. Нашел в хелпе только одну опцию связанную с элементами: meshop.getElementsUsingFace(), но как я понял она лишь возвращает число фейсов во всех элементах обьекта.
Очень, очень надеюсь на вашу помощь!
Savin Denis
возможно проблема в том что некоторые обьекты были в маштабе
(изменены с помощью Scale) или отражены с помощью Mirror
в первом случае поможет ResetXForm с послед Коллапсом
в топике Mirror а дававл скрипт который должен помочь в обоих случаях
>Сейчас я попробовал через частицы PArray где ParticleType - facing и далее Snapshot-ом создать обьект. Обьект тип:EditableMesh получился с уже выдавленными и отделенными фейсами, но возникла новая проблема, все они являются Елементами одного обьекта, а так как это один обьект у него куча нормалей и он вообще не экспортируется.
Вот как бы мне их отделить от обьекта? уже не полигоны a элементы
Если ты имеш в виду ParticleType - Fragments
то их можно выделить по Id матерьяла тк каждому привается свой ID
$.EditablePoly.selectByMaterial 2
Гость
Как я понял нужно найти кол-во ID групп в обьекте и номера фейсов к которым он применен, и тогда подставив в прошлые скрипты эти переменные можно отделить фейсы по ID как елементы. Но в хелпе по скриптам я не нашел нужных опций для Poly или Mesh. Может, конечно плохо искал, беда с английским... 🙁(
Savin Denis
и передаеш в Detach
если выделленых не оказалось - выходиш из цикла
Гость
obj = $
p = convertToPoly(obj)
bb = 1
$.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
polyOp.detachFaces p aa asNode😮n delete😮ff
но он отделяет элемент с введенным ID, а это похоже на ручное отделение. Как зациклить переменную bb, чтобы он отделял каждый раз елемент с новым ID?
Savin Denis
p = convertToPoly(obj)
bb =1
while on do(
$.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
if aa.count == 0 do exit
polyOp.detachFaces p aa asNode😮n delete😮ff
bb += 1
)
Гость
obj = $
p = convertToPoly(obj)
fnum = (getPolygoncount p)[1]
bb = 0
n = 1
for i = 1 to fnum/n do
(
while bb < fnum/n do
(
bb += 1
print bb
$.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
print aa
polyOp.detachFaces p aa asNode😮n delete😮ff
)
)
Только он работает если все элементы с одинаковым кол-вом фейсов. Да черт с ним, "устал" уже.
И,наверное, самый последний вопрос по этой теме. Какой опцией с_weld_ить вершины #{4..6} в меше или в поли?
Savin Denis
p = convertToPoly(obj)
bb =1
while on do(
p.EditablePoly.selectByMaterial bb
aa = getfaceSelection p
if aa.isEmpty do exit
polyOp.detachFaces p aa asNode😮n delete😮ff
bb += 1
)
>И,наверное, самый последний вопрос по этой теме. Какой опцией >с_weld_ить вершины #{4..6} в меше или в поли?
мог бы и сам в хелп заглянуть
polyOp.weldVertsByThreshold <Poly poly> <vertlist>
Welds the specified vertices that are within the threshold distance. The threshold distance is a property (weldThreshold) of the editable poly. Only vertices on a border can be welded.
polyOp.weldVerts <Poly poly> <int vert1> <int vert2> <point3 location> node:<node=unsupplied>
Welds the two specified vertices, with the resulting vertex positioned at the specified location. Only vertices on a border can be welded.