1。1。2 主要研究内容和技术路线
本文中主要使用VBA 进行编程,实现对矿图符号的设计与开发。VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,许多仅用ACAD命令无法完成的任务,就需要VBA来实现。
矿图符号库的制作基本分为两个大的方面,一部分是独立地物符号的制作,如井下水准基点、背斜、见煤钻孔等;另一部分则是矿图制图中常用的线型、线宽以及设备设施,如采回边界、石门、水闸门等。
为形成完整的数据库,建立宏并应用于菜单栏或工具条中,以便选取符号进行使用。参考了常用矿图符号表,对上述两大部分不同点状、线状及面状地物符号使用编程的方式达到自动绘制。
2 模型空间(modelspace)及图块(block)
在设计符号之前,首先要了解模型空间及图块的定义,集合对象是预先定义的对象,模型空间集合和图块对象就是集合对象,包含所有相似对象的实例。模型空间集合是所有存在于模型空间中图形对象(图元);图块对象则是存在于所定义的图块中的所有图元。当CAD的自带图形无法满足对符号设计的需求时,就可在模型空间中自主绘制想要的图元,然后将其定义为一个图块,将零散的点,线,面合成一个整体,从而达到设计的目的。
以水准基点(图2-1)为例创建一个块,并向块中添加圆和直线:
图2-1 水准基点
水准基点代码如下:
'绘制水准基点
Sub point2()
'获取点
Dim p1 As Variant
p1 = ThisDrawing。Utility。GetPoint(, vbCrLf & "点:")
'创建一个块
Dim block2 As AcadBlock
Dim p2(0 To 2) As Double
p2(0) = 0论文网
p2(1) = 0
p2(2) = 0
Set block2 = ThisDrawing。Blocks。Add(p2, "cb2")
'在块中添加圆
Dim tx1 As AcadCircle
Dim xy(0 To 2) As Double
Dim r As Double
xy(0) = 1: xy(1) = 1: xy(2) = 0
r = 0。75
Set tx1 = block2。AddCircle(xy, r)
'在块中添加直线
Dim tx2 As AcadLine
Dim sp(0 To 2) As Double
sp(0) = 0。25: sp(1) = 1: sp(2) = 0
Dim ep(0 To 2) As Double
ep(0) = 1。75: ep(1) = 1: ep(2) = 0
Set tx2 = block2。AddLine(sp, ep)
'在块中添加直线
Dim tx3 As AcadLine
Dim sp1(0 To 2) As Double
sp1(0) = 1: sp1(1) = 1。75: sp1(2) = 0
Dim ep1(0 To 2) As Double
ep1(0) = 1: ep1(1) = 0。25: ep1(2) = 0
Set tx3 = block2。AddLine(sp1, ep1)
'插入块
Dim blockref2 As AcadBlockReference
p2(0) = p1(0)
p2(1) = p1(1)
p2(2) = p1(2)
Set blockref2 = ThisDrawing。ModelSpace。InsertBlock(p2, "cb2", 1#, 1#, 1#, 0)
'更改块图层为矿区
blockref2。Layer = "矿区"
blockref2。Update
End Sub
3 矿图符号设计
3。1 独立地物符号设计
矿图中有许多特有的独立地物符号,不同的地物符号要有一定的区分度,根据符号的不同含义,设计原则也有所不同。独立地物基本上可分为点状、线状及面状三大类,包含控制点、钻孔及巷道等。