Export der BB enthält mindesthöhe
This commit is contained in:
+13
-2
@@ -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
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user