0 Members and 1 Guest are viewing this topic.
(defun c:tt (/ arrowlen basept box el inx l loglen lst maxsum ml pl pt pt2 pts range ratio ss str txth x x1 xy y1 ) (defun _makemleader (basept pt2 str) (setq ml (xdrx_mleader_make basept pt2 str #xd-var-global-text-height #xd-var-global-mleader-dogleg-length ) ) (xdrx_setpropertyvalue ml "arrowsize" 0.0 "textattachmenttype" 6) ml ) (defun xd::string:alignformat (el / maxsum) (setq maxsum (apply 'max (mapcar '(lambda (x) (strlen x) ) el ) ) ) (mapcar '(lambda (x) (setq l (strlen x)) (if (< l maxsum) (repeat (- maxsum l) (setq x (strcat " " x)) ) x ) ) el ) ) (if (and (or *XD:excel* (setq *XD:excel* (vlax-get-or-create-object "excel.application")) ) (setq range (vlax-get *XD:excel* 'selection)) (setq lst (xd::excel:readrange range)) ) (progn (xd::doc:getdouble (xdrx-string-multilanguage "\n文字高" "\nText Height") "#xd-var-global-text-height" 4.0 ) (xd::doc:getdouble (xdrx-string-multilanguage "\n引线长度" "\nLeader Line Length") "#xd-var-global-mleader-line-length" 10.0 ) (xd::doc:getdouble (xdrx-string-multilanguage "\n水平基线长度" "\nHorizontal Baseline Length") "#xd-var-global-mleader-dogleg-length" 10.0 ) (xdrx-document-safezoom lst) (mapcar '(Lambda (x) (setq x1 (rtos (car x) 2 4) y1 (rtos (cadr x) 2 4) xy (xd::string:alignformat (list x1 y1)) x1 (strcat "X=" (car xy)) y1 (strcat "Y=" (cadr xy)) ) (setq str (xdrx-string-join (list x1 y1) "\r\n")) (setq box (xdrx-points->box x (xd::doc:getpickboxheight))) (if (and (setq ss (ssget "cp" box '((0 . "*polyline") (-4 . "&=") (70 . 1) ) ) ) (setq pl (ssname ss 0)) (setq inx (xdrx-getpropertyvalue pl "nearindex" x)) ) (progn (setq pts (xdrx-points-offset #xd-var-global-mleader-line-length lst) pt (nth inx pts) ) ) ) (_makemleader x pt str) ) lst ) ) ) (princ))