Scanning images beyond the XY scanner’s range
PowerScript
Acquire images over a range larger than the XY scanner range by moving the XY stage multiple times without changing the approach state.
main
1 file
Scanning images beyond …..js
Large_scan.js
1.4 KB
Scanning images beyond …..js
1477 bytes
var xyStageMove = {
mov1: [100, 0],
mov2: [0, -100],
mov3: [-100, 0],
mov4: [0, 100]
};
function moveXYstage(moveX, moveY) {
spm.scan.stop();
try {
spm.zscanner.retractAll();
spm.sleep(300);
var tolerancePos = 0.9 * spm.zscanner.fullyRetractedPos;
if (spm.zscanner.pos < tolerancePos) {
throw "Err1";
}
} catch (ex) {
if (ex === "Err1") {
print("Error 1: Z Scanner is too Low");
return 1;
} else {
print("Error -1: Unknown Error");
return -1;
}
}
spm.xystage.move(moveX, moveY, 0.1, 0.1);
spm.sleep(50);
return 0;
}
var margin = 0.98;
var leftXLimit = margin * spm.xystage.range[0].safe[0];
var rightXLimit = margin * spm.xystage.range[0].safe[1];
var leftYLimit = margin * spm.xystage.range[1].safe[0];
var rightYLimit = margin * spm.xystage.range[1].safe[1];
for (var mov in xyStageMove) {
spm.scan.startImageScan();
var posX = spm.xystage.pos.x;
var posY = spm.xystage.pos.y;
var x = xyStageMove[mov][0];
var y = xyStageMove[mov][1];
if (leftXLimit < posX && posX < rightXLimit) {
moveXYstage(x, 0);
} else {
print("Reached the limit of Stage: X");
}
if (leftYLimit < posY && posY < rightYLimit) {
moveXYstage(0, y);
} else {
print("Reached the limit of Stage: Y");
}
}
Comments (0)
No comments yet. Be the first to comment!
Snippet Information
Author:
jungyu.lee
Language: PowerScript
Created:
Oct 28, 2025
Updated:
0 minutes ago
Views: 35
Stars: 1