本帖最后由 434939575 于 2013-12-27 14:26 编辑
 - (defun c:tt();批量把图元旋转至水平、有问题、
- (princ " \n 点选图元 ")
- (setvar "CMDECHO" 0);_关闭命令提示
- (Setvar "osmode" 0);_关闭捕捉
- (Setq osmode_bak (getvar "osmode"));_记录捕捉
- (if (setq ss (ssget))
- (progn
- (setq i 0)
- (repeat (sslength ss)
- ;;;;;;;;;;;;;;;;;
- (setq ss0 (ssname ss i)
- en (entget ss0)
- i (1+ i)
- )
- ;-----------------------------------------------------------------------------------------------------------------------
- (progn
- (setq pt1 (cdr (nth 14 en)));调取pline的0点坐标。
- (setq pt2 (cdr (nth 18 en)));调取pline第1点坐标。
- (setq ang (angle pt1 pt2 ))
- ;;;;--------------pline的0点坐标--与1点坐标的角度------
- (setq ang-ok (angtos ang 0 4) )
- (setq angint(atof ang-ok));转弧度数据为实数角度值
- ;********************************************************
- ;;;;--------------pline的0点坐标--与1点坐标的中点------
- (setq long (distance pt1 pt2 ));两点间距离
- (setq pt12-cen (polar pt1 ang (/ long 2 )));中点
- ;*******************************************************
- (command "ROTATE" ss "" pt12-cen (- angint ) "");
- (and o_cmd (setvar "CMDECHO" o_cmd));恢复更改的变量值s
- (and o_os (setvar "osmode" o_os));恢复更改的变量值
- (princ)
- );progn
- ;---------------------------------------------------------------------------------------------------------------------------------
- ) ;repeat
- );progn
- );if
-
-
- )
|