本帖最后由 ucuc2003 于 2013-5-29 05:11 编辑
 - ;这是一个版主的大作,我做了点改动。程序和你的有点相似。是哪位版主的我忘记了,感谢这位版主!
- (defun c:zhj (/ w p1 p2 ang )
- (setvar "cmdecho" 0)
- (setvar "osmode" 1023)
- (princ "绘矩形")
- (if *H_JX*
- (setq H_JX (getdist (strcat "\n输入宽度<" (rtos *H_JX* 2 4) ">:")))
- (setq H_JX (getdist "\n输入宽度:"))
- )
- (if (not H_JX) (setq H_JX *H_JX*) (setq *H_JX* H_JX))
- (setq w H_JX)
- (princ "\n输入")
- (while (and
- (setq p1 (getpoint "第一点:"))
- (setq p2 (getpoint p1 "\n第二点:"))
- )
- (setq ang (angle p1 p2) l (distance p1 p2))
- (entmake
- (list
- '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- '(90 . 4)
- '(70 . 1)
- '(43 . 0.0)
- '(38 . 0.0)
- '(39 . 0.0)
- (cons 10 (trans (setq p(polar p1 (+ ang (* 0.5 pi)) (* 0.5 w))) 1 0))
- (cons 10 (trans (setq p (polar p ang l)) 1 0))
- (cons 10 (trans (setq p (polar p (- ang (* 0.5 pi)) w)) 1 0))
- (cons 10 (trans (setq p (polar p (+ pi ang) l)) 1 0))
- )
- )
- (princ "\n**继续输入")
- )
- (princ)
- );defun
|