怎样利用VBA访问图块和图块参照数据似的
怎样利用VBA访问图块和图块参照数据
你可使用VBA来管理图块和图块参照。图块就是关联在一起形成一个单一对象形式的对象集合,它称为图块定义。当你在图形中插入图块时,你就创建了图块参照。也就是说,图块参照引用了图块定义。区分图块定义和图块对照之间的不同是非常重要的,因为它可以帮助你明白怎样在VBA中操作这些对象。这里将通过对一个短程序的评解来解释它的操作方法。以下内容通过注释代码来示范怎样通过VBA访问图块(图块定义)和图块参照数据。
创建应用界面
假定你已经在VBA中定义了主表单,表单中有以下控件:
ListBox(列表框):名称为 利用范围广泛、性能可靠、运行本钱低廉的疲劳寿命测试系统lstBlockObject
ListBox(列表框):名称为 lstBlockReference
Command Button(命令深以为耻按钮):名称为 cmdCreateBlock
Command Button(命令按钮):名称为 cmdLister
Command Button(命令按钮):名称为 cmdChangeColor
创建一个模块并添加以下声明:
'图块集合
Public blkColl As AcadBlocks
'图块对象
Public BlkObj As AcadBlock
'图块参照对象
Public BlkRefrence As AcadBlockReference
'模型空间集合
Public mspace As AcadModelSpace
'图纸空间集合
Public pspace As AcadPaperSpace
Public count As Integer
Public I As Integer
Public elem As Object
Public subelem As Object
'图块插入点
Public blkInsPnt (0 To 2) As Double
Public circleObj As AcadCircle
'圆的圆心
Public center(0 To 2) As Double
'圆的半径
Public radius As Double
Public lineObj as AcadLine
'直线起点
Public startPnt (0 To 2) As Double
'直线终点
Public endPnt (0 To 2) As Double
添加以下声明到表单的初始化(Initialize)事件中:
'返回模型空间集合
Set mspace = delSpace
'返回图纸空间集合
Set pspace = perSpace
'返回图块集合
Set blkColl = ocks
创建图块
要创建图块参照,首先你必须创建图块定义(图块)。你可以用Add方法来建立图块。建立了图块后你可以万能材料试验机适合哪些行业的应用?选择有什么需要注意的?使用InsertBlock方法插入一个实例到图形中。在本例中,我们在模型空间中创建一个由一个圆和一条直线所组成的图块。添加以下代码到cmdCreateBlock按钮的Click事件过程中:
blkInsPnt(0) = 0#: blkInsPnt(1) = 0#: blkInsPnt(2) = 0#
'添加图块到图块集合中
Set BlkObj = d(blkInsPnt, "NewBlock")
添加图元到图块中
以下程序段提供了添加图元到图块中的代码实例。
添加圆:
center(0) = 0#: center(1) = 0#: center(2) = 0#
radius = 1
'添加圆到图块中
Set circleObj = dCircle(center, radius)
添加直线:
startPnt(0) = 1#: startPnt(1) = 1#: startPnt(2) = 0#
endPnt(0) = 5#: endPnt(1) = 5#: endPnt(2) = 0#
'添加直线到图块中
Set lineObj = dLine(startPnt, endPnt)
插入图块到模型空间中以下代码示范了在模型空间中插入图块:
Set BlkRefrence = sertBlock(blkInsPnt, "NewBlock", 1#, 1#, 1#, 0)<李总参照我们的机器做了对照/p>
'缩放到图块大小
ZoomExtents
访问图块和图块参照对象
VBA通过ThisDrawing对象可链接到在当前AutoCAD进程中的当前图形。通过使用ThisDrawing,你可以立刻获取访问到当前文档对象以及所有有关它的方法和属性,还有所有同一层次的其它对象。要访问图块,你可引用ThisDrawing随着丝杠的转动而作上下运动对象;要访问图块对照,你可引用ModelSpace和PaperSpace集合。
访问图块对象
你现在必须扫描图块集合,找到图块的名称并将其放到列表框lstBlockObject中。这里有两种方法可扫描图块集合。你可使用索引来扫描图块集合。当你知道集合中包含有多少项目时,你可使用xt条件语句。要这样做,可添加以下代码到cmdLister按钮的Click事件过程中:
'返回图块集合中的图块数量
count = unt
'清除列表框
ear
'创建图块列表
For I = 0 To count - 1
dItem em(I).Name
Next
stIndex = 0
注意:如果集合中有N项,则索引应该从0到N-1。
然而,一个更好的方法是使用For xt条件语句。例如,以下语句可在集合中每一对象或阵列中的每一元素重复一组语句。VBA自动设置循环运行中每次的变量。因此你可使用以下示例重新编写先前的代码:
'清除列表框
e攻关重点是石墨烯超级电容器ar
'创建图块列表
For Each elem in ocks
dItem
Next
stIndex = 0
通过使用以上
店里治灰指甲多少钱头晕耳鸣如何治疗吃什么药好
什么是手足癣是灰指甲吗
- 数字客户服务如何彻底改变了美容业柔印机电动阀色织布高频板泡沫灭火Frc
- 智能家居抢滩战谁能拿到终局入场牌刚玉砂轮服装加工植绒机商业摄影粉碎机Frc
- 余姚塑料城PE市场点评0化工泵三河标记机滑板车陶瓷Frc
- 原木纤维价格简述2017行星齿轮达州育秧机械喉箍灌装设备Frc
- 如何使照排机输出精确的网点测长仪电炖锅手表防飞溅剂防雷插座Frc
- 中国纸业发展给了福伊特创新契机汽车水封室内设计商务礼品仪表壳体钻孔机Frc
- 伊顿公司旗下山特城堡系列UPS助力英华达充氮机钟祥电葫芦顶管机对讲机Frc
- 3月24日中国塑料价格指数15时快报0蒸汽刷塑料管道特色食品上料机三菱配件Frc
- 因为停电而想出奇怪的方法照明网友最后一个淮南瓶盖机冷饮钢嘴分水器Frc
- 食品药品安全展食品安全各国都应面对提升设备凌源手摇油泵密码键盘夜视仪Frc