Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

dadorrodrigues   São josé do Rio preto - SP
EvandroGP   Paraná - PR
Fabio   Tubarão
cleitonedy   Portugal - AC
arbarcelos   Porto Alegre

Portfólios Ver Mais

PauloRamos   Mogi Das Cruzes São Paulo
Menezes Neto   Campina Grande - PB
lucasberto7   Recife, PE - PE
Rick Rici   Brasil - SP

Criar Campo de Texto com MAXScript

Por: Alvaro  

Em: 20/06/2014 02:03

Olha esse aqui, ele tá melhorzinho, pensei esse aí como um \'salvador de versão\' (até por isso pus esse nome na janelinha e tal), e, se é um \'salvador\' de versões, é um tanto quanto um contrasenso que ele apague o anterior caso vc digite o mesmo nome sem querer..

Essa versão não apaga a anterior, se já existir um arquivo, aparece uma janelinha de aviso dizendo que a versão já existe e então ele não passa por cima =D..


Eu pensei q era \'If - do\' e \'Else - do\' apenas, mas não leva o \'do\' nesse caso, é só If-then-Else, o \'then\' é como se fosse o \'do\' nesse caso, e depois do Else não precisa por \'do\'.. XD..

No caso aí usei o \'doesfileexist\', ele retorna um valor \"booleano\" Falso ou Verdadeiro. Então, caso o \'MyProject\' (que é no caso o q tá na caixa de texto no momento) já exista (o doesfileexiste retornou como True), vai dar a mensagem que essa versão já existe (e não vai salvar), caso ocorra qualquer outra situação (que só pode ser o False, no caso), vai salvar o arquivo.. Definí o \'MyProject\' já pra não ter q ficar digitando a expressão de novo depois xd..

Essa versão já dá pra usar bem legal e de maneira bem segura agora :)

Achei um iconezinho bem legal disquete, q parece um zip-drive, aí to usando esse ícone pra esse script :3..



-------------------------------------------------------------------------------------


