diff --git a/Bin/Config/Lang/cn/nmNum_cn.qm b/Bin/Config/Lang/cn/nmNum_cn.qm
index 88f230a..630ca98 100644
Binary files a/Bin/Config/Lang/cn/nmNum_cn.qm and b/Bin/Config/Lang/cn/nmNum_cn.qm differ
diff --git a/Bin/Config/Lang/cn/nmNum_cn.ts b/Bin/Config/Lang/cn/nmNum_cn.ts
index 157e551..7db0df8 100644
--- a/Bin/Config/Lang/cn/nmNum_cn.ts
+++ b/Bin/Config/Lang/cn/nmNum_cn.ts
@@ -6294,7 +6294,6 @@ Average pressure in contour: %2 MPa
Zoom in放大
Coordinates坐标显示
Edit wellbore编辑井筒
- Refresh刷新
Edit perforations编辑射孔
New perforation新建射孔
Delete perforation删除射孔
diff --git a/Include/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.h b/Include/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.h
index 3521d3d..8194018 100644
--- a/Include/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.h
+++ b/Include/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.h
@@ -897,6 +897,9 @@ class NM_SUB_WXS_EXPORT nmWxWellboreTrajectoryDisplay : public QWidget
// 设置当前要显示的井数据
void setCurrentWellboreData(nmDataWellBase* pWellData);
+ /** @brief 设置3D视图入口是否可见。 */
+ void set3DViewVisible(bool bVisible);
+
// 对当前可见视图设置模式和更新UI
void setEditWellMode(bool enabled); // 用于井筒轨迹编辑模式
void setPerforationEditMode(bool enabled); // 射孔编辑模式
@@ -962,7 +965,6 @@ class NM_SUB_WXS_EXPORT nmWxWellboreTrajectoryDisplay : public QWidget
void onZoomInClicked(); // 放大
void onXYClicked(); // 坐标显示
void onEditWellClicked(); // 编辑井筒轨迹(发出请求)
- void onRefreshClicked(); // 刷新当前轨迹视图
void onEditPerforationsClicked(); // 编辑射孔(发出请求)
void onNewPerforationClicked(); // 添加射孔段(发出请求)
void onDeletePerforationClicked(); // 删除射孔段(发出请求)
@@ -996,7 +998,6 @@ class NM_SUB_WXS_EXPORT nmWxWellboreTrajectoryDisplay : public QWidget
QAction *m_pZoomInAction; // 放大
QAction *m_pXYAction; // 坐标显示
QAction *m_pEditWellAction; // 编辑井筒轨迹
- QAction *m_pRefreshAction; // 刷新当前轨迹视图
QAction *m_pEditPerforationsAction; // 编辑射孔
QAction *m_pNewPerforationAction; // 添加射孔段
QAction *m_pDeletePerforationAction; // 删除射孔段
diff --git a/Src/nmNum/nmSubWxs/nmWxWellEditor.cpp b/Src/nmNum/nmSubWxs/nmWxWellEditor.cpp
index 6bfbfdc..123bd96 100644
--- a/Src/nmNum/nmSubWxs/nmWxWellEditor.cpp
+++ b/Src/nmNum/nmSubWxs/nmWxWellEditor.cpp
@@ -415,6 +415,7 @@ void nmWxWellEditor::createUi()
// 第二步:右侧轨迹视图占据剩余空间,避免参数区拉伸破坏绘图比例。
m_pTrajectoryDisplay =
new nmWxWellboreTrajectoryDisplay(m_pMainSplitter);
+ m_pTrajectoryDisplay->set3DViewVisible(false);
m_pMainSplitter->addWidget(pParameterContainer);
m_pMainSplitter->addWidget(m_pTrajectoryDisplay);
m_pMainSplitter->setStretchFactor(0, 0);
diff --git a/Src/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.cpp b/Src/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.cpp
index fe52a90..e8adc7d 100644
--- a/Src/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.cpp
+++ b/Src/nmNum/nmSubWxs/nmWxWellboreTrajectoryDisplay.cpp
@@ -4028,6 +4028,24 @@ void nmWxWellboreTrajectoryDisplay::setCurrentWellboreData(nmDataWellBase* pWell
m_pCrossSectionViewWidget->resetViewTransform();
}
+void nmWxWellboreTrajectoryDisplay::set3DViewVisible(bool bVisible)
+{
+ if (m_p3DViewRadio == nullptr || m_pStackedWidget == nullptr)
+ {
+ return;
+ }
+
+ m_p3DViewRadio->setVisible(bVisible);
+ if (!bVisible && m_pStackedWidget->currentIndex() == 2)
+ {
+ // 隐藏当前3D页时返回俯视图,保持选中状态、页面和工具栏一致。
+ m_pTopViewRadio->setChecked(true);
+ m_pStackedWidget->setCurrentIndex(0);
+ updateToolBarForCurrentView(0);
+ emit currentViewChanged(0);
+ }
+}
+
void nmWxWellboreTrajectoryDisplay::setEditWellMode(bool enabled)
{
// 将状态传递给当前激活的子视图
@@ -4170,7 +4188,6 @@ void nmWxWellboreTrajectoryDisplay::createToolBar()
m_pXYAction = m_pToolBar->addAction(QIcon(sIconDir + "NmWellbore4.png"), tr("Coordinates"));
m_pEditWellAction = m_pToolBar->addAction(QIcon(sIconDir + "NmWellbore5.png"), tr("Edit wellbore"));
- m_pRefreshAction = m_pToolBar->addAction(QIcon(sIconDir + "NmWellbore6.png"), tr("Refresh"));
m_pToolBar->addSeparator();
// 第二步:射孔编辑命令按当前井型和视角动态启用。
@@ -4213,8 +4230,6 @@ void nmWxWellboreTrajectoryDisplay::connectSignalsSlots()
connect(m_pZoomInAction, SIGNAL(triggered()), this, SLOT(onZoomInClicked()));
connect(m_pXYAction, SIGNAL(triggered()), this, SLOT(onXYClicked())); // XY 坐标显示仍然在视图内管理
- connect(m_pRefreshAction, SIGNAL(triggered()),
- this, SLOT(onRefreshClicked()));
// ============== 模式请求信号连接 ==============
// 这些槽函数现在将发出请求给控制器
@@ -4414,12 +4429,6 @@ void nmWxWellboreTrajectoryDisplay::onEditWellClicked()
emit requestedEditWellMode(nCurrentViewIndex);
}
-void nmWxWellboreTrajectoryDisplay::onRefreshClicked()
-{
- // 刷新只重读当前工作副本,不加载文件也不修改业务数据。
- onWellboreDataChanged();
-}
-
void nmWxWellboreTrajectoryDisplay::onEditPerforationsClicked()
{
int nCurrentViewIndex = m_pStackedWidget->currentIndex();
@@ -4514,7 +4523,6 @@ void nmWxWellboreTrajectoryDisplay::updateToolBarForCurrentView(int viewIndex)
m_pXYAction->setEnabled(true);
m_pEditWellAction->setEnabled(true);
- m_pRefreshAction->setEnabled(true);
m_pEditPerforationsAction->setEnabled(true);
m_pNewPerforationAction->setEnabled(true);
m_pDeletePerforationAction->setEnabled(true);