马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
调单行文字的行间距
 - (defun c:xdtb_txtmodintv (/ intv ss box xdir ydir baseline i p1 dist mat mat1 mat2 ents)
- (if (not #xd_var_global_gap)
- (setq #xd_var_global_gap 2.0)
- )
- (if (setq intv
- (getreal (xdrx_prompt "\n行间距<" #xd_var_global_gap ">:" t)
- )
- )
- (setq #xd_var_global_gap intv)
- )
- (if (and (xdrx_initssget "\n请选取修改行距的大段文字<退出>:")
- (setq ss (xdrx_ssget '((0 . "text"))))
- (setq box (xdrx_entity_box ss))
- )
- (progn (xdrx_begin)
- (setq
- tol (/ (xdrx_getpropertyvalue (ssname ss 0) "textheight") 2.0)
- )
- (xdrx_sysvar_push (list "tolEqualPoint" tol))
- (setq ents (xd::pickset:tablesort ss 0 3 '> '<))
- (if (> (length ents) 1)
- (progn (setq intv (* #xd_var_global_gap (xd::var:getdrawratio))
- xdir (cadr (xdrx_entity_getecs (caar ents)))
- ydir (xdrx_vector_perpvector xdir)
- ydir (xdrx_vector_negate ydir)
- box (xdrx_entity_box (car ents) xdir)
- baseline (list (car box) (cadr box))
- i 0
- )
- (mapcar '(lambda (x)
- (setq box (xdrx_entity_box x xdir)
- p1 (last box)
- dist (apply 'xdrx_point_dist2line (cons p1 baseline))
- mat1 (xdrx_matrix_settranslation
- (xdrx_vector_product ydir #xd_var_global_gap)
- )
- mat2 (xdrx_matrix_settranslation
- (xdrx_vector_product ydir (- dist))
- )
- mat (xdrx_matrix_product mat1 mat2)
- )
- (xdrx_entity_transform x mat)
- (setq box (xdrx_entity_box x xdir)
- baseline (list (car box) (cadr box))
- )
- )
- (cdr ents)
- )
- )
- (progn (prompt "\n只选择一行文字,不能进行修改行距操作..."))
- )
- (xdrx_sysvar_pop)
- (xdrx_end)
- )
- )
- (princ)
- )
|