导致 VB 错误的 RText
大家好,我有一个例程,它运行带有裁剪平面的dview,然后还运行section命令。然后,由sectionsolid命令创建的区域图元被移动到一个单独的动态命名并按顺序编号的图层中。我已尝试为该绘图、图纸空间和其他几个要素中的每个要素创建一个选择集。
Dim sHandle As String
Dim itm As AcadObject
Dim SkipPortHandle As String
Dim testvp As AcadViewports
Dim ActLayout As AcadLayout
Dim DOC As AcadDocument
Set ActLayout = thisdrawing.ActiveLayout
thisdrawing.ActiveSpace = acPaperSpace
thisdrawing.MSpace = True
Dim pviewportObj2 As AcadPViewport
Dim testvp2 As AcadPViewport
Dim currView As AcadPViewport
Dim testvp3 As AcadPViewport
'gets the viewport handle
On Error Resume Next
Set ssetObj = thisdrawing.SelectionSets.Add("prev")
On Error GoTo 0
ssetObj.Select acSelectionSetPrevious
thisdrawing.ActivePViewport = thisdrawing.ActivePViewport
SkipPortHandle = thisdrawing.ActivePViewport.Handle
'gets all the layout names
Dim Layouts As AcadLayouts, Layout As AcadLayout
Dim LayoutName2 As AcadLayout
Set Layouts = thisdrawing.Layouts
thisdrawing.MSpace = False
For Each Layout In Layouts
If Layout.Name"Model" Then
ZoomAll
thisdrawing.ActiveLayout = Layout
ZoomAll
'ssetObj.Clear
'ssetObj.Select acSelectionSetAll
'For Each Ent In ssetObj
For Each Ent In thisdrawing.PaperSpace
If LCase(Ent.ObjectName) = "acdbviewport" Then
If Ent.HandleSkipPortHandle Then
ZoomAll
If LCase(Ent.Layer) = "vports" Then
sHandle = Ent.Handle
Set itm = thisdrawing.HandleToObject(sHandle)
ZoomAll
Set currView = itm
thisdrawing.MSpace = True
thisdrawing.ActivePViewport = currView
thisdrawing.SendCommand "vplayer" & " " & "f" & " " & layername2 _
& vbCr & "current" & vbCr & vbCr
currView.Update
End If
End If
End If
Next
End If
Next
On Error GoTo 0
thisdrawing.ActiveLayout = ActLayout
thisdrawing.MSpace = True
thisdrawing.ActivePViewport = thisdrawing.HandleToObject(SkipPortHandle)
thisdrawing.SendCommand "vplayer" & " " & "t" & " " & layername2 _
& vbCr & "current" & vbCr & vbCr
thisdrawing.SendCommand "pspace" & vbCr
thisdrawing.Regen acAllViewports
在上面的代码中,每当它遇到paperspace中的任何RText时,都会给出一个类错误。这是Autodesk的一个已知问题。
关于如何解决这个问题,有什么建议吗?我喜欢使用RText,不希望以后不得不添加它或者要求我的客户也这样做。
谢谢您,
David wishen grad
mill lister,Inc.
PS。亚历克斯在Woodweb上发布了这个网站,所以我想我应该去看看。我仍然不明白为什么他还不是顾客。我真的不知道他到底是做什么的,而且许多细节设计人员没有选择他们使用什么软件的权利。如果你看到这封信,亚历克斯,有机会给我打个电话。你是个相当聪明的家伙。我想了解你的需求是什么。
**** Hidden Message *****
Sub RTextErrContol()
Dim ent As AcadEntity
On Error GoTo Err_Control
For Each ent In ThisDrawing.PaperSpace
Debug.Print ent.ObjectName
Next
Exit_Here:
Exit Sub
Err_Control:
Select Case Err.Number
Case -2147221231 'Automation error
Resume Next
Case Else
MsgBox Err.Description
Err.Clear
Resume Exit_Here
End Select
End Sub
是的,我知道。我从来没有考虑过所有的选择和问题,但是我知道这个可以很好地处理所有事情。下一个onerror简历是由on error goto 0处理的。我之前已经把那些东西拉回来放回去了。总有一天我会正确地编码它,但是它不会因为我知道当它还不存在并且删除了on错误时如何干净地开始。对我来说,用正确的方式来做会更容易一点,你的方式,我只是现在没有时间去理解。我知道的足够多,它最终会与我合得来。
谢谢你的回复,
戴夫 谢谢Bryco,
但是下一个简历不会在类错误的情况下工作。它只是立即软管选择集。我认为无论如何你甚至不能查看实体,否则就太晚了。因此这篇文章。 谢谢你恰克,但不会的。如果你们看到这个,你们就会明白了。拿出一些测试代码给你看实在是太费时间了。我在找一个已经熟悉这种错误的人。对于Autodesk来说,这是一个相当严重的错误,我还没有在任何地方看到任何解决方案。继续努力,戴夫 如果使用选择集,则筛选出 RTEXT 对象。在迭代 Layout.Block 对象时,我没有找到任何合理的方法来解决这个问题。要获取图形中除 RTEXT 对象之外的所有内容:
[代码 2]
和 FWIW,这似乎在 R2007 中已修复 布莱科,它有点管用...虽然它捕获错误,因此用户不会遇到错误消息,但它不允许在遇到 RTEXT 对象后再处理任何实体。若要对此进行测试,请绘制一条线,然后是一个 Rtext 对象,然后是一个圆圈并运行宏。线条将输出到“即时”窗口,但不输出到圆圈。
页:
[1]