明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2231|回复: 6

[求助]VBA插入块的问题

[复制链接]
发表于 2009-6-25 16:37:00 | 显示全部楼层 |阅读模式

    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#, -angle)

代码如上,上面的代码在一个循环中,该循环每次都会创建一个新的CAD文件,插入一些图形后,保存,关闭。

在循环中插入上述代码后,会报错,“文件处理器错误”

郁闷的是,有时候生成每二个文件时报错,有时生成第一个就报错。不过还从来没生成成功超过两个文件。

高人指点,谢谢啦

发表于 2009-6-25 20:56:00 | 显示全部楼层
只有上面的代码,看不出问题,能看出问题的是,在循环中重复定义变量。
 楼主| 发表于 2009-6-25 22:33:00 | 显示全部楼层

谢谢楼上。上面代码是在一个函数中定义的,然后在循环中调用这个函数的,所以不存在重复定义的问题。

原代码太麻烦,没法全贴,我写了一个很短的测试的代码,出的是同样的错误。

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
   

麻烦各位高手帮忙再看看。

 楼主| 发表于 2009-6-26 15:43:00 | 显示全部楼层

谁帮忙再看看哈

发表于 2009-6-26 18:54:00 | 显示全部楼层

看看

发表于 2009-6-27 23:08:00 | 显示全部楼层
试下ObjectDbx吧
发表于 2009-6-28 07:23:00 | 显示全部楼层

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 02:55 , Processed in 0.172724 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表