Zum Inhalt

Projekt-übergreifende Befehle

  • cna.project_area() gibt die Projektfläche in m² aus
  • cna.calc_all_imm() berechnet alle Immissionspunkte neu
  • cna.limit.calc() berechnet den Umgriff neu
  • cna.print() schreibt in das Ausgabefenster
  • cna.load_file() lädt CadnaA Projekte
  • cna.import_file() importiert CadnaA Projekte (alle Objekte)
  • cna.save_file() speichert CadnaA Projekte
  • cna.redraw() zeichnet den Umgriff neu
  • cna.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.tables spricht CadnaA Tabellenobjekte an (siehe Tabellen-Objekt)
  • cna.get_ini_path() gibt den Dateipfad inklusive Dateinamen der Datei CADNAA.INI aus
  • cna.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ält
  • cna.quit_at_once() beendet CadnaA, nicht gespeicherte Änderungen gehen verloren!
  • cna.version() gibt die aktuelle CadnaA Version als String zurück
  • cna.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ück
  • cna.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 mit cna.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 aus
  • cna.plot_designer_num_pages() gibt die Anzahl Seiten des aktuellen PlotDesigner Projekts zurück
  • cna.plot_designer_print_page(X) druckt nur die eins-basierte Seite X des aktuellen PlotDesigner Projekts aus
  • cna.set_scale(d) setzt den Maßstab auf 1:d
  • cna.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