;; ============================================================ ;; HwPlanung.lsp - Hardware-Planung (Menue "HW Planung") ;; ;; HW_MATERIALFLUSS ("Materialfluss erzeugen"): ;; 1. exportiert das aktuelle Hardware-Layout per EXPORTCSV ;; (csv:run-export, export.lsp) nach DXFM_RESULTS/_export.csv ;; 2. ruft lib/hw_materialfluss.py auf, das daraus die Materialfluss- ;; Skizze (Kreisel-Rechtecke in Drehrichtung, Strecken-Polylinien ;; AS -> Separatoren -> ES, Weichen, Be-/Entladungen) zeichnet ;; 3. Ergebnis: DXFM_RESULTS/_HW.dxf (neue Datei, die offene ;; Zeichnung bleibt unveraendert) ;; ;; HW_SYMBOLE ("Symbole erzeugen"): noch Platzhalter, zeigt nur einen Hinweis. ;; ;; Setzt export.lsp voraus (laedt die MNL vor). ;; ============================================================ (setq *hw-skript* "hw_materialfluss.py") ;; Name der Ausgabedatei aus dem Zeichnungsnamen (reiner Kern, getestet): ;; "Mubea.dwg" -> "Mubea_HW.dxf" (defun hw-dxf-name (dwgname) (strcat (vl-filename-base dwgname) "_HW.dxf") ) (defun c:HW_MATERIALFLUSS ( / label out-dir csv-pfad dxf-pfad py-skript py-exe log-pfad rc) (setq label "HW_MATERIALFLUSS") (if (null (getenv "DXFM_LIB")) (princ (ssg-textf "exp-dxfm-lib-missing" (list label))) (progn (setq out-dir (if *export-test-override* *export-test-override* (getenv "DXFM_RESULTS"))) (setq csv-pfad (strcat out-dir "/" (export:dwg-praefix) (export:filename "csv_csv"))) (setq dxf-pfad (strcat out-dir "/" (hw-dxf-name (getvar "DWGNAME")))) ;; Alte CSV entfernen - sonst wuerde nach einem gescheiterten Export ;; still die Skizze aus dem vorigen Stand gezeichnet. (if (findfile csv-pfad) (vl-file-delete csv-pfad)) (c:EXPORTCSV) (if (not (findfile csv-pfad)) (princ (ssg-textf "hw-csv-fehlt" (list csv-pfad))) (progn (setq py-skript (strcat (getenv "DXFM_LIB") "/" *hw-skript*)) (setq py-exe (export:python-exe)) (setq log-pfad (strcat (cond ((getenv "DXFM_LOG")) (out-dir)) "/hw_materialfluss.log")) (setq rc (export:run-python py-exe py-skript (list csv-pfad dxf-pfad) log-pfad)) (cond ((null rc) (princ (ssg-textf "exp-python-call-failed" (list label)))) ((/= rc 0) (princ (ssg-textf "exp-python-error" (list label rc log-pfad))) (export:log-ausgeben log-pfad 12)) (t (export:log-ausgeben log-pfad 12) (princ (ssg-textf "hw-fertig" (list dxf-pfad)))) ) ) ) ) ) (princ) ) (defun c:HW_SYMBOLE () (alert (ssg-text "hw-symbole-offen")) (princ) ) (princ "\n>>> HwPlanung.lsp geladen") (princ)