AutoLisp演练(二)

一、自动绘制出多个等半径圆相切
  1.输入基准点baspt
  2.输入小圆半径rad
  3. 输入欲相切的圆的数量num
  4.自动绘制出多个等半径圆相切
  5. 涉及到相关变量,设定为baspt、rad、num、midpt、cenpt、kk、ang1、ang2

AutoLisp演练(二)_第1张图片

 二、程序代码实现

AutoLisp演练(二)_第2张图片

三、测试及效果

               AutoLisp演练(二)_第3张图片

      测试一

  AutoLisp演练(二)_第4张图片           AutoLisp演练(二)_第5张图片

四、程序优化与注意事项

  1. (setq ang1 (/ (* pi 2)(* num 2)))可直接写为(setq ang1 (/ pi num))

  2.  (setq kk (/ rad (sin ang1))) 利用三角关系可以推算

  3.  因为ang1+ang2=pi/2 所以(setq ang2 (- (/ pi 2)ang1))

        或(setq ang2 (-(* pi 0.5))ang1)

 4. Array命令后的七个自变量必须配合正常执行的顺序输入,必须严谨而不能打乱顺序(如下图)

AutoLisp演练(二)_第6张图片

所以用command函数调用Array命令

  需要注意以下书写

  ① command函数调用AutoCAD命令,一定要加双引号,如“circle” “array”

  ② 复选项一定要加双引号,如“L” “P” “Y”

  ③  用默认值,务必要加上连续两个双引号,如“”

  ④ (entlast)是Autolisp标准函数,可抓取画面中最后完成的对象,是很好用的技巧

 

 

 

 

 

 

你可能感兴趣的:(程序开发,测绘专栏,办公自动化,lisp)