求修改角度匹配的工具
本帖最后由 lshpool 于 2012-12-25 18:30 编辑下面的这个工具,对自定义坐标系下的文字旋转,旋转后,有时候文字是倒栽头的,求修改,另外这个程序,在高版本cad中不支持天正的文字求救
或者哪个高手,在 (entmod ent_list)后面加上一段程序,可以实现按下空格键,文字旋转180度,其他键不旋转
(defun c:JDPP (/ smd gmd ent text_ang ent_list)
(command "undo" "begin")
(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)
(command "undo" "end")(princ)
)
本帖最后由 lshpool 于 2013-1-2 13:23 编辑
37107054
(defun c:JDPP (/ smd gmd ent text_ang ent_list)
(command "undo" "begin")
(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)
)
)
(setq p1 (getvar "LASTPOINT"))
(PRINC "\n 空格键旋转180度:")
(SETQ KeyList '(32))
(WHILE (and(/= (SETQ n (CADR (GRREAD))) 13)
(MEMBER n KeyList))
(COND
((= n 32)(COMMAND "ROTATE" ent "" p1 180)(PRINC "\r< 空格 转180度,其他键退出>"))
)
);WHILE
(setvar "UCSICON" 1)
(command "ucs" "p")
(setvar "snapmode" smd)
(setvar "gridmode" gmd)
(command "undo" "end")(princ)
)
在cad高版本中,2010以上版本中,程序执行到 (entmod ent_list)
系统就崩溃了,不知道什么原因
页:
[1]