Skip to content

Commit 8303c75

Browse files
authored
Add files via upload
1 parent 043318c commit 8303c75

File tree

7 files changed

+220
-96
lines changed

7 files changed

+220
-96
lines changed

diagview.cpp

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,14 @@ DiagView::DiagView(Context &ctx, QWidget *parent) :
2121
std::pair<std::vector<double>,std::vector<double>> xyH = ctx.getHpair();
2222
std::pair<std::vector<double>,std::vector<double>> xyT = ctx.getTpair();
2323
std::pair<std::vector<double>,std::vector<double>> xyM = ctx.getMpair();
24+
25+
yHmin = *std::min_element(xyH.second.begin(), xyH.second.end());
26+
yHmax = *std::max_element(xyH.second.begin(), xyH.second.end());
27+
yTmin = *std::min_element(xyT.second.begin(), xyT.second.end());
28+
yTmax = *std::max_element(xyT.second.begin(), xyT.second.end());
29+
yMmin = *std::min_element(xyM.second.begin(), xyM.second.end());
30+
yMmax = *std::max_element(xyM.second.begin(), xyM.second.end());
31+
2432
std::pair<std::vector<double>,std::vector<double>> beamPoints = std::make_pair(std::vector<double>{0,ctx.beam.length}, std::vector<double>{0,0});
2533

2634
ui->diagHPlot->addGraph();
@@ -29,7 +37,7 @@ DiagView::DiagView(Context &ctx, QWidget *parent) :
2937
ui->diagHPlot->graph(1)->setData(QVector<double>(xyH.first.begin(),xyH.first.end()), QVector<double>(xyH.second.begin(),xyH.second.end()));
3038
ui->diagHPlot->graph(0)->setPen(QPen(QColor(102,161,130), 2));
3139
ui->diagHPlot->replot();
32-
ui->diagHPlot->rescaleAxes(true);
40+
ui->diagTPlot->rescaleAxes(true);
3341
ui->diagHPlot->xAxis->setLabel("Beam");
3442
ui->diagHPlot->yAxis->setLabel("Axial force");
3543
ui->diagHPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
@@ -69,3 +77,26 @@ void DiagView::on_doubleSpinBox_valueChanged(double x)
6977
ui->momentIn->setText(QString::fromStdString(std::to_string(lCtx.pointM(x)*(-1))));
7078
}
7179

80+
81+
void DiagView::on_saveH_clicked()
82+
{
83+
ui->diagHPlot->xAxis->setRange(-lCtx.beam.length*0.2, lCtx.beam.length*1.2);
84+
ui->diagHPlot->yAxis->setRange(1.2 * yHmin, 1.2 * yHmax );
85+
ui->diagHPlot->savePdf("axial.pdf", 600, 600, QCP::epNoCosmetic);
86+
}
87+
88+
void DiagView::on_saveT_clicked()
89+
{
90+
ui->diagTPlot->xAxis->setRange(-lCtx.beam.length*0.2, lCtx.beam.length*1.2);
91+
ui->diagTPlot->yAxis->setRange(1.2 * yTmin, 1.2 * yTmax );
92+
ui->diagTPlot->savePdf("shear.pdf", 600, 600, QCP::epNoCosmetic);
93+
94+
}
95+
96+
void DiagView::on_saveM_clicked()
97+
{
98+
ui->diagMPlot->xAxis->setRange(-lCtx.beam.length*0.2, lCtx.beam.length*1.2);
99+
ui->diagMPlot->yAxis->setRange(1.2 * yMmin, 1.2 * yMmax );
100+
ui->diagMPlot->savePdf("moment.pdf", 600, 600, QCP::epNoCosmetic);
101+
}
102+

diagview.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,15 @@ class DiagView : public QDialog
2121
private slots:
2222
void on_doubleSpinBox_valueChanged(double arg1);
2323

24+
void on_saveH_clicked();
25+
26+
void on_saveT_clicked();
27+
28+
void on_saveM_clicked();
29+
2430
private:
2531
Ui::DiagView *ui;
32+
double yHmin, yHmax, yTmin, yTmax, yMmin, yMmax;
2633
};
2734

2835
#endif // DIAGVIEW_H

diagview.ui

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<property name="windowTitle">
1414
<string>Diagrams</string>
1515
</property>
16-
<layout class="QGridLayout" name="gridLayout">
17-
<item row="0" column="0">
16+
<layout class="QVBoxLayout" name="verticalLayout">
17+
<item>
1818
<layout class="QHBoxLayout" name="horizontalLayout">
1919
<property name="sizeConstraint">
2020
<enum>QLayout::SetMaximumSize</enum>
@@ -51,7 +51,32 @@
5151
</item>
5252
</layout>
5353
</item>
54-
<item row="1" column="0">
54+
<item>
55+
<layout class="QHBoxLayout" name="horizontalLayout_3">
56+
<item>
57+
<widget class="QPushButton" name="saveH">
58+
<property name="text">
59+
<string>Save</string>
60+
</property>
61+
</widget>
62+
</item>
63+
<item>
64+
<widget class="QPushButton" name="saveT">
65+
<property name="text">
66+
<string>Save</string>
67+
</property>
68+
</widget>
69+
</item>
70+
<item>
71+
<widget class="QPushButton" name="saveM">
72+
<property name="text">
73+
<string>Save</string>
74+
</property>
75+
</widget>
76+
</item>
77+
</layout>
78+
</item>
79+
<item>
5580
<layout class="QFormLayout" name="formLayout">
5681
<property name="sizeConstraint">
5782
<enum>QLayout::SetMinimumSize</enum>

easydiag.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ double Context::pointH(double x) {
150150
if (x == beam.length) {
151151
hValue -= hl.value;
152152
}
153-
else if (hl.distance<x) {
153+
else if (hl.distance<=x) {
154154
hValue -= hl.value;
155155
}
156156
}

mainwindow.cpp

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,12 @@ void MainWindow::on_diagBtn_clicked()
128128
}
129129

130130

131-
void MainWindow::on_beamSpinBox_valueChanged(double arg1)
131+
void MainWindow::on_beamSpinBox_valueChanged(double bl)
132132
{
133133
if (ui->beamSpinBox->value() == 0) {
134134
QMessageBox::warning(this, "Warning", "The length of the beam must be greater than 0.", QMessageBox::Ok);
135135
} else {
136-
b.length = ui->beamSpinBox->value();
136+
b.length = bl;
137137
ui->pointLoadBtn->setEnabled(true);
138138
ui->distributedLoadBtn->setEnabled(true);
139139
ui->pointMomentBtn->setEnabled(true);
@@ -163,3 +163,37 @@ void MainWindow::on_clrPm_clicked()
163163
ui->pointMomentsTbl->setRowCount(0);
164164
}
165165

166+
void MainWindow::on_clrPlSel_clicked()
167+
{
168+
if (ui->pointLoadsTbl->selectedItems().empty()) {return;}
169+
170+
int selectedPl = ui->pointLoadsTbl->selectedItems()[0]->row();
171+
172+
if (ui->pointLoadsTbl->item(selectedPl, 2)->text() == "Horizontal") {
173+
horizontalForces.erase(horizontalForces.begin() + selectedPl);
174+
} else {
175+
verticalForces.erase(verticalForces.begin() + selectedPl);
176+
}
177+
178+
ui->pointLoadsTbl->removeRow(selectedPl);
179+
}
180+
181+
void MainWindow::on_clrDlSel_clicked()
182+
{
183+
if (ui->distributedLoadsTbl->selectedItems().empty()) {return;}
184+
int selectedPl = ui->distributedLoadsTbl->selectedItems()[0]->row();
185+
distributedLoads.erase(distributedLoads.begin() + selectedPl);
186+
ui->distributedLoadsTbl->removeRow(selectedPl);
187+
}
188+
189+
190+
191+
192+
void MainWindow::on_clrPmSel_clicked()
193+
{
194+
if (ui->pointMomentsTbl->selectedItems().empty()) {return;}
195+
int selectedPl = ui->pointMomentsTbl->selectedItems()[0]->row();
196+
pointMoments.erase(pointMoments.begin() + selectedPl);
197+
ui->pointMomentsTbl->removeRow(selectedPl);
198+
}
199+

mainwindow.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ private slots:
3636

3737
void on_clrPm_clicked();
3838

39+
void on_clrPlSel_clicked();
40+
41+
void on_clrDlSel_clicked();
42+
43+
void on_clrPmSel_clicked();
44+
3945
private:
4046
Ui::MainWindow *ui;
4147
PointLoadDialog *pldialog;

0 commit comments

Comments
 (0)