CAD_VBA

更新时间:2023-06-05 06:07:18 阅读: 评论:0

AutoCAD VBA
一、AutoCAD VBA简介
•VBAVisual Basic for Application
VBAAutoCAD的一种开发工具,具有强大的功能。Microsoft VBA是一种面向对象的编程环境,它与VB一样具有很强的开发功能。ringtonesVBAVB之间的区别就是VBA AutoCAD在同一处理空间运行,为AutoCAD提供智能和快速的编程环境。
VBA功能:
创建对话框和其它界面;
创建工具栏;
saw怎么读● 建立模块级宏指令;
提供建立类模块的功能;
深圳人力资源师培训具有完善的数据访问和管理能力;(ADODAORDOC/S)
能够使用Win32API提供的功能,建立应用程序与操作系统之间的通信;
AutoCAD中使用VBA的好处
Visual Basic编程环境易学易用;
VBA作为AutoCAD的一个过程运行,这使程序执行速度变得非常快;
对话框结构快速有效,允许开发者在设计时启动应用程序并能得到快速反馈;(易于代码纠错和维护)
对象可以独立出来,也可以嵌入AutoCAD图形。灵活性很强。
二、理解类和对象
AutoCAD VBA界面中有许多不同类型的对象。例如:
图形对象,如线、弧、文本和标注都是对象;
样式设置,如线型和标注样式均为对象;
组织结构,如图层、组合和图块也是对象;
图形显示,如视图和视口都是对象;
甚至图形和AutoCAD应用程序本身也是对象。
对象是通过分层方式来组织的,应用程序对象为根对象。这种分层结构的视图被归结为对象模型。对象模型提供了你访问下一层对象的途径。
集合对象是预先定义的对象,它包含所有相似对象的实例(即这些对象的父对象)。集合对象有以下的对象:
文档(Documents)集合
包含所有在当前AutoCAD进程打开的文档。
模型空间(ModelSpace)集合
包含在模型空间中的所有图形对象(图元)。
图纸空间(PaperSpace)集合
包含在活动图纸空间布局中的所有图形对象(图元)。
图块(Block)对象
2013六级成绩查询包含在指定图块定义中的所有图元。
图块(Blocks)集合
safety什么意思包含在图形中的所有图块。
字典(Dictionaries)集合
包含在图形中的所有字典。
标注样式(DimStyles)集合
包含在图形中的所有标注样式。
组合(Groups)集合
包含在图形中的所有组合。
超级链接(Hyperlinks)集合
包含提供图元的所有超级链接。
图层(Layers)集合
包含在图形中的所有图层。
布局(Layouts)集合
包含在图形中的所有布局。
线型(Linetypes)集合
包含在图形中的所有线型。
菜单条(MenuBar)集合
包含当前显示于AutoCAD的所有菜单。
菜单组(MenuGroups)集合
包含当前装载到AutoCAD中的所有菜单和工具栏。
注册应用程序(RegisteredApplications)集合
麻木的英文包含在图形中的所有注册的应用程序。
选择集(SelectionSets)集合
包含在图形中所有的选择集。
字型(TextStyles)集合
包含在图形中所有的文字样式。
UCSs 集合
包含在图形中所有的用户坐标系统(UCS)。
视图(Views)集合
包含在图形中所有的视图。
视口(Viewports)集合
包含在图形中所有的视口。
三、理解对象的属性和方法
每一对象都关联着属性和方法。属性描述着单个对象的外观,而方法是一种可在单个对象上执行的行为。当对象创建后,你就可通过属性和方法查询和编辑对象。
    例如,一个圆对象有圆心属性。该属性以三维世界坐标系统的坐标描述了圆的圆心。更改圆的圆心,你只要简单地将该属性设定为新的坐标。圆对象也有称为偏移(Offt)的方法。该方法可在相对于现存圆的指定偏移距离创建一个新的对象。关于圆对象所有属性和方法的列表,请参考AutoCAD ActiveX和VBA参考中的圆对象。
