Compare commits

..

54 Commits

Author SHA1 Message Date
lvjunjie 02d3c62f72 Merge branch 'feature/Fix-TimeDependentSkin-20261029' into develop
# Conflicts:
#	Bin/Config/Lang/cn/nmNum_cn.qm   resolved by develop version
2 weeks ago
lvjunjie 596ca7723e feat: 实现变表皮自动计算,支持单相及油水两相模型 2 weeks ago
lh f644f41ee1 Merge branch 'feature/PEBI-Region-Average-Pressure-20261102' into develop 2 weeks ago
lh f406d8d52b fix(postprocess): 统一数值显示并精简切片菜单
- 统一后处理数值格式,相近端点、刻度和时间自动增加显示精度
- 保留输入原值,避免应用和单位切换造成精度丢失
- 增加高精度悬停提示、回归测试及验收说明
- 去除切片按钮下拉箭头,保留点击展开菜单
- 移除右键菜单中的切片相关项,统一从工具栏进入
2 weeks ago
lh 17ef272cbe feat: 接通三维模型与切片的颜色设置
- 复用底栏颜色设置,支持色带、手工范围及恢复全模型范围
- 按属性独立保存设置,同步模型、截面和色标,不重算切片
- 增加身份校验、非法范围校验及绑定失败回退
- 补充测试和验收说明,同步中文翻译及 qm
2 weeks ago
lh 21745a3bb0 feat(nmNum): 新增三维单平面切片与交互参数设置
- 支持任意方向平面切片、参数输入及拖动松手更新
- 新增非模态切片设置窗口,支持重置和原模型参照
- 复用结果底部工具栏的渲染模式与属性选择
- 完善切片显隐、模型更换及返回计算结果的状态恢复
- 同步中文翻译
2 weeks ago
lh 03ceb5e1b3 feat(nmNum): 支持三维模型导入、显示及计算结果视图恢复
- 新增独立三维数据构建、校验和 VTK/VTU 文件导入入口
- 新增可取消的后台导入任务和三维模型场景控制器
- 增加切片工具菜单及右键导入、返回操作
- 支持节点和单元标量着色、缺失值处理及无属性模型显示
- 保留并恢复计算结果图层、相机和显示状态
2 weeks ago
lh 645c98f512 feat: 新增PEBI结果区域平均压力统计
- 新增二维多边形绘制交互及闭合区域轮廓显示
- 按与区域相交的PEBI单元计算孔隙体积加权平均压力
- 展示压力上下限、压力时间和相交单元数量
- 压力帧变化时重新计算,切换静态属性时保留统计结果
- 绘制期间锁定播放、属性切换和通用视图命令
- 关闭统计面板时清除区域并结束本次统计
- 补充中文翻译
2 weeks ago
lvjunjie 8a78c5443d fix(nmNum): 调整射孔事件删除规则及表皮分割边界 2 weeks ago
lvjunjie c891178676 fix(nmNum): 完善时变表皮分段编辑及页面切换状态 2 weeks ago
lvjunjie d3085cdd82 feat(nmNum): 统一预测窗口表格样式及单位组件
- 参考敏感性分析统一制度表表头、行号、隔行底色及网格样式。
- 初始压力、持续时间和产量复用底层单位绑定及换算接口。
- 兼容旧单位数据与保存重开,保留压力精度及制度输入校验。
2 weeks ago
lvjunjie cbc3e02b27 fix(nmNum): 修复结果窗口最小化预览及关闭重开状态 2 weeks ago
lvjunjie 10d3ce4116 fix(nmNum): 时变表皮复用底层组件并修正单位切换 2 weeks ago
lvjunjie 6fc7b29bc1 fix(nmNum): 隐藏时变表皮计算按钮并前移射孔封堵入口 2 weeks ago
lvjunjie ea1af96909 fix(nmNum): 调整时变表皮图表轴标题间距并保持绘图区尺寸 2 weeks ago
lvjunjie 259508166b fix(nmNum): 修复时变表皮窗口重开及跨分析状态残留 2 weeks ago
lh d25fd02de2 Merge remote-tracking branch 'origin/feature/Fix-Plot-20261028' into develop 3 weeks ago
lh 4c7fe38922 fix: 补全表皮系数及颜色图例设置翻译,统一按钮布局
- 补全射孔封堵对话框及时间相关表皮系数中文翻译
- 为表皮系数与流量图的坐标轴标题接入翻译
- 补全颜色图例设置按钮翻译,并统一底部按钮右对齐
- 更新中文 TS 和 QM 翻译资源
3 weeks ago
lvjunjie 0d5dfb776b fix: 生成敏感性分析和预测时保持设置窗口显示 3 weeks ago
lvjunjie 03bee5ed1b fix: 优化图元删除命中范围并使用垃圾桶光标 3 weeks ago
lvjunjie 42434b5816 fix: 修复模型测量点回原点及起终点拟合顺序异常 3 weeks ago
lvjunjie 5f0a91569e fix: 修复模型位置显示未随鼠标刷新 3 weeks ago
lh d1102ecc07 fix: 补交网格诊断与窗口预览辅助头文件
- 补充遗漏的 nmPebiGridDiagnostics.h 和 nmDialogPreviewGuard.h
3 weeks ago
lh faab635718 fix: 补全分析切换窗口中文翻译
- 补充窗口标题和 Analysis 标签翻译
- 将确定、取消按钮翻译标记为已完成
- 更新中文 TS/QM 文件,保持 CRLF 换行
3 weeks ago
lh 16c7387468 fix: 修复窗口文字裁切和预览残留,完善网格失败提示
- 修复时间变表皮系数、射孔关闭工具栏文字显示不全
- 调整 DFN 导入、井与储层编辑、井储计算及 PEBI 控件尺寸,适配不同字体
- 修复隐藏对话框在 Windows 任务栏预览中的残留
- 网格失败接入框架日志,增加井半径、边界和网格尺度检查
- 向网格及求解窗口传递简短失败原因,取消操作不记录失败
- 更新中文 TS/QM 和翻译提取标记,统一相关文件为 CRLF
3 weeks ago
lvjunjie f008f90a7d fix(nmNum): 避免重复点击多段产量时表格闪烁 3 weeks ago
lh 1bf77b0d34 fix(ui): 隐藏预测和敏感性分析中未接入的功能
- 预测仅保留多段产量算压力,隐藏未实现的选项
- 敏感性分析隐藏未接入参数及 PVT 分组
- 保留 Skin、C、Pi、k、h、φ 六类敏感性参数
3 weeks ago
lh 9c8b11fdf9 fix: 适配新版框架曲线宏并补充 VTK 调试符号
- 补充 50 个与现有 VTK Debug DLL 匹配的 PDB 文件
- 修正数值模块中 10 处旧曲线宏引用,保持曲线含义不变
- 通过 VS2010/Qt4 单文件编译语法检查
3 weeks ago
lh 920b12044f chore:合并新框架代码文件 3 weeks ago
lh 651904b600 chore(i18n): 重新生成中文 QM 翻译资源,与合并后的 TS 文件保持一致 3 weeks ago
lh 2878e33003 Merge branch 'develop' of http://1.92.128.200:3000/YXS/nmWTAI-Platform into develop
# Conflicts:
#	Bin/Config/Lang/cn/nmNum_cn.qm   resolved by origin/develop(远端) version
3 weeks ago
lh 5c7c198a9e fix(dfn): 完善导入功能并修复中文显示
- 隐藏未实现的 KrPc 重定义和松散化选项
- 默认导入目录改为上次使用目录,缺失时使用文档目录
- 支持剪贴板直接粘贴到表格,空内容静默忽略
- 完善表头识别、分隔符解析和数值校验
- 补充界面中文翻译,统一模型标识并修复乱码
3 weeks ago
lh d9ad939f3c feat(nmNum): 支持 PEBI 结果数据筛选
- 支持按属性及上下限筛选网格单元
- 支持动态帧筛选及动画导出状态冻结
- 新增筛选设置、单位换算和中文翻译
- 统一筛选与颜色设置对话框按钮布局
3 weeks ago
lvjunjie 035892f3a7 Merge branch 'feature/Forecast-Sensitivity-Dialog-20261022' into develop
# Conflicts:
#	Bin/Config/Lang/cn/nmNum_cn.qm   resolved by feature/Forecast-Sensitivity-Dialog-20261022 version
3 weeks ago
lvjunjie 8994a67a08 fix(nmNum): 修复重新分析后最小化结果窗口空白问题 3 weeks ago
lvjunjie f3b970f938 feat(nmNum): 优化敏感性分析设置界面及结果窗口
- 调整敏感性分析布局、表格样式及单位切换。

- 统一图表白色背景,修复结果窗口最小化关闭后的尺寸恢复。
3 weeks ago
lh 567f6731bc fix(nm3d): 避免动画切帧反复重建 OpenGL 显示列表
为后处理结果网格启用即时绘制,缓解连续播放时的内存增长。
3 weeks ago
lvjunjie 0cb358db52 style(nmNum): 调整预测设置界面布局 3 weeks ago
lh 7e4cc450d2 perf(nm3d): 优化压力场动画切帧与播放控制
- 复用当前颜色表,跳过不变的色标更新
- 播放速度限制为 1–30 步/秒,默认保持 5
- 缓存播放图标,按帧索引更新时间选择框
- 同步中文速度提示及 TS/QM 文件
3 weeks ago
lvjunjie 020d1e308c fix(nmNum): 修复分析结果显示及切井清理问题 3 weeks ago
lvjunjie 8eae4d84f1 fix(nmNum): 统一预测输入的提交时机 3 weeks ago
lvjunjie 08096c7630 feat(nmNum): 增加结果图入口并调整展示时机
- 预测和敏感性分析设置增加结果图入口及中文翻译。
- 打开项目不再自动弹出结果,敏感性分析生成后仅显示双对数图。
3 weeks ago
lh 9853aaf56c feat(nmNum): 支持旋转中心标记显隐控制 3 weeks ago
lvjunjie 0ba39cb556 refactor(nmNum): 复用预测与敏感性分析窗口
- 关闭后隐藏复用窗口,刷新时清理旧结果。
- 读取项目后同步输入,修复最小化后窗口尺寸异常。
3 weeks ago
lh 0eb3f6de3b fix(i18n): 恢复 PEBI 显示模式中文翻译
补回网格预览和结果视图的显示模式翻译,并重新生成 nmNum_cn.qm。
3 weeks ago
lh 55a2720ee5 chore(nmNum): 更新求解器库(修复获取网格数量异常问题) 3 weeks ago
lvjunjie cb511682dd refactor(nmNum): 恢复分析入口并使用独立结果弹窗
- 恢复预测和敏感性分析按钮显示。
- 结果窗口改为独立弹窗,保留框架绘图和导出功能。
- 关闭时销毁窗口及附属界面,避免影响主界面布局。
3 weeks ago
lvjunjie 67cfa25428 Merge branch 'feature/Sensitivity-20261012' into develop
# Conflicts:
#	Bin/Config/Common/ModelParaDefinesNM_cn.dat   resolved by develop version
#	Bin/Config/Common/ModelParaDefinesNM_en.dat   resolved by develop version
#	Bin/Config/Lang/cn/nmNum_cn.qm   resolved by feature/Sensitivity-20261012 version
#	Bin/Config/Lang/cn/nmNum_cn.ts   resolved by feature/Sensitivity-20261012 version
3 weeks ago
lh 028093bae4 fix(nmNum): 恢复数值模块参数系列标识 3 weeks ago
lh 47146b614f chore:合并新框架文件与代码。 3 weeks ago
lh 8faee3ea24 Merge branch 'feature/nmNum-postprocessing-analysis-20261008' into develop
# Conflicts:
#	Bin/Config/Lang/cn/nmNum_cn.qm
3 weeks ago
lh cf69850bff fix(nmNum): 移除 PEBI 结果视图的输入修改提示
- 移除输入修改后显示旧结果的黄色提示栏
- 调整错误提示优先级,过期结果仍正常显示操作错误
- 清理对应中文翻译并重新生成 qm 文件
- 同步更新提示栏相关注释
3 weeks ago
lvjunjie 87641c3bc6 fix(nmNum): 移除网格数量统计并居中显示求解耗时
(cherry picked from commit 9ba4f2e0cc)
3 weeks ago
lh 9bb93ec858 feat(nmNum): 增加 PEBI 网格四种显示模式
- 扩展通用 MeshLayer 的点、线框、表面和轮廓模式
- 为网格预览和结果视图增加独立显示模式控制
- 冻结动画导出的网格显示模式并校验请求
- 补充中文翻译
1 month ago

