当前位置:文档之家› autocad lisp教程

autocad lisp教程

autocad lisp教程
autocad lisp教程

Lisp教程

一.Lisp基础知识

二.对话框基础

一.基本知识

第1节

--------------------------------------------------------------------------------

基本知识

AutoLISP是一种针对扩充及自订AutoCAD函数机能而产生,以LISP为基础的程序设计语言.LISP本身于50

目的是令使用者充份利用AutoCAD进行开发,直接增加及修改AutoCAD指令.

AutoLisp语言建基于普通的LISP语言上,并扩充了许多适用于CAD的特殊功能而形成.

是一种能以直译方式(不须先行编译)亦可于AutoCAD内部执行的直译性程序语言.

程序容易学习及撰写,程序即使出错亦不会对操作系统(如DOS,WINDOWS)有不良影响.

数据及程序均统一以串行(List)结构表示.

可直接调用几乎全部的AutoCAD命令.

既具备一般高级语言的基本结构和功能,亦有一般高级语言没有的强大图形处理能力.

内建于AutoCAD应用程序,不须另行购买;亦不须使用特定的编辑器或开发环境.

可配合AutoCAD提供的PDB,建立DCL(Dialog Control Language)文件创建对话框.

缺点: 执行速度较ObjectArx(旧称ARX,以C或C++程序开发,取代以前的ADS)程序慢;原程序不易保护;对低阶的硬件数据不易存取.

第2节

--------------------------------------------------------------------------------

函数(Function)

在AutoLISP程序语言中所有的成份都是以函数的形式出现,AutoLISP程序就是顺序执行连串的函数.函数的运行过程就是对函数的求值(结果)过程;函数的基本语法如下:

(函数名称参数1 参数2....)

e.g. (PRINC "AutoLISP Programming")

每一个完整的函数必须包在一对小括号( )内,左边为开括号,右边为关括号;如有若干数量的开括号,则一定有同等数量的关括号对应.

左边开括号后紧随函数名称.

函数名称与参数之间,或参数与参数之间须最少留一个空格.

函数可有一个或多个参数(也可能没有参数),视该函数而定.

函数名称不分大小写,即大小写字母视为相同.

第3节

--------------------------------------------------------------------------------

数据型态(Data Type)

整数(INT)

没有小数字的数值,32位有号数,范围从+2,147,483,647到-2,147,483,648

实数(REAL)

带小数字的数值,以倍精度浮点格式储存(最少14位小数) e.g. 12.5

当数值在1与-1之间时,必须加上前导零 e.g. 0.05

可以科学记号表示: 在E或e后加上次方值 e.g. 4.1e-6

字符串(STR)

一般文字,其前后必须加上双引号" e.g. "AutoCAD"

控制字符或脱逸码必须为小写,且须在字符前加上反斜线\ e.g. "\AutoCAD"

像素名称(ENAME)

是指定给图文件内对象的指针(Pointer,为16进位的数字卷标)

e.g.

像素名称在图文件内是唯一的,不会重复

对象的像素名称只在目前作业中有效,再开启图档时,会指定新的像素名称予该对象

档案(FILE)

以OPEN函数所开启档案的指针,作为其它函数(读写该档案)的自变量

选集(PICKSET)

转化(V ARIANT)

可将像素名称转换为可与ActiveX配搭使用的VLA-Object对象

符号(SYM)

用以储存静态数据的名称;例如内建或使用者定义的函数

符号名称不分大小写,可由任意长度的可打印字符组成;但下列的字符除外:

左括号( 右括号) 句点. 单引号' 双引号" 分号;

表(LIST)

亦称为串行,是放在一对小括号( ) 内,一个或多个元素的有序集合

e.g. (1.0 "Lisp" ( ) (5.6 7))

元素可以是字符串,符号,整数或实数;也可以是另一个表

元素与元素之间要用空格隔开,但元素与小括号之间则可以不隔空格

为便于存取表内各元素,每个元素均有其序号;从表的左边开始,第一个元素序号为0,依此类推

表的大小即为其顶层元素的数量(内层嵌套式的表,视为单一元素)

点对(Dotted Pair)亦是表的一种;表内有2个元素,中间以一圆点分隔,且元素与圆点之间亦须以空格分开若表内没有任何元素,称为空串行或空表;以( ) 或(NIL) 表示

第4节

--------------------------------------------------------------------------------

变数(Variable)

为程序执行中动态储存数据的符号名称;主要分为2类:

区域(Local)变量又称为局部变量;该变量只在该程序段落中有效,不能为其它程序使用

全域(Global)变量又称为整体变量;变量在所有程序段落中均可使用

变量名称与符号的限制相同,使用时宜采用有意义及易于辨别的名称

变量在赋值或使用前无须先行设定

相同的变量可以储存不同型态的数据(但同一时间内只可储存一种型态)

在指定新的数据之前,变量储存的内容会保持不变

赋值

将数据给予指定的变量储存

以内建函数SETQ进行(可用于绘图模式的指令行或AutoLISP程序),其语法如下:

(SETQ 变量名称1 资料1 [变量名称2 资料2 ....] )

e.g. (SETQ NAME "David" AGE 37 WEIGHT 72.5 POINT (LIST 10 20))

在函数名称之后,各参数以两个一组,每组左边为变量名称,右边为存入变量的数据

亦可将变量名称赋以空值(NIL) :

e.g. (SETQ OCCUPATION NIL)

要显示变量所储存的数据,可以使用内建函数PRINC(可用于绘图模式的指令行或AutoLISP程序),其语法如下:

(PRINC 变量名称)

e.g. COMMAND : (PRINC NAME) Result : David"David"

在绘图模式中,亦可于指令行中使用感叹号! 来显示变量内容,或作为指令选项的输入值;语法如下: !变量名称

e.g. COMMAND : !NAME Result : "David"

在Visual LISP的主控台窗口中,于提示符号_$ 后键入要显示的变量名称

_$变量名称

要检查变量所储存的数据型态,可使用内建函数TYPE;语法如下:

(TYPE 变量名称)

e.g. COMMAND : (TYPE NAME) Result : STR

若检查的变量没有储存数据,则会传回NIL

第5节

--------------------------------------------------------------------------------

练习(Exercises)

将四个坐标分别存入四个变量中,并以LINE或PLINE指令,配合四个坐标变量,画出正四边形. COMMAND : (SETQ POINT1 (LIST 0 0) POINT2 (LIST 0 10) POINT3 (LIST 10 10) POINT4 (LIST 10 0)) COMMAND : LINE ;直线段指令

COMMAND : !POINT1 ;第一点(左下角起点)

COMMAND : !POINT2 ;第二点(左上角)

COMMAND : !POINT3 ;第三点(右上角)

COMMAND : !POINT4 ;第四点(右下角)

COMMAND : C ;自动联机至起点以关闭四边形

画圆: 将圆心坐标及半径长度分别存入两个变量中(变量名称及数据型态自订)

COMMAND : (SETQ CEN (LIST 0 0) RAD 20) ;将圆心点设为坐标0,0;半径为20

COMMAND : CIRCLE ;执行划圆指令

Specify center.... : !CEN ;在提示后以变量CEN响应输入

Specify radius.... : !RAD ;在提示后以变量RAD响应输入

将不同型态的数据,分多次存入相同的变数内;每次均以PRINC及TYPE函数显示变量内容及其数据型态

COMMAND : (SETQ TEMP 1.2) ;将实数1.2存入变数TEMP

COMMAND : !TEMP Result : 1.2

COMMAND : (TYPE TEMP) Result : REAL

COMMAND : (SETQ TEMP "AutoLISP") ;将字符串存入变量TEMP

COMMAND : !TEMP Result : "AutoLISP"

COMMAND : (TYPE TEMP) Result : STR

二数值资料

第1节

--------------------------------------------------------------------------------

基本运算

加函数

(+ [数值参数1 数值参数2 ....] )

e.g. (+ 2.5 4 6) Result : 12.5

