Remove weird Z level for structure - points are mapped on surface of model.

It moves with support point by 3* layers ... 0.05*3 = 0.15 mm (invisible so mistake was ignored)
Head radius is 0.4 mm
This commit is contained in:
Filip Sykala - NTB T15p 2024-08-19 16:38:26 +02:00 committed by Lukas Matena
parent b39df3e6fe
commit d752200345
2 changed files with 7 additions and 11 deletions

View File

@ -146,19 +146,13 @@ static std::vector<SupportPointGenerator::MyLayer> make_layers(
SupportPointGenerator::MyLayer &layer = layers[layer_id];
const ExPolygons & islands = slices[layer_id];
// FIXME WTF?
// It is used only for support point Z coordinate.
// Possibly some kind of big foot compensation ??
const float height = (layer_id > 2 ?
heights[layer_id - 3] :
heights[0] - (heights[1] - heights[0]));
layer.islands.reserve(islands.size());
for (const ExPolygon &island : islands) {
float area = float(island.area() * SCALING_FACTOR * SCALING_FACTOR);
if (area >= pixel_area)
// FIXME this is not a correct centroid of a polygon with holes.
layer.islands.emplace_back(layer, island, get_extents(island.contour),
unscaled<float>(island.contour.centroid()), area, height);
unscaled<float>(island.contour.centroid()), area);
}
}, 32 /*gransize*/);
@ -617,7 +611,10 @@ void SupportPointGenerator::uniformly_cover(const ExPolygons& islands, Structure
poisson_samples.erase(poisson_samples.begin() + poisson_samples_target, poisson_samples.end());
}
for (const Vec2f &pt : poisson_samples) {
m_output.emplace_back(float(pt(0)), float(pt(1)), structure.zlevel, m_config.head_diameter/2.f, flags & icfIsNew);
m_output.emplace_back(
float(pt(0)), float(pt(1)), structure.layer->print_z/*structure.zlevel*/, m_config.head_diameter / 2.f,
flags & icfIsNew
);
structure.supports_force_this_layer += m_config.support_force();
grid3d.insert(pt, &structure);
}

View File

@ -57,8 +57,8 @@ public:
// Keep data for one area(ExPlygon) on the layer
struct Structure {
Structure(MyLayer &layer, const ExPolygon& poly, const BoundingBox &bbox, const Vec2f &centroid, float area, float h) :
layer(&layer), polygon(&poly), bbox(bbox), centroid(centroid), area(area), zlevel(h)
Structure(MyLayer &layer, const ExPolygon& poly, const BoundingBox &bbox, const Vec2f &centroid, float area) :
layer(&layer), polygon(&poly), bbox(bbox), centroid(centroid), area(area)
#ifdef SLA_SUPPORTPOINTGEN_DEBUG
, unique_id(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()))
#endif /* SLA_SUPPORTPOINTGEN_DEBUG */
@ -70,7 +70,6 @@ public:
const BoundingBox bbox;
const Vec2f centroid = Vec2f::Zero();
const float area = 0.f;
float zlevel = 0;
// How well is this ExPolygon held to the print base?
// Positive number, the higher the better.
float supports_force_this_layer = 0.f;