明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1736|回复: 6

求助:批量插入属性块

[复制链接]
发表于 2022-12-14 16:15:44 | 显示全部楼层 |阅读模式
请各位帮忙看一下,如何使用VBA根据坐标批量添加属性块,块的属性即为第三个数字,属性块的名称为“原高程”。先谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-12-14 17:15:27 | 显示全部楼层
这是什么类型的对象,打开之后就是这样的,啥也没有

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-12-14 17:30:04 | 显示全部楼层
能不能转成t3的
发表于 2022-12-15 15:06:47 | 显示全部楼层
  1. Sub PatchInsertAttBlock()
  2. '设置给定坐标文件路径
  3. Dim fileName
  4.     fileName = ThisDrawing.Path & "\坐标表.txt"
  5. '使用顺序方式打开文本文件
  6. Dim fNo
  7.     fNo = FreeFile
  8.     Open fileName For Input As #fNo
  9. '顺序的根据每行坐标插入块并赋值块属性
  10. Dim vID, BlName, ValueStr
  11. Dim i As Long, j As Long, k As Long
  12. Dim vAtt, attTag, attText
  13. Dim AttBlR As AcadBlockReference
  14. Dim Ip(2) As Double
  15.     Ip(2) = 0
  16.     Do
  17.         Line Input #fNo, BlName
  18.         If k > 0 Then   '坐标文件第一行标题调过
  19.             vID = Split(BlName, ",")
  20.             ValueStr = vID(2)
  21.             BlName = "原高程"
  22.             '转换坐标为double类型并插入块参照
  23.             Ip(0) = Val(vID(0)): Ip(1) = Val(vID(1))
  24.             Set AttBlR = ThisDrawing.ModelSpace.InsertBlock(Ip, BlName, 1, 1, 1, 0)
  25.             '读取块参照属性值,并设置新值
  26.             vAtt = AttBlR.GetAttributes
  27.             If IsArray(vAtt) Then
  28.                 For i = 0 To UBound(vAtt)
  29.                     If vAtt(i).TagString = BlName Then vAtt(i).TextString = ValueStr
  30.                 Next
  31.             End If
  32.         End If
  33.         k = k + 1
  34.     Loop Until EOF(fNo)
  35.     Close #fNo
  36.     ThisDrawing.Utility.Prompt "共插入块个数:" & k - 1
  37. End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
辣鸡砖家 + 1 很给力!

查看全部评分

 楼主| 发表于 2022-12-19 09:05:59 | 显示全部楼层
谢谢,万分感谢,我现在是用EXCEL表格数据进行批量插入的
发表于 2022-12-19 14:08:45 | 显示全部楼层
jsxygshh 发表于 2022-12-19 09:05
谢谢,万分感谢,我现在是用EXCEL表格数据进行批量插入的

上边的代码改改就可以了,文本文件改为excel数据表读取就行了。
发表于 2024-5-5 03:53:18 | 显示全部楼层
好东西,之前也打算用Excel坐标表批量插入指定块,先收藏一波,等后面有时间了在研究一下CAD的VBA怎么使用,现在还在用的Excel VBA处理数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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