Will man ein Skript schreiben, dass überprüft, ob eine Konstruktion überhaupt machbar ist, und dem Konstrukteur diverse Korrekturen abnimmt, dann müssen wir sicherlich auch Profile einstellen.
Eine ganz typische Fragestellung ist, wenn die Ausladung des Daches einen bestimmten Wert überschreitet, müssen stärkere Sparren eingesetzt werden.
Eine andere typische Fragestellung ist. Wenn die Rinne XYZ gewählt wurde, dann müssen folgende Deckel eingestellt werden.
Das KKP System bietet mir leider keine Deckel an, die ich einstellen könnte, daher muss ich mir hier ein etwas anderes Beispiel einfallen lassen, aber keine Sorge, das bekommen wir schon hin.
Dann wollen wir unsere PreSetupUsr.py Skript mal anfangen. Um etwas mehr Struktur hineinzubringen, werde ich nun auch Funktionen definieren. Die erste Funktion soll abfragen ob die Ausladung des Daches größer ist als 4 Meter. Wenn ja, dann sollen stärkere Sparren eingestellt werden, ist die Ausladung hingegen kleiner, dann reichen die einfachen Sparren.
# -*- 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():
kkp.MsgBox(„Stelle die Mittelsparren ein“ , 0)
setupRafters() #Aufruf der Funktion
Gut. Dann müssen wir nun die Ausladung abfragen. Das Vorgehen ist dasselbe wie im vorherigen Beispiel zum Abfragen von Parametern.
# -*- 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():
kkp.MsgBox(„Stelle die Mittelsparren ein“ , 0)
paramDepth = kkp.Get_Parameter(100 , „998.200.0111“)
if len(paramDepth) > 0:
dDepth = paramDepth[0]
kkp.MsgBox(„Die Konstruktion hat eine Ausladung von “ + str(dDepth) , 0)
setupRafters() #Aufruf der Funktion
Das einzige eventuell Neue hier ist str(dDepth). Da dDepth eine Zahl ist, kann man sie nicht einfach so als Zeichenkette (String) ausgeben. Wir müssen sie also zuerst in einen String umwandeln. Und dann machen wir über die Funktion str(…)
Ich nehme nun mal die Message-Boxen weg. Zu viele sind auch nicht gut. Dafür erstelle ich aber eine If-Beging, ob die Ausladung größer ist als 4000 oder nicht.
# -*- 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:
pass
else:
pass
setupRafters() #Aufruf der Funktion
Hier habe ich die Schlüsselwörter „pass“ eingesetzt. Immer wenn man einen Block anfängt (gekennzeichnet durch den Doppelpunkt) muss auch ein Block vorhanden sein. Ein leerer Block ist nicht erlaubt. Dann stürzt das Skript ab. „pass“ ist ein Befehl der quasi nichts macht, aber wir haben somit zumindest einen Befehl in dem Block. Den Befehl „pass“ werden nun also durch Inhalt ersetzen müssen. So bekommen wir aber schon mal etwas Struktur in das Skript.
Jetzt holen wir uns schon mal die Kennziffern der Innensparren und schreiben uns die irgendwo auf.
Dazu klicken wir einen einzelnen Sparren an und gehen auf den Reiter Ausführung.
Hier können wir sehen, dass der aktuell verwendete Sparren die Kennziffer 900.001.010.100.030.0010 hat. Alle einstellbaren Sparren haben also die gemeinsame Kennziffer 900.001.010.100.030
Welche Varianten uns zur Verfügung stehen, können wir sehen, in dem wir den Knopf tauchen klicken.
Wenn man ganz genau schaut, sieht man das die erste Spalte nur 2-3 Pixel breit ist. Durch Ziehen können wir diese Spalte verbreitern uns sehen dann die Kennziffern mit ihren Varianten.
Wir haben also die 0010, 0012 und 0015 zur Verfügung.
Für unser Beispiel sagen wir einfach, wenn die Ausladung zu groß ist, dann wollen wir den Variant 0015 verwenden, ansonsten den Variant 0010.
Wieder im Modul kkp (Datei: prg32\python32\kkp.py) gibt es eine Funktion, mit der wir das Profil einstellen (oder auch tauschen) können.
Bauen wir diese Funktion einmal in unser Skript 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“)
setupRafters() #Aufruf der Funktion
Wenn wir nun die Ausladung auf (z.B.) 4500mm stellen, dann sollten die Sparren automatisch getauscht werden, sobald wir das Skript ausführen.
Und in der Tat, nach dem Ausführen des Skriptes, haben wir stärkere Sparren in der Konstruktion.
Verkleinern wir nun den Grundriss wieder, stellen sich auch die kleinen Sparren ein.
Damit haben wir unsere ersten Profile einstellt.