教程:入门 (AutoLISP)

文章来源:教程:入门 (AutoLISP) - 基础教程 - CADN - 中文CAD开发文档,CAD二次开发问题交流,优秀插件分享

使用 AutoLISP 编程语言创建自定义例程是自动化 AutoCAD 并将其扩展到您想要的工作方式的绝佳方法。

AutoLISP基于LISP(LISt Processing)编程语言。列表是用括号括起来的结构。列表中的元素可以是以下一项或多项:

  • 编程操作、数学函数或列表操作等函数
  • AutoCAD 命令或系统变量名称、文本字符串、整数或实数或坐标等值
  • 另一个列表

通常,列表中的第一个元素是函数的名称,以下元素称为参数,它们提供函数将处理的值。

下面显示了用于 AutoLISP 表达式的语法:

<span style="color:#000000"><span style="background-color:#ffffff">(function_name <em id="GUID-C64046FA-CD9E-4B38-9967-A501119E4A62__GUID-3CD53218-86D1-41BD-B3F0-DBB44EC0F974">[argument1 argumentX …]</em>)</span></span>

AutoCAD 帮助系统包含可在 AutoLISP 程序中使用的可用功能的列表。每个函数主题都包含有关

  • 如何使用函数,
  • 函数期望的数据类型和参数数,
  • 哪些参数是可选的
  • 函数返回的数据类型。

大多数函数主题还包括示例代码,以帮助您开始使用该函数。

乍一看,AutoLISP 表达式在程序中使用的语法可能令人生畏,但只要稍加练习和时间,您就会习惯它。除了以 a(左括号)开头的 AutoLISP 表达式之外,表达式也可以以字符开头。(感叹号)字符只能在 AutoCAD 命令提示符下使用,并用于返回 AutoLISP 变量的当前值。(!!

以下是 AutoLISP 表达式的一些示例:

  • (setq dRadius 1.25)
  • !dRadius
  • (command "circle" "0,0" dRadius)

嵌套表达式

随着 AutoLISP 程序复杂性的增加,您创建的表达式也会增加。AutoLISP 表达式可以嵌套在彼此内部。嵌套表达式时,始终从最内层的表达式到最外层的表达式计算它们。AutoLISP 表达式的求值过程类似于数学中的运算顺序。

以下是 AutoLISP 中嵌套数学表达式的示例:

<span style="color:#000000"><span style="background-color:#ffffff"><strong id="GUID-C64046FA-CD9E-4B38-9967-A501119E4A62__GUID-7D442F61-DF10-4D53-8B08-275E366A9897">(+ 0.01 (* 2 0.875))</strong></span></span>

在此示例中,首先计算最里面的表达式 (* 2 0.875)。这两个数字相乘,*(乘积或乘法)函数返回值 1.75。然后,AutoLISP 将外部表达式的计算结果为 (+0.01 1.75)。将两个数字相加后,AutoLISP 返回最终值 1.76。

以下是嵌套表达式的其他示例:

<span style="color:#000000"><span style="background-color:#ffffff"><strong id="GUID-C64046FA-CD9E-4B38-9967-A501119E4A62__GUID-2A2EA255-9D6B-4BC1-8C22-17D821A225C9">(setq nDist (getreal "\nEnter a distance: "))</strong></span></span>

该函数提示用户输入实际数值。然后将提供的值传递给函数并分配给用户定义的变量。getrealsetqnDist

<span style="color:#000000"><span style="background-color:#ffffff"><strong id="GUID-C64046FA-CD9E-4B38-9967-A501119E4A62__GUID-83394DB6-AFDF-47BA-99E6-457AEA1CBFD1">(alert (strcat "Welcome " "to " "AutoLISP!"))</strong></span></span>

该函数将所有字符串组合成一个字符串值。然后将函数返回的值传递给函数并显示在消息框中。strcatstrcatalert

在 AutoCAD 命令提示符下使用 AutoLISP 表达式

  1. 在命令提示符下,输入!dRadius

    AutoLISP 返回存储在用户定义变量中的值。如果变量尚未定义或没有值,则返回值 ofis。dRadiusnil

  2. 在命令提示符下,输入(setq dRadius 1.25)。

    AutoLISP 创建一个名为的用户定义变量,并为其赋值 1.25。该函数返回值 1.25,这是分配给变量的值。dRadiussetq

  3. 在命令提示符下,输入!dRadius

    AutoLISP 返回存储在用户定义变量中的值,该值为 1.25。

  4. 在命令提示下,输入(命令“._circle”“0,0”dRadius)。

    AutoLISP 启动 AutoCAD CIRCLE 命令,并向该命令传递两个值。值“0,0”用于定义圆中心点的位置,并用于指定圆的半径。由于值为 1.25,因此圆的半径设置为 1.25。dRadiusdRadius

  5. 在命令提示符下,输入 (setq pt (getpoint “\n指定圆的中心点: ”))。

    AutoLISP 会提示您输入坐标值。可以使用键盘输入坐标值,也可以在绘图区域中单击。提供的坐标值将分配给变量。pt

  6. 在命令提示符下,输入(命令“._circle”pt dRadius)。

    AutoLISP 启动 AutoCAD CIRCLE 命令,该命令使用分配给这两个变量的值。ptdRadius

文章来源:教程:入门 (AutoLISP) - 基础教程 - CADN - 中文CAD开发文档,CAD二次开发问题交流,优秀插件分享

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值