yuangw1234 发表于 2006-5-10 21:39:00

如何做一个块存入硬盘,而不光是当前图形中

我在当前图形中做了一个块(名为yuan),但是当我关了当前drawing,再次幵一个图的时就没有这个图块了,怎样可以在下次打幵时仍然可以直接插入,用VBA怎么做,请教大师

xinghesnak 发表于 2006-5-11 09:52:00

用ACADApp_NewDrawing()事件吧,把出入块的代码写在这里面,然后CAD运行这个程序在后台就行了。。。

yuangw1234 发表于 2006-5-11 21:20:00

不明白,可以帮忙写一段程序吗?

mccad 发表于 2006-5-12 06:19:00

<P>一般来说,对于无名块,如果没有被插入图形,则会在下次打开图形时自动清理掉。但已经命名的块,不应会有这样的问题。</P>
<P>所以得看你的程序。</P>

yuangw1234 发表于 2006-5-13 14:49:00

<P>Public Sub bug() <BR>On Error Resume Next<BR>Dim Circ2(0) As AcadCircle,shu as double<BR>Insertpoint(0) = Insertpoint(1) = Insertpoint(2) = 0<BR>Set Blockobj = ThisDrawing.Blocks.Add(Insertpoint, "bu" &amp; shu)<BR>Set Hatchobj = Blockobj.AddHatch(0, "ANSI31", True)<BR>Hatchobj.Layer = "0"<BR>ThisDrawing.Linetypes.Load "DASHED", "acad.lin"<BR>Hatchobj.Linetype = "DASHED"<BR>If shu &lt;= 4 Then<BR>&nbsp;&nbsp;&nbsp; Hatchobj.PatternScale = 0.1<BR>ElseIf shu &gt; 4 And shu &lt;= 10 Then<BR>&nbsp;&nbsp;&nbsp; Hatchobj.PatternScale = 0.4<BR>Else<BR>&nbsp;&nbsp;&nbsp; Hatchobj.PatternScale = 1<BR>End If<BR>If shu &lt; 6 Then<BR>&nbsp;&nbsp;&nbsp; Hatchobj.LinetypeScale = 0.7<BR>Else<BR>&nbsp;&nbsp;&nbsp; Hatchobj.LinetypeScale = 6<BR>End If<BR>Set Circ2(0) = Blockobj.AddCircle(Insertpoint, shu / 2)<BR>Circ2(0).Layer = "0"<BR>Circ2(0).Linetype = "DASHED"<BR>Circ2(0).LinetypeScale = 6.5<BR>Hatchobj.AppendOuterLoop (Circ2)<BR>Hatchobj.Evaluate<BR>ThisDrawing.Regen True<BR>End Sub<BR>管理员,以上程序我怎么实现在每次打幵一个newdrawing后不需做任何动作,直接</P>
<P>在命令行输 "i" ,然后在弹出的对话框输入块名 bu8即可直接插入这个块</P>
页: [1]
查看完整版本: 如何做一个块存入硬盘,而不光是当前图形中