函数的结果为各参数之总和

若仅提供一个参数,则以0加上此参数的结果为返回值

若没有提供任何参数则传回0;各参数须为整数或实数型态

若所有参数均为整数,结果亦为整数;若其中一个参数为实数型态,结果会转换为实数

减函数

(- [数值参数1 数值参数2 ....] )

e.g. (- 10 2 3) Result : 5

结果为第一个(最左边)参数减去其右边各参数的总和

若只提供一个参数,返回值为0减去该参数的结果

若没有提供任何参数则传回0;各参数须为整数或实数型态

若所有参数均为整数,结果亦为整数;若其中一个参数为实数型态,结果会转换为实数

乘函数

结果为所有参数的乘积

若只提供一个参数,则返回值为该参数乘以1的结果

若没有提供任何参数则传回0;各参数须为整数或实数型态

若所有参数均为整数,结果亦为整数;若其中一个参数为实数型态,结果会转换为实数

除函数

(/ [数值参数1 数值参数2 ....] )

e.g. (/ 24 2 3) Result : 4

结果为第一个(最左边)参数除以其右边各参数的乘积

若仅提供一个参数,则返回值为该参数除以1的结果

若没有提供任何参数则传回0;各参数须为整数或实数型态

若所有参数均为整数,结果亦为整数;若其中一个参数为实数型态,结果会转换为实数

注意: 在本篇教程中,各函数的数值参数,均可以变量(储存值只可以是整数或实数,且不可以是空值nil)取代第2节

--------------------------------------------------------------------------------

练习(Exercises)

计算式(2+4)*3

COMMAND : (* 3 (+ 2 4)) Result : 18

计算式(50-8*5)/4

COMMAND : (/ (- 50 (* 8 5)) 4) Result : 2

注意: 上式的正确答案应是2.5,因为函数中的各参数均为整数,所以传回的结果亦为整数

递增及递减

递增

(1+ 数值参数)

e.g. (1+ 2) Result : 3

递减

(1- 数值参数)

e.g. (1- 4) Result : 3

三角函数(Trinagular Function)

正弦值

(SIN 弧度参数)

e.g. (SIN 1) Result : 0.841471

余弦值

(COS 弧度参数)

e.g. (COS 1) Result : 0.540302

反正切值

(A TAN 弧度参数)

e.g. (ATAN 1) Result : 0.785398

第3节

--------------------------------------------------------------------------------

其它数值处理

次方值

(EXPT 数值参数次方值)

e.g. (EXPT 2 4) Result : 16

若参数及次方值两个均为整数,返回值亦是整数;若其中一个为实数,结果为实数

开方根

(SQRT 数值参数)

(ABS 数值参数)

e.g. (ABS -123) Result : 123

余数

(REM [数值参数1 数值参数2 ....] )

e.g. (REM 50 26 5) = (REM (REM 50 26) 5) Result : 4

将参数1整除参数2的余数

若参数多于2个时,则会将余数再整除下一个参数,再得出余数;依此类推若其中一个参数为实数时,则结果为实数;否则为整数

最大公约数

(GCD 数值参数1 数值参数2 )

e.g. (GCD 81 57) Result : 3

两个参数均必须为整数值型态

自然对数

(LOG 数值参数)

e.g. (LOG 3.5) Result : 1.25276

是EXP函数的反函数;传回值为实数型态

自然反对数

(EXP 数值参数)

e.g. (EXP 1.25276) Result : 3.49999

是LOG函数的反函数;传回值为实数型态

第4节

--------------------------------------------------------------------------------

数值资料转型

实数转整数

(FIX 数值参数)

e.g. (FIX 12.56) Result : 12

只会截去小数部份(小数字不会4舍5入)

整数转实数

(FLOAT 数值参数)

e.g. (FLOAT 12) Result : 12.0

整数转字符串

(ITOA 数值参数)

e.g. (ITOA -17) Result : "-17"

数值转字符串

(RTOS 数值参数[模式[小数字] ] )

e.g. (RTOS 17.23333 2 3) Result : 12.266

若不设定模式,则依系统变量LUNITS 的设定值转换数值为字符串

若不设定小数字,则依系统变量LUPREC 的设定值转换

模式设定值可以是下列数值之一:

1 = 科学记号

2 = 十进制

3 = 英呎及十进制英吋

4 = 英呎及分数位英吋

5 = 分数

(ANGTOS 角度参数[模式[小数字] ] )

e.g. (ANGTOS 0.785398 0) Result : "45"

e.g. (ANGTOS 0.785398 4) Result : "N 45d E"

若不设定模式,则依系统变量AUNITS的设定值转换数值为字符串

若不设定小数字,则依系统变量AUPREC的设定值转换

模式设定值可以是下列数值之一:

0 = 度

1 = 度/分/秒

2 = 分度量

3 = 弪度

4 = 土地测量单位

当选用的模式为4,则传回的字符串受系统变量UNITMODE影响

反函数为ANGTOF;参阅第5篇教程

第5节

--------------------------------------------------------------------------------

数值资料检查

数值

(NUMBERP 数值参数)

e.g. (NUMBERP -3.45) Result : T

e.g. (NUMBERP "AutoLISP") Result : nil

注意: 在范例的传回值中,T表示函数的结果为真(成立),nil表示结果为假(不成立)

负数值

(MINUSP 数值参数)

e.g. (MINUSP -3.45) Result : T

e.g. (MINUSP 0) Result : nil

e.g. (MINUSP 3.45) Result : nil

零值

(ZEROP 数值参数)

e.g. (ZEROP 0) Result : T

e.g. (ZEROP 3.45) Result : nil

其它应用

最大值

(MAX [数值参数1 数值参数2 ....] )

e.g. (MAX -88 5 2) Result : 5

若没有提供任何参数,则传回值为0

最小值

(MIN [数值参数1 数值参数2 ....] )

e.g. (MIN -88 5 2) Result : -88

若没有提供任何参数,则传回值为0

第6节

--------------------------------------------------------------------------------

练习(Exercises)

计算下列算式:

(+ 1234567890 1234567890) Result : -1825831516

上式中两个数值参数均为整数,而结果值大于整数型态所能容许之范围;固导致发生溢位问题,产生无效的结果.修正算式如下: 只要将其中一个参数改为实数型态即可.

(+ 9876543210 1234567890) Result : 1.11111e+010

上式中两个数值参数均为整数,但其中一个(第一个)参数巳大于整数型态所能容许之范围;系统会自动将此参数先行转为实数型态才计算.

计算下列算式:

(FIX (SQRT (+ 1 (MAX 20 10 40 30)))) Result : 6

---- 最先执行的是最内层的算式(MAX 20 10 40 30) ,求出最大值为40

---- 其次执行加函数,将MAX函数所得的最大值加1,结果为41

---- 再利函数SQRT,将41开方根,结果为6.4031

---- 最后使用FIX函数,截去其小数字,得到最后的结果为6

三程序设计

第1节

--------------------------------------------------------------------------------

使用者定义函数

是将一群表示式组合成一个函数或指令

可应用于绘图模式的指令行提示,Visual LISP主控台,或供其它自定义函数内的表示式呼叫使用

