乐筑天下

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

利用Excel的VBA操作CAD画图

[复制链接]

28

主题

248

帖子

20

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
349
发表于 2017-11-21 13:55:00 | 显示全部楼层 |阅读模式
在逛EH论坛的时候,发现了一段代码,读取单元格数据在CAD中画矩形,其实就是调用VBA画图,觉得还是蛮有意思的,发来这里给大家开拓思路。
  1. Sub DrawRectangular()
  2.     Dim aData, i&
  3.     Dim acadApp As Object, acadDoc As Object
  4.     Dim dPnts#(0 To 7), dPx#, dPy#, dCenter#(0 To 2), dHeight#
  5.    
  6.     aData = Sheets("Sheet1").Cells(1, 1).CurrentRegion ' 读取Excel数据
  7.    
  8.     Set acadApp = GetObject(, ".Application") ' 获得已经打开的AutoCAD程序的句柄
  9.     Set acadDoc = acadApp.ActiveDocument ' 获得AutoCAD中当前文件的句柄
  10.    
  11.     dPx = 0: dPy = 0: dCenter(2) = 0: dHeight = 10
  12.     ' dPx、dPy是矩形的左下角坐标;dCenter是矩形中心点数组;dHeight是文字高度
  13.     For i = 1 To UBound(aData)
  14.         dPnts(0) = dPx:               dPnts(1) = dPy
  15.         dPnts(2) = dPx:               dPnts(3) = dPy + aData(i, 2)
  16.         dPnts(4) = dPx + aData(i, 3): dPnts(5) = dPy + aData(i, 2)
  17.         dPnts(6) = dPx + aData(i, 3): dPnts(7) = dPy
  18.         ' 矩形的四个顶点坐标
  19.         With acadDoc.ModelSpace.AddLightWeightPolyline(dPnts) ' 添加多义线联结4个顶点,三段
  20.             .Closed = True ' 多义线封闭
  21.         End With
  22.         dCenter(0) = dPx + aData(i, 3) / 2: dCenter(1) = dPy + aData(i, 2) / 2
  23.         ' 计算矩形的中心点坐标
  24.         With acadDoc.ModelSpace.AddText(aData(i, 1), dCenter, dHeight) ' 添加文字至中心点
  25.             .Alignment = 4 ' 文字的对齐方式是 Middle
  26.             .TextAlignmentPoint = dCenter '更改对齐点坐标,否侧字会全插到原点去
  27.         End With
  28.         dPx = dPx + aData(i, 3) + 10 ' 下一个矩形的左下角坐标x轴偏移10
  29.     Next
  30.     Set acadDoc = Nothing: Set acadApp = Nothing
  31. End Sub


本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

1

主题

15

帖子

7

银币

初来乍到

Rank: 1

铜币
19
发表于 2017-11-22 11:30:00 | 显示全部楼层
抢一个沙发
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2017-11-28 09:42:00 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-4-19 21:39 , Processed in 0.257067 second(s), 63 queries .

© 2020-2025 乐筑天下

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