AutocadVBA初级教程Word文档格式.docx

上传人:b****2 文档编号:14260117 上传时间:2022-10-21 格式:DOCX 页数:25 大小:152.93KB
下载 相关 举报
AutocadVBA初级教程Word文档格式.docx_第1页
第1页 / 共25页
AutocadVBA初级教程Word文档格式.docx_第2页
第2页 / 共25页
AutocadVBA初级教程Word文档格式.docx_第3页
第3页 / 共25页
AutocadVBA初级教程Word文档格式.docx_第4页
第4页 / 共25页
AutocadVBA初级教程Word文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

AutocadVBA初级教程Word文档格式.docx

《AutocadVBA初级教程Word文档格式.docx》由会员分享,可在线阅读,更多相关《AutocadVBA初级教程Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

AutocadVBA初级教程Word文档格式.docx

4、怎样学习VBA?

介绍大家一个学习公式:

信心+恒心=开心。

仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。

本教程将陆续发布在CAD世界论坛上,您不需要付费就可以学习。

本作者在此郑重承诺:

关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。

我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。

5、现在我们开始编写第一个程序:

画一百个同心圆

第一步:

复制下面的红色代码

第二步:

在模型空间按快捷键Alt+F8,出现宏窗口

第三步:

在宏名称中填写C100,点“创建”、“确定”

第四步:

在Subc100()和EndSub之间粘贴代码

第五步:

回到模型空间,再次按Alt+F8,点击“运行”

Subc100()

Dimcc(0To2)AsDouble'

声明坐标变量

cc(0)=1000'

定义圆心座标

cc

(1)=1000

cc

(2)=0

Fori=1To1000Step10'

开始循环

CallThisDrawing.ModelSpace.AddCircle(cc,i*10)'

画圆

Nexti

EndSub

也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。

第二课编程基础

本课主要任务是对上一课的例程进行详细分析

下面是源码:

先看第一行和最后一行:

SubC100()

……

C100是宏的名称,也叫过程名称,当用户执行C100时程序将运行sub 和endsub之间的所有指令。

第二行:

后半段“'

声明坐标变量”自动变为绿色字体,它是代码语句的注释,它不会影响程序运行,它的作用是告诉阅读者程序员的想法。

对于简单的程序,一般不需要写注释,如果要编写非常复杂的程序,最好要多加注释,越详细越好,对于程序员来说,这是一个好习惯。

电脑真正编译执行的是这条语句:

Dimcc(0To2)AsDouble

它的作用就是声明变量。

Dim是一条语句,可以理解为计算机指令。

它的语法:

Dim变量名As数据类型

本例中变量名为CC,而括号中的0to2声明这个CC是一个数组,这个数组有三个元素:

CC(0)、CC

(1)、CC

(2),如果改为CC(1to3),则三个元素是CC

(1)、CC

(2)、CC(3),有了这个数组,就可以把坐标数值放到这个变量之中。

Double是数据类型中的一种。

ACAD中一般需要定义坐标时就用这个数据类型。

在ACAD中数据类型的有很多,下面两个是比较常用的数据类型,初学者要有所理解。

Long(长整型),其范围从-2,147,483,648到2,147,483,647。

Variant 

它是那些没被显式声明为其他类型变量的数据类型,可以理解为一种通用的数据类型,这是最常用的。

下面三条语句

它们的作用是给CC变量的每一个元素赋,值其顺序是X、Y、Z坐标。

Nexti 

'

结束循环

这两条语句的作用是循环运行指令,每循环一次,i值要增加10,当i加到1000时,结束循环。

i也是一个变量,虽然没有声明i变量,程序还是认可的,VB不是C语言,每用一个变量都要声明,不声明就会报错。

简单是简单了,这样做也有坏处,如果不小心打错了一个字母,程序不会报错,如果程序很长,那就会出现一些意想不到的错误。

step后面的数值就是每次循环时增加的数值,step后也可以用负值。

例如:

Fori=1000To1Step-10

很多情况下,后面可以不加step10

如:

Fori=1to100,它的作用是每循环一次i值就增加1

Nexti语句必须出现在需要结束循环的位置,不然程序没法运行。

下面看画圆命令:

CallThisDrawing.ModelSpace.AddCircle(cc,i*10)

Call语句的作用是调用其他过程或者方法。

ThisDrawing.ModelSpace是指当前CAD文档的模型空间

AddCircle是画圆方法

Addcicle方法需要两个参数:

圆心和半径

CC就是圆心坐标,i*10就是圆的半径,本例中,这些圆的半径分别是10、110、210、310……

本课到此结束,下面请完成一道思考题:

1.以(4,2)为圆心,画5个同心圆,其半径为1-5

第三课编程基础二

有一位叫自然9172的网友提出了下面的问题:

