From f51b421e23fe19a180bdca6ddc330631144b045e Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Thu, 23 Jul 2026 14:06:06 +0200 Subject: [PATCH] =?UTF-8?q?Export=20der=20BB=20enth=C3=A4lt=20mindesth?= =?UTF-8?q?=C3=B6he?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lisp/export.lsp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Lisp/export.lsp b/Lisp/export.lsp index a129c52..269d226 100644 --- a/Lisp/export.lsp +++ b/Lisp/export.lsp @@ -90,11 +90,19 @@ ) ) +;; --- Mindesthoehe der Bounding-Box (Z-Ausdehnung), aus cfg/export.cfg --- +;; [Boundingbox] bb_minimum_height_mm, Default 1 (mm) falls nicht gesetzt. +;; Verhindert dz=0 bei flachen 2D-Bloecken (Draufsicht ohne Z-Ausdehnung). +(defun csv:bb-minimum-height-mm () + (atof (export:cfg "Boundingbox" "bb_minimum_height_mm" "1")) +) + ;; --- Bounding-Box (WCS, achsparallel) eines INSERT-Blocks ermitteln --- ;; Erzwingt vorher ein vla-update (Regen), da vla-getboundingbox sonst auf ;; nicht-regenerierten oder auf eingefrorenen Layern liegenden Bloecken scheitert. ;; Rueckgabe: Liste (cx cy cz dx dy dz) -- Mittelpunkt + Ausdehnung, oder nil bei Fehler. -(defun csv:get-bbox (ename / obj res minpt maxpt) +;; dz wird auf csv:bb-minimum-height-mm angehoben, falls kleiner (siehe dort). +(defun csv:get-bbox (ename / obj res minpt maxpt dz min-hoehe) (setq obj (vlax-ename->vla-object ename)) (vl-catch-all-apply 'vla-update (list obj)) (setq res @@ -107,13 +115,16 @@ (progn (setq minpt (car res)) (setq maxpt (cadr res)) + (setq dz (- (caddr maxpt) (caddr minpt))) + (setq min-hoehe (csv:bb-minimum-height-mm)) + (if (< dz min-hoehe) (setq dz min-hoehe)) (list (/ (+ (car minpt) (car maxpt)) 2.0) (/ (+ (cadr minpt) (cadr maxpt)) 2.0) (/ (+ (caddr minpt) (caddr maxpt)) 2.0) (- (car maxpt) (car minpt)) (- (cadr maxpt) (cadr minpt)) - (- (caddr maxpt) (caddr minpt)) + dz ) ) )