Hi Chris,
Thanks for sorting this out.
Just to give some context on how 3d software works, i didn’t give earlier, but i think will clarify what happens.
Each mesh has it’s ‘local’ coordinates. These are usually equal to what is in the STL file.
Then there is usually 1 matrix which is called the transformation matrix; that transforms the local coordinates in world space. This matrix is just kept in memory in the software. So world space is the axis system of your printer… XYZ.
Whenever your part is drawn on the screen; the GPU multiplies the local vertex coordinates with the transformation matrix to get the world coordinates. (and some more but that’s not relevant here).
So if you ‘drag’ the object along the x axis; that transformation will go into the transformation matrix with just 1 digit; and the mesh vertices will all remain the same local vertices, loaded from the file.
(you can’t recalculate vertices every time you do an operation… it’s to slow)
Now; I just checked my code there; if you pull of a repair operation; what will happen is that before the repair it will perform the calculation of world vertices (same that happens on the GPU).
I don’t know why I did this; probably the idea was if you have multiple disjoint parts in the mesh they could have different transformation matrices; but that never got developed.
So i will modify this in the next release that the repair keeps local coordinates… then the problem should be solved. The local coordaintes will remain; transformation matrix unchanged; then the re-imported part should stick to the same location.
kind regards
Elco