跪求快速绘制一个图形的autolisp的源代码

只要输入左下角的一个点和矩形长度宽度自行生成这个图形。
要求有距离分别为2的倒角,不同线层的中心线和两个圆,圆心分别在长度的4等分点处。
追加悬赏!!!!

(defun C:tes ( / &dis1 &dis2 &dis3 &p1 &p2 &p3 &p4 &p5 &p6 &p7 &p8 &ss1 tc1 tc2 x)
 (if (and (setq tc1 (entsel "\n请选择中心线参考图层"))
          (setq tc2 (entsel "\n请选择圆的参考图层"))
          (setq &p1 (getpoint "\n请输入第一点"))
          (> (setq &dis1 (getdist &p1 "\n请输入长度")) 4)
          (> (setq &dis2 (getdist &p1 "\n请输入高度")) 4)
          (> (setq &dis3 (getdist &p1 "\n请输入圆半径")) 0)
     )
     (progn
      (setq &ss1 '() tc1 (assoc 8 (entget (car tc1))) tc2 (assoc 8 (entget (car tc2))))
      (setq &p2 (polar &p1 0 2) &ss1 (cons &p2 &ss1) &p2 (polar &p2 0 (- &dis1 4)) &ss1 (cons &p2 &ss1)
            &p2 (polar &p2 (* pi 0.25) (* 2 (expt 2 0.5))) &ss1 (cons &p2 &ss1)
            &p2 (polar &p2 (* pi 0.5) (- &dis2 4)) &ss1 (cons &p2 &ss1)
            &p2 (polar &p2 (* pi 0.75) (* 2 (expt 2 0.5))) &ss1 (cons &p2 &ss1)
            &p2 (polar &p2 pi (- &dis1 4)) &ss1 (cons &p2 &ss1)
            &p2 (polar &p1 (* pi 0.5) (- &dis2 2)) &ss1 (cons &p2 &ss1)
            &p2 (polar &p1 (* pi 0.5) 2) &ss1 (cons &p2 &ss1);多段线点集合
            &p2 (polar &p1 0 (* &dis1 0.25)) &p2 (polar &p2 (* pi 0.5) (* &dis2 0.5));圆心1
            &p1 (polar &p2 0 (* &dis1 0.5));圆心2
            &p3 (polar &p2 pi (* &dis1 0.5)) &p4 (polar &p1 0 (* &dis1 0.5));中心线
            &p5 (polar &p2 (* pi 0.5) (* &dis2 0.75)) &p6 (polar &p2 (* pi 1.5) (* &dis2 0.75))
            &p7 (polar &p5 0 (* &dis1 0.5)) &p8 (polar &p6 0 (* &dis1 0.5))
       )
       (entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 90 (length &ss1)) '(70 . 1)) (mapcar '(lambda (x)(cons 10 x)) &ss1 )));多段线绘制
       (entmake (list '(0 . "CIRCLE") tc2 (cons 10 &p2) (cons 40 &dis3)));圆绘制
       (entmake (list '(0 . "CIRCLE") tc2 (cons 10 &p1) (cons 40 &dis3)))
       (entmake (list '(0 . "LINE") tc1 (cons 10 &p3) (cons 11 &p4)));直线绘制
       (entmake (list '(0 . "LINE") tc1 (cons 10 &p5) (cons 11 &p6)))
       (entmake (list '(0 . "LINE") tc1 (cons 10 &p7) (cons 11 &p8)))
      )
 )
 (prin1)
);复制到记事本,以【.lsp】为后缀命名,autolisp加载后,命令为【TES】

;1.没有明确给出中心线图层;2.没有给出圆图层;3.没有给出圆半径

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答