max script para gerar imagens

Por: Rodrigo_RCGA  

Em: 04/06/2007 18:17

existe como montar um script para que ele abra o arquivo, renderize as vistas, top, front e left, salve e feche, passando para o proximo arquivo [tenho q fazer isso com centenas deles]
Olá Rodrigo_RCGA, tudo bem? Eu montei um script aqui que resolve parcialmente o seu problema. Aos poucos eu irei ajustando e deixando-o melhor: [code:1:b5467773f6] -- Script: Render Arquivos -- Autor: Sergio Feitosa -- e-mail: [email protected] -- Script que renderiza diversos arquivos nas viewports: TOP, LEFT e FRONT. -- Instruções de uso: -- >>> Após executar o script será solicitado a seleção de um arquivo -- >>> Escolher qualquer arquivo no diretório principal que contenha os diversos arquivos a serem renderizados -- >>> Automaticamente o script irá localizar todos os arquivos *.MAX dentro dos sub-diretórios e renderizá-los maxFiles= #() fn carregaArquivos Diretorio &maxFiles = ( For d in #(Diretorio) do ( Join maxFiles (getFiles (d + "*.max")) ) ) fn verificaSubDiretorios Diretorio &maxFiles = ( carregaArquivos Diretorio maxFiles subDiretorios = GetDirectories ((Diretorio as string) + "*") for sub in subDiretorios do ( verificaSubDiretorios sub maxFiles ) ) file= getMAXOpenFileName() barra="\\" append barra "\\" i= file.count while (i > 0) do ( if (file[i] == "\\") then ( file= replace file i 1 barra ) i = i - 1 ) diretorio= (getFilenamePath file) verificaSubDiretorios diretorio maxFiles for file in maxFiles do ( loadMAXFile file nome= getFilenamePath file nome+= getFilenameFile file vp= viewport.getType() viewport.setType #view_top render frame:0 force2sided:true outputfile:(nome + "_top.tif") viewport.setType #view_front render frame:0 force2sided:true outputfile:(nome + "_front.tif") viewport.setType #view_left render frame:0 force2sided:true outputfile:(nome + "_left.tif") viewport.setType vp ) resetMaxFile #noPrompt [/code:1:b5467773f6] Instruções de uso: - Ir na opção de menu: MaxScript > New Script e colar o código acima - Executar o código com: Ctrl + E - Após executar o script será solicitado a seleção de um arquivo - Escolher qualquer arquivo no diretório principal que contenha os diversos arquivos a serem renderizados - Automaticamente o script irá localizar todos os arquivos *.MAX dentro dos sub-diretórios e renderizá-los
Sergio Feitosa
ótimo! valeu pela força Sérgio! fiz um teste aqui e deu certo! mas faltam algumas coisinhas pra ficar perfeito: - fazer um "zoom extends" nas viewports, já que em alguns arquivos o zoom q estava em cada janela era com o modelo mto pequeno ou com zoom em algum detalhe. - salvar o canal alpha dos arquivos *.tif - ajustar o tamanho da imagem para 320x240pixels - retirar o "safe frame". onde eu acho estas variáveis? como fazer isso? ah, e se caso eu precisar parar o processo, como eu faço?
Olá Rodrigo_RCGA, tudo bem? Essas alterações que você solicitou, já estão na minha lista de alterações. Hoje mesmo eu irei realizar essas modificações. Só não fiz ainda estes detalhes, por falta de tempo, mas esses detalhes são bem fáceis de se criar. A única complicação está em habilitar o Canal Alpha que eu ainda não encontrei uma forma de fazer isso. Sobre a questão de parar o processo no meio, por enquanto você pode pressionar a tecla ESC que funciona. Também estou procurando uma forma de fazer com que ele selecione uma pasta e não um arquivo, que ficaria mais lógico.
Sergio Feitosa
Também estou pensando em montar uma interface, de forma que o usuário possa escolher entre quais viewports ele queira renderizar, escolher também as configurações do render, sejam elas configurados pelo usuário para todos os arquivos ou utilizar as configurações de cada arquivo. Também tentarei fazer com que ele reconheça um arquivo diferente do MAX (que ele possa importar é claro) e realizar a importação do mesmo e renderizá-lo. Esse script também me será muito útil, por isso tentarei caprichar o máximo possível.
Sergio Feitosa
Segue atualização: - tamanho no render:320x240 - Canal Alpha em TIF - Zoom Extended All - Escolher diretório ao invés de um arquivo Não entendi a questão de retirar o Safe Frame, já que ele não interfere em nada no render. Assim que eu tiver mais tempo, irei produzir uma interface gráfica para controlar este Script, de forma que o usuário possa escolher a resolução, as viewports e o formato do render. [code:1:5e0849130d] -- Script: Render Arquivos -- Autor: Sergio Feitosa -- e-mail: [email protected] -- Script que renderiza diversos arquivos nas viewports: TOP, LEFT e FRONT. -- Instruções de uso: -- >>> Após executar o script será solicitado a seleção de um arquivo -- >>> Escolher qualquer arquivo no diretório principal que contenha os diversos arquivos a serem renderizados -- >>> Automaticamente o script irá localizar todos os arquivos *.MAX dentro dos sub-diretórios e renderizá-los maxFiles= #() fn carregaArquivos Diretorio &maxFiles = ( For d in #(Diretorio) do ( Join maxFiles (getFiles (d + "*.max")) ) ) fn verificaSubDiretorios Diretorio &maxFiles = ( carregaArquivos Diretorio maxFiles subDiretorios = GetDirectories ((Diretorio as string) + "*") for sub in subDiretorios do ( verificaSubDiretorios sub maxFiles ) ) diretorio= getSavePath caption:"Selecionar Pasta" if diretorio != undefined then ( barra="\\" append barra "\\" i= diretorio.count while (i > 0) do ( if (diretorio[i] == "\\") then ( diretorio= replace diretorio i 1 barra ) i = i - 1 ) verificaSubDiretorios diretorio maxFiles for file in maxFiles do ( loadMAXFile file nome= getFilenamePath file nome+= getFilenameFile file vp= viewport.getType() max tool zoomextents all viewport.setType #view_top render frame:0 force2sided:true channels:#(#normal) outputwidth:320 outputheight:240 outputfile:(nome + "_top.tif") viewport.setType #view_front render frame:0 force2sided:true channels:#(#normal) outputwidth:320 outputheight:240 outputfile:(nome + "_front.tif") viewport.setType #view_left render frame:0 force2sided:true channels:#(#normal) outputwidth:320 outputheight:240 outputfile:(nome + "_left.tif") viewport.setType vp ) resetMaxFile #noPrompt ) [/code:1:5e0849130d]
Sergio Feitosa
testei aqui, tá ok, mas ainda não salvou o canal alpha do tif - preciso fazer isso para que o fundo seja transparente, para por exemplo usar o desenho de uma cadeira em uma planta humanizada. no caso do zoom extend, na verdade o ideal é o zoom extends all selected, que ele vai dar o zoom no tamanho do modelo e não da área de desenho...
Olá Rodrigo_RCGA, tudo bem? O Tif já está com o Canal Alpha, dá uma olhada na imagem no Photoshop. No caso do Photoshp CS a transparência não aparece diretamente. Dá uma olhada nos canais da imagem, que você irá encontrar o canal alpha também, através da opção de menu: Window > Channel (no Photoshop). Sobre a questão do Zoom Extended All na seleção, isso já está pronto... assim que eu terminar a interface, já postarei o script completo aqui.
Sergio Feitosa
Se você quiser que já apareça o fundo transparente de imediato, você pode usar o formato PNG. Dá uma olhada nessa FAQ: Render - Como renderizar com o fundo transparente? http://www.tresd1.com.br/frequentes.php?t=15717 Sobre a questão de selecionar os objetos e aplicar o Zoom Extended All, é só fazer essa mudança no código: [code:1:44384a5e49] vp= viewport.getType() select $objects max tool zoomextents all [/code:1:44384a5e49] Se no arquivo do seu modelo existir uma Omni ou algum objeto distante da maioria dos objetos, então os objetos irão aparecer pequenos mesmo.
Sergio Feitosa
é, a idéia é que o fundo fique tranparente, para q eu coloque estas imagens em plantas humanizadas [decoradas] no Corel. agora não estou no meu PC, mas amanhã cedo vou testar lá no meu trabalho. valeu cara!!! té mais!

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717409.

Total de membros registrados: 143172

Últimos membros registrados: BillcKittrick, rbes, GROYCE, alfredopaz, OsanixCapsules35, MedicGLPKapseln46, mapower, PRINTALPHA.

Usuário(s) on-line na última hora: 523

Legenda: Administrador, Especial, Moderador, Parceiro .

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