养成良好的AutoLISP书写习惯

合集下载

autolisp培训教程48页word

autolisp培训教程48页word

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入门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语言的学习和使用(1)

AutoLisp语言的学习和使用(1)

AutoLisp语⾔的学习和使⽤(1)第七节AutoLISP语⾔及其程序设计LISP(List Processing)是⼀种计算机的表处理语⾔。

LISP语⾔是⼈⼯智能领域中⼴泛应⽤的⼀种程序语⾔。

AutoLISP语⾔是⼀种运⾏在AutoCAD环境下的LISP编程语⾔,或称为AutoCAD的⼀种嵌⼊式语⾔。

它采⽤了与CommandLISP(⼀种通⽤的LISP语⾔版本)相近的语法及习惯约定,并吸收了LISP语⾔的主要函数,同时增加了针对AutoCAD特点的许多功能,如:可以把AutoLISP和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为⼀体。

利⽤AutoLISP语⾔编程可以实现对AutoCAD当前图形数据库进⾏直接访问和修改。

在LISP语⾔中,最基本的数据类型是符号表达式。

LISP语⾔的特点是程序和数据都采⽤符号表达式的形式,即⼀个LISP程序可以把另⼀个LISP程序作为它的数据进⾏处理。

因此使⽤LISP语⾔编程⼗分灵活,看起来是⼀个⼀个的函数调⽤。

⽀持递归定义也是Auto LISP语⾔的重要特性。

AutoLISP语⾔是提供给⽤户的主要⼆次开发⼯具之⼀。

⽤AutoLISP语⾔编写应⽤程序,可以为AutoCAD增加新的命令或修改AutoCAD,以适应⽤户的特殊需要。

AutoCAD软件的开发者——AutoDesk公司许诺,将保证今后AutoCAD软件对AutoLISP 语⾔的⽀持。

掌握使⽤和编制AutoLISP应⽤程序的⽅法和技术将⼤⼤提⾼⽤户的⼯作效率和⼆次开发⽔平,增强AutoCAD的灵活性,并将得到长期、稳定的技术⽀持。

1.1 AutoLISP语⾔的基本知识1.1.1 AutoLISP语⾔的特性AutoLISP语⾔是⼀种解释型语⾔,它的特点如下:1.解释型语⾔编程语⾔有两种基本类型:解释型和编译型。

AutoLISP属于解释型语⾔。

在解释型语⾔中,⽤户编写的源程序直接由解释器解释并执⾏。

AUTOLISP程序设计技巧

AUTOLISP程序设计技巧

AUTOLISP程序设计技巧AUTOLISP(即AutoCAD Lisp)是一种用于AutoCAD软件的编程语言。

它基于Lisp语言,可以用于创建自定义命令和功能,以自动执行一系列任务。

在编写AUTOLISP程序时,可以采用一些技巧来提高代码的可读性和性能。

下面将介绍一些常用的AUTOLISP程序设计技巧。

1.变量命名:为了增加代码的可读性,应该选择具有描述性的变量名。

避免使用单个字母或简写的名称,而应使用有意义的名称来描述变量的用途或含义。

2.注释:在代码中使用适当的注释是非常有帮助的,可以解释代码的目的、逻辑和特定部分的功能。

注释应该清晰明了,不冗余,并使用大写字母或其他方法来突出显示。

3.函数:使用函数来分割代码段,以便在需要时可以多次调用相同的代码块。

函数的使用可以提高代码的可读性,并使其更容易维护。

4.错误处理:在代码中加入适当的错误处理机制非常重要,可以避免程序崩溃或产生不期望的结果。

使用条件语句和错误处理函数来检测和处理可能发生的错误。

5.循环:使用循环语句来处理重复性任务,并减少代码的冗余。

根据任务的特点选择合适的循环类型(例如FOR循环、REPEAT循环等)。

6.嵌套:在必要时使用嵌套结构,将代码组织成逻辑结构清晰的块。

使用适当的缩进和代码布局来增加代码的可读性。

7.字符串处理:AUTOLISP中的字符串处理功能非常强大,可以使用字符串函数来处理、操作和格式化字符串。

了解并熟练使用字符串函数可以提高代码的灵活性和功能。

8.数组和列表:使用数组和列表可以存储和处理多个值。

熟练使用与数组和列表相关的函数(如CAR、CDR、CONS、LIST等)可以简化代码并提高性能。

9. 命令行交互:通过与用户进行命令行交互,可以提高程序的交互性。

使用getstring、princ等函数来获取用户输入,并使用条件语句来根据输入执行相应的操作。

10.优化:编写高效的代码可以提高程序的性能。

使用较少的迭代步骤、减少不必要的计算、选择合适的数据结构等都可以提高程序的效率。

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) 这个语句。

AutoLisp入门教程

AutoLisp入门教程

單元一:AutoLISP主角瀟灑登場一. AutoLISP 是何方神聖?1.AutoLISP是AutoCAD的最佳拍檔!2.AutoLISP內含於AutoCAD軟體內,不用另外花錢買!3.AutoLISP是強化AutoCAD最好、最直接的『程式語言』!4.AutoLISP易學、易用,即使不會程式設計的AutoCAD使用者,都能在最短的時間內,寫出令人驚訝、讚嘆的功能!5.若說AutoLISP的出現,是替AutoCAD 創造一片天的『最大功臣』,實不為過一點也不誇張!6.AutoLISP希望您去學習它、改善它、發揮它、享受它.真的!它的威力、魅力無窮!二. AutoLISP 程式語言的特質分析:學習AutoLISP是非常容易的,對初學者而言,即使沒有學習過任何的程式語言,都能很快的上手,寫出精彩漂亮的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 支援軟體。