AutoLISP原始程序代码均以纯文字格式存盘,扩展名为LSP(2000版可编译成扩展名为FAS的档案可以一般文字编辑器进行开发,如DOS的EDIT,WINDOWS的WORD或WORDPAD等

一个自定函数内最少要有一个表达式

在原程序文件(LSP)里,自定义函数以DEFUN函数开始;其语法如下:

(DEFUN [C:] 函数名称( [自变量串行...] [/ 局部变数串行...] ) 表达式...)

在呼叫带有自变量的自定函数时,必须同时提供与定义函数时,同等数量的参数,使各参数传入自定函数的各自变量中

自变量被视为一种特殊类型的局部变量,无法用于该自定函数以外的其它函数

若自定函数中无须设定任何自变量,亦必须以空串行( )加在函数名称之后

若有提供局部变量,必须以斜线/ 加在局部变量的开头(即使前面没有自变量串行)

各自变量,斜线,局部变量之间要以空格分隔;但与左右小括号之间则不须以空格分开

若自变量串行中有相同名称的自变量出现,则会忽略第一个以后的相同自变量;变数亦是一样

若在函数名称前加上C:,表示该函数可以在绘图模式的指令行提示下,其执行方式与内建函数相同;亦可以在任何内建命令(执行中)的提示后,以通透方式执行(但须将函数名称包在一对小括号中) 若在函数名称前没有加上C:,在指令行提示下,必须将函数名称包在一对小括号中才可执行

不可以在执行一自定函数时,以通透方式执行另一自定函数

第2节

--------------------------------------------------------------------------------

加载程序

自定函数在使用前,都要将其所在的程序文件(扩展名为LSP)加载才可执行

ACAD.LSP程序文件(预设在SUPPORT子目录内)会在启动AutoCAD时自动加载

(LOAD "程序文件名称" [加载失败] )

e.g. (LOAD "TEST")

若程序文件之文件名为LSP,则在程序文件名称之后,可以不加上扩展名

若有需要,系统会顺序尝试其它的扩展名: VLX FAS LSP

若程序文件不在系统的支持目录下,则需在文件名前加上目录路径

注意: 必须以正斜线/ 或两个反斜线\\ 作为目录的分隔符

可以在加载失败的参数中提供字符串,以供加载失败时显示;亦可提供有效的自定函数,该函数在加载程序文件失败时会被执行

注意:

在程序文件加载后,在提示行显示的返回值,一般是该程序文件中,最后被定义的函数名称

或是在程序文件内没有包含在自定函数中,最后一个表达式的执行结果

第3节

--------------------------------------------------------------------------------

练习(Exercises)

启动文字编辑器,编写一AutoLISP程序作两个同心圆(第1个圆半径为50,第2个圆半径为80),程序代码如下所示:

(DEFUN C: 2CIRCLE () (SETQ CEN (LIST 0 0) RAD 50)

(COMMAND CIRCLE CEN RAD)

(COMMAND CIRCLE CEN (+ RAD 30)))

---- 输入后以纯文字格式存盘(C:\TEST.LSP)

---- 在AutoCAD绘图模式的指令行提示后,用LOAD函数将程序文件加载

COMMAND : (LOAD "C:/TEST")

---- 在指令行提示后,输入程序(函数)名称执行

COMMAND : 2CIRCLE

程序说明

1 使用DEFUN建立自定函数的名称,并用SETQ函数将中心点(LIST 0 0)存入变数CEN,半径(50)存入变数RAD中

2 使用COMMAND函数执行AutoCAD内建指令CIRCLE,并以变量CEN(圆的中心点)及变数RAD(圆的半径)回应

3 与第2行大致相同,但在指定其半径时,先将储存半径的变量加30,使划出半径为80的圆;注意最右边的关括号,与第1行DEFUN左边的开括号是一对的

启动文字编辑器,开启TEST.LSP程序文件,复制2CIRCLE至新程序2C,并改为传入自变量方式执行;程序代码如下:

(DEFUN 2C (CEN RAD) (COMMAND CIRCLE CEN RAD)

(COMMAND CIRCLE CEN (+ RAD 30)))

---- 输入后以纯文字格式存盘

---- 在AutoCAD绘图模式的指令行提示后,用LOAD函数将程序文件重新加载

---- 在指令行提示后,输入程序(函数)名称执行

COMMAND : (2C (LIST 0 0) 50)

第4节

--------------------------------------------------------------------------------

批注

单行批注分号;

表示在分号右边(同一行)的字符均为批注,程序执行时会将其忽略

多行批注;| |;

表示在两个批注符号中间所有字符皆为批注,即使字符跨越多行

关系运算

在各个关系运算中,都会传回一逻辑值;若关系成立,传回T,否则会传回nil

各参数可以是字符串,整数或实数型态;若以字符串进行比较,则会以字符串的ASCII码为准

若函数中只有一个参数,传回值恒为T

等于函数

(= 参数1 [参数2 ....] )

不等于函数

(/= 参数1 [参数2 ....] )

若参数1不等于其后任何一个参数,即传回T e.g. (/= 1 2.0) Result : T

e.g. (/= "a" CHR(65)) Result : T

e.g. (/= 10 30 40 10 20) Result : T

小于函数

(< 参数1 [参数2 ....] )

各参数顺序以2个为一组比较,若各组左边的参数均小于右边的参数,即传回T

e.g. (< 1 2) Result : T

e.g. (< "a" CHR(65)) Result : T

大于函数

(> 参数1 [参数2 ....] )

各参数顺序以2个为一组比较,若各组左边的参数均大于右边的参数,即传回T

e.g. (> 1 2) Result : nil

e.g. (> "a" CHR(65)) Result : nil

小于或等于函数

(<= 参数1 [参数2 ....] )

各参数顺序以2个为一组比较,若各组左边的参数均小于或等于右边的参数,即传回T

e.g. (<= 1 2) Result : T

e.g. (<= 2 2) Result : T

e.g. (<= "a" CHR(65)) Result : T

大于或等于函数

(>= 参数1 [参数2 ....] )

各参数顺序以2个为一组比较,若各组左边的参数均大于或等于右边的参数,即传回T

e.g. (>= 1 2) Result : nil

e.g. (>= 2 2) Result : T

e.g. (>= "a" CHR(65)) Result : nil

第5节

--------------------------------------------------------------------------------

逻辑运算

且运算

(AND [表达式....] )

若各表达式的传回值均为T,函数即返回T 值;若其中一个传回值为nil,函数传回nil

e.g. (AND (< 1 2) (> 8 5)) Result : T

或运算

(OR [表达式....] )

若各表达式的传回值均为nil,函数即返回nil 值;若其中一个传回值为T,函数传回T

e.g. (OR (> 1 2) (> 8 5)) Result : T

否定运算

(NOT 表达式)

若表达式的传回值为T,函数即返回nil 值;相反若表达式传回值为nil,函数传回T 可用于检查传回值是否为nil

另有一NULL函数与NOT函数功能相似

e.g. (NOT (< 1 2)) Result : nil

COMMAND : (= (- 50 25) (SQRT 625)) Result : T

设计一简单程序(名称为AIR),在呼叫程序时,检查传入的数值自变量(为空气污染指数)是否大于200(即严重空气污染)

---- 启动文字编辑器,开启TEST.LSP程序文件,输入下列程序代码:

(DEFUN AIR (NUM) (> NUM 200))

---- 输入后存盘(纯文字格式)

---- 在AutoCAD绘图模式的指令行提示符号后,使用LOAD函数重新加载程序文件

COMMAND : (LOAD "C:/TEST")

---- 在AutoCAD绘图模式的指令行提示符号后,输入自定函数名称及参数执行

COMMAND : (AIR 175) Result : nil

COMMAND : (AIR 215) Result : T

四流程控制

第1节

--------------------------------------------------------------------------------

条件判断

是利用条件函数,配合关系及逻辑运算所设定的一些准则,令程序自行分析,因应情况作出适当行动.

单一条件

(IF 条件表达式是表达式[否表达式] )

函数先检查条件表达式,若其传回值为T,便会执行其后的是表达式

若有提供否表达式,且条件表达式的传回值为nil,函数将不会执行(跳过)是表达式而执行否表达式

若没有提供否表达式,且条件表达式的传回值为nil时,函数将不作任何事情

IF函数可以巢状方式嵌套,即在是或否的表达式中加入另一个IF函数

练习(Exercises)

判断空气污染指数: 大于100 = Very High, 51至100 = High, 26至50 = Medium, 25或以下= Low

---- 启动编辑器,开启C:/TEST.LSP程序文件;新增AIR-1自定函数,程序代码如下:

(DEFUN AIR-1 (NUM) (IF (> NUM 100) (PRINC "Very High"))

(IF (AND (> NUM 50) (<= NUM 100)) (PRINC "High"))

(IF (AND (> NUM 25) (<= NUM 50)) (PRINC "Medium"))

(IF (<= NUM 25)) (PRINC "Low"))

(PRINC))

