文字原位转180度的程序。改为90度
(defun c:gfz (/cmn osnss i n ssn ssndata ssnsty pt ptmin ptmax cenpt*error* msg)
(defun *error* (msg)
(if
(wcmatch msg "; 错误:,函数被取消")
(progn
(setvar 'cmdecho cmn)
(setvar 'osmode osn)
(princ)
)
(princ msg)
)
)
(setq cmn (getvar 'cmdecho))
(setq osn (getvar 'osmode))
(setvar 'cmdecho 0)
(setvar 'osmode 0)
(princ"\n选择要原地反转的对象:")
(setq ss (ssget ))
(setq i 0)
(setq n (sslength ss))
(repeat n
(setq ssn (vlax-ename->vla-object (ssname ss i)))
(vla-GetBoundingBox ssn 'ptmax 'ptmin)
(setq pt (mapcar '(lambda (a b) (/ (+ a b) 2))
(vlax-safearray->list ptmax)
(vlax-safearray->list ptmin)
)
)
(vlax-invoke-method
ssn
'rotate
(vlax-3d-point pt)
pi
)
(setq i (1+ i))
)
(command "ucs" "")
(setvar 'cmdecho cmn)
(setvar 'osmode osn)
(princ "\n命令:GFZ")
(princ)
)
这是一个可以把文字原位转180度的程序,我想改为转90度,把pi改为(* pi 0.5)不行,请高手帮帮忙
可以转
1
检查修改后有没有重加载
2
检查原文字是否本身是90度
因为程序不是原角度+90
而是强制角度=90
3
(ssget)加对象过滤 masterlong 发表于 2015-9-29 15:06 static/image/common/back.gif
可以转
1
检查修改后有没有重加载
1,2都查了。没有问题,程序执行后的提示是:实参太多
3,不会,麻烦详细说说 (ssget '((0 . "text")))
ssget函数更多的用法
需要你自己学习
建议下个《AutoLisp Vlisp 函数.chm》
实参太多的错误
没办法帮你
因为我这里运行没问题 (defun c:tt ()
(setvar 'osmode 0)
(princ "\n选择要原地反转的对象: ")
(setq ss (ssget '((0 . "text")))
i-1
)
(repeat (sslength ss)
(setq ob (vlax-ename->vla-object (ssname ss (setq i (1+ i)))))
(vla-GetBoundingBox ob 'ptmax 'ptmin)
(setq pt (mapcar '(lambda (a b) (/ (+ a b) 2))
(vlax-safearray->list ptmax)
(vlax-safearray->list ptmin)
)
pt (vlax-3d-point pt)
)
(vlax-invoke-method ob 'rotate pt (* pi 0.5))
)
(princ)
) ;;;旋转文字图块
(defun c:xzwz(/ x k s n m en r)
(vl-load-com)
(setq x(getangle"\n输入需要旋转的角度<归0>:"))
(if(null x)(setq x 0 k nil) (setq k t))
(while
(setq s(ssget'((0 . "INSERT,text,mtext"))))
(if s
(progn
(setq n(sslength s)m 0)
(while(< m n)
(setq en(ssname s m)
m(1+ m))
(if k(setq r (+ (cdr(assoc 50 (entget en))) x))(setq r x))
(vla-put-Rotation (vlax-ename->vla-object en) r)
)))
)
(princ)
) 谢谢楼上的朋友。 香田里浪人 发表于 2015-9-30 07:35 static/image/common/back.gif
;;;旋转文字图块
(defun c:xzwz(/ x k s n m en r)
(vl-load-com)
这个程序再完善一下跟好,就是自动记住上次确定的转动角度,这样就不用每次都要再输入转动角度了
页:
[1]