Binary file not shown.

Binary file not shown.

@ -25,6 +25,17 @@ HistorySouceF=1,16,255,0,0,0,1,0,0,255,0,0,0.4,0
SemiSouce=0,14,255,0,0,0,1,1,6,255,0,0,0.4,0
SemiTheorySouce=1,14,0,255,0,0,1,0,0,255,0,0,0.4,0
# ===== 反褶积 =====
Souce_Dv=0,14,192,0,0,0,1,1,6,0,192,0,0.3,1
Deriv_Dv=0,14,192,0,0,0,1,1,3,192,0,0,0.4,0
TheorySouce_Dv=1,14,192,0,0,0.25,1,0,0,192,0,0,0.4,0
TheoryDeriv_Dv=1,14,64,64,64,0.25,1,0,0,192,0,0,0.4,0
SemiSouce_Dv=0,14,192,0,0,0,1,1,6,192,0,0,0.4,0
SemiTheorySouce_Dv=1,14,0,192,0,0,1,0,0,192,0,0,0.4,0
HistorySouce_Dv=0,14,105,105,105,0,1,1,7,192,0,0,0.4,0
HistoryFit_Dv=1,14,0,192,0,0,1,0,0,192,0,0,0.4,0
HistorySouceF_Dv=1,16,192,0,0,0,1,0,0,192,0,0,0.4,0
# ===== IPR曲线组 =====
IprSource=0,15,255,0,0,0,1,1,3,255,0,0,0.4,0
IprFit=1,14,0,255,0,0,1,0,3,255,0,0,0.4,0
@ -41,4 +52,4 @@ WdtResultEx=0,14,0,0,255,0,1,1,5,0,0,255,0.8,1
# ===== 其他曲线 =====
Ppd=0,14,255,0,255,0,1,1,3,255,0,255,0.4,0
s_Ppd_Curve=1,14,255,0,255,0,1,0,0,255,0,0,0.4,0
TheoryPpd=1,14,255,0,255,0,1,0,0,255,0,0,0.4,0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<mapping>
<!-- 每条 item = 一条基准参数 → 数据库字段 的映射 -->
<item table="B_WELL" field="FieldName" index="2" group="井基础信息" name="FieldName" alias="油田名称" unit=""/>
<item table="B_WELL" field="BlockName" index="4" group="井基础信息" name="BlockName" alias="区块名称" unit=""/>
<item table="B_WELL" field="WellName" index="6" group="井基础信息" name="WellName" alias="井名" unit=""/>
<item table="B_WELL" field="WellCode" index="5" group="井基础信息" name="WellCode" alias="井号" unit=""/>
<item table="B_WELL" field="WellClass" index="7" group="井基础信息" name="WellClass" alias="井别" unit=""/>
<item table="B_WELL" field="WellType" index="8" group="井基础信息" name="WellType" alias="井型" unit=""/>
<item table="B_WELL" field="WellRadius" index="9" group="井基础信息" name="rw" alias="井径" unit="m"/>
<item table="P_DATA_RES" field="FormationPress" index="9" group="基础参数" name="Pe" alias="原始地层压力" unit="MPa"/>
<item table="P_DATA_RES" field="EffThickness" fieldAlias="储层有效厚度" index="4" group="储层参数" name="h" alias="储层厚度" unit="m"/>
<item table="P_DATA_RES" field="Por" index="7" group="储层参数" name="Phi" alias="孔隙度" unit=""/>
<item table="P_DATA_RES" field="K" index="8" group="储层参数" name="K" alias="渗透率" unit="mD"/>
<item table="P_DATA_FLUID" field="OilCF" fieldAlias="地层原油压缩系数" index="4" group="流体性质" name="Co" alias="油压缩系数" unit="1/MPa"/>
<item table="P_DATA_FLUID" field="OilVF" fieldAlias="地层原油体积系数" index="5" group="流体性质" name="Bo" alias="油体积系数" unit=""/>
<item table="P_DATA_FLUID" field="OilDens" fieldAlias="地层原油密度" index="7" group="流体性质" name="Rhoo" alias="油密度" unit="kg/m^3"/>
<item table="P_DATA_FLUID" field="OilVisc" fieldAlias="地层原油黏度" index="6" group="流体性质" name="Miuo" alias="油相黏度" unit="mPa.s"/>
<item table="P_DATA_FLUID" field="GasDens" fieldAlias="地层天然气密度" index="11" group="流体性质" name="Rhog" alias="气体密度" unit="kg/m^3"/>
<item table="P_DATA_FLUID" field="GasVisc" fieldAlias="地层天然气黏度" index="9" group="流体性质" name="Miug" alias="气黏度" unit="mPa.s"/>
<item table="P_DATA_FLUID" field="GasVF" fieldAlias="地层天然气体积系数" index="10" group="流体性质" name="Bg" alias="气体积系数" unit=""/>
<item table="P_DATA_FLUID" field="WaterCF" fieldAlias="地层水压缩系数" index="12" group="流体性质" name="Cw" alias="水压缩系数" unit="1/MPa"/>
<item table="P_DATA_FLUID" field="WaterVF" fieldAlias="地层水体积系数" index="13" group="流体性质" name="Bw" alias="水体积系数" unit=""/>
<item table="P_DATA_FLUID" field="WaterDens" fieldAlias="地层水密度" index="15" group="流体性质" name="Rhow" alias="水密度" unit="kg/m^3"/>
<item table="P_DATA_FLUID" field="WaterVisc" fieldAlias="地层水黏度" index="14" group="流体性质" name="Miuw" alias="水相黏度" unit="mPa.s"/>
<item table="P_DATA_FLUID" field="GOR" fieldAlias="溶解气油比" index="3" group="流体性质" name="Rs" alias="气油比" unit="m^3/m^3"/>
<item table="P_DATA_RES" field="TotalCF" fieldAlias="综合压缩系数" index="11" group="流体性质" name="Ct" alias="综合压缩系数" unit="1/MPa"/>
</mapping>

@ -0,0 +1,78 @@
#dat文本格式数据
基础参数——
井径[rw](m):
原始地层压力[Pe](MPa):
参考压力[Pref](MPa):
初始压力[Pi](MPa):
地层压力[Pit](MPa):
复合半径[Ri](m):
储层参数——
井筒储集系数[C](m^3/MPa):
初末井筒储集系数比[CidRatio]:
储层厚度[h](m):
孔隙度[phi]:
内区孔隙度[phi1]:
外区孔隙度[phi2]:
渗透率[K](mD):
油相渗透率[Ko](mD):
气相渗透率[Kg](mD):
水相渗透率[Kw](mD):
水平渗透率[Kh](mD):
垂向渗透率[Kv](mD):
表皮系数[S]:
总表皮系数[St]:
界面表皮[Sinf]:
特殊储层参数——
导压系数比[sigma]:
弹性储容比[D]:
裂缝弹性储容比[omegaf]:
窜流系数[lambda]:
流度[MKu](mD/(mPa.s)):
流度比[M]:
应力敏感系数[gamma](1/MPa):
参考温度[rt](°C):
流体性质——
综合压缩系数[Ct](1/MPa):
岩石压缩系数[Cf](1/MPa):
含水率[Fw](%):
油压缩系数[Co](1/Mpa):
油体积系数[Bo]:
油密度[Rhoo](kg/m^3):
油相黏度[Miuo](mPa.s):
气体偏差因子[Zg]:
气体压缩系数[Cg](1/Mpa):
气体密度[Rhog](kg/m^3):
气相黏度[Miug](mPa.s):
气体积系数[Bg]:
水压缩系数[Cw](1/Mpa):
水体积系数[Bw]:
水密度[Rhow](kg/m^3):
水相黏度[Miuw](mPa.s):
气油比[Rs](m^3/m^3):
气水比[Rsw](m^3/m^3):
边界
边界距离1[x1](m):
边界距离2[x2](m):
边界距离3[x3](m):
边界距离4[x4](m):
其他参数
裂缝长度[Lf](m):
裂缝半长[xf](m):
裂缝倾角[theta_f](°):
裂缝宽度[wf](m):
裂缝导流能力[Fc](mD.m):

@ -5913,7 +5913,7 @@ Converted xmlfile successfully.
<message>
<location filename="../../../../../iFramework/Src/iPlot/iPlotCurveT/tCurvePlotView.cpp" line="455"/>
<source> Current Pos:%1-%2</source>
<translation type="unfinished"></translation>
<translation>当前位置:%1-%2</translation>
</message>
</context>
<context>

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

