lshpool 发表于 2012-12-24 18:57:17

求修改角度匹配的工具

本帖最后由 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 12:53:30

本帖最后由 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)
)

lshpool 发表于 2013-1-2 13:21:20

在cad高版本中,2010以上版本中,程序执行到   (entmod ent_list)
系统就崩溃了,不知道什么原因
页: [1]
查看完整版本: 求修改角度匹配的工具