程序说明

1 设定函数名称,并将数据存入自变量NUM内;用IF函数判断变量NUM是否大于100;若是则显示字符串Very High响应

2 用IF函数判断变量NUM是否大于50且(AND)小于或等于100;若是则显示High响应

3 用IF函数判断变量NUM是否大于25且(AND)小于或等于50;若是则显示Medium

4 用IF函数判断变量NUM是否小于或等于25;若是则显示Low

5 是一个没有提供任何自变量的PRINC函数;用以抑制显示答案时尾部符加的nil 或重复的传回值;而最右一个关括号,是用以对应第1行最左边的开括号

IF函数的巢状练习: 修改上一课的程序练习,将多个IF函数合并成巢状嵌套

---- 启动文字编辑器,开启C:/TEST.LSP程序文件

---- 新增程序AIR-2,其程序代码如下:

(DEFUN AIR-2 (NUM) (IF (> NUM 50) (PRINC (IF (> NUM 100) "Very high" "High"))

(PRINC (IF (> NUM 25) "Medium" "Low")))

(PRINC))

程序说明

1 设定函数名称,并将数据存入自变量NUM内;用IF函数判断变量NUM是否大于50;

若条件成立(变量NUM大于50)时,再用另一个IF函数判断变量是否大于100;

若条件成立(变量NUM大于100)时,使用PRINC函数显示字符串Very High,否则显示High

2 若在第1个IF函数判断中,条件不成立(变量NUM不大于50)时;

再用另一个IF函数判断变量是否大于25;

若条件成立(NUM大于25)时,显示字符串Medium,否则显示字符串Low

3 是一个没有提供任何自变量的PRINC函数;用以抑制显示答案时尾部符加的nil 或重复的传回值;而最右一个关括号,是用以对应第1行最左边的开括号

注意:

第1行最后一个关括号是对应前面的PRINC函数,尾2的关括号则是对应IF函数(判断NUM是否大于100)

第2行最后一个关括号是对应第1行的IF函数(判断NUM是否大于50),尾2的关括号则是对应PRINC 函数,尾3的关括号则是对应IF函数(判断NUM是否大于25)

最右边的关括号是对应第1行最左边的开括号

PROGN 函数

在以上各范例中,执行的表达式均为单一的函数运算;若要在表达式中顺序执行一连串的函数,便要将各函数包含在一个PROGN函数内;函数的传回值会是该PROGN函数中,最后一个表达式的运算结果

---- 修改TEST.LSP程序文件的AIR-1程序,第1个IF函数如下,其余的IF函数请自行修改

e.g. (IF (> NUM 100) (PROGN (SETQ DISP "Very High") (PRINC DISP)))

注意: 最后一个关括号是对应前面的IF函数(判断变量NUM是否大于100)

尾2的关括号是对应PROGN函数(用以包含SETQ及PRINC函数)

尾3的关括号是对应PRINC函数的

第2节

--------------------------------------------------------------------------------

条件判断

(COND [ (条件表达式是表达式) ....] )

函数会顺序检查各条件表达式;直到其中一个条件成立(传回T),即执行该条件式所对应的是表达式每个条件表达式只对应一个是表达式,而没有否表达式

若条件式成立且执行对应的是表达式后,则不会再对余下的其它条件表达式进行检查

若只有条件表达式而没有对应之是表达式,则只会传回条件表达式的逻辑值

若没有提供任何条件表达式及是表达式,函数传回值恒为nil

练习(Exercises)

新增程序AIR-3,以改善上一课AIR-1程序;用一个COND函数判断多个条件表达式

DEFUN AIR-3 (NUM) (COND

((> NUM 200) (PRINC "Severe"))

((> NUM 100) (PRINC "Very High"))

((> NUM 50) (PRINC "High"))

((> NUM 25) (PRINC "Medium"))

((> NUM 0) (PRINC "Low"))

(T (PRINC "Cannot Check")))

(PRINC))

程序说明

1 设定函数名称,并将数据存入自变量NUM内;用COND函数进行多重判断

2 判断变量NUM是否大于200,若条件成立,则显示Severe 讯息;第3至6行依此类推

7 注意条件式为一个T 字母,表示条件式恒为真(成立),显示讯息Cannot Check

作用是当以上各条件式均不成立时(变量小于或等于0),即执行此一表达式

第3节

--------------------------------------------------------------------------------

循环(Loop)

配合条件判断,关系及逻辑运算,令程序不断重复一些动作,以提高效率及减少重复动作时的人为错误可以多个循环形成巢状(嵌套式)循环,即在一个循环内嵌套另一个(或多个)循环

指定的重复次数必须为正整数,亦可以是储存正整数的变量名称

(REPEAT 重复次数[表达式....] )

e.g. (REPEAT 10 (PRINC "David")) ;重复显示David字符串10次

重复

(WHILE 条件表达式[是表达式....] )

若条件表达式的传回值为T,即会顺序执行函数内各表达式

各表达式顺序执行完后,程序会返回函数的开头,重新检查条件表达式的传回值

若条件表达式的传回值为nil,函数内各表达式将不会被执行

e.g. (SETQ COUNT 1) ;将1存入变数COUNT

(WHILE (<= COUNT 10) ;WHILE函数并检查变量COUNT是否<=10

(PRINC "David") ;若条件成立则以PRINC函数显示David字符串

(SETQ COUNT (1+ COUNT))) ;变量COUNT递增1,并将新值重新存入变量COUNT中取代原值注意: 第4行最右边的关括号,是对应第2行WHILE函数的开括号

无限循环

又称为死循环,即循环的条件判断式传回值恒为T,令循环不断重复而无法结束;在上例中:

---- 若WHILE函数的条件表达式设定为(T) ;即条件永远成立

---- 不作SETQ函数,或不将变量COUNT递增;变量COUNT储存值恒久不变,导致条件式永远成立第4节

--------------------------------------------------------------------------------

练习(Exercises)

编写一程序SUM并将自变量存在NUM变量内,计算1+2+3+4 ....至变数NUM的总和

(DEFUN SUM (NUM) (SETQ COUNT 1 TOTAL 0)

(WHILE (<= COUNT NUM)

(SETQ TOTAL (+ TOTAL COUNT)

COUNT (1+ COUNT))

)

(PRINC TOTAL) (PRINC))

程序说明

2 WHILE循环函数,并设定进入循环的条件式(变量COUNT小于或等于变量NUM)

3 若条件成立即进入循环内部,先将变量TOTAL加上变量COUNT,再用SETQ函数存回变量TOTAL中,覆盖原值

4 将变量COUNT递增1,存回变数COUNT并覆盖原值

5 关括号与第2行的WHILE函数左边的开括号对应

6 循环结束后,用PRINC函数显示变量TOTAL(总和)的内容

程序流程

假设执行程序时传入变量NUM的数值为10

---- 变数初始值COUNT = 1 TOTAL = 0

---- 判断变量COUNT是否<=变量NUM COUNT = 1 TOTAL = 0

---- 变量COUNT(现值1)小于NUM,进入循环;将TOTAL(现值0)加上COUNT,存回变数TOTAL COUNT = 1 TOTAL = 1

---- 变数COUNT(现值1)递增1变为2,存回变数COUNT COUNT = 2 TOTAL = 1

---- 返回WHILE函数的开头,重新判断条件式

---- 变量COUNT(现值2)小于NUM,进入循环;将TOTAL(现值1)加上COUNT,存回变数TOTAL COUNT = 2 TOTAL = 3

---- 变数COUNT(现值2)递增1变为3,存回变数COUNT COUNT = 3 TOTAL = 3

---- 返回WHILE函数的开头,重新判断条件式

