本帖最后由 zhynt 于 2011-6-28 10:40 编辑

- (defun c:ty ()
- (setq ss (entsel "\n选择图形:"))
- (setq ent (entget (car ss)))
- ;;;获取矩形顶点表
- (setq ptlist (vl-remove-if '(lambda (x) (/= 10 (car x))) ent))
- (setq ptlist (mapcar 'cdr ptlist))
- (setq ptlist
- (vl-sort ptlist
- (function
- (lambda (e1 e2)
- (< (car e1) (car e2))
- )
- )
- )
- )
- (setq xmin (car (car ptlist)))
- (setq ptlist
- (vl-sort ptlist
- (function
- (lambda (e1 e2)
- (< (cadr e1) (cadr e2))
- )
- )
- )
- )
- (setq ymin (cadr (car ptlist)))
- (setq ptlist
- (vl-sort ptlist
- (function
- (lambda (e1 e2)
- (> (car e1) (car e2))
- )
- )
- )
- )
- (setq xmax (car (car ptlist)))
- (setq ptlist
- (vl-sort ptlist
- (function
- (lambda (e1 e2)
- (> (cadr e1) (cadr e2))
- )
- )
- )
- )
- (setq ymax (cadr (car ptlist)))
- (setq pta (list xmin ymin)
- ptb (list xmax ymax)
- )
- (setq ptc (list xmin ymax)
- ptd (list xmax ymin)
- )
- (setq h (getreal "\n高度:"))
- (setq pt1 (polar ptb (/ (* 34.0 pi) 180) (* 1.5 h))
- pt2 (polar ptd (/ (* 34.0 pi) 180) (* 1.5 h))
- pt3 (polar ptc (/ (* 146.0 pi) 180) (* 1.5 h))
- pt4 (polar pta (/ (* 146.0 pi) 180) (* 1.5 h))
- pt5 (polar ptc (/ pi 2) (* 1.5 h))
- pt6 (polar ptb (/ pi 2) (* 1.5 h))
- )
- (command "pline" "non" pta ptd pt2 pt1 "A" "ce" ptb pt6 "L" pt5 "A" "ce" ptc pt3 "L" pt4 "C")
- )
|