python书写规范

python书写规范

python书写规范Python是一种简洁、优雅且易于学习的编程语言,但良好的书写规范对于代码的可读性和可维护性至关重要。

下面是一些关于Python书写规范的指导原则和最佳实践。

1. 使用有意义的命名:好的命名应该具有描述性,让其他人能够轻松理解变量或函数的用途。

避免使用单个字母或缩写作为变量名。

2. 选择适当的缩进:Python使用缩进来表示代码块,通常使用四个空格作为缩进。

避免使用制表符,因为它们在不同的编辑器中可能具有不同的宽度。

3. 空格的使用:在括号、逗号和操作符周围使用空格,以提高代码的可读性。

例如:- 函数定义时,函数名和括号之间加一个空格。

- 在逗号之后加一个空格,使得逗号与下一个元素对齐。

- 操作符前后加上空格。

4. 函数和类的文档注释:使用文档字符串(docstring)来解释函数和类的用途以及参数的含义。

文档字符串应该位于函数或类的定义之后,并以三个双引号包围。

5. 行的长度限制:一行代码的长度应该限制在80个字符以内。

如果一行不够容纳,可以使用括号或反斜杠换行符来进行换行。

6. 导入语句的顺序:导入语句应该按照从最通用到最特定的顺序排列,每个导入语句应该单独占一行。

例如:- 首先导入标准库模块。

- 然后导入第三方库模块。

- 最后导入本地模块。

7. 避免使用全局变量:全局变量会增加代码的复杂性,降低代码的可维护性。

尽量使用函数和类来封装状态。

8. 模块级别的代码:模块级别的代码应该放在文件的顶部,用于执行一些初始化操作。

这些代码应该放在一个if __name__ == "__main__"的条件中,以确保只有当模块作为主程序运行时才会执行。

9. 异常处理:在代码中适当地处理异常是一个好的编程习惯。

不要使用裸露的except语句来捕获所有异常,而应该根据具体的异常类型来做相应的处理。

10. 使用适当的空行:使用适当的空行来分隔代码块,提高代码的可读性。

例如: - 在函数和类之间使用两个空行。

养成良好的AutoLISP书写习惯

养成良好的AutoLISP书写习惯

养成良好的AutoLISP书写习惯众所周知,Lisp是一种表结构语言,括号必须成对出现,在调试时往往为遗漏了一个括号大费周折,所以,养成一个好的编程习惯是学好Lisp所必须的。

⑴选择一个较好的编辑器,这是一个基本条件,建议使用Visual Lisp编辑器或Lisplink 等专用编辑器,此类编辑器可以对函数突出显示。

⑵按Lisp(DCL)专有格式书写,并经常对程序进行“格式化”,及时发现语法错误,并有利于调试是查找错误。

⑶使用自定义函数,并辅助以适当得注释,在较大程序中按功能使用自定义函数可以使得程序条理化。

autolisp的入门教程+autolisp函数!Lisp是一门历史悠久的语言,全名叫LISt Processor,也就是“表处理语言”,它是由John McCarthy于1958年就开始设计的一门语言。

和Lisp同时期甚至更晚出现的许多语言如Algo 等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了Fortran和COBOL。

但唯独Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。

那么这颗常青树永葆青春的奥秘究竟在哪里呢?如果你只接触过C/C++、Pascal这些“过程式语言”的话,Lisp可能会让你觉得十分不同寻常,首先吸引你眼球(或者说让你觉得混乱的)一定是Lisp程序中异常多的括号,当然从现在的角度来讲,这种设计的确对程序员不大友好,不过考虑到五六十年代的计算机处理能力,简化语言本身的设计在那时算得上是当务之急了。

Lisp的基本语法很简单,它甚至没有保留字(有些语言学家可能对这一点有异议,别怕,我听你们的),它只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式同时也就是程序结构,但是正如规则最简单的围棋却有着最为复杂的变化一样,Lisp使用最基本的语言结构定义却可以完成其它语言难于实现的、最复杂的功能。

autolisp教程

autolisp教程

autolisp教程第⼗四章AutoLISP14.1 关于AutoLISPAutoLISP是由Autodesk公司开发的⼀种LISP程序语⾔(LISP是List Processor的缩写)。

第⼀篇关于LISP的参考⽂献是由John McCarthy 在1960年4⽉的《ACM通讯》中发表的。

除了FORTRAN和COBOL,⼤多数在六⼗年代早期开发出来的语⾔都过时了,可是LISP却⽣下来,并且已经成为⼈⼯智能(AI)的⾸选程序序⾔。

AutoLISP解释程序位于AutoCAD软件包中,然⽽AutoCAD R2.17及更低版本中并不包含AutoLISP解释程序,这样,只有通过AutoCAD R2.18及更⾼版本才可以使⽤AutoLISP语⾔。

AutoCAD软件包中包含⼤多数⽤于产⽣图形的命令,但仍有某些命令末被提供。

例如,AutoCAD中没有在图形⽂本对象内绘制矩形及作全局改变的命令。

通过AutoLISP,你可以使⽤AutoLISP程序语⾔编制能够在图形⽂本对象内绘制矩形或作全局选择性改变的程序。

事实上,可以⽤AutoLISP编制任何程序,或把它嵌⼊到菜单中,这样定制你的系统会取得更⾼的效率。

现在,已经有数以百计的第三⽅软件开发⼈员使⽤AutoLISP语⾔编制各种应⽤程序软件包,例如,本⽂作者开发了⼀个名为SMLayout的软件包,⽤它可以产⽣各种复杂⼏何图形的平⾯布局图,这些⼏何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。

⽬前社会上⾮常需要AutoLISP程序员为应⽤软件及客户菜单的开发提供顾问。

