由于是矩形,输入对角点就可以。
另外两点就可以计算出来。autolisp代码如下:
123456789101112131415(defun c:tes ( / &p1 &p2 &p3 &p4 &ss1 x) (if (and (setq &p1 (getpoint "\n请输入第一个对角点")) (setq &p1 (trans &p1 1 0));转换坐标系 (setq &p3 (getpoint &p1 "\n请输入第二个对角点")) (setq &p3 (trans &p3 1 0));转换坐标系 );适合任何坐标系绘制矩形 (progn (setq &p2 (list (car &p1) (cadr &p3)) &p4 (list (car &p3) (cadr &p1))) (setq &z1 (caddr &p1));Z坐标 (setq &ss1 (mapcar '(lambda (x) (cons 10 x)) (list &p1 &p2 &p3 &p4))) (entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 38 &z1)) &ss1)) ) ) (princ))