Karma 发表于 2022-7-6 22:22:54

无法使用运行程序

你好
我在AutoCAD方面有很好的经验,但没有编程技能,我刚开始使用Acad VBA(对不起,我的英语也很基础)。
我从一些简单的程序开始,比如创建图形几何。。。
现在,我想知道如何构建代码来选择图形中的对象。我测试了这个程序(见下文)和许多其他程序,以了解逻辑;我每次都在同一行(红色)上出错。
我了解到,这条线用于为ssetObj对象赋予一个新维度。但是
问题是什么?有人能帮我吗?
谢谢

Private Sub CommandButton3_Click()
Dim ssetobj As AcadSelectionSet
'On Error Resume Next
Set ssetobj = ThisDrawing.SelectionSets.Add("SS01")
frmForm1.Hide
ssetobj.SelectOnScreen
ssetobj.Erase
frmForm1.Show
End Sub

BIGAL 发表于 2022-7-6 22:41:09

快速回答
 

to find blocks = INSERT

FilterDXFCode(0) = 0
FilterDXFVal(0) = "INSERT"

Set SS = ThisDrawing.SelectionSets.Add("pit1sel")
SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal

a bit more

BLOCK_NAME = "SCHEDTEXT"

For Cntr = 0 To SS.Count - 1
If SS.Item(Cntr).Name = BLOCK_NAME Then
attribs = SS.Item(Cntr).GetAttributes

SLW210 发表于 2022-7-6 22:48:15

请阅读代码发布指南,并编辑代码以包含代码标签。

Karma 发表于 2022-7-6 22:59:33

@SLW210,你是最棒的!

Karma 发表于 2022-7-6 23:06:36

我发现,在运行第二次例程之前,必须删除选择集“SS01”。否则,程序将尝试重新创建相同的选择SS01。
谢谢Bigal
然后:

Private Sub CommandButton3_Click()
Dim ssetobj As AcadSelectionSet
Set ssetobj = ThisDrawing.SelectionSets.Add("SS01")
frmForm1.Hide
ssetobj.SelectOnScreen
ssetobj.Erase
ssetobj.Delete
frmForm1.Show
End Sub

Rajparamasivam 发表于 2022-7-6 23:19:47

您的代码可能是这样的
 

Karma 发表于 2022-7-6 23:27:24

谢谢Rajparamasivam
页: [1]
查看完整版本: 无法使用运行程序