Jetzt, da wir Profile einstellen können, wäre es auch schön, wenn wir Profile abfragen könnten. Wenn also beispielsweise die starken Mittelsparren verwendet werden, wollen wir auch die passenden Seitensparren einstellen.
Im KKP gibt keine direkte Funktion zum Abfragen eines Profils. Stattdessen gibt es eine allgemeinere Funktion zum Auflisten aller Objekte mit einer bestimmten Kennziffer.
Als Parameter bekommt die Funktion die Kennziffer eines Profils, oder eines Parameters, oder einer Fläche oder eines anderen Zeichenobjektes. Als Ergebnis bekommen wir eine Liste mit den Objektnummern für jedes gefundene Objekt. Die Kennziffer muss nicht zwangsläufig vollständig sein, bis zu einem gewissen Grad akzeptiert das KKP auch abgeschnittene Kennziffern.
Wir erstellen uns nun eine zweite Funktion, die die Profilkombinationen anpasst.
# -*- coding: utf-8 -*-
import kkp
# Definition der Funktion Sparren einstellen.
# Ist die Ausladung der Konstruktion über 4 Meter, sollen starke Sparren verwendet werden,
# ansonsten reichen die einfachen.
def setupRafters():
paramDepth = kkp.Get_Parameter(100 , „998.200.0111“)
if len(paramDepth) > 0:
dDepth = paramDepth[0]
if dDepth > 4000:
kkp.Profile_tauschen(„900.001.010.100.030.0015“)
else:
kkp.Profile_tauschen(„900.001.010.100.030.0010“)
def setupProfileCombinations():
pass
setupRafters() #Aufruf der Funktion
setupProfileCombinations()
Hier fragen wir nun ab, ob der kleine Sparren vorhanden ist.
# -*- coding: utf-8 -*-
import kkp
# Definition der Funktion Sparren einstellen.
# Ist die Ausladung der Konstruktion über 4 Meter, sollen starke Sparren verwendet werden,
# ansonsten reichen die einfachen.
def setupRafters():
paramDepth = kkp.Get_Parameter(100 , „998.200.0111“)
if len(paramDepth) > 0:
dDepth = paramDepth[0]
if dDepth > 4000:
kkp.Profile_tauschen(„900.001.010.100.030.0015“)
else:
kkp.Profile_tauschen(„900.001.010.100.030.0010“)
def setupProfileCombinations():
objectList = kkp.Objektliste_Erstellen(„900.001.010.100.030.0010“)
print(objectList)
setupRafters() #Aufruf der Funktion
setupProfileCombinations()
Als Ergbnis erhalten wir nun folgende Liste:
Wer genau hinsieht, erkennt, dass wir in der Liste eine Objektnummer mehr haben, als wir Mittelsparren eingezeichnet haben. Das liegt an einer Besonderheit des KKP. Die Sparren sind über eine Dachflächenfunktion in die Konstruktion eingefügt worden. Eine Dachfläche hat direkte eigene Kennziffer, sondern nimmt immer automatisch die Kennziffer der Sparren an, die über diese Funktion automatisch in die Zeichnung gelangen. Also haben 1 Kennziffer für die Dachfläche und 4 für die Sparren. Welche Objektnummer die Dachfläche darstellt kann man auch herausfinden, aber das führt in diesem Beispiel zu weit.
Uns interessiert nur, ob die Anzahl größer ist als 0. Wenn ja, dann wird der kleine Sparren verwendet.
# -*- coding: utf-8 -*-
import kkp
# Definition der Funktion Sparren einstellen.
# Ist die Ausladung der Konstruktion über 4 Meter, sollen starke Sparren verwendet werden,
# ansonsten reichen die einfachen.
def setupRafters():
paramDepth = kkp.Get_Parameter(100 , „998.200.0111“)
if len(paramDepth) > 0:
dDepth = paramDepth[0]
if dDepth > 4000:
kkp.Profile_tauschen(„900.001.010.100.030.0015“)
else:
kkp.Profile_tauschen(„900.001.010.100.030.0010“)
def setupProfileCombinations():
objectList = kkp.Objektliste_Erstellen(„900.001.010.100.030.0010“)
if len(objectList) > 0:
pass
else:
pass
setupRafters() #Aufruf der Funktion
setupProfileCombinations()
Und jetzt notieren wir uns die Kennziffern der Seitensparren und tragen die Befehle zum Tauschen der Profile ein.
# -*- coding: utf-8 -*-
import kkp
# Definition der Funktion Sparren einstellen.
# Ist die Ausladung der Konstruktion über 4 Meter, sollen starke Sparren verwendet werden,
# ansonsten reichen die einfachen.
def setupRafters():
paramDepth = kkp.Get_Parameter(100 , „998.200.0111“)
if len(paramDepth) > 0:
dDepth = paramDepth[0]
if dDepth > 4000:
kkp.Profile_tauschen(„900.001.010.100.030.0015“)
else:
kkp.Profile_tauschen(„900.001.010.100.030.0010“)
def setupProfileCombinations():
objectList = kkp.Objektliste_Erstellen(„900.001.010.100.030.0010“)
if len(objectList) > 0: #Wenn kleiner Mittelsparren
#Stelle kleinen Seitensparren links ein
kkp.Profile_tauschen(„900.001.010.100.040.0010“)
#Stelle kleinen Seitensparren rechts ein
kkp.Profile_tauschen(„900.001.010.100.050.0010“)
else:
#Stelle großen Seitensparren links ein
kkp.Profile_tauschen(„900.001.010.100.040.0012“)
#Stelle großen Seitensparren rechts ein
kkp.Profile_tauschen(„900.001.010.100.050.0012“)
setupRafters() #Aufruf der Funktion
setupProfileCombinations()
Auf genau die Weise könnte ich nun auch passen Deckel oder Stahlverstärkungen einbauen, sofern meine Konstruktion diese Funktionalität hergibt.
Welche Profile und Varianten prinzipiell zur Verfügung stehen können kann man in der System.xml des Systemgebers sehen (kkp-w\systeme\{systemgeber}\ini\system.xml)