在本章中,我们假定读者已经熟悉了AutoCAD命令及AutoCAD的系统变量。

但是,在开始学习AutoLISP时,却并不需要你是⼀位AutoCAD或编程专家。

同时,本章还假定读者并⽆编程⽅⾯的知识。

如果你熟悉任何⼀种编程语⾔,那么学习AutoLISP 就会很容易。

对各种函数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。

一步步学AutoLisp(二)

一步步学AutoLisp(二)

一步步学AutoLisp(二)在第一步中我们是在CAD命令行中进行一些练习,这显然无法满足我们正常的使用要求,所以我们一般将程序写成文件,LISP程序文件的扩展名为“.lsp”。

在AutoCAD2004及以后的CAD中有专门的软件编写程序Visual Lisp,也可以用普通的文本编写软件如记事本进行编写,但文件的扩展名一定要是“.lsp”。

为使大家能对lsp文件的使用有更好的理解,本文一律按使用普通文本编辑器编写的方式进行描述。

打开文本编辑器编写一个文件,文件名为“key.lsp”,将文件保存到C盘根目录下。

键入如下一行程序:(defun c:cm() (command "COPY" pause "" "m"))保存后,在CAD命令行键入:(load"c:/key"),即可将key.lsp调入CAD,返回c:cm。

如下图:在命令行键入“cm”可以执行对一个图元进行多次拷贝的命令,在lisp程序中函数及参数不区分大小写,但参数的返回值有大小之分。

先对程序进行解读:defun 定义函数的函数,后面的c:cm是一个函数的名称。

c:cm 自我定义的函数名称,带“c:”的函数是可以作为操作命令的函数,我们姑且将这类函数称为命令函数。

如果没有“c:”,只有“cm”,则得到的返回值是“cm”,在命令行键入“cm”则不会执行前面的多重拷贝操作。

键入“(cm)”就会执行该操作,我们就称之为一般函数。

() 这个空括弧是用来填写参数的,由于我们的这段程序没有用到任何其他参数,所以括弧内是空的。

command 调用CAD原有命令的函数,这是lsp程序中应用非常多的一个函数,许多操作可以直接调用CAD自己的命令,不许再重新编写。

"copy" 调用的CAD命令名称,名称与前面的command之间有没有空格都可以,而且要用命令全名,不能用简化命令,而且要用引号。

AutoLISP

AutoLISP

第10章AutoCAD二次开发10.2.2AutoLISP表达式AutoLISP处理的对象是符号表达式(简称表达式),是LISP程序的基本单元。

表达式相当于其他编程语言中程序的语句。

(1)表达式构成表达式是包含函数关键字,并按AutoLISP语言规则书写的字符串。

字符串中可以有数、串和符号。

数或串的值是数或串本身,符号的值是赋给该符号的值。

多数情况下,表达式以表的形式存在,其格式如下:(函数名【参数】…)表达式由左括号开始,右括号结束,表达式可以嵌套,不伦嵌套几层,其左右括号必须是配对的。

表达式形式的表中,左括号之后的第一个元素必须是函数名。

(2)表达式的表示大多数程序语言的表达式采用中缀表示法,即运算符在操作数中间,如:x=y+z。

AutoLISP采用前缀表示法,将函数名或运算符放在所有操作数之前,如:(setq x (+ y z)) (3)表达式返回值在LISP语言中,函数之间不存在是否优先的关系,求值的先后顺序只能通过表的层次来实现。

最里层的表最先被求值,把求值的结果返回给外层的表,直至求值完毕。

例如,表达式(setq x(* (+ a b) c)),先求出最内层a与b之和,然后求出a,b之和与c 的积,将求得的积赋给x,最后返回x的值。

(4)错误信息在表达式运行过程中,如果输入的右括号不配对,则会显示错误提示:输入的列表有缺陷。

Vlisp环境下支持自动修正缺失的括号功能。

10.2.3AutoLISP数据类型、变量AutoLISP语言有着丰富的数据类型、灵活的变量定义。

(一)、数据类型AutoLISP的数据类型丰富,除了具有一般程序设计语言的整型、实型、字符串等数据类型之外,还有表、文件描述符、AutoCAD选择集、AuroCAD图元名、VLA对象等数据类型。

(1)整型(INT)整型即整数型。

由0~9数字、+、-字符组成,不允许出现其他字符,“十”号可省略,如+110,321,-30均是合法的整型数据。

Autolisp编程心得

Autolisp编程心得

