hchm 发表于 2008-5-2 10:49:00

[求助]关于将某文件夹下DWG文件当作块插入当前DWG文件

目的叙述:
将D盘5w.dwg文件当作块插入当前已打开的xyz.dwg文件?
程序内容:
Private Sub Command2_Click()
    Dim blockRefObj As AcadBlockReference
    Dim Pnt(0 To 2) As Double
    Pnt(0) = 2
    Pnt(1) = 2
    Pnt(2) = 0
    Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(Pnt, "D:\5w.dwg", 1#, 1#, 1#, 0)
    blockRefObj.Update
End Sub
出现错误:
实时错误:424要求对象
(对上述红色区域)
问题请教:
1、以上程序错在那里?怎样修改?
2、如果想在插入时打散(炸开),应怎样修改?
谢谢各位。

fjfhgdwfn 发表于 2008-5-2 17:43:00

炸开blockRefObj.Explode
可能是你的D盘下没有5W.DWG
我这可以运行。

azjmjsj 发表于 2008-5-3 04:45:00

代码正确,可以运行
Private Sub CommandButton1_Click()
Dim blockRefObj As AcadBlockReference
    Dim Pnt(0 To 2) As Double
    Pnt(0) = 2
    Pnt(1) = 2
    Pnt(2) = 0
    Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(Pnt, "D:\5w.dwg", 1#, 1#, 1#, 0)
    blockRefObj.Explode
    blockRefObj.Update
End Sub

hchm 发表于 2008-5-3 10:49:00

哦,我忘记告诉大家是在VB中编的,并不是VBA,
请问是不是ThisDrawing出的错?
在VB中当前文件能用ThisDrawing表示吗?
以上代码应怎样修改?盼复!

fjfhgdwfn 发表于 2008-5-3 11:27:00


看看这个。再在GOOGLE中搜下VBA VB   CAD,网上很多的

azjmjsj 发表于 2008-5-3 12:29:00


Public AcadApp As Object
Private Sub Form_Load()
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
   Err.Clear
      Set AcadApp = CreateObject("AutoCAD.Application")
      If Err Then
      MsgBox ("不能运行AutoCAD, 请检查是否安装了AutoCAD")
      Exit Sub
      End If
   End If
AcadApp.Visible = True
End sub
Private Sub CommandButton1_Click()
    Dim blockRefObj As Object
    Dim Pnt(0 To 2) As Double
    Pnt(0) = 2#: Pnt(1) = 2#:Pnt(2) = 0#
Set blockRefObj = AcadApp.Activedocument.ModelSpace.InsertBlock(Pnt,"D:\5w.dwg",1#, 1#, 1#, 0)
    blockRefObj.Explode
    blockRefObj.Update
End Sub
西北凡人: http://www.abofanyi.com/blog

hchm 发表于 2008-5-3 15:51:00

第一步打开CAD是对的,
第二步插入图块出现:
自参照
的错误,请看看。
盼!

fjfhgdwfn 发表于 2008-5-3 16:11:00

可能是你5w.dwg在打开状态吧。
我刚试了没有问题的

hchm 发表于 2008-5-3 16:19:00


不会吧,我怎么试着出现了“自参照”(是循环参照)的问题?
你能不能简单做一个如我在7楼的VB程序贴上来?
多谢!

fjfhgdwfn 发表于 2008-5-3 16:57:00


我就是用的你的原程序,什么都没有开。直接打开工程就可以用了
页: [1]
查看完整版本: [求助]关于将某文件夹下DWG文件当作块插入当前DWG文件