Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

6.4 KiB
Raw Permalink Blame History

2D项目创建

**本文档引用的文件** - [DialNew2DTask.cpp](file://cpp/Views/DialNew2DTask.cpp) - [DialNew2DTask.h](file://h/DialNew2DTask.h) - [TaskDataOper.cpp](file://cpp/Operator/TaskDataOper.cpp) - [TaskDataOper.h](file://h/TaskDataOper.h)

目录

  1. 简介
  2. 参数配置
  3. 控件交互逻辑
  4. 跨孔测量模式约束
  5. 测试脚本选择机制
  6. 接地电阻测试选项

简介

2D项目创建功能是Geomative Studio软件中的核心功能之一,用于配置和创建二维地球物理勘探任务。该功能通过DialNew2DTask对话框实现,允许用户设置任务的各种参数,包括装置类型、电缆布线方式、电极间距、孔间距(跨孔测量)、起始/结束电极、采样间隔等。本文档详细说明了该功能的实现细节和交互逻辑。

Section sources

参数配置

2D项目创建对话框提供了多个参数的配置选项,主要包括:

  • 任务名称:用户定义的任务标识名称
  • 测试地点:勘探任务的地理位置描述
  • 测试方式:包括电阻率(RES)、激电(IP)和自电(SP)三种模式
  • 装置类型:定义电极排列方式,如温纳、施伦贝谢等
  • 测试脚本:预定义的测量序列和参数配置
  • 迭代次数:测量数据的叠加次数,用于提高信噪比
  • 发射周期:电流发射的时间周期
  • 电缆布线方式:电缆的连接和部署方式
  • 电极间距:相邻电极之间的距离
  • 采样间隔:数据采集的时间间隔(毫秒)

这些参数共同定义了2D勘探任务的测量配置,确保数据采集的准确性和一致性。

Section sources

控件交互逻辑

DialNew2DTask对话框中的控件具有复杂的交互逻辑,特别是装置类型变化时对脚本和电缆布线方式的动态过滤机制。

装置类型变化事件

当用户选择不同的装置类型时,系统会触发OnSelchangeCombo2dArray事件处理函数,该函数执行以下操作:

  1. 清空测试脚本下拉框
  2. 根据选定的装置类型查询可用的测试脚本
  3. 动态填充测试脚本下拉框
  4. 根据装置类型显示或隐藏孔间距输入框
flowchart TD
A[用户选择装置类型] --> B{装置类型为跨孔测量?}
B --> |是| C[显示孔间距输入框]
B --> |否| D[隐藏孔间距输入框]
E[查询对应装置类型的测试脚本] --> F[填充测试脚本下拉框]
G{装置类型为Geomative跨孔?} --> |是| H[禁用起始/结束电极输入]
G --> |否| I[启用起始/结束电极输入]

Diagram sources

测试方式变化事件

当测试方式(电阻率、激电、自电)发生变化时,系统会动态过滤电缆布线方式和发射周期选项:

  • 电阻率模式:过滤掉激电专用的布线方式
  • 激电模式:过滤掉电阻率专用的布线方式
  • 自电模式:显示所有布线方式但禁用发射周期
flowchart TD
A[用户选择测试方式] --> B{测试方式为激电?}
B --> |是| C[过滤电阻率布线方式]
B --> |否| D{测试方式为电阻率?}
D --> |是| E[过滤激电布线方式]
D --> |否| F[显示所有布线方式]
G[更新发射周期选项] --> H[根据测试方式启用/禁用]

Diagram sources

跨孔测量模式约束

在跨孔测量模式下,系统对孔间距与电极间距存在严格的约束关系:

  1. 当装置类型为跨孔测量(AR_CROSS_HOLE_TYPE)时,孔间距输入框会被显示
  2. 系统会验证孔间距必须大于电极间距
  3. 如果孔间距小于或等于电极间距,系统会弹出错误提示
flowchart TD
    A["用户选择跨孔装置类型"] --> B["显示孔间距输入框"]
    C["用户输入孔间距和电极间距"] --> D{"孔间距 > 电极间距?"}
    D --> |是| E["参数有效,继续"]
    D --> |否| F["显示错误提示: \"孔间距必须大于电极间距\""]

这种约束确保了跨孔测量的物理可行性,防止用户配置不合理的参数。

Section sources

测试脚本选择机制

当用户选择测试脚本后,系统会自动填充电极范围和层数,实现原理如下:

  1. 调用Query2DSptInfo函数查询脚本的最小和最大层
  2. 调用QuerySptElecTpMount函数查询脚本的电极数量和测量点数
  3. 自动设置起始电极为1,结束电极为最大电极数
  4. 填充起始层和结束层的值
sequenceDiagram
participant User as 用户
participant Dialog as DialNew2DTask对话框
participant TaskOper as CTaskDataOper
User->>Dialog : 选择测试脚本
Dialog->>TaskOper : Query2DSptInfo(iSptID)
TaskOper-->>Dialog : 返回最小/最大层
Dialog->>TaskOper : QuerySptElecTpMount(iSptID)
TaskOper-->>Dialog : 返回电极数量
Dialog->>Dialog : 设置起始电极为1
Dialog->>Dialog : 设置结束电极为最大电极数
Dialog->>Dialog : 填充层范围

Diagram sources

接地电阻测试选项

接地电阻测试选项具有以下默认行为和可配置性:

  • 默认行为:默认启用接地电阻测试(((CButton*)GetDlgItem(IDC_IF_TEST_GR))->SetCheck(TRUE);
  • 用户可配置性:用户可以通过复选框启用或禁用接地电阻测试
  • 参数传递:选中状态会作为ucTestGRFlag参数传递给任务创建函数
flowchart TD
A[对话框初始化] --> B[默认选中接地电阻测试]
C[用户操作] --> D{用户取消选中?}
D --> |是| E[ucTestGRFlag = 0]
D --> |否| F[ucTestGRFlag = 1]
G[创建任务] --> H[将ucTestGRFlag写入任务参数]

这种设计既保证了常规情况下进行接地电阻测试,又允许用户根据实际需求关闭该功能。

Section sources