谁能把下面代码加入天正的字
下面代码,不支持天正的文字,天正的文字是TCH_TEXT;;;;;;文字内容匹配
(defun c:nrpp ()
(command "undo" "begin")
(setq ent1 (entsel "select text origin:"))
(princ "select text to modify:")
(setq ent_ss (ssget '((-4 . "<OR")
(-4 . "<AND")
(0 . "TEXT")
(-4 . "AND>")
(-4 . "<AND")
(0 . "mtext")
(-4 . "AND>")
(-4 . "OR>")
)
)
)
(setq ent_list1 (entget (car ent1))
n 0
ent_len (sslength ent_ss)
)
(while (< n ent_len)
(setq ent_list2 (entget (ssname ent_ss n)))
(setq ent_list2
(subst (assoc '1 ent_list1)
(assoc '1 ent_list2)
ent_list2
)
)
(entmod ent_list2)
(setq n (1+ n))
)
(command "undo" "end")(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;文字方向匹配(jdpp)
(defun c:jdpp (/ smd gmd ent text_ang ent_list)
(setq smd (getvar "snapmode")
gmd (getvar "gridmode")
)
(command "snapmode" "0")
(command "gridmode" "0")
(princ "\n选择源物体:")
(command "ucs" "ob" pause)
(setvar "UCSICON" 0)
(if (setq ent (entsel "选择目标文字:")
)
(progn
(setq text_ang (angle '(0 0 0) (getvar "UCSXDIR")))
(while (> text_ang (/ pi 2)) (setq text_ang (- text_ang pi)))
(setq ent_list (entget (car ent)))
(setq ent_list (subst (cons 50 text_ang)
(assoc '50 ent_list)
ent_list
)
)
(entmod ent_list)
)
)
(setvar "UCSICON" 1)
(command "ucs" "p")
(setvar "snapmode" smd)
(setvar "gridmode" gmd)
(princ)
) (0 . "TEXT")换成(0 . "*TEXT") 本帖最后由 print1985 于 2012-8-1 22:02 编辑
天正文字不能用修改组码的方式来改,否则cad会崩溃
只能用VL函数修改
yjr111 发表于 2012-8-1 20:12 static/image/common/back.gif
(0 . "TEXT")换成(0 . "*TEXT")
你的方法我试过,这样改后,可以在低版本cad上使用,但是高版本的例如2012版的cad,只要运行,就崩溃了,连保存的机会都没 print1985 发表于 2012-8-1 21:08 static/image/common/back.gif
天正文字不能用修改组码的方式来改,否则cad会崩溃
只能用VL函数修改
你的这个程序非常好,只可惜,我最想要的是角度匹配功能 本帖最后由 lshpool 于 2012-8-3 09:09 编辑
这个程序不支持天正文字,但对自定义坐标系的角度匹配也支持,如果你加上自动让文字和线段保持一定的距离就好了
这个程序,不仅仅支持文字,还支持块都其他图元
缺点1不能让文字自动和线保持一定距离2不能多选3不支持天正
;;;;文字方向匹配
(defun c:FX (/ smd gmd ent text_ang ent_list)
(setq smd (getvar "snapmode")
gmd (getvar "gridmode")
)
(command "snapmode" "0")
(command "gridmode" "0")
(princ "\n选择源物体:")
(command "ucs" "ob" pause)
(setvar "UCSICON" 0)
(if (setq ent (entsel "选择目标文字:")
)
(progn
(setq text_ang (angle '(0 0 0) (getvar "UCSXDIR")))
(while (> text_ang (/ pi 2))
(setq text_ang (- text_ang pi))
)
(setq ent_list (entget (car ent)))
(setq ent_list (subst (cons 50 text_ang)
(assoc '50 ent_list)
ent_list
)
)
(entmod ent_list)
)
)
(setvar "UCSICON" 1)
(command "ucs" "p")
(setvar "snapmode" smd)
(setvar "gridmode" gmd)
(princ)
)
页:
[1]