文本对齐方式
您好,大家好,有没有人有一条路线可以将文字/多行文字/属性安排并对齐在我想要在侧面或中间拾取的任何位置(如图所示)通过选择所有文本,我需要将其左对齐、中对齐或右对齐,这样我们就无法通过文本对齐来吸引眼球。请
谢谢大家
这应该适用于多行文字和文字:
(defun c:talign(/ ss pt tmp elst)
(vl-load-com)
(or tal:def (setq tal:def "Left"))
(if (and (setq ss (ssget '((0 . "*TEXT"))))
(setq pt (getpoint "\nSelect Alignment Point: ")))
(progn
(initget "Left Middle Right")
(setq tmp (getkword (strcat "\nAlignment? <" tal:def ">: ")))
(or (not tmp) (setq tal:def tmp))
(foreach elst(mapcar 'entget
(vl-remove-if 'listp
(mapcar 'cadr (ssnamex ss))))
(cond ((eq "TEXT" (cdr (assoc 0 elst)))
(setq elst (mod 10 (list (car pt)
(caddr (assoc 10 elst))
(cadddr (assoc 10 elst))) elst))
(mod 72 (cond ((eq tal:def "Left") 0)
((eq tal:def "Middle") 1)
((eq tal:def "Right") 2))
(mod 11 (cdr (assoc 10 elst)) elst)))
((eq "MTEXT" (cdr (assoc 0 elst)))
(setq elst (mod 10 (list (car pt)
(caddr (assoc 10 elst))
(cadddr (assoc 10 elst))) elst))
(mod 71 (cond ((eq tal:def "Left") 1)
((eq tal:def "Middle") 2)
((eq tal:def "Right") 3)) elst)))))
(princ "\n<!> No Text Selected <!>"))
(princ))
(defun mod (code val elst)
(entmod
(subst
(cons code val)
(assoc code elst) elst)))
谢谢李,功能很好,只是我不能在UCS旋转平面上使用,它跳出文本,可以修复它,再次感谢 试一试,应该与UCS合作(希望如此!)
(defun c:talign(/ ss pt tmp elst)
(vl-load-com)
(or tal:def (setq tal:def "Left"))
(if (and (setq ss (ssget '((0 . "*TEXT"))))
(setq pt (getpoint "\nSelect Alignment Point: ")))
(progn
(setq pt (trans pt 1 0))
(initget "Left Middle Right")
(setq tmp (getkword (strcat "\nAlignment? <" tal:def ">: ")))
(or (not tmp) (setq tal:def tmp))
(foreach elst(mapcar 'entget
(vl-remove-if 'listp
(mapcar 'cadr (ssnamex ss))))
(cond ((eq "TEXT" (cdr (assoc 0 elst)))
(setq elst (mod 10 (list (car pt)
(caddr (assoc 10 elst))
(cadddr (assoc 10 elst))) elst))
(mod 72 (cond ((eq tal:def "Left") 0)
((eq tal:def "Middle") 1)
((eq tal:def "Right") 2))
(mod 11 (cdr (assoc 10 elst)) elst)))
((eq "MTEXT" (cdr (assoc 0 elst)))
(setq elst (mod 10 (list (car pt)
(caddr (assoc 10 elst))
(cadddr (assoc 10 elst))) elst))
(mod 71 (cond ((eq tal:def "Left") 1)
((eq tal:def "Middle") 2)
((eq tal:def "Right") 3)) elst)))))
(princ "\n<!> No Text Selected <!>"))
(princ))
(defun mod (code val elst)
(entmod
(subst
(cons code val)
(assoc code elst) elst)))
您好,李多一点,文字现在不是到处乱扔:)只是它不会垂直对齐,它只是根据倾斜于UCS的Y轴对齐,请参见图片谢谢您的辛勤工作,李,
你确定要试用新版本吗这对我来说很好
尝试关闭并重新打开图形,重新加载例程并再次测试。 是的,没问题,李,我有一个主意,我将如何在不使用UCS的情况下使用我们,我将设置为在布局选项卡上而不是在模型选项卡上使用文本,我将仅使用模型选项卡进行工作图形(平面图和布局),
如果文本在布局选项卡上完成,我将使用“talign.Lsp”对齐文本,然后命令“CHSPACE”并选择所有文本和引线以及presto!!文本被传输到不影响文本对齐的模型。。
谢谢李的Lisp程序。。 没问题伙计
页:
[1]