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

只要输入左下角的一个点和矩形长度宽度自行生成这个图形。要求有距离分别为2的倒角,不同线层的中心线和两个圆,圆心分别在长度的4等分点处。追加悬赏!!!!... 只要输入左下角的一个点和矩形长度宽度自行生成这个图形。
要求有距离分别为2的倒角,不同线层的中心线和两个圆,圆心分别在长度的4等分点处。
追加悬赏!!!!
展开
 我来答
朱06CAD
2015-07-03 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18068
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(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.没有给出圆半径

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式