@ -3245,6 +3245,9 @@ No valid error was returned; keep the last accepted result and reduce the step.<
<message><source>Logarithmic scale requires positive property and display ranges.</source><translation>对数色标要求属性范围和显示范围均为正值。</translation></message>
<message><source>Unable to construct the color mapping.</source><translation>无法构造颜色映射。</translation></message>
<message><source>Unable to apply the color settings.</source><translation>无法应用颜色设置。</translation></message>
<message><source>The filter settings no longer match the current result.</source><translation>筛选设置已不再对应当前结果。</translation></message>
<message><source>The filter settings are invalid.</source><translation>筛选设置无效。</translation></message>
<message><source>Unable to apply the filter settings.</source><translation>无法应用筛选设置。</translation></message>
<message><source>Below min</source><translation>低于最小值</translation></message>
<message><source>Above max</source><translation>高于最大值</translation></message>
</context>
@ -3260,7 +3263,7 @@ No valid error was returned; keep the last accepted result and reduce the step.<
<message><source>Result playback is unavailable.</source><translation>结果回放不可用。</translation></message>
<message><source>The selected result property is unavailable.</source><translation>所选结果属性不可用。</translation></message>
<message><source>The selected result frame is unavailable.</source><translation>所选结果帧不可用。</translation></message>
<message><source>Playback speed must be a positive integer.</source><translation>播放速度必须为正整数。</translation></message>
<message><source>Playback speed must be between %1 and %2 steps/second.</source><translation>播放速度必须为 %1 至 %2 步/秒。</translation></message>
</context>
<context>
<name>nmFFmpegVideoWriter</name>
@ -3346,6 +3349,12 @@ No valid error was returned; keep the last accepted result and reduce the step.<
</context>
<context>
<name>nmWxPebiResultControlBar</name>
<message><source>Solid Color</source><translation>纯色</translation></message>
<message><source>Display</source><translation>显示</translation></message>
<message><source>Point</source><translation>点</translation></message>
<message><source>Wireframe</source><translation>线框</translation></message>
<message><source>Surface</source><translation>表面</translation></message>
<message><source>Contour</source><translation>轮廓</translation></message>
<message><source>Property</source><translation>属性</translation></message>
<message><source>Display property</source><translation>显示属性</translation></message>
<message><source>Color settings</source><translation>颜色设置</translation></message>
@ -3385,6 +3394,9 @@ No valid error was returned; keep the last accepted result and reduce the step.<
<message><source>Unable to convert the range to the selected unit.</source><translation>无法将范围换算为所选单位。</translation></message>
<message><source>Minimum must be less than maximum.</source><translation>最小值必须小于最大值。</translation></message>
<message><source>Unable to read the committed color settings.</source><translation>无法读取已提交的颜色设置。</translation></message>
<message><source>Apply</source><translation>应用</translation></message>
<message><source>OK</source><translation>确定</translation></message>
<message><source>Cancel</source><translation>取消</translation></message>
</context>
<context>
<name>nmWxPebiResultAnimationSettingsDlg</name>
@ -3392,12 +3404,53 @@ No valid error was returned; keep the last accepted result and reduce the step.<
<message><source>Loop enabled</source><translation>启用循环</translation></message>
<message><source>Speed (steps/second)</source><translation>速度(步/秒)</translation></message>
</context>
<context>
<name>nmWxPebiResultFilterSettingsDlg</name>
<message><source>Filtering settings</source><translation>筛选设置</translation></message>
<message><source>Enable filtering</source><translation>启用筛选</translation></message>
<message><source>Filter on</source><translation>筛选属性</translation></message>
<message><source>Above min (&gt;=)</source><translation>下限 (&gt;=)</translation></message>
<message><source>Below max (&lt;=)</source><translation>上限 (&lt;=)</translation></message>
<message><source>Apply</source><translation>应用</translation></message>
<message><source>OK</source><translation>确定</translation></message>
<message><source>Cancel</source><translation>取消</translation></message>
<message><source>Unable to read the current result filter settings.</source><translation>无法读取当前结果筛选设置。</translation></message>
<message><source>A filter property must be selected.</source><translation>必须选择筛选属性。</translation></message>
<message><source>Filter limits must be finite numbers.</source><translation>筛选上下限必须是有限数。</translation></message>
<message><source>Unable to convert the filter limits to the selected unit.</source><translation>无法将筛选上下限换算为所选单位。</translation></message>
<message><source>The minimum filter limit cannot exceed the maximum.</source><translation>筛选下限不能大于上限。</translation></message>
<message><source>Filtering is unavailable during playback or export.</source><translation>播放或导出期间无法设置筛选。</translation></message>
<message><source>Unable to apply the filter settings.</source><translation>无法应用筛选设置。</translation></message>
</context>
<context>
<name>nmWxPebiResultViewWidget</name>
<message><source>No result data.</source><translation>暂无结果数据。</translation></message>
<message><source>Color Scale</source><translation>色标</translation></message>
<message><source>Scale Grid</source><translation>比例网格</translation></message>
<message><source>Well Names</source><translation>井名</translation></message>
<message><source>Data Filtering...</source><translation>数据筛选...</translation></message>
<message><source>Region Average Pressure</source><translation>区域平均压力</translation></message>
<message><source>Statistics</source><translation>统计结果</translation></message>
<message><source>Cancel Region Drawing</source><translation>取消区域绘制</translation></message>
<message><source>Switch to Top View or Isometric View before drawing a pressure region.</source><translation>请切换到顶视图或等轴视图后再绘制压力统计区域。</translation></message>
<message><source>Unable to start region pressure drawing.</source><translation>无法开始绘制压力统计区域。</translation></message>
<message><source>Draw a non-degenerate region with at least three points.</source><translation>请绘制一个至少包含三个点且非退化的区域。</translation></message>
<message><source>The displayed result changed while the region was drawn.</source><translation>绘制区域期间,当前显示结果已发生变化。</translation></message>
<message><source>Unable to prepare the selected pressure region.</source><translation>无法准备所选压力统计区域。</translation></message>
<message><source>Unable to calculate region pressure statistics.</source><translation>无法计算区域压力统计。</translation></message>
<message><source>Unable to preserve the selected pressure region.</source><translation>无法保留所选压力统计区域。</translation></message>
<message><source>Region average pressure</source><translation>区域平均压力</translation></message>
<message><source>Weighted by cell area, thickness and porosity.</source><translation>按单元面积、厚度和孔隙度加权。</translation></message>
<message><source>Minimum pressure</source><translation>压力下限</translation></message>
<message><source>Maximum pressure</source><translation>压力上限</translation></message>
<message><source>Pressure time</source><translation>压力时间</translation></message>
<message><source>Selected cells</source><translation>选中单元</translation></message>
<message><source>MPa</source><translation>MPa</translation></message>
<message><source>Unable to calculate region average pressure.</source><translation>无法计算区域平均压力。</translation></message>
<message><source>No cells intersect the selected region.</source><translation>所选区域内没有相交单元。</translation></message>
<message><source>No valid cells are available for region average pressure.</source><translation>所选区域内没有可用于计算平均压力的有效单元。</translation></message>
<message><source>%1 selected cells were excluded because their data is invalid.</source><translation>有 %1 个选中单元因数据无效未参与统计。</translation></message>
<message><source>Close</source><translation>关闭</translation></message>
<message><source>Unable to display the latest result.</source><translation>无法显示最新结果。</translation></message>
<message><source>Unable to display the latest result: %1</source><translation>无法显示最新结果:%1</translation></message>
<message><source>Current inputs have changed. Showing the last successful result.</source><translation>当前输入已修改,正在显示上一次成功求解的结果。</translation></message>
@ -3412,9 +3465,66 @@ No valid error was returned; keep the last accepted result and reduce the step.<
%1</source><translation>结果动画已保存到:
%1</translation></message>
<message><source>Unable to export the result animation.</source><translation>无法导出结果动画。</translation></message>
<message>
<source>Import 3D Model</source>
<translation>导入三维模型</translation>
</message>
<message>
<source>Import 3D Model...</source>
<translation>导入三维模型…</translation>
</message>
<message>
<source>Loading 3D model...</source>
<translation>正在加载三维模型…</translation>
</message>
<message>
<source>Replace 3D Model...</source>
<translation>更换三维模型…</translation>
</message>
<message>
<source>Return to Calculation Result</source>
<translation>返回计算结果</translation>
</message>
<message>
<source>Slice</source>
<translation>切片</translation>
</message>
<message>
<source>Unable to display the 3D model.</source>
<translation>无法显示三维模型。</translation>
</message>
<message>
<source>Unable to return to the latest calculation result: %1</source>
<translation>无法返回最新计算结果:%1</translation>
</message>
<message>
<source>VTK Volume Mesh (*.vtk *.vtu)</source>
<translation>VTK 三维体网格 (*.vtk *.vtu)</translation>
</message>
<message>
<source>Show Slice</source>
<translation>显示切片</translation>
</message>
<message>
<source>Slice Settings...</source>
<translation>切片设置…</translation>
</message>
<message>
<source>The slice plane does not intersect the model.</source>
<translation>切片平面与模型无交集。</translation>
</message>
<message>
<source>Unable to display the slice.</source>
<translation>无法显示截面。</translation>
</message>
</context>
<context>
<name>nmWxPebiGridViewWidget</name>
<message><source>Display</source><translation>显示</translation></message>
<message><source>Point</source><translation>点</translation></message>
<message><source>Wireframe</source><translation>线框</translation></message>
<message><source>Surface</source><translation>表面</translation></message>
<message><source>Contour</source><translation>轮廓</translation></message>
<message><source>No grid data.</source><translation>暂无网格数据。</translation></message>
<message><source>Scale Grid</source><translation>比例网格</translation></message>
<message><source>The grid preview data is invalid.</source><translation>网格预览数据无效。</translation></message>
@ -5211,16 +5321,20 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We
<context>
<name>nmWxChangeAnal</name>
<message>
<source>AnalChange</source>
<translation type="unfinished"></translation>
<source>Switch analysis</source>
<translation>切换分析</translation>
</message>
<message>
<source>Analysis</source>
<translation>分析</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">确定</translation>
<translation>确定</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
<translation>取消</translation>
</message>
</context>
<context>
@ -5243,7 +5357,7 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We
</message>
<message>
<source>N/A</source>
<translation></translation>
<translation>未知来源</translation>
</message>
<message>
<source>Origin</source>
@ -5484,6 +5598,38 @@ Please choose a smaller length.</source>
</context>
<context>
<name>nmWxDFNLoadFromFile</name>
<message>
<source>Paste from clipboard</source>
<translation>从剪贴板粘贴</translation>
</message>
<message>
<source>Clipboard</source>
<translation>剪贴板</translation>
</message>
<message>
<source>Invalid numeric value at data row %1, column %2.</source>
<translation>第 %1 行数据、第 %2 列不是有效数值。</translation>
</message>
<message>
<source>Column</source>
<translation>列</translation>
</message>
<message>
<source>Type</source>
<translation>字段类型</translation>
</message>
<message>
<source>Unit</source>
<translation>单位</translation>
</message>
<message>
<source>Column %1</source>
<translation>第 %1 列</translation>
</message>
<message>
<source>UnDefined</source>
<translation>忽略</translation>
</message>
<message>
<source>Load from file...</source>
<translation>从文件加载…</translation>
@ -5526,11 +5672,11 @@ Please choose a smaller length.</source>
</message>
<message>
<source>Open Text File</source>
<translation>打开Text文件</translation>
<translation>打开文本文件</translation>
</message>
<message>
<source>Text Files (*.txt);;All Files (*)</source>
<translation></translation>
<translation>文本文件 (*.txt);;所有文件 (*)</translation>
</message>
<message>
<source>Error</source>
@ -5542,11 +5688,11 @@ Please choose a smaller length.</source>
</message>
<message>
<source>Open Excel File</source>
<translation>打开Excel文件</translation>
<translation>打开 Excel 文件</translation>
</message>
<message>
<source>Excel Files (*.xls *.xlsx);;All Files (*)</source>
<translation></translation>
<translation>Excel 文件 (*.xls *.xlsx);;所有文件 (*)</translation>
</message>
<message>
<source>Please select an Excel file (.xls or .xlsx)</source>
@ -5583,7 +5729,8 @@ Please choose a smaller length.</source>
<message>
<source>Failed to import Excel :
</source>
<translation>无法导入Excel文件:</translation>
<translation>无法导入 Excel 文件:
</translation>
</message>
</context>
<context>
@ -5946,6 +6093,7 @@ Please check your input coordinates.</source>
<message><source>Isometric View</source><translation>等轴测视图</translation></message>
<message><source>Reset Rotation Center</source><translation>重置旋转中心</translation></message>
<message><source>Set Rotation Center</source><translation>设置旋转中心</translation></message>
<message><source>Show Rotation Center Marker</source><translation>显示旋转中心标记</translation></message>
<message><source>Save as Image</source><translation>保存图片</translation></message>
<message><source>Copy Image</source><translation>复制图片</translation></message>
<message><source>Print</source><translation>打印</translation></message>
@ -6750,59 +6898,59 @@ Please check your input coordinates.</source>
<name>nmWxPerforationClosing</name>
<message>
<source>Perforation closing intervals</source>
<translation type="unfinished"></translation>
<translation>射孔封堵时段</translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished">添加</translation>
<translation>添加</translation>
</message>
<message>
<source>Remove</source>
<translation type="unfinished">移除</translation>
<translation>移除</translation>
</message>
<message>
<source>Show dates</source>
<translation type="unfinished">显示日期</translation>
<translation>显示日期</translation>
</message>
<message>
<source>Time unit:</source>
<translation type="unfinished">时间单位:</translation>
<translation>时间单位:</translation>
</message>
<message>
<source>Perforation</source>
<translation type="unfinished"></translation>
<translation>射孔段</translation>
</message>
<message>
<source>Perforation #%1</source>
<translation type="unfinished"></translation>
<translation>射孔段 #%1</translation>
</message>
<message>
<source>All</source>
<translation type="unfinished">全部</translation>
<translation>全部</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">确定</translation>
<translation>确定</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
<translation>取消</translation>
</message>
<message>
<source>Start time</source>
<translation type="unfinished">开始时间</translation>
<translation>开始时间</translation>
</message>
<message>
<source>Perforation state</source>
<translation type="unfinished"></translation>
<translation>射孔状态</translation>
</message>
<message>
<source>Closed</source>
<translation type="unfinished"></translation>
<translation>关闭</translation>
</message>
<message>
<source>Open</source>
<translation type="unfinished"></translation>
<translation>开启</translation>
</message>
</context>
<context>
@ -7377,6 +7525,22 @@ Average pressure in contour: %2 MPa</source>
</context>
<context>
<name>nmWxSensitive</name>
<message>
<source>Result plots</source>
<translation>结果图</translation>
</message>
<message>
<source>Loglog plot</source>
<translation>双对数图</translation>
</message>
<message>
<source>History plot</source>
<translation>历史曲线</translation>
</message>
<message>
<source>Histogram</source>
<translation>直方图</translation>
</message>
<message>
<source>Sensitivity</source>
<translation>敏感性分析</translation>
@ -7620,6 +7784,66 @@ Average pressure in contour: %2 MPa</source>
</context>
<context>
<name>nmWxTimeDependentSkin</name>
<message>
<source>Select a well with valid model results before estimating skin.</source>
<translation>请先选择具有有效模型结果的井,再估算表皮。</translation>
</message>
<message>
<source>Skin estimation requires a single perforation.</source>
<translation>自动估算表皮仅支持单射孔。</translation>
</message>
<message>
<source>Skin estimation does not yet support perforation closing intervals.</source>
<translation>自动估算表皮暂不支持设有射孔封堵区间的模型。</translation>
</message>
<message>
<source>Generate a model with the current inputs and a constant skin before computing skin steps.</source>
<translation>请先使用当前输入和恒定表皮生成模型结果,再计算各段表皮。</translation>
</message>
<message>
<source>The model result does not match this well&apos;s pressure and rate data. Generate the model again.</source>
<translation>模型结果与当前井的压力、流量数据不一致,请重新生成模型。</translation>
</message>
<message>
<source>Observation wells have no controlled rate for skin estimation.</source>
<translation>观察井没有可用于估算表皮的自身控制流量。</translation>
</message>
<message>
<source>Skin estimation requires model and measured pressure curves.</source>
<translation>自动估算表皮需要模型压力曲线和实测压力曲线。</translation>
</message>
<message>
<source>The model requires valid permeability, thickness and skin.</source>
<translation>模型的渗透率、厚度和表皮参数必须有效。</translation>
</message>
<message>
<source>Skin estimation supports single-phase oil, gas, water and oil-water models only.</source>
<translation>自动估算表皮支持单相油、气、水以及油水两相模型。</translation>
</message>
<message>
<source>Set positive reference volume factors and viscosities in the analysis PVT settings.</source>
<translation>请在分析的 PVT 设置中填写有效的参考体积系数和黏度,数值必须大于零。</translation>
</message>
<message>
<source>Oil-water estimation requires finite phase rates with the same flow direction.</source>
<translation>油水两相估算要求各相流量有效,且油、水流动方向一致。</translation>
</message>
<message>
<source>Variable-PVT skin estimation requires finite, positive B and viscosity values on a monotonic pressure table.</source>
<translation>变 PVT 表皮估算要求压力表严格单调,体积系数和黏度均为有效正数。</translation>
</message>
<message>
<source>Cannot read reference PVT values from this analysis.</source>
<translation>无法读取本分析的 PVT 参考值。</translation>
</message>
<message>
<source>The model rate schedule or pressure conversion factor is invalid.</source>
<translation>模型的流量制度或压力换算系数无效。</translation>
</message>
<message>
<source>No skin steps could be estimated. Check pressure data, non-zero rate steps and the gas PVT pressure range.</source>
<translation>没有可估算的表皮分段。请检查压力数据、非零流量段及气体 PVT 压力范围。</translation>
</message>
<message>
<source>Time Dependent Skin</source>
<translation>时间相关表皮系数</translation>
@ -7654,7 +7878,7 @@ Average pressure in contour: %2 MPa</source>
</message>
<message>
<source>Skin vs Rate</source>
<translation type="unfinished">表皮系数对比</translation>
<translation>表皮系数与流量</translation>
</message>
<message>
<source>Split Steps</source>
@ -7690,19 +7914,19 @@ Average pressure in contour: %2 MPa</source>
</message>
<message>
<source>hr</source>
<translation type="unfinished"></translation>
<translation>hr</translation>
</message>
<message>
<source>MPa</source>
<translation type="unfinished"></translation>
<translation>MPa</translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished">持续时间(hr)</translation>
<translation>时间</translation>
</message>
<message>
<source>Flow</source>
<translation type="unfinished">流量</translation>
<translation>流量</translation>
</message>
<message>
<source>m^3/D</source>
@ -7734,7 +7958,7 @@ Average pressure in contour: %2 MPa</source>
</message>
<message>
<source>dS/dQ</source>
<translation type="unfinished">表皮关于产量的变化率</translation>
<translation>表皮关于产量的变化率</translation>
</message>
</context>
<context>
@ -8727,6 +8951,10 @@ Average pressure in contour: %2 MPa</source>
</context>
<context>
<name>nmWxForecast</name>
<message>
<source>Result plots</source>
<translation>结果图</translation>
</message>
<message>
<source>Forecast</source>
<translation>预测</translation>
@ -8816,4 +9044,243 @@ Average pressure in contour: %2 MPa</source>
<translation>模型已发生变化,请重新生成预测。</translation>
</message>
</context>
<context>
<name>nmPebiGridDiagnostics</name>
<message><source>Only two-dimensional grid input is supported.</source><translation>当前仅支持二维网格输入。</translation></message>
<message><source>Grid spacing must be finite and greater than zero (current value: %1).</source><translation>网格尺度必须为有限正数,当前值:%1。</translation></message>
<message><source>The boundary must contain at least three edges.</source><translation>工区边界至少需要三条边。</translation></message>
<message><source>Boundary edge %1 has missing or non-finite coordinates.</source><translation>边界第 %1 条边的坐标缺失或不是有限数值。</translation></message>
<message><source>Boundary edge %1 has zero length. Check coincident points and coordinate rounding.</source><translation>边界第 %1 条边长度为零,请检查重合点及坐标取整造成的重合。</translation></message>
<message><source>Vertical well %1 has missing or non-finite coordinates/radius.</source><translation>第 %1 口直井的坐标或井半径缺失,或不是有限数值。</translation></message>
<message><source>Vertical well %1 has invalid radius %2 m; it must be greater than zero.</source><translation>第 %1 口直井的半径 %2 m 无效,井半径必须大于零。</translation></message>
<message><source>Vertical well %1: radius %2 m is too small to represent at coordinates (%3, %4) m.</source><translation>第 %1 口直井的半径 %2 m 相对于坐标(%3,%4)m 过小,已超出浮点数的可分辨精度。</translation></message>
<message><source>Grid input capture/preparation failed. Check the boundary and participating wells.</source><translation>网格输入读取或准备失败,请检查工区边界及参与计算的井。</translation></message>
<message><source>Unable to load HX_NWTM.dll (Windows error %1). Check the DLL and its runtime dependencies.</source><translation>无法加载 HX_NWTM.dll(Windows 错误码 %1),请检查网格库及其运行库依赖。</translation></message>
<message><source>HX_NWTM_GRID is missing from the DLL (Windows error %1). Check the library version.</source><translation>网格库缺少 HX_NWTM_GRID 入口(Windows 错误码 %1),请检查库版本。</translation></message>
<message><source>The grid algorithm encountered an access violation (0xC0000005).</source><translation>网格算法内部发生内存访问异常(0xC0000005)。</translation></message>
<message><source>The grid algorithm returned empty grid data. Check the license and geometry inputs.</source><translation>网格算法返回了空网格,请检查授权文件及几何输入。</translation></message>
<message><source>The generated grid cannot be displayed: invalid points, cell indices or degenerate cells.</source><translation>生成的网格无法显示,可能存在无效节点、单元索引错误或退化单元。</translation></message>
<message><source>Grid calculation raised an exception: %1</source><translation>网格计算发生异常:%1</translation></message>
<message><source>Grid calculation raised an unknown exception.</source><translation>网格计算发生未知异常。</translation></message>
<message><source>Unable to capture the grid boundary. Check that the analysis has a boundary.</source><translation>无法读取工区边界,请确认当前分析已设置边界。</translation></message>
<message><source>Unable to capture well geometry. Check participating well types and fracture endpoints.</source><translation>无法读取井几何信息,请检查参与计算的井类型及裂缝端点。</translation></message>
<message><source>Unable to capture fault/fracture geometry.</source><translation>无法读取断层或裂缝几何信息。</translation></message>
<message><source>Participating wells do not match the grid well list. Check the primary well and included wells.</source><translation>参与计算的井与网格井列表不匹配,请检查主井及包含井设置。</translation></message>
<message><source>The grid result was discarded because the analysis inputs changed. Generate the grid again.</source><translation>划分期间分析输入已改变,本次网格未提交,请重新划分网格。</translation></message>
<message><source>Grid generation failed: %1</source><translation>网格划分失败:%1</translation></message>
<message><source>Check whether the well radius is too small, and check grid spacing and geometry positions.</source><translation>请检查井半径是否过小、网格尺度及几何位置是否合适。</translation></message>
</context>
<context>
<name>nmWxChartWidget</name>
<message>
<source>Liquid rate [STB/D]</source>
<translation>产液量 [STB/D]</translation>
</message>
<message>
<source>Skin</source>
<translation>表皮系数</translation>
</message>
</context>
<context>
<name>nmVolumeData</name>
<message>
<source>Not enough memory to import the volume mesh.</source>
<translation>内存不足,无法导入三维网格。</translation>
</message>
<message>
<source>Only linear tetrahedron, voxel, hexahedron, wedge and pyramid volume cells are supported.</source>
<translation>当前仅支持线性四面体、体素、六面体、楔形和金字塔体单元。</translation>
</message>
<message>
<source>Select a .vtk or .vtu volume mesh file.</source>
<translation>请选择 .vtk 或 .vtu 三维体网格文件。</translation>
</message>
<message>
<source>Skipped invalid scalar array: %1</source>
<translation>已跳过无效标量属性:%1</translation>
</message>
<message>
<source>Skipped scalar array without finite values: %1</source>
<translation>已跳过没有有限值的标量属性:%1</translation>
</message>
<message>
<source>The file contains no volume mesh.</source>
<translation>文件中没有有效的三维体网格。</translation>
</message>
<message>
<source>The mesh connectivity is invalid.</source>
<translation>网格连接关系无效。</translation>
</message>
<message>
<source>The mesh contains an invalid point index.</source>
<translation>网格包含越界的节点索引。</translation>
</message>
<message>
<source>The mesh contains non-finite coordinates.</source>
<translation>网格包含无效坐标(NaN 或无穷值)。</translation>
</message>
<message>
<source>The mesh contains repeated cell vertices.</source>
<translation>网格单元包含重复顶点。</translation>
</message>
<message>
<source>The mesh must have a finite extent in all three directions.</source>
<translation>三维网格必须在三个方向均具有有效范围。</translation>
</message>
<message>
<source>The temporary directory path cannot be read by VTK.</source>
<translation>VTK 无法读取当前临时目录路径。</translation>
</message>
<message>
<source>The volume mesh file is empty or cannot be opened.</source>
<translation>三维网格文件为空或无法打开。</translation>
</message>
<message>
<source>Unable to create a temporary file for this path.</source>
<translation>无法为该文件路径创建临时文件。</translation>
</message>
<message>
<source>Unable to read the volume mesh file.</source>
<translation>无法读取三维网格文件。</translation>
</message>
<message>
<source>VTK could not read the volume mesh: %1</source>
<translation>VTK 无法读取三维网格:%1</translation>
</message>
<message>
<source>Volume import canceled.</source>
<translation>已取消三维模型导入。</translation>
</message>
</context>
<context>
<name>nmVolumeSceneController</name>
<message>
<source>Not enough memory to display the volume mesh.</source>
<translation>内存不足,无法显示三维网格。</translation>
</message>
<message>
<source>Unable to bind the volume scalar property.</source>
<translation>无法绑定三维模型的标量属性。</translation>
</message>
<message>
<source>The color settings are invalid.</source>
<translation>颜色设置无效。</translation>
</message>
<message>
<source>The selected color map is unavailable.</source>
<translation>所选色带不可用。</translation>
</message>
<message>
<source>The manual range must contain two finite increasing values.</source>
<translation>手工范围必须为两个有限数值,且最小值小于最大值。</translation>
</message>
<message>
<source>Unable to construct the color mapping.</source>
<translation>无法构建颜色映射。</translation>
</message>
<message>
<source>The color settings no longer match the current volume property.</source>
<translation>颜色设置已不匹配当前三维模型属性,请重新打开设置窗口。</translation>
</message>
<message>
<source>Unable to apply the color settings.</source>
<translation>无法应用颜色设置。</translation>
</message>
</context>
<context>
<name>nmVolumeImportTask</name>
<message>
<source>An unexpected error occurred while importing the volume mesh.</source>
<translation>导入三维网格时发生意外错误。</translation>
</message>
</context>
<context>
<name>nmVolumeSliceSettings</name>
<message>
<source>Origin and normal must contain finite numbers.</source>
<translation>原点和法向必须为有限数值。</translation>
</message>
<message>
<source>The plane normal must not be zero.</source>
<translation>平面法向不能为零向量。</translation>
</message>
</context>
<context>
<name>nmVolumeSlicePipeline</name>
<message>
<source>No volume model is available.</source>
<translation>当前没有可用的三维模型。</translation>
</message>
<message>
<source>Unable to compute a valid slice. The previous view has been kept.</source>
<translation>无法生成有效截面,已保留原画面。</translation>
</message>
<message>
<source>Not enough memory to compute the slice.</source>
<translation>内存不足,无法计算截面。</translation>
</message>
</context>
<context>
<name>nmWxVolumeSliceSettingsDlg</name>
<message>
<source>Origin %1</source>
<translation>原点 %1</translation>
</message>
<message>
<source>Normal %1</source>
<translation>法向 %1</translation>
</message>
<message>
<source>Plane Parameters</source>
<translation>平面参数</translation>
</message>
<message>
<source>Display Options</source>
<translation>显示选项</translation>
</message>
<message>
<source>Slice Settings</source>
<translation>切片设置</translation>
</message>
<message>
<source>Origin</source>
<translation>原点</translation>
</message>
<message>
<source>Normal</source>
<translation>法向</translation>
</message>
<message>
<source>Model Center</source>
<translation>模型中心</translation>
</message>
<message>
<source>Show Plane</source>
<translation>显示平面</translation>
</message>
<message>
<source>Show Original Model</source>
<translation>显示原模型</translation>
</message>
<message>
<source>Apply</source>
<translation>应用</translation>
</message>
<message>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<source>Enter valid numbers for origin and normal.</source>
<translation>请为原点和法向输入有效数值。</translation>
</message>
<message>
<source>Drag the center or outline to move the plane; drag arrows to rotate.</source>
<translation>拖动中心手柄或平面轮廓移动平面,拖动箭头旋转平面。</translation>
</message>
</context>
</TS>