---- 变量COUNT(现值3)小于NUM,进入循环;将TOTAL(现值3)加上COUNT,存回变数TOTAL COUNT = 3 TOTAL = 6

部份过程省略

---- 返回WHILE函数的开头,重新判断条件式

---- 变量COUNT(现值10)仍等于NUM,进入循环;将TOTAL(现值45)加上COUNT,存回变数TOTAL COUNT = 10 TOTAL = 55

---- 变数COUNT(现值10)递增1变为11,存回变数COUNT COUNT = 11 TOTAL = 55

---- 返回WHILE函数的开头,重新判断条件式

---- 变量COUNT(现值11)巳大于NUM(本范例假设为10),条件判断不成立,循环结束COUNT = 11 TOTAL = 55

---- 显示变量TOTAL的现存值,程序结束

尝试用IF函数检查输入的自变量是否小于或等于0;若条件成立则不执行余下的程序

(DEFUN SUM (NUM) (IF (<= NIM 0) (PRINC "Input Error")

(PROGN

略过WHILE 及PRINC 函数

)

)

(PRINC))

程序说明

3 尾3行的关括号是对应第2行的PROGN函数

4 尾2行的关括号是对应第1行的IF函数

5 最后一行最右边的关括号是对应第1行的DEFUN函数

五输入输出

第1节

--------------------------------------------------------------------------------

输入函数

让AutoCAD应用程序可以提示使用者输入程序所需的数据;这些输入函数一般都是以GET开头;当程序执行至输入函数时,程序便会暂停,等待使用者输入指定类型的数据后,程序即会继续执行.亦可在函数内指定要显示的提示字符串,若不提供则没有任何提示.

输入整数

(GETINT [提示字符串] )

e.g. (GETINT "Input Number : ")

输入的范围从-32,768到+32,767之间;若超出范围,会有警告讯息

若输入的数据不是整数型态,如文字或是实数,会显示警告讯息

若输入空格或按下ENTER键响应,输入值为nil

输入实数

(GETREAL [提示字符串] )

e.g. (GETREAL "Input Number : ")

若输入的数据是字符串型态,会显示警告讯息;若输入整数,则会自动转为实数

若输入空格或按下ENTER键响应,输入值为nil

输入字符串

(GETSTRING [模式] [提示字符串] )

e.g. (GETSTRING T "Input Name : ")

若有提供模式参数且不是nil 值,使用者即可在输入的字符串中包含空格;但此时必须按ENTER键结束输入

若没有提供模式参数或该参数为nil 值,要在字符串中包含空格时,必须在字符串的前后加上双引号"

输入时不须在字符串的前后加上双引号(上述的情况例外)

若输入空格(没有模式参数或为nil 值时)或按ENTER键响应时,输入值为"",即空字符串

输入选取点

(GETPOINT [基准点] [提示字符串] )

e.g. (GETPOINT (LIST 0 0) "Select Point : ")

可以在屏幕以指向设备(一般是鼠标)选取,或以键盘直接输入坐标值亦可

若有提供基准点(目前UCS的2D或3D坐标),会从基准点出现伸缩线到十字光标所在位置

可接受单一整数或实数作为长度,代替基准点参数;此时会以系统变量LASTPOINT为基准点,以目前十字光标的位置与LASTPOINT的角度为方向,以长度为距离,求出新的输入点

传回值为目前UCS的三维坐标;若输入空格或按下ENTER键响应,输入值为nil

输入角度

(GETANGLE [基准点] [提示字符串] )

e.g. (GETANGLE (LIST 0 0) "Select Point : ")

若有提供基准点(目前UCS的2D坐标),会从基准点出现伸缩线到十字光标所在位置

若没有提供基准点,可以在屏幕以指向设备(一般是鼠标)选取两点,以第一点作为基准点

可从键盘直接输入角度值;不论是用指向设备选取或键盘输入,均自动转为弪度传回

弪度以0弪度方向(由系统变量ANGBASE设定)算起,沿反时钟方向增加

输入角度

(GETORIENT [基准点] [提示字符串] )

输入对角点

(GETCORNER 基准点[提示字符串] )

e.g. (GETCORNER (LIST 0 0) "Select Point : ")

必须提供以目前UCS为准的基准点参数;与目前十字光标位置构成伸缩的矩形

传回值为目前UCS的三维坐标;若输入空格或按下ENTER键响应,输入值为nil

可直接从键盘输入坐标值,以代替从屏幕点选

输入距离

(GETDIST [基准点] [提示字符串] )

e.g. (GETDIST (LIST 0 0) "Select Point : ")

会从基准点(目前UCS的2D坐标)出现伸缩线到十字光标所在位置

若没有提供基准点,可以在屏幕以指向设备(一般是鼠标)选取两点,以第一选取点作为基准点

若提供3D的点坐标,则传回值是3D的距离;但若设定了INITGET函数第64位,则会忽略Z坐标而传回2D 距离

输入关键词

(GETKWORD [提示字符串] )

e.g. (GETKWORD "Yes or No (Y/N)")

有效的关键词必须在此函数使用前,先行以INITGET函数来设定

若输入一个无效的关键词时,系统会显示警告讯息并提示再次输入

输入关键词后,会传回输入的关键词的字符串;若按ENTER键则传回nil

标准档案对话框

(GETFILED 标题预设档名预设扩展名模式)

e.g. (GETFILED "Select file" "C:/TEST" "DWG" 8)

预设文件名可包含目录路径,若为空字符串"",则会是AutoCAD启动目录的全部档案

若预设扩展名为空字符串,则显示所有类型的档案;若扩展名为DWG,会在对话框中显示预览影像

若对话框取得文件名称,函数会传回指定的文件名称及目录路径,否则传回nil

模式是控制对话框行为的整数值;若要一次过设定多种模式,可将其模式对应的数值累加

1 (0位) 建立新的档案;若是要开启旧档则切勿使用;若档案巳存在会显示错误讯息

4 (2位) 此位若未设定,则只会接受指定的预设扩展名,若档案不加扩展名,则自动加上预设的扩展名

8 (3位) 若设定此位且未设定0位,档案会依支持路径搜寻;若找到则只会传回文件名称,不会传回路径.若未设定此位,则会传回完整的目录路径文件名

16 (4位) 若设定此位,或是预设文件名以路径分隔元结尾,则仅显示该目录路径的档案,且文件名称输入框会变为空白

32 (5位) 若设定此位及0位,若指定的档案巳经存在则会被覆盖,且覆盖前不会有警告讯息

64 (6位) 若指定了URL,则请勿传输远程档案

128 (7位) 完全不允许使用URL

第2节

--------------------------------------------------------------------------------

设定关键词

(INITGET 模式关键词串)

e.g. (INITGET 7 "Yes No")

每个关键词仅可以含有字母,数字及连字符号(-);有以下两种方式缩写关键词:

---- 关键词的必要部份用大写,其余用小写 e.g. "Yes No"

---- 整个关键词全部为大写,以逗号分隔,再重复简写的部份 e.g. "YES,Y NO,N"

若关键词全部为小写或大写,且没有逗号及缩写部份,则使用者必须输入整个关键词才能辨析

每个关键词之间必须以空格分开

本函数适用于除GETSTRING以外的其它输入函数(但各函数可设定的模式略有不同)

模式的作用为控制使用者的输入,为整数值;若要一次过设定多个模式,可将该模式对应的数值累加

1 (0位) 不接受使用者按下ENTER键作为响应

2 (1位) 不接受使用者输入0作为响应

4 (2位) 不接受使用者输入负数作为响应

8 (3位) 允许输入超出图面范围以外的坐标点(即使目前系统数数LIMCHECK设定为ON)

16 (4位) 目前并未使用

32 (5位) 使用虚线绘制伸缩线或方框;但如果POPUPS系统变量设定为0,则会忽略此位的设定

64 (6位) 若设定此位,则各输入函数只传回2D的坐标;否则会传回3D的坐标

