This commit is contained in:
crqiqi77 2026-04-24 15:58:24 +08:00
commit 474c5dd007
14 changed files with 725 additions and 160 deletions

View File

@ -278,6 +278,9 @@ signals:
//改变井斜方位图属性
void sig_changeDenvProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//改变多臂井径属性
void sig_changeMCalsProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
//
//void sig_addImageToPlot(QMyCustomPlot* customPlot, double left_Low, double right_Hight, QString imagePath);

View File

@ -10,14 +10,14 @@
extern double GetData(int RepCode,char *buffer);
CDrawNrad::CDrawNrad(QMyCustomPlot *myCustomPlot, QString strSlfName, QString csCurve)
CDrawNrad::CDrawNrad(QMyCustomPlot *myCustomPlot)
{
m_myCustomPlot = myCustomPlot;
//
m_PointNum=0;
m_LeftVal=30;
m_RightVal=65;
m_LeftVal=30;//最小井径
m_RightVal=65;//最大井径
m_crHorzLine=qRgb(0,0,0);
m_crVertLine=qRgb(0,0,0);
@ -25,8 +25,10 @@ CDrawNrad::CDrawNrad(QMyCustomPlot *myCustomPlot, QString strSlfName, QString cs
m_nVertLineWidth = 1;
m_nHorzGrid = 0;
m_nArm = 36;
m_iStartArmPos=1;
m_iEndArmPos=11;
m_iStartArmPos=1;//左边井径序号
m_iEndArmPos=11; //右边井径序号
m_nFrac = 0;
m_D3Angle = 10;
@ -40,8 +42,8 @@ CDrawNrad::CDrawNrad(QMyCustomPlot *myCustomPlot, QString strSlfName, QString cs
m_flVFactor = 0.8; //椭圆纵向半径占横向半径比例
m_nVertGrid = 20; //纵向网格间隔
ReadData(strSlfName, csCurve);
DrawNrad(strSlfName, csCurve);
// ReadData(strSlfName, csCurve);
// DrawNrad(strSlfName, csCurve);
}
CDrawNrad::~CDrawNrad(void)
@ -120,6 +122,12 @@ void CDrawNrad::DrawNrad(QString strSlfName, QString csCurve)
// 初始化
int iMyWidth = m_myCustomPlot->axisRect(0)->width();
//重置范围
float vmax = iMyWidth;
float vmin = 0;
m_myCustomPlot->yAxis->setRange(vmin, vmax);
centerX = (iMyWidth+0)/2.0;
centerY = 0;
nWidth = iMyWidth;

View File

@ -10,7 +10,7 @@ class CDrawNrad:public QObject
{
Q_OBJECT
public:
CDrawNrad(QMyCustomPlot *myCustomPlot, QString strSlfName, QString csCurve);
CDrawNrad(QMyCustomPlot *myCustomPlot);
virtual ~CDrawNrad(void);
public:
@ -19,12 +19,12 @@ public:
public:
// 以下变量需保存在模板里
float m_flVFactor; // 椭圆纵向半径占横向半径比例
float m_flWjMaxFactor; //外径最大位置占道的比例
float m_flWjMinFactor; //外径最小位置占道的比例
float m_nVertGrid; // 深度方向每隔多少个采样点绘制一个网格
int m_nHorzStep; // 旋转增量,最小0最大:20
int m_nHorzGrid; // 井径曲线间网格数
float m_flVFactor; // 椭圆纵向半径占横向半径比例
float m_flWjMaxFactor; //外径最大位置占道的比例
float m_flWjMinFactor; //外径最小位置占道的比例
float m_nVertGrid; // 纵向网格间隔 深度方向每隔多少个采样点绘制一个网格
int m_nHorzStep; // 旋转井径增量,最小0最大:20
int m_nHorzGrid; // 井径曲线间网格数
QColor m_crHorzLine, m_crVertLine; // 网格纵、横线颜色
int m_nHorzLineWidth, m_nVertLineWidth;// 网格纵、横线宽度
int m_nArm, m_nColorNum;//
@ -39,8 +39,8 @@ public:
float m_flRlev2; //二维曲线采样间隔
int m_nSamples;
int m_PointNum;
float m_LeftVal; //左刻度
float m_RightVal; //右刻度
float m_LeftVal; //最小井径
float m_RightVal; //最大井径
Slf_WAVE WaveInfo; //波列基本信息
float m_SDep,m_EDep,m_Rlev;
};

View File

@ -2392,6 +2392,13 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
//
changedDenvProperty(m_propertyData[pProperty], variant);
}
else if (m_strCurrentProperty == MCals_Property)//多臂井径
{
//先处理通用属性
CommonPropertyChanged(pProperty, variant);
//
changedMCalsProperty(m_propertyData[pProperty], variant);
}
else if (m_strCurrentProperty == DCA_PROPERTY)//井斜方位图
{
// 先处理通用属性
@ -2399,7 +2406,6 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
changedDcaProperty(m_propertyData[pProperty], variant);
}
// changedDcaProperty
}
void PropertyWidget::SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle)
@ -3224,27 +3230,32 @@ void PropertyWidget::initProperty(FormInfo *formInfo)
{
//蝌蚪图
this->initKedouProperty(formInfo);
}
else if (m_strLineName == "GANZHUANG.LINE")
{
//杆状图
this->initGanzhuangProperty(formInfo);
}
else if (m_strLineName == "JINGYANKUATA.LINE")
{
//井眼垮塌矢量图
this->initJyktProperty(formInfo);
}
else if (m_strLineName == "XIEFANGWEI.LINE")
{
//井斜方位图
this->initDenvProperty(formInfo);
}
}
else
{
this->initTableProperty(formInfo);
}
}
else if (formInfo->m_strType == "ganzhuangtuObject")
{
//杆状图
this->initGanzhuangProperty(formInfo);
}
else if (formInfo->m_strType == "JyktObject")
{
//井眼垮塌矢量图
this->initJyktProperty(formInfo);
}
else if (formInfo->m_strType == "DenvObject")
{
//井斜方位图
this->initDenvProperty(formInfo);
}
else if (formInfo->m_strType == "MCalsObject")
{
//多臂井径
this->initMCalsProperty(formInfo);
}
else if (formInfo->m_strType == "depthObject")
{
this->initDepthProperty(formInfo);
@ -5248,7 +5259,7 @@ void PropertyWidget::changedRoseProperty(QString strProperty, QVariant varVal)
emit CallManage::getInstance()->sig_changeRoseProperty(variantMap);
}
}
//蝌蚪图
void PropertyWidget::initKedouProperty(FormInfo *formInfo)
{
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
@ -5290,7 +5301,7 @@ void PropertyWidget::initKedouProperty(FormInfo *formInfo)
m_strCurrentProperty = Kedou_Property;
}
//蝌蚪图
void PropertyWidget::changedKedouProperty(QString strProperty, QVariant varVal)
{
bool flag = false;
@ -5495,7 +5506,7 @@ void PropertyWidget::changedKedouProperty(QString strProperty, QVariant varVal)
emit CallManage::getInstance()->sig_changeKedouProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
}
}
//杆状图
void PropertyWidget::initGanzhuangProperty(FormInfo *formInfo)
{
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
@ -5521,7 +5532,7 @@ void PropertyWidget::initGanzhuangProperty(FormInfo *formInfo)
m_strCurrentProperty = Ganzhuang_Property;
}
//杆状图
void PropertyWidget::changedGanzhuangProperty(QString strProperty, QVariant varVal)
{
bool flag = false;
@ -5596,7 +5607,7 @@ void PropertyWidget::changedGanzhuangProperty(QString strProperty, QVariant varV
emit CallManage::getInstance()->sig_changeGanzhuangProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
}
}
//井眼垮塌矢量图
void PropertyWidget::initJyktProperty(FormInfo *formInfo)
{
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
@ -5621,7 +5632,7 @@ void PropertyWidget::initJyktProperty(FormInfo *formInfo)
m_strCurrentProperty = Jykt_Property;
}
//井眼垮塌矢量图
void PropertyWidget::changedJyktProperty(QString strProperty, QVariant varVal)
{
bool flag = false;
@ -5707,7 +5718,7 @@ void PropertyWidget::changedJyktProperty(QString strProperty, QVariant varVal)
}
}
//井斜方位图
void PropertyWidget::initDenvProperty(FormInfo *formInfo)
{
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
@ -5732,7 +5743,7 @@ void PropertyWidget::initDenvProperty(FormInfo *formInfo)
m_strCurrentProperty = Denv_Property;
}
//井斜方位图
void PropertyWidget::changedDenvProperty(QString strProperty, QVariant varVal)
{
bool flag = false;
@ -5812,7 +5823,150 @@ void PropertyWidget::changedDenvProperty(QString strProperty, QVariant varVal)
emit CallManage::getInstance()->sig_changeDenvProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
}
}
//多臂井径
void PropertyWidget::initMCalsProperty(FormInfo *formInfo)
{
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
_CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String);
//
_CreateVariantPropertyItem("网格图", "最小井径", formInfo->m_MinVal, QVariant::Double);
_CreateVariantPropertyItem("网格图", "最大井径", formInfo->m_MaxVal, QVariant::Double);
_CreateVariantPropertyItem("网格图", "左边井径序号", formInfo->m_iStartArmPos, QVariant::Int);
_CreateVariantPropertyItem("网格图", "右边井径序号", formInfo->m_iEndArmPos, QVariant::Int);
_CreateVariantPropertyItem("网格图", "最小外径占道比例", formInfo->m_MinRatio, QVariant::Double);
_CreateVariantPropertyItem("网格图", "最大外径占道比例", formInfo->m_MaxRatio, QVariant::Double);
_CreateVariantPropertyItem("网格图", "纵向网格间隔", formInfo->m_nVertGrid, QVariant::Int);
_CreateVariantPropertyItem("网格图", "井径曲线间网格", formInfo->m_nHorzGrid, QVariant::Int);
_CreateVariantPropertyItem("网格图", "旋转井径增量", formInfo->m_nHorzStep, QVariant::Int);
_CreateVariantPropertyItem("网格图", "井柱椭圆纵横半径比", formInfo->m_flVFactor, QVariant::Double);
_CreateVariantPropertyItem("网格图", "横格线宽度", formInfo->m_nHLineWidth, QVariant::Int);
_CreateVariantPropertyItem("网格图", "横格线颜色", formInfo->m_HLineColor, QVariant::Color);
_CreateVariantPropertyItem("网格图", "纵格线宽度", formInfo->m_nVLineWidth, QVariant::Int);
_CreateVariantPropertyItem("网格图", "纵格线颜色", formInfo->m_VLineColor, QVariant::Color);
m_strCurrentProperty = MCals_Property;
}
//多臂井径
void PropertyWidget::changedMCalsProperty(QString strProperty, QVariant varVal)
{
bool flag = false;
if("选择井曲线" == strProperty)
{
QString sFilePath = varVal.toString();
if(sFilePath.indexOf("@")>-1)
{
int ind=sFilePath.indexOf("@");
QString strLineName = sFilePath.left(ind);
sFilePath=sFilePath.mid(ind+1);
sFilePath.trimmed();
{
QString strOldLineName = m_formInfo->m_strLineName;
QString strOldSlfName = m_formInfo->m_strSlfName;
//暂时不允许改变slf井次名称不然不在同一口井绘制
if(strOldSlfName != sFilePath)
{
QMessageBox::information(nullptr,"提示","不允许改变slf井次名称");
return;
}
//名称不变
if(strOldLineName == strLineName)
{
return;
}
if("" == strLineName)
{
return;
}
//
m_formInfo->m_strLineName = strLineName;
//m_formInfo->m_strSlfName = sFilePath;
m_formInfo->update();
//flag = true;
//此处需要使用strOldLineName
emit CallManage::getInstance()->sig_changeMCalsProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, strOldLineName, strLineName);
return;
}
}
}
// 网格图
else if ("最小井径" == strProperty)
{
this->m_formInfo->m_MinVal = varVal.toDouble();
flag = true;
}
else if ("最大井径" == strProperty)
{
this->m_formInfo->m_MaxVal = varVal.toDouble();
flag = true;
}
else if ("左边井径序号" == strProperty)
{
this->m_formInfo->m_iStartArmPos = varVal.toInt();
flag = true;
}
else if ("右边井径序号" == strProperty)
{
this->m_formInfo->m_iEndArmPos = varVal.toInt();
flag = true;
}
else if ("最小外径占道比例" == strProperty)
{
this->m_formInfo->m_MinRatio = varVal.toDouble();
flag = true;
}
else if ("最大外径占道比例" == strProperty)
{
this->m_formInfo->m_MaxRatio = varVal.toDouble();
flag = true;
}
else if ("纵向网格间隔" == strProperty)
{
this->m_formInfo->m_nVertGrid = varVal.toInt();
flag = true;
}
else if ("井径曲线间网格" == strProperty)
{
this->m_formInfo->m_nHorzGrid = varVal.toInt();
flag = true;
}
else if ("旋转井径增量" == strProperty)
{
this->m_formInfo->m_nHorzStep = varVal.toInt();
flag = true;
}
else if ("井柱椭圆纵横半径比" == strProperty)
{
this->m_formInfo->m_flVFactor = varVal.toDouble();
flag = true;
}
else if ("横格线宽度" == strProperty)
{
this->m_formInfo->m_nHLineWidth = varVal.toInt();
flag = true;
}
else if ("横格线颜色" == strProperty)
{
this->m_formInfo->m_HLineColor = varVal.value<QColor>();
flag = true;
}
else if ("纵格线宽度" == strProperty)
{
this->m_formInfo->m_nVLineWidth = varVal.toInt();
flag = true;
}
else if ("纵格线颜色" == strProperty)
{
this->m_formInfo->m_VLineColor = varVal.value<QColor>();
flag = true;
}
if(flag)
{
emit CallManage::getInstance()->sig_changeMCalsProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, m_formInfo->m_strLineName);
}
}
void PropertyWidget::initDcaProperty(FormInfo *formInfo)
{
// 数据
@ -5833,6 +5987,7 @@ void PropertyWidget::initDcaProperty(FormInfo *formInfo)
m_strCurrentProperty = DCA_PROPERTY;
}
void PropertyWidget::changedDcaProperty(QString strProperty, QVariant varVal)
{
bool flag = false;
@ -5909,3 +6064,8 @@ void PropertyWidget::changedDcaProperty(QString strProperty, QVariant varVal)
}

