乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 101|回复: 3

向excel autocad请求特定数据

[复制链接]

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2015-1-5 07:51:47 | 显示全部楼层 |阅读模式
大家好,我叫Louis and post,来自意大利,我在网上搜索过,尤其是在;TheSwamp“;但是我没有找到我的解决方案。在Swamp中,我看到了许多代码示例,但我无法得到我想要的东西。我想要什么
我希望用excel宏查询包含块的活动图形并返回我;块名称“
&引用;“处理”
"标签1“
"Term01“
"TERM02“
"第03条
"XRF“
"“家庭”
我将避免要求我选择哪个文件简而言之,必须与autocad的活动图形交互以检索数据,并在用户编辑后,依次返回到autocad对当前块的更改。是否可能?
回复

使用道具 举报

0

主题

13

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2015-1-5 14:06:55 | 显示全部楼层
向上的
回复

使用道具 举报

0

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
11
发表于 2015-1-5 15:48:33 | 显示全部楼层
这应该让你开始:http://help.autodesk.com/view/ACD/2015/ENU/?guid=GUID-403AF773-01AD-4AAF-BC3D-49A9884F7CF6,尽管您也可以走非编码路线并使用数据提取命令。
回复

使用道具 举报

0

主题

9

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2015-1-5 17:51:19 | 显示全部楼层
感谢您的回复,您的参考是相对于vba autocad的,但我指的是excel。例如,在本论坛的讨论中,有一段代码很漂亮,除了只检索活动图形上一个或所有块的一些参考之外,还有许多不理解的声音
  1. Sub Extract()
  2.     Dim sheet As Object
  3.     Dim shapes As Object
  4.     Dim elem As Object
  5.     Dim Excel As Object
  6.     Dim Max As Integer
  7.     Dim Min As Integer
  8.     Dim NoOfIndices As Integer
  9.     Dim excelSheet As Object
  10.     Dim RowNum As Integer
  11.     Dim Array1 As Variant
  12.     Dim Count As Integer
  13.     Dim SHand As String
  14.     Dim TStr As String
  15.      
  16.     Set Excel = GetObject(, "Excel.Application")
  17.     Worksheets("Attributes").Activate
  18.     Set excelSheet = Excel.ActiveWorkbook.Sheets("Attributes")
  19.     excelSheet.Range(Cells(1, 1), Cells(5000, 100)).Clear
  20.     excelSheet.Range(Cells(1, 1), Cells(1, 100)).Font.Bold = True
  21.     Set acad = Nothing
  22.     On Error Resume Next
  23.     Set acad = GetObject(, "AutoCAD.Application")
  24.     If Err  0 Then
  25.         Set acad = CreateObject("AutoCAD.Application")
  26.         MsgBox "Open the drawing file first and then rexecute!"
  27.         Exit Sub
  28.     End If
  29.     acad.Visible = True
  30.     Set doc = acad.ActiveDocument
  31.     Set mspace = doc.ModelSpace
  32.     RowNum = 1
  33.     Dim Header As Boolean
  34.     Header = False
  35.     For Each elem In mspace
  36.         With elem
  37.             If StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then
  38.                 If .HasAttributes Then
  39.                     Array1 = .GetAttributes
  40.                     For Count = LBound(Array1) To UBound(Array1)
  41.                         If Header = False Then
  42.                             If StrComp(Array1(Count).EntityName, "AcDbAttribute", 1) = 0 Then
  43.                                 TStr = Array1(Count).TagString
  44.                                 excelSheet.Cells(RowNum, Count + 1).Value = TStr
  45.                             End If
  46.                         End If
  47.                     Next Count
  48.                     RowNum = RowNum + 1
  49.                     For Count = LBound(Array1) To UBound(Array1)
  50.                         TStr = Array1(Count).TextString
  51.                         excelSheet.Cells(RowNum, Count + 1).Value = TStr
  52.                     Next Count
  53.                     SHand = elem.Handle
  54.                     excelSheet.Cells(RowNum, Count + 1).NumberFormat = "@"
  55.                     excelSheet.Cells(RowNum, Count + 1).Value = SHand
  56.                     Header = True
  57.                 End If
  58.             End If
  59.         End With
  60.     Next elem
  61.     NumberOfAttributes = RowNum - 1
  62.     Set acad = Nothing
  63. End Sub
我只希望在这些项目(3,1)中表现出色。值=“”;“Nome Blocco”
;单元格(3,2)。值=“”;“处理”
;细胞(3,3)。值=“”;标签1“
;细胞(3,4)。值=“”;TERM01“
;细胞(3,5)。值=“”;TERM02“
;细胞(3,6)。值=“”;第03条
;细胞(3,7)。值=“”;外部参照
;单元格(3.Value=FAMILY)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-20 15:08 , Processed in 1.530183 second(s), 61 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表