aus wiki übernommen und sql erweitert
This commit is contained in:
+117
@@ -0,0 +1,117 @@
|
||||
# Blender
|
||||
|
||||
## Vom Cursor eine Linie in negativer y-Richtung mit Länge 11.2 mm
|
||||
|
||||
```python
|
||||
import bpy
|
||||
from mathutils import Vector
|
||||
|
||||
# Definiere die Länge der Linie
|
||||
line_length = -1.12 # 11.2 mm
|
||||
|
||||
# Hole die 3D-Cursor-Position
|
||||
cursor_position = bpy.context.scene.cursor.location
|
||||
|
||||
# Berechne die Endposition der Linie
|
||||
end_position = cursor_position + Vector((line_length, 0, 0))
|
||||
|
||||
# Erstelle eine neue Linie
|
||||
vertices = [cursor_position, end_position]
|
||||
edges = [(0, 1)]
|
||||
mesh = bpy.data.meshes.new(name="LineMesh")
|
||||
line_obj = bpy.data.objects.new(name="LineObject", object_data=mesh)
|
||||
bpy.context.collection.objects.link(line_obj)
|
||||
mesh.from_pydata(vertices, edges, [])
|
||||
mesh.update()
|
||||
```
|
||||
|
||||
## Ein bestehendes Objekt mittel bmesh verändern
|
||||
|
||||
https://www.youtube.com/watch?v=TFQMNcTj5Jw
|
||||
|
||||
```python
|
||||
import bpy
|
||||
import bmesh
|
||||
|
||||
|
||||
# Holen einer Referenz auf das aktuelle Objekt
|
||||
mesh_obj = bpy.context.active_object
|
||||
|
||||
# Erzeugen eines neuen bmesh-Objektes
|
||||
bm = bmesh.new()
|
||||
|
||||
# Initialisieren des bmesh-Objektes mit den Daten des vorhandenen Objektes
|
||||
bm.from_mesh(mesh_obj.data)
|
||||
|
||||
bmesh.ops.bevel(bm, geom=bm.verts, offset=0.5)
|
||||
|
||||
|
||||
# Schreiben der bmesh-Daten in die mesh-Daten
|
||||
bm.to_mesh(mesh_obj.data)
|
||||
|
||||
# Optional: updaten der mesh-Daten
|
||||
mesh_obj.data.update()
|
||||
|
||||
# freigeben des Speichers der von bmesh genutzt wurde
|
||||
bm.free()
|
||||
```
|
||||
|
||||

|
||||
|
||||
```python
|
||||
import bpy
|
||||
import bmesh
|
||||
|
||||
|
||||
# Holen einer Referenz auf das aktuelle Objekt
|
||||
mesh_obj = bpy.context.active_object
|
||||
|
||||
# Erzeugen eines neuen bmesh-Objektes
|
||||
bm = bmesh.new()
|
||||
|
||||
# Initialisieren des bmesh-Objektes mit den Daten des vorhandenen Objektes
|
||||
bm.from_mesh(mesh_obj.data)
|
||||
|
||||
bmesh.ops.bevel(
|
||||
bm,
|
||||
geom=bm.edges,
|
||||
offset=0.2,
|
||||
segments=4,
|
||||
affect="EDGES",
|
||||
profile=0.5,
|
||||
)
|
||||
|
||||
|
||||
# Schreiben der bmesh-Daten in die mesh-Daten
|
||||
bm.to_mesh(mesh_obj.data)
|
||||
|
||||
# Optional: updaten der mesh-Daten
|
||||
mesh_obj.data.update()
|
||||
|
||||
# freigeben des Speichers der von bmesh genutzt wurde
|
||||
bm.free()
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Erzeugen eines Objektes von stretch
|
||||
|
||||
```
|
||||
import bpy
|
||||
|
||||
obj_name = "my_shape"
|
||||
|
||||
|
||||
# Erzeugen der mesh Daten
|
||||
mesh_data = bpy.data.meshes.new(f"{obj_name}_data")
|
||||
|
||||
# Erzeugen des Mesh-Objektes unter Nutzng der Mesh-Daten
|
||||
mesh_obj = bpy.data.objects.new(obj_name, mesh_data)
|
||||
|
||||
# Hinzufügen des Mesh-Obektes zur Szene
|
||||
bpy.context.scene.collection.objects.link(mesh_obj)
|
||||
```
|
||||
|
||||

|
||||
|
||||
https://www.youtube.com/watch?v=N3U2noAHgBo&t=88s
|
||||
Reference in New Issue
Block a user