Skocz do zawartości

G-MAX >>> 3DS. Problem z importem.


Rekomendowane odpowiedzi

Napisano

Witam, mam pytanko dot. przenoszenia projektów z G-MAX do 3D Studio. Czytałem wcześniej o skryptach które ludzie piszą, za pomocą których można przenieść dany projekt do 3D Studio. Niestety nigdzie nie znalazłem tych skryptów, a sam nie potrafię takich napisać. Próbowałem też za pomocą programu Rhino3D wczytać plik z G-MAX a później do 3DS ale nie udało mi się zaimportować formatu G-MAX. Czy macie jakiś sposób na import? Dzięki za pomoc. Pozdrawiam.

  • Odpowiedzi 2
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Napisano

Hmmm, początkowo byłem ciekaw, czy ktoś tu zamieści coś, co będzie lepszym rozwiązaniem niż uzyskane przeze mnie.... ale jakoś cisza... :|

 

Jakiś czas temu też potrzebowałem możliwości kontaktu pomiędzy tymi programami, więc zmontowałem odpowiedni skrypt.

Od razu ostrzegam, że jest to jedna wielka prowizorka, w dodatku dosyć uciążliwa w użytkowaniu, ale dla mnie było ważne, że działa.

 

Oto skrypt:

 

 

 

 

rollout FloaterExample \"FloaterExample\"

(

local obiekt

local cos

local kopia

 

--buttony

fn getgeometry o = ( Superclassof o == geometryclass and classof o != targetobject )

pickbutton siatka \"pick\" filter:getgeometry

button zad1 \"in GMAX export\" width:100 enabled:false

button zad2 \"in MAX import\" width:100 enabled:true

 

on siatka picked cos do

(

siatka.text = cos.name

obiekt = cos

zad1.enabled = true

zad2.enabled = true

kopia = snapshotasmesh obiekt

)

 

on zad1 pressed do

(

clearlistener()

--wypisanie ilosci vertexow i faceow

print kopia.numverts

print kopia.numfaces

--wypisanie wspolrzednych wszystkich vertexow

for i = 1 to kopia.numverts do print (getvert kopia i)

--wypisanie danych o face\'ach

for i = 1 to kopia.numfaces do

(

face = getface kopia i

print face

sgroup = getfacesmoothgroup kopia i

print sgroup

matid = getfacematid kopia i

print matid

edge1 = getedgevis kopia i 1

print edge1

edge2 = getedgevis kopia i 2

print edge2

edge3 = getedgevis kopia i 3

print edge3

)

)

 

on zad2 pressed do

(

vert_array = # ()

face_array = # ()

sgroup_array = # ()

matid_array = # ()

edge_array = # ()

 

plik_nazwa = getopenfilename()

plik = openfile plik_nazwa

num_verts = readvalue plik

num_faces = readvalue plik

for i = 1 to num_verts do append vert_array (readvalue plik)

for i = 1 to num_faces do

(

append face_array (readvalue plik)

append sgroup_array (readvalue plik)

append matid_array (readvalue plik)

edge1 = readvalue plik

edge2 = readvalue plik

edge3 = readvalue plik

append edge_array #(edge1, edge2, edge3)

)

close plik

nowymesh = mesh vertices:vert_array faces:face_array

for i = 1 to num_faces do

(

setfacesmoothgroup nowymesh i sgroup_array

setfacematid nowymesh i matid_array

setedgevis nowymesh i 1 edge_array[1]

setedgevis nowymesh i 2 edge_array[2]

setedgevis nowymesh i 3 edge_array[3]

)

update nowymesh

)

 

 

)

 

if FloaterExampleFloater != undefined do

(

closerolloutfloater FloaterExampleFloater

)

FloaterExampleFloater = newRolloutFloater \"FloaterExample Floater\" 200 150

addRollout FloaterExample FloaterExampleFloater

 

 

 

trochę obsługi:

jest to jeden skrypt, z którego korzystasz zarówno w G-MAX\'ie jak i MAX\'ie.

W tym pierwszym wybierasz \'pick\' i wskazujesz obiekt, który chcesz eksportować (skrypt exportuje siatke, więc jeśli masz na obiekcie jakieś modeyfikacje, to najlepiej wszystkie usuń (w MAX\'ie naniesiesz je ponownie).

Po wskazaniu obiektu wciskasz \"in GMAX export\"... no i teraz najgorsza część roboty. Ponieważ w G-MAX\'ie zablokowano możliwość tworzenia plików na znane mi sposoby, więc wszystkie potrzebne dane zostały właśnie jedynie wypisane w listener\'e (lewy dolny róg interface\'u). Kliknij na nim RMB i wybierz \'open listener window\' a następnie WSZYSTKO, co skrypt tam wygenerował w dolnym oknie, skopiuj do notatnika. Będzie to zajęcie żmudne, gdyż nawet przy średnio skomplikowanych bryłach jest tego tyle, że bedziesz musiał kopiować fragmentami (koniecznie przy tym uważając, aby nic nie zmienić w układzie). Akurat to miałem w planach optymalizować, aby było mniej tekstu, ale jakoś zawsze brakowało czasu...

 

Gdy plik już jest gotowy, wystarczy wejsć do MAX\'a, odpalić skrypt, wybrać \"in MAX import\" i wskazać plik tekstowy.

 

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności