Hier sind die Schritte, um eine einfache Modellierung mit Python auf dem Mixer durchzuführen. Die Umgebung ist Blender Version 2.8.5 und das Betriebssystem ist Windows 10. Bitte beachten Sie, dass sich die Spezifikationen von 2.7 auf 2.8 erheblich geändert haben. Sie können denken, dass 2.7 und 2.8 fast nicht kompatibel sind.
Wenn Sie Japanisch benötigen, nehmen Sie die folgenden Einstellungen vor. Es gibt nichts besonders Schwieriges. Benutzereinstellungen → Registerkarte Benutzeroberfläche Überprüfen Sie die Übersetzung und stellen Sie die Sprache auf Japanisch ein Aktivieren Sie QuickInfos, Benutzeroberfläche und neue Daten und klicken Sie auf Benutzereinstellungen speichern. In der aktuellen Version kann Japanisch nicht direkt in den Editor eingegeben werden. Kopieren Sie die Zeichen, die Sie eingeben, und fügen Sie sie bei Bedarf in andere Texteditoren ein.
Wenn Sie Python-Code auf Blender ausführen und eine Fehlermeldung erhalten, müssen Sie den Konsolenbildschirm anzeigen. So zeigen Sie den Konsolenbildschirm an
Klicken Sie oben im Menü Fenster auf Systemkonsole umschalten, um den Konsolenbildschirm anzuzeigen.
Mixer starten Anstatt auf das Symbol zu doppelklicken, geben Sie am Terminal den folgenden Befehl ein, um den Mixer zu starten. /Applications/blender.app/Contents/MacOS/blender (Der Speicherort des App-Ordners (/Applications/blender.app) ändert sich je nach Umgebung.)
Der Mixer platziert Elemente, die als Grundelemente bezeichnet werden.
models.py
import bpy #Mixer importieren
#1.Spaltenposition:Mittelkoordinaten des Figurenradius:Kreisradius Tiefe:Höhenrotation: Drehwinkel des Volumenkörpers(rad)
bpy.ops.mesh.primitive_cylinder_add(location=(-5, 5, 0), radius=1, depth=3, rotation=(0, 0, 0))
#2.Kubische Lage:Mittelkoordinaten der Figurengröße:Länge einer Seite der Würfeldrehung: Drehwinkel des Festkörpers(rad)
bpy.ops.mesh.primitive_cube_add(location=(5, 0, 0), size=1.5, rotation=(0, 0, 0))
#3.Kugelstandort:Mittelkoordinaten des Figurenradius:Unterteilungen des Kugelradius: Anzahl der Unterteilungen
bpy.ops.mesh.primitive_ico_sphere_add(location=(-5, 0, 0), radius=1, subdivisions=5)
#4.monkey location:Mittelkoordinaten der Figurengröße:Größe
bpy.ops.mesh.primitive_monkey_add(location = (-5, -5, 0), size = 3.0)
#5.Donut-förmige Lage:Mittelkoordinaten der Hauptfigur_radius:Ringradius klein_radius:Drehung des Zylinderradius:Dreidimensionaler Drehwinkel(rad)
bpy.ops.mesh.primitive_torus_add(location=(0, 5, 0), major_radius=1.0, minor_radius=0.1, rotation=(0, 0, 0))
#6.Flacher Teller(Kreis) location:Mittelkoordinaten der Figurenfüllung_type:Radius füllen:Radiale Drehung:Dreidimensionaler Drehwinkel(rad)
bpy.ops.mesh.primitive_circle_add(location=(5, 5, 0), fill_type="NGON", radius=2, rotation=(0, 0, 0))
#7.Flacher Teller(Quadrat) location:Mittelkoordinaten der Figurengröße:Seitenlängendrehung:Dreidimensionaler Drehwinkel(rad)
bpy.ops.mesh.primitive_plane_add(location=(5, -5, 0), rotation=(0, 0, 0), size=2)
#8.Lage des polygonalen Kegels:Mittelkoordinaten der Eckpunkte der Figur:Anzahl der Eckpunkte Radius1,radius2:Kreisradius Tiefe:Höhenrotation: Drehwinkel des Volumenkörpers(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
#Vorhandenes Element löschen
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 #Winkelberechnung 2π i/n
xx = RR1 * math.cos(rad) #x Koordinatenberechnungsradius*cosθ
yy = RR1 * math.sin(rad) #y Koordinatenberechnungsradius*sinθ
#Kugelschöpfung
bpy.ops.mesh.primitive_ico_sphere_add(location=(xx, yy, 0),radius= RR2, subdivisions = 5 )
rectangle.py
import bpy
#Vorhandenes Element löschen
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
#Würfel zeichnen
bpy.ops.mesh.primitive_cube_add(location=(0, 0, 0), size=1.5, rotation=(0, 0, 0))
#Verwandle die Form(2 mal in X-Richtung, 1 mal in Y-Richtung, 0 mal in Dickenrichtung.5 mal)
bpy.ops.transform.resize(value=(2.0,1.0,0.1))
#Drehen Sie die Form(30 ° um die Y-Achse)
bpy.ops.transform.rotate(value=3.1415/6 ,orient_axis='Y')
#Figur bewegen(Bewegen Sie 5 entlang der Z-Achse)
bpy.ops.transform.translate(value=(0,0,5))
material.py
import bpy
# 1.Vorhandenes Element löschen
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
# 2.Materialdefinition(rot)
mat1 = bpy.data.materials.new('Red')
mat1.diffuse_color = (1.0, 0.0, 0.0, 1.0)
# 3.Materialdefinition(Blau)
mat2 = bpy.data.materials.new('blue')
mat2.diffuse_color = (0.0, 0.0, 1.0, 1.0)
# 4.Kugelschöpfung
bpy.ops.mesh.primitive_ico_sphere_add(location=(0, 0, 1), radius = 0.5, subdivisions=5 )
bpy.context.object.data.materials.append(mat1) #Material(rot)Bezeichnung
# 5.Flache Plattenerstellung
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)) #Verwandle die Form(Verdoppeln Sie in X-Richtung, verdoppeln Sie in Y-Richtung, 0 in Dickenrichtung.05 mal)
bpy.context.object.data.materials.append(mat2) #Material(Blau)Bezeichnung
mesh1.py
import bpy
#Vorhandenes Element löschen
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
#Scheitelpunktdaten erstellen
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] ]
#Erstellung von Oberflächendaten
faces = [[0,1,2,3], [2,3,4,5]]
msh = bpy.data.meshes.new("cubemesh") #Deklaration der Netzdaten
msh.from_pydata(verts, [], faces) #Erstellen Sie ein Netz mit Scheitelpunktkoordinaten und Informationen zu den Scheitelpunkten jeder Fläche
obj = bpy.data.objects.new("cube", msh) #Erstellen Sie ein Objekt mit Netzdaten
bpy.context.scene.collection.objects.link(obj) #Platziere Objekte in der Szene
mesh2.py
import bpy
import math
#Vorhandenes Element löschen
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
#Scheitelpunkte erstellen
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)])
#Erstellung von Oberflächendaten
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 ist auch eine Open-Source-Freeware, daher ist es nicht schlecht für die Modellierung. Der Wechsel von 2,7 auf 2,8 war schockierend, deshalb habe ich beschlossen, nicht mehr tiefer in den Mixer einzusteigen.
Recommended Posts