Global DirCol = getDirectories (\"C:\\3d-Business\\Models\\\\*.*\")

rollout sfsaver \"Version Saver\" width:170 height:78
(
edittext edt1 \"\" pos:[-2,28] width:170 height:20
button sfsave \"Save my Project\" pos:[2,54] width:167 height:21
DropDownList DirSel \"\" pos:[1,1] width:169 height:40 items:DirCol
on sfsave pressed do
(
MakeDir (DirCol[DirSel.selection] as string+edt1.text)
MyProject = (DirCol[DirSel.selection] as string+edt1.text+\"\\\\\\\"+edt1.text)
If (doesfileexist (Myproject+\".max\") == true) then (messagebox \"Version Already Exists\")
else SaveMaxFile MyProject
)
)
CreateDialog sfsaver



-------------------------------------------------------------------------------------



@edit: Tem duas \'barras\' na linha do MyProject..
A Beleza está entre a Ética e a Razão!..
Legal cara :) tá me parecendo perfeito!
Não vou testar hoje mas amanhã provavelmente criarei o meu com base nesse :)
Alvaro Moreira Particle Skull PSkull.com
Hey Fox, vou tirar um dia pra estudar MAXScript antes de continuar com isso, assim não me perco tanto.

Você sabe onde eu encontro uma lista de todas opções possíveis? Tipo, checkbox, spinner, checkbutton, editText, Dropdownlist, button... encontrei vários perdidos mas não uma lista completa. Esse doc do MAXScript não ta me parecendo muito amigável.

btw, esses dias encontrei esse guia criado pelo desenvolvedor do MAXScript:
https://vimeo.com/album/1514565/page:1/sort:preset/format:detail

se ainda não conhecia da uma olhada. bem útil!

Abs
Alvaro Moreira Particle Skull PSkull.com
Sei eu tinha visto esse aí.. Acho q até saiu nas noticias da 3d1..


E, realmente, o help do MAXScript é extremamente contra-intuitivo de se usar =D..


Mas, por exemplo, no editor mesmo de script lá, se vc for em \'Tools\' e clicar em \'Edit Rollout\' (vc tem q deixar o cursor de texto dentro de um rollout, aí ele vai editar o rollout em q o cursor de texto estava, etc..), na parte inferior da janelinha desse editor tem varias coisinhas q vc pode por no rollout, aí tem botão, a caixa de texto, o dropdownlist.. Aí vc pode também por por ali e tal e ir investigando o q cada um faz..
A Beleza está entre a Ética e a Razão!..
car4lh#, eu nunca tinha visto isso! nossa cara, que sensacional!
Alvaro Moreira Particle Skull PSkull.com
Consegui seguir teu exemplo perfeitamente. :)

Agora avançando mais um pouco. Acha possível criar uma versão #2, #3, #4... do arquivo ao invés de criar a messagebox?

Fiz um teste assim:

If doesFileExist (MyProject+\".max\") == true then saveMaxFile (MyProject+\"2\")

E funcionou de boa. Sabe como fazer um numero \"padrão\" que substitui o 2 por um valor mais alto toda vez que o arquivo é salvo?
Alvaro Moreira Particle Skull PSkull.com
Então.. acho q assim..:

Local VerNum = 1
If doesFileExist (MyProject+\".max\") == true then
(
If doesFileExist (MyProject+(VerNum as string)) == true do
(
while doesFileExist (MyProject+(VerNum as string)) == true do ((VerNum = (VerNum+1)))
saveMaxFile (MyProject+(VerNum as string))
)
)
else do
(
If doesFileExist (MyProject+(VerNum as string)) == true do
(
while doesFileExist (MyProject+(VerNum as string)) == true do ((VerNum = (VerNum+1)))
)
saveMaxFile (MyProject+(VerNum as string))
)




-Primeiramente, caso não tiver o (MyProject+\".max\") e caso não tenha o arquivo \"Nome1\", vai salvar o arquivo como \"Nome+1\" (ex:\"Versão1\").
-Caso tiver o (MyProject+\".max\"), vai verificar se tem o \"Nome1\".
-Caso tenha o \"Nome1\", enquanto existir um arquivo de nome \"Nome(+VerNum como string)\", ele vai adicionar +1 ao VerNum.
-Depois que a condição de existir um arquivo de nome \"Nome(+VerNum como string)\" deixar de ser cumprida, vai ser salvo um arquivo chamado \"Nome(+VerNum como string)\"..



Acho q dessa maneira ele faz isso aí, dá uma olhada (mas com certeza tá errada a sequencia de instruções e etc, mas é uma coisa qvai mais ou menos por aí xd)..


Pra vc adicionar um valor à uma variavel \'a cada vez\' de uma coisa, vc tem q usar um \'loop\', tem loops de \'for\', loops de \'while\' e devem ter outros loops também =D..






A Beleza está entre a Ética e a Razão!..
Valeu :) Vou dar uma olhada amanhã.

Abraço!
Alvaro Moreira Particle Skull PSkull.com
Cara, só uma coisa que eu não peguei desde la do começo. por que dos 2 sinais de igual? ==
tipo:
If (doesfileexist (Myproject+\".max\") == true) then (messagebox \"Version Already Exists\")

EDIT: tudo ficou muito mais visível colorido. valeu
Alvaro Moreira Particle Skull PSkull.com
Então, falar a real pra vc tbm não entendí essa questão.. Na primeira vez q eu tinha tentado fazer coisa do genero é q não tava dando nem a pau com um só igual..


Aliás.. Deve ser uma coisa assim... Suspeito q seja uma coisa do genero desse tipo aqui olha só (imagino isso aqui pode ser outra coisa ,etc..):

\"=>\" Seria igual ou maior-que
\"=<\" seria igual ou menor-que
\"==\" seria igual ou igual mesmo e tal.. XD..

Aí eu acho q deve significar uma coisa dessa, faria sentido e tal XD.. Mas descobri a primeira vez q passei tanto nervoso tentando fazer um negócio lá q tava atá dando tremilique de nervoso então saíu igual duas vezes a acabou funcionando lá =D..
A Beleza está entre a Ética e a Razão!..

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 710606.

Total de membros registrados: 138068

Últimos membros registrados: cavalcantesuetam, oxyscrema, ennecopro, bodybloom, NutrimRezensionDE, Suvasha026, wrinkless, waltereastmood.

Usuário(s) on-line na última hora: 715, sendo 24 membro(s) e 691 visitante(s).

Membro(s) on-line na última hora: rafaelgmarotta, Carlos E. Nogueira, rafa.carvalho, cavalcantesuetam, Danielreis, Henrique Ribeiro, emersonforentin, Eduardo Ramos, Antonio, Sergio1987, renaz, Luis Antonio, Lucas Reis, Duda, mastermax, Renatto, TadeuB79, Daniel Monteiro, Esdras, claro_lima, Rodrigo, Eng Damasceno, Thiago, Marco Rocha.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.