@ -0,0 +1,91 @@
#dat文本格式数据
基础参数——
油田名称[FieldName]:
区块名称[BlockName]:
井名[WellName]:
井号[WellCode]:
井别[WellClass]:
井型[WellType]:
井径[rw](m): 0.07068
原始地层压力[Pe](MPa):
参考压力[Pref](MPa): 54.7256
初始压力[Pi](MPa):
地层压力[Pit](MPa):
复合半径[Ri](MPa):
储层参数——
井筒储集系数[C](m^3/MPa):0.01616
初末井筒储集系数比[CidRatio]:
储层厚度[h](m): 7.4
孔隙度[phi]:0.188955
内区孔隙度[phi1]:
外区孔隙度[phi2]:
渗透率[K](mD):258.2
油相渗透率[Ko](mD):258.2
气相渗透率[Kg](mD):
水相渗透率[Kw](mD):
水平渗透率[Kh](mD):
垂向渗透率[Kv](mD):
表皮系数[S]:-0.36855
总表皮系数[St]:
界面表皮[Sinf]:
特殊储层参数——
导压系数比[sigma]:
弹性储容比[D]:
裂缝弹性储容比[omegaf]:
窜流系数[lambda]:
流度[MKu](mD/(mPa.s)):
流度比[M]:
应力敏感系数[gamma](1/MPa):
参考温度[rt](°C):100
流体性质——
综合压缩系数[Ct](1/MPa):0.00122234
岩石压缩系数[Cf](1/MPa):0.000559053
含水率[Fw](%):
油压缩系数[Co](1/Mpa):
油体积系数[Bo]:1.18267
油密度[Rhoo](kg/m^3):
油相黏度[Miuo](mPa.s):2.7441
气体偏差因子[Zg]:
气体压缩系数[Cg](1/Mpa):
气体密度[Rhog](kg/m^3):
气相黏度[Miug](mPa.s):
气体积系数[Bg]:
水压缩系数[Cw](1/Mpa):
水体积系数[Bw]:
水密度[Rhow](kg/m^3):
水相黏度[Miuw](mPa.s):
气油比[Rs](m^3/m^3):0
气水比[Rsw](m^3/m^3):
边界
边界距离1[x1](m):588.553
边界距离2[x2](m):
边界距离3[x3](m):
边界距离4[x4](m):
其他参数
裂缝长度[Lf](m):
裂缝半长[xf](m):
裂缝倾角[theta_f](°):
裂缝宽度[wf](m):
裂缝导流能力[Fc](mD.m):

