怎么应用autolisp画出如下图案? 10

 我来答
干笛29
2014-01-22 · TA获得超过1.5万个赞
知道大有可为答主
回答量:2.5万
采纳率:72%
帮助的人:3450万
展开全部
也许我可以给你一条写LISP的思路,具体怎么写,你自己去想:
1,设定左下角为基点,所在的圆直径为A
2,圆之间的距离默认设定为A,也可以自定,但不小于A
3,圆之间的递减量设定默认为B,也可以自定,
4,A/B取整就是向右画圆的数量
5,调用画圆命令把圆画出来
.
.
.
.
或者你也可以用另外更好的方式,展开你的想象吧...
朱06CAD
2014-12-23 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18085
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun C:ZX72 ( / #k1 #os1 %k1 %k2 @p1 @p2 l1 r1 r2)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (setq #os1 (getvar "osmode"))
 (setq @p1 (getpoint "\n请选择基点") #k1 nil)
 (if (/= @p1 nil)
  (progn
   (setq R1 (getdist @p1 "\n请输入基点圆半径"))
   (if (and (/= R1 nil) (> R1 0))
    (progn
     (setq L1 (getdist @p1 "\n请输入圆心距离"))
     (if (and (/= L1 nil) (> L1 0))
      (progn
       (setq %k1 (getint "\n请输入大于1个水平个数"))
       (if (and (/= %k1 nil) (> %k1 1))
        (progn
         (setq %k2 (getint "\n请输入大于1个垂直个数"))
         (if (and (/= %k2 nil) (> %k2 1))
          (progn
           (setq #k1 (getdist "\n请输入圆缩小的倍数"))
          )
         )
        )
       )
      )
     )
    )
   )
  )
 )
 (if (and (/= #k1 nil) (> #k1 0));如果所有的数据都有输入就绘制
  (progn
   (setvar "osmode" 0);关闭捕捉
   (repeat %k2
    (command "circle" @p1 R1);绘制基点圆
    (setq @p2 (polar @p1 0 L1));第二点位置
    (setq R2 (* R1 #k1) R1 R2);第二个圆半径按比例缩小
    (repeat (- %k1 1);由于第一个圆已经绘制,所以绘制数量少一个
     (command "circle" @p2 R2);绘制圆
     (setq @p2 (polar @p2 0 L1));下一点位置
     (setq R2 (* R2 #k1));下一个圆半径
    )
    (setq @p1 (polar @p1 (* pi 0.5) L1));垂直方向下一个圆心位置
   )
   (setvar "osmode" #os1);还原捕捉设置
  )
 )
 (prin1)
);复制到记事本,以【ZX72.lsp】命名,加载autoLISP到AutoCAD,命令:【ZX72】

;写了一个,你试试!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式