Implemented showing program extents
This commit is contained in:
@@ -98,16 +98,24 @@ public:
|
||||
});
|
||||
|
||||
info_layer = tab_widget->add<Widget>();
|
||||
tab_widget->append_tab("Info", info_layer);
|
||||
|
||||
info_layer->set_layout(new GroupLayout(10, 20, 30, 0));
|
||||
info_layer->add<Label>("");
|
||||
|
||||
tab_widget->append_tab("Info", info_layer);
|
||||
|
||||
auto probe_layer = tab_widget->add<Widget>();
|
||||
probe_layer->set_layout(new GroupLayout(10, 20, 30, 0));
|
||||
probe_layer->add<Label>("");
|
||||
|
||||
tab_widget->append_tab("Probing", info_layer);
|
||||
|
||||
add_status_markup();
|
||||
add_dro_markup();
|
||||
add_program_extents();
|
||||
add_pins_markup();
|
||||
add_jogging_markup();
|
||||
add_work_parameters_markup();
|
||||
add_z_probe_markup();
|
||||
|
||||
perform_layout();
|
||||
|
||||
@@ -117,6 +125,33 @@ public:
|
||||
m_render_pass->set_cull_mode(RenderPass::CullMode::Disabled);
|
||||
}
|
||||
|
||||
TextBox *txt_min_z, *txt_feed;
|
||||
|
||||
void add_z_probe_markup() {
|
||||
info_layer->add<Label>("Z-Probe", "sans-bold", 20);
|
||||
auto z_probe_holder = info_layer->add<Widget>();
|
||||
z_probe_holder->set_layout(new BoxLayout(Orientation::Vertical, Alignment::Fill, 2, 2));
|
||||
|
||||
auto another_holder = z_probe_holder->add<Widget>();
|
||||
another_holder->set_layout(new GridLayout(Orientation::Horizontal, 2, Alignment::Fill, 2, 2));
|
||||
|
||||
another_holder->add<Label>("Feed", "sans-bold");
|
||||
txt_feed = another_holder->add<TextBox>("100");
|
||||
txt_feed->set_editable(true);
|
||||
txt_feed->set_fixed_width(100);
|
||||
|
||||
another_holder->add<Label>("Min Z", "sans-bold");
|
||||
txt_min_z = another_holder->add<TextBox>("-65");
|
||||
txt_min_z->set_editable(true);
|
||||
txt_min_z->set_fixed_width(100);
|
||||
|
||||
z_probe_holder->add<Label>("");
|
||||
auto btn_start_probing = z_probe_holder->add<Button>("Start probing");
|
||||
btn_start_probing->set_callback([&]() {
|
||||
cnc.start_z_probe(std::stof(txt_min_z->value()), std::stof(txt_feed->value()));
|
||||
});
|
||||
}
|
||||
|
||||
void add_work_parameters_markup() {
|
||||
// work parameters
|
||||
info_layer->add<Label>("Work parameters", "sans-bold", 20);
|
||||
@@ -151,6 +186,7 @@ public:
|
||||
|
||||
if (pgm.load_from_file(path)) {
|
||||
init_program_geometry();
|
||||
set_program_extents();
|
||||
} else {
|
||||
}
|
||||
});
|
||||
@@ -383,6 +419,31 @@ public:
|
||||
});
|
||||
}
|
||||
|
||||
TextBox *extents_min_x, *extents_max_x;
|
||||
TextBox *extents_min_y, *extents_max_y;
|
||||
TextBox *extents_min_z, *extents_max_z;
|
||||
|
||||
void add_program_extents() {
|
||||
dro_ss << std::setprecision(3) << std::fixed;
|
||||
|
||||
// Program extents
|
||||
info_layer->add<Label>("Program extents", "sans-bold", 20);
|
||||
auto extents_holder = info_layer->add<Widget>();
|
||||
extents_holder->set_layout(new GridLayout(Orientation::Horizontal, 3, Alignment::Fill, 4, 4));
|
||||
|
||||
extents_holder->add<Label>("X", "sans-bold", 20);
|
||||
extents_min_x = extents_holder->add<TextBox>("");
|
||||
extents_max_x = extents_holder->add<TextBox>("");
|
||||
|
||||
extents_holder->add<Label>("Y", "sans-bold", 20);
|
||||
extents_min_y = extents_holder->add<TextBox>("");
|
||||
extents_max_y = extents_holder->add<TextBox>("");
|
||||
|
||||
extents_holder->add<Label>("Z", "sans-bold", 20);
|
||||
extents_min_z = extents_holder->add<TextBox>("");
|
||||
extents_max_z = extents_holder->add<TextBox>("");
|
||||
}
|
||||
|
||||
void add_pins_markup() {
|
||||
// Pins
|
||||
info_layer->add<Label>("Pins", "sans-bold", 20);
|
||||
@@ -501,6 +562,20 @@ public:
|
||||
cam_src_rotation = glm::quat(1.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
|
||||
void set_program_extents() {
|
||||
auto min = renderer.get_extents_min();
|
||||
auto max = renderer.get_extents_max();
|
||||
|
||||
extents_min_x->set_value(std::to_string(min.x));
|
||||
extents_max_x->set_value(std::to_string(max.x));
|
||||
|
||||
extents_min_y->set_value(std::to_string(min.y));
|
||||
extents_max_y->set_value(std::to_string(max.y));
|
||||
|
||||
extents_min_z->set_value(std::to_string(min.z));
|
||||
extents_max_z->set_value(std::to_string(max.z));
|
||||
}
|
||||
|
||||
bool resize_event(const Vector2i& size) override {
|
||||
// window->set_fixed_height(this->height() / 2);
|
||||
tab_widget->set_fixed_height((this->height() - 30));
|
||||
@@ -589,6 +664,15 @@ public:
|
||||
last_alarm = alarm;
|
||||
}
|
||||
|
||||
void on_probe_result(bool probe_touched, float *probe_coords) override {
|
||||
std::stringstream ss;
|
||||
ss << "Probing ended. Result: " << std::boolalpha << probe_touched << " at coords: ";
|
||||
for (auto i = 0; i < 3; i++) {
|
||||
ss << probe_coords[i] << ", ";
|
||||
}
|
||||
new MessageDialog(this, MessageDialog::Type::Warning, "Probe result", ss.str());
|
||||
}
|
||||
|
||||
void on_check_completed(bool success, size_t failed_index, size_t error) override {
|
||||
btn_check_program->set_background_color(success ? colGreen : color_red);
|
||||
if (success) {
|
||||
|
||||
Reference in New Issue
Block a user