明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2416|回复: 5

按电子表格中的坐标绘图(免费源代码)

[复制链接]
发表于 2016-9-30 11:21:52 | 显示全部楼层 |阅读模式
工作中碰到GPS采集的坐标,要绘制到CAD,所以研究了一下,下面的文件包是一个原型代码,虽然只有几十行,但是是一个完整的代码,包含的读取表格、自动按坐标绘制路径、添加路径点名称。
使用方法,打开“测试坐标”的表格文件、打开“模板”的CAD文件,运行“测试”,或者是用VB打开测试工程运行,或者是将代码复制到你的环境中运行都可以




Private Sub Command1_Click()
Dim objExcelApp As Object, objSheet As Object
Dim objCADApp As Object, objDoc As Object
Dim pointName As String, pointX As Double, pointY As Double
Dim txtP(2) As Double, txtH As Double, pLine() As Double

Set objExcelApp = GetObject(, "Excel.Application") '获得系统中运行的EXCEL
Set objSheet = objExcelApp.ActiveWorkbook.ActiveSheet '返回当前活动工作表
Set objCADApp = GetObject(, "AutoCAD.Application") '获得系统中运行的cad
Set objDoc = objCADApp.ActiveDocument '返回当前活动

s = 2 '电子表格数据开始行
e = 80 '结束行
txtH = 0.0001 '文字高度
n = (e - s + 1) * 2 - 1 '计算多段线需要的数组大小
ReDim pLine(n) '定义多段线数组
For i = 2 To 80
    pointName = objSheet.cells(i, 1) '读取坐标点名(A列)
    pointX = objSheet.cells(i, 2) '读取坐标点经度(b列)
    pointY = objSheet.cells(i, 3) '读取坐标点纬度(c列)
    txtP(0) = pointX
    txtP(1) = pointY
    pLine(j) = pointX
    pLine(j + 1) = pointY
    j = j + 2
    Call objDoc.ModelSpace.AddText(pointName, txtP, txtH) '添加坐标点名称
Next
Call objDoc.ModelSpace.AddLightWeightPolyline(pLine) '绘制多段线
End Sub


本帖子中包含更多资源

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

x
 楼主| 发表于 2016-9-30 11:33:54 | 显示全部楼层
下图是根据这个代码写的一个完整版绘图工具,功能是按坐标自动绘制配电线路图

本帖子中包含更多资源

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

x
发表于 2016-10-17 21:45:05 | 显示全部楼层
源码不全,
test.exe
---------------------------
运行时错误 '429':

ActiveX 部件不能创建对象
---------------------------
确定   
---------------------------

点评

先打开附件中的表格 (请注意你系统中的电子表格版本,不能是绿色版或者是体验版),然后打开CAD,新建一个空白 文档 (CAD不能是绿色版的),再运行这个程序 即可。  发表于 2016-10-18 21:42
发表于 2018-10-5 09:16:33 | 显示全部楼层
谢谢分享学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 07:03 , Processed in 0.192449 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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