1 / 27

第十项目 二次开发技术

第十项目 二次开发技术. ● 学习目标 1. 了解 AutoCAD 2004 二次开发的基本方法。 2. 掌握 VBA 、脚本语言( SCR )等方法快速绘制公路 平面图、纵断面图、横断面图、互通立交图、桥梁结构 图等的基本方法。 ●本项目重点 利用 VBA 参数化绘制基本图形、绘制公路专业图形 ; 利 用脚本语言参数化绘制基本图形和公路、桥梁、互通立 交等专业图形。 ●本项目难点 VBA 参数化绘制基本图形的子程序、脚本语言参数化 绘制基本图形的子程序,专业图形绘制时调用子程序的 方法。. 第十项目 二次开发技术.

connie
Download Presentation

第十项目 二次开发技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十项目 二次开发技术 ●学习目标 1.了解AutoCAD 2004二次开发的基本方法。 2.掌握VBA、脚本语言(SCR)等方法快速绘制公路 平面图、纵断面图、横断面图、互通立交图、桥梁结构 图等的基本方法。 ●本项目重点 利用VBA参数化绘制基本图形、绘制公路专业图形;利 用脚本语言参数化绘制基本图形和公路、桥梁、互通立 交等专业图形。 ●本项目难点 VBA参数化绘制基本图形的子程序、脚本语言参数化 绘制基本图形的子程序,专业图形绘制时调用子程序的 方法。

  2. 第十项目 二次开发技术 任务一 概述 任务二 VBA基本应用 任务三 脚本文件概述 任务四利用高级语言制作脚本文件 任务五脚本语言应用

  3. 任务一 概述 • 利用AutoCAD 2004 进行二次开发的方法有很多, 除了通过系统变量定制系统参数外,AutoCAD 2004 的二次开发途径主要有两个,即文件开发和程序开发。 • 文件开发是指根据用户的具体开发需求,按照 AutoCAD 提供的方法和文件格式,通过编辑AutoCAD 系统所支持的ASCII码功能文件(如 ACAD.MNU 和ACAD.LIN 等)或建立同种类型(扩展 名)新的ASCII码功能文件,来开发AutoCAD ,使其 满足用户特定需要的方法。 • 程序开发是指利用AutoCAD 提供的编程环境和开发 工具(称为AutoCAD 应用程序接口,缩写为API), 通过编写程序来实现对AutoCAD 开发的方法。

  4. AutoCAD的程序开发是通过AutoCAD应用程 序接口(API)来实现的。下面作分类说明: • AutoLISP是一种专用的LISP编程语言,是 AutoCAD固有的一部分。AutoLISP程序存储于 ASCII码文本文件中,每当运行它时,AutoCAD都 将读取并解释它们。尽管AutoLISP文件可以有任意 的名字和扩展名,但根据约定,AutoLISP文件通常 以“.LSP”为扩展名。用户可用AutoLISP开发 AutoCAD来适应自己的具体需要、自动执行重复的 任务或生成新的AutoCAD命令。用户既可编写自己 的AutoLISP应用程序,也可使用第三方开发的共享 程序。

  5. ARX ( AutoCAD 运行时间延长)是从 AutoCAD R13 以后版本中编写的用来与 AutoCAD 一 起工作的 C 和 C ++程序。ARX 程序与 AutoCAD 的联系比其他程序直接,因此对诸如渲染和实体造型这 样的非常密集的任务可以更快地计算。ARX 程序以 ARX 为扩展名,通过 ARX 编程接口,用户可使用 C 或 C ++程序设计语言来开发 AutoCAD ,也可以使 用第三方的 ARX 应用程序或编写自己的应用程序。 • ActiveX Automation(以前简称为OLE Automation)提供了一种现代的可替代AutoLISP及 DCL的方法和途径。用户从AutoCAD控件的应用程序 (Visual Basic或任何Office2000、Office2003应用程序)中访问和控制AutoCAD对象(objects)。

  6. 任务二 VBA基本应用 一、利用VBA绘制基本图形 1.直线绘制(源程序) 2.多段线绘制(源程序) 3.绘制圆弧(源程序) 4.绘制圆(源程序) 5.单行文字绘制(源程序) 6.文字旋转(源程序) 二、利用VBA绘制互通立交匝道的平面设计图

  7. 1.直线绘制 Private Sub CommandButton1_Click() '该段代码可以完成直线绘制 Dim lineObj As AcadLine Dim startPoint(0 To 2) As Double Dim endPoint(0 To 2) As Double '定义直线的起止点 startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0# endPoint(0) = 500#: endPoint(1) = 500#: endPoint(2) = 0# ' 在图形空间由程序绘制直线 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) ZoomAll '缩放图形 End Sub

  8. Private Sub CommandButton2_Click() Dim plineObj As AcadPolyline Dim points(0 To 14) As Double points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 points(9) = 3: points(10) = 2: points(11) = 0 points(12) = 4: points(13) = 4: points(14) = 0 Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points) ZoomAll End Sub 2.多义线绘制子程序

  9. 3.绘制圆弧 Private Sub CommandButton3_Click() Dim arcObj As AcadArc Dim centerPoint(0 To 2) As Double Dim radius As Double Dim startAngleInDegree As Double Dim endAngleInDegree As Double centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0# radius = 5# startAngleInDegree = 10# endAngleInDegree = 230# Dim startAngleInRadian As Double Dim endAngleInRadian As Double startAngleInRadian = startAngleInDegree * 3.141592 / 180# endAngleInRadian = endAngleInDegree * 3.141592 / 180# Set arcObj = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngleInRadian, endAngleInRadian) ZoomAllEnd Sub

  10. 4.绘制圆 Private Sub CommandButton4_Click() Dim circleObj As AcadCircle Dim centerPoint(0 To 2) As Double Dim radius As Double centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0# radius = 5# Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) ZoomAll End Sub

  11. 5.单行文字绘制 Private Sub CommandButton5_Click() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 2: insertionPoint(1) = 2: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height) ZoomAll End Sub

  12. 6.文字旋转 Private Sub CommandButton6_Click() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 3: insertionPoint(1) = 3: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, nsertionPoint, height) ZoomAll MsgBox "The Rotation is " & textObj.rotation, vbInformation, "Rotation Example" ' Change the value of the Rotation to 45 degrees (.707 radians) textObj.rotation = 0.707 ZoomAll MsgBox "The Rotation is set to " & textObj.rotation, vbInformation, "Rotation Example" End Sub

  13. 任务三 脚本文件概述 一、脚本文件的功用 二、脚本文件的格式 三、脚本文件的编写与调用

  14. 一、脚本文件的功用 • 把经常需要重复使用的命令序列编写成脚本文 件,代替交互操作,使操作简化又节省了时间。 • 脚本文件可作为一个完整的绘图程序直接执 行,还可以用任一种高级语言生成脚本文件,实现 参数化绘图。 • 脚本文件还可作为菜单文件调用,使菜单文件 简化。 • 可以利用脚本文件播放幻灯片。

  15. 二、脚本文件的格式 编写脚本文件的格式规则 • 空格即代表回车。 • 每行结尾无论有无空格都自动加一空格。 • 脚本文件是以ASCII码格式建立的,可在任意 编辑器里编写。正确编写脚本文件的前提是必须 十分清楚所用AutoCAD命令的使用情况。 • 以“;”开头的为注释行,注释不能与命令或其 他输入位于同一行。 • 字母大小写不限。

  16. 下面编写一个脚本文件绘出如图11-10所示的图形并下面编写一个脚本文件绘出如图11-10所示的图形并 标注尺寸,假定该文件名为LX-1.SCR(初学者最好把这个 文件存放在C盘根目录下)。 ;绘制桥墩帽梁 ;输入命令 PLINE ;输入起点坐标 100,200 ;定义线宽 W .3 .3 ;绘制梁顶 102.2,200□102.2,197.6□214.5,197.6 □214.5,200□216.7,200 ;绘制梁底和侧面 216.7,192.2□196.4,187.6□120.3,187.6□100,192.2□C ; 显示全图 ZOOM□ALL□ 在AutoCAD系统外,用任一文本编辑 软件输入上述文件内容,然后将其存入 名为LX-1.SCR的文件中后退出。 需要特别注意的是:所有文本行左侧 不能留空格,所有标点符号均用半角字符 格式。 三、 脚本文件的编写与调用

  17. 三、 脚本文件的编写与调用 调用该脚本文件绘图的方法为:在AutoCAD命令提示符下, 键入SCRIPT,将显示图11-11所示“Select SCRIPT File(选择 脚本文件)”对话框。 在对话框中的“文件名”栏处输入“LX-10”,再用鼠标单击“打 开”按钮,系统即可自动执行LX-1.SCR文件,绘制出如图11-10 所示的图形。

  18. 三、 脚本文件的编写与调用 执行SCRIPT命令后,交互区的内容(按F2功能键可查看) 命令: SCRIPT↙ 命令: PLINE 指定起点: 100,200 当前线宽为 0.0000 指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度 (W)]:W 指定起点宽度 <0.0000>: .3 指定端点宽度 <0.3000>: .3 指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]: 102.2,200 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 102.2,197.6 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 214.5,197.6

  19. 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 214.5,200 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 216.7,200 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 216.7,192.2 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 196.4,187.6 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 120.3,187.6 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: 100,192.2 指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽 度(W)]: C 命令: ZOOM 指定窗口角点,输入比例因子 (nX 或 nXP),或 [全部(A)/中心点(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口 (W)] <实时>: ALL

  20. 任务四利用高级语言制作脚本文件 一、基本图元的绘制子程序——图形接口 1.多段线绘制子程序 2.画弧子程序 3.画圆子程序 4.圆环绘制子程序 二、文字、标注的子程序 1.单行文字绘制子程序 2.线性标注子程序

  21. 2.画弧子程序 Sub Arcplot(scrno, Xa, Ya, xb, yb, R) Print #scrno, "ARC" Write #scrno, Xa, Ya Print #scrno, "E" Write #scrno, xb, yb Print #scrno, "R" Write #scrno, R End Sub

  22. 3.画圆子程序 Sub Circle1plot(scrno, X0, Y0, R) Print #scrno, "CIRCLE" Write #scrno, X0, Y0 Write #scrno, R End Sub

  23. 4.圆环绘制子程序 Sub Donutplot(scrno, INSIDE, OUTSIDE, xc, yc) Print #scrno, "DONUT" Write #scrno, INSIDE Write #scrno, OUTSIDE Write #scrno, xc, yc Print #scrno, ""End Sub

  24. 1.单行文字绘制子程序 Sub Text(scrno, Xa, Ya, texthighth, angle, text$) Print #scrno, “-style” Print #scrno, “” Print #scrno, “宋体”‘(WINDOWS98下为“simsun.ttf”,WINDOWSXP下为“宋体”)Write #scrno, texthighth Write #scrno, 0.7 Write #scrno, 0 Print #scrno, "" Print #scrno, "" Print #scrno, "text" Write #scrno, Xa, Ya Write #scrno, angle Print #scrno, text$End Sub

  25. 任务五脚本语言应用 一、横断面图绘制(见教材) 二、构件配筋图的绘制(见教材) 三、纵断图的绘制(见教材)

  26. ●本项目小结 本项目介绍了利用AutoCAD 2004 进行二次 开发的各种方法;详细介绍了利用VBA及脚 本文件开发绘制专业图形的方法;利用这些 方法可以明提高专业图形绘制效率。

  27. 任务一 概述 各种二次开发方法综述 各种二次开发方法的优缺点 程序的运行环境、源程序的格式 任务二 VBA基本应用 利用VBA绘制基本图形 利用VBA绘制互通立交匝道的平面图 各基本图形的绘制子程序 程序编写的方法、技巧 任务三 脚本文件概述 脚本文件的功用 脚本文件的格式 脚本文件的编写与调用 脚本文件中空格、逗号的格式 脚本文件的调用技巧 任务四 利用高级语言制作脚本文件 基本图元绘制的子程序 文字与标注的子程序 子程序中各参数的含义 子程序的调用技巧 任务五 脚本语言应用 利用脚本语言提高专业图形绘制效率 横断面图绘制源程序使用技巧 结构配筋图的绘制及标注 纵断面图绘制程序的流程

More Related