Betreiben Sie Blender mit Python

1. Einleitung

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.

2. Japanische Einstellung

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.

3. Wie man Python auf Blender verwendet

Wenn Sie Python-Code auf Blender ausführen und eine Fehlermeldung erhalten, müssen Sie den Konsolenbildschirm anzeigen. So zeigen Sie den Konsolenbildschirm an

Für Windows

Klicken Sie oben im Menü Fenster auf Systemkonsole umschalten, um den Konsolenbildschirm anzuzeigen.

Für Mac

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.)

3. Grundzusammensetzung der Elemente

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))

sample4.png

4. Verschiedene Modellierungen

4.1 Kugelzeichnung durch Schleife

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 )

sample2.png

4.2 Grundelemente transformieren / drehen / verschieben

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))

sample5.png

4.3 Materialeinstellung

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

sample6.png

4.4 Netz erstellen 1

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

sample7.png

4.5 Netz erstellen 2

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) 

sample8.png

5. Schließlich

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

Betreiben Sie Blender mit Python
Kinesis mit Python betreiben
Führen Sie Blender mit Python aus
Betreiben Sie Excel mit Python (1)
Betreiben Sie Excel mit Python (2)
Betreiben Sie Excel mit Python Open Pyxl
Betreiben Sie TwitterBot mit Lambda, Python
[Hinweis] Betreiben Sie MongoDB mit Python
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Bedienen Sie den Belegdrucker mit Python
Versuchen Sie, Facebook mit Python zu betreiben
Führen Sie mruby mit Python oder Blender aus
Betreiben Sie ECHONET Lite-Haushaltsgeräte mit Python
Beginnen Sie mit Python mit Blender
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Blender 2.9 Python Extrude extrudieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Betreiben Sie das Smartlife-Netzteil mit Python (de-IFTTT).
[GCP] Betreiben Sie Google Cloud Storage mit Python
[Pyto] Betreibe die Taptic Engine des iPhone mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
Betreiben Sie Haushaltsgeräte mit Python und IRKit
[Blender x Python] Beginnen wir mit Blender Python !!
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Bedienen Sie Filemaker von Python aus
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln