SVG导入后的尺寸不正确
导入的SVG过大或过小,与你预期的尺寸不一致。
你会看到
你导入了一个确定应为(例如)100 mm × 100 mm的SVG,但导入后变成了350 × 350 mm、28 × 28 mm,或完全不同的尺寸。
发生了什幺
SVG的坐标系非常灵活,通常与用户意图不一致。单位的判定取决于:
- SVG文档是否明确设置了带单位的
width/height(例如mm、in、px)。 - SVG文档是否设置了
viewBox。 - 源应用如何解释“1 unit”。
常见问题:
- SVG只有
viewBox(没有带单位的width/height)。Beam Bench会猜测单位。 - SVG导出时使用了像素单位,而Beam Bench将其视为mm(反之亦然)。
- 导出时应用了缩放因子。
修复方法
如果SVG正好大了3.78x
SVG使用的是像素,但被当作mm处理。96 DPI下,1 pixel = 1/96 inch = 0.265 mm;但Beam Bench可能将1 unit = 1 pixel = 1 mm,因此产生1 / 0.265 ≈ 3.78的比例。
在Inkscape中打开SVG,将文档单位明确设置为mm,保存后重新导入。
如果SVG的尺寸比例偏差不同
在文本编辑器中打开SVG,查看<svg>元素:
<svg width="100mm" height="100mm" viewBox="0 0 100 100">viewBox是内部坐标空间。如果缺少width/height,或它们使用像素单位,通常可以通过编辑并明确添加mm单位来修复。
如果你不想编辑文档
- 先导入,再统一缩放。选择导入的对象,使用形状属性设置所需的W / H。
- 记下缩放因子,并始终使用相同的因子。
如果SVG来自Adobe Illustrator
Illustrator的SVG导出设置会影响单位。尝试打开“更多选项”面板并设置:
- Decimal places:4(精度)。
- Encoding:UTF-8。
- Use
<inline>style attributes。
对于激光加工,从Inkscape导出通常比从Illustrator导出更可预测。
变通方法:导入后调整大小
对于一次性文档,只需测量一次,将其缩放到目标尺寸,然后保存项目。下次导入同一源文档时,仍需使用相同的缩放比例。
验证是否生效
- 使用测量工具或在形状属性中检查,导入的SVG尺寸正确。
- 再次导入同一文档时,尺寸始终正确。
仍然无法解决?
- 支持的导入格式参考。
- 导入失败故障排除:适用于完全无法导入的文档。
- 在Facebook群组发帖,并附上SVG文档以及你预期的尺寸。