[求助]VBA插入块的问题
Dim blockRefObj As AcadBlockReferenceDim insertionPnt(2) As Double
insertionPnt(0) = 33: insertionPnt(1) = 138: insertionPnt(2) = 0
Set blockRefObj = newdoc.ModelSpace.InsertBlock(insertionPnt, "d:\指北针.dwg", 1#, 1#, 1#, -angle)
代码如上,上面的代码在一个循环中,该循环每次都会创建一个新的CAD文件,插入一些图形后,保存,关闭。
在循环中插入上述代码后,会报错,“文件处理器错误”
郁闷的是,有时候生成每二个文件时报错,有时生成第一个就报错。不过还从来没生成成功超过两个文件。
高人指点,谢谢啦
只有上面的代码,看不出问题,能看出问题的是,在循环中重复定义变量。 谢谢楼上。上面代码是在一个函数中定义的,然后在循环中调用这个函数的,所以不存在重复定义的问题。
原代码太麻烦,没法全贴,我写了一个很短的测试的代码,出的是同样的错误。
Option Explicit
Public Sub newdoc()
test ("0")
test ("1")
test ("2")
End Sub
Private Sub test(name As String)
Dim newdoc As AcadDocument
Set newdoc = ThisDrawing.Application.Documents.Add("cd-road")
Dim blockRefObj As AcadBlockReference
Dim insertionPnt(2) As Double
insertionPnt(0) = 33: insertionPnt(1) = 138: insertionPnt(2) = 0
Set blockRefObj = newdoc.ModelSpace.InsertBlock(insertionPnt, "d:\指北针.dwg", 1#, 1#, 1#, 0)
newdoc.SaveAs ThisDrawing.Path & "\" & name
newdoc.Close
End Sub
麻烦各位高手帮忙再看看。
谁帮忙再看看哈
看看
试下ObjectDbx吧 Option Explicit
Dim D As New AxDbDocument
Dim blockRefObjs(0) As AcadBlockReference
Sub newdoc()
Dim insertionPnt(2) As Double
insertionPnt(0) = 33: insertionPnt(1) = 138: insertionPnt(2) = 0
On Error Resume Next
Set blockRefObjs(0) = D.ModelSpace.InsertBlock(insertionPnt, "d:\指北针.dwg", 1#, 1#, 1#, 0)
test ("0")
test ("1")
test ("2")
End Sub
Private Sub test(name As String)
Dim newdoc As New AcadDocument
D.CopyObjects blockRefObjs, newdoc.ModelSpace
newdoc.Close True, ThisDrawing.Path & "\" & name
End Sub
页:
[1]