如何使用AutoLISP语言例程

如何使用AutoLISP语言例程,第1张

AutoLISP语言是AutoCAD的内置的编程语言。 它可以用来创建新的命令或重新定义现有的。AutoLISP语言是一个非常强大的定制工具。本文旨在说明如何加载AutoLISP语言。

你可以复制和粘贴,如下面的例子,或者你可以下载一个*.LSP的文件。开始你需要使用记事本,  因为AutoLISP *.LSP的文件只迹敏是姿亏枝普通的文本文件。看其他人的编写的AutoLISP语言代码是一个很好的学习方法,网上有很多提供.LSP的文件下载的。

基本过程是非常简单,如下。 有3个主要步骤(或如果有*.LSP的文件空李仅仅需要2步),创建lisp文件,加载lisp文件和日常运行lisp程序。

注:AutoLISP语言例程将只在完整版本的AutoCAD运行,他们不会在AutoCAD LT版本运行。

创建lisp文件

复制程序代码并粘贴到Windows中的记事本。

(defun c:zone ( / ss la rv i tv op en)

(while (not ss)

(princ "\nPick any object on the required layer: ")

(setq ss (ssget)))

(initget "Length Area")

(setq rv (getkword "\nWould you like to measure Length/Area <Area>: "))

(and (not rv)

(setq rv "Area"))

(setq la (cdr (assoc 8 (entget (ssname ss 0))))

ss (ssget "X" (list (cons 0 "*POLYLINE")

(cons 8 la)))

i (sslength ss)

tv 0

op 0)

(while (not (minusp (setq i (1- i))))

(setq en (ssname ss i))

(command "_.AREA" "_E" en)

(cond ((= rv "Length")

(setq tv (+ tv (getvar "PERIMETER"))))

(T

(setq tv (+ tv (getvar "AREA")))

(if (/= (logand (cdr (assoc 70 (entget en))) 1) 1)

(setq op (1+ op))))))

(princ (strcat "\nTotal " rv

" for layer " la

" = " (rtos tv 2 2)

" in " (itoa (sslength ss)) " polylines\n"

(if (/= rv "Length")

(strcat (itoa op) " with open polylines") "")))

(prin1))

现在保存文件为zone.lsp,给予它适当的文件名,并确保它有一个.LSP的文件扩展名。

加载lisp文件

打开AutoCAD选择菜单Tools——AutoLISP——Load Application….d出对话框(如下图所示):

load unload apps

使用下面的 *** 作来加载已保存lisp文件:

找到该lisp文件已保存的文件夹。

从列表中选择所需的文件。

单击 Load按钮。如果一切顺利,将出现一条消息说“*.lsp成功载入”。

单击Close按钮关闭对话方块。

运行AutoLISP程序

一旦lisp文件被加载,它可以在命令行运行。在运行时只需输入命令的名称(而不是文件名)。在lisp文件中开始是 (defun c:zone ,所以在命令行输入zone。

CAD支持AutoLisp程序设计语言, AutoLisp代码可以在任意的文本编辑器中创建.不过AutoCAD也提供了Visual Lisp编辑器,可以支持语法高亮,调试编译什么的.打开Visual

Lisp编辑器有两种方式:

1.

AutoCAD2008及之前的版本,在菜单栏“工具(Tools)"下面,选择”AutoLisp"---->"Visual

Lisp编辑器".(”AutoLisp"---->"导入应用"这个命令是用来加载AutoLisp脚本的.

2.

AutoCAD2009及之后扮此的版本, 在功能区的”管理“选项卡里可以直接打开Visual Lisp编辑器。

首先,AutoLisp也是一个程序设计语言,作为一个编程语言,AutoLisp能做的很多:

扩充AutoCAD的原有命令。任何带有C:前缀的AutoLisp函数,在AutoCAD中都可厅歼迅以像"line"

"circle" "dim"等命令一样使用。

编写代码直接根据国标图库要求来绘出一些常用图库标准件什么的,或是代替人查找各种设计手册中的相关数据并继续使用。

进行参数化绘图,对于一些不特别复杂的系统,提供窄范围、大深度的专业设计自动化或者辅助系统,如发动机装配工具设计、纵使机主轴箱设计等。改老

以上这些功能都可以解决重复性劳动,前提是你得先学会AutoLisp编程语言.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12393906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存