Files
dxfmakros/Lisp/HwPlanung.lsp
T
Michael StanglandClaude Opus 5.5 6a875cc8a0 feat: Menue HW Planung - Materialfluss-Skizze <dwg>_HW.dxf aus dem CSV-Export
HW_MATERIALFLUSS ruft EXPORTCSV und lib/hw_materialfluss.py: Kreisel-Rechtecke
in Drehrichtung, Strecken AS -> Separatoren -> ES, Weichen, Be-/Entladungen.
HW_SYMBOLE vorerst Platzhalter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 16:43:06 +01:00

77 lines
2.8 KiB
Common Lisp

;; ============================================================
;; 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/<dwg>_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/<dwg>_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)