Voici les étapes pour faire une modélisation simple avec Python sur le mélangeur. L'environnement est la version 2.8.5 de Blender et le système d'exploitation est Windows 10. Veuillez noter qu'il y a eu un changement significatif dans les spécifications de 2.7 à 2.8. Vous pouvez penser que 2.7 et 2.8 sont presque incompatibles.
Si vous devez utiliser le japonais, définissez les paramètres suivants. Il n'y a rien de particulièrement difficile. Préférences utilisateur → onglet Interface Vérifiez la traduction et définissez la langue sur le japonais Activez les info-bulles, l'interface et les nouvelles données, puis cliquez sur Enregistrer les paramètres utilisateur. Dans la version actuelle, le japonais ne peut pas être saisi directement dans l'éditeur. Copiez et collez les caractères que vous tapez dans d'autres éditeurs de texte si nécessaire.
Si vous exécutez du code Python sur Blender et obtenez une erreur, vous devez afficher l'écran de la console. Pour afficher l'écran de la console
Cliquez sur Basculer la console système dans le menu Fenêtre en haut pour afficher l'écran de la console.
Démarrer le mélangeur Au lieu de double-cliquer sur l'icône, entrez la commande suivante à partir du terminal pour démarrer le mélangeur. /Applications/blender.app/Contents/MacOS/blender (L'emplacement du dossier de l'application (/Applications/blender.app) change en fonction de l'environnement)
Le mélangeur place des éléments appelés primitifs.
models.py
import bpy #importation blender
#1.Emplacement de la colonne:Coordonnées centrales du rayon de la figure:Profondeur du rayon du cercle:Rotation en hauteur: angle de rotation du solide(rad)
bpy.ops.mesh.primitive_cylinder_add(location=(-5, 5, 0), radius=1, depth=3, rotation=(0, 0, 0))
#2.Emplacement cubique:Coordonnées centrales de la taille de la figure:Longueur d'un côté de la rotation du cube: angle de rotation du solide(rad)
bpy.ops.mesh.primitive_cube_add(location=(5, 0, 0), size=1.5, rotation=(0, 0, 0))
#3.Emplacement de la sphère:Coordonnées centrales du rayon de la figure:Subdivisions de rayon de sphère: nombre de divisions
bpy.ops.mesh.primitive_ico_sphere_add(location=(-5, 0, 0), radius=1, subdivisions=5)
#4.monkey location:Coordonnées centrales de la taille de la figure:Taille
bpy.ops.mesh.primitive_monkey_add(location = (-5, -5, 0), size = 3.0)
#5.Emplacement en forme de beignet:Coordonnées du centre de la figure majeure_radius:Rayon de l'anneau mineur_radius:Rotation du rayon du cylindre:Angle de rotation solide(rad)
bpy.ops.mesh.primitive_torus_add(location=(0, 5, 0), major_radius=1.0, minor_radius=0.1, rotation=(0, 0, 0))
#6.Assiette plate(Cercle) location:Coordonnées centrales du remplissage de la figure_type:Rayon de remplissage:Rotation radiale:Angle de rotation solide(rad)
bpy.ops.mesh.primitive_circle_add(location=(5, 5, 0), fill_type="NGON", radius=2, rotation=(0, 0, 0))
#7.Assiette plate(carré) location:Coordonnées centrales de la taille de la figure:Rotation de la longueur latérale:Angle de rotation solide(rad)
bpy.ops.mesh.primitive_plane_add(location=(5, -5, 0), rotation=(0, 0, 0), size=2)
#8.Emplacement du cône polygonal:Coordonnées centrales des sommets de la figure:Nombre de sommets rayon1,radius2:Profondeur du rayon du cercle:Rotation en hauteur: angle de rotation du solide(rad)
bpy.ops.mesh.primitive_cone_add(location=(0,-5,0),vertices=10,radius1=0.5,radius2=1,depth=3, rotation=(0, 0, 0))
loop.py
import bpy
import math
#Supprimer l'élément existant
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
N = 12
RR1 = 10.0
RR2 = 2.0
for i in range(0, N):
rad = 2 * math.pi * i /N #Calcul de l'angle 2π i/n
xx = RR1 * math.cos(rad) #rayon de calcul des coordonnées x*cosθ
yy = RR1 * math.sin(rad) #rayon de calcul des coordonnées y*sinθ
#Création de sphère
bpy.ops.mesh.primitive_ico_sphere_add(location=(xx, yy, 0),radius= RR2, subdivisions = 5 )
rectangle.py
import bpy
#Supprimer l'élément existant
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
#Dessiner un cube
bpy.ops.mesh.primitive_cube_add(location=(0, 0, 0), size=1.5, rotation=(0, 0, 0))
#Transformez la forme(2 fois dans la direction X, 1 fois dans la direction Y, 0 dans la direction de l'épaisseur.5 fois)
bpy.ops.transform.resize(value=(2.0,1.0,0.1))
#Faire pivoter la forme(30 ° autour de l'axe Y)
bpy.ops.transform.rotate(value=3.1415/6 ,orient_axis='Y')
#Déplacer la figure(Déplacer 5 le long de l'axe Z)
bpy.ops.transform.translate(value=(0,0,5))
material.py
import bpy
# 1.Supprimer l'élément existant
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
# 2.Définition du matériau(rouge)
mat1 = bpy.data.materials.new('Red')
mat1.diffuse_color = (1.0, 0.0, 0.0, 1.0)
# 3.Définition du matériau(Bleu)
mat2 = bpy.data.materials.new('blue')
mat2.diffuse_color = (0.0, 0.0, 1.0, 1.0)
# 4.Création de sphère
bpy.ops.mesh.primitive_ico_sphere_add(location=(0, 0, 1), radius = 0.5, subdivisions=5 )
bpy.context.object.data.materials.append(mat1) #Matériel(rouge)La désignation
# 5.Création d'assiettes plates
bpy.ops.mesh.primitive_cube_add(location=(0, -0.5, 0), size=2.5)
bpy.ops.transform.resize(value=(2.0,2.0,0.05)) #Transformez la forme(Double dans la direction X, double dans la direction Y, 0 dans la direction de l'épaisseur.05 fois)
bpy.context.object.data.materials.append(mat2) #Matériel(Bleu)La désignation
mesh1.py
import bpy
#Supprimer l'élément existant
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
#Création de données de sommet
verts = [[-2.0, -2.0, 0.0], [-2.0, 2.0, 0.0], [2.0, 2.0, 0.0] , [2.0, -2.0, 0.0], [2.0, -2.0, 4.0] , [2.0, 2.0, 4.0] ]
#Création de données de surface
faces = [[0,1,2,3], [2,3,4,5]]
msh = bpy.data.meshes.new("cubemesh") #Déclaration des données de maillage
msh.from_pydata(verts, [], faces) #Créez un maillage avec des coordonnées de sommet et des informations sur les sommets de chaque face
obj = bpy.data.objects.new("cube", msh) #Créer un objet avec des données de maillage
bpy.context.scene.collection.objects.link(obj) #Placer des objets dans la scène
mesh2.py
import bpy
import math
#Supprimer l'élément existant
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
#Créer des sommets
verts = []
for i in range(0,21):
x = 2 *math.pi / 20 * i
verts.append([x, -1, math.sin(x)])
for i in range(0,21):
x = 2 * math.pi / 20 * i
verts.append([x, 1, math.sin(x)])
#Création de données de surface
faces = []
for i in range(0,20):
faces.append([i, i+1, i+22, i+21])
msh = bpy.data.meshes.new("sinmesh")
msh.from_pydata(verts, [], faces)
obj = bpy.data.objects.new("sin", msh)
bpy.context.scene.collection.objects.link(obj)
Blender est également un freeware open source, donc ce n'est pas mal pour la modélisation. Le changement de 2.7 à 2.8 était choquant, alors j'ai décidé de ne plus aller plus loin dans Blender.
Recommended Posts