细看涛生 发表于 2012-9-27 18:37 
平面的还能投影到XY平面吗?
看看是否满足您的需要
 - (defun l-ang(en / ent pt1 pt2 dis ang)
- (setq ent(entget en)
- pt1(cdr (assoc 10 ent))
- pt2(cdr (assoc 11 ent))
- dis(sqrt (+ (expt (- (car pt2) (car pt1)) 2)(expt (- (cadr pt2) (cadr pt1)) 2)))
- )
- (if (equal 0 dis 1e-8) (setq ang "90.0000")(setq ang (angtos (abs(atan(/ (- (caddr pt2)(caddr pt1)) dis)))0 4)))
- )
- (defun x_ssn (ss / n lst)
- (repeat (setq N (sslength ss))
- (setq LST (cons (ssname SS (setq N (1- N))) LST))
- )
- )
- (defun mid_l (en / )
- (mapcar '(lambda (x y) (/ (+ x y) 2))
- (cdr (assoc 11 (entget en)))
- (cdr (assoc 10 (entget en)))
- )
- )
- (defun t_mak (l_n t_10 t_11 t_t t_50 t_72 t_73 t_h t_w t_st /)
- (entmake (list '(0 . "text")
- '(100 . "AcDbEntity")
- (cons 8 l_n)
- '
- (100 . "AcDbText")
- (cons 10 t_10)
- (cons 1 t_t)
- (cons 40 t_h)
- (cons 41 t_w)
- (cons 7 t_st)
- (cons 72 t_72)
- (cons 11 t_11)
- (cons 50 t_50)
- (cons 73 t_73)
- )
- )
- )
- (defun c:test1 ( / ss t_h)
- (setq ss (ssget '((0 . "line"))))
- (setq t_h (getreal "\n输入字高:"))
- (mapcar '(lambda (t_t t_11)
- (t_mak "0" '(0 0 0) t_11 t_t 0 1 0 t_h 0.8 "standard")
- )
- (mapcar '(lambda (x) (strcat "与xy平面夹角" (l-ang x) "度"))
- (x_ssn ss)
- )
- (mapcar '(lambda (y) (mid_l y)) (x_ssn ss))
- )
- (princ)
- )
|