architectures.py
volumes.py
Volumes
import bpy Pygram = bpy.data.texts["pygram.py"].as_module() Volumes = bpy.data.texts["volumes.py"].as_module() Pygram.cleanup()
import bpy Pygram = bpy.data.texts["pygram.py"].as_module() Volumes = bpy.data.texts["volumes.py"].as_module() Pygram.cleanup() a = Pygram.Point(0,0,0) b = Pygram.Point(10,0,0) l = Pygram.Line(a,b) v = Pygram.Vector(0,10,0) j = Pygram.Vector(0,0,10) f = Volumes.extrude(l,v) c = Volumes.cube(f,j) print(c)
print(c)
« renvoie » None
dans la console.cube()
dans volumes.py
ne renvoie rien,volumes.py
et ajouter l'opérateur de renvoi return obj
dans la fonction cube()
📢 Object: cube 📢 Face: a 📢 Point:(0,0,0) b 📢 Point:(10,0,0) c 📢 Point:(10.0,10.0,0.0) d 📢 Point:(0.0,10.0,0.0) 📢 Face: a 📢 Point:(10.0,10.0,0.0) b 📢 Point:(0.0,10.0,0.0) c 📢 Point:(0.0,10.0,10.0) d 📢 Point:(10.0,10.0,10.0) 📢 Face: a 📢 Point:(10,0,0) b 📢 Point:(10.0,10.0,0.0) c 📢 Point:(10.0,10.0,10.0) d 📢 Point:(10.0,0.0,10.0) 📢 Face: a 📢 Point:(0,0,0) b 📢 Point:(0.0,10.0,0.0) c 📢 Point:(0.0,10.0,10.0) d 📢 Point:(0.0,0.0,10.0) 📢 Face: a 📢 Point:(0,0,0) b 📢 Point:(10,0,0) c 📢 Point:(10.0,0.0,10.0) d 📢 Point:(0.0,0.0,10.0)
house(x,y,z)
qui prendra 3 arguments nous permettant de positionner cette « maison » dans l'espace.rename()
pour renommer l'objet en house
def house(x,y,z): a = Pygram.Point(0,0,0) b = Pygram.Point(10,0,0) l = Pygram.Line(a,b) v = Pygram.Vector(0,10,0) j = Pygram.Vector(0,0,10) f = Volumes.extrude(l,v) c = Volumes.cube(f,j) c.rename("house")
house(0,0,0)
house()
pour produire un cube aux dimensions suivantes : 5m x 5m en plan et 2.5m de hauteurj
en h
pour plus de lisibilité (h pour height)j
en h
dans l'appel de la fonction cube()
…cube()
pour y ajouter un toit.cube()
dans notre fichier architectures.py
import bpy Pygram = bpy.data.texts["pygram.py"].as_module() Volumes = bpy.data.texts["volumes.py"].as_module() Pygram.cleanup() def cube(f,v): ... def house(x,y,z): a = Pygram.Point(0,0,0) b = Pygram.Point(5,0,0) l = Pygram.Line(a,b) v = Pygram.Vector(0,5,0) h = Pygram.Vector(0,0,2.5) f = Volumes.extrude(l,v) c = cube(f,h) c.rename("house") house(0,0,0)
cube()
pour y ajouter les 4 nouvelles faces du toit.center()
de l'objet Line
cube()
nous avons commencer par créer les points a1
, b1
, … en créant des copies par déplacement des point a
, b
. Voici la démarche pour créer les points de construction de la toiture à l'aide de ces points :line_1
à l'aide des points a1
et b1
center()
move()
de l'objet Point :# Line 1 line_1 = Pygram.Line(a1,b1) center_1 = line_1.center() p1 = center_1.move(v) # move vertically
print("This is my Line #1") print(line_1)
line_2
et un point p2
face()
de l'objet Pygram.tri(a,b,c)
de l'objet Pygramhouse(x,y,z)
:w
pour la largeur de la maison qui correspond à la longeur de la Ligne l
, et modifier la création des points a
et b
pour qu'ils prennent en compte les coordonnées x,y,z
de la fonction.house()
aux trois coordonnées (0,0,0)
, (5,0,0)
et (10,0,0)
.cube()
en house_volume()
volumes.py
volumes.py
vers le fichier architectures.py
, ou « recoder » les données et/ou les fonctions directement dans le fichier architectures.py
(c'est encore mieux, car vous pouvez mieux corriger vos erreurs).cube()
roof()
qui génère les deux pans inclinés du toit.tri()
au lieu de face()
, voir plus haut)cube()
roof()
en house()
Site sous licence Creative Commons BY-NC-ND v4.0 : Milovann Yanatchkov