下载之家:安全、高速、放心的绿色下载站!

当前位置:首页软件下载应用软件详细列表

LispLink Autolisp程序编写工具 V16.03

LispLink Autolisp程序编写工具 V16.03
  • 软件分类: 应用软件
  • 软件大小: 0.92 MB
  • 软件语言: 简体中文
  • 授权方式: 免费软件
  • 运行环境: Win ALL
  • 更新时间: 2023-08-03
  • 软件介绍
  • 下载地址
  • 同类推荐
  • 相关文章

LisPlink是一种技术,它可以帮助企业和个人轻松地创建、管理和自动化复杂的分布式应用程序。LisPlink使用一种叫做“链接”的概念,将多个云端服务或者数据存储连接在一起,从而实现共享数据、合作实时通信、自动化工作流以及其他复杂的工作流。LisPlink也可以用于监控大量数据并根据特定标准进行分类,这样就能够快速识别出特征性信号并对其进行相应的响应。

Autolisp是一款由autodesk开发的一种叫做LISP的程序语言,全称是List Processor,通过这款软件工程师们能够节省很多的时间在CAD工具的制作上,这样工程师们就有足够多和好的工具来帮助自己进行工程的设计。

LispLink Autolisp程序编写工具 V16.03

软件特点

1、Autolisp语言是在普通的LISP语言基础上,又扩充了许多适用于CAD应用的功能而形成的一种程序设计语言。它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存。例如:

(setq i 1);就是代码i值是1

(command "CIRCLE" '(0 0) 100);命令在坐标原点绘制半径100的圆。

2、Autolisp语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行Autolisp程序就是执行一些函数,再调用其它函数。例如:

(setq pt1 (getpoint "n请选择圆心插入点"))

(command "CIRCLE" pt1 100);命令这个插入点绘制圆,半径为100

3、Autolisp把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。

例如:一条直线,起点坐标'(0 0),端点坐标'(1000 0),图层为0层,颜色为1【红色】这个是一条直线的一些数据,怎么执行变为程序代码如下:

(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))

以上可以直观的看数据,也可以粘贴到AutoCAD的命令行,就绘制出以上要求的直线。

4、Autolisp语言中程序运行过程就是对函数求值的过程,是在对函数求值的过程中实现函数的功能。在AutoCAD里面,所有的对象可以看成是由无数的点构成,每个点都有自己的坐标,函数的运行就是计算出这些点的数值,根据得到的数值进行判断。

5、Autolisp语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。例如:

(setq &k1 (entsel));选择对象

(setq &k1 (car &k1));提取图元