(ett_ct) ;编辑后返回选择)(t (ett_ct)) ;空选返回选择))************************************************有时需要进行复杂的判断,使用如“(= s0 "")”语句可能不能准确判别输入的空格关键字与空选择,可以使用“(= (type s0) 'STR)”语句。

4.Lisp的暂停与while的特殊使用Lisp一般在交互输入时才会暂停,如果只需要实现屏幕显示暂停,可使用grread函数,grread函数对所有合法的输入设备均会作出反应,有时我们只希望对键盘有反应,可使用while 函数进行循环。

*******************(princ "\nPress ENTER to continue:")(while (/= (car (grread)) 2))*******************while用于满足一定条件的循环,其标准语法为:(while testexpr [expr...])其中expr解释为“在 testexpr 为 nil 之前要求值的一个或多个表达式”,为可选项(在R14之前没有方括号,但仍为可选项)。

正常我们使用while时,总会有expr项,更多的时候,我们是为了expr项才会使用这种循环语句,所有我们往往有expr项是不可缺少的感觉。

这里我们使用while函数的语法是while函数的特例,即没有expr项的情况。

如果希望对鼠标右键同时反应,可以使用:*******************(princ "\nPress ENTER to continue:")(while (and (/= (setq a(car (grread))) 2) ;键盘(/= a 11) ;鼠标右键(SHORTCUTMENU=0)(/= a 25) ;鼠标右键(SHORTCUTMENU≠0)))*******************5.输入距离Lisp语言中输入距离的函数为getdist,但我们有时需要输入负值,有时需要在输入距离的同时得到角度,使用getdist函数就显得无能为力,这时,我们可以灵活使用其它交互输入函数如getpoint、getcorner等,通过计算得到我们所需要的值。

《如何养成良好的书写习惯》英语作文

《如何养成良好的书写习惯》英语作文

《如何养成良好的书写习惯》英语作文全文共3篇示例,供读者参考篇1How to Develop Good Writing HabitsWriting is an essential skill that plays a crucial role in our daily lives. Whether for academics, work or personal reasons, having good writing habits can significantly improve our ability to communicate effectively. Here are some tips on how to develop good writing habits:1. Set a Regular Writing ScheduleOne of the best ways to develop good writing habits is to set a regular writing schedule. This could be daily, weekly, or even monthly - the key is to stick to it. By dedicating a specific time to write, you can create a routine that allows you to focus and be more productive. Consistency is key when it comes to developing any habit, and writing is no exception.2. Start SmallIf you're new to writing or struggling to make it a habit, start small. Set achievable goals for yourself, such as writing for 15minutes every day or completing one page of writing per week. As you become more comfortable with writing regularly, you can gradually increase the amount of time you spend writing.3. Find InspirationInspiration can come from many sources, so don't be afraid to explore different ways to find motivation for writing. Reading books, watching movies, listening to music, or even taking a walk outside can spark your creativity and help you generate new ideas for writing. Make a habit of exposing yourself to diverse sources of inspiration to keep your writing fresh and engaging.4. Practice, Practice, PracticeLike any skill, writing requires practice to improve. The more you write, the better you will become. Set aside time each day to practice different types of writing, such as essays, stories, poems, or journal entries. Experiment with different writing styles, tones, and formats to expand your writing abilities and discover what works best for you.5. Seek FeedbackFeedback is an invaluable tool for improving your writing skills. Share your work with friends, family, or writing groups to receive constructive criticism and suggestions for improvement.Be open to feedback and willing to make changes to your writing based on the advice you receive. Constructive criticism can help you identify your strengths and areas for growth as a writer.6. Read WidelyReading is essential for developing good writing habits. By reading a wide range of literature, you can expand your vocabulary, improve your grammar, and learn different writing styles and techniques. Pay attention to how writers structure their sentences, develop characters, and create compelling narratives. Use what you learn from reading to inspire and inform your own writing.7. Set Clear GoalsSetting clear goals for your writing can help you stay focused and motivated. Whether you want to finish a novel, publish an article, or improve your grammar skills, having specific and achievable goals can guide your writing practice and measure your progress. Write down your goals and track your accomplishments to see how far you've come and where you want to go next.In conclusion, developing good writing habits takes time and effort, but the rewards are well worth it. By setting a regularwriting schedule, starting small, finding inspiration, practicing regularly, seeking feedback, reading widely, and setting clear goals, you can improve your writing skills and become a more confident and effective writer. Remember that writing is a journey, and every word you write brings you one step closer to achieving your writing goals.篇2How to Develop Good Writing HabitsWriting is an essential skill that plays a crucial role in our daily lives. Whether you are a student, a professional, or a creative writer, having good writing habits is important for improving your communication skills and achieving success in various aspects of life. In this article, we will discuss some effective strategies to help you develop and maintain good writing habits.1. Set specific goals: To improve your writing skills, it is important to set specific, achievable goals. This could be writing a certain number of words or pages each day, completing a writing project within a deadline, or improving a specific aspect of your writing, such as grammar or vocabulary. By setting cleargoals, you can track your progress and stay motivated to continue writing.2. Create a writing routine: Developing a writing routine is essential for building consistency and discipline in your writing practice. Choose a specific time and place where you can write without distractions, whether it's early in the morning before work or late at night before bed. By making writing a regular part of your daily schedule, you can make it a habit and improve your writing skills over time.3. Read regularly: Reading is a great way to improve your writing skills by exposing you to different writing styles, vocabulary, and ideas. Make it a habit to read a variety of materials, such as books, articles, and essays, to expand your knowledge and inspire your own writing. Take note of how authors structure their sentences, develop their ideas, and use language effectively, and apply these techniques to your own writing.4. Write every day: Practice makes perfect, so it's important to write every day to improve your writing skills. Set aside time each day to write something, whether it's a journal entry, a blog post, a short story, or a poem. The more you write, the better you will become at expressing your thoughts and ideas clearly andeffectively. Don't worry about perfection – the important thing is to keep writing and refining your skills.5. Seek feedback: Feedback is a valuable tool for improving your writing skills, as it provides you with insights and suggestions for how to enhance your work. Share your writing with others, such as friends, family, teachers, or writing groups, and ask for their feedback. Pay attention to their comments and suggestions, and use them to revise and improve your writing. Constructive criticism can help you identify areas for improvement and develop your writing skills further.6. Edit and revise your work: Writing is a process that involves multiple drafts and revisions to refine your ideas and improve the clarity and coherence of your writing. After you have written a piece, take the time to edit and revise it for grammar, punctuation, spelling, and organization. Read your work aloud to check for flow and coherence, and make any necessary changes to strengthen your writing. By editing and revising your work, you can polish your writing and make it more impactful and engaging for your audience.In conclusion, developing good writing habits is essential for improving your writing skills and achieving success as a writer. By setting specific goals, creating a writing routine, readingregularly, writing every day, seeking feedback, and editing and revising your work, you can develop strong writing habits that will help you become a more effective and confident writer. With dedication and practice, you can enhance your writing skills and express yourself more clearly and compellingly in your writing.篇3How to Develop Good Writing HabitsWriting is an essential skill that can benefit us in many aspects of our lives. Whether it’s for academic purposes, creative expression, or professional communication, having a good command of writing can help us convey our thoughts and ideas effectively. However, developing good writing habits is not always easy. It requires dedication, practice, and a willingness to learn. In this article, we will explore some tips and strategies to help you cultivate good writing habits.First and foremost, it is important to establish a writing routine. Just like any other habit, consistency is key to improving your writing skills. Set aside a specific time each day to write, whether it’s early in the morning, during your lunch break, or before you go to bed. By making writing a daily practice, you can train your brain to be more creative and productive.In addition to establishing a routine, it is also important to create a conducive writing environment. Find a quiet and comfortable space where you can focus and avoid distractions. Keep all the necessary tools and materials within reach, such as pens, paper, a computer, and reference books. Having a designated writing space can help you get into the right mindset and boost your productivity.Another helpful tip is to read regularly. Reading is a great way to expand your vocabulary, improve your writing style, and generate new ideas. By exposing yourself to different genres, authors, and writing techniques, you can learn from the masters and develop your own unique voice. Make it a habit to read a variety of literature, from novels and magazines to academic journals and blogs.Practice is essential for honing your writing skills. Set aside time for writing exercises, such as journaling, free writing, and prompts. Challenge yourself to write in different styles, tones, and formats to push your boundaries and discover your strengths and weaknesses. Experiment with different genres, such as fiction, poetry, essays, and articles, to find your niche and develop your own writing style.Seek feedback from others to improve your writing. Share your work with friends, family, teachers, or fellow writers and ask for their honest opinions. Constructive criticism can help you identify areas for improvement and gain valuable insights into your writing. Be open to suggestions and be willing to revise and edit your work accordingly. Remember that writing is a process, and feedback is an essential part of that process.Finally, stay motivated and inspired to write. Find your passion and purpose for writing and keep them in mind as you work towards your goals. Set achievable milestones and celebrate your successes along the way. Join writing groups, workshops, or classes to connect with other writers and gain new perspectives. Surround yourself with supportive and encouraging people who can help you stay motivated and accountable.In conclusion, developing good writing habits takes time, effort, and dedication. By establishing a routine, creating a conducive environment, reading regularly, practicing consistently, seeking feedback, and staying motivated, you can cultivate your writing skills and become a better writer. Remember that writing is a journey of self-discovery and continuous improvement. Embrace the challenges andopportunities that come with it, and enjoy the creative process of expressing yourself through words.。

每天一个命令学习AutoLisp-3

每天一个命令学习AutoLisp-3

第三天:princ
princ是一个显示或书写函数,可以将文本显示在显示器或写入文本文件中。

一、语法:
(princ “字串1”)
二、解释:
显示字串“字串1”
三、举例及练习:
1、在命令行输入:(princ “你好!”)↙,在命令行会显示不带引号的你好! 和带引号的“你好!”
第一个你好是正常显示的文本,带引号的是该语句的返回值。

在命令行中如下输入:
会如下显示:
返回值不在显示。

因此(princ)可以用来消除返回值的显示。

2、在命令行如下图输入:
显示如下:
“小明,你好!”在同一行显示。

继续在命令行如下图输入:
在上一字串中加入一个“\n”符号,显示如下:
在加入“\n”处换行显示。

princ语句可以将字串写入文本文件中,由于目前已较少使用,本文不在讲述,感兴趣的朋友可以自己查看相关书籍。

3、综合练习:
按下图编写程序文件“lisp-3.lsp”。

加载程序文件“lisp-3.lsp”,在命令行输入名利“lx”,按提示进行可在CAD中写入“我的第一个综合练习”,在命令行显示“我完成了我的第一个综合练习!”。

autolisp语言

autolisp语言

2.实型数(REAL) 实型数( 实型数 ) 实型数是带有小数点的数, 实型数是带有小数点的数,它以双精度 浮点数格式保存,提供了至少14位的精 浮点数格式保存,提供了至少 位的精 实型数既可以用十进制方法表示, 度。实型数既可以用十进制方法表示, 也可以用科学计数法表示。例如: 也可以用科学计数法表示。例如:13.2、 、 0.045、4.5e-2均为有效的 均为有效的AutoLISP实型 、 均为有效的 实型 数。
交互输入函数
(getint<提示 ) 提示>) 从命令窗口根据<提示 提示>输入一个整型数 提示 从命令窗口根据 提示 输入一个整型数 以整型数形式返回输入数。 。以整型数形式返回输入数。 (getreal<提示 提示>) 从命令窗口根据<提示 提示>输入一个整 提示 从命令窗口根据 提示 输入一个整 型或实型数。以实型数形式返回输入数 。 型或实型数。 (getstring<提示 提示>) 从命令窗口根据<提示 提示>输入一个字 提示 从命令窗口根据 提示 输入一个字 符串。 符串。返回该字符串 。 (getpoint<提示 提示>) 从命令窗口根据<提示 提示>输入一个点 提示 从命令窗口根据 提示 输入一个点 的坐标,或从屏幕上拾取一点。 的坐标,或从屏幕上拾取一点。返回该点坐标 。 (getcorner<点><提示 )根据 提示 及已有角点 点>确定 提示>)根据<提示 及已有角点<点 确定 提示>及已有角点 点 提示 矩形窗口的另一角点,可以从命令窗口输入点的坐标, 矩形窗口的另一角点,可以从命令窗口输入点的坐标,也 可以在屏幕上拾取。 可以在屏幕上拾取。返回另一角点的坐标 。 (getangle <提示 ) 从命令窗口根据 提示 输入角度值,或 提示>) 从命令窗口根据<提示 输入角度值, 提示>输入角度值 提示 基于在屏幕上拾取的点决定角度值。返回该角度值。 基于在屏幕上拾取的点决定角度值。返回该角度值。

