feat: add PLT double cut option to plotter export
This commit is contained in:
@@ -35,6 +35,7 @@ export function usePlotterExport(store: DeckStore): UsePlotterExportReturn {
|
||||
const cardHeight = () => store.state.dimensions?.cardHeight || 88;
|
||||
const shape = () => store.state.shape;
|
||||
const orientation = () => store.state.printOrientation || 'landscape';
|
||||
const doubleCut = () => store.state.pltDoubleCut;
|
||||
|
||||
/**
|
||||
* 生成单页满排时的 PLT 数据
|
||||
@@ -60,7 +61,7 @@ export function usePlotterExport(store: DeckStore): UsePlotterExportReturn {
|
||||
|
||||
// 将卡片路径转换为相对于 frameBoundsWithMargin 的坐标
|
||||
// 原点在 frameBoundsWithMargin 的左上角
|
||||
const relativePaths = layout.cardPaths.map(cardPath => {
|
||||
const relativePaths = layout.cardPaths.flatMap(cardPath => {
|
||||
const relativePoints = cardPath.points.map(([x, y]) => {
|
||||
// 转换为相对于 frameBounds 左上角的坐标
|
||||
const relativeX = x - frameBounds.x;
|
||||
@@ -71,7 +72,11 @@ export function usePlotterExport(store: DeckStore): UsePlotterExportReturn {
|
||||
// 所以 plotterY = pltHeight - relativeY
|
||||
return [relativeX, pltHeight - relativeY] as [number, number];
|
||||
});
|
||||
return relativePoints;
|
||||
if (doubleCut()) {
|
||||
// 重复一次:某些切割机需要每张卡牌切两次
|
||||
return [relativePoints, relativePoints];
|
||||
}
|
||||
return [relativePoints];
|
||||
});
|
||||
|
||||
// 起点和终点都在 frameBoundsWithMargin 的左上角 (0, pltHeight)
|
||||
|
||||
Reference in New Issue
Block a user