明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1310|回复: 4

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

[复制链接]
发表于 2006-5-10 21:39:00 | 显示全部楼层 |阅读模式
我在当前图形中做了一个块(名为yuan),但是当我关了当前drawing,再次幵一个图的时就没有这个图块了,怎样可以在下次打幵时仍然可以直接插入,用VBA怎么做,请教大师
发表于 2006-5-11 09:52:00 | 显示全部楼层
用ACADApp_NewDrawing()事件吧,把出入块的代码写在这里面,然后CAD运行这个程序在后台就行了。。。
 楼主| 发表于 2006-5-11 21:20:00 | 显示全部楼层
不明白,可以帮忙写一段程序吗?
发表于 2006-5-12 06:19:00 | 显示全部楼层

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

所以得看你的程序。

 楼主| 发表于 2006-5-13 14:49:00 | 显示全部楼层

Public Sub bug()
On Error Resume Next
Dim Circ2(0) As AcadCircle,shu as double
Insertpoint(0) = Insertpoint(1) = Insertpoint(2) = 0
Set Blockobj = ThisDrawing.Blocks.Add(Insertpoint, "bu" & shu)
Set Hatchobj = Blockobj.AddHatch(0, "ANSI31", True)
Hatchobj.Layer = "0"
ThisDrawing.Linetypes.Load "DASHED", "acad.lin"
Hatchobj.Linetype = "DASHED"
If shu <= 4 Then
    Hatchobj.PatternScale = 0.1
ElseIf shu > 4 And shu <= 10 Then
    Hatchobj.PatternScale = 0.4
Else
    Hatchobj.PatternScale = 1
End If
If shu < 6 Then
    Hatchobj.LinetypeScale = 0.7
Else
    Hatchobj.LinetypeScale = 6
End If
Set Circ2(0) = Blockobj.AddCircle(Insertpoint, shu / 2)
Circ2(0).Layer = "0"
Circ2(0).Linetype = "DASHED"
Circ2(0).LinetypeScale = 6.5
Hatchobj.AppendOuterLoop (Circ2)
Hatchobj.Evaluate
ThisDrawing.Regen True
End Sub
管理员,以上程序我怎么实现在每次打幵一个newdrawing后不需做任何动作,直接

在命令行输 "i" ,然后在弹出的对话框输入块名 bu8即可直接插入这个块

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

本版积分规则

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

GMT+8, 2024-11-27 04:36 , Processed in 0.144762 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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