AutoLISP简介

AutoLISP简介

AutoLISP简介AutoLISP规定了函数的形式:一: ( function argument )1.( ) 括号,表示执行某一函数,而括号中的内容即所要执行的部分.2.function 表示函数名. AutoLISP就是根据菡数名来区分各基本函数和用户自定义的函授数的.3.argument表示函数的参4.如果函数中套有函数称为嵌套函授数. AutoLISP允许用户使用诸如下列嵌套函授数:( fun1 (fun2 argu2) (fun3 argu3))(1)括号“(” 和“)”要匹配使用,用户在编写AutoLISP程序时一定要注意左\右手枪号匹配问题.(2)AutoLISP程序中,所有的括号( )和双引号" " 都必须在英文状态下输入,即必须是半角符号,为AutoLISP不识加紧中文全角符号.二: 设置变量函数( setq或SETQ )格式:(setq 变量名1值1[变量名2值2变量名3值3···])功能:创建给定的变量,并赋特定值.说明:(1)setq函数允许用户同时设置多个变时并赋予相应的数值.(2)对于字符串类型的值,应加上“”以于区分.注意:各变量名\数值之间只用空格隔开,而不能用其它标点符号,如要把3赋给变量abc可采用setq abc 3)方式.三: 执行AutoCAD标准命令( command )格式: ( command" 标准命令" "具体参数1" "具体参数2" ······)例如: (1)如果要画从(5,3)到(7,8)再到@10<0 三点的联机,可采用:( command " Line" "5,3" "7,8" "@10<0" "")(2)如果用户从已经定义的P1点到P2点画一条直线,可采用:( command "Line" P1 P2 "")四: 选择定点( getpoint)格式: getpoint("\n操作提示:")功能:用户可通过键盘输入体的坐标参数,可以用十字光标在屏幕区域内选取一点,通过该函数, AutoLISP就得知了用户所选取的点的坐标值.说明:(1)A utoLISP将首先显示用户设置的操作提示,在此提示下,才可确定某一给定一点.(2)G etpoint的操作提示中\n表示换行.通常,我们都是用(setq P1(getpoint"\n请输入第一点的坐标: "))这和方式来选取给定的点,并把该点坐标赋给变量P1.五: 目标捕捉( osnap)格式; osnap 给定顶点名称“目标捕捉方式”功能:以某种特定的目标捕捉方式, 捕捉最近给定顶点的某个特殊点.语名( setq Pt2(osnap pt1 "midp"))表示捕捉靠近Pt1端的中点,并把该中点坐标赋给Pt2六: 提取实体名称( entlast)格式: entlast功能:将用户的操作的上一实体的名称提取出来.( setq m (entlast))表示把用户的操作的上一实体的名称提取出来.并赋于m 这样AutoCAD就可以通过变量m来识别图形实体.例如:(1) Command :(command "circle" "5,5" "2") 以(5,5)这点为圆心,2为半径画一个圆.(2) Command :(command"line" "3,5" "7,5" "") 以这2点画一条直线,然后结束命令(3)Command :(setq el (entlast))(4)Command :(setq pt "5,7") 将点(5,7)赋给变量pt(5)Command :(command "trim" el "" pt "") 剪切多余的线.通过entlast 函数得知用户操作的上一实体为直线,并把该直线的实体名赋给变量el 这样el 就代表该直线.用户自定义函数AutoLISP提拱defun函数用以自定义用户函数,操作格式如下:( defun c :XXX( )表达式)现就该格式作说明:(1):defun 函数后面所跟C :XXX( )是一种特定的格式,XXX是用户定义函数的函数名.(2):表达工可由AutoLISP基本函数变量\字符串和运算符等组成,是用户定义函数的核心部.(3):定义完函数后,用户就可像AutoLISP基本函数一样调用XXX( )函数.注意:(1):defun 函数后所跟的C并不是代表硬盘驱动器符C,而是代表command line fuuction (命令行函数).(2):用这种方式所定义的函数XXX( ) 是无参函数,即不允许携带参数.(3):定义后,该函数XXX( ),还可以像AutoCAD基本命令一样,在command: 提示符下输入XXX并回车激活运行.(4):XXX( )函数, 还可以像AutoCAD透明命令一样,在某一函数运行过程中XXX形式运行.例如:( defun C : LXH( )(setq P1( getpoint"\ n请确定零件标注线第一点: ")(setq P2( getpoint"\ n请确定零件标注线第二点: "))( command "Line" P1P2 "@5<0" "")(setp P3 ( osnap P2 "midp" ))(command "dtext" " J " " bc" P350 )( Princ ))。

AutoLISP语言

AutoLISP语言

构造和修改表中的元素
• (list <表达式> …) 将多个<表达式>串联在一起,返回由它们组成的表。 例:(list ‘a ‘b ‘c) (A B C) (list ‘a ‘(b c) ‘d) (A (B C) D) • (append <表达式>…) 将所有的<表>串联在一起,返回由它们组成的新表。 例: (append ‘(a b) ‘(c)) (A B C) (append ‘(‘(a) ‘(b)) ‘(c) ) (‘(A) ‘(B) C) (append ‘(a) (list (list (2 3)))) (A (2 3)) • (cons <新的第一个元素> <表>) 将<新的第一个元素>加入到<表>的开头,构成新表。 (cons nil ‘(b c)) (nil B C) (cons ‘(a) ‘(b c)) ((A) B C) • (reverse <表达式>) 将<表>中的顶层元素倒排序。 例: (reverse ‘(a (b c) f)) (F (B C) A)
返回该数之绝对值。 (7) (abs 数) 返回该数之绝对值。 ) 自然对数)之 次方。 (8) (exp 数) 返回 e (自然对数 之“数”次方。 ) 自然对数 )(squrt 数)数的平方根。 数的平方根。 (9)( )( 返回底数之"数 次方 次方。 (10) (expt 底数 数) 返回底数之 数"次方。 ) 将该数转换为整型数。 (11) (fix 数) 将该数转换为整型数。 ) 将该数转换为实型数。 (12) (float 数) 将该数转换为实型数。 ) 返回数1和数 之最大公约数。 和数2之最大公约数 (13) (gcd 数1 数2) 返回数 和数 之最大公约数。 ) 返回该数之自然对数。 (14) (log 数) 返回该数之自然对数。 ) 返回这些数中之最大数。 ( 15 ) (max 数 数...) 返回这些数中之最大数。 返回这些数中之最小数。 ( 16 ) (min 数 数...) 返回这些数中之最小数。 返回数1除以数 之余数。 除以数2之余数 ( 17 ) (rem 数1 数2) 返回数 除以数 之余数。