View File

@ -83,6 +83,8 @@
#define Jykt_Property "Jykt_Property" //井眼垮塌矢量图
#define Denv_Property "Denv_Property" //井斜方位图
#define MCals_Property "MCals_Property" //多臂井径
#pragma execution_character_set("utf-8")
/**
@ -282,6 +284,10 @@ public:
void initDenvProperty(FormInfo *formInfo);
void changedDenvProperty(QString strProName, QVariant val);
//多臂井径
void initMCalsProperty(FormInfo *formInfo);
void changedMCalsProperty(QString strProName, QVariant val);
public slots:
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);

View File

@ -10,7 +10,6 @@
#include <QtMath>
#include "Gradient.h"
#include "PickFrac.h"
#include "DrawNrad.h"
#include "formline.h"
#include "PropertyWidget.h"
#include "DrawTvd.h"
@ -537,12 +536,18 @@ void FormDraw::DisplayLines(QJsonArray linesArray)
// 岩心照片
displayImageData(lineObjInfo);
}
else if (strLineName == "FRAC_HOLE.TABLE" || strLineName == "GANZHUANG.LINE" || strLineName == "JINGYANKUATA.LINE" || strLineName == "XIEFANGWEI.LINE")
else if (strLineName == "FRAC_HOLE.TABLE")
{
// 蝌蚪图、杆状图、井眼垮塌矢量图、井斜方位图
// 蝌蚪图
DisplayKedouAndOthers_One(lineObjInfo);
}
}
else if (strType == "ganzhuangtuObject"
|| strType == "JyktObject" || strType == "DenvObject")
{
// 杆状图、井眼垮塌矢量图、井斜方位图
DisplayKedouAndOthers_One(lineObjInfo);
}
else if (strType == "JiegutextObject")
{
//气测/FMT/射孔/文本
@ -569,6 +574,11 @@ void FormDraw::DisplayLines(QJsonArray linesArray)
// 频率统计图
DisplayType_One(lineObjInfo);
}
else if (strType == "MCalsObject")
{
// 多臂井径属性
DisplayMCals_One(lineObjInfo);
}
else
{
DisplayType_One(lineObjInfo);
@ -1200,6 +1210,79 @@ void FormDraw::DisplayKedouAndOthers_One(QJsonObject lineObjInfo)
}
}
//多臂井径
void FormDraw::DisplayMCals_One(QJsonObject lineObjInfo)
{
QString strSlfName = "";
QString strWellName = "";
QString strLineName = "";
QString strAliasName = "";//显示名称
QFont curveNameFont("微软雅黑", 10); // 名称字体
QColor lineColor = QColor(0, 0, 0);//颜色
if (lineObjInfo.contains("SlfName"))
{
QJsonValue value = lineObjInfo.value("SlfName");
if (value.isString()) {
strSlfName = value.toString();
//qDebug() << "SlfName:" << strSlfName;
//
QString slffilename = QString("");
int ind = strSlfName.lastIndexOf('\\');
int ind2 = strSlfName.lastIndexOf('/');
if (ind2 > ind) ind = ind2;
if (ind > -1) {
slffilename = strSlfName.mid(ind + 1);
strSlfName = slffilename;
}
}
}
if (lineObjInfo.contains("WellName"))
{
QJsonValue value = lineObjInfo.value("WellName");
if (value.isString()) {
strWellName = value.toString();
//qDebug() << "WellName:" << strWellName;
}
}
if (lineObjInfo.contains("LineName"))
{
QJsonValue value = lineObjInfo.value("LineName");
if (value.isString()) {
strLineName = value.toString();
//qDebug() << "LineName:" << strLineName;
}
}
if (lineObjInfo.contains("AliasName"))
{
QJsonValue value = lineObjInfo.value("AliasName");
if (value.isString()) {
strAliasName = value.toString();
//qDebug() << "strAliasName:" << strAliasName;
}
}
//字体
if (lineObjInfo.contains("curveNameFont"))
{
QJsonValue value = lineObjInfo.value("curveNameFont");
if (value.isString()) {
curveNameFont.fromString(value.toString());
//qDebug() << "strUnit:" << strUnit;
}
}
QString folderPath = GetLogdataPath();
folderPath = folderPath + g_prjname;
strSlfName = folderPath + "/" + "#" + strWellName + "/" + strSlfName;
if (strLineName != "")
{
//多臂井径
this->addMCals(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, lineObjInfo);
}
}
//气测/FMT/射孔/文本
void FormDraw::DisplayJiegutext_One(QJsonObject lineObjInfo)
{
@ -3123,6 +3206,50 @@ QMyCustomPlot* FormDraw::addKedouAndOthers(QString strUuid, QString strSlfName,
return curv;
}
QMyCustomPlot* FormDraw::addMCals(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QJsonObject listOtherProperty)
{
//井名&道名不一致
if (strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName)
{
}
else
{
return NULL;
}
if (m_listLineName.contains(strLineName))
{
qDebug() << "FormDraw strLineName already exist! " << strLineName;
return NULL;
}
//
QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName);
//绑定m_formTrack方便关联formInfo
curv->m_formTrack = m_formTrack;
curv->setDepthY(m_iY1, m_iY2);
curv->initGeometry(m_strUuid, m_iScale, m_nTrackW);
curv->show();
QString strAliasName = "多臂井径";
QColor newlineColor=QColor(0,0,0);
// 显示名称
if (listOtherProperty.contains("AliasName"))
{
QJsonValue value = listOtherProperty.value("AliasName");
if (value.isString()) {
strAliasName = value.toString();
}
}
//
initMCals(curv, strSlfName, strLineName, strAliasName, newlineColor, listOtherProperty);
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
//
m_listLineName.push_back(strLineName);
return curv;
}
void FormDraw::s_addLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName)
{
//井名&道名不一致
@ -3289,7 +3416,7 @@ void FormDraw::s_mouseWheel(QWheelEvent *event)
void FormDraw::setColWidth(float fNewWidth)
{
m_nTrackW = fNewWidth;
fNewWidth = fNewWidth * g_dPixelPerCm;
//fNewWidth = fNewWidth * g_dPixelPerCm;
// 获取当前widget的所有子控件
const QObjectList &children = this->children();
//判断为空
@ -4249,47 +4376,70 @@ void FormDraw::s_addMCals(QString strUuid, QString strSlfName, QString strWellNa
QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName);
//绑定m_formTrack方便关联formInfo
curv->m_formTrack = m_formTrack;
curv->m_strUuid = m_strUuid;
curv->setDepthY(m_iY1, m_iY2);
curv->initGeometry(m_strUuid, m_iScale, g_iOneWidth);
curv->show();
//-------------------
int iMyWidth = curv->axisRect(0)->width();
m_LeftVal = 0;
m_RightVal = iMyWidth;
float vmax = iMyWidth;
float vmin = 0;
curv->setScaleX(vmin, vmax);
curv->setDepthY(m_iY1, m_iY2);
curv->initGeometry(m_strUuid, m_iScale, g_iOneWidth);
curv->axisRect()->setupFullAxesBox();
//
curv->xAxis->ticker()->setTickCount(10);//x个主刻度
curv->yAxis->ticker()->setTickCount(60);//y个主刻度
//对调XY轴在最前面设置
QCPAxis *yAxis = curv->yAxis;
QCPAxis *xAxis = curv->xAxis;
curv->xAxis = yAxis;
curv->yAxis = xAxis;
//多臂井径
QString strWaveName = "FCA2";
CDrawNrad *drawNrad = new CDrawNrad(curv, strSlfName, strWaveName);
initMCals(curv, strSlfName, strLineName);
//
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
//
m_listLineName.push_back(strLineName);
}
QString strAliasName = "多臂井径";
//多臂井径
void FormDraw::initMCals(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QJsonObject listOtherProperty)
{
//隐藏网格
widget->xAxis->grid()->setVisible(false);
widget->yAxis->grid()->setVisible(false);
//
widget->m_bRowGridVisible = false;
widget->m_bColGridVisible = false;
//-------------------
int iMyWidth = widget->axisRect(0)->width();
m_LeftVal = 0;
m_RightVal = iMyWidth;
float vmax = iMyWidth;
float vmin = 0;
widget->setScaleX(vmin, vmax);
widget->axisRect()->setupFullAxesBox();
//
widget->xAxis->ticker()->setTickCount(10);//x个主刻度
widget->yAxis->ticker()->setTickCount(60);//y个主刻度
//对调XY轴在最前面设置
QCPAxis *yAxis = widget->yAxis;
QCPAxis *xAxis = widget->xAxis;
widget->xAxis = yAxis;
widget->yAxis = xAxis;
//隐藏刻度
widget->xAxis->setTicks(false);
widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false);
widget->yAxis2->setTicks(false);
widget->xAxis->setVisible(false);
widget->xAxis2->setVisible(false);
widget->yAxis->setVisible(false);
widget->yAxis2->setVisible(false);
//-----------------------------------
QString strUnit = "";
QColor newlineColor=QColor(0,0,0);
double width=2;
QString strScaleType = "";
//道-对象
m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strWaveName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "MCalsObject");
FormInfo* pInfo = m_formTrack->AddMCals(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "MCalsObject", listOtherProperty);
//多臂井径
widget->Draw_MCals(strLineName, strLineName);
}
//套管组件
@ -5172,7 +5322,7 @@ void FormDraw::initGanzhuang(QMyCustomPlot *widget, QString strSlfName, QString
strUnit = listOtherProperty["Unit"].toString(); // 单位
}
//道-对象
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "ganzhuangtuObject", listOtherProperty);
//杆状图
widget->Draw_Ganzhuang();
@ -5230,7 +5380,7 @@ void FormDraw::initJykt(QMyCustomPlot *widget, QString strSlfName, QString strLi
strUnit = listOtherProperty["Unit"].toString(); // 单位
}
//道-对象
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "JyktObject", listOtherProperty);
//杆状图
widget->Draw_Jykt();
@ -5288,7 +5438,7 @@ void FormDraw::initDenv(QMyCustomPlot *widget, QString strSlfName, QString strLi
strUnit = listOtherProperty["Unit"].toString(); // 单位
}
//道-对象
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "DenvObject", listOtherProperty);
//杆状图
widget->Draw_Denv();

View File

@ -48,6 +48,8 @@ public:
void DisplayTable_One(QJsonObject lineObjInfo);
//蝌蚪图
void DisplayKedouAndOthers_One(QJsonObject lineObjInfo);
//多臂井径
void DisplayMCals_One(QJsonObject lineObjInfo);
//气测/FMT/射孔/文本
void DisplayJiegutext_One(QJsonObject lineObjInfo);
@ -94,6 +96,10 @@ protected:
QMyCustomPlot* addKedouAndOthers(QString strUuid, QString strSlfName, QString strWellName,
QString strTrackName, QString strLineName, QJsonObject listOtherProperty={});
//多臂井径
QMyCustomPlot* addMCals(QString strUuid, QString strSlfName, QString strWellName,
QString strTrackName, QString strLineName, QJsonObject listOtherProperty={});
public slots:
void dragEnterEvent(QDragEnterEvent* event);
void dragMoveEvent(QDragMoveEvent* event);
@ -157,6 +163,9 @@ public:
//井斜方位图
void initDenv(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "井斜方位图", QColor newlineColor=QColor(0,0,0), QJsonObject listOtherProperty={});
//多臂井径
void initMCals(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "多臂井径", QColor newlineColor=QColor(0,0,0), QJsonObject listOtherProperty={});
void ReadFracDef();
void ReadData(QString strSlfName, QString strLineName);//表格
void ReadData(QString strSlfName, QString strLineName, int iCurve, Slf_CURVE *curve);//曲线

View File

@ -239,7 +239,7 @@ void FormInfo::initProperty_Ganzhuang(QJsonObject obj)
else
{
QString strType = obj.value("Type").toString();
if ("tableObject" == strType)
if ("ganzhuangtuObject" == strType)
{
// 字体
// 名称
@ -295,7 +295,7 @@ void FormInfo::initProperty_Jykt(QJsonObject obj)
else
{
QString strType = obj.value("Type").toString();
if ("tableObject" == strType)
if ("JyktObject" == strType)
{
// 字体
// 名称
@ -356,7 +356,7 @@ void FormInfo::initProperty_Denv(QJsonObject obj)
else
{
QString strType = obj.value("Type").toString();
if ("tableObject" == strType)
if ("DenvObject" == strType)
{
// 字体
// 名称
@ -389,6 +389,56 @@ void FormInfo::initProperty_Denv(QJsonObject obj)
}
}
void FormInfo::initProperty_MCals(QJsonObject obj)
{
if(obj.isEmpty())
{
m_MinVal = 30;//最小井径
m_MaxVal = 65;//最大井径
m_iStartArmPos = 1; //左边井径序号
m_iEndArmPos = 20;//右边井径序号
m_MinRatio = 0.5; //最小外径占道比例
m_MaxRatio = 0.6;//最大外径占道比例
m_nVertGrid = 20; //纵向网格间隔
m_nHorzGrid = 0;//井径曲线间网格
m_nHorzStep = 5;//旋转井径增量
m_flVFactor = 0.8; //井柱椭圆纵横半径比
m_nHLineWidth =1;
m_nVLineWidth =1;
}
else
{
QString strType = obj.value("Type").toString();
if ("waveObject" == strType)
{
// 字体
// 名称
this->m_curveNameFont.fromString(obj["curveNameFont"].toString());
// 单位
this->m_strUnitFont.fromString(obj["m_strUnitFont"].toString());
// 刻度
this->m_pl_fontScale.fromString(obj["m_pl_fontScale"].toString());
m_MinVal = obj["m_MinVal"].toDouble();//最小井径
m_MaxVal = obj["m_MaxVal"].toDouble();//最大井径
m_iStartArmPos = obj["m_iStartArmPos"].toInt(); //左边井径序号
m_iEndArmPos = obj["m_iEndArmPos"].toInt(); //右边井径序号
m_MinRatio =obj["m_MinRatio"].toDouble(); //最小外径占道比例
m_MaxRatio = obj["m_MaxRatio"].toDouble();//最大外径占道比例
m_nVertGrid = obj["m_nVertGrid"].toInt(); //纵向网格间隔
m_nHorzGrid = obj["m_nHorzGrid"].toInt();//井径曲线间网格
m_nHorzStep = obj["m_nHorzStep"].toInt();//旋转井径增量
m_flVFactor = obj["m_flVFactor"].toDouble(); //井柱椭圆纵横半径比
m_nHLineWidth = obj["m_nHLineWidth"].toInt();
m_HLineColor.setNamedColor(obj["m_HLineColor"].toString());
m_nVLineWidth = obj["m_nVLineWidth"].toInt();
m_VLineColor.setNamedColor(obj["m_VLineColor"].toString());
}
}
}
void FormInfo::initProperty(QJsonObject obj)
{
m_vmin = obj.value("vmin").toDouble();
@ -733,82 +783,7 @@ QJsonObject FormInfo::makeJson()
rootObj["m_pl_custom1"] = this->m_pl_custom1; // 自定义1
rootObj["m_pl_custom2"] = this->m_pl_custom2; // 自定义2
return rootObj;
}
else if (m_strLineName == "GANZHUANG.LINE")
{
//杆状图
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
// 曲线选择
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
rootObj["m_pl_inclinationCurve"] = this->m_pl_inclinationCurve; // 倾角曲线
rootObj["m_pl_GradCurve"] = this->m_pl_GradCurve; // 可信度曲线
//杆
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
// 显示控制
rootObj["m_pl_minInclination"] = this->m_pl_minInclination; // 最小倾角
rootObj["m_pl_maxInclination"] = this->m_pl_maxInclination; // 最大倾角
rootObj["m_flGrad1"] = this->m_flGrad1; // 可信度1
rootObj["m_flGrad2"] = this->m_flGrad2; // 可信度2
//单位
rootObj["Unit"] = m_strUnit;
rootObj["m_flStep"] = m_flStep;//深度间隔
return rootObj;
}
else if (m_strLineName == "JINGYANKUATA.LINE")
{
//井眼垮塌矢量图
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
// 曲线选择
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
rootObj["m_pl_deltaCurve"] = this->m_pl_deltaCurve; // 井径差曲线
//蝌蚪符号
rootObj["m_nRadius"] = this->m_nRadius; // 圆半径
rootObj["m_nCircleWidth"] = this->m_nCircleWidth; // 圆线宽度
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
rootObj["m_crCircle"] = this->m_crCircle.name(); // 圆线颜色
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
rootObj["m_crPointFill"] = this->m_crPointFill.name(); // 圆填充色
//
rootObj["vmax"] = m_vmax;//右刻度
rootObj["vmin"] = m_vmin;//左刻度
rootObj["m_flStep"] = m_flStep;//深度间隔
rootObj["m_nOffset"] = m_nOffset;//角度偏移
//单位
rootObj["Unit"] = m_strUnit;
return rootObj;
}
else if (m_strLineName == "XIEFANGWEI.LINE")
{
//井斜方位图
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
// 曲线选择
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
rootObj["m_pl_deviCurve"] = this->m_pl_deviCurve; // 井斜曲线
//蝌蚪符号
rootObj["m_nRadius"] = this->m_nRadius; // 圆半径
rootObj["m_nCircleWidth"] = this->m_nCircleWidth; // 圆线宽度
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
rootObj["m_crCircle"] = this->m_crCircle.name(); // 圆线颜色
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
rootObj["m_crPointFill"] = this->m_crPointFill.name(); // 圆填充色
//
rootObj["vmax"] = m_vmax;//右刻度
rootObj["vmin"] = m_vmin;//左刻度
rootObj["m_flStep"] = m_flStep;//深度间隔
//单位
rootObj["Unit"] = m_strUnit;
return rootObj;
}
}
}
else if (m_strType == "JiegutextObject")
{
@ -848,6 +823,105 @@ QJsonObject FormInfo::makeJson()
//item属性写入slf文件不需要此次记录
return rootObj;
}
else if (m_strType == "ganzhuangtuObject")
{
//杆状图
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
// 曲线选择
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
rootObj["m_pl_inclinationCurve"] = this->m_pl_inclinationCurve; // 倾角曲线
rootObj["m_pl_GradCurve"] = this->m_pl_GradCurve; // 可信度曲线
//杆
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
// 显示控制
rootObj["m_pl_minInclination"] = this->m_pl_minInclination; // 最小倾角
rootObj["m_pl_maxInclination"] = this->m_pl_maxInclination; // 最大倾角
rootObj["m_flGrad1"] = this->m_flGrad1; // 可信度1
rootObj["m_flGrad2"] = this->m_flGrad2; // 可信度2
//单位
rootObj["Unit"] = m_strUnit;
rootObj["m_flStep"] = m_flStep;//深度间隔
return rootObj;
}
else if (m_strType == "JyktObject")
{
//井眼垮塌矢量图
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
// 曲线选择
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
rootObj["m_pl_deltaCurve"] = this->m_pl_deltaCurve; // 井径差曲线
//蝌蚪符号
rootObj["m_nRadius"] = this->m_nRadius; // 圆半径
rootObj["m_nCircleWidth"] = this->m_nCircleWidth; // 圆线宽度
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
rootObj["m_crCircle"] = this->m_crCircle.name(); // 圆线颜色
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
rootObj["m_crPointFill"] = this->m_crPointFill.name(); // 圆填充色
//
rootObj["vmax"] = m_vmax;//右刻度
rootObj["vmin"] = m_vmin;//左刻度
rootObj["m_flStep"] = m_flStep;//深度间隔
rootObj["m_nOffset"] = m_nOffset;//角度偏移
//单位
rootObj["Unit"] = m_strUnit;
return rootObj;
}
else if (m_strType == "DenvObject")
{
//井斜方位图
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
// 曲线选择
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
rootObj["m_pl_deviCurve"] = this->m_pl_deviCurve; // 井斜曲线
//蝌蚪符号
rootObj["m_nRadius"] = this->m_nRadius; // 圆半径
rootObj["m_nCircleWidth"] = this->m_nCircleWidth; // 圆线宽度
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
rootObj["m_crCircle"] = this->m_crCircle.name(); // 圆线颜色
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
rootObj["m_crPointFill"] = this->m_crPointFill.name(); // 圆填充色
//
rootObj["vmax"] = m_vmax;//右刻度
rootObj["vmin"] = m_vmin;//左刻度
rootObj["m_flStep"] = m_flStep;//深度间隔
//单位
rootObj["Unit"] = m_strUnit;
return rootObj;
}
else if (m_strType == "MCalsObject")
{
//多臂井径
// 字体
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
rootObj["m_MinVal"] = m_MinVal;//最小井径
rootObj["m_MaxVal"] = m_MaxVal;//最大井径
rootObj["m_iStartArmPos"] = m_iStartArmPos; //左边井径序号
rootObj["m_iEndArmPos"] = m_iEndArmPos; //右边井径序号
rootObj["m_MinRatio"] = m_MinRatio; //最小外径占道比例
rootObj["m_MaxRatio"] = m_MaxRatio;//最大外径占道比例
rootObj["m_nVertGrid"] = m_nVertGrid; //纵向网格间隔
rootObj["m_nHorzGrid"] = m_nHorzGrid;//井径曲线间网格
rootObj["m_nHorzStep"] = m_nHorzStep;//旋转井径增量
rootObj["m_flVFactor"] = m_flVFactor; //井柱椭圆纵横半径比
rootObj["m_nHLineWidth"] = m_nHLineWidth;
rootObj["m_HLineColor"] = m_HLineColor.name();
rootObj["m_nVLineWidth"] = m_nVLineWidth;
rootObj["m_VLineColor"] = m_VLineColor.name();
return rootObj;
}
rootObj["Unit"] = m_strUnit;
rootObj["Width"] = m_dWidth;
@ -2715,6 +2789,21 @@ void FormInfo::contextMenuEvent(QContextMenuEvent *event)
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable);
menu.exec(event->globalPos());
}
else if(m_strType=="ganzhuangtuObject" || m_strType=="JyktObject" ||m_strType=="DenvObject")
{
//杆状图、井眼垮塌矢量图、井斜方位图
QMenu menu(this);
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable);
menu.exec(event->globalPos());
}
else if(m_strType=="MCalsObject")
{
//多臂井径
QMenu menu(this);
menu.addAction(QIcon(::GetImagePath() + "icon/Sheet.png"), "数据对象查看", this, &FormInfo::onShowWave);
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteWave);
menu.exec(event->globalPos());
}
}
//曲线数据查看

View File

@ -26,10 +26,16 @@ public:
~FormInfo();
void initProperty(QJsonObject obj);
//蝌蚪图
void initProperty_Kedou(QJsonObject obj);
//杆状图
void initProperty_Ganzhuang(QJsonObject obj);
//井眼垮塌矢量图
void initProperty_Jykt(QJsonObject obj);
//井斜方位图
void initProperty_Denv(QJsonObject obj);
//多臂井径
void initProperty_MCals(QJsonObject obj);
void paintClassify(QPainter &painter, int compassCenterY);
private:
@ -406,6 +412,22 @@ public:
//多臂井径
float m_MinVal = 30; //最小井径
float m_MaxVal = 65; //最大井径
int m_iStartArmPos = 1; //左边井径序号
int m_iEndArmPos = 20; //右边井径序号
float m_MinRatio = 0.5; //最小外径占道比例
float m_MaxRatio = 0.6; //最大外径占道比例
int m_nVertGrid = 20; //纵向网格间隔
int m_nHorzGrid = 0; //井径曲线间网格
int m_nHorzStep = 5; //旋转井径增量
float m_flVFactor = 0.8; //井柱椭圆纵横半径比
int m_nHLineWidth =1; //横格线宽度
QColor m_HLineColor = QColor(0,0,0);//横格线颜色
int m_nVLineWidth =1; //纵格线宽度
QColor m_VLineColor = QColor(0,0,0);//纵格线颜色
public:
void setLineWidth(double dWidth);
double getLineWidth();

View File

@ -301,7 +301,7 @@ FormInfo* FormTrack::AddKedouAndOthers(QString strSlfName, QString strWellName,
return nullptr;
}
qDebug() << "FormTrack AddKedou";
qDebug() << "FormTrack AddKedouAndOthers";
ui->tableWidget->m_strUuid = m_strUuid;
int row = ui->tableWidget->rowCount();
@ -329,7 +329,37 @@ FormInfo* FormTrack::AddKedouAndOthers(QString strSlfName, QString strWellName,
formInfo->m_strAliasName = strAliasName;
formInfo->m_strUnit = strUnit;
formInfo->m_strScaleType = strScaleType;
formInfo->m_strType = "tableObject";
formInfo->m_strType = strType;
formInfo->setLineWidth(dWidth);
formInfo->setVMax(vmax);
formInfo->setVMin(vmin);
formInfo->setFrontColor(QColor(0,0,0));
formInfo->setBackColor(QColor(255,255,255));
//设置高度
ui->tableWidget->setRowHeight(row, 100);
//
ui->tableWidget->setCellWidget(row, 0, formInfo);
return formInfo;
}
//多臂井径
FormInfo* FormTrack::AddMCals(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty)
{
qDebug() << "FormTrack AddMCals";
ui->tableWidget->m_strUuid = m_strUuid;
int row = ui->tableWidget->rowCount();
ui->tableWidget->setRowCount(row + 1);
//曲线信息栏
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
formInfo->m_strUuid = m_strUuid;
formInfo->initProperty_MCals(listOtherProperty);
formInfo->m_strAliasName = strAliasName;
formInfo->m_strUnit = strUnit;
formInfo->m_strScaleType = strScaleType;
formInfo->m_strType = strType;
formInfo->setLineWidth(dWidth);
formInfo->setVMax(vmax);
formInfo->setVMin(vmin);

View File

@ -46,6 +46,8 @@ public:
void Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QStringList listOtherProperty={});
//蝌蚪图
FormInfo* AddKedouAndOthers(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty={});
//多臂井径
FormInfo* AddMCals(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty={});
FormInfo* setDrawDt(QStringList listdt, QJsonObject obj);

View File

@ -3829,12 +3829,19 @@ void MainWindowCurve::s_NewMCals()
return;
}
QStringList sret = this->getSelectWell();
if(sret.length() <= 0)
int nW = 4;
QStringList sret = this->insertCol(nW);
if (sret.length() <= 0)
return;
QString strWellName = sret.at(0);
//直接从选中的井获取data记录slf路径
QString strSlfName = sret.at(1);
//新建井+道+曲线(首条)
NewWellAndTrack(sret.at(0), sret.at(1), "FCA2", "MCalsObject");
//新建道
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "FCA2", "MCalsObject", nW);
// //新建井+道+曲线(首条)
// NewWellAndTrack(sret.at(0), sret.at(1), "FCA2", "MCalsObject");
}
//套管组件

View File

@ -27,6 +27,7 @@
#include "fracsel.h"
#include "formtrack.h"
#include "formdraw.h"
#include "DrawNrad.h"
//是否隐藏刻度
extern int g_iShow;
@ -226,6 +227,8 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
connect(CallManage::getInstance(), SIGNAL(sig_changeJyktProperty(QString, QString, QString, QString, QString)), this, SLOT(s_changeJyktProperty(QString, QString, QString, QString, QString)));
//改变井斜方位图属性
connect(CallManage::getInstance(), SIGNAL(sig_changeDenvProperty(QString, QString, QString, QString, QString)), this, SLOT(s_changeDenvProperty(QString, QString, QString, QString, QString)));
//改变多臂井径属性
connect(CallManage::getInstance(), SIGNAL(sig_changeMCalsProperty(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeMCalsProperty(QString, QString, QString, QString, QString, QString)));
}
void QMyCustomPlot::initGeometry(QString strUuid, int nscale, double fW)
@ -10724,6 +10727,19 @@ void QMyCustomPlot::resetPosition()
//地质层位
resetPosition_Layer();
//
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName);
if (pInfo == NULL)
{
return;
}
if(pInfo->m_strType == "MCalsObject")
{
//多臂井径
Draw_MCals(m_strLineName, m_strLineName);
return;
}
//刷新
replot();
}
@ -12819,3 +12835,59 @@ void QMyCustomPlot::Draw_Denv()
}
this->replot();
}
//改变多臂井径属性
void QMyCustomPlot::s_changeMCalsProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName)
{
if(m_strUuid == strUuid &&
m_strSlfName == strSlfName &&
m_strWellName == strWellName &&
m_strTrackName == strTrackName &&
m_strLineName == strLineName)
{
}
else
{
return;
}
//绘制多臂井径
Draw_MCals(strLineName, strNewLineName);
}
//多臂井径
void QMyCustomPlot::Draw_MCals(QString strLineName, QString strNewLineName)
{
this->clearGraphs();
this->clearItems();
//
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, strNewLineName);
if (pInfo == NULL)
{
return;
}
//多臂井径
m_strLineName = pInfo->m_strLineName; //"FCA2";
CDrawNrad *drawNrad = new CDrawNrad(this);
//属性
drawNrad->m_LeftVal = pInfo->m_MinVal;//最小井径
drawNrad->m_RightVal = pInfo->m_MaxVal;//最大井径
drawNrad->m_iStartArmPos = pInfo->m_iStartArmPos;//左边井径序号
drawNrad->m_iEndArmPos = pInfo->m_iEndArmPos;//右边井径序号
drawNrad->m_flWjMinFactor = pInfo->m_MinRatio; //最小外径占道比例
drawNrad->m_flWjMaxFactor = pInfo->m_MaxRatio;//最大外径占道比例
drawNrad->m_nVertGrid = pInfo->m_nVertGrid; //纵向网格间隔
drawNrad->m_nHorzGrid = pInfo->m_nHorzGrid;//井径曲线间网格
drawNrad->m_nHorzStep = pInfo->m_nHorzStep;//旋转井径增量
drawNrad->m_flVFactor = pInfo->m_flVFactor; //井柱椭圆纵横半径比
drawNrad->m_nHorzLineWidth = pInfo->m_nHLineWidth;
drawNrad->m_crHorzLine = pInfo->m_HLineColor;
drawNrad->m_nVertLineWidth = pInfo->m_nVLineWidth;
drawNrad->m_crVertLine = pInfo->m_VLineColor;
drawNrad->ReadData(m_strSlfName, m_strLineName);
drawNrad->DrawNrad(m_strSlfName, m_strLineName);
this->replot();
}

View File

@ -691,6 +691,10 @@ public slots:
//改变井斜方位图属性
void s_changeDenvProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//改变多臂井径属性
void s_changeMCalsProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
public:
//蝌蚪图重绘网格线
bool mKedou = false;
@ -780,6 +784,9 @@ public:
CPickFrac *m_cPickFrac;
//多臂井径
void Draw_MCals(QString strLineName, QString strNewLineName);
private:
};