请教,我该如何选择布局里面的所有图形
想用vb查看dwg文件,我做一个列表框,枚举出所有的布局添加到list,包括模型,然后点击列表框的时候,在picture显示出对应布局的图形画面。
我的思路是:
当即据列表框时激活对应的布局,然后用AcadSelectionSet选择集选择所有的图象,在用Export方法导出文件bmp文件。再显示picture图象框。现在遇到个问题,就是好难控制选择布局里面的所有图形。我用sset.Select (acSelectionSetAll) 方法,却只选择只画在布局的图片,画在模型的就是选择了。通过发送命令,CadDoc.SendCommand "ai_selall "。这倒可以,不过,老是需要进入autocad按一下回车,不然就提示,程序正忙,请切换到。郁闷阿。不知道有什么方法可以选择布局的所有图形?下面是一段函数。
Private Sub List1_Click()
Dim s$, fil$
Dim Layout As AutoCAD.AcadLayout
Dim sset As AcadSelectionSet
If List1.ListIndex <> -1 Then
s = List1.List(List1.ListIndex)
CadDoc.ActiveLayout = CadDoc.Layouts(s)
Set sset = CadDoc.SelectionSets.Add("NEWSSET") '添加新的选择集
fil = "c:\test"
CadApp.ZoomAll
sset.Select (acSelectionSetAll)
'CadDoc.SendCommand "ai_selall " '& vbCr
'CadDoc.SendCommand vbCr
CadDoc.Export fil, "bmp", sset
Picture1.Picture = LoadPicture(fil & ".bmp")
'Shell fil & ".bmp"
CadDoc.SelectionSets.Item("NEWSSET").Delete
End If
End Sub 你试试布局的Block属性,它得到的是布局几何图形所在的图块名。 <p>前几天我也问过和这个相似的问题见:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=75971</p><p>你可以直接得到第i个布局中第j个图元:layouts.item(i).block.item(j)</p><p>还有注意的是这个i和你的布局选项卡是不一定对应的。选项卡顺序和里面的Layout.TabOrder对应。</p> <p>刚得到lzh741206斑竹在别的帖子的指点</p><p>我现在认为可以这样:</p><p>Dim blkdef As AcadBlock<br/>Set blkdef = ThisDrawing.Layouts.Item("布局1").Block<br/><br/></p> <p> 先谢谢楼上几位的热心。这几天有点忙,所以没有上来看看帖子。呵呵</p><p> 不过据我知道,布局表现为 块,但视口里面的图形确是模型的,但如果只选择为 布局的块,是否能够连同视口里面的图形选中吗?我测试下。再回来报告</p>
页:
[1]