倡议书重视良好的书写习惯英语作文

倡议书重视良好的书写习惯英语作文

倡议书重视良好的书写习惯英语作文English:Good writing habits are essential for effective communication and academic success. When composing any form of written communication, whether it's an essay, report, or email, adhering to proper writing conventions demonstrates respect for the reader and conveys professionalism. Attention to detail in spelling, grammar, punctuation, and formatting ensures clarity and comprehension, enabling the message to be conveyed accurately. Moreover, cultivating strong writing skills fosters critical thinking and enhances cognitive abilities. By encouraging the development of good writing habits, educators empower students to express themselves articulately, think analytically, and engage with complex ideas more effectively. Therefore, advocating for the importance of cultivating good writing habits is paramount in fostering communication skills and intellectual growth in individuals.中文翻译:良好的书写习惯对于有效沟通和学术成功至关重要。

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

养成良好的AutoLISP书写习惯众所周知,Lisp是一种表结构语言,括号必须成对出现,在调试时往往为遗漏了一个括号大费周折,所以,养成一个好的编程习惯是学好Lisp所必须的。

⑴选择一个较好的编辑器,这是一个基本条件,建议使用Visual Lisp编辑器或Lisplink 等专用编辑器,此类编辑器可以对函数突出显示。

⑵按Lisp(DCL)专有格式书写,并经常对程序进行“格式化”,及时发现语法错误,并有利于调试是查找错误。

