This commit is contained in:
Nicolas Predella 2026-07-30 15:11:27 +03:00
parent 4b75ecb803
commit 288081ddf0
3 changed files with 8 additions and 6 deletions

View file

@ -373,7 +373,7 @@ class SLICENODE_MeshToPdf(ExecSliceNode):
show_bbox_size: NfBoolProperty(name="Bounding Box Sizes", default=False) # pyright: ignore[reportInvalidTypeForm]
line_width: NfFloatProperty(name="Line Width (mm)", default=0.0, min=0.0, max=50.0) # pyright: ignore[reportInvalidTypeForm]
font_size: NfFloatProperty(name="Font Size (pt)", default=0.0, min=0.0, max=100.0) # pyright: ignore[reportInvalidTypeForm]
font_size: NfFloatProperty(name="Font Size (mm)", default=0.0, min=0.0, max=100.0) # pyright: ignore[reportInvalidTypeForm]
margin: NfFloatProperty(name="Margin (mm)", default=10.0, min=0.0, max=500.0) # pyright: ignore[reportInvalidTypeForm]
bg_color: NfFloatVectorProperty(
@ -508,7 +508,7 @@ class SLICENODE_MeshToPdf(ExecSliceNode):
crease_angle=self.crease_angle,
margin_mm=self.margin,
line_width_mm=self.line_width,
font_size_pt=self.font_size,
font_size_mm=self.font_size * 2.834645669291339,
stroke_color=(float(self.wire_color[0]), float(self.wire_color[1]), float(self.wire_color[2])),
bg_color=(float(self.bg_color[0]), float(self.bg_color[1]), float(self.bg_color[2])),
bbox_color=(float(self.bbox_color[0]), float(self.bbox_color[1]), float(self.bbox_color[2])),

View file

@ -81,7 +81,7 @@ def export_mesh_to_pdf(
crease_angle: float = 30.0,
margin_mm: float = 10.0,
line_width_mm: float = 0.5,
font_size_pt: float | None = None,
font_size_mm: float = 0.0,
stroke_color: tuple[float, float, float] = (0.0, 0.0, 0.0),
bg_color: tuple[float, float, float] = (1.0, 1.0, 1.0),
bbox_color: tuple[float, float, float] = (0.0, 0.0, 1.0),
@ -211,9 +211,11 @@ def export_mesh_to_pdf(
else:
line_width_pt = line_width_mm * MM_TO_PT
# Automatic font size: equal to minor grid spacing
if font_size_pt is None or font_size_pt <= 0:
# Convert font_size_mm to pt and apply multiplier
if font_size_mm <= 0:
font_size_pt = minor_step * MM_TO_PT
else:
font_size_pt = font_size_mm * MM_TO_PT
def to_pdf_pt(pt_mm: NDArray[np.float64]) -> NDArray[np.float64]:
x_pt = (pt_mm[:, 0] - grid_min_x + total_margin_mm) * MM_TO_PT

View file

@ -677,7 +677,7 @@ class TestPdfExporter(unittest.TestCase):
export_mesh_to_pdf(
edges_2d,
pdf_path,
font_size_pt=14.5,
font_size_mm=5.12,
show_name=True,
raw_geometry=so
)