Try with this some modifications in @Moshe-A code (All credit goes to @Moshe-A )
(defun c:DimExp ( / evaluate_dimensions ; local function
ss lst fname file i Cont)
(defun evaluate_dimensions (ename / AcDbDimension Measurement tolUpL tolLoL tolDiS)
(setq AcDbDimension (vlax-ename->vla-object ename)) ; allocating memory
(setq Measurement (vla-get-measurement AcDbDimension))
(setq tolUpL (vla-get-toleranceUpperLimit AcDbDimension))
(setq tolLoL (vla-get-toleranceLowerLimit AcDbDimension))
(setq tolDiS (vla-get-toleranceDisplay AcDbDimension))
(vlax-release-object AcDbDimension); dispose memory
(cons
Measurement
(cond
((or (= tolDiS acTolNone) (= tolDiS acTolBasic))
(list 0.0 0.0)
);case
(t ; acTolSymmetrical or acTolDeviation or acTolLimits
(list tolUpL tolLoL)
); case
); cond
); cons
); evaluate_dimensions
(defun DPlace (No / Dim Val)
(setq Dim (getvar "DIMZIN"))
(setvar "DIMZIN" 11)
(setq Val (if (= No (fix No)) 0 (- (strlen (rtos No 2 8)) (+ (strlen (itoa (fix No))) 1))))
(setvar "DIMZIN" Dim)
Val
)
; here starts c:dimexp
(if (and
(setq ss (ssget "_X" (list '(0 . "DIMENSION"))))
(setq lst (mapcar
'(lambda (ename)
(evaluate_dimensions ename)
); lambda
(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
); mapcar
); setq
); and
(progn
(setq fname (strcat (getvar "dwgprefix") "DimExp.csv"))
(setq file (open fname "a")) ; append
(write-line "" file)
(setq Cont (getvar "dwgname"))
(foreach item lst
(foreach x item
(setq Cont (strcat Cont "," (rtos x 2 (DPLACE x))))
); foreach
(write-line Cont file)
(setq Cont " ")
); foreach
(if file (close file))
(princ (strcat "\n" (itoa (length lst)) " dimensions written to " fname))
); progn
); if
(princ)
)
Debashis Bhunia
Co-Founder of Geometrifying Trigonometry(C)
________________________________________________
Walking is the First step of Running, Technique comes Next....