@ -0,0 +1,84 @@
#dat文本格式数据
基础参数——
油田名称[FieldName]:
区块名称[BlockName]:
井名[WellName]:
井号[WellCode]:
井别[WellClass]:
井型[WellType]:
井径[rw](m): 0.07068
原始地层压力[Pe](MPa):
参考压力[Pref](MPa): 54.7256
初始压力[Pi](MPa):
地层压力[Pit](MPa):
复合半径[Ri](MPa):
储层参数——
井筒储集系数[C](m^3/MPa):0.01616
初末井筒储集系数比[CidRatio]:
储层厚度[h](m): 7.4
孔隙度[phi]:0.188955
内区孔隙度[phi1]:
外区孔隙度[phi2]:
渗透率[K](mD):258.2
油相渗透率[Ko](mD):258.2
气相渗透率[Kg](mD):
水相渗透率[Kw](mD):
水平渗透率[Kh](mD):
垂向渗透率[Kv](mD):
表皮系数[S]:-0.36855
总表皮系数[St]:
界面表皮[Sinf]:
特殊储层参数——
导压系数比[sigma]:
弹性储容比[D]:
裂缝弹性储容比[omegaf]:
窜流系数[lambda]:
流度[MKu](mD/(mPa.s)):
流度比[M]:
应力敏感系数[gamma](1/MPa):
参考温度[rt](°C):100
流体性质——
综合压缩系数[Ct](1/MPa):0.00122234
岩石压缩系数[Cf](1/MPa):0.000559053
含水率[Fw](%):
油压缩系数[Co](1/Mpa):
油体积系数[Bo]:1.18267
油密度[Rhoo](kg/m^3):
油相黏度[Miuo](mPa.s):2.7441
气体偏差因子[Zg]:
气体压缩系数[Cg](1/Mpa):
气体密度[Rhog](kg/m^3):
气相黏度[Miug](mPa.s):
气体积系数[Bg]:
水压缩系数[Cw](1/Mpa):
水体积系数[Bw]:
水密度[Rhow](kg/m^3):
水相黏度[Miuw](mPa.s):
气油比[Rs](m^3/m^3):0
气水比[Rsw](m^3/m^3):
边界
边界距离1[x1](m):588.553
边界距离2[x2](m):
边界距离3[x3](m):
边界距离4[x4](m):
其他参数
裂缝长度[Lf](m):
裂缝半长[xf](m):
裂缝倾角[theta_f](°):
裂缝宽度[wf](m):
裂缝导流能力[Fc](mD.m):

@ -2,13 +2,14 @@
[Global]
AppID = WTAI ;AppID
AppLogo = WTAI.png ;Logo
AppDescCN = 新一代试井处理解释软件;中文
AppLogo = iWeTai2.png ;Logo
AppDescCN = 试井软件;[试用版];中文
AppDescEN = iWeTai;英文
Dev = 中国石油勘探开发研究院;
DebugLevel = 0; 1 为Debug模式,可以打印更多日志,比如SQL语句
AppVer = c4ca4238a0b923820dcc509a6f75849b; 内定的编码,则为常规版本,否则为 临时版本
Customer = 研究院\r\n试井相关研究人员;
;ProductVer = Ver1.0.1.0;
Customer = 研究院、工艺院及测试公司\r\n试井相关研究人员;\r\n试用版[2027-12-31到期];
PtyAdvanced = 1; 属性采用高级模式
[GX6Config]
@ -86,7 +87,9 @@ wLineCountPerSpan = 461e8b88f5f7119a7c45dc91a59fa029; 导出word时,内部描
NaviShowMode = 1; 模型导航模式,1:为菜单模式,其它:原来模式
SegMaxToTrim = 5; 一旦流动段多于该数,则仅仅对当前段进行处理
CustomThin = 1; 是否允许定制抽稀参数
CustomAutoFitMethod = 0; 是否更换拟合方法
UnitConvert = 1; 是否允许单位转换
MixMiuSupported = 0; 是否允许设置混合黏度
TailorOffset = 0; (范围0-50,%)
BaseResolutionW = 1920; 基准分辨率 1024 1920
BaseResolutionH = 1080;768 1080

@ -84,10 +84,78 @@ div.block_latest
<div class='block_latest'>
<h2 class="title_latest">软件版本:20260819</h2>
<ol>
<li class="li_important_latest">优化:气相拟压力换算问题,解决压力史锯齿问题</li>
<li class="li_important_latest">优化:不再启用两条实际压力导数,模型统一进行处理</li>
<h2 class="title">软件版本:V1.0(20261026)</h2>
<ol>
<li class="li_important">帮助手册版本,包括产能、不包括智能</li>
</ol>
<h2 class="title">软件版本:20261021</h2>
<ol>
<li class="li_important">新增:DAT格式数据批量导入[新建井时]</li>
<li class="li_important">新增:解释参数批量修改[处理解释]</li>
<li class="li_important">新增:整合智能模块(打包方式待定)</li>
<li>新增:反褶积功能集成,增加双对数曲线显示</li>
<li>新增:西安华线模型拟合更新为开源方法,索引为40(但是只给了Release版本)</li>
<li class="li_important">新增:底层增加日期时间类型坐标轴,基本测试通过,待后续功能挂接</li>
<li>新增:混合黏度计算功能,待具体功能挂接</li>
<li class="li_important">优化:优化besselk,支持小数(不仅仅0,1),H震荡问题优化</li>
<li>优化:直井+圆形边界震荡优化,误差函数问题</li>
<li>优化:数据库db改用引用&来调用,提高并发访问稳定性</li>
<li>优化:测试ZxSysmtem空闲iDle函数,暂时屏蔽,因为其eventFilter常引起无所谓的异常</li>
<li>优化:Ribbon高度优化,以更好地支持跨平台</li>
<li>优化:Icon/Scaled大小处理与判断,Pixmap is a null pixmap</li>
<li>优化:日志单例改为QObject,日志保存问题优化,规避死锁,提高稳定性</li>
<li>优化:加载成果,总是弹出错误日志,C找不到</li>
<li>优化:去除信号找不到的Warning,提高稳定性</li>
<li>优化:更改iWxWelcomeNew的eventFilter(map、detach),提高稳定性</li>
<li class="li_important">修复:自动拟合过程稳定性修复,算法与图形刷新死锁</li>
<li>修复:自动拟合界面表格参数叠影问题</li>
<li>修复:自动拟合次数偏小时进度条不刷新</li>
<li>修复:Ribbo收缩后,弹窗,无法恢复的问题</li>
<li class="li_important">修复:加载成果、解释、保存、关闭工区崩溃</li>
<li>修复:纹理格式刷修复:QBrush: Incorrect use of TexturePattern</li>
<li>修复:光标跨线程通讯修复:QObject::connect: Cannot queue arguments of type 'QTextCursor'</li>
<li>修复:文件夹循环拷贝问题</li>
<li>修复:文件/文件夹原生对话框启用问题</li>
<li>修复:读取旧日志内容中文乱码修复</li>
<li>调整:复合半径与裂缝半长关系</li>
<li>调整:完善工区管理按钮</li>
<li>调整:数据加载界面,时间格式改为中文</li>
<li>调整:调整产能曲线显示</li>
<li>调整:产能图例默认置于右上</li>
<li>调整:更新代码行统计工具</li>
</ol>
<h2 class="title">软件版本:V1.0(20260906)试用版</h2>
<ol>
<li class="li_important">新增:整合集成数值试井模块</li>
<li class="li_important">新增:线性复合模型</li>
<li class="li_important">新增:干扰试井模型</li>
<li>新增:针对多相,放开主相、次相的物性参数</li>
<li>优化:更改小数位置(坐标轴范围)</li>
<li>优化:参数特殊配置,saveBk/restoreBk逻辑处理优化</li>
<li>优化:更新光滑因子后实时刷新</li>
<li>优化:PVT高级计算中So/Sg/Sw小数位数调整</li>
<li>优化:PVT页面调整综合压缩系数的顺序</li>
<li>修复:PVT参数传递(孔隙度/岩石压缩系数),原先是可以的,是修改单位之后引起</li>
<li class="li_important">修复:拖拽加载解释成果,然后直接拖动特征线,左侧K/S未改动(信号未关联)</li>
<li>修复:Ribbon返回按钮</li>
<li>修复:保存的分析里,表格标题异常,1.储层名称 列为空,2.岩石压缩系数列,标题只有单位</li>
<li>修复:首页面操作崩溃,未复现,盲猜盲改</li>
<li>调整:产能计算放开参数结果刷新</li>
<li>调整:产能模块、智能模块默认暂时不再发布</li>
<li>规范:版本信息,V1.0</li>
</ol>
<h2 class="title">软件版本:20260819</h2>
<ol>
<li class="li_important">优化:气相拟压力换算问题,解决压力史锯齿问题</li>
<li class="li_important">优化:不再启用两条实际压力导数,模型统一进行处理</li>
<li>调整:流动段选择压力曲线改为点模式</li>
<li>修复:表皮系数输入负值,在切换不同模型之后,保持红色的问题</li>
<li>修复:所有水平井模型下井储系数单位不显示</li>

@ -1,5 +1,5 @@
[GX6]
Url=https://www.pre.ideas.cnpc/api/epaiasi-server/asiPlatform-assy/serverConfig/getServerConfig
Id=WeTest-86469831-v1.0
User=
Pwd=
Id=WeTest-86446517-v1.0
User=86446517
Pwd=ccc

File diff suppressed because it is too large Load Diff

@ -1,110 +0,0 @@
'******************************************************************************
'* File: excel2pdm.vbs
'* Purpose: 将在excel中设计的表导入到pdm文件
'* Category:
'* Version: 1.0
'* time : 2014-6-11
'* 因为喜欢在excel中做数据库表设计,所以用该程序导入到pdm。
'* 该程序对联合主键联合唯一没有做很好的处理,需要导入后手工修改。
'*该程序参考了网络上其他人的代码,但是这里是可以将sheet中所有的表一次导入。
'*
'* 所有的表设计都放在一个excel的一个sheet中,每个表中间空一行,表体都有表头说明如下,
'* 再前面一行是表名和表的说明,分别在A和C列。下面格式直接拷贝到excel中就可以看到,空格是制表符。
'******************************************************************************
' Excel 格式如下
'icontract_master_t 文件头表
'列名 类型 键 非空 注释
'contract_m_id NUMBER 主键 N 主键
'******************************************************************************
Option Explicit
Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no Active Model"
End If
Dim HaveExcel
Dim RQ
RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes Then
HaveExcel = True
' Open & Create Excel Document
Dim x1 '
Set x1 = CreateObject("Excel.Application")
x1.Workbooks.Open "E:\Run\mWTAI\Bin\Doc\iWTAI_DataStructure.xlsx"
x1.Workbooks(1).Worksheets("Table").Activate '指定要打开的sheet名称
Else
HaveExcel = False
End If
a x1, mdl
sub a(x1, mdl)
dim rwIndex
dim tableName
dim colname
dim table
dim col
dim count
dim abc
on error Resume Next
'--------------------------------
'下面是读取excel,添加表实体属性
'--------------------------------
For rwIndex = 2 To 457 '指定要遍历的Excel行标 由于第2行是表头,从第1行开始,看你这个表设计多少行
With x1.Workbooks(1).Worksheets("Table")'需要循环的sheet名称
If .Cells(rwIndex,1).Value <> "" And .Cells(rwIndex,3).Value <> "" And .Cells(rwIndex,4).Value = "Table" Then
set table = mdl.Tables.CreateNew '创建一个表实体
table.Code = .Cells(rwIndex,3).Value'从excel中取得表名称和编码
table.Name = .Cells(rwIndex,1).Value'
table.Comment = .Cells(rwIndex,1).Value '指定列说明
count = count + 1
'MsgBox .Cells(rwIndex,1).Value + .Cells(rwIndex,3).Value + .Cells(rwIndex,4).Value, vbOK + vbInformation, "表"
Continue
End If
If .Cells(rwIndex,2).Value = "" Or .Cells(rwIndex,3).Value = "" Or (.Cells(rwIndex,1).Value = "序号" And .Cells(rwIndex,2).Value = "列名")Then
continue
Else
set col =table.Columns.CreateNew '创建一列/字段
col.Name = .Cells(rwIndex, 2).Value '指定列name
col.Code = .Cells(rwIndex, 3).Value '指定列code
col.DataType = .Cells(rwIndex, 4).Value '指定列数据类型
If.Cells(rwIndex, 5).Value <> "" Then'指定主键
col.Primary =true
End If
If.Cells(rwIndex, 8).Value = "Y" Then'指定列是否可空 true 为不可空
col.Mandatory =true
End If
col.Comment = .Cells(rwIndex, 2).Value '指定列说明
'col.Length =.Cells(rwIndex, 4).Value '指定字段长度
'col.Precision =.Cells(rwIndex, 5).Value '指定字段长度
End If
End With
Next
MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"
Exit Sub
End sub