四、开发实例
1、程序和文档窗口设置
'''*****************************************************************************
合肥北大青鸟
Sub MyWindow()
    MsgBox ThisDrawing.WindowTitle '= "杨彪绘图01"
    ThisDrawing.WindowState = acMin 'acMax  'acNorm
End Sub
Sub SetMyAcadTitle()
  Dim hw&
  hw = GetParent(GetParent(ThisDrawing.hwnd))
  SetWindowText hw, "杨彪地质编录出图子系统"
  Call InitialDZBL '初始化
  ThisDrawing.WindowState = acMax
End Sub
Sub SetMyAcadWindow()
  ThisDrawing.Application.WindowState = acNorm
  ThisDrawing.Application.WindowLeft = 100
  ThisDrawing.Application.WindowLeft = 100叶紫函
  ThisDrawing.Application.Width = 600
  ThisDrawing.Application.Height = 600
End Sub
2、视图
'''**************************************************************************
Sub MyZoomView1()
    ThisDrawing.Application.ZoomExtents
    ZoomAll
End Sub
Sub MyZoomView2()
    Dim VPn1  As Variant, VPn2 As Variant
    VPn1 = point(, " 缩放窗口左下点:")scalelistedit
    VPn2 = point(, " 缩放窗口右上点:")
    ThisDrawing.Application.ZoomWindow VPn1, VPn2
End Sub
3、二维图形绘制
‘addline
Sub Myaddline()
    Dim ln As AcadLine
    Dim startPt(2) As Double, EndPt(2) As Double
    startPt(0) = 0
    startPt(1) = 0
    startPt(0) = 100
    startPt(1) = 50
    Set ln = ThisDrawing.ModelSpace.AddLine(startPt(), EndPt())
    ln.color = acRed
    ZoomAll
End Sub
‘LightWeightPolyline
Sub MyLightWeightPolyline ()
    Dim MyPln As AcadLWPolyline
    Dim Pnts(9) As Double
   
    For I = 0 To 9
        Pnts(I) = Rnd * 100
    Next
'    Pnts(0) = PntMin(0): Pnts(1) = PntMin(1)
'    Pnts(2) = PntMin(0) + DWidth: Pnts(3) = PntMin(1)
'    Pnts(4) = PntMin(0) + DWidth: Pnts(5) = PntMin(1) + DHeight
'    Pnts(6) = PntMin(0): Pnts(7) = PntMin(1) + DHeight
'    Pnts(8) = PntMin(0): Pnts(9) = PntMin(1)
   
2021年6月英语四六级成绩查询时间    Set MyPln = ThisDrawing.ModelSpace.AddLightWeightPolyline(Pnts)
   
    Dim n As Integer
    n = UBound(Pnts)
    For K = 0 To (n / 2 - 1) '宽度设定
        MyPln.SetWidth K, K / 5, Rnd * 10
    Next
    lor = acYellow
    ZoomAll
End Sub
‘Polyline
Sub MyPolyline()
    Dim MyPln As AcadPolyline
    Dim Pnts(8) As Double '''必须是3*N的数组
   
    For I = 0 To 8
        Pnts(I) = Rnd * 100
    Next
   
    Set MyPln = ThisDrawing.ModelSpace.AddPolyline(Pnts)
   
    Dim n As Integer
    n = UBound(Pnts)
    For K = 0 To (n / 3 - 1) '宽度设定
        MyPln.SetWidth K, K / 5, Rnd * 10
    Next
    lor = acYellow
    ZoomAll
End Sub
‘LightCircle  and  Hatch
Sub MyCircle()
    Dim Cir(0) As AcadCircle
    VPn1 = point(, " 输入插入点:")
    Set Cir(0) = ThisDrawing.ModelSpace.AddCircle(VPn1, 10#)

本文发布于:2023-06-05 06:07:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/134461.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   图形   包含   属性   方法   模型   应用程序   提供
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图