128 (7位) 允许任意的输入;这位优先于0位的设定值;若输入时按ENTER响应,则会传回空字符串

第3节

--------------------------------------------------------------------------------

输出函数

显示或写入档案

(PRIN1 字符串/ 表达式[档案指标] )

e.g. (PRIN1 "David")

所有包含在字符串中的控制字符会当为普通字符显示

若没有提供字符串或表达式,则函数将不作任何事情

结果会在屏幕显示两次,第一次为函数功能所显示的,第二次为系统的传回值

档案指针必须是以OPEN函数,开启档案后传回的指标;若没有提供,所有传回值均显示在屏幕上;若有提供,字符串将写入该档案内

e.g. (PRIN1 "David" FILE_ID)

显示或写入档案

(PRINC 字符串/ 表达式[档案指标] )

e.g. (PRINC "David")

所有包含在字符串中的控制字符会正常运作

其它与PRIN1函数相同

显示

(PROMPT 字符串参数)

e.g. (PROMPT "David")

在双屏幕规划中,可将字符串显示在两个屏幕上

字符串显示后,传回值恒为nil

显示

(ALERT 字符串参数)

e.g. (ALERT "David")

在对话框中,可显示的列数量及每列可显示的字符数量,受平台设备,窗口大小及解像度影响

第4节

--------------------------------------------------------------------------------

练习(Exercises)

在TEST.LSP程序文件中,新增程序2C-1,以修改第三篇课程的2C程序: 在新增的程序中,使用输入函数取得使用者输入,取代在呼叫旧程序时同时传入自变量的做法

(DEFUN C:2C-1 ( ) (SETQ CEN (GETPOINT "Select center point : "))

(COMMAND "CIRCLE" CEN (GETDIST CEN "Input radius : "))

(PRINC))

程序说明

1 设定函数2C-1,并用GETPOINT函数取得使用者选取的坐标点(圆心)再用SETQ函数将坐标存入变量CEN 中

2 用COMMAND函数执行CIRCLE指令,随即以变量CEN响应以设定圆心点位置,再使用GETDIST函数,取得使用者输入的长度作为半径响应CIRCLE指令

在TEST.LSP程序文件中,新增程序RECT,以对角的两点建立矩形(聚合线),再询问是否在矩形中加上对角线,最后将图形以输入的角度旋转.在程序中要等别注意如何将坐标分解及重组(第3,4行的程序代码)

(DEFUN C:RECT ( ) (SETQ PT_START (GETPOINT "Select first point")

PT_END (GETCORNER PT_START "Select second point")

PT_TMP1 (LIST (CAR PT_START) (CADR PT_END))

PT_TMP2 (LIST (CAR PT_END) (CADR PT_START)))

(COMMAND "PLINE" PT_START PT_TMP1 PT_END PT_TMP2 "C")

(COMMAND "SELECT" "L" "")

(INITGET 128 "Yes No")

(SETQ YESNO (GETKWORD "Diagonal Line (Y/N) : "))

(IF (= YESNO "Yes") (PROGN

(COMMAND "LINE" PT_START PT_END "")

(COMMAND "SELECT" "P" "L" "")

(COMMAND "LINE" PT_TMP1 PT_TMP2 "")

(COMMAND "SELECT" "P" "L" "")

) )

(COMMAND "ROTATE" "P" "" PT_START

(* (GETANGLE PT_START "Rotate Angle : ") (/ 180 PI)))

(PRINC))

程序说明

1 设定函数名称,并用GETPOINT函数取得第1点坐标,存入变量PT_START

2 使用GETCORNER函数取得第2点(矩形对角点)坐标,存入变数PT_END

3 抽出变数PT_START的X坐标,及PT_END的Y坐标,结合成新坐标并存入变数PT_TMP1

4 抽出变数PT_END的X坐标,及PT_START的Y坐标,结合成新坐标并存入变数PT_TMP2

5 用COMMAND函数执行PLINE指令,顺序设定四个角点位置,最后以"C"选项将聚合线封闭

6 用COMMAND函数执行SELECT指令,并选用Last模式,将刚建立的聚合线选取

7 以INITGET函数设定关键词Yes及No

8 用GETKWORD函数询问使用者是否要在矩形中加上对角线,并将传回值存入变数YESNO中

9 用IF函数判断变量YESNO,若使用者输入Y,则以PROGN函数包含各顺序执行的指令

10 以COMMAND函数执行LINE指令划出第1条对角线

12 以COMMAND函数执行LINE指令划出第2条对角线

13 用COMMAND函数执行SELECT指令,用Previous模式选取对上一个选集的对象(聚合线和直线段),再选用Last模式,将刚建立的对角线选取并加入新选集中

14 右边的关括号是对应IF函数,左边的关括号则是对应PROGN函数

15 以COMMAND函数执行ROTATE指令,将对上一个选集(以Previous模式响应),绕变量PT_START为基准点转旋

16 旋转的角度以GETANGLE函数取得;因为函数的传回值是弪度,所以要乘以180除PI(弪度3.14159等于180度),使弪度转换为角度值

新增程序AIR-4,并将第4篇课程的AIR-3程序修改为: 在程序中直接要求使用者输入空气污染指数(只可输入正整数或实数,但不可以是0,负数或以ENTER响应),而不是在呼叫程序时以自变量的方式传入

