Anda di halaman 1dari 22

onsideraes iniciais

Nos meus tempos de Windows user aquela janelinha preta do Dos, ou prompt para os mais ntimos parecia-me pouco
atraente. Imagines s, o mouse era muito mais prtico, era s mover a mo um pouquinho apontar para aqueles cones e
tchiuca! dar uma clicada e a dilig"ncia estaria resolvida. #empre deslum$rava os hac%ers usando o prompt e tentava
imaginar o porque deles em$urem-se naquela atividade tediosa j que contavam com uma pratissssima inter&ace gr&ica
ao alcance das mos. No vou esticar a minha e'plana(o com descri()es pormenori*adas. + resposta a pre&er"ncia dos
hac%er pela ,telinha preta, evidenciou-se depois de alguns anos de uso do -inu' de minha parte... era o controle. .uando tu
contas com o modo te'to a tua disposi(o e as &erramentas certas, tens via scripts e comandos todo o controle do sistema
operacional. /u podes desenhar, criar arquivos de te'tos, entrar na internet, $ai'ar arquivos, &a*er downloads e toda uma
sorte de atividades naquela ,tosca, telinha preta. 0 mais interessante 1 que tu podes us-la tanto no computador que estiver
na tua &rente, quanto num computador nos con&ins da 2hina via ssh, incrvel no3 No333 2erto, imagines a situa(o. /u
tens uma &irma no outro lado da cidade, ests no con&orto do teu lar, curtindo uma chuvinha que l &ora cai. Derepente toca o
celular4
- #eu &ulano, estou com um pro$lema aqui no computador. 5i* o que o senhor mandou para criar o $ac%up mas apareceu
uma mensagem de erro maluca!
/u nem pensas sair de casa, est $om demais curtir aquela chuvinha. #imples! 2omo o teu sistema 1 um 6ni'-li%e, $asta
entrares na internet, e acessar o microcomputador remoto via #sh. +ssim que o &i*er, tu ds uma olhada no arquivo .con& ou
no script que criaste para &a*er $ac%up. +t1 ento est tudo certo. 7as um pouco de procura, tu entras no histrico de
comandos e p&! Desco$re que o teu &uncionrio no rodou o comando correto para &a*er $ac%up. 8nto tu simplesmente o
&a* e manda um script para o &uncionrio em questo com os procedimentos corretos do tra$alho.
9ois, isso 1 apenas um parco e'emplo, o poder do modo te'to 1 $astante amplo. 9ara aqueles que no compreenderam
$em a e'plica(o, o que quis di*er &oi o seguinte4
Com o modo texto tu podes fazer praticamente qualquer coisa num computador, tanto o que est na tua frente agora,
quanto um que estiver a milhares de quilmetros.
+gora a pergunta que no quer calar. 9or que e'pliquei tudo isso3 #imples. +ssim que comecei a escrever alguns
modestos scripts para automati*ar as minhas tare&as ao usar o -inu', v que quase todos os programas tinham um
arquivo .con& que continham a con&igura(o de seu &uncionamento, que quase todas as &erramentas de con&igura(o do
sistema eram scripts e no programas $inrios e que mesmo os programas $inrios se comunicavam entre s e o&ereciam
sadas e mensagens de erro e comportamento que desaguavam em um arquivo de te'to.
Caramba! Arquivos de texto, eles so os caras.
Depois da desco$erta dos scripts analisei-os e estudei-os a &undo. Desco$ri que os programas do #hell #cript, 9erl e
9:thon so interpretados ao inv1s do 2 ou 9ascal que so compilados. 6m programa em 9:thon 1 um script, um te'to. 6m
programa em 2 1 compilado em um arquivo ;ou vrios< binrio;s<. #e tu tentas a$rir um programa $inrio com um editor de
te'to iro aparecer aquele monte de sm$olos estranhos, isso por que ele est na linguagem do computador. 7as, se tu
a$rires um script irs deparar-te com palavras compreensveis. 8ntendeste3 2erto, agora que eu sa$ia disso, comecei a
perce$er que essa realidade tam$1m de aplicava aos arquivos gerados por alguns programas. 9or e'emplo... o 90=->a:
que 1 um renderer ;programa que converte um arquivos com dados em uma imagem &otorealstica ou no< que gera
arquivos interpretados, j o ?lender gera $inrios, ou seja, arquivos que tu no consegues a$rir num editor de te'to. 0s do
90=->a: tu podes a$rir em editores, edit-los salv-los e e'ecut-los, j os do ?lender tu s a$res nele mesmo.
8'emplos de programas que geram arquivos interpretados4 !"#$%a&;.pov<, 'n(scape;.svg<, "pen"ffice;.odt<...
8'emplos de programas que geram arquivos binrios4 )lender *+ ;.$lend<, ,imp ;imagens como .jpg, '&c,
gi&...<, -icrosoft .ord ;.doc<...
+partir desta segunda &ase passei a usar muito os programas que geravam arquivos interpretados ao inv1s de $inrios.
9erce$i que haviam pr/s e contras, o proncipal pr 1 o controle do arquivo e o principal contra 1 o enorme tamanho desses
arquivos em rela(o aos $inrios. 9or e'emplo, um arquivo com uma anima(o multimdia de @ABC$ $inrio corresponde a
um interpretado de DA 7$ por e'emplo! 8 mesmo compactando a di&eren(a ainda 1 grande.
0utra coisa que desco$ri e esta ajudou-me $astante ao tornar prtica a edi(o dos arquivos &oram as 0xpress1es
%egulares. No vou apro&undar-me no assunto, $asta sa$eres que as e'press)es regulares ou rege' possi$ilitam a edi(o
de arquivos de te'to atrav1* de padr)es sem a necessidade de a$r-los! /u podes mudar ocorr"ncias dentro deles, como
datas, ordem de palavras, apagar letras, &rases e todo o mais com um Enico comando!
/udo isso deve estar parecendo meio con&uso, mas no desistas. 2ontinues lendo o te'to que as coisas vo se
encai'ando pouco a pouco.
+ priori &iquei $astante chateado por compreender que o ?lender gerava aquivos $inrios ao inv1s de interpretados. 7as
lem$rava-me que haviam os scripts em 9:thon ou 9:thon #cripts. 0$a! Favia uma possi$ilidade de controle! 8studei um
pouco e... ie$a! 8ssa &erramenta mostrou-se $astante &le'vel e amplamente utili*vel, mesmo no sendo to a$rangente ou
milagrosa.
/u podes criar e'portadores, construtores de meshes ;malhas<, con&iguradores e l vai cassetada de op()es. /am$1m
no vou me ater muito nestas e'plica()es, $asta di*er-te que se tu usares a tua imagina2o atrelada a um bom (no3$ho3
das ferramentas, se no fizeres chover, pelo menos far de teu trabalho um realidade mais prtica, instigante e
prazerosa!
0utro &ator que me chamou a aten(o depois de todo este estudo, &oi perce$er o quo inteligente era a &orma que os
desenvolvedores do ?lender gerenciavam o projeto no quesito ,reinventar a roda,... eles simplesmente no &a*em isso!
=ejas s, acima e'planei modestamente o &uncionamento dos programas que rodam em sistemas 6ni', ou 6ni'--i%e.
8screvi que os programas conversavam entre s. 9ois $em, a alguns anos quando larguei o GD# 7a' para tra$alhar com o
?lender, achava estranho que um programa com tantos recursos contasse com um tamanho to reu*ido. 0 mais
impressionante 1 que o tempo passava... mais recursos eram em$utidos e o tamanho pouco aumentava. 613 8u pensava...
isso 1 impossvel! 2omo um programa to amplamente utiuli*vel e com tantos recursos antagHnicos pode ser deste
tamanhico3 #imples... o programa usava o es&or(o, o tra$alho de outras pessoas. 9or e'emplo... um $endito vai e escreve
uma $i$lioteca de simula(o &sica, outro de um sistema de som. + pergunta 1... por que os desenvolvedores vo criar as
suas apartir do *ero se eles tem a mo as $i$iotecas citadas3 +parentemente &oi isso que os developers ;desenvolvedores<
pensaram e e'ecutaram. 9elo menos &oi o que entendi nos te'tos que l. #e tu &ores instalar o ?lender no -inu', ou mesmo
compil-lo, vers quantos programas e quantas $i$liotecas sero necessrias no sistema para que ele &uncione. No
Windows essas $i$liotecas vem como .ddls. Inteligente no3 9ois, escrevi este te'to para complementar o que tenho
tentado e'plicar. .ue o ?lender o&erece o 9:thon como uma linguagem que se coloca entre o sistema mais interno ;core< e
o e'terno ;inter&ace< para que tu possas sem muito tra$alho e'ecutar opera()es que demandariam muito tempo e
conhecimento pelo jeito tradicional ou acessvel. /u o que &oi dito redunda em vrios conceitos4 2onhecimento da inter&ace
gr&ica, programa(o ;9:thon<, conhecimentos internos da programa(o ;e'press)es regulares<, e gerenciamento do
sistema ;#hell, comandos $sicos<.
0$s.4 +conselho-te a ler so$re programa(o em 9:thon, 0rienta(o a 0$jetos, #hell script e e'press)es regulares. No
&inal do tutorial estarei disponi$ili*ando lin%s para tal.
Colocando a mo no Prompt
+ntes de mais nada, gostaria de di*er que este tutorial &oi &eito so$re o e'emplo do criador do 9ov+nim, um script de
e'porta(o para o 90=->a:, muito $om por sinal, uma de minhas &erramentas de tra$alho. 0utra &ato... sou um iniciante na
arte da programa(o e desconhe(o a &undo o &uncionamento da orienta(o a o$jeto, portanto no esperes um e'plica(o
pormenori*ada dela, vou ater-me a uma viso geral. 2om$inado3
+ primeira coisa que &aremos 1 ha$ilitar o console, para &a*er isso sigas o procedimento a$ai'o4
+$ras o ?lender 49 Fehehehe... caso contrrio &ica di&cil de tra$alhar.
5alando s1rio agora... dividas a tela principal em duas. No sa$es como &a*er isso3 5eli*mente e'pliquei o processo em
outro tutorial4 installblend.html.
2omo aparece acima, cliques no $oto esquerdo in&erior da janela direita ;con&uso n13< e seleciones ,#cripts Window,.
Isso! + apar"ncia deve &icar como essa.
+proveites e apagues tudo o que tem na janela esquerda. +ssim vers o o$jeto que ser criado.
2liques no $oto 4cripts --I 4&stem --I 'nteractive console.
6m lindo console negro surgir &rente aos teus olhos! J nesse garotinho a que escreveremos os comandos que
con&eccionaro a nossa mesh, ou malha.
6m pouco de conversa &iada antes de prosseguirmos. 8'iste outra &orma de se criar 9:thon scripts, a principal 1 atrav1*
de um arquivo de te'to. Nesse tuto, ns utili*aremos o console, por que achei mais $onitinho... hehe, a verdade 1 que
perce$i nele uma &orma do aprendi* lidar em tempo real com os comandos e ver o que est acontecendo... ver quando as
coisas acontecem. 0 ?lender tam$1m conta com um editor de te'to com suporte a colora(o de sinta'e para a linguagem
9:thon, tu podes escrever teus scripts l, ir j salvando e testando-os, show de $ola, no3
=ejas s, naquela janelinha preta, ou console, tu vais escrever os comandinhos $sicos. 2omeces por4
me = NMesh.GetRaw()
2omo aparece acima, depois d"s dois 8nters e vs ao pr'imo comando.
2erto3 Depois dos dois 8nters4
v = NMesh.Vert(1, 0, 0)
?em, como estou en&adado de capturar a tela 4< vou apenas escrever os comandos que se seguem. 8screva-os da
mesma &orma que aparecerem a$ai'o. +h, para no precisares redigitar tudo de novo $asta clicares na 4eta para cima, para
que os comandos anteriormente digitados apare(am na tela e 4eta para baixo caso passes do comando desejado. +ssim
que aparecer o que estava precisando, podes modi&icar somente a parte necessria, como no caso das coordenadas dos
v1rtices. Depois dos dois comandos acima escrevas estes4
me.verts.append(v)
v = NMesh.Vert(1, 1, 0)
me.verts.append(v)
v = NMesh.Vert(0, 1, 0)
me.verts.append(v)
v = NMesh.Vert(0, 0, 0)
me.verts.append(v)
f = NMesh.Face()
f.v.append(me.verts[0])
f.v.append(me.verts[1])
f.v.append(me.verts[2])
f.v.append(me.verts[3])
me.faces.append(f)
0pa, opa! Nessa parte ests quase l. 7as ainda no terminamos!
9erce$as na imagem acima. Na parte direita esto listados todos os comandos que escreveste at1 ento. 8 na esquerda
aparece a janela Gd sem nenhum o$jeto e'ceto o cursor. 0 grand-&inale ser esse comando4
NMesh.PutRaw(me, "plane", 1)
6ia!!! 6m plane surgiu! mas de onde, meu Deus! 49 4<
7ais conversa &iada. /u deves estar perguntando-te4 - 61, escrevi este monte de comandos malucos e no entendi
$ulhu&as!
9ois $em, caro leitor. J $vio que no vou te dei'ar nessa curiosidade to latente. /entarei e'plicar-te o que &i*emos atrav1s
de comentrios e desenhos no decorrer dos comandos. #eria $om que tu estudasses um pouco de 9:thon, mas como isso
e'ige um tempo relativamente generoso lan(aremos mo dessa $reve e'plana(o para compreender super&icialmente o
que aconteceu e como o 9:thon se comporta ao usarmos ele para a constru(o de o$jetos no ?lender.
Entendeste ou queres que eu desenhe?
0%, eu desenho! =amos come(ar tra(ando o o$jeto a ser criado.
8sse plane amarelo 1 o nosso garoto. /am$1m &oram tra(ados os planos ', : e * e as coordenadas dos v1rtices.
=ou destrinchar o cdigo agora, tentarei ser $reve e o$jetivo.
+ primeira coisa que aparece 1 o seguinte4
me = NMesh.GetRaw()
Ktimo, e o que isso signi&ica3
>. 8sse me provavelmente 1 o Data$loc% Name do o$jeto, ou seja, o o$jeto como um todo ou empacotado, com &ormas,
nome, posi(o e cia ltda. Depois ns temos o NMesh.GetRaw(<, essa parte cria um o$jeto tipo mesh que ser construdo
manualmente pelo usurio, di&erente de uma $o' por e'emplo que j vem pronta, tu ters de setar todas as v1rtices dele e
suas respectivas posi()es. +t1 agora o ?lender no tem id1ia de como ser o o$jeto, apenas sa$e que tu queres &a*er um e
que tu desejas model-lo do *ero. 8le est ,em a$erto,.
v = NMesh.Vert(1, 0, 0)
+gora criamos uma v1rtice ou verte' e posicionamos ele na coordenada L, B, B

Depois de criada precisamos atri$uir ela ao o$jeto4
me.verts.append(v)
=ou tentar e'plicar o que esse pequeno cdigo signi&ica. 0 me 1 o nosso o$jeto inde&inido, ele est rece$endo um valor
para o verts que est sendo colocado pelo append que por sua ve* retira um dado de uma varivel M direita ;v< e
coloca na outra varivel M esquerda dele ;verts<. 7eio redundante n13 7as 1 a e'plica(o mais plausvel que achei. 9ara
que tu entendas $em o que aconteceu aqui, ters de ler so$re listas no 9:thon. 8ssa varivel verts a$rigar nela no
apenas um valor, mas vrios, todas as coordenadas das nossas quatro v1rtices.
2erto, para &acilitar vamos imaginar que o me 1 um grupo com vrios valores, dentre os quais o verts. 0 que vamos &a*er
1 jogar todas as coordenadas dos v1rtices para a varivel verts.
8ntendeste3 =ejas acima o que &aremos ao &inal das atri$ui()es de varivel. + varivel verts tem quatro valores precedidos
de um nEmero que 1 o ndice. 7ais tarde tu irs compreender isso. 0 que ns &i*emos &oi o seguinte.
+t1 ento a varivel verts no tem valor algum. Ns atri$umos a v o valor de B, B, B. 0 sistema sa$e que 1 um v1rtice por
conta do comando NMesh.Vert(). 2omo o 9:thon 1 uma linguagem orientada a o$jetos o v tam$1m 1 umN ele 1 um
o$jeto vete' na posi(o B, B, B do plano cartesiano. # isso, o ?lender no sa$e que a gente quer que esse verte' seja um
dos que compunharo o nosso plane, ou o me. Da entra o comando append(). 8le copia o valor de uma varivel e atri$ui
a outra.
0lhes acima... o append() copiou o valor de v e jogou-o como o ndice OBP da varivel verts. +ssim o ?lender sa$e que
o nosso o$jeto me tem um verte' posisionado em B, B, B. 9or enquanto s isso. 9erce$as que dentro do
comando append() tem a varivel que ele copiou, ou seja o v4
me.verts.append(v) Q-- +qui.
+gora &aremos o mesmo para os outros verte'4

v = NMesh.Vert(1, 1, 0)
me.verts.append(v)


v = NMesh.Vert(0, 1, 0)
me.verts.append(v)

v = NMesh.Vert(0, 0, 0)
me.verts.append(v)
/odos os verte' &oram criados, agora precisamos montar o plane, para isso criaremos um o$jeto mesh e atri$uiremos os
verte' a ele.
f = NMesh.Face()
8sse comando criou um o$jeto 5ace, mas esse o$jeto est em a$erto, pois precisa dos verte' para poder ligar um ao outro
e &ormar o plane.
f.v.append(me.verts[0])
/u no achas que eu vou desenhar todos os passos novamente, n13 49
0 processo 1 o mesmo descrito em cima, com ligeira di&eren(a.
f.v.append(me.verts[1])
f.v.append(me.verts[2])
f.v.append(me.verts[3])
me.faces.append(f)
=ejas que o me agora conta com mais um o$jeto dentro dele, o faces. 0 faces por sua ve* usou os dados
de verts para criar o mesh.
9ara &alar a verdade, eu no entendi direito o por que da atri$ui(o de v ao &, aparentemente seria necessrio apenas a
primeira atri$ui(o.
=amos &echar agora a con&ec(o do o$jeto com o comando4
NMesh.PutRaw(me, "plane", 1)
+ca$amos de criar o plane. #e tu olhares no me do o$jeto vers que o nome dele 1 justamente plane por conta da
parte "plane" do cdigo.
Algumas palavrinhas
2omo eu disse anteriormente, no sou um pro&undo conhecedor do que e'planei acima. +penas lancei mo da sede
didtica inicial para compartilhar com vossas merc"s a dEvidas e certe*as de algu1m que est nos rudimentos do
conhecimento almejado. + minha dica 1 que os interessados passem a ,$rincar, com as possi$ilidades de 9:thon scripting
no ?lender todos os dias. 9ara se apro&undar mais consultes a documenta(o o&icial desse componente4
http://www.blender3d.org/documentation/242PythonDoc/index.html
=ejas um comandinho hoje, outro amanh... outro na semana que vem, mas no dei'es de ,$i*olhar, sempre. # assim
para ires compreendendo como as coisas &uncionam. 2laro que para aprender $em o 9:thon scripting tu precisars sa$er
so$re essa linguagem. poders encontrar timas re&er"ncias no site4
www.pythonbrasil.com.br
9ara aqueles que no compreenderam $em a &orma de ativar o console do 9:thon dentro do ?lender, assistam a esse
vdeo4
http://www.youtube.com/watchv!"#$%&'()p)c
.ue as dEvidas sero sanadas.
+m$os, o meu e o videotutorial acima so $aseados nesse e'celente material4
http://*msoler.#ree.#r/didacticiel/blender/tutor/python+script,,+en.htm
8sse til*inho 1 ningu1m menos que o criador do script 9ov+nim, um e'portador ?lender --I 90=->a:.
+h... olhes, 1 muito, mas muito importante que tu estudes um pouco so$re 8'press)es >egulares. +pesar de eu no ter
tratado diretamente delas neste te'to, tu aca$ars precisando dominar o assunto se desejares ser um hac%er do scripting. 8
a melhor &onte para esse assunto sem dEvida 1 esse site4
http://guia-er.source#orge.net/
+proveites e visites o site do meu camarada que entende tudo de modo te'to, o grande +ur1lio ;no, no 1 o do dicionrio!<4
http://aurelio.net
J isso, espero que estas palavras tenham tra*ido um pouco de compreenso M tua gloriosa mente. Rostaria de
agradecer-te pela paci"ncia de ler este tutorial e pedir-te que sempre que puderes compartilhes o conhecimento adquirido.
2oisas maravilhosas acontecero na tua vida e principalmente na tua ca$e(a. 8nsinar 1 aprender, e compartilhar 1 se tornar
mais &orte. 0 verdadeiro s$io no anseia parecer grande, pois o sa$e em seu cora(o. 8 nada melhor para o sa$er do que
o compartilhar, santo ato este, que torna acessvel a todos as multipossi$ilidades de crescimento portando-nos rumo ao que
1 transcendental.
Rrande a$ra(o!
2cero 7oraes
http://cogitas3d.site.vu

Anda mungkin juga menyukai