Merge pull request #2064 from KLayout/feature/issue-2057

Implemented solution for #2057 (nanometer scalebar)
This commit is contained in:
Matthias Köfferlein 2025-05-26 23:13:23 +02:00 committed by GitHub
commit 444770696b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 2 deletions

View File

@ -1,5 +1,5 @@
[build-system]
requires = ["setuptools >= 77.0.3"]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[tool.cibuildwheel]

View File

@ -538,7 +538,22 @@ GridNet::render_bg (const lay::Viewport &vp, ViewObjectCanvas &canvas)
db::Point (xoffset + int (floor (0.5 + 2 * dgrid)), vp.height () - yoffset + rh / 2),
ruler_color);
painter.draw_text (tl::sprintf ("%g \265m", grid * 2).c_str (),
double grid_value = grid * 2;
std::string fmt = "%g \265m";
if (grid_value < 0.1 * (1 + db::epsilon)) {
grid_value *= 1000.0;
fmt = "%g nm";
} else if (grid_value < 100.0 * (1 + db::epsilon)) {
fmt = "%g \265m";
} else if (grid_value < 100000.0 * (1 + db::epsilon)) {
grid_value *= 1e-3;
fmt = "%g mm";
} else {
grid_value *= 1e-6;
fmt = "%g m";
}
painter.draw_text (tl::sprintf (fmt, grid_value).c_str (),
db::Point (xoffset + int (floor (0.5 + trans.ctrans (2 * grid))), vp.height () - yoffset - rh / 2 - 2),
ruler_color, -1, 1);