⑶使用自定义函数,并辅助以适当得注释,在较大程序中按功能使用自定义函数可以使得程序条理化。

autolisp的入门教程+autolisp函数!Lisp是一门历史悠久的语言,全名叫LISt Processor,也就是“表处理语言”,它是由John McCarthy于1958年就开始设计的一门语言。

和Lisp同时期甚至更晚出现的许多语言如Algo 等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了Fortran和COBOL。

但唯独Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。

那么这颗常青树永葆青春的奥秘究竟在哪里呢?如果你只接触过C/C++、Pascal这些“过程式语言”的话,Lisp可能会让你觉得十分不同寻常,首先吸引你眼球(或者说让你觉得混乱的)一定是Lisp程序中异常多的括号,当然从现在的角度来讲,这种设计的确对程序员不大友好,不过考虑到五六十年代的计算机处理能力,简化语言本身的设计在那时算得上是当务之急了。

Lisp的基本语法很简单,它甚至没有保留字(有些语言学家可能对这一点有异议,别怕,我听你们的),它只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式同时也就是程序结构,但是正如规则最简单的围棋却有着最为复杂的变化一样,Lisp使用最基本的语言结构定义却可以完成其它语言难于实现的、最复杂的功能。

废话少说,现在我们就来看看Lisp语言中的基本元素。

Lisp的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如abc;表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如:abc()(abc xyz)(a b (c) d)最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。

正如算数表达式1+1有值2一样,Lisp中的表达式也有值,如果表达式e得出值v,我们说e返回v。

如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。

正如欧几里德的几何世界中有五个公理一样,我们在这里给出Lisp世界中的7个公理(基本操作符):(quote x)返回x,我们简记为'x(atom x)当x是一个原子或者空表时返回原子t,否则返回空表()。

在Lisp中我们习惯用原子t表示真,而用空表()表示假。

