Projekt-übergreifende Befehle
cna.project_area()gibt die Projektfläche in m² auscna.calc_all_imm()berechnet alle Immissionspunkte neucna.limit.calc()berechnet den Umgriff neucna.print()schreibt in das Ausgabefenstercna.load_file()lädt CadnaA Projektecna.import_file()importiert CadnaA Projekte (alle Objekte)cna.save_file()speichert CadnaA Projektecna.redraw()zeichnet den Umgriff neucna.import_file_ascii(p,o,x,y,z,d)importiert ASCII Dateien, wobei p der Pfad zur Datei ist, o der zu importierende Objekttyp (integer), x die Spaltennummer der X Koordinate (default: 1), y die Spalten-nummer der Y Koordinate (default: 2), z die Spaltenummer der Z Koordinate (default 3) und d das optionale Trennzeichen als String (default: nil, dann wird Strichpunkt angenommen) darstellen.cna.import_citygml(p, b, d)importiert CityGML Dateien, wobei p der Pfad zur Datei ist, b die Einstellung für „Gebäude Geometrie bei LoD2“ mit gültigen Werten von 1...4 und d die Einstellung „DGM aus Höhen der Gebäudegrundflächen erzeugen“ mit gültigen Werten true/false.cna.export_raster_ascii(p) speichert das aktuelle Raster als ASCII Raster im Pfad p.cna.export_raster_shape(p)speichert das aktuelle Raster als SHP Datei im Pfad p.cna.export_report_text(p)speichert den aktuellen Bericht als TXT Datei im Pfad p.cna.tablesspricht CadnaA Tabellenobjekte an (siehe Tabellen-Objekt)cna.get_ini_path()gibt den Dateipfad inklusive Dateinamen der Datei CADNAA.INI auscna.polygons_are_intersecting(poly1, poly2)liefert true, wenn Polygon poly1 und Polygon poly2 schneidende Kanten aufweisen, ansonsten false. Im Fall identischer Polygone wird false zurückgegeben. Beispiel:
if cna.polygons_are_intersecting(mybuilding.poly, myroad.poly) then
mybuilding.poly.MARK=1
end
cna.set_dirty()weist CadnaA darauf hin, dass das aktuelle Projekt geändert wurde (Hinweis: Viele LUA-Funktionen rufen diese Funktion automatisch auf, aber nicht alle.)cna.is_dirty()überprüft, ob das CadnaA Projekt nicht gespeicherte Änderungen enthältcna.quit_at_once()beendet CadnaA, nicht gespeicherte Änderungen gehen verloren!cna.version()gibt die aktuelle CadnaA Version als String zurückcna.messagebox_timeout(x)definiert die Zeit in Sekunden, nach der Dialogboxen automatisch geschlossen werden.
Hinweis
Diese Funktion kann genutzt werden um etwa bei Berechnungen mit der Norm Nord2000 (Industrie) die Nachricht „Kein Multithreading“ zu umgehen.
cna.activate_protocol()aktiviert/deaktiviert die Protokollerstellung mit den Parametern true/false. Als zweiter Parameter kann ein benutzerdefinierter Pfad für die Protokolldatei definiert werden.cna.protfile()gibt den Namen der Protokolldatei als String zurückcna.set_weighting()definiert die Bewertungsmethode im Menü Eigenschaften | Sonstiges mit den Parametern 0...4.cna.get_weighting(), get-Funktion analog zu cna.set_weighting()cna.getobj()liefert direkten Zugriff auf ein Objekt aus einer Objekttabelle (statt mitcna.tablesüber alle zu iterieren). Parametermöglichkeiten (Die nachfolgenden Beispiele verweisen jeweils auf den zweiten Eintrag in der Tabelle „Punktquelle“.):- HOBJ als Hexadezimal String oder Ganzzahl: „0x0C000001“ oder 201326593
- Nummer des Objekttyps + Index in Tabelle: (12, 2)
- Objekttyp als String (siehe Tabelle am Ende des Kapitels) + Index in Tabelle: („PQ“, 1)
cna.hobj(x)liefert das HOBJ als Ganzzahl des übergebenen Objekts p
cna.plot_designer_print_all()druckt alle Seiten des aktuellen PlotDesigner Projekts mit dem eingestellten Drucker auscna.plot_designer_num_pages()gibt die Anzahl Seiten des aktuellen PlotDesigner Projekts zurückcna.plot_designer_print_page(X)druckt nur die eins-basierte Seite X des aktuellen PlotDesigner Projekts auscna.set_scale(d)setzt den Maßstab auf 1:dcna.get_ini_entry(s,k)liest aus CADNAA.INI-Datei, mit Variablen s, k - siehe unten)cna.set_ini_entry(s,k,v)schreibt in CADNAA.INI-Datei, mit den Variablen:- s = section (Abschnittsbezeichnung in der INI-Datei)
- k = key (Ausdruck vor dem Gleichheitszeichen)
- v = value (Wert hinter dem Gleichheitszeichen)
cna.scandir(path, ext)gibt eine Lua-Table mit absoluten Pfaden zu Dateien in dem angegebenen Verzeichnis / in allen Unterverzeichnissen zurück. Mit dem zweiten Argument kann auf einen bestimmten Dateityp gefiltert werden, z.B. mit"*.cna"auf CadnaA-Dateien. Soll nicht gefiltert werden, kann ext ="*"angegeben werden. Da die aufgerufene Windows-Funktion bei"*.cna"teils z.B. auch Dateien mit Endung".cnaprot"zurückgibt, kann eine separate Filterung mit Lua notwendig sein, siehe nachstehendes Beispiel:
files = cna.scandir("C:\\tmp")
for _, file in pairs(files) do
if file:match("%.cna$") then -- additional filter with lua string function match()
cna.print(file)
end
end