AutoLisp极速入门视频教程笔录

合集下载

AutoLISP入门教程.doc

AutoLISP入门教程.doc

第 2 页,共 27 页
二、学好 AutoLISP 的关键:
充份掌握『语法结构』&『功能函数』的搭配!!! 其时这个关键亦是学习其它程 序语言的关键. 『语法结构』AutoLISP 的语法结构规定的并不多,变量不用事先定义及 宣告,读者可熟记下一单元有关重要的 AutoLISP 基本语法结构,十四条设 计上要求的『规则』 『功能函数』AutoLISP 之所以能功能如此强大,都有赖功能函数,其成员 共约 200 个: 1. 一般性函数 170 个 2. ADS 定义特殊函数 9 个 3. 配合 DCL 交谈框设计函数 22 个 各功能函数在使用上要求配合的运算子(自变量)型态,均有其规定,当然, 您可不 能乱给! 例如: 指令:(+ 1 2 3 "ABC") 传回:error : bad argument type (自变量型态错误) 因为『+』函数不接受字符串,而 "abc" 正是字符串 指令:(rtos "abc") 传回:error : bad argument type (自变量型态错误) 因为『rtos』函数只接受实数转字符串 详细内容可参考下一章『快速浏览 AutoLISP 功能函数』至于各功能函数详 细的语法与实例应用 ,读者请参阅本书『第三篇 AutoLISP 功能函数详解』
横 跨 各 作 业 悠 然 自 得 , 虽 然 AutoCAD 有 DOS 、 Windows 版 本 之 分 但 是 平台
D. 既然 AutoLISP 是 AutoCAD 的『最大功臣』,当然不会轻易被舍弃 ,如此, 您的学习,保证不会白费! E. 『精益求精』、『虚心求教』、『用心学习、观摩』、『决心成为高手』 3.对程序本身而言: A. 少少的几行,却可能有『大大满意』的时候!!! B. 充份掌握了控制、创造 AutoCAD 的『尚方宝剑』,让您在 AutoCAD 的设 计运作中『得心应手』,享受无比的快乐与成就感!!!

AutoLISP入门2 - AutoLISP 的关键、基本结构及语法

AutoLISP入门2 - AutoLISP 的关键、基本结构及语法
3: 运算元再往前提: kk = (- (+ 10.25 17) (/ 13.2 7))
4: 转换完成: (setq kk (- (+ 10.25 17) (/ 13.2 7)))
解法技巧 B :
1:运用『二分法、加括号』: (10.25 + (17 - (13.2 / 7)))
2:运算元往前提: kk = (+ 10.25 (17 - (13.2 / 7)))
自定函式:由设计者自行定义的新函式或副程式
1.2 运算子 ( 又称引数或元素 ) 包括 :
A.整数(Integer):如8,-17,500,9999 …
正常范围: 2的16次方,介于-32768 与+32767之间
特殊范围:若以float函数将其转为实 数,则范围2的32次方,介 于-2147483648与+2147483647之间
B.实数(Real):如8.5,-17.456 …
正常范围:带有小数点的数,精度可达 14位有效数字
C.字串(String):如"AutoCAD","123","Enter Real:","7.5", …
正常范围:以双引号内夹『字元』为认 定,字元数不受限制
D.串列(List):如("a" "b" "c"),(xy),(xyz), ("a" 8 3.5),....
(setq ffw (open "abc.txt" "w"))回 应<file:#34812>
G.选择群集代码:如<Selection set:1> 、 <Selection set:1> …

Autolisp基础教程

Autolisp基础教程

Autolisp基础教程单元一:AutoLISP主角潇洒登场一. AutoLISP 是何方神圣?1、AutoLISP是AutoCAD的最佳拍檔!2、AutoLISP内含于AutoCAD软件内,不用另外花钱买!3、AutoLISP是强化AutoCAD最好、最直接的『程序语言』!4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能!若说AutoLISP的出现,是替AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张!5、AutoLISP希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷!二. AutoLISP 程序语言的特质分析:学习AutoLISP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AutoLISP程序!语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,再加上AutoLISP可直接呼叫执行所有AutoCAD的指令,以及掌握运用所有的AutoCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT....等直译式程序:不用再作编译,『即写即测、即测即用』,马上可以在AutoCAD中响应效果,马上就有成就感!横跨各作业平台:悠然自得,虽然AutoCAD有DOS、Windows版本之分但是AutoLISP却可在不改写的原貌下,加载与执行!三.撰写AutoLISP 的动机?1、欲强化AutoCAD 原有指令时.2、欲创造更有用的AutoCAD 新指令.3、欲简化繁琐的环境设定或绘图步骤时.4、欲处理参数式绘图时.5、欲做图面资料读文件、写文件.6、欲做AutoCAD 演示文稿展示时.7、欲达到真正灵活掌控AutoCAD 时.8、欲提升自己跨上AutoCAD 高手列车时.四.AutoLISP 的效益评估?1. 对公司负责人或设计主管而言:A. 也许某员工或干部花了20个小时撰写一个AutoLISP程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沉思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,『用的愈久,省的愈多』!B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C. 千万不要因为您的不懂或压抑,SHOW您的权威与POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关AutoCAD 支持软件。

