[求助]关于将某文件夹下DWG文件当作块插入当前DWG文件
<p><font color="#0066ff">目的叙述:</font></p><p>将D盘5w.dwg文件当作块插入当前已打开的xyz.dwg文件?</p><p><font color="#0033ff">程序内容:</font></p><p>Private Sub Command2_Click()<br/> Dim blockRefObj As AcadBlockReference<br/> Dim Pnt(0 To 2) As Double<br/> Pnt(0) = 2<br/> Pnt(1) = 2<br/> Pnt(2) = 0<br/> <font color="#ff0000">Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(Pnt, "D:\5w.dwg", 1#, 1#, 1#, 0)<br/></font> blockRefObj.Update<br/>End Sub</p><p><font color="#0909f7">出现错误:</font></p><p><font color="#000000">实时错误:424 要求对象</font></p><p>(对上述红色区域)</p><p><font color="#0033ff">问题请教:</font></p><p>1、以上程序错在那里?怎样修改?</p><p>2、如果想在插入时打散(炸开),应怎样修改?</p><p></p><p>谢谢各位。</p><p><font color="#0909f7"></font></p> <p>炸开 blockRefObj.Explode</p><p>可能是你的D盘下没有5W.DWG</p><p>我这可以运行。</p><p></p> <p>代码正确,可以运行</p><p>Private Sub CommandButton1_Click()<br/> Dim blockRefObj As AcadBlockReference<br/> Dim Pnt(0 To 2) As Double<br/> Pnt(0) = 2<br/> Pnt(1) = 2<br/> Pnt(2) = 0<br/> Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(Pnt, "D:\5w.dwg", 1#, 1#, 1#, 0)<br/> blockRefObj.Explode<br/> blockRefObj.Update<br/>End Sub</p> <p>哦,我忘记告诉大家是在VB中编的,并不是VBA,</p><p>请问是不是<font color="#ff0000">ThisDrawing</font>出的错?</p><p>在VB中当前文件能用<font color="#ff0000">ThisDrawing</font>表示吗?</p><p>以上代码应怎样修改?盼复!</p> <p><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=67396">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=67396</a></p><p>看看这个。再在GOOGLE中搜下VBA VB CAD,网上很多的</p> 本帖最后由 作者 于 2008-5-3 12:47:24 编辑 <br /><br /> <p>Public AcadApp As Object<br/>Private Sub Form_Load()<br/>On Error Resume Next<br/>Set AcadApp = GetObject(, "AutoCAD.Application")<br/>If Err Then<br/> Err.Clear<br/> Set AcadApp = CreateObject("AutoCAD.Application")<br/> If Err Then<br/> MsgBox ("不能运行AutoCAD, 请检查是否安装了AutoCAD")<br/> Exit Sub<br/> End If<br/> End If<br/>AcadApp.Visible = True<br/>End sub</p><p>Private Sub CommandButton1_Click()<br/> Dim blockRefObj As Object<br/> Dim Pnt(0 To 2) As Double<br/> Pnt(0) = 2#: Pnt(1) = 2#: Pnt(2) = 0#<br/>Set blockRefObj = AcadApp.Activedocument.ModelSpace.InsertBlock(Pnt,"D:\5w.dwg",1#, 1#, 1#, 0)<br/> blockRefObj.Explode<br/> blockRefObj.Update<br/>End Sub<br/></p><p>西北凡人: http://www.abofanyi.com/blog</p>怎么又出错啊
<p>第一步打开CAD是对的,</p><p>第二步插入图块出现:</p><p>自参照</p><p>的错误,请看看。</p><p>盼!</p> <p>可能是你5w.dwg在打开状态吧。</p><p>我刚试了没有问题的</p> 本帖最后由 作者 于 2008-5-3 16:23:03 编辑 <br /><br /> <p>不会吧,我怎么试着出现了“自参照”(是循环参照)的问题?</p><p>你能不能简单做一个如我在7楼的VB程序贴上来?</p><p>多谢!</p> hchm发表于2008-5-3 16:19:00static/image/common/back.gif不会吧,我怎么试着出现了“自参照”(是循环参照)的问题?你能不能简单做一个如我在7楼的VB程序贴上来?多谢!<p>我就是用的你的原程序,什么都没有开。直接打开工程就可以用了</p>
页:
[1]
2