发一个不大也不小的问题【文字归位】?
问题提出:我们画图纸时候,用旋转命令,文字书写方式会出现变化,倒立得,反向位置的等等,为了解决这个问题,我写了个文字归正得程序。目前使用一切正常。如图:
程序如下:
[*];;【三领外挂】文字归正程序========
[*](defun c:SL-GZ (/ k ss ent entss ang p1 p2 p3 p4 txt1 box)
[*](princ "选择要修改的文字,可多选")
[*](setq ss (ssget '((0 . "*TEXT"))))
[*](setq k 0)
[*](repeat (sslength ss)
[*] (setq ent (ssname ss k))
[*] (command ".JUSTIFYTEXT" ent "" "M")
[*] (setq entss (entget ent))
[*] (setq ang (cdr(assoc 50 entss)))
[*] (if (and (>= ang (/ pi 2)) (<= ang pi)) ;;;;;第二象限
[*] (setq ang (+ pi ang ))
[*] )
[*] (if (and (> angpi) (<= ang (* 1.5 pi))) ;;;;;第三象限
[*] (setq ang (- ang pi))
[*] )
[*] (setq entss (subst (cons 50 ang) (assoc 50 entss) entss));;;;;实体表更新【角度】
[*] (entmod entss)
[*] (entupd ent)
[*] (command ".JUSTIFYTEXT" ent "" "L");;;;;;改回文字为左定位
[*] (setq k (1+ k))
[*])
[*](princ)
[*])
深一步得考虑:
反应器很不错,可惜我看了几天,没摸清个所以然,可否做个反应器,时刻监控文字的角度?或者时刻监控ROTATE 命令? 一旦发现文字角度改变,就归正它?
希望会反映器得高手,完善它。
本帖最后由 天宇飞翔12 于 2021-11-3 13:51 编辑
好用,谢谢 本帖最后由 尘缘一生 于 2021-11-3 12:30 编辑
天宇飞翔12 发表于 2021-11-3 12:19
; 错误: 输入中的点位置不正确
这可以说是古老部分了,早已变化改写。
[*];;选择集文字归正并左定位-----------(一级)-------------
[*](defun sl-wzgz (ss / n s0 tp)
[*](setq s0 (entlast))
[*](repeat (setq n (sslength ss))
[*] (setq nam (ssname ss (setq n (1- n))))
[*] (slwzgz nam)
[*])
[*](setq s0 (last_ent s0))
[*])
[*];;文字归正并左定位-----------(一级)-------------
[*](defun slwzgz (nam / ell pt ang h tx bi ly sty)
[*](setq ell (entget nam))
[*](setq pt (e-mid nam))
[*](setq ang (e-ang nam nil))
[*](if (setq tx (getstr nam))
[*] (progn
[*] (entdel nam)
[*] (cond
[*] ((or (= "TEXT" (dxf1 ell 0))(= "MTEXT" (dxf1 ell 0)))
[*] (setq h (dxf1 ell 40))
[*] (setq bi (dxf1 ell 41))
[*] (setq ly (dxf1 ell 8))
[*] (setq sty (dxf1 ell 7))
[*] (slmkwz tx pt (/ h slbl) ang bi ly sty nil "m")
[*] )
[*] (t
[*] (slmkwz tx pt nil ang nil nil nil nil "m")
[*] )
[*] )
[*] (setq ell (entget (setq nam (entlast))))
[*] (setq ell (emod (emod ell 72 0) 73 0))
[*] (entmod ell)
[*] (entupd nam)
[*] (setq nam (entlast))
[*] nam
[*] )
[*])
[*])
;;由于涉及集成部分,我实在无法提出来,看看模样,和思路吧,光 e-ang ,e-mid,getstr,就无法提出来,涉及三领设计全局变量,SLBL:比例系数罢了!
页:
[1]