Тема: Как выровнять однострочный текст по вертикали?
Мож кто знает, как выровнять однострочный текст по вертикали ?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Приемы работы → Текст (MTEXT) и шрифты → Как выровнять однострочный текст по вертикали?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Мож кто знает, как выровнять однострочный текст по вертикали ?
Имеется в виду Fit - Middle Left / Right / Center? Так это в свойствах объекта либо при вызове dtext использовать опцию _Justify и устанавливать ml mr либо mc по необходимости
(princ "Type DALI to Run") (defun c:dali (/ tHeight insPoint dtSet oldDisMode errFlag sStr tAlignPt tAlignment disDelta dtList oldStrDis) (vl-load-com) (defun texAlign (item /) (setq disDelta(- disDelta dali:strDis)); end setq (vla-put-Alignment (car str) tAlignment) (cond ((= tAlignment 0) (vla-put-InsertionPoint (car str) (vlax-3D-Point(car insPoint) (+ disDelta(cadr insPoint))(nth 2 insPoint))) ) ((member tAlignment '(1 2 4 6 7 8 9 10 11 12 13 14)) (vla-put-TextAlignmentPoint (car str) (vlax-3D-Point(car tAlignPt) (+ disDelta(cadr tAlignPt))(nth 2 tAlignPt))) ) ((member tAlignment '(3 5)) (princ "\nCan't align string with Aligned or Fit alignment ") ) ); end cond ); end of texAlign (if(not dali:disMode)(setq dali:disMode "S")) (setq oldDisMode dali:disMode) (if(not dali:strDis)(setq dali:strDis 4.167)) (setq oldStrDis dali:strDis) (initget "S C") (setq dali:disMode (getkword (strcat "\nSpecify distance between strings [Standard/Custom] <" dali:disMode ">: "))) (if(null dali:disMode)(setq dali:disMode oldDisMode)) (if(= dali:disMode "C") (progn (setq dali:strDis(getdist(strcat "\nSpecify Custom distance <"(rtos dali:strDis) ">: "))) (if(null dali:strDis)(setq dali:strDis oldStrDis)) (princ(strcat "\nCustom distance is "(rtos dali:strDis))) ); end progn ); end if (princ "\n*** Select DText and press Enter *** ") (if (setq dtSet(ssget '((0 . "TEXT")))) (progn (setq dtList(vl-sort(mapcar '(lambda (x)(list x (+(cadr(vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint x)))) (cadr(vlax-safearray->list (vlax-variant-value (vla-get-TextAlignmentPoint x))))))) (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr(ssnamex dtSet))))) (function(lambda(a b)(>(cadr a)(cadr b))))) tHeight(vla-get-Height (caar dtList)) insPoint(vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint (caar dtList)))) tAlignPt(vlax-safearray->list (vlax-variant-value (vla-get-TextAlignmentPoint (caar dtList)))) tAlignment(vla-get-Alignment (caar dtList)) dtList(cdr dtList) disDelta 0.0 ); end setq (if(= dali:disMode "S")(setq dali:strDis(* 1.6668 tHeight))) (foreach str dtList (if (not (vl-catch-all-error-p (vl-catch-all-apply 'texAlign (list str)))) (princ) (setq errFlag T) ); end if ); end foreach (if errFlag(princ "\n*** Some objects on Locked Layer ***")) ); end progn (princ "\nString isn't selected. ") ); end if (princ) ); end of dalign
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Приемы работы → Текст (MTEXT) и шрифты → Как выровнять однострочный текст по вертикали?
Форум работает на PunBB, при поддержке Informer Technologies, Inc