# -*- coding: utf-8 -*-

############################################################

#import sys

# Erstelle die Komponente 'RIGID_SPIDER'
new_spider = mw.new_component(name="RIGID_SPIDER")

# Lösche die Komponente 'RIGID_SPIDER(2)'
mw.delete_component("RIGID_SPIDER(2)")

# Liste von ausgewählten Knoten
selected_nodes = mw.selected_nodes()

# Positionen aller ausgewählten Knoten
selected_nodes_positions = [mw.node(node_id) for node_id in selected_nodes]

# Berechne den Mittelpunkt als Durchschnitt der Positionen aller ausgewählten Knoten
sum_x = sum(node_position.x for node_position in selected_nodes_positions)
sum_y = sum(node_position.y for node_position in selected_nodes_positions)
sum_z = sum(node_position.z for node_position in selected_nodes_positions)

# Mittelpunkt berechnen
new_node_position = Vector(
    sum_x / len(selected_nodes),
    sum_y / len(selected_nodes),
    sum_z / len(selected_nodes)
)

# Erzeuge den neuen Knoten
new_node_id = mw.new_node(new_node_position)

# Verbinde jeden ausgewählten Knoten mit dem mittigen Knoten mit line2-Elementen
for node_id in selected_nodes:
    element_nodes = [node_id, new_node_id]
    created_element_id = mw.new_element('line2', element_nodes)
    mw.set_element_component(created_element_id, 'RIGID_SPIDER')

# Define Rigid Material, unless it already exists
if not mw.material("RIGID_SPIDER"):
    mw.new_material(name="RIGID_MATERIAL")
    mw.set_material_type("RIGID_MATERIAL", "geometric", "RectBar")
    mw.set_material_property("RIGID_MATERIAL", "recta", 0.0001)
    mw.set_material_property("RIGID_MATERIAL", "rectb", 0.0001)
    mw.set_material_type("RIGID_MATERIAL", "mechanical", "Isotropic")
    mw.set_material_property("RIGID_MATERIAL", "youngsmodulus", 210000000000000.0)
    mw.set_material_property("RIGID_MATERIAL", "poissonratio", 0.30)
    
    # Pair all Successive Components with SAME Material
    mw.set_material(new_spider, "RIGID_MATERIAL")
