明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1886|回复: 3

利用Excel的VBA操作CAD画图

[复制链接]
发表于 2017-11-21 13:55:27 | 显示全部楼层 |阅读模式
在逛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(, "AutoCAD.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


本帖子中包含更多资源

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

x
发表于 2017-11-22 11:30:02 | 显示全部楼层
抢一个沙发
发表于 2017-11-28 09:42:50 | 显示全部楼层
                  谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 07:52 , Processed in 0.203417 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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