绘制三维多段线时X、Y值在屏幕上用鼠标选取,Z值用键盘输入

本课将讲解这个问题。

为了简化程序,这里用多条直线来代替多段线。

以下是源码:

Submyl()

Dimp1AsVariant'

申明端点坐标

Dimp2AsVariant

p1=ThisDrawing.Utility.GetPoint(,"

输入点:

"

)'

获取点坐标

z=ThisDrawing.Utility.GetReal("

Z坐标:

用户输入Z坐标值

p1

(2)=z'

将Z坐标值赋予点坐标中

OnErrorGoToErr_Control'

出错陷井

Do'

p2=ThisDrawing.Utility.GetPoint(p1,vbCr&

"

输入下一点:

获取下一个点的坐标

z=ThisDrawing.Utility.GetReal("

p2

(2)=z'

CallThisDrawing.ModelSpace.AddLine(p1,p2)'

画直线

p1=p2'

将第二点的端点保存为下一条直线的第一个端点坐标

Loop

Err_Control:

先谈一下本程序的设计思路:

1、获取第一点坐标

2、输入第一点Z坐标

3、获取第二点坐标

4、输入第二点Z坐标

5、以第一、二点为端点,画直线

6、下一条线的第一点=这条线的第二点

7、回到第3步进行循环

如果用户没有输入坐标或Z值,则程序结束。

首先看以下两条语句:

)‘获取点坐标

p2=ThisDrawing.Utility.GetPoint(p1,vbCr&

这两条语句的作用是由用户输入点用鼠标选取点坐标,并把坐标值赋给p1、p2两个变量。

ThisDrawing.Utility.GetPoint()在ACAD中这是最常用的方法之一,它需要两个参数,在逗号前面的参数应该是一个点坐标,它的作用是在屏幕上画一条线,前一个端点位于点坐标位置,后一个端点跟随鼠标移动,逗号之前可以什么都不填,这时没有线条会跟随鼠标移动,但逗号必须保留。

逗号后面使用一串字符,程序在命令行显示这串字符,这不难理解。

VbCr通常代表一个回车符,而在这个语句中,它的作用是在命令行不显示“命令:

&

的作用是连接字符。

举例:

“爱我中华”&

”抵制日货”&

”从我做起”

由用户输入一个实数

OnError是出错陷井语句,在程序出错时将执行OnError后面的语句

GoToErr_contorl是程序跳转语句,它的作用是在程序中寻找Err_control:

,并执行这一行后面的语句,本例中Err_Control:

后就是结束宏,所以只要出现错误,程序中止。

Loop‘结束循环

这个循环就历害了,它会无休止地进行循环,好在本例中已经有了一个出错陷井,当用户输入回车时,由于程序没有得到点或坐标,程序出错,跳出循环,中止程序。

如果要人为控制跳出循环,可以在代码中用ExitDo语句跳出循环。

在For变量和Next变量之间如果要跳出循环,那么只要在循环体内加一个Exitfor就可以跳出循环,关于这方面的例程以后会讲到。

CallThisDrawing.ModelSpace.AddLine(p1,p2)'

画直线方法也是很常用的,它的两个参数是点坐标变量

本课到此结束,请做思考题:

连续画圆,每次要求用户输入圆心、半径,当用户不再输入圆心或半径时程序才退出

第四课程序的调试和保存

人非圣贤,孰能无过,初学者在编写复杂程序时往往会出现一些意想不到的错误,所以程序的调试显得尤为重要,随着学习的深入,以后我们需要经常进行程序调试。

事实上,对于那些资深程序员来说,调试程序也是一项不可或缺的重要工作。

首先,在程序输入阶段,应该充分利用VBA编辑器的智能功能。

当你在写代码时,输入一些字母后,编辑器可以自动列出合适的语句、对象、函数供你选择,可以用上下键选择,然后按TAB键(它位于“Q”键左边)确认。

当输入一个回车符后程序会自动对这条语句进行分析,如果出现错误就会提示。

我们经常碰到的麻烦是程序的运行结果和预计的不一样,一般我会这样做:

首先要想一想可能是哪一个变量有问题,然后去监视这个变量(或表达式),在程序合适的位置设置断点,这样可以使程序停下来看一看这个变量有没有按照我的设想在变化。

下面我举一个简单的例子,先看源代码:

subtest()

fori=2to4step0.6

nexti

endsub

这是一个非常简单的循环,每一次循环i便会增加0.6,当循环3次后i值就变为4.4,但问题是每一次循环时i值变为多少?

在菜单中选“调试”—“添加监视”,在表达试中填“i”,点击确定,这时你会看到临视窗口中会多一行。

把光标移到代码窗口中的“nexti”行,按一下“F9”,于是每当程序运行到这里时就会暂停了

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1