(setq #g1 (entget &k1));取得属性列表

(setq c0 (cdr (assoc 0 #g1)));取得图元名称

以上是一个个的写下来,可以写成以下:

(setq c0 (cdr (assoc 0 (entget (car (entsel))))));简单易懂

6、由于Autolisp简单,容易,所以上手很快。编写程序后,可以大大的提高绘图效率,有名的【天正】插件,就是绘图的好帮手。

7、Autolisp程序也有不足的地方,如提取坐标,这个只能在图元属性里面提取,这样的话会有局限性,法向坐标1与-1的坐标值相同,但是图形的位置不同,造成计算坐标的困难,所以提取坐标值,最好使用VLAX函数来提取。

使用说明

把Autolisp代码存储在文件当中

实际上,Autolisp文件就是以lsp为后缀的ASCII码文本文件。打开windows自带的记事本(或者任何的文本编辑器,例如notepad++,UltraEdit和sublime等),在文件中输入如下代码:

LispLink Autolisp程序编写工具 V16.03

在Autolisp程序中,在分号;后面的内容均为批注,程序不做处理。适当的增加批注,将使程序更具有可读性。

保存文件并将文件命名为testline.lsp。(文件名可以是任何允许的文件名,有汉字也没问题,但是后缀一定是lsp)。打开AutoCAD,在命令提示框中输入命令:

LispLink Autolisp程序编写工具 V16.03

在弹出的对话框中,选择刚刚创建的文件,点击加载,如果出现安全提示,请选择始终加载或加载一次。如下图:

LispLink Autolisp程序编写工具 V16.03

加载/卸载应用程序

LispLink Autolisp程序编写工具 V16.03

安全提示

此时在命令提示框中出现:

已成功加载 testline.lsp

关闭加载/卸载应用程序对话框。Autolisp程序就加载成功了。然后输入命令:

LispLink Autolisp程序编写工具 V16.03

此后,你定义的函数就开始工作了。每次调用命令的时候都要输入圆括号,还是有点不方便,能不能去掉呢?肯定可以!只需对原代码进行小小的修改——在testline前面加上c:即可。

LispLink Autolisp程序编写工具 V16.03

重新加载这个程序,在AutoCAD中输入命令:

LispLink Autolisp程序编写工具 V16.03

是不是感觉好多了。如果你是个处女座,你可能会发现,每次运行命令结束后,在命令提示框中会出现一个烦人的nil。如图所示:

LispLink Autolisp程序编写工具 V16.03

烦人的nil

为了去掉这个nil,Autolisp提供了(princ)函数。最后这个程序变成了以下的样子:

LispLink Autolisp程序编写工具 V16.03

再试一次,是不是感觉清爽多了。

在本例中,defun定义了一个Autolisp函数,函数名为testline,函数名前面的c:表示这个函数名可以像AutoCAD命令一样直接调用。下面一个小节将会详细介绍defun的用法。

函数的定义(defun)

使用defun可以在Autolisp程序中定义一个函数,其格式为:

(defun [函数名] ([全局变量1] [全局变量2] .../ [局部变量1] [局部变量2]) [表达式1] [表达式2] ...)

是不是有点懵,感觉乱七八糟的。在Autolisp程序中,换行跟空格的作用是一样的,多个空格也相当于一个空格。这样我们就可以合理的使用缩进和换行让代码更加清晰有条理。

一般的,我们常常把函数写成以下的样子:

LispLink Autolisp程序编写工具 V16.03

defun这个函数至少需要三个参数。第一个参数是要定义的函数的名称——[函数名]。第二个参数是变量表,变量表由全局变量和局部变量组成(全局变量和局部变量之间要用斜杆/将他们分隔开),变量表可以为空表()。第三个参数是表达式,一个函数至少要有一个表达式。

[函数名] :如果函数名以'c:'开头,表示注册一个AutoCAD命令,即在命令提示框中直接输入函数名就可以直接调用这个函数(就像AutoCAD本身自己的命令一样)。

[变量表]:局部变量在函数执行完毕后就被释放,而全局变量在函数执行完毕后依然存在。

[表达式]:当函数被调用时,表达式的内容将被执行。表达式实际上就是表。

值得注意的是,最后一个表达式的结果将作为函数的返回值。

举个例子:

LispLink Autolisp程序编写工具 V16.03

1、它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存。例如:

(setq i 1);就是代码i值是1

(command "CIRCLE" '(0 0) 100);命令在坐标原点绘制半径100的圆。

2、Autolisp语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行Autolisp程序就是执行一些函数,再调用其它函数。例如:

(setq pt1 (getpoint "n请选择圆心插入点"))

(command "CIRCLE" pt1 100);命令这个插入点绘制圆,半径为100

3、Autolisp把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。

例如:一条直线,起点坐标'(0 0),端点坐标'(1000 0),图层为0层,颜色为1【红色】这个是一条直线的一些数据,怎么执行变为程序代码如下:

(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))

以上可以直观的看数据,也可以粘贴到AutoCAD的命令行,就绘制出以上要求的直线。

4、Autolisp语言中程序运行过程就是对函数求值的过程,是在对函数求值的过程中实现函数的功能。在AutoCAD里面,所有的对象可以看成是由无数的点构成,每个点都有自己的坐标,函数的运行就是计算出这些点的数值,根据得到的数值进行判断。

5、Autolisp语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。例如:

(setq &k1 (entsel));选择对象

(setq &k1 (car &k1));提取图元

(setq #g1 (entget &k1));取得属性列表

(setq c0 (cdr (assoc 0 #g1)));取得图元名称

以上是一个个的写下来,可以写成以下:

(setq c0 (cdr (assoc 0 (entget (car (entsel))))));简单易懂

6、由于Autolisp简单,容易,所以上手很快。编写程序后,可以大大的提高绘图效率,有名的【天正】插件,就是绘图的好帮手。

7、Autolisp程序也有不足的地方,如提取坐标,这个只能在图元属性里面提取,这样的话会有局限性,法向坐标1与-1的坐标值相同,但是图形的位置不同,造成计算坐标的困难,所以提取坐标值,最好使用VLAX函数来提取。

下载声明

推荐使用[迅雷]下载,使用 [360压缩]解压本站软件。

本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。

本站提供的[LispLink Autolisp程序编写工具 V16.03]资源来源互联网,版权归该下载资源的合法拥有者所有。