明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1148|回复: 6

插入块时提示类无效就终止了。求教代码哪里有问题。

[复制链接]
发表于 2022-9-1 16:31:33 | 显示全部楼层 |阅读模式
Sub demo()
Dim varpt As Variant  '插入点
Dim br As AcadBlockReference '定义插入块返回对象
varpt = ThisDrawing.Utility.GetPoint  '选择输出的位置
Dim num1 As Integer  '循环次数定义
num1 = ThisDrawing.Blocks.Count - 1 '循环次数赋值有几个块,就循环几次
Dim i As Integer  '循环
Dim name1 As String ' 块名储存
For i = 4 To num1'进入循环
name1 = ThisDrawing.Blocks.Item(i).Name '块名赋值

Set br = ThisDrawing.ModelSpace.InsertBlock(varpt, name1, 1, 1, 1, 0) '在指定位置插入块
varpt(1) = varpt(1) - 10  '插入点y值向下移动10个单位继续插入
Next i

End Sub


 楼主| 发表于 2022-9-1 16:34:41 | 显示全部楼层
新的错误提示是,bstrname 在insertblock中无效。。。完全看不懂什么意思。。。毕竟我是入门级菜鸟
 楼主| 发表于 2022-9-1 16:39:45 | 显示全部楼层
on error resume next,我加入了这句话,忽视了错误项目,但是可以看出,少了很多块。
发表于 2022-9-2 11:37:25 | 显示全部楼层
估计是无名块的问题。
发表于 2022-9-2 17:46:58 | 显示全部楼层
你这个是VBA吧?什么版本的CAD?
你的意思是有些成功了?不妨在一个空白图纸定义一两个图块试试,若没有问题的话,估计是网友所说的匿名图块问题,可以试试不要插入*开头名字的图块名。
 楼主| 发表于 2022-9-4 18:27:43 | 显示全部楼层
sieben 发表于 2022-9-2 17:46
你这个是VBA吧?什么版本的CAD?
你的意思是有些成功了?不妨在一个空白图纸定义一两个图块试试,若没有问 ...

为了避免你说的匿名块问题,我写了段代码,如果名字里面带*,就把序列值赋值给它当名字。然而,还是有一些块,看不到。后来,我发现是因为没有设置基准点。都跑到别的地方去了。。。。
发表于 2022-10-13 11:52:31 | 显示全部楼层
出门右转VBA Activex区
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:30 , Processed in 0.148974 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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