diff --git a/js/cam/assemblers/Assembler.js b/js/cam/assemblers/Assembler.js
index 381dc7f2dbdd313df16e9fbc1d9d10f846b6f6ae..d65fc62aed2f524cd01a82358a1491a4b66f0311 100644
--- a/js/cam/assemblers/Assembler.js
+++ b/js/cam/assemblers/Assembler.js
@@ -237,6 +237,7 @@ define(['underscore', 'appState', 'lattice', 'stlLoader', 'threeModel', 'cam', '
             callback();
         }
 
+        console.log(position);
         var startingPos = this.components.xAxis.getPosition().add(this.components.yAxis.getPosition().add(this.components.zAxis.getPosition()));//this.components.zAxis.getAbsolutePosition();//get position of end effector
         speed = this._normalizeSpeed(startingPos, position, new THREE.Vector3(speed, speed, speed));//todo fix this
 
diff --git a/js/cam/assemblers/AssemblerPost.js b/js/cam/assemblers/AssemblerPost.js
index 56c3421acd7ff6898d684caa80d89588d05cc65d..11dcec973a9de15db0bdef0bca8fb6efaf16baca 100644
--- a/js/cam/assemblers/AssemblerPost.js
+++ b/js/cam/assemblers/AssemblerPost.js
@@ -106,6 +106,8 @@ define(['underscore', 'appState', 'lattice', 'cam'], function(_, appState, latti
         this.customCalcPositionOffsets = function(index, position, material, settings, context){
     //this feeds into moveXY and placePart functions
 
+    position.sub(settings.originPosition);
+
     if (index.z%2 != 0){
         //offset for rotation
         var offset = this.components.substrate.centerOfRotation.clone().multiplyScalar(settings.scale);//offset in mm
@@ -122,7 +124,6 @@ define(['underscore', 'appState', 'lattice', 'cam'], function(_, appState, latti
     }
 
     position.sub(stock.getPosition().multiplyScalar(settings.scale));
-    position.sub(settings.originPosition);
 
     return position;
 }
diff --git a/js/cam/assemblers/StockComponent.js b/js/cam/assemblers/StockComponent.js
index fd71a0e148bc709085a027a45e8b6605b9239c40..120a2723dd592b84afaae5d91be0d865e083418f 100644
--- a/js/cam/assemblers/StockComponent.js
+++ b/js/cam/assemblers/StockComponent.js
@@ -31,7 +31,7 @@ define(['underscore', 'cam', 'three', 'component', 'lattice', 'threeModel'],
     };
 
     StockComponent.prototype.getPosition = function(){
-        return this.cell.getPosition();
+        return this.object3D.position.clone();
     };
 
     StockComponent.prototype.setMaterial = function(materialName){