korrigierte Fassung für z-Koordinaten rein

This commit is contained in:
2026-05-07 07:17:42 +02:00
parent ad72c45cf2
commit 56b8fd7ee6
+83 -34
View File
@@ -417,7 +417,7 @@
(setq matrix (list
(list (cos rad) 0 (sin rad) (- tx (* tx (cos rad)) (* tz (sin rad))))
(list 0 1 0 (- ty ty))
(list (- (sin rad)) 0 (cos rad) (- tz (* tx (sin rad)) (* tz (cos rad))))
(list (- (sin rad)) 0 (cos rad) (+ tz (* tx (sin rad)) (- (* tz (cos rad)))))
(list 0 0 0 1)
))
(vla-TransformBy obj (vlax-tmatrix matrix))
@@ -969,48 +969,97 @@
;; Speichert als datum-HHMM.dxf
;; ============================================================
(defun c:FOERDERTEST ( / deltaL deltaH richtung ergebnis
best-winkel L_GF L_VF dateiname)
(setq deltaL 8000)
(setq deltaH 3000)
(setq richtung "Auf")
best-winkel L_GF L_VF dateiname
y-offset hoehen-liste idx)
(setq deltaL 7000)
(setq hoehen-liste '(0 1000 2000 3000 4000 5000))
(setq y-offset 0)
(setq idx 0)
(princ "\n=========================================")
(princ "\n FOERDERTEST (automatisch)")
(princ "\n FOERDERTEST (12 Foerderer)")
(princ "\n=========================================")
(princ (strcat "\nDistanz: " (rtos deltaL 2 2) " mm"))
(princ (strcat "\nHoehe: " (rtos deltaH 2 2) " mm"))
(princ (strcat "\nRichtung: " richtung))
(princ "\nStartpunkt: 0, 0, 0")
(princ "\nHoehen: 0 bis 5000 mm (6 Stufen)")
(princ "\nRichtungen: Auf + Ab")
(setq ergebnis (berechne-alle-winkel deltaL deltaH richtung))
(setq best-winkel (car ergebnis) L_GF (cadr ergebnis) L_VF (caddr ergebnis))
;; 6 Foerderer aufwaerts
(foreach deltaH hoehen-liste
(setq idx (1+ idx))
(setq richtung "Auf")
(princ (strcat "\n\n--- Foerderer " (itoa idx) "/12: " richtung " dH=" (rtos deltaH 2 0) " mm ---"))
(if (or (null best-winkel) (null L_GF) (null L_VF) (<= L_GF 0) (<= L_VF 0))
(progn (princ "\nFEHLER: Kein passender Winkel gefunden!") (princ))
(progn
(princ (strcat "\n\nGewaehlter Winkel: " (itoa best-winkel) " Grad"))
(princ (strcat "\nL_GF (gesamt): " (rtos L_GF 2 2) " mm"))
(princ (strcat "\nL_GF1 (vorne): " (rtos (/ L_GF 2.0) 2 2) " mm"))
(princ (strcat "\nL_GF2 (hinten): " (rtos (/ L_GF 2.0) 2 2) " mm"))
(princ (strcat "\nL_VF: " (rtos L_VF 2 2) " mm"))
;; Foerderanlage einfuegen bei 0,0,0 (gleichmaessige Verteilung)
(foerderanlage-einfuegen deltaL deltaH richtung best-winkel (/ L_GF 2.0) (/ L_GF 2.0) L_VF '(0 0 0))
;; Dateiname: datum-HHMM.dxf
(if (getenv "DXFM_RESULTS")
(setq result-pfad (getenv "DXFM_RESULTS"))
(setq result-pfad (strcat modul-pfad "../results"))
(if (< deltaH 1)
(progn
;; deltaH=0: Flacher Foerderer, nur Gefaellestrecken bei 3 Grad
(princ "\n Flach (deltaH=0), ueberspringe Winkelberechnung")
(setq best-winkel 3
L_GF (- deltaL aus-dx ein-dx (* FESTE_HORIZONTAL (cos (* 3 (/ pi 180.0)))))
L_VF 0)
(if (> L_GF 0)
(foerderanlage-einfuegen deltaL 0 richtung best-winkel (/ L_GF 2.0) (/ L_GF 2.0) L_VF (list 0 y-offset 0))
(princ "\n FEHLER: L_GF negativ, Strecke zu kurz!")
)
)
(progn
(setq ergebnis (berechne-alle-winkel deltaL deltaH richtung))
(setq best-winkel (car ergebnis) L_GF (cadr ergebnis) L_VF (caddr ergebnis))
(if (or (null best-winkel) (null L_GF) (null L_VF) (<= L_GF 0) (<= L_VF 0))
(princ "\n FEHLER: Kein passender Winkel gefunden!")
(progn
(princ (strcat "\n Winkel: " (itoa best-winkel) " Grad L_GF=" (rtos L_GF 2 1) " L_VF=" (rtos L_VF 2 1)))
(foerderanlage-einfuegen deltaL deltaH richtung best-winkel (/ L_GF 2.0) (/ L_GF 2.0) L_VF (list 0 y-offset 0))
)
)
)
(setq dateiname (strcat result-pfad
"/"
(menucmd "M=$(edtime,$(getvar,date),YYYYMODD-HHmm)")
".dxf"))
(princ (strcat "\n\nSpeichere als: " dateiname))
(command "_.DXFOUT" dateiname "V" "2018" "16")
(princ "\n\n>>> FOERDERTEST abgeschlossen! <<<")
)
(setq y-offset (- y-offset 200))
)
;; 6 Foerderer abwaerts
(foreach deltaH hoehen-liste
(setq idx (1+ idx))
(setq richtung "Ab")
(princ (strcat "\n\n--- Foerderer " (itoa idx) "/12: " richtung " dH=" (rtos deltaH 2 0) " mm ---"))
(if (< deltaH 1)
(progn
(princ "\n Flach (deltaH=0), ueberspringe Winkelberechnung")
(setq best-winkel 3
L_GF (- deltaL aus-dx ein-dx (* FESTE_HORIZONTAL (cos (* 3 (/ pi 180.0)))))
L_VF 0)
(if (> L_GF 0)
(foerderanlage-einfuegen deltaL 0 richtung best-winkel (/ L_GF 2.0) (/ L_GF 2.0) L_VF (list 0 y-offset 0))
(princ "\n FEHLER: L_GF negativ, Strecke zu kurz!")
)
)
(progn
(setq ergebnis (berechne-alle-winkel deltaL deltaH richtung))
(setq best-winkel (car ergebnis) L_GF (cadr ergebnis) L_VF (caddr ergebnis))
(if (or (null best-winkel) (null L_GF) (null L_VF) (<= L_GF 0) (<= L_VF 0))
(princ "\n FEHLER: Kein passender Winkel gefunden!")
(progn
(princ (strcat "\n Winkel: " (itoa best-winkel) " Grad L_GF=" (rtos L_GF 2 1) " L_VF=" (rtos L_VF 2 1)))
(foerderanlage-einfuegen deltaL deltaH richtung best-winkel (/ L_GF 2.0) (/ L_GF 2.0) L_VF (list 0 y-offset 0))
)
)
)
)
(setq y-offset (- y-offset 200))
)
;; Dateiname: datum-HHMM.dxf
(if (getenv "DXFM_RESULTS")
(setq result-pfad (getenv "DXFM_RESULTS"))
(setq result-pfad (strcat modul-pfad "../results"))
)
(setq dateiname (strcat result-pfad
"/"
(menucmd "M=$(edtime,$(getvar,date),YYYYMODD-HHmm)")
".dxf"))
(princ (strcat "\n\nSpeichere als: " dateiname))
(command "_.DXFOUT" dateiname "V" "2018" "16")
(princ "\n\n>>> FOERDERTEST abgeschlossen (12 Foerderer)! <<<")
(princ)
)