如何从surfer的grid自动提取插值

最近想批量生成测线的多层纵断面,可是当前的cad vba程序只能生成单测线的多层纵断面,于是,在网络上找现成的工具,比如cass和civil3d,发现它们不能满足要求(也有可能是不会用),不但如此,还把autocad给搞崩了。将所有autocad的程序全部卸载删除,重新安装才好。最终,还是决定自己写。

遇到主要的问题是无法自动从surfer的grid中获取测线某层埋深值。之前程序的这一步是手动的,用到的工具是Surfer里的Residuals命令窗口,见下图。

Surfer的Residuals命令

bing搜索的解决方案都是上面这个手动操作方法。然后,用deepseek搜索一下,看是否来点灵感。扎心的是最核心代码让自己补充。

deepseek搜索结果

剩下最后一个方法:看Surfer说明书。用关键字Residuals搜索,还真找到解决办法。

Sub Main

Dim SurferApp As Object

Set SurferApp = CreateObject("Surfer.Application")

SurferApp.Visible = True

'Specifies the grid and data files to use

GridFile = SurferApp.Path+"\Samples\demogrid.grd"

DataFile = SurferApp.Path+"\Samples\demogrid.dat"

'Uses Grid Residuals and stores the residuals in Column D

Set Wks = SurferApp.GridResiduals(InGrid:=GridFile, DataFile:=DataFile, _

xCol:=1, yCol:=2, zCol:=3, ResidCol:=4)

'Saves the worksheet with the residuals

Wks.SaveAs(FileName:="C:\temp\GridResiduals.dat")

'Closes the worksheet

Wks.Close

End Sub

这段程序的意思就是,将上面那个手动操作改成自动执行程序。

参考文献

autocad、cass和civil 3d

Surfer20帮助手册

相关推荐
gjxDaniel20 天前
VB.NET编程语言入门与常见问题
.net·vb.net
HarryXYC1 个月前
【vb.net】实现简单的内网文件分享网站
.net·web·文件共享·vb.net
by__csdn2 个月前
第一章 (ASP.NET Core入门)第三节( 认识.NET Standard)
后端·c#·asp.net·.net·.netcore·f#·vb.net
by__csdn2 个月前
第一章 (ASP.NET Core入门)第一节( 认识.NET Core)
后端·c#·asp.net·.net·.netcore·f#·vb.net
专注VB编程开发20年2 个月前
VB.NET多线程处理每个Web请求,ThreadPool.QueueUserWorkItem要求是object
数据库·vb.net·webserver
課代表3 个月前
VB.Net 常用函数
字符串·类型转换·数组·函数·vb.net·日期时间·条件
課代表3 个月前
VB.NET 操作 INI 文件类
api·配置文件·文本·vb.net·ini·kernel32·
課代表3 个月前
VB.NET 与 C# 文件操作文本到二进制文件的读写
c#·二进制文件·vb.net·streamwriter·文本文件·读写·streamreader
VB.Net4 个月前
VB.Net循序渐进(第二版)
开发语言·.net·vb.net