Právě je sob lis 23, 2024 10:03 pm

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 
Autor Zpráva
 Předmět příspěvku: Skript navržený Ad
PříspěvekNapsal: pon srp 08, 2005 3:52 pm 
Offline
..............
..............

Registrován: úte črc 13, 2004 12:18 am
Příspěvky: 2550
Tak jsem se pustil do skriptu co navrhl Ad....jeho popis byl tento

"mám další návrh, ale nevím, jestli to půjde, nebo jestli to už někdo neudělal...

představoval bych si to asi takto:
vyselektuješ objekt ( nebo v edit režimu vertexy ) a
teď:

script má promněnou ( např. PŘÍZNAK) nastavenu na 0 a všechny určující promněnné ( size, rot, poloha X,Y,Z atd... )
jsou ve scriptu vynulovány ( ne v reálu)
prodvedu první duplikaci a selekce se samozřejmě přesune na ten duplikát. Ten nechám vyselektovaný a provedu standardní úpravu velikosti, polohy, nebo rotace ( nebo všech ) a dále ponechám vyselektovaný. Rozdíly zmněn po duplikaci se nastaví (zapíší) do pomněnných parametrů a PŘÍZNAK se změní na -1-. provedu duplikaci, ale další duplikát je už zmněněn o tejný rozdíl a to by se dalo opakovat do nekonečna.
Po odselektování se PŘÍZNAK vynuluje a hodnoty rozdílů také. Tím se při další duplikaci opět objekt nehne od původního.

praktické využití? - třeba točité schodiště. Uděláš pvní schod, zduplikuješ, posuneš nahoru a otočíš kolem 3D kurzoru a pak už jen duplikujš a duplikuješ a...... až je to tak vysoko, jak jsi potřeboval...
"

rozdelana verze skriptu
Kód:
import Blender
from Blender import NMesh

n_klonu=30


scene = Blender.Scene.getCurrent()
kopie = Blender.Object.GetSelected()[0]
nomdelobject=kopie.getName()
Mesh= Blender.NMesh.GetRawFromObject(nomdelobject)
zaklad = Blender.Object.GetSelected()[1]


posun_x=kopie.getLocation()[0]-zaklad.getLocation()[0]
posun_y=kopie.getLocation()[1]-zaklad.getLocation()[1]
posun_z=kopie.getLocation()[2]-zaklad.getLocation()[2]
rotace_x=kopie.getEuler()[0]-zaklad.getEuler()[0]
rotace_y=kopie.getEuler()[1]-zaklad.getEuler()[1]
rotace_z=kopie.getEuler()[2]-zaklad.getEuler()[2]
size_x=kopie.getSize()[0]-zaklad.getSize()[0]
size_y=kopie.getSize()[1]-zaklad.getSize()[1]
size_z=kopie.getSize()[2]-zaklad.getSize()[2]


for pocet_kopii in range(0,n_klonu):


   
   print pocet_kopii
   Obis= Blender.Object.New('Mesh')
   Obis.link(Mesh)
   Obis.setLocation(kopie.getLocation()[0]+posun_x*(pocet_kopii+1),kopie.getLocation()[1]+posun_y*(pocet_kopii+1),kopie.getLocation()[2]+posun_z*(pocet_kopii+1))
   Obis.setEuler(kopie.getEuler()[0]+rotace_x*(pocet_kopii+1),kopie.getEuler()[1]+rotace_y*(pocet_kopii+1), kopie.getEuler()[2]+rotace_z*(pocet_kopii+1))
   Obis.setSize(kopie.getSize()[0]+size_x*(pocet_kopii+1),kopie.getSize()[1]+size_y*(pocet_kopii+1),kopie.getSize()[2]+size_z*(pocet_kopii+1))
   scene.link(Obis)


Blender.Redraw()


Přílohy:
cube.jpg
cube.jpg [ 17.73 KiB | Zobrazeno 4947 krát ]
Poznámka: ukazka fce skriptu
schody.jpg
schody.jpg [ 47.52 KiB | Zobrazeno 4947 krát ]


Naposledy upravil Ragnos dne pon srp 08, 2005 4:21 pm, celkově upraveno 1
Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon srp 08, 2005 3:57 pm 
Offline
..............
..............