AUTOLisp教程

AUTOLisp教程

命令: (setq 32bit (float (* 3 30000)))
90000.0
字符串处理
AutoLISP 提供了如下处理字符串值的函数:
strcase strlen wcmatch
strcat substr
下列函数用于在字符串值和数字值之间相互转换(详细信息请参见转换函数)。
在命令行中输入文本时,AutoCAD 将该文本与内部的可用命令名列表作比较,以解释该文本。如果输入的文本与列表中的某项相匹配,AutoCAD 执行该命令。当 AutoCAD 接收到 AutoLISP 代码时,它将该代码传递给 AutoLISP 解释器。AutoLISP 解释器的核心是计算器。该计算器读取一行代码,对它求值,然后返回一个结果。代码必须符合 AutoLISP 表达式的格式要求,它可以从文件中读取,也可以由用户从 AutoCAD 命令行中输入。
30
常见错误是忽略了文本字符串中的双引号 (")。在这种情况下,右括号被解释为字符串的一部分,而不会对 n 产生影响。要改正此错误,可按 ESC 键取消该函数,然后重新输入正确的表达式。
虽然可以在命令行中输入 AutoLISP 代码,但在测试和调试 AutoLISP 代码时,从文件中加载 AutoLISP
~(按位非) expt lsh zerop
1+(增 1) fix max
1-(减 1) float min
关于每个数字处理函数的详细信息,请参见第十三章“AutoLISP 函数列表”。
除了在应用程序中执行复杂的数学计算以外,用户也可在日常使用 AutoCAD 时用数字处理函数来协助完成工作。例如要将一条直线按照长度为模数 *3.1415... 切分,而模数为 3,可在命令提示中使用 *(乘)函数。

AutoLISPVisualLISP教程学习教程

AutoLISPVisualLISP教程学习教程
在Methods supported (支持的方法)部份列出了可以对过 AutoCAD应用程序施加Eval、GetAcadState、GetInterface Object等 操作。
第9页/共87页
10.2.2访问其他AutoCAD对象
获取AutoCAD应用程序这个根对象之后,沿着AutoCAD对象模 型图,就可以将其作为起点,逐级访问它的下一级VLA对象。
第5页/共87页
2. 了解AutoCAD应用程序的属性和方法
(vlax-dump-object VLA对象 [T]),该函数的功能是列出指定 VLA对象的属性和方法,参数为VLA对象,如果未设置T,只列出 指定VLA对象的属性。例如
(vlax-dump-object myacad t)返回
; IAcadApplication: An instance of the AutoCAD application
; ZoomCenter (2) ; ZoomExtents () ; ZoomPickWindow () ; ZoomPrevious () ; ZoomScaled (2) ; ZoomWindow (2)
第8页/共87页
在Property values(属性)部份列出了AutoCAD应用程序具 有ActiveDocument(活动的文档)、Application(应用程序的 指针)、Caption(标题)、FullName(可执行文件名)等属性。
第13页/共87页
; Handle (RO) = "81" ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 040a53f4> ; Layer = "0" ; Length (RO) = 50.0 ; Linetype = "ByLayer" ; LinetypeScale = 1.0 ; Lineweight = -1 ; Normal = (0.0 0.0 1.0) ; ObjectID (RO) = 2129985160 ; ObjectName (RO) = "AcDbLine" ; OwnerID (RO) = 2129984760 ; PlotStyleName = "ByLayer" ; StartPoint = (10.0 20.0 0.0) ; Thickness = 0.0 ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 040a6db0> ; Visible = -1

AutoLISP从入门到精通初级教程

AutoLISP从入门到精通初级教程

AutoLISP入门单元一:AutoLISP主角登场.................................. 错误!未定义书签。

单元二:AutoLISP的关键、基本结构及语法.................... 错误!未定义书签。

单元三:快速分类浏览AutoLISP功能函数(一) ................. 错误!未定义书签。

单元四:快速分类浏览AutoLISP功能函数(二) ................. 错误!未定义书签。

单元五:轻松快速的掌握AutoLISP设计技巧................... 错误!未定义书签。

单元六:图元数据的取得与活用技巧(一) ...................... 错误!未定义书签。

单元七:图元数据的取得与活用技巧(二) ...................... 错误!未定义书签。

单元八:新手上路-参数设计的关键技巧....................... 错误!未定义书签。

单元一:AutoLISP主角登场一. AutoLISP 是何方神圣1、AutoLISP是AutoCAD的最佳拍檔!2、AutoLISP内含于AutoCAD软件内,不用另外花钱买!3、AutoLISP是强化AutoCAD最好、最直接的『程序语言』!4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能!若说AutoLISP的出现,是替 AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张!5、AutoLISP希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷!二. AutoLISP 程序语言的特质分析:学习AutoLISP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AutoLISP程序!语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,再加上AutoLISP可直接呼叫执行所有AutoCAD的指令,以及掌握运用所有的AutoCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT....等直译式程序:不用再作编译,『即写即测、即测即用』,马上可以在AutoCAD中响应效果,马上就有成就感!横跨各作业平台:悠然自得,虽然AutoCAD有DOS、Windows版本之分但是AutoLISP却可在不改写的原貌下,加载与执行!三.撰写 AutoLISP 的动机1、欲强化 AutoCAD 原有指令时.2、欲创造更有用的 AutoCAD 新指令.3、欲简化繁琐的环境设定或绘图步骤时.4、欲处理参数式绘图时.5、欲做图面资料读文件、写文件.6、欲做 AutoCAD 简报展示时.7、欲达到真正灵活掌控 AutoCAD 时.8、欲提升自己跨上 AutoCAD 高手列车时.四.AutoLISP 的效益评估1. 对公司负责人或设计主管而言:A. 也许某员工或干部花了20个小时撰写一个AutoLISP程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,『用的愈久,省的愈多』!B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢!C. 千万不要因为您的不懂或压抑,SHOW您的权威与POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 AutoCAD 支持软件。

AutoLISP从入门到精通初级教程[新手必备]

AutoLISP从入门到精通初级教程[新手必备]

AutoLISP入门单元一:AutoLISP主角登场 (2)单元二:AutoLISP的关键、基本结构及语法 (4)单元三:快速分类浏览AutoLISP功能函数(一) (10)单元四:快速分类浏览AutoLISP功能函数(二) (13)单元五:轻松快速的掌握AutoLISP设计技巧 (16)单元六:图元数据的取得与活用技巧(一) (21)单元七:图元数据的取得与活用技巧(二) (25)单元八:新手上路-参数设计的关键技巧 (32)单元一:AutoLISP主角登场一. AutoLISP 是何方神圣?1、AutoLISP是AutoCAD的最佳拍檔!2、AutoLISP内含于AutoCAD软件内,不用另外花钱买!3、AutoLISP是强化AutoCAD最好、最直接的『程序语言』!4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能!若说AutoLISP的出现,是替 AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张!5、AutoLISP希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷!二. AutoLISP 程序语言的特质分析:学习AutoLISP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AutoLISP程序!语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,再加上AutoLISP可直接呼叫执行所有AutoCAD的指令,以及掌握运用所有的AutoCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT....等直译式程序:不用再作编译,『即写即测、即测即用』,马上可以在AutoCAD中响应效果,马上就有成就感!横跨各作业平台:悠然自得,虽然AutoCAD有DOS、Windows版本之分但是AutoLISP却可在不改写的原貌下,加载与执行!三.撰写 AutoLISP 的动机?1、欲强化 AutoCAD 原有指令时.2、欲创造更有用的 AutoCAD 新指令.3、欲简化繁琐的环境设定或绘图步骤时.4、欲处理参数式绘图时.5、欲做图面资料读文件、写文件.6、欲做 AutoCAD 简报展示时.7、欲达到真正灵活掌控 AutoCAD 时.8、欲提升自己跨上 AutoCAD 高手列车时.四.AutoLISP 的效益评估?1. 对公司负责人或设计主管而言:A. 也许某员工或干部花了20个小时撰写一个AutoLISP程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,『用的愈久,省的愈多』!B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C. 千万不要因为您的不懂或压抑,SHOW您的权威与POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 AutoCAD 支持软件。

AUTOLISP培训教程_4

AUTOLISP培训教程_4

AUTOLISP培训教程_4在工程设计和绘图领域,AUTOLISP 作为一种强大的编程语言,为我们提供了许多高效和便捷的工具。

接下来,让我们一起深入了解更多关于 AUTolisp 的知识和应用技巧。

首先,我们来谈谈 autolisp 中的数据类型。

AUTOLISP 支持多种数据类型,比如整数、实数、字符串、列表等等。

整数就是我们常见的没有小数部分的数字,实数则包含小数部分。

字符串就是被引号括起来的一系列字符。

而列表则是用括号括起来的一组数据,可以包含不同的数据类型。

理解这些数据类型是编写有效 autolisp 程序的基础。

函数是 autolisp 编程中的重要组成部分。

例如,(setq x 10) 这个语句,其中“setq”就是一个函数,用于给变量 x 赋值为 10 。

再比如,(+ 5 3) 会返回 8 ,这里的“+”就是一个用于加法运算的函数。

在实际编程中,我们经常需要进行条件判断。

比如,(if (> x 5) (princ "x 大于 5")(princ "x 不大于 5"))这个语句,如果变量 x 的值大于 5 ,就会输出“x 大于5”,否则输出“x 不大于5”。

通过合理使用条件判断,我们可以让程序根据不同的情况执行不同的操作。

循环结构在 autolisp 中也非常有用。

像(while (< x 10) (princ x) (setq x (+ x 1))),只要 x 小于 10 ,就会执行循环体中的操作,不断输出 x 的值,并将 x 的值增加 1 。

循环结构能够帮助我们处理需要重复执行的任务,提高编程效率。

接下来,我们说一说 autolisp 与 AutoCAD 的交互。

通过 autolisp ,我们可以获取 AutoCAD 中的图形对象信息,例如点、线、圆等的坐标、长度、半径等属性。

还可以使用 autolisp 来创建、修改和删除这些图形对象。

例如,要创建一个圆,可以使用(command "circle" "0,0" 5) 这个语句。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大家好,您现在看到的是CAD高手网为大家奉献的CAD二次开发视频教程,尽管网站已经上传了一些lisp的视频教程,但是有很多新手朋友还是不得要领,这主要原因是因为我们的专业是设计而不是计算机编程。

很荣幸,今天再次受CAD高手网站长剑王之邀,为大家制作本节lisp极速入门教程。

这节课的主要内容有:
一、认识CAD二次开发(lisp程序)及其作用
因为我们的专业是设计,为了真正达到极速入门的目的,这里我们不讲编辑语言的理论知识,理论知识可以到我们网站()的二次开发扫盲专题去详细了解,下面我们直接通过一个演示来对二次开发的作用做一个感性的认识。

二、lisp程序框架基本格式
(defun函数名称(变量声明)(……程序内容……))
我们看到该框架以括号开始并以括号结束,这就是lisp语言最基本的语法规则之一,lisp程序的所有表达式都必须包括的括号以内,且左、右括号必须一一对称,成双成对。

其中各部分的意义如下:
defun内置功能函数,用于定义新的指令或新的功能函数。

(我们甚至也可以将其看作是lisp语言的一个固定格式,因为这个函数比较特殊,我们无论是定义一个函数或是开发一个程序命令都将要用到它。


函数名称新定义的函数名称,这完全取决于你的个人意愿可以是任何字符,如果该名称被定义为“c:”开头,则此函数即可做为CAD的一条新命令,反之则为一个功能函数,待下面实例详细讲解。

变量声明变量的声明分为全局变量或局部变量,可以省略但必须保留其在框架格式中的位置,即保留其位置的括号“()”,关于全局变量或局部变量将会在以后的课程中一一详解。

程序内容定义程序的所有表达式的集合,即该括号内可以嵌套任一多个括号(表达式)
三、lisp程序实例探密
1、利用lisp程序定义“左手键”(快捷键)
左手键能提高我们的做图效率,左手键的概念就是:把命令简写的按键设置在左手移动距离较小的位置,也就是常规盲打左手控制的那部分键位。

我们知道CAD里面对命令进行快捷的定义可以通过修改PGP文件来实现,但是这种方法有一定的局限性,当你完全按个人习惯对pgp文件进行修改后,有可能这台机器中的CAD 在整个团队内也就只有你一个人会用了。

示例代码一:(defun c:a ()(command "line"))
示例代码二:(defun c:d ()(command "offset"))
2、利用lisp程序合并CAD中带命令行选项的命令
示例代码一:(DEFUN c:xh ()(COMMAND "xline""h"))
示例代码二:(DEFUN c:xv ()(COMMAND "xline""v"))
示例代码三:(DEFUN c:d1 ()(COMMAND "offset""100"))
3、带图形选择提示选项合并
示例代码:(DEFUN c:c1 ()(COMMAND "CHANGE"(SSGET)"""PROPERTIES""C""1"""))
注:此处用到了ssget函数,此函数配合变量使用可创建灵活复杂的选择集,关于函数及变量的详细用法将在下节课中讲解,此处只做一般性了解即可。

四、课后练习
1、编写一条命令:图层速建
要求:在CAD中输入命令名即可新建一个名为“轴线”的图层且将该图层置为当前图层,该图层的颜色属性为红色,线型为点划线。

2、编写一条命令:线变复线
要求:在CAD中输入命令名即可将多条首尾相连的直线转化为一根多义线。

相关文档
最新文档