(DEFUN C:AIR-4 ( ) (INITGET 7)

(SETQ NUM (GETINT "Input number"))

COND函数及其余程序省略

程序说明

1 设定函数名称,并用INITGET函数,设定输入模式为7,没有任何关键词

(1 = 不可以ENTER 2 = 不可以是0 4 = 不可以是负数所以设定值为1+2+4 = 7)

2 用GETINT函数(或GETREAL)函数取得使用者输入的数值并存入变量NUM中,以便进行后续的判断程序六字符串资料

第1节

--------------------------------------------------------------------------------

字符串函数

字符串连结

(STRCAT [字符串参数1 [字符串参数2]....] ) e.g. (STRCAT "David and " "Katy") Result : "David and Katy"

如果仅有一个参数,则传回该参数

若没有提供任何参数,则传回零长度的字符串(空字符串)

e.g. (STRCA T) Result : ""

字符串长度

(STRLEN [字符串参数1 [字符串参数2]....] ) e.g. (STRLEN "David") Result : 5

如果有多个参数,会传回所有字符串参数的长度总和

e.g. (STRLEN "David" "Katy") Result : 9

如果没有提供参数,或字符串参数为空字符串,则传回值为0

e.g. (STRLEN) 或(STRLEN "") Result : 0

截取字符串

(SUBSTR 字符串参数开始位置数值[截取长度] ) e.g. (SUBSTR "David and Katy" 7 3) Result : and

字符串参数中第一个字符(最左边)的位置编号为1,依此类推

空格亦占一个字符位置及编号

起始位置数值必须为正整数;若其数值大于整个字符串的长度,则传回空字符串""

e.g. (SUBSTR "David and katy" 100) Result : ""

截取长度亦必须为正整数;若没有提供此参数,则传回起始位置及其右边的全部字符

e.g. (SUBSTR "David and katy" 11) Result : "Katy"

CAD入门到精通详细教程

CD1 初级篇 1认识AutoCAD2007 1.安装AutoCAD 2007 AutoCAD 是美国Autodesk 企业开发的一个交互式绘图软件,是用于二维及三维设计、绘图的系统工具,现已广泛用于机械、电子、建筑、化工、制造、轻工及航空航天等领域,用户可以使用它来创建、浏览、管理、打印、输出、共享及准确应用富含信息的设计图形. ◆AutoCAD2007简体中文版本的安装 装AutoCAD 需要两张光盘。放入AutoCAD 2007 光盘(1)开始安装。出现提示时,放入AutoCAD 2007 磁盘(2)完成安装。 1.在AutoCAD 媒体浏览器中,在“安装”选项卡上单击“单机安装”。 2.在“安装AutoCAD 2007”中,单击“安装”按钮。 3.在“Autodesk 安装程序”页上单击“确定”,以安装所需的支持组件。 4.请确保产品序列号可用。没有序列号将无法安装AutoCAD。 5.安装成功后启动AutoCAD 2007,就可以进入软件操作窗口。 2.AutoCAD 2007 新的特点 1、与2006比,2007速度快了点。 2、AUTOCAD 2007还有一个优点,就是安装完后,第一次启动,他会把以前版本的一些设置转过来。 3、AUTOCAD 2007加强了块内编辑功能。 4、AutoCAD 2007的三维界面与3DMAX类似,从这里可以看出AutoCAD将成为又一个功能强大3D建模软件。 AutoCAD 2007非常适合那些用手工进行概念设计的专业人员,它能够加快设计进程,欲了解更多关于AutoCAD 2007的特性及优点,可访问https://www.doczj.com/doc/179356772.html,/autocad. 3.AutoCAD 2007的新功能 AutoCAD 2007 与以往版本的AutoCAD软件有如下变化和改进: 文件格式 AutoCAD 2007将采用新的DWG文件格式,但仍向后兼容。AutoCAD2007可以另存为2004,2000甚至是以dxf为格式的R14。在选项对话框中你可以设置缺省的文件保存格式。打开文件速度更快。

AutoCAD2010全套教程

AutoCAD2010教程 第1课计算机绘图技术概述 本课要点:(1)计算机绘图技术简介 (2)现有计算机绘图技术 (3)一般性介绍,以自学为主。 计算机辅助设计(CAD:Computer Aided Design)的概念和内涵是随着计算机、网络、信息、人工智能等技术或理论的进步而不断发展的。CAD技术是以计算机、外围设备及其系统软件为基础,包括二维绘图设计、三维几何造型设计、优化设计、仿真模拟及产品数据管理等内容,逐渐向标准化、智能化、可视化、集成化、网络化方向发展。 60-70年代提出并发展了计算机图形学、交互技术、分层存储符号的数据结构等新思想,为CAD技术的发展和应用打下了理论基础。 80年代图形系统和CAD/CAM工作站的销售量与日俱增,美国实际安装CAD系统至1988年发展到63000套。CAD/CAM技术从大中企业向小企业扩展;从发达国家向发展中国家扩展;从用于产品设计发展到用于工程设计和工艺设计。 90年代由于微机加视窗95/98/NT操作系统与工作站加Unix操作系统在以太网的环境下构成了CAD系统的主流工作平台,因此现在的CAD技术和系统都具有良好的开放性。图形接口、图形功能日趋标准化。 21世纪初是CAD软件重新洗牌,重新整和阶段。近几年里,CATIA、UG等软件公司合并,以及AutoCAD等软件在原来二维绘图为主基础上,逐渐完善、开发了三维功能。随着Internet 技术的广泛应用,协同设计、虚拟制造等技术的发展,要求一个完善的CAD软件必须能够满足现代设计人员的各种要求,如CAD与CAM的集成、无缝连接及较强的装配功能、渲染、仿真、检测功能。 在CAD系统中,综合应用文本、图形、图像、语音等多媒体技术和人工智能、专家系统等技术大大提高了自动化设计的程度,出现了智能CAD新学科。智能CAD把工程数据库及其管理系统、知识库及其专家系统、拟人化用户接口管理系统集于一体,形成了完美的CAD 系统结构。 CAD的三维模型有三种,即线框、曲面和实体。早期的CAD系统往往分别对待以上三种造型。而当前的高级三维软件,例如CA TIA、UG、Pro/E等则是将三者有机结合起来,形成一个整体,在建立产品几何模型时兼用线、面、体三种设计手段。其所有的几何造型享有公共的数据库,造型方法间可互相替换,而不需要进行数据交换。 AutoCAD是由美国Autodesk公司开发的通用计算机辅助设计软件,是目前世界上应用最广的CAD软件。随着时间的推移和软件的不断完善,AutoCAD已由原先的侧重于二维绘图技术为主,发展到二维、三维绘图技术兼备、且具有网上设计的多功能CAD软件系统。AutoCAD 具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。它的多文档设计环境,让非计算机专业人员也能很快地学会使用。(版本:AutoCAD R12 CAD R13 CAD R14 CAD R15 CAD2000-CAD2010 ) 三维实体CAD技术的代表软件有CATIA、Pro/Engineer、UG、SolidWorks、CAXA等。 第2课AutoCAD2010的启动与工作空间的设置 2.1启动 2.2切换工作空间(AutoCAD经典,二维草图与注释,三维建模,自定义) 第3课AutoCAD 2010的绘图环境 本课要点:(1)操作界面(2)文件操作(3)坐标系

(2020年编辑)版CAD操作教程

目录 第一章初识AutoCAD 2007 ··············4页第二章辅助绘图··················6页第三章绘制简单二维图形对象 ··································9页1.绘制直线、构造线、射线 ·····························9页 2.绘制点、矩形、正多边形 ····························10页 3.绘制圆、圆弧、椭圆、椭圆弧·······················14页第四章绘制复杂的二维图形····································17页绘制多线、多段线、修订云线、样条曲线 ··············17页第五章使用面域与文字的创建 ·································22页第六章图案填充与创建管理块命令····························23页第七章使用图形编辑命令·······································30页 1.删除、复制、镜像、偏移·······························30页 2.阵列、移动、旋转、缩放、拉伸·····················33页 3.修剪、延伸、打断与打断于点·························36页 4.倒角与圆角、分解·······································40页第八章图层的使用与管理 ········································42页第九章尺寸标注的创建与编辑···································47页 1.尺寸标注的组成、创建与设置标注的样式···········47页 2.尺寸标注的类型··········································57页第十章三维对象的创建及编辑 ·································61页 1.绘制三维实体 ············································61页 2.三维实体的编辑··········································71页 3.渲染三维实体 ············································76页第十一章图形的输出、打印·······································81页第十二章设计理念··················································82页

Autocad2015视频教程完全自学

AutoCAD2015视频教程下载地址最下面 01. 绘制图框线: 02. 设置右键 03.设置拾取点 04. 设置界限 05. 设置命令行 06.设置工作空间 07. 设置栅格 08. 临时捕捉 09.绘制标题栏 10. 快捷菜单 11. 设置密码 12. 绘图窗口 13.绘制直线 14. 圆 15.圆弧 16.椭圆 17. 绘制矩形 18. 椭圆弧 19. 设置多线样式 20. 绘制构造线

21. 定距等分对象 22. 定数等分对象 23. 绘制拔叉轮 24. 绘制六角盖形螺母 25.绘制正多边形 26. 偏移 27. 修剪 28.延伸 29. 圆角 30. 环形阵列 31.过滤选择 32.特性匹配 33. 绘制平带轮 34.绘制间歇轮 35.绘制连接头 36. 绘制连接板 37. 删除文字样式 38. 创建表格 39. 绘制标题栏2 40.绘制标题栏1 41. 创建线性尺寸标注

42. 创建基线和连续尺寸标注 43. 创建圆心标记 44. 创建快速尺寸标注 45. 圆锥齿轮轴标注 46. 绘制法兰盘 47.使用图层绘图 48. 图块的属性 49.图块的属性 50.绘制斜齿轮 51.绘制轴套 52.创建单行文字及使用特殊控制符 53.创建及修改多行文字 54.自数据链接创建表格 55.特殊形状视口 56.布局图设置 57. 绘制花键 58.圆锥齿轮轴 59. V带轮 60.绘制阀盖 61.绘制法兰盘 62.齿轮油泵泵体设计 63.拔叉设计

64.绘制主视图 65.绘制向视图 66. 由平面图形生 67.三维实体的布尔运算 68. 三维阵列 69. 抽壳实体 7. 设置栅格 70.绘制连接盘 71.绘制机床主轴 72.叉架类零件 73.观察锥齿轮图形对象 74.绘制拔叉 75.绘制齿轮轴箱体 76.绘制电机滑块 77.绘制阀盖 78.绘制阀体——连接体 79.绘制阶梯轴 8. 临时捕捉 80.绘制节点弯管 81.绘制孔板斜齿轮 82.绘制螺母1 82.绘制螺母1~1

2017年中文版AutoCAD 2007 实用基础教程学习(word版)

中文版AutoCAD 2007 实用教程

目录 中文版AutoCAD 2007 实用教程.........................................................................................................- 1 - 目录 (1) 第01 章 AutoCAD 2007 入门基础 (1) 1.1 教学目标 (1) 1.2 教学重点与难点 (1) 1.2.1 AutoCAD 的基本功能 (1) 1.2.2 AutoCAD 2007 的经典界面组成 (4) 1.2.3 图形文件管理 (7) 1.2.4 使用命令与系统变量 (9) 1.2.5 设置参数选项 (10) 1.2.6 设置图形单位 (10) 1.2.7 设置绘图图限 (11) 第02 章绘制简单二维图形对象...................................................................................................... 13 2.1 教学目标.................................................................................................................................... 13 2.2 教学重点与难点........................................................................................................................ 13 2.2.1 绘图方法 (13) 2.2.2 绘制点对象 (15) 2.2.3 绘制直线 (15) 2.2.4 绘制射线 (15) 2.2.5 绘制构造线 (15) 2.2.6 绘制矩形 (15) 2.2.7 绘制正多边形 (15) 2.2.8 绘制圆 (15) 2.2.9 绘制圆弧 (16) 2.2.10 绘制椭圆 (16) 2.2.11 绘制椭圆弧 (16) 第03 章选择与夹点编辑二维图形对象......................................................................................... 19 3.1 教学目标.................................................................................................................................... 19 3.2 教学重点与难点........................................................................................................................ 19 3.2.1 选择对象的方法 (19) 3.2.2 过滤选择 (19)

初学CAD自学教材(很完整)分解

CAD自学教材 目录 第一章初识AutoCAD 2004···········4页 第二章辅助绘图···············6页 第三章绘制简单二维图形对象························ 9页 1.绘制直线、构造线、射线··················· 9页 2.绘制点、矩形、正多边形···················10页 3.绘制圆、圆弧、椭圆、椭圆弧··············14页 第四章绘制复杂的二维图形···························17页 绘制多线、多段线、修订云线、样条曲线·····17页 第五章使用面域与文字的创建························22页 第六章图案填充与创建管理块命令 ··················23页 第七章使用图形编辑命令 ·····························30页 1.删除、复制、镜像、偏移····················30页 2. ·································阵列、移动、旋转、缩放、拉伸33 页

3.修剪、延伸、打断与打断于点 ··············36页 4.倒角与圆角、分解····························40页 第八章图层的使用与管理 ······························42页 第九章尺寸标注的创建与编辑·························47页 1.尺寸标注的组成、创建与设置标注的样式·47页 2.尺寸标注的类型 ······························57页 第十章三维对象的创建及编辑························61页 1.绘制三维实体 ·································61页 2.三维实体的编辑 ······························71页 3.渲染三维实体 ·································76页 第十一章图形的输出、打印 ·····························81页 第十二章设计理念········································82页 前言 Auto CAD是由美国Autodesk公司开发的专门用于计算机绘图设计的软件,Auto CAD的绘图功能、三维绘图功能非常强大,可以绘制出逼真的模型,目前Auto CAD己经广泛应用于机械、建筑、电子、航天和水利等工程领域。

autocad学习教程 绝对值得一览

学习总结 下面的36条学习经验来自:“autocad2012 建筑设计”教学光盘,(有《autocad2012 建筑设计》这本书,书的价格49元,该光碟是将书中的文字教学转化为视频教学)对于该光碟的学习记录只记录了一点点,学会了以后就懒得记录了。 光盘简介: 视频主要是对案例文件夹内的要求及内容进行操作 高清视频大小:

如果怕该光碟讲的不过详细,这里还有很多教学很详细的,如 其中的动画演示高清教学视频大小为2.3g 想要的加光碟介绍末尾的qq号

内容详细涵盖cad制图的每个细节。 视频高清度:(原始画面清晰度远大于下图,截的图的图像大小较大,在doc文件中被压缩了,所以看起来不是超高清!可以将下图另存为图片到桌面,打开后可以放大一点,不过qq截的图放大也会失真,

好了,废话不多说说了,想要该高清教学光盘的加qq:1914787355;该Q出授各种软件教学方面的高清教学光碟,如3ds max,photoshop ,天正建筑,sketch up ,autocad,价格15元左右,保证为超高清教学视频,文件没有加密,购买后可以拿来送人情,并提供学习中的问题简答(本人更擅长解决建筑方面的问题)支持支付宝安全转账,支付后会提供一个百度云的链接给你,打开后点击下载即可。 非常有必要对工作界面的图标熟悉一下 1.用tr命令进行修剪多余线条:最简洁的:输入tr---确定--确定---点击图中任何要修剪的对象,如果点击没反应,则可以按esc退出tr命令点击该线直接鼠标右键删除(tr命令不需要按要些光碟中的操作那样麻烦,只要点击两次确定即可,第一次确定是确定tr这个命令,第二次点击确定则表示将修剪对象扩展为全选。 2.对称图形使用mi镜像命令 3.对一个对象多次偏移:输入o----输入偏移距离---确定--点击该线--点击要偏移的那一侧---确定完成第一次偏移,如果要对偏移后的对象继续偏移直接按确定键即可重复偏移命令。 4.

AutoCAD零基础入门教程

江西省南昌市2015-2016学年度第一学期期末试卷 (江西师大附中使用)高三理科数学分析 一、整体解读 试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。 1.回归教材,注重基础 试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。 2.适当设置题目难度与区分度 选择题第12题和填空题第16题以及解答题的第21题,都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。 3.布局合理,考查全面,着重数学方法和数学思想的考察 在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。 二、亮点试题分析 1.【试卷原题】11.已知,,A B C 是单位圆上互不相同的三点,且满足AB AC → → =,则A BA C →→ ?的最小值为( ) A .1 4- B .12- C .34- D .1-

AutoCAD 2018基础教程 综合实例

附录1平板类零件的实例 1.1 实例1—连接板 本例将绘制一个如图1.1所示的连接板。连接板起连接作用,使相分离的两个或多个结构件,连接为一个整体。此连接板在绘制过程中用到了“圆”、“直线”、“剖面线”等绘图工具以及“修剪”、“偏移”、“复制”等修改工具。 图 1.1 1.1.1 设置环境 (1)新建文件 打开AutoCAD2018软件,单击菜单栏[文件] [新建]命令或在快速访问工具栏单击新建按钮,弹出“选择样板”对话框,选择样板后单击“打开”命令,新建一个图形文件。 (2)草图设置(设置图形界限) 根据创建零件的尺寸选择合适的作图区域,设置图形界限。 下拉菜单:[格式] [图形界限] 命令行:LIMITS LIMITS指定左下角点或[开(ON)/关(OFF)]<0.0000,0.0000>: LIMITS指定右下角点<0.0000,0.0000>:297,210 注:不需图形界限时,可以单击“图形界限”命令后,执行如下操作 LIMITS指定左下角点或[开(ON)/关(OFF)]<0.0000,0.0000>:OFF (3)图层设置 绘图之前,根据需要设置相应的图层,还可以进行名称、线型、线宽、颜色等图层特性的设置。 菜单栏:[格式] [图层] 功能区:[默认] [图层] [图层特性] 命令行:LAYER 执行命令后,弹出“图层特性管理器”对话框,点击新建按钮,新建粗实线、中心线、剖面线、尺寸线、细实线、虚线六个图层,设置粗实线线宽为0.5mm,加载中心线线型为“CENTER2”,虚线线型为“DASHED”,设置细实线线宽为0.25mm。为了更便于查看与区分,可以将不同图层设置为不同颜色,如图1.2所示。

相关主题
文本预览
相关文档 最新文档