文档库 最新最全的文档下载
当前位置:文档库 › CAD二次开发

CAD二次开发

CAD二次开发
CAD二次开发

CAD二次开发

土木0910班

李大伟

200902738

Autolisp编程方法与应用

一、摘要

本文讨论A utolisp工程图二次开发基础,包括Autolisp的语言特点、数据类型以及简单函数图象的绘制。

二、关键字

Autolisp、CAD二次开发、正弦函数。

三、正文

一、AutoLISP语言的数据类型

AutoLISP语言的数据有表、符号、字符串、实型数、整型数、子程序?Subrs?(builtfunctions)等。

1.整型数

整型数是一个不带小数点的数字,它由“0,1,2,...,9,+,-”共十二个字符组成,其值在-32768~+32767之间。

2.实型数

实型数是带有小数点的双精度浮点数,有十进制表示法和科学表示法两种。应注意绝对值小于1的实型数的小数点左侧必须有前导0,不能直接以小数点开始;也不能以小数点结尾来直接表示实数,如:实数5.0不能写成5.。

3.字符串

字符串是由一对双引号(“”)括起来的字符序列组成,这对双引号是字符串的定界符。

在AutoLISP中,“符号”和“变量”这两个词的意义相同,用于存储数据。一般以字母作为符号的开头。例如:XX,Point1,y-1等,都是合法的符号。

4.表型

表是指一对相匹配的左、右圆括号之间的有序集合。表中的每一项称为表的元素,表中的元素可以是整数、实数、字符串子符,也可以是另一个表。各元素之间用一个空格来分隔。

二、AutoLISP程序的一般知识

1.AutoLISP语言的特点

AutoLISP采用的是所谓“前缀表示法”,即把运算符号放在表的第一个元素的位置,后面为其它的参数。这一点与其它高级语言,如:BASIC、C等语言不同。例如:算式?5+4?在AutoLISP中要写成:

(+□5□4)

把6×8的值赋给变量X要写成:

(setq□X□(*□6□8))

其中,□代表一个空格,以下含义相同。

.求值

每个AutoLISP程序的核心是求值程序,求值程序读入输入行,对其进行计算,然后返回计算结果。下面是AutoLISP的求值过程:

1)整型数、实型数、字符串、子程序以它本身的值作为结果。

2)符号以其当前约束值作为计算结果。

3)表是根据其第一个元素的类型进行计算。

3.表达式

AutoLISP程序由一系列符号表达式组成,最简单的程序可只有一个符号表达式,一个符号表达式可分写在多行,也可将多个表达式写在一行。例如:

(DEFun plus(X□Y)

(setq□Z□(+□X□(*□X□Y)))

)

就是三行构成一个符号表达式。

所有表达式都以左小括号“(”开始,最后以右小括号“)”结束。每个表达式都有一个返回值。表达式的参数可以是一个表达式,它的返回值将被外层表达式使用。

可以直接用AutoLISP表达式去响应AutoCAD的“Command:?”以获得该表达式的值,要检验一个表达式是否正确,这也是最简单的方法。

一旦输入不正确的表达式或从文件中读入不正确的表达式,系统会提示出错信息。较多的情况是右括号不够,这时会显示提示:n>,这里n为整数,意思是缺少n个小括号,只要键入n个右小括号即可。

4.变量

AutoLISP的变量有四类:整数、实数、字符串和表。变量的类型由它所赋的值自动确定,在赋值之前其值一直保持不变。变量名的第一个字符必须是字母。

在AutoLISP中,用函数SETQ函数给变量赋值。

例如:

(setq□X□6) 变量X的值是整数6。

(setq□X1□8.0) 变量X1的值是实数8.0。

(setq□st□“Hello!”) 变量st的值是字符串Hello!。

(setq□point□'(68□86)或(setq□point□(LIST□68□86) 变量point的值是表(68□86)。

5.说明

1)为使AutoLISP不对表求值,要在表的左小括号前加单引号“'”或表内最左边加LIST。

2)在AutoLISP中,一个二维点用一个两个元素的表来表示,三维点用一个三维表来表示。

3)AutoLISP语言采用一对“()”表示一个表格,表中有表,从里到外,处理每一个表,直到全部的表格处理结束,得出处理结果。

4)AutoLISP语言可以在提示符Command:下直接输入执行,也可以在文本编辑器或字处理软件中建立好,存为扩展名为.LSP的文件,再在AutoCAD中运行。后一种方式预先用APPLOAD命令将文件装载进AutoCAD系统中。

5)一对空的引号“”表示一次回车。

6)符号“;”后面的内容为提示内容,程序不执行。

五、求值函数介绍

1.求距离函数(distance)

表达式:(distance□〈点1〉□〈点2〉)

此函数算出点1与点2的距离,点为两个实型数。例如:

(distance □'(1.0□2.0)□'(3.0□4.0))或

(distance□(list□1.0□2.0)□(list□3.0□4.0))返回2.82843

2.确定点函数(polar)

表达式:(polar□〈点〉□〈角度〉□〈距离〉)

此函数返回一个点,此点是以离〈点〉的距离为长度,其方向为〈角度〉的一个点,其中〈角度〉为弧度。例如:

(polar□'(1.0 1.0)□0. 785398□1.414214)此函数返为一个点,其值为(2 .0 2.0)3.确定角度函数(angle)

表达式:(angle□〈点1〉□点2〉)

此函数返回由〈点1〉和〈点2〉确定的角度(弧度)。该角度从当前作图的X?轴正向起逆时针计算。例如:

(angle □'(5.0□1.33)□'(2.44□1.33)返回角度为3.14159

六、交互性输入函数介绍

1.getangle函数

表达式:(getangle□〈角提示〉)

此函数暂停下来,等待输入一个角度。例如:

(setq□A1□(getangle□“Enter□Angle:”))

输入一个角度并把该角度值赋给A1。

2.getdist函数

表达式:(getdist□〈距离提示〉)

此函数暂停下来,等待输入一个距离值。例如:

(setq□d□(getdist□“How long:”))

输入一个距离值并把该距离值赋给d。

3.确定角度函数(angle)

表达式:(angle□〈点1〉□点2〉)

此函数返回由〈点1〉和〈点2〉确定的角度(弧度)。该角度从当前作图的X?轴正向起逆时针计算。例如:

(angle □'(5.0□1.33)□'(2.44□1.33)返回角度为3.14159

六、交互性输入函数介绍

1.getangle函数

表达式:(getangle□〈角提示〉)

此函数暂停下来,等待输入一个角度。例如:

(setq□A1□(getangle□“Enter□Angle:”))

输入一个角度并把该角度值赋给A1。

2.getdist函数

表达式:(getdist□〈距离提示〉)

此函数暂停下来,等待输入一个距离值。例如:

(setq□d□(getdist□“How long:”))

输入一个距离值并把该距离值赋给d。

3.确定角度函数(angle)

表达式:(angle□〈点1〉□点2〉)

此函数返回由〈点1〉和〈点2〉确定的角度(弧度)。该角度从当前作图的X?轴正向起逆时针计算。例如:

(angle □'(5.0□1.33)□'(2.44□1.33)返回角度为3.14159

七、表处理函数

在LISP语言中,表是建立数据库和程序结构的主要工具。表处理函数主要对表进行构造、分离、访问与修改。

1. list函数

表达式:(list〈表达式〉…)

此函数将任意数目的表达式串连在一起,返回由它们组成的表。例如:

(list□(+□2□6)□(*□8□6))返回(12□48)

2. quote函数(’函数)

表达式:(quote□(变量□变量…))

此函数将表返回。例如:

(quote□(2□4□5□-1□“ABC”))返回(2□4□5□-1□“ABC”)

使用(’):

(setq□AAA□’(2□4□5□-1□“ABC”))返回(2□4□5□-1□“ABC”)3.Append函数

表达式:(append〈表〉□〈表〉…)

此函数取所有的表放置在一起,作为一个表返回。例如:

(append□'(A□B)□'(C□D))返回(A□B□C□D)

4.car函数

表达式:(car〈表〉)

此函数返回〈表〉的第一元素。例如:

(car □'(A□B□C))返回A

5.cdr函数

表达式:(cdr□〈表〉□〈表〉...)

此函数返回一个包括除第一个元素以外的所有元素的表。例如:

(cdr□'(A□B□CD□E))返回(B□CD□E)

6.cadr函数

表达式:(cadr□<表>)

将表的第二个元素返回。例如:

(cadr□’(A□B□C□D))

7.caddr函数

表达式:(caddr□〈表〉)

此函数将表的第三个元素返回。例如:

(caddr□'(a□b□c□d)返回c。

正弦函数的autolisp实例:

(defun C:SINCRV(/pt pt1 pt2 a1 a i bm cc p oo)

(setq cc (getvar"cmdecho") bm(getvar"blipmode")

bz(getvar"OSMODE") bc(getvar"CECOLOR")); (setvar"cmdecho"0);

(setvar"blipmode" 0) (setvar"CECOLOR" "BYLAYER")

(command "stytle" 'standard" "宋体" 0 1 0 "" "")

setq pt1 oo pt1 p'()pjd'() i 0)

(while(<=i 3600)

(dtr i)

(setq pt2(list(+(car pt) i)(+(cadr pt)(*(sin ang) 100))))

(command "line" pt1 pt2"")

(setq pt1 pt2 p(append p(list pt2)) pjd (append pjd(list i)))

(setq i (+i 10))

)

(command "zoom" "w" (getvar "extmin") (getvar "extmax"))

(command "predit" "1" "y" "j" "c'(getvar "extmin")

(getvar "extmax") "" "s" "") (setvar "CECOLOR" "red")

(setq n(length p) i 0 py (cadr pt))

(while

(setq pp(list(car(nth i p))py) zf (itoa(nth i pjd))) (command "line"(nth i p) pp "")

(if>(nth i pjd) 180)(command "text" "j" "bc" pp 4 0 zf "")

(command "text" "j" "tc" pp 4 0 zf "")) setq(i(+i 1))

)

(setq i 1 ym(cadr(nth 0 p) yn ym)

(while

(if(>(cadr (nth i p) ym) (setq ym(cadr(nth i p)) y1(nth i p)))

(if(<(cadr (nth i p) yn) (setq yn(cadr(nth i p)) y2(nth i p))) setq(i(+i 1))

)

setq pp(nth(-n 1)p))

(dzbx pt pp oo y2 y1)

(command "zoom" "E")

(setvar "blipmode" bm)

(setvar "cmdecho" cc)

(setvar "OSMODE" bz)

(prin1)

)

(defun dzbx(px1 px2 p0 py1 py2 /pa)

(command "pline" (polar px1 pi 5) "w" 0 0

(polar px2 0 5) "w" 1 0 (polar px2 0 15) "") (command "pline" (polar(list(car p0)(cadr py1))(*1.5 pi) 5) "w" 0 0

(polar(list(car p0)(cadr py2))(*1.5 pi) 5) "w" 1 0

(polar(list(car p0)(cadr py1))(*1.5 pi) 9) "") (setq pa(polar(polar px2 0 8) (*1.5 pi) 5))

(command "text" "j" "M" pa 6 0 "X" "")

(setq pa (polar(list(+(car p0)3)(cadr py2)) 0 2))

(command "text" "j" "M" pa 6 0 "Y" ""))

AutoCAD VBA二次开发初级教程

AutoCAD VBA二次开发初级教程 第一课:入门 1.为什么要写这个教程 市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。 2.什么是Autocad VBA? VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。 3、VBA有多难? 相信大家都知道Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。 4、怎样学习VBA? 介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。本教程将陆续发布在CAD 世界论坛上,您不需要付费就可以学习。本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。 5、现在我们开始编写第一个程序:画一百个同心圆 第一步:复制下面的红色代码 第二步:在模型空间按快捷键Alt+F8,出现宏窗口 第三步:在宏名称中填写C100,点“创建”、“确定” 第四步:在Sub c100()和End Sub之间粘贴代码 第五步:回到模型空间,再次按Alt+F8,点击“运行” Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub 也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。

AUTO CAD二次开发

一、什么是AutoCAD二次开发:针对自己使用要求,优化,改善 软件使用功能、方式,用编程语言在CAD基础上写的程序二、应用背景:设计中一般都采用AutoCAD等设计软件,在复 杂CAD问题或特殊用途的设计设计中,依据原有软件的功能往往难以解决问题,在此情况下,只是会适用软件的基本功能是不够的,根据客户的特殊用途进行软件的客户化定制和二次开发,往往能够大大提高企业的生产效率和技术水平。

VBA即Mcrosoft office中的Visual Basic for Applications,它被集成到AutoCAD2000中。VBA为开发者提供了一种新的选择,也为用户访问AutoCAD2000中丰富的技术框架打开一条新的通道。VBA和AutoCAD2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。

(4)通过系统对话框设置某些路径。这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率 (5)面向对象,让用户能够根据自己的需要编写相关程序,进行二次开发。 五、AUTOCAD的历史: 六、AUTOCAD二次开发技术的应用领域:AUTOCAD二次开发技术广泛应用于机械、电子、建筑等领域、为标准件、常用件的参数化设计提供了强有力的支持。

AutoCAD的二次开发

浅谈AutoCAD的二次开发 林学与园林学院 06园林傅欣蕾 摘要:通过对AutoCAD软件发展史的概述,从中归纳出CAD的总体发展趋势。从当今各行业所需的CAD专业化功能,提出对其进行二次开发的意义及具体实施步骤。 关键词:AutoCAD 发展史二次开发专业化功能 1.AutoCAD的发展简史: 1.1、第一次CAD技术革命—曲面造型系统 60年代出现的三维CAD系统只是极为简单的线框式系统。这种初期的线框造型系统不能有效表达几体数据间的拓扑关系。进入70年代,随着贝赛尔算法促使人们用计算机处理由线及曲面问题变得可行。 1.2、第二次CAD技术革命—实体造型技术 1979年世界上第一个完全基于实体造型技术的大型CAD软件发布。由于实体造型技术能够精确表达零件的全部属性,在理论上有助于统一CAD、CAE、CAM的模型表达,给设计带来了惊人的方便性。 1.3、第三次CAD技术革命—参数化技术 1.4、第四次CAD技术革命—变量化技术 成功运用参数化技术之后,开发人员发现了参数化技术尚有许多不足之外。首先,“全尺寸约束”这一硬性规定就干忧和制约着设计者创造力及想象力的发挥。再者,如在设计中关键形体的拓扑关系发生改变,失去了某些约束特征也会造成系统数据混乱。 1993年全新体系结构的I-DEAS Master Series软件问世,它第一次将变量化付诸实践。变量化技术既保持了参数化技术的原有优点,同时又克服了它的不足之处。无疑,变量化技术成就了SDRC,也驱动了CAD发展的第四次技术革命。 1.5、CAD的发展方向 任何一种软件都是有缺陷而非完美无瑕的。AutoCAD这一软件也是一样,只有在不断的发展中,找到自己的不足力求弥补,才能趋向臻化,达到一种完美。 纵观CAD的发展史,我们可以大略地看出该软件是朝着“人工智能化”、“专业应用化”等方向发展的。 而实现这样的发展方向的最佳手段就是通过对CAD的二次开发。将各类专业设计技术研制成CAD系统的各类设计工具和知识,从而使使用者能按照专业设计的方向进行,可以大大提高CAD的设计效率。

学习AutoCAD二次开发技术的体会

学习AutoCAD二次开发技术的体会 一、引言 AutoDesk公司是全球著名的CAD软件研发公司,多年从事CAD软件的开发,特别是二维设计绘图方面,AutoCAD几乎是PC机上唯一的CAD软件。AutoCAD更是我们理工科大学生必备专业技能之一。本文通过作者对AutoCAD软件绘图方法的学习,在学习上不断的钻研与体会,总结出学习AutoCAD软件绘制图形的方法和技巧,并向读者介绍自己学习AutoCAD二次开发技术的体会。 二、正文 (一)、软件介绍 CAD是一个泛指,CAD英文表示为Computer Aided Design,意思是计算机辅助设计。AutoCAD是由美国Auto desk公司开发的计算机辅助设计软件包。著名的3D MAX也是它的产品之一。AutoCAD可以说是目前世界应用最广的二维绘图软件,具有广泛的通用性,它还具有简单的三维绘图功能,支持扩展编程,定义适合自己的小程序,以方便和提高效率。它的发展过程为:1982年推出第一个版本----AutoCAD1.0版,经历了R12,R14,2000,2002,2004等多个版本,它广泛用于建筑、机械、电子、航天、服装、造船等现代化工业的领域。 (二)、学习历程 最开始接触AutoCAD是由于课程所联想到的,“机械制图”这门课要求用直尺和圆规做出零件的平面三视图,而老师在课堂上常常用AutoCAD来展示作业内容,故引发学习AutoCAD 的愿望。由于开始的时候接触过“手工图板”,而“手工图板”绘图能力是计算机绘图能力的基础,故学习起来比较容易。学习《AutoCAD》,需要一定的画法几何的知识和能力,需要一定的识图能力,尤其是几何作图能力。整个学习过程也采用了循序渐进的方式,先了解计算机绘图的基本知识,如对直角坐标和相对极坐标等,使自己能由浅入深,由简到繁地掌握AutoCAD的使用技术。在学习AutoCAD命令时还要注意始终要与实际应用相结合,不能把主要精力花费在各个命令孤立地学习上;应当把学以致用的原则贯穿整个学习过程,使自己对绘图命令有深刻和形象的理解,有利于培养自己应用AutoCAD独立完成绘图的能力。到最后熟能生巧,自己做几个综合实例,详细地进行图形的绘制,使自己可以从全局的角度掌握整个绘图过程。 (三)、学习体会 1、画图的基本常识 比方说画一个圆,你首先得知道画圆的图标在哪里,或是快捷键是什么,这是绘图前需了解的。所以刚入门的人不防先看了下每一个菜单栏里都有哪些绘图的命令,然后逐个的试一试,了解一下绘图的基本命令。 2、掌握快捷命令、提高绘图速度 在熟悉了每个图标后,对一些常用或不常用的的命令应掌握其快捷键,前期可能有点慢,但你用一段时间后,绘图的速度就会显著的提高。 3、对各种参数进行设置、提高绘图的水平与质量 掌握了画图的基本方法,这还不够,因为同一幅图可能形式一样,但图层设置(后面详述)和色彩的搭配与线型的设置不同,给人的感觉与打印出来的效果是截然不同的。所以接下来该掌握的首先是图层的设置,线型、文字及标注样式的设置,怎样设置能使图形在CAD 上看起来好看,打印出来质量高,这需要反复的画,然后打印出来,不断的总结经验。 4、养成绘图的良好习惯 本来绘图这应该在学CAD之前就应当强调的,但由于初学者前期对CAD软件还不太了解,所在放在这里说明,也就是说,当你掌握基本的绘图命令后,以后的绘图过程当中就应养成

AutoCAD二次开发教程复习总结

CAD复习题及答案1、AutoLISP 2、VisualLISP 3、VBA 4、ADS 5、ObjectARX

6、.NET 托管API 7、ActiveX Automation

8、Visual Java 1、 AutoCAD二次开发方式有哪些?各自优缺点? 2、 AutoCAD 中实现ObjectARX .NET API 的有哪些优点? 3、 AutoCAD .NET API 的三个主要的DLL文件是? 4、简述ObjectARX .NET API所对应的https://www.wendangku.net/doc/ec2418373.html,版本。 5、简述AutoCAD数据库的组成。 AutoCAD数据库是用来管理当前图形中的图元实体和其他非几何信息的容器对象,一个AutoCAD数据库包含一套固定的符号表和命名的对象词典,每一个符号表包含一个特定符号

表记录类的实例,例如层表(AcDbLayerTable)中包含层表的记录,块表(AcDbBlockTable)中包含块表记录,所有的AutoCAD实体均包含于块表记录中。词典提供了一种通用容器来存储对象,它可以保存AcDbObject对象以及其它对象,也可以创建新的对象词典,将新的数据库元素加入其中。 AutoCAD数据库的组成如图所示,从图中我们可以看出数据库主要由一下内容组成:1)层表AcDbLayerTable和层表记录AcDbLayerTableRecord,。 2)块表AcDbBlockTable和块表记录AcDbBlockTableRecord。AutoCAD中所有可见实体均存储在块表记录。块表中包含有两条特殊的记录*MODEL_SPACE(模型空间)和*PAPER_SPACE (图纸空间)。 3)其他符号表和符号表记录。 4)命名对象词典。缺省情况下当AutoCAD数据库被建立以后,词典中就包括了组词典以及MILINE样式词典。 5)符号表和命名对象词典都是存储数据库对象的容器,用于组织和管理数据库对象。AutoCAD数据库通常有9个固定类型的符号表,开发者不能向数据库中新增或者删除任何一种类型符号表,能实现的是向符号表中添加对应的符号表记录。 6、 Application 对象是AutoCAD .NET API 对象模型的根对象,它包括哪些部分? Application 对象是层次结构的根,而且它提供对AutoCAD 的主窗口的访问。

CAD二次开发手册

VBA 开发手册

第一章 VBA 入门 了解嵌入和全局 VBA 工程 AutoCAD VBA 工程是代码模块、类模块和窗体的集合,它们组合起来以执行给予的功能。工程可保存在 AutoCAD 图形中,或作为独立的文件保存。 嵌入工程是保存在 AutoCAD 图形中。当包含有这些工程的图形中 AutoCAD 打开时,他们可以自动地装载,这种方法可以很方便地分发工程给用户。嵌入工程也有它的极限,它不能打开或关闭 AutoCAD 图形,那是由于他们的函数只存在于工程所在的文档中。使用嵌入工程不需要在运行程序之前查找并装载工程文件。举个含有嵌入工程的图形的例子,当图形打开时,一个时间日志被触发。通过这样一个宏的应用可以登记并记录用户在该图形上所花费的时间。这时用户不必去记住在打开图形之前装载工程,这就是自动操作的一个很好的例子。 全局工程保存在独立的文件中,它更加通用,因为他们能在 AutoCAD 图形中运行,也能打开、关闭 AutoCAD 图形,但它在图形打开时不能自动装载。用户必须知道他们所需要的宏包含在哪个工程文件中。然而,全局工程非常容易与其它使用者共享,它可以将通用的宏做为很好的库而存在。举个例子,你保存在一个工程文件中的宏是有关多个图形的材料清单。这个宏可以在工作周期的末期由管理员运行,这样就可以收集到所有图形的信息。 在特定的时间,用户可以在同个 AutoCAD 进程中同时装载嵌入工程和全局工程。 AutoCAD VBA 工程与 Visual Basic 工程在二进制结构上是不兼容的。然而,其中的窗体、模块和类可以通过在 VBA IDE 环境中使用输入和输出 VBA 命令来在工程之间进行转换。关于 VBA IDE 的更多信息,可以查看“用 VBA IDE 编辑工程” 用 VBA 管理器组织工程 你可以使用 VBA 管理器查看装载在当前 AutoCAD 进程的所有 VBA 工程。VBA 管理器一个AutoCAD 工具,它允许你装载、卸载、保存、创建、嵌入和分离 VBA 工程。 打开VBA 管理器的步骤: 1. 在工具菜单中选择宏-VBA 管理器。 2. 或者,在 AutoCAD 中调用 VBAMAN 命令。 本节的内容: 装载现存的工程 当你装载工程到AutoCAD 中,所有的公用的子程序(也称为宏)都可以使用。 嵌入于图形中的工程在图形打开时就被装载。保存在DVB 文件中的工程必须单独装载。 装载现存的VBA 工程文件 1. 在 VBA 管理器中,使用装载项可弹出打开VBA 工程对话框。 2. 在打开 VBA 工程对话框中,选择打开的工程文件。该VBA 工程对话框允许你打开有效的DVB 文件。如果你尝试打开不同类型的文件,你将会得到出错信息。 3. 选择打开。 本章将为你介绍 AutoCAD VBA 工程及VBA 交互开发环境(VBA IDE)。尽管大部分VBA 环境在行为上都是相似的,但AutoCADVBA IDE 还是有些独有的特性。在AutoCAD 中还有些相关的命令可以用于装载工程、运行工程,或打开VBA IDE 环境。本章将概要介绍VBA 工程、VBA 命令和VBA IDE 的使用。

Autocad-VBA二次开发简易教程

第一课:入门 1.为什么要写这个教程 市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。 2.什么是Autocad VBA? VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。 3、VBA有多难? 相信大家都知道Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。 4、怎样学习VBA? 介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。本教程将陆续发布在CAD世界论坛上,您不需要付费就可以学习。本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。 5、现在我们开始编写第一个程序:画一百个同心圆 第一步:复制下面的红色代码 第二步:在模型空间按快捷键Alt+F8,出现宏窗口 第三步:在宏名称中填写C100,点“创建”、“确定” 第四步:在Sub c100()和End Sub之间粘贴代码 第五步:回到模型空间,再次按Alt+F8,点击“运行” Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub 也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。 第二课编程基础 本课主要任务是对上一课的例程进行详细分析 下面是源码: Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆

《AutoCAD二次开发技术》实验指导书

《AutoCAD二次开发》 实验指导书 环境与建筑工程学院测绘教研室

实验1 Visual Lisp开发环境的认识和程序运行方法 【实验目的】 1.熟悉所用计算机系统的基本操作方法。 2.学习Visual Lisp的使用方法,掌握程序编辑、编译、打包、运行及查看运行结果的方法。 3.掌握Visual Lisp程序的基本结构。 【实验内容】 1.熟悉使用的计算机系统的基本操作,创建自己的工作目录,参照附录中介绍的方法,掌握Visual Lisp的启动方法(一种或多种),了解AutoCAD系统的安装路径和结构。2.进入Visual Lisp的工作环境,熟悉Visual LISP 用户界面。 3.熟悉Visual Lisp的系统菜单组成及功能。学习使用功能键和快捷键调用菜单项的方法。 掌握文件建立、编辑、修改和保存的方法。落实文件的存储位置是否是你的工作目录,如果不是,回第二步重新设置。 4.了解控制台窗口 5.了解Visual LISP 文本编辑器 6.加载和运行AutoLISP 程序 7.退出Visual LISP 实验2 Visual Lisp应用程序 【实验目的】 1.掌握Visual Lisp语言基本数据类型的概念,理解数据类型与运算的关系。 2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间赋值的规律。 3.学习Visual Lisp语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。 4.掌握数学表达式的程序表示方法。 5.进一步熟悉Visual Lisp程序的编辑、编译、连接和运行的过程。 【实验内容】 1.掌握用Visual LISP 开发程序步骤 2.使用控制台窗口 3.使用文本编辑器 4.使用控制台和编辑器的编码辅助工具 5.用Visual LISP 设置代码格式 6.检查语法错误 7.通过样例学习调试程序

AUTOUCAD二次开发技术

AUTOUCAD二次开发技术 学院:机械与电子信息学院 专业:机械设计制造及其自动化 姓名:廖武信、林鲁楠、孙桂东 班级序号:072113-10、11、12 指导老师:文国军

目录 1.autuoCAD技术 (3) 1.1 定义 (3) 1.2 内容 (3) 1.3 功能用途 (4) 1.4 发展历程 (4) 2. .autuoCad二次开发技术 (6) 2.1概述 2.2 发展历程 (6) 2.3研究现状(详细列出研究人员、年代及研究内容 (6) 2.4研究重点 3.应用举例 (9) 4.未来发展方向 (12) 5结论 (13) 参考文献 (14) 附: 1.分工说明 (16) 2.个人感受 (17) 参考文献20~50篇,英文30%

第1章 AutuoCAD技术 1.1定义 AutoCAD(Auto Computer Aided Design)是Autodesk(欧特克)公司首次于1982年开发的自动计算机辅助设计软件,用于二维绘图、详细绘制、设计文档和基本三维设计。 1.2 autuoCAD的内容 从20世纪80年代以来,计算机辅助设计(Computer Aided Design,以下简称 CAD)技术已广泛应用于机械、电子、汽车、造船、化工、建筑等行业,并已成为进一步解放设计思想、提高产品和工程设计质量、降低消耗以及缩短设计周期的重要手段。计算机绘图是CAD技术的重要组成部分,它能减轻设计人员繁琐的绘图工作量、提高设计效率,同时为以后的计算机辅助设计与制造(CAD/CAM)奠定技术上的基础。计算机绘图技术的实用化、大众化,使绘图方法发生了根本性的变革,它不仅提供了功能强大的绘图工具,而已引导和创建了适应计算机技术的绘图、设计的新理念和新方法。 AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。由于它具有功能强大、操作方便、结构开放、便于二次开发、价格合适、能适应各种软件和硬件平台等优点。让非计算

AutoCAD二次开发教程

第 1章 Hello World: 工程的创建 在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。我们将使用Visual Studio .NET来创建一个新的类库工程。通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。 1) 启动Visual https://www.wendangku.net/doc/ec2418373.html,,选择”文件>新建>工程”(File> New> Project)。在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。点击确定按钮来创建工程。 2) 在工程的Class1.vb文件中,一个公有类“Class1”已经被系统自动创建了。接下来向这个类加入命令。要加入命令,你必须使用AutoCAD .NET托管封装类。这些托管封装类包含在两个托管模块中。要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。在弹出的”添加引用”对话框中选择”浏览”。在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”然后选择并打开它。再一次选择”浏览”,在AutoCAD 2006 的安装目录下找到“acmgd.dll”并打开它。当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX托管类,而acmgd.dll包含AutoCAD托管类。 3) 使用对象浏览器(Visual https://www.wendangku.net/doc/ec2418373.html,的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。请展开“AutoCAD .NET Managed Wrapper”对象(在对象浏览器中显示为acmgd),在整个教程中我们将使用这个对象中的类。在本章中,我们将使用“Autodesk.AutoCAD.EditorInput.Editor”类的一个实例来在AutoCAD命令行中显示文本。请再展开“ObjectDBX .NET Managed Wrapper” 对象(在对象浏览器中显示为acdbmgd),这个对象中的类将被用来访问和编辑AutoCAD图形中的实体(这部分内容将在以后的章节中介绍)。 4) 引用了ObjectARX .NET 封装类后,我们就可以导入它们。在Class1类的声明语句(位于Class1.vb文件的顶部的)之前,导入ApplicationServices, EditorInput 和 Runtime 命名空间。 Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.EditorInput Imports Autodesk.AutoCAD.Runtime 5) 接下来在类Class1中加入命令。要加入能在AutoCAD 中调用的命令,你必须使用“CommandMethod”属性。这个属性由Runtime命名空间提供。在类Class1中加入下列属性和子程序。注意续行符” _”的使用。 Public Class Class1 _ Public Sub HelloWorld() End Sub End Class 6) 当“HelloWorld”命令在AutoCAD中运行的时候,上面定义的HelloWorld子程序就会被调用。在这个子程序中,一个Editor类的实例将被创建。Editor类拥有访问AutoCAD命令行的相关方法,它还包括选择对象和其它一些重要的功能。AutoCAD当前活动文档的Editor 对象可以使用Application类来访问。当Editor对象被创建后,你可以使用它的

CAD二次开发介绍

CAD二次开发技术介绍 摘要:本文对CAD技术中的二次开发所需的语言及工具介绍归纳,得出了一些有用的结论,对于了解CAD二次开发技术的发展及其如何适应具有一定的意义 关键词:CAD二次开发技术;AutoLISP 1.前言 AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前被大家广泛使用的,最新版本是AutoCAD2010,其二次开发语言及工具也在不断地涌现 由于大量的应用领域提供了特有的几何问题,对于这些问题必须建立有效的算法,画出更精确的图形,这就是孕育CAD的二次开发,AutoCAD的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。(3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。(4)通过系统对话框设置某些路径。这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。 2.CAD二次开发所涉及到的技术介绍 2.1AutoCAD二次开发的内容和工具 AutoCAD二次开发的主要目的是提高专业应用领域的工作效率,为专业绘图建立标准,并使常用的或重复的任务自动化等。内容如下: 开发具有专业特点的用户图形界面

AutoCAD二次开发实验二

实验二 AutoCAD基本图形对象创建与编辑 1,创建直线对象 代码如下: [CommandMethod("CreatLine")] public void creatline() { Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction()) { //创建直线 Point3d pt1 = new Point3d(2000, 2000, 0); Point3d pt2 = new Point3d(1000, 1000, 0); Line lineEnt = new Line(pt1, pt2); //获得块表 BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); //获得特定块表记录 BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); //把图形对象的记录加入到块表中 pModifyEntID = btr.AppendEntity(lineEnt); //将直线添加到事务处理中 trans.AddNewlyCreatedDBObject(lineEnt, true); https://www.wendangku.net/doc/ec2418373.html,mit(); } } 运行效果如下图所示 修改直线 代码如下:

cad二次开发基础教程和实例档

大家知道什么是宏吗? 说白它就是VBA过程。 看下面的代码: Public Sub MacroDemo() MsgBox "Hello,Welcome to AutoCAD VBA!" End Sub 这就是宏。 打开CAD输入命令vbaide回车会出现VBA的编辑界面,双击ThisDrawing在右侧的代码 区输入上面的代码。如下图: 然后按F5键会出现宏窗口,如下图: 点击运行,大家看到什么? 这就是一个最简单的一个用VBA对CAD进行二次开发的程序,也就是宏 那什么是VBA呢?VBA就是VB的一个子集它的全称是Visual Basic For Application,它具有VB的大部分功能。 既然我们选择了VBA,我们首先要知道VBA能操作CAD里的哪些对象呢? 打开VBAIDE窗口按下F2键会出现对象浏览器。如下图 库选择AutoCAD,这时下面显示的就是CAD为VBA提供的可操作的对象的类了。 这时有的人因没有基础,所以还是一头雾水,别怕,选中一个类图标后按F1,这时会弹出AutoCAD ActiveX and VBA Reference,选择最上面的一个子项Object Model(对象模型),这个 就是在CAD里那些对象的关系,如下图: 如果英文不好的话,可以安装CAD2000,它的这个部分是中文的。为想学好VBA二次开发这个是必需的,而且VBA对Office的二次开发也是这样的。 这个在编程界叫做Active X,包括Active X控件、Active X DLL、和Active X EXE 就好比一个程序为其它程序提供的一个后门一样 下面我就给大家讲一下菜单吧。 因为我们用到的其它公司做CAD二次开发的插件,从直观上首先接触的就是它的菜单,刚开始用的时候就是从它的菜单开始接触的。 我经常用到的做菜单的方法有两种,一种是用CAD的菜单文件,另一种就是用VBA代码直接长成菜单。

常用的CAD二次开发语言

常用的CAD二次开发语言: 1 AutoLISP 全名是LIST Processing Language,LISP是List Processor(表处理程序)的缩写,cad系统的第一代开发工具,是一种嵌入在AutoCAD内部的编程语言,是低版本AutoCAD的首选编程语言。它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行。其缺点是继承了LISP语言的编程规则而导致繁多的括号。 2 ADS 全名是AutoCAD Development System,它是AutoCAD的C语言开发系统,丰富和保留了autolisp语言的功能,是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,不包含于cad内部,包含c语言的全部功能。ADS速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理。 3 ObjectARX 崭新面向对象的开发AutoCAD应用程序的工具,以https://www.wendangku.net/doc/ec2418373.html,为编程语言,提供可与AutoCAD直接交互的开发环境。可以与autolisp和ADS应用程序协同工作。ObjectARX也没有包含在AutoCAD中,可在AutoDESK公司网站中去下载。二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD 数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是两组关键的API,即AcDb(Auto CAD数据库)和AcEd(Auto CAD编译器),另外还有一些重要组件,如AcRX(Auto CAD实时扩展)、AcGi(Auto CAD图形接口)、AcGe(Auto CAD几何库)、ADSRX(Auto CAD开发系统实时扩展。ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。 运用ObjectARX进行二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0 、Microsoft visual studio 2005、Microsoft visual studio 2008。同时,还需要安装ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的网站上免费下载。不同的AutoCAD版本对应相应的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。这两个开发工具在设置上略有不同,将进行对比介绍。 安装好VC++和ObjectARX后,就可以开始设置开发环境了 4 VBA 即Visual Basic for Applications,它被集成到AutoCAD 2000中,采用vb的全部语法和崭新的格式,支持activex控件。VBA通过autocad active automation接口向cad发送信息。 5 VisualLISP VisualLISP已经被完整地集成到AutoCAD 2000中,一改过去在AutoCAD中内嵌AtuoLISP运行引擎的机制,是一种可视化的语言开发环境。是一种集成化的开发环境(IDE),可以把autolisp文件编译连接成ObjectARX 应用程序,是AutoCAD 2000中默认的代码编辑工具,原始代码能被保密,能帮助大家使用ActiveX对象及其事件。在VisualLISP中新增了一些函数:如基于AutoLISP的ActiveX/COM自动化操作接口;用于执行基于Auto CAD内部事件的LISP程序的对象反应器;新增了能够对操作系统文件进行操作的函数。

cad二次开发教程

CAD二次开发教程汇总 选择AutoLISP还是VBA ? 我听到许多关于这样的问题。AutoLISP与VBA有什么不同呢?我要学习怎样二次开发AutoCAD,但我不能确定先学哪一个工具。哪一个工具更好呢? 简洁的回答是他们都好,你应当两者都学。分析我的回答,你可以知道这不是最快的解 决办法,但在你做出一个完整的决定前,一个完整的回答需要时间和更多的问题。举个例子:你懂BASIC吗?如果你懂,那么VBA学起来会更快一些;如不懂BASIC,那么你学过其它的编程语言吗?如果你学的正好是FORTRAN或PASCAL的话,那也很好。因为如果你 已掌握了这两种语言,则VBA的学习将十分简单。如果你一点儿也不懂程序设计语言,那 么AutoLISP将会是适合你学习的语言。 如果你正好没有程序设计的知识和经验,那么在AutoCAD里你应当学习什么语言?这 个问题很难回答。这取决于你希望完成什么样的工作?每种语言都有其优点和缺点,AutoLISP擅长建立新命令和产生已有命令的连接。VBA擅长执行包括在其他应用程序中的 组件,如Microsoft的Excel和Access。AutoLISP是基于表处理的编程体系,它允许程序员随意地存储和操作传送信息,然而VBA部件包括数据和对复杂情况的各种有效操作,这就 是问题变得复杂的地方,除非你已真正懂得这些工具的好处,否则,很难回答你应该选择哪 一个,但你应当知道你想完成什么和允许完成什么,因为它将引导你向正确的解决方法前进。 稍后,你会发现这一简洁的回答是恰当的,你将会学习两种语言,你要做的一些事,可 以在AutoLISP中用十分简单的几行代码来解决。另一方面,你会发现VBA提供了一些最 简捷的应用程序解决方案。例如,建立一个复杂的包括许多对话框的应用,AutoLISP支持 对话框,但是不如VBA支持的程度强,同时,在AutoCAD中一个任务的情况下,VBA提供在对象级别上访问AutoCAD系统,但它对AutoCAD的一些基本命令的支持性并不是很好,而AutoLISP在这一点上却做的很好。 这两种语言不具有很好的兼容性,这种情况是必然的,就是说,你不能把在AutoLISP 中写的东西放到VBA中随意使用,反之亦然。我并不是说这种情况不可能的,但却是很难以实现。最低限度是,一但你选择了一种语言来设计程序,你就不可能中途又用另一种语言 来解决程序中的问题,你不得不继续使用你最初选择的语言。 那么,让我们从学术角度讨论一些两种语言间的不同之处。前面提到的AutoLISP是综 合了逻辑结构与传统AutoLISP命令的一个完美工具,你能组合AutoCAD命令并放在一个 有条件的逻辑脚本里,而产生强有力的自定义命令,这些命令能被用于自动操作通常的任务, 也能解决计算问题而得到一个结果。基于命令种类的思想比目标角度的思想更简单,一个清楚直接指出不同点的例子:在一个多义线对象里打断编辑方法。如果你要打断一条多义线,你必须先计算并重新更新这个物体,Extend和Trim命令也一样。这些命令现在还并不包含 在AutoCAD对象系统的实体对象编辑方法中。在不久它们会随时出现,这就是对象的好处。 在许多情况下,对象级的处理比命令方式更高级。当你执行一个命令时,你有可能可以 也有可能不可以直接操作你所选取的对象。因为你必须依赖于AutoCAD的对象选择机制。 对象不是模糊不清的。当你专门指定一个对象时,对你要操作的对象,它是很清楚的。 对象级别的处理在VisualLISP也可实现。使用VisualLISP中的(VL )扩展,你能改变对象的参数且在需要时调用对象的方法。你不得不使用对象引用,它可以从已有的实体名或 直接产生的对象中生成,在大多数情况下,一个有经验的AutoLISP程序员不需要使用这些 对象,但迟早它们会派上用场。/ E! m(门!『C4 R VisualLISP的另一优点是比VBA更接近AutoCAD系统。VBA不是由AutoCAD 产生的,

AutoCAD二次开发技术

学习AutoCAD二次开发技术的体会 1 引言 AutoCAD是一套向量式计算机辅助制图软件,具有强大的图形处理功能,目前它已经广泛应用于机械、电子、电气、建筑、土木服装等行业和领域。 最初版本的AutoCAD是在1982年发布的。AutoCAD开放的结构体系,为用户提供了多种二次开发的工具,使得它的缺陷之处可以得到弥补,因此三十多年来它持续拥有旺盛的生命力。AutoCAD的二次开发,能够实现参数化绘图,允许用户开发自己的命令、标准库文件和各种应用程序,能充分发挥AutoCAD的功能。本文将介绍我学习Visual LISP这一种工具进行开发的过程和体会,说明我在学习过程中体会到的二次开发的特点和一些优点,并举一些具体例子。 2实施过程 2.1LISP语言的主要学习内容总结 2.1.1变量及其赋值: (1)LISP语言中变量的使用比较灵活,变量不用先定义和指定类型,需要的时候直接引入,而且其内容较为随意,可以是整数、实型数、字符串、点、表等等。(2)变量的赋值主要用setq语句,格式为(setq 变量名要赋的内容)。 2.1.2基本的运算函数和数学函数: (1)加、减、乘、除、取余运算函数名分别为“+”、“-”、“*”、“/”、“rem”函数使用格式为(符号数1 数2 [数3…])。 (2)基本初等函数: 指数函数(expt 底数自变量值)。 自然指数函数、自然对数函数、正弦、余弦、反正切、根式、绝对值函数分别是exp、log、sin、cos、atan、sqrt、abs,调用格式为:(函数名自变量值)。 2.1.3表处理函数: (1)表构造函数:(list n1 n2 n3 n4 […]),返回一个表。配合赋值语句可把表赋值给变量,如(setq biao (list 1 2 3 4)),就把(1 2 3 4)赋给变量biao。 (2)表长度运算:(length 表),返回表元素的个数。 (3)表中元素的提取: (car 表)返回表中第一个元素。例如(car (1 2 3 4 ))返回1。

CAD二次开发(附源程序)

1. The Object of Design: Programming for drawing a screw, screw bolt or other graphics by using VLISP, VBA, etc. illustrated in the figure 1-1. Figure 1-1 Parametric Dimension for a Screw The design is based on VBA as a tool for screw parameter design. Reference" mechanical drawing" textbooks, slotted cheese head screws of the partial table as shown below. 本次设计是以VBA 为工具进行螺钉的参数化设计。参考《机械制图》课本,开槽圆柱头螺钉的部分表格如下所示。 Tabl e 1 Sl otted cheese head screws (from GB/T 65- 2000) mm Method: Take p0 for positioning point, according to the table, select the screw diameter D and nominal length of L data, determine the screws of the ,k ,n , t parameters. The screw points identified, wired generation screw CAD diagram. illustrated in the figure 1-2. 思路:取p0点为定位点,根据上表,选择螺钉规格和公称长度l ,确定螺钉的 ,