architectures.pyvolumes.pyVolumesimport 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.pyimport 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 Linecube() 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 b1center()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 p2face() 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.pyvolumes.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