Este script Python extrai um arquivo .blend de dentro de um executável (.exe). Funciona tanto no Blender, como também independentemente dele. Pode também extrair de mútiplos executáveis, de uma só vez. Basta arrastar os executáveis para o script, ou executar o script e digitar o nome do arquivo, para extrair os .blends. Atualizado para o Python 3.2 (Blender 2.5).
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
""" Nome: Extrator de .blend (extrator-blend.py)
Versão: 1.4 (22 de outubro de 2011)
Autor: Ricardo Silva Veloso (Ricvelozo)
Site: http://ricvelozo.blogspot.com/
"""
import sys
class Blend_file:
def __init__(self):
self.blend = ""
self.exe = ""
self.nome = ""
def read(self, nome):
self.nome = nome
self.exe = ""
try:
exe = open(nome, "rb")
except IOError:
print("O arquivo \"" + nome + "\" não foi encontrado!")
return False
else:
print("Processando...")
self.exe = exe.read()
exe.close()
return True
def extrair(self):
i = self.exe.find(b"BLENDER_v")
if i == -1:
i = self.exe.find(b"BLENDER_V")
if i != -1:
print("Extraindo...")
self.blend = self.exe[i:len(self.exe)]
try:
blend = open(self.nome[0:len(self.nome)-3] + "blend", "wb")
except IOError:
print("Não foi possível criar o arquivo \"" +
self.nome[0:len(self.nome)-3] + "blend\"!")
else:
blend.write(self.blend)
blend.close()
print("O arquivo \"" + self.nome[0:len(self.nome)-3] +
"blend\" foi criado com sucesso!")
self.blend = ""
return True
else:
print("O arquivo \"" + self.nome + "\" não possui um .blend!")
self.blend = ""
return False
arquivo = Blend_file()
if len(sys.argv) > 1:
args = sys.argv[1:len(sys.argv)]
for arg in args:
if arquivo.read(arg):
arquivo.extrair()
input()
else:
while True:
nome = input("Digite o nome do arquivo para extrair ou apenas " \
"Enter para sair:\n>>> ")
# Linha vazia em Unix-like e Windows, respectivamente
if len(nome) == 0 or nome == '\r':
break
else:
# Remove o caractere '\r' no Windows
if nome[-1] == '\r':
nome = nome[0:len(nome)-1]
# Extrai o arquivo .blend
if arquivo.read(nome):
arquivo.extrair()
A extração de arquivos .blend de executáveis não é algo ilegal, pelo fato de a licença especificar que tudo que for embutido no player, está automaticamente sob a GNU GPL. Para mais informações, consulte o artigo Blender na Wikipédia.

4 comentários:
estive lendo as pagina ae e ta muito bacana ,adorei algums esclarecimentos ae vlws
Obrigado!
boa noite, existem blocos de imagens, tal como no autocad?
Não. Mas é possível simular parcialmente a funcionalidade dos blocos usando bibliotecas e grupos, no Blender. Cria-se o objeto (bloco) e o carrega em outro arquivo como biblioteca. Ao modificar o objeto na biblioteca, ele é atualizado em todos os lugares. Os grupos podem ser usados para representar uma entidade.
Postar um comentário