made me curious on how to select one arrow or the other...
here's the latest, works on dimaligned or dimlinear dimensions
Code:(defun c:test ();(/ ent pt ed d1 d2 obj) (vl-load-com) (setq temperr *error* *error* errortrap varlst '("osmode" "cmdecho" ) oldvar (mapcar 'getvar varlst) ) (mapcar 'setvar varlst '(0)) (while (setq ent (entsel "\nSelect dimension line near arrow: ") pt (osnap (cadr ent) "nea") ed (entget (car ent)) d1 (distance pt (cdr (assoc 10 ed))) d2 (/ (cdr (assoc 42 ed)) 2) obj (vlax-ename->vla-object (car ent)) ) (if (or (wcmatch (vlax-get obj 'Objectname) "*Aligned*") (wcmatch (vlax-get obj 'Objectname) "*Rotated*")) (cond ((and (> d1 d2) (vlax-property-available-p obj 'Arrowhead1Type))(vlax-put obj 'Arrowhead1Type 11)) ((and (< d1 d2) (vlax-property-available-p obj 'Arrowhead2Type))(vlax-put obj 'Arrowhead2Type 11)) ) (Alert "\nNot a linear dimension... try again") ) ) (mapcar 'setvar varlst oldvar) (princ) ) (defun errortrap (msg) (if oldvar (mapcar 'setvar varlst oldvar)) (setq *error* temperr) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n<< Error: " msg " >>")) ) (princ) )


Reply With Quote