In diesem Beispiel wollen berechnen wie wir unsere Entwässerung einplanen müssen. Dazu müssen unbedingt wissen, wie groß die zu entwässernde Fläche ist. Je nachdem wie groß die Fläche ist, wollen wir dann eine bestimmte Entwässerung einstellen, oder nicht. Ich werde die folgende Funktion dafür in diesem Beispiel in ein PreSetup Skript einbauen. Man kann das aber auch in eine UI Maske einsetzen oder ein Druckskript oder ein beliebiges, anderes Skript.
Zuerst müssen wir das Modul kkp_gemeinsame laden
import kkp_gemeinsame
Danach erstellen wir uns eine Funktion, damit wir später auch noch wissen worum es in der Funktion ging. NICHT VERGESSEN! Eine Funktion muss auch immer aufgerufen werden, damit sie ausgeführt wird.
def entwaesserung_einstellen():passdef main():entwaesserung_einstellen()
In der Funktion müssen wir nun ausrechnen, wie groß unsere Dachflächen sind. Dafür müssen wir zuerst einmal die Kennziffer(n) unserer Dachfläche(n) ermitteln.
Ich habe mir direkt ein kompliziertes Dach erstellt, welches über 3 Dachflächen verfügt. Zum Glück haben alle Dachflächen die gleiche Kennziffer. Dadurch muss ich Funktion nur einmal aufrufen. Bei Dachflächen gibt es eine spezielle Besonderheit. Dachflächen nehmen immer ganz automatisch die Kennziffer (ohne Variant) von dem Profil an, welches die Dachfläche unterteilt. Das heißt aber auch, dass wir, wenn wir nach der Kennziffer für die Dachfläche suchen, alle Dachflächen und alle Profile (hier sind es Innensparren) bekommen, weil die ja alle dieselbe Kennziffer verwenden. Wir müssen also auch noch einen Filter mit angeben für den Typ, damit die nur Dachflächen aber keine Profile verwenden.
def entwaesserung_einstellen():flaechen = kkp_gemeinsame.flaechenBerechnen(„900.225.040.100.030“ , 100 , kkp.CT_CADPROFILFLAECHE)
Die 100 steht hier für die Objektgruppe, also in diesem Fall die Ganze Zeichnung. Wenn man nur ein Teilsegment nehmen möchte (was bei UI Masken üblich ist), dann muss man statt der 100 einfach nur die Objektnummer des Segments angeben, das man verwenden möchte. Bei UI Masken ist das typischerweise etwas wie sc.objnr()
Die Flächen, die wir erhalten sind immer so aufgebaut, dass wir eine Liste bekommen mit allen Dachflächen (als Objektnummer) und der dazugehörigen Fläche in quadratmetern
Das können wir uns auch mit einem print Befehl schnell anschauen.
def entwaesserung_einstellen():flaechen = kkp_gemeinsame.flaechenBerechnen(„900.225.040.100.030“ , 100 , kkp.CT_CADPROFILFLAECHE)print(flaechen)
Wir sehen also eine Liste der Form
[
(objnr , Fläche),
(objnr, Fläche),
(objnr, Fläche)
]
Nun können wir die Liste in einer Schleife durchlaufen und uns die Werte direkt herausholen
def entwaesserung_einstellen():flaechen = kkp_gemeinsame.flaechenBerechnen(„900.225.040.100.030“ , 100 , kkp.CT_CADPROFILFLAECHE)print(flaechen)for tupel in flaechen:objNrFlaeche = tupel[0]flaecheInQm = tupel[1]print(str(objNrFlaeche) + “ flaeche: %.3f m²“ % flaecheInQm)
Das können wir natürlich auch aufsummieren, oder wir können mit der Objektnummer das Elternobjekt aufrufen. Dann haben wir das Segment, in dem die Entwässerung steckt. Und dann könnten wir in jedem Segment bestimmte Profile einstellen. Oder wir könnten auch vielleicht Artikel zu einem Warenkorb hinzufügen. Die Möglichkeiten sind dann sehr vielfältig.
So, dann wünsche ich dir viel Spaß beim nachbauen und hoffe, dass du deine Materialermittlung und Dachprüfung mit dieser kleinen Funktion weiter optimieren kannst.