//marcus_civis December 2018 [IConfig,2018] [IButton,PlaceModel,"Do it", //take eighth width of document [VarSet,docWidth,[IGet,document:width]/8] [IUnPress,Document:Pro] [ISet,document:width,docWidth] [IKeyPress,13,[IPress,Document:Resize]] [IPress,Layer:Clear] [IClick,1004,100,100,100,200] [IPress,Transform:Edit] [MVarDef,MC_Trans_Mem,90] //get current transforms [MTransformGet,MC_Trans_Mem,0] [VarSet,i,18] //set up with current position & scale [Loop,8, [MVarSet,MC_Trans_Mem,i,[MVarGet,MC_Trans_Mem,0]] [MVarSet,MC_Trans_Mem,i+1,[MVarGet,MC_Trans_Mem,1]] [MVarSet,MC_Trans_Mem,i+2,[MVarGet,MC_Trans_Mem,2]] [MVarSet,MC_Trans_Mem,i+3,[MVarGet,MC_Trans_Mem,3]] [MVarSet,MC_Trans_Mem,i+4,[MVarGet,MC_Trans_Mem,4]] [MVarSet,MC_Trans_Mem,i+5,[MVarGet,MC_Trans_Mem,5]] [VarAdd,i,9] ] //set up rotations [VarSet,i,18] [MVarSet,MC_Trans_Mem,i+6,0]//Left [MVarSet,MC_Trans_Mem,i+7,-90] [MVarSet,MC_Trans_Mem,i+8,180] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0]//45 #1 [MVarSet,MC_Trans_Mem,i+7,-45] [MVarSet,MC_Trans_Mem,i+8,0] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0.001]//Front [MVarSet,MC_Trans_Mem,i+7,0.001] [MVarSet,MC_Trans_Mem,i+8,0.001] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0]//45 #2 [MVarSet,MC_Trans_Mem,i+7,45] [MVarSet,MC_Trans_Mem,i+8,0] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0]//Right [MVarSet,MC_Trans_Mem,i+7,90] [MVarSet,MC_Trans_Mem,i+8,180] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0]//45 #3 [MVarSet,MC_Trans_Mem,i+7,145] [MVarSet,MC_Trans_Mem,i+8,-180] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0]//Back [MVarSet,MC_Trans_Mem,i+7,180] [MVarSet,MC_Trans_Mem,i+8,-180] [VarAdd,i,9] [MVarSet,MC_Trans_Mem,i+6,0]//45 #4 [MVarSet,MC_Trans_Mem,i+7,-145] [MVarSet,MC_Trans_Mem,i+8,-180] //get minimum scale (position is got too but should be constant) [VarSet,i,18] [Loop,8, [MTransformSet,MC_Trans_Mem,i]//set model with rotation [IPress,Transform:Fit] [MTransformGet,MC_Trans_Mem,0]//get first fit values [IPress,Transform:Fit] [MTransformGet,MC_Trans_Mem,9]//get second fit values //compare and record the lower value [If,[MVarGet,MC_Trans_Mem,12] < [MVarGet,MC_Trans_Mem,3], [VarSet,Scale,[MVarGet,MC_Trans_Mem,12]] [VarSet,yPos,[MVarGet,MC_Trans_Mem,10]] ,//else [VarSet,Scale,[MVarGet,MC_Trans_Mem,3]] [VarSet,yPos,[MVarGet,MC_Trans_Mem,1]] ] //record the minimum scale value [If,[Val,n] == 0, [VarSet,minScale,Scale] , [If,Scale < minScale,[VarSet,minScale,Scale]] ] [VarAdd,i,9] ,n] //set values for position & scale [VarSet,xPos,docWidth/2] [VarSet,yRot,0] [VarSet,i,18] [Loop,8, [MVarSet,MC_Trans_Mem,i,xPos] [MVarSet,MC_Trans_Mem,i+1,yPos] [MVarSet,MC_Trans_Mem,i+2,0]//zPos [MVarSet,MC_Trans_Mem,i+3,minScale]//xScale [MVarSet,MC_Trans_Mem,i+4,minScale]//yScale [MVarSet,MC_Trans_Mem,i+5,minScale]//zScale [VarAdd,xPos,docWidth] [VarAdd,yRot,46] [VarAdd,i,9] ] //resize doc [ISet,document:width,docWidth*8] [IKeyPress,13,[IPress,Document:Resize]] [IPress,Layer:Clear] [IClick,1004,100,100,100,200] [IPress,Transform:Edit] [IPress,Transform:Fit] //do snapshots [VarSet,i,18] [Loop,8, [MTransformSet,MC_Trans_Mem,i] [IPress,Transform:Snapshot] [VarAdd,i,9] ] ]//end button