Registrován: úte črc 13, 2004 12:18 am
Příspěvky: 2550
tedka jsem zjistil ze ma nekde nejake mouchy...tak to jdu opravit


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon srp 08, 2005 5:26 pm 
Offline
 ...
 ...
Uživatelský avatar

Registrován: úte črc 20, 2004 8:09 am
Příspěvky: 180
Bydliště: Brno
No zkus do výpočtu zahrnout výšku schodnice (nebo i mezi nimi) a úhel natočení od středové osy schodiště. Sice to zautomatizuje výpočet, tak se nebudeš muset starat o správné natočení, skript ti to udělá automaticky. Také většinou točitá schodiště schodnice trapézového tvaru, u středu jsou užší, viz obr.


Přílohy:
Poznámka: schodnice
schod.png
schod.png [ 1.21 KiB | Zobrazeno 4929 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon srp 08, 2005 5:35 pm 
Offline
..............
..............

Registrován: úte črc 13, 2004 12:18 am
Příspěvky: 2550
funguje to na principu porovnani zmen...myslim si ze to takhle staci


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř srp 10, 2005 8:56 am 
Offline
____
____
Uživatelský avatar

Registrován: úte črc 13, 2004 7:58 am
Příspěvky: 717
Bydliště: Prostějov
paráda... jak bude chvilka, budu to muset vyzkoušet.. :D

-> slajfka nešlo o script jen na schody, ale o libovolné pravidelné duplikování, jako jsou schody, ploty atd...proto je na uživateli, jak přesně si to nastaví...

teď mě napadlo, že kdyby jsi tam zahrnul ještě volitelnou náhodnou míru odchylky (0 - 1) jednotlivých os, tak by to už byl slušný nástroj...


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř srp 10, 2005 11:35 pm 
Offline
..............
..............

Registrován: úte črc 13, 2004 12:18 am
Příspěvky: 2550
mazec ten skript jde pouzit pro vyrobu retezu, zkopirovat jeden clanek retezu posunout otocit, oznaci obe veci a spustit skript....nebo pri tvorbe schodu, vzit prvni schod, zduplikovat posunout trosku nahoru na na stranu kde budou schody.... a je to....zajimavy je kdyz ten druhy schod trosku zvetsite...to mate pomalu schody jako v nejaky amfiteatru, nebo jak se tomu rika... :D


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: čtv srp 11, 2005 10:27 am 
Offline
.......
.......
Uživatelský avatar

Registrován: stř srp 11, 2004 4:24 pm
Příspěvky: 1150
Bydliště: net
supr.

dvno sem si rikal proc v blendru neni nastavitelna duplikace jako napr v maye.
v maye pri duplikovani muzes nastavit:
- pocet objektu kolik ti vytvori.
- samozrejme velikost x,y,z
- jejich nasledne zarovnani v osach x,y,z
- rotaci x,y,z

- taper, coz je pozvolne zvetsovani nebo naopak
- a to same v rotaci
- a vzdaleosti

je tam tabulka kterou si muzes ukazat a nastavit, nastavene hodnoty plati do ty doby dokud nezdas jinak.

jeste jedna funkce je tam na tohle dobra.
je tam shortcut kterej ti zopakuje posledni tah, tzn pokud naduplikujes napr objekt a posunes o kus jinam zmackes onen short cut tak to provede znova, a tak dal.

jm


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon srp 15, 2005 10:29 pm 
Offline
....
....
Uživatelský avatar

Registrován: stř pro 01, 2004 4:45 pm
Příspěvky: 225
Bydliště: Příbram
prosim, jak se tento script použiji v blenderu.dík :)


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon srp 15, 2005 10:47 pm 
Offline
..............
..............

Registrován: úte črc 13, 2004 12:18 am
Příspěvky: 2550
JRun píše:
prosim, jak se tento script použiji v blenderu.dík :)

ulozis si ho do textaku a ten otevres v Blenderu v textovym editoru(SHIFT+F11)... a potom nastavis promennou n_klonu=30 na kolik potrebujes udelat kopii oznacis dva objekty. a das v editoru Alt+P pro spusteni skriptu...musis mit samozrejme nainstalovany Python..


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte srp 16, 2005 8:38 am 
Offline
....
....
Uživatelský avatar

Registrován: stř pro 01, 2004 4:45 pm
Příspěvky: 225
Bydliště: Příbram
Jo dík, já sem moc zbrklej a místo alt-p sem furt mackal alt-t :oops:


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz