如果您使用 OpenSCAD 捆绑的 Liberation 字体之一或 Microsoft Core Fonts 包中的字体,则可以使用我的字体测量 OpenSCAD 库。例如:
use <fontmetrics.scad>;
length = measureText("This is a Test", font="Arial:style=Italic", size=20.);
Run Code Online (Sandbox Code Playgroud)
图书馆在这里。我使用一些Python 脚本从 ttf 文件中提取指标(包括字距调整对),您可以使用这些脚本添加有关更多字体的信息。
小智 5
目前无法查询生成的文本几何的实际大小。但是,根据应创建的模型,计算粗略估计并用于scale()将文本拟合到已知大小可能就足够了。
// Fit text into a randomly generated area
r = rands(10, 20, 2);
length = 3 * r[0];
w = r[1];
difference() {
cube([length, w, 1]);
color("white")
translate([0, w / 2, 0.6])
linear_extrude(1, convexity = 4)
resize([length, 0], auto = true)
text("This is a Test", valign = "center");
}
Run Code Online (Sandbox Code Playgroud)