Servus liebe blender-Community, ich versuche seit einiger Zeit ein Mesh zu erstellen aus einer Text datei wo koordinaten drin stehen, sieht wie folgt aus:
88.001 -96293.3795 263205.5064 495.4550
88.002 -96293.5978 263205.6772 496.9587
88.003 -96293.3845 263205.4910 498.2000
wobei die erste spalte nur eine nummerierung für die punkte ist. ich habe chatgpt 2 scripte erstellen lassen aber wenn ich es laufen lasse entsteht nur ein punkt im blender internen ursprung und mehr kann man nicht sehen, skalieren usw hilft auch nix.
Der code:
import bpy
def create_mesh_from_coordinates(file_path):
# Öffne die .txt-Datei
with open(file_path, 'r') as file:
lines = file.readlines()
# Erstelle eine Liste von Koordinaten (ignoriere die erste Spalte)
coordinates_list = [list(map(float, line.strip().split()[1:])) for line in lines]
# Erstelle ein Mesh-Objekt
mesh = bpy.data.meshes.new(name="CustomMesh")
obj = bpy.data.objects.new("CustomObject", mesh)
# Füge das Objekt zur Szene hinzu
bpy.context.scene.collection.objects.link(obj)
# Setze den Kontext auf das neue Objekt
bpy.context.view_layer.objects.active = obj
bpy.context.active_object.select_set(True)
# Erstelle die Mesh-Daten
mesh.from_pydata(coordinates_list, [], [])
# Aktualisiere das Mesh
mesh.update()
# Passe den Dateipfad an
file_path = "/Pfad/zur/deiner/datei.txt"
# Rufe die Funktion auf
create_mesh_from_coordinates(file_path)
------------------------------------------------------------------------------
import bpy
import numpy as np
def read_coordinates(file_path):
coordinates = []
with open(file_path, 'r') as file:
for line in file:
parts = line.split()
# Ignoriere die erste Spalte und konvertiere die restlichen Werte zu float
coordinates.append([float(part) for part in parts[1:]])
return np.array(coordinates)
def create_mesh(coordinates):
mesh = bpy.data.meshes.new(name="CustomMesh")
obj = bpy.data.objects.new("CustomObject", mesh)
bpy.context.collection.objects.link(obj)
bpy.context.view_layer.objects.active = obj
obj.select_set(True)
mesh.from_pydata(coordinates.tolist(), [], [])
if __name__ == "__main__":
file_path = "deine_datei.txt" # Passe den Dateipfad an
coordinates = read_coordinates(file_path)
create_mesh(coordinates)
für die ansicht in blender:
Der orangene Punkt in der mitte ist das was mir die skripte erstellt, das einzige was ich damit tun kann ist es herumverschieben (x,y,z)
wäre kuul wenn mir da jemand weiterhelfen könnte
88.001 -96293.3795 263205.5064 495.4550
88.002 -96293.5978 263205.6772 496.9587
88.003 -96293.3845 263205.4910 498.2000
wobei die erste spalte nur eine nummerierung für die punkte ist. ich habe chatgpt 2 scripte erstellen lassen aber wenn ich es laufen lasse entsteht nur ein punkt im blender internen ursprung und mehr kann man nicht sehen, skalieren usw hilft auch nix.
Der code:
import bpy
def create_mesh_from_coordinates(file_path):
# Öffne die .txt-Datei
with open(file_path, 'r') as file:
lines = file.readlines()
# Erstelle eine Liste von Koordinaten (ignoriere die erste Spalte)
coordinates_list = [list(map(float, line.strip().split()[1:])) for line in lines]
# Erstelle ein Mesh-Objekt
mesh = bpy.data.meshes.new(name="CustomMesh")
obj = bpy.data.objects.new("CustomObject", mesh)
# Füge das Objekt zur Szene hinzu
bpy.context.scene.collection.objects.link(obj)
# Setze den Kontext auf das neue Objekt
bpy.context.view_layer.objects.active = obj
bpy.context.active_object.select_set(True)
# Erstelle die Mesh-Daten
mesh.from_pydata(coordinates_list, [], [])
# Aktualisiere das Mesh
mesh.update()
# Passe den Dateipfad an
file_path = "/Pfad/zur/deiner/datei.txt"
# Rufe die Funktion auf
create_mesh_from_coordinates(file_path)
------------------------------------------------------------------------------
import bpy
import numpy as np
def read_coordinates(file_path):
coordinates = []
with open(file_path, 'r') as file:
for line in file:
parts = line.split()
# Ignoriere die erste Spalte und konvertiere die restlichen Werte zu float
coordinates.append([float(part) for part in parts[1:]])
return np.array(coordinates)
def create_mesh(coordinates):
mesh = bpy.data.meshes.new(name="CustomMesh")
obj = bpy.data.objects.new("CustomObject", mesh)
bpy.context.collection.objects.link(obj)
bpy.context.view_layer.objects.active = obj
obj.select_set(True)
mesh.from_pydata(coordinates.tolist(), [], [])
if __name__ == "__main__":
file_path = "deine_datei.txt" # Passe den Dateipfad an
coordinates = read_coordinates(file_path)
create_mesh(coordinates)
für die ansicht in blender:
Der orangene Punkt in der mitte ist das was mir die skripte erstellt, das einzige was ich damit tun kann ist es herumverschieben (x,y,z)
wäre kuul wenn mir da jemand weiterhelfen könnte