> (atom 'a)t> (atom '(a b c))()> (atom '())t现在我们有了第一个需要求出自变量值的操作符,让我们来看看quote操作符的作用——通过引用(quote)一个表,我们避免它被求值。

一个未被引用的表达式作为自变量,atom将其视为代码,例如:> (atom (atom 'a))t反之一个被引用的表仅仅被视为表> (atom '(atom 'a))()引用看上去有些奇怪,因为你很难在其它语言中找到类似的概念,但正是这一特征构成了Lisp最为与众不同的特点——代码和数据使用相同的结构来表示,而我们用quote来区分它们。

(eq x y)当x和y的值相同或者同为空表时返回t,否则返回空表()> (eq 'a 'a)t> (eq 'a 'b)()> (eq '() '())t例如:我们有时想捕捉任意两点的中点,而不只是一条线上的中点,用系统自己的捕捉中点(它要有辅助线)就不行了,我们可以参考“捕捉虚中点.lsp”程序来实现。

除程序中的语句要学外,动画中的自动找到所有的全局变量并把它们改为局部变量的方法很有用!动画中先画了一个六边形,再画一个圆与它接,圆心就是捕捉虚中点!AutoLisp 概述AutoLisp的数据类型,它有10种数据类型,常见的有五种:整型INT实数型REAL符号型SYM字符串STR表 LISP在AutoLisp中,最基本的数据类型称为符号表达式,也称为S-表达式,它是原子和点对的总称,点对通常表示为表。

原子是一个一般符号系列,有两种类型的原子,一种称为数子原子(简称“数”),AutoLIsp可处理整数和实数,其它不是“数”原子称为非数字原子,它包括符号原子(或称为文字原子)和串原子。

注意:0.4不能写成.4。

符号原子的大小写是等效的。

符号原子可以包含下列字符以外的任何可打印字符。

正反括号用于定义表句号用于作点对分号用于注释的开始‘用作QUOTE函数的简写双引号用作字符串常数的定界符符号原子的长度没有限制,且所有的字符都是有意义的,但尽量不要超过6个字符。

约束是一对符号和值,当将一个值赋给符号时,就说符号被约束到那个值。

值(而不是符号)决定所代表信息的类型,故一个符号可以接受任何类型的值,其初始值为nil.在AutoLisp中,有两个特殊的符号原子,即T和nil.字符串的个数(不包括定界符)称为字符串的长度。

字符串可以是任意长度,它们的存储空间是动态分配的,但字符串常量的最大长度不超过100,长度为0字符串称为空串。

可以用“\nnn”的方式表示字符,其中nnn为八进制。

\e Esc \n 换行\r 回车 \t 制表符(Tab节)点对是由一个左括号,后接一个S-表达式和空格再接一个句点和空格和一个右括号。

表是指放在一对相匹配的左右括号中的元素有序集合。

表中的项称为表的元素,表中的元素可以是任意类型的S-表达式,序号0到n-1。

如果嵌套,0层,1层...表的长度,顶层元素的个数。

只有nil是表(’())又是原子。

表有两种类型:标准表,引用表。

引用表是在表的前面冠以引用符号(’或Quote)对该表不求值。

标准表:第一个元素的值必须是一个合法的已经存在的AutoLisp函数定义,后跟调用该函数的参数。

AutoLisp采用”前缀表示法“即把运算符放在操作数之前,而不是中间,并把运算符(函数名)和操作数(调用函数的参数)用圆括号括起来,以表的方式表示。

一个完整的AutoLisp程序往往是由一系列按顺序排列的S-表达式组成的。

如:(defun plus (x y)(+ ( + x y) x))(SetQ a 2.0)(SetQ b 2.0)(plus a b)一个S-表达式可以分多行写,一行也可以写多个表达式。

注释以分号开始,并在一行的末尾结束,AutoLisp的求值器忽略注释。

AutoLisp是一种求值型语言,求值程序第一次碰到一个求值代码块时,整个块被转换成压宿代码,如果程序中再次碰到那个块,只是简单的运行它。

求值过程:1,整形,实数,字符串,文件指针,系统部函数,以及两个特殊的符号原子,对它们求值就是它们本身。

2,符号原子是以当前的约束值作为它们的求值。

3,表是根据它的第一个元素的数据类型进行求值的。

(1)第一个元素的值为表,该表就假定为用户定义的函数。

(2)如果表的第一个元素的求值结果为一个部函数,则剩余元素作为参数传给该函数,并执行该函数的代码,由函数的类型确定是否对传给它的参数进行求值。

输入距离Lisp语言中输入距离的函数为getdist,但我们有时需要输入负值,有时需要在输入距离的同时得到角度,使用getdist函数就显得无能为力,这时,我们可以灵活使用其它交互输入函数如getpoint、getcorner等,通过计算得到我们所需要的值。

例1是一段输入长度的同时得到默认角度的代码,使用getpoint函数。

************************************************;;例1(setq pt0 (getpoint "\n直线基点: ")pt1 (getpoint pt0 "\n直线长度: ") ;长度及角度可用键盘或鼠标定位dst (distance pt0 pt1) ;计算长度ang (angle pt0 pt1) ;计算默认角度ang1 (getangle pt0 (strcat "\n直线方向<" (angtos ang 1) ">: ")))************************************************例2是可以按阵列方式输入行列间距的代码,输入距离为正值,修改部分代码可输入负值,使用getcorner函数,同时使用initget的控制位128。

************************************************;;例2(defun lc_dist ()(initget 128) ;允许任意输入(setq disr (getpoint "\n指定单位单元或输入行间距: "))(if (= (type disr) 'LIST) ;鼠标输入(progn(initget 1)(setq dis (getcorner disr "\n指定对角点: ") ;鼠标输入对角disc (abs (- (car dis) (car disr))) ;正值行距disr (abs (- (cadr dis) (cadr disr))) ;正值列距) ;计算行列间距)(if (= (type disr) 'STR) ;键盘输入行距(if (setq dis (distof disr)) ;判断输入的是否距离(progn(initget 6)(setq disc (getdist "\n输入列间距: ")) ;输入列距)(progn ;键盘输入格式不符返回(princ "\n需要正数值或两个二维角点。

")(lc_dist)))(progn ;空输入返回(princ "\n需要正数值或两个二维角点。

")(lc_dist)))))AutoCAD中特定角度及长度捕捉的实现方法一、引言在AutoCAD中的角度捕捉只有当正交状态打开时的直和水平方向,对于其他特殊角度无能为力;另外,其网点捕捉也是相对于X轴和Y轴,无法实现其他方向的特殊长度捕捉,给绘图带来极大的不方便。

相关文档
最新文档