Binary file not shown.

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Lock xmlns="http://schemas.mindjet.com/MindManager/Lock/2003"><LockOwner UserEmail="" UserName=""/></Lock>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Lock xmlns="http://schemas.mindjet.com/MindManager/Lock/2003"><LockOwner UserEmail="" UserName=""/></Lock>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@ -72,6 +72,15 @@
<Tab ID="0" Name="WelCome" Alias="开始(O)" >
<Group Name="ProjManager" Alias="项目管理">
<Cmd ID="1001" Bounds="0,0,2,1" Name="ProjNew" Type="9" Alias="项目管理" Icon="NewProj" Visible="0" />
<Cmd ID="1001" Bounds="0,0,2,1" Name="ProjNew" Alias="新建项目" Icon="NewProj" />
<Cmd ID="1002" Bounds="0,1,2,1" Name="ProjOpen" Alias="打开项目" Icon="OpenProj" />
<Cmd ID="1005" Bounds="0,2,2,1" Name="ProjSave" Alias="保存项目" Icon="SaveProj" />
<Cmd ID="1003" Bounds="0,3,2,1" Name="ProjClose" Alias="关闭项目" Icon="CloseProj" />
</Group>
<Group Name="DataManager" Alias="数据准备">
<Cmd ID="1099" Bounds="0,0,2,1" Name="WellNew" Alias="新建井(W)" Icon="WellNew" />
<Cmd ID="2005" Bounds="0,1,2,1" Name="DataRate" Alias="流量数据(Q)" ExtInfo="P_DATA_GAUGE_F" Icon="RateData" />
@ -85,7 +94,7 @@
<Cmd ID="9102" Bounds="1,1" Name="VisibleAnalPVT" Alias="PVT数据" Icon="InputFluid" />
</Group>
<Group Name="Analytical" Alias="流动段分析">
<Group Name="FlowSegment" Alias="流动段分析">
<Cmd ID="3003" Bounds="0,0,2,1" Name="AnalPF" Alias="流动段选择" ExtInfo="PF" Icon="PF" />
<Cmd ID="3004" Bounds="0,1,2,1" Name="AnalFlowSeg" Alias="流动段分析" Icon="FlowPeriod" />
</Group>
@ -107,16 +116,11 @@
<Cmd ID="5202" Bounds="0,3,2,1" Name="AnalPF" Alias="辅助拟合" ExtInfo="PF" Icon="RunOther" Visible="0"/>
</Group>
<Group Name="Jobs" Alias="成果管理">
<Group Name="Rsts" Alias="成果管理">
<Cmd ID="1008" Bounds="0,0" Name="RstLoad" Alias="加载成果" Icon="LoadJobs" />
<Cmd ID="1009" Bounds="1,0" Name="RstSave" Type="1" ExtNames="RstSaveCur;RstSaveAll" ExtInfo="保存当前成果;保存所有成果" Alias="保存成果" Icon="SaveJobs" />
<Cmd ID="1005" Bounds="0,1,2,1" Name="ProjSave" Alias="保存项目" Icon="SaveProj" />
</Group>
<Group Name="WellMap" Alias="井位图">
<Cmd ID="3008" Bounds="0,0,2,1" Name="AnalMap" Alias="井位图" Icon="Map2D" Visible="1" />
<Cmd ID="3018" Bounds="0,1,2,1" Name="AnalInterfere" Alias="干扰设定" Icon="Map2D" Visible="0" />
@ -140,18 +144,18 @@
<Tab ID="2" Name="DataManager" Alias="数据管理(D)" >
<Group Name="DataManager" Alias="井">
<Group Name="DataWell" Alias="井">
<Cmd ID="1099" Bounds="0,0,2,1" Name="WellNew" Alias="新建井(W)" Icon="WellNew" />
</Group>
<Group Name="DataManager" Alias="基础数据">
<Group Name="DataBasic" Alias="基础数据">
<Cmd ID="2001" Bounds="0,0,2,1" Name="DataWellBasic" Alias="井基础数据(B)" ExtInfo="B_WELL" Icon="BasicData" />
<Cmd ID="2002" Bounds="0,1,2,1" Name="DataLayer" Alias="地质分层数据(L)" ExtInfo="B_LAYER" Icon="LayerData" />
<Cmd ID="2003" Bounds="0,2,2,1" Name="DataRes" Alias="储层数据(R)" ExtInfo="P_DATA_RES" Icon="ResData" />
<Cmd ID="2004" Bounds="0,3,2,1" Name="DataFlu" Alias="流体性质数据(F)" ExtInfo="P_DATA_FLUID" Icon="FluidProperty" />
</Group>
<Group Name="DataManager" Alias="压力流量">
<Group Name="DataPF" Alias="压力流量">
<Cmd ID="2005" Bounds="0,0,2,1" Name="DataRate" Alias="流量数据(Q)" ExtInfo="P_DATA_GAUGE_F" Icon="RateData" />
<Cmd ID="2006" Bounds="0,1,2,1" Name="DataPre" Alias="压力数据(P)" ExtInfo="P_DATA_GAUGE_P" Icon="PressureData" />
</Group>
@ -196,8 +200,8 @@
<Cmd ID="3103" Bounds="0,4,2,1" Name="PlateFit" Alias="敏感性分析" Icon="PlateFit" />
</Group>
<Group Name="AITest" Alias="智能试井">
<Cmd ID="3901" Bounds="0,0,2,1" Name="ModelClassify" Alias="模型识别" Icon="ModelClassify" />
<Group Name="AITest" Alias="智能试井(Debug)">
<Cmd ID="3901" Bounds="0,0,2,1" Name="ModelClassify" Alias="模型识别(Debug)" Icon="ModelClassify" />
</Group>
<Group Name="RelativeTool" Alias="相关工具">
@ -213,7 +217,7 @@
<Cmd ID="9201" Bounds="0,1,2,1" Name="MixViscosity" Alias="混合黏度(Debug)" Icon="MixViscosity" Visible="0" />
</Group>-->
<Group Name="Jobs" Alias="成果管理">
<Group Name="Rsts" Alias="成果管理">
<Cmd ID="1008" Bounds="0,0" Name="RstLoad" Alias="加载成果" Icon="LoadJobs" />
<Cmd ID="1009" Bounds="1,0" Name="RstSave" Type="1" ExtNames="RstSaveCur;RstSaveAll" ExtInfo="保存当前成果;保存所有成果" Alias="保存成果" Icon="SaveJobs" />
<Cmd ID="1011" Bounds="0,1,2,1" Name="ToNumerical" Alias="To-数值" Icon="LoadJobs" Visible="0" />
@ -299,7 +303,6 @@
<Cmd ID="5999" Bounds="0,0,2,1" Name="NmDebug" Alias="框架代码调试" Icon="PrepareGrid" />
</Group>
</Tab>
<Tab ID="4" Name="MiniFrac" Alias="小型压裂(F)(Debug)" >
@ -319,14 +322,13 @@
<Cmd ID="4007" Bounds="2,3" Name="CalLogLog" Alias="双对数" Icon="RunOther" />
</Group>
<Group Name="FA" Alias="排量分析">
<Cmd ID="4102" Bounds="0,0,2,1" Name="MiniFrAnalFA" Alias="排量准备" ExtInfo="IPR" Icon="MiniFrAnalFA" />
<Cmd ID="4103" Bounds="0,1" Name="MiniFrFAUp" Alias="阶梯升" Icon="StepUp" />
<Cmd ID="4104" Bounds="1,1" Name="MiniFrFADown" Alias="阶梯降" Icon="StepDown" />
</Group>
<Group Name="Jobs" Alias="成果管理" Visible="0">
<Group Name="Rsts" Alias="成果管理" Visible="0">
<Cmd ID="1008" Bounds="0,0" Name="RstLoad" Alias="加载成果" Icon="LoadJobs" />
<Cmd ID="1009" Bounds="1,0" Name="RstSave" Type="1" ExtNames="RstSaveCur;RstSaveAll" ExtInfo="保存当前成果;保存所有成果" Alias="保存成果" Icon="SaveJobs" />
</Group>
@ -342,7 +344,7 @@
</Tab>
<Tab ID="401" Name="WDT" Alias="产能试井(P)(Debug)" >
<Tab ID="401" Name="WDT" Alias="产能试井(P)" >
<Group Name="AnalEdit" Alias="分析管理" Visible="0">
<Cmd ID="3006" Bounds="0,0" Name="AnalNew" Alias="新建分析" Icon="JobNew" />
@ -360,30 +362,30 @@
<Cmd ID="6104" Bounds="0,3,2,1" Name="WdtModel" Alias="基础模型" Icon="WdtModel" />
</Group>
<Group Name="IPR" Alias="产能解释">
<Cmd ID="6201" Bounds="0,0,2,1" Name="WdtCal" ExtInfo="WDT" Alias="储层产能计算" Icon="WdtCal" />
<Cmd ID="6202" Bounds="0,1,2,1" Name="WdtAnal" Alias="储层产能分析" Icon="WdtAnal" />
<Group Name="WdtAnal" Alias="产能解释">
<Cmd ID="6201" Bounds="0,0,2,1" Name="WdtCal" ExtInfo="WDT" Alias="产能解释" Icon="WdtCal" />
<Cmd ID="6202" Bounds="0,1,2,1" Name="WdtAnal" Alias="产能分析" Icon="WdtAnal" />
</Group>
<Group Name="WdtDataPreprocess" Alias="一体化建模">
<Group Name="WdtDataPreprocess" Alias="一体化建模(Debug)">
<Cmd ID="6102" Bounds="0,0,2,1" Name="WdtMF" Alias="井筒多相流" Icon="WdtMF" />
</Group>
<Group Name="IPR" Alias="一体化分析">
<Group Name="WdtRpc" Alias="一体化分析(Debug)">
<Cmd ID="6301" Bounds="0,0,2,1" Name="WdtGwlcc" Alias="气井携液能力" Icon="WdtGwlcc" />
<Cmd ID="6302" Bounds="0,1,2,1" Name="WdtIpc" Alias="一体化产能分析" Icon="WdtTipc" />
<Cmd ID="6303" Bounds="0,2,2,1" Name="WdtRpc" Alias="合理产能计算" Icon="WdtRpc" />
<Cmd ID="6302" Bounds="0,1,2,1" Name="WdtIpc" Alias="一体化产能分析" Icon="WdtTipc" Visible="0"/>
<Cmd ID="6303" Bounds="0,2,2,1" Name="WdtRpc" Alias="一体化产能计算" Icon="WdtRpc" />
<Cmd ID="6304" Bounds="0,3,2,1" Name="WdtPdp" Alias="生产动态潜力" Icon="WdtPdp" />
<Cmd ID="6305" Bounds="0,4,2,1" Name="WdtExt" Alias="产能试井[扩展]" Icon="WdtExt"/>
<Cmd ID="6305" Bounds="0,4,2,1" Name="WdtExt" Alias="产能试井[扩展]" Icon="WdtExt" Visible="0"/>
</Group>
<Group Name="IPR" Alias="产能计算">
<Group Name="Run" Alias="产能计算">
<Cmd ID="6901" Bounds="0,0,2,1" Name="WdtRun" Alias="计算" ExtInfo="WDT" Icon="RunEx" />
</Group>
<Group Name="Jobs" Alias="成果管理">
<Group Name="Rsts" Alias="成果管理">
<Cmd ID="1008" Bounds="0,0" Name="RstLoad" Alias="加载成果" Icon="LoadJobs" />
<Cmd ID="1009" Bounds="1,0" Name="RstSave" Type="1" ExtNames="RstSaveCur;RstSaveAll" ExtInfo="保存当前成果;保存所有成果" Alias="保存成果" Icon="SaveJobs" />
</Group>
@ -420,7 +422,7 @@
</Group>
<Group Name="AITest" Alias="智能试井(Debug)">
<Cmd ID="3901" Bounds="0,0,2,1" Name="ModelClassify" Alias="模型识别" Icon="ModelClassify" />
<Cmd ID="3901" Bounds="0,0,2,1" Name="ModelClassify" Alias="模型识别(Debug)" Icon="ModelClassify" />
</Group>
<Group Name="RelativeTool" Alias="相关工具" Visible="0">
@ -435,7 +437,7 @@
<Cmd ID="9201" Bounds="0,1,2,1" Name="MixViscosity" Alias="混合黏度(Debug)" Icon="MixViscosity" />
</Group>
<Group Name="Jobs" Alias="成果管理" Visible="0">
<Group Name="Rsts" Alias="成果管理" Visible="0">
<Cmd ID="1008" Bounds="0,0" Name="RstLoad" Alias="加载成果" Icon="LoadJobs" />
<Cmd ID="1009" Bounds="1,0" Name="RstSave" Type="1" ExtNames="RstSaveCur;RstSaveAll" ExtInfo="保存当前成果;保存所有成果" Alias="保存成果" Icon="SaveJobs" />
</Group>
@ -453,32 +455,54 @@
<Tab ID="7" Name="AiTest" Alias="智能试井(I)(Debug)">
<Group Name="Demo1" Alias="样例菜单1">
<Cmd ID="7001" Bounds="0,0,2,1" Name="ActionName1" Alias="临时测试1" Icon="TODO1" />
<Cmd ID="7002" Bounds="0,1,2,1" Name="ActionName2" Alias="临时测试2" Icon="TODO2" />
<Group Name="Demo1" Alias="智能试井">
<Cmd ID="7001" Bounds="0,0,2,1" Name="SmartRecommendation" Alias="智能推荐" Icon="AssisAnal" />
<Cmd ID="7002" Bounds="0,1,2,1" Name="SmartFitting" Alias="智能拟合" Icon="AutoFit" />
<Cmd ID="7003" Bounds="0,2,2,1" Name="SmartFeedbackFitting" Alias="反馈拟合" Icon="QuickMatch" Visible="0" />
</Group>
<Group Name="Demo2" Alias="样例菜单2">
<Group Name="WellTestLLM" Alias="试井大模型" Visible="1">
<Cmd ID="7998" Bounds="0,0,2,1" Name="WellTestLLM" Alias="试井大模型" Icon="aiOpenAI32" Visible="1" />
<Cmd ID="7989" Bounds="0,1,2,1" Name="WellTestModelConfig" Alias="配置模型" Icon="WTAI32" Visible="1" />
</Group>
<Group Name="AiTools" Alias="软件助手" Visible="1">
<Cmd ID="7997" Bounds="0,0,2,1" Name="SoftwareAssistant" Alias="智能解释" Icon="Help32" Visible="1" />
</Group>
<Group Name="AiReport" Alias="智能报告" Visible="1">
<Cmd ID="7988" Bounds="0,0,2,1" Name="AiReportOneClick" Alias="一键报告" Icon="jReport" Visible="1" />
<Cmd ID="7996" Bounds="0,1" Name="AiReportSettings" Alias="报告设置" Icon="jReport" Visible="1" />
<Cmd ID="7995" Bounds="0,2" Name="AiReportDataEdit" Alias="数据修改" Icon="VisibleParameters" Visible="1" />
<Cmd ID="7994" Bounds="0,3" Name="AiReportAnalyze" Alias="生成分析" Icon="aiOpenAI" Visible="1" />
<Cmd ID="7993" Bounds="1,1" Name="AiReportPreview" Alias="报告预览" Icon="PrePrint" Visible="1" />
<Cmd ID="7992" Bounds="1,2" Name="AiReportPrint" Alias="打印/PDF" Icon="Print" Visible="1" />
<Cmd ID="7991" Bounds="1,3" Name="AiReportExportWord" Alias="导出Word" Icon="Word16" Visible="1" />
</Group>
<Group Name="AiDataExtraction" Alias="数据智能拾取" Visible="1">
<Cmd ID="7990" Bounds="0,0,2,1" Name="AiDataExtraction" Alias="数据智能拾取" Icon="AssisAnal" Visible="1" />
</Group>
<Group Name="Demo2" Alias="样例菜单2" Visible="0">
<Cmd ID="7101" Bounds="0,0,2,1" Name="ActionName3" Alias="临时测试3" Icon="TODO3" />
<Cmd ID="7102" Bounds="0,1,2,1" Name="ActionName4" Alias="临时测试4" Icon="TODO4" />
</Group>
<Group Name="Demo3" Alias="样例菜单3">
<Group Name="Demo3" Alias="样例菜单3" Visible="0">
<Cmd ID="7201" Bounds="0,0,2,1" Name="ActionName4" Alias="临时测试5" Icon="TODO5" />
<Cmd ID="7202" Bounds="0,1,2,1" Name="ActionName5" Alias="临时测试6" Icon="TODO6" />
</Group>
<Group Name="NmDebug" Alias="框架测试(Debug)">
<Group Name="NmDebug" Alias="框架测试(Debug)" Visible="0">
<Cmd ID="7999" Bounds="0,0,2,1" Name="NmDebug" Alias="框架代码调试" Icon="PrepareGrid" />
</Group>
</Tab>
<Tab ID="8" Name="Result" Alias="成果管理(R)" >
<Group Name="Jobs" Alias="成果管理">
<Group Name="Rsts" Alias="成果管理">
<Cmd ID="1008" Bounds="0,0" Name="RstLoad" Alias="加载成果" Icon="LoadJobs" />
<Cmd ID="1009" Bounds="1,0" Name="RstSave" Type="1" ExtNames="RstSaveCur;RstSaveAll" ExtInfo="保存当前成果;保存所有成果" Alias="保存成果" Icon="SaveJobs" />
</Group>
@ -541,7 +565,7 @@
<Cmd ID="10008" Bounds="0,2,2,1" Name="UpdateLists" Alias="更新列表(I)" Icon="UpdateLists" />
</Group>
<Group Name="Lang" Alias="语言">
<Group Name="Lang" Alias="语言(Debug)">
<Cmd ID="10009" Bounds="0,0,2,1" Name="LangSwap" Alias="切换语言" Icon="LangSwap" />
</Group>

@ -430,12 +430,10 @@
<Tab ID="7" Name="SysTool" Alias="System Configuration Tools(T)" Visible="0" >
<Group Name="SysTool" Alias="Configuration Tools">
<Cmd ID="7001" Bounds="0,1,2,1" Name="SysTools" Alias="System Configuration Tools" Icon="SysTools" />
</Group>
<Group Name="ModelManager" Alias="Model Management">
<Cmd ID="7002" Bounds="0,0,2,1" Name="ModelScan" Alias="Model View" Icon="ModelScan" />
<Group Name="Demo1" Alias="AI Well Testing">
<Cmd ID="7001" Bounds="0,0,2,1" Name="SmartRecommendation" Alias="Smart Recommendation" Icon="AssisAnal" />
<Cmd ID="7002" Bounds="0,1,2,1" Name="SmartFitting" Alias="Smart Fitting" Icon="AutoFit" />
<Cmd ID="7003" Bounds="0,2,2,1" Name="SmartFeedbackFitting" Alias="Feedback Fitting" Icon="QuickMatch" Visible="0" />
</Group>
</Tab>

@ -189,7 +189,7 @@
<ParaItem Name="Pe" Alias="原始地层压力" LayerMode="1" Unit="MPa" Default="30" Max="500" Min="0.1" Digit="5" Desc="initial formation pressure"/>
<ParaItem Name="Pref" Alias="参考压力" LayerMode="1" Unit="MPa" Default="30" Max="500" Min="0.1" Digit="5" Desc="Reference pressure"/>
<ParaItem Name="Pi" Alias="初始压力" LayerMode="1" Unit="MPa" Default="30" Max="500" Min="0.1" Digit="5" Desc="initial pressure"/>
<ParaItem Name="Pit" Alias="地层压力" LayerMode="1" Unit="MPa" Default="30" Max="100" Min="1e-05" Digit="5" Desc="initial pressure1"/>
<ParaItem Name="Pit" Alias="地层压力" LayerMode="1" Unit="MPa" Default="30" Max="200" Min="1e-05" Digit="5" Desc="initial pressure1"/>
<ParaItem Name="N" Alias="储量" Unit="m^3" Default="100000" Max="1e+30" Min="1e-05" Digit="3" Desc="reserves"/>
<ParaItem Name="gamma" Alias="渗透率模量" Unit="1/MPa" Default="0.001" Max="1" Min="0" Scientific="1" Digit="10" Desc="stress sensitivity coefficient"/>
@ -208,7 +208,7 @@
<ParaGroup Name="" Alias="储层参数">
<ParaItem Name="Transmissibility" Alias="地层系数" LayerMode="1" Unit="mD.m" Default="100" Max="1e+30" Min="0" Digit="6" UseMode="7" Desc="Transmissibility"/>
<ParaItem Name="Rc" Alias="探测半径" LayerMode="1" Unit="m" Default="100" Max="1e+30" Min="0" Digit="3" UseMode="7" Desc="radius of investigation"/>
<ParaItem Name="Rc" Alias="探测半径" Unit="m" UseMode="7" LayerMode="1" Default="100" Max="1e+30" Min="0" Digit="3" Desc="radius of investigation"/>
<ParaItem Name="dt" Alias="测试时间" LayerMode="1" Unit="h" Default="100" Max="1e+30" Min="0" Digit="6" UseMode="7" Desc="test time"/>
<ParaItem Name="K" Alias="渗透率" Unit="mD" Default="5" Max="10000" Min="0" Digit="6" Desc="permeability"/>
@ -339,7 +339,7 @@
<ParaItem Name="lambdavf" Alias="溶孔向裂缝窜流系数" Unit="" Default="0.000001" Max="1" Min="0" Scientific="1" Digit="10" Desc="cross flow coefficient of inner vug"/>
<!--XA"-->
<ParaItem Name="MKu" Alias="流度" Unit="mD/(mPa.s)" Default="5" Max="100000" Min="1e-05" Digit="3" UseMode="7" Desc="mobility"/>
<ParaItem Name="MKu" Alias="流度" Unit="mD/(mPa.s)" UseMode="7" Default="5" Max="100000" Min="1e-05" Digit="3" Desc="mobility"/>
<ParaItem Name="M" Alias="流度比" Unit="" Default="5" Max="1000" Min="0.001" Digit="3" Desc="mobility ratio"/>
<ParaItem Name="ML1" Alias="层一流度比" Unit="" Default="1" Max="1000" Min="0.001" Digit="3" Desc="mobility ratio of layer1"/>
<ParaItem Name="ML2" Alias="层二流度比" Unit="" Default="1" Max="1000" Min="0.001" Digit="3" Desc="mobility ratio of layer2"/>

@ -218,7 +218,7 @@
<FieldInfo eDataType="4" Alias="流量2" FieldName="GaugeDataEx2"/>
<FieldInfo eDataType="4" Alias="流量3" FieldName="GaugeDataEx3"/>
<FieldInfo eDataType="1" Alias="多相" FieldName="MultiPhase" Visible="0"/>
<FieldInfo Alias="阶梯类型" FieldName="StepType"/>
<FieldInfo Alias="阶梯类型" FieldName="StepType" Visible="0"/>
<FieldInfo Alias="创建人" FieldName="Creator"/>
<FieldInfo Alias="创建时间" FieldName="CreatedTime"/>
<FieldInfo Alias="修改人" FieldName="Modifier"/>

@ -13,6 +13,17 @@ public:
public:
// TODO 注意,对于matlab的bessel函数,其实是有 besseli(0, q1, 1) 这种写法的
// 即:存在 第三个参数 1,即修正bessel方式,
// 如果不输入这个参数(或输入 0)时,besseli 直接计算函数值。
// 当自变量 q1 较大时,函数值会急剧增大,很容易超出双精度浮点数的上限(即“上溢”),
// 导致计算结果变为 Inf 而失效
// 如果输入这个参数 1 之后,MATLAB 会计算 缩放后的值,也就是说,它会乘上一个指数衰减因子
// exp(-abs(x)) 来抵消函数本身的高速增长。
// 即:
// besseli(0, q1) → 等价于 besseli(0, q1, 0) → 不乘衰减因子,直接算原函数值。
// besseli(0, q1, 1) → 才乘衰减因子 exp(-abs(q1))
// 贝塞尔函数(基础函数部分)
bool besselI0(double x, double &b);
double getbesselI0(double x);

@ -51,6 +51,9 @@ public:
// 注:该函数目前被yinw算法+xieh算法中均有应用
static double besselk(double nu, double z);
// 20260908 xieh 再次针对震荡情形,对besselk函数做了优化升级
static double besselk_opt(double nu, double z);
// 伽马函数 Gamma(z)
static double gamma(double z);

@ -0,0 +1,74 @@
#pragma once
#include <QApplication>
#include <IxSystem.h>
#include "ZxDynamic.h"
#include "iAppBase_global.h"
QT_BEGIN_NAMESPACE
class QSettings;
class QTimer;
class QAction;
QT_END_NAMESPACE
class ZxIdleEventFilter;
// 存放全局对象/路径等信息
class I_APPBASE_EXPORT ZxSystem
: public QObject
, virtual public IxSystem
, virtual public IxDynObj
{
Q_OBJECT
ZX_DECLARE_DYNAMIC
public:
ZxSystem();
~ZxSystem();
// 初始化
virtual bool init();
// 配置载体
virtual QSettings* getSettings(const QString& sModule, \
bool bResetIfExists = false);
// 版本
virtual QString getAppVer() const;
// 图标加载(缓存)
virtual QIcon loadIcon(const QString& name, int wh = -1) const;
// 加载css
virtual void loadCss(const QString& cssFile = "", \
QApplication* pApp = nullptr) const;
private slots:
// void onAppDestroyed();
void onAppAboutToQuit();
private:
void onIdle();
private:
// 配置载体
QMap<QString, QSettings*> m_mapSettings;
// 空闲处理
//QObject* m_pIdleEventFilter;
ZxIdleEventFilter* m_pIdleEventFilter;
bool m_bInited;
friend class ZxModuleInfo;
friend class ZxIdleEventFilter;
};

@ -1,11 +1,17 @@
#pragma once
#include <QObject>
#include <QTextEdit>
#include "Defines.h"
#include "iLogs_global.h"
class I_LOGSSHARED_EXPORT zxLogInstance
// 日志单例
// 202609020 改为QObject 以支持跨线程写入
class I_LOGSSHARED_EXPORT zxLogInstance : public QObject
{
Q_OBJECT
public:
// 获取对象,单例模式
@ -22,7 +28,7 @@ public:
void writeLogI(QString sLog);
void writeLogF(QString sLog);
void writeLogW(QString sLog);
void writeLog(const QString& msg);
void writeLog(const QString& msg);
void openLog(); //打开日志
void preSaveLog(); //当大于16M时,备份文件
@ -40,6 +46,36 @@ public:
// 该函数返回的结果是ini中配置的AppDescEN,如CNPC-TEST
QString getAppDescEN();
signals:
///////////////////////////////////////////////////////
// 由工作线程 emit,交由 MainWindow 主线程执行
// 参数只用基础类型,确保跨线程安全
// 追加日志内容
void sigAppendLog(const QString& msg, \
const QColor& color);
// 清空日志内容
void sigClearLog();
///////////////////////////////////////////////////////
private slots:
///////////////////////////////////////////////////////
// 以下槽函数在 zxLogInstance 所属线程(MainWindow 主线程)执行,
// 在这里才真正操作 QTextEdit
// 追加日志内容
void onAppendLog(const QString& msg, \
const QColor& color);
// 清空日志内容
void onClearLog();
///////////////////////////////////////////////////////
private:
zxLogInstance();
@ -55,7 +91,3 @@ private:
QString m_sAppDescCN;
QString m_sAppDescEN;
};

@ -16,7 +16,7 @@ public:
static ZxDbSimple* getInstance();
// 关闭
static void closeDb();
static void exit();
// 设置路径,如果_s_ini非空,则从ini文件获取
static void setURL(QString _s_url,
@ -24,15 +24,18 @@ public:
bool bForceReopen = false);
// 获得数据库连接
virtual QSqlDatabase getSimpleDb();
virtual QSqlDatabase& getSimpleDb();
virtual QSqlDatabase* getSimpleDbPtr();
// 是否数据载体(链接)
virtual void releaseDb();
#ifdef _SINGLE_WELL_MODE_
// 针对湛江模式,启用一口井一个db文件模式
bool isDbExtActivated();
void setDbUrlExt(QString url,
bool bForceReopen = false);
virtual QSqlDatabase getSimpleDbExt();
virtual QSqlDatabase& getSimpleDbExt();
virtual QSqlDatabase* getSimpleDbExtPtr();
#endif
@ -41,6 +44,9 @@ public:
void connCommit(QString connectionStr = "");
void connRollback(QString connectionStr = "");
// 尝试长路径,暂未成功
static QString toUncPath(const QString& s);
public:
ZxDbSimple();

@ -163,6 +163,8 @@ protected:
QToolButton* m_pGroupBt;
//内容区容器(折叠时隐藏,展开时显示)
QWidget* m_pContentWx;
// 内容区原先所在的布局,弹窗关闭后需放回原位置。
QLayout* m_pContentHostLayout;
//主布局
QVBoxLayout* m_pLayoutMain;
@ -179,4 +181,6 @@ protected:
// 弹出过程中标志,防止 setParent 引起的 hide 触发恢复逻辑
bool m_bPopupShowing;
int m_nContentMinHeight;
int m_nContentMaxHeight;
};

@ -13,7 +13,7 @@ class I_GUI_RIBBON_EXPORT iWxGroupBar : public QWidget
public:
explicit iWxGroupBar(iRibbonXmlGroup* pGroupXml = NULL, \
explicit iWxGroupBar(iRibbonXmlGroup* pGroupXml = nullptr, \
QWidget *parent = 0);
~iWxGroupBar();
@ -32,6 +32,9 @@ public:
// 返回该 Group 内创建的所有子控件
QVector<QWidget*>& getSubCtrls() ;
//得到里面控件个数是否需要折叠按钮
bool bCollapse();
public:
//初始化
virtual void initUI();
@ -45,6 +48,10 @@ protected:
void initGroupBt();
//初始化控件上部分(主要功能区)
void initCtrlTopUI();
//两种布局
void initCtrlTopGridUI();//网格
void initCtrlTopHorUI(); //水平
//初始化控件下部分(标签区+折叠按钮)
void initCtrlBotUI();
@ -52,7 +59,6 @@ protected:
QWidget* createTabBy(iRibbonXmlTab* pTab);
QWidget* createGroupBy(iRibbonXmlGroup* pGroup);
QWidget* createCmdBy(iRibbonXmlCmd* pCmd, bool bAdd = true);
QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);

@ -40,6 +40,13 @@ public:
bool fillUIOfRecentProjects(); //更新最近打开菜单项
bool removeFromRecentProjects(QString sUrl);
// 对于
/// @brief 设置某个Tab下某个Group是否
/// @param sID菜单ID
/// @param sName菜单名称
//void setTabGroupCollapse(QString sID, QString sName);
protected:
// paint
@ -134,7 +141,6 @@ protected:
QString m_sAppDescCN;
QString m_sAppDescEN;
// 最近打开项目
enum { MaxRecentProjects = 5 };
QAction* m_oRecentProjectActs[MaxRecentProjects];

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save