##Arrow endpoint fine tuning
##arrow endpoint fine tuning
##Msc-generator allows you to fine-tune the exact location of the arrow endpoints. There are two kinds of modification after you have selected an arrow end via blocks and ports.##1. Shift the endpoint by a fixed amount of pixels along the X and/or Y axis. For this add '+x<pixels>' or '-x<pixels>' after the block and/or port/dir specification. You can add either or both an X and an Y coordinate offset.##Shift in relation to the block of the endpoint. In this case add a percentage, like '+x<percent>%' or '-x<percent>%'. Note that this is a relative shift added to the endpoint calculated from block and/or port/dir specification. Thus for example 'a+x10%->b' will start the arrow from coordinate '(a@@60%, a@@50%)' (a bit to the right from the center of 'a'), since in the absence of a port the arrow starts from the middle of the given block.##Make the arrow longer or shorter. This can be achieved by simply adding or substracting a pixel amount to the arrow end specification by appending '+<pixel>' or '-<pixel>' (and no 'x' or 'y'). Negative values make the arrow shorter, positive values longer. Lengthening of a curvy arrow is made by continuing it in a straight line. You can also add a percentage, which is calculated from the original length of the arrow.##You can mix and match any number of the above modifiers after the block/port/dir specification - they will be cumulated and their order is irrelevant. The shift operations will be applied first, then the length modifier ones. They can be combined with both 'via' attributes and any routing algorithm. 
arrows use routing.arrow_distance=0; //turn automatic overlap avoidance off
a -> b;       //From the center of 'a' to the center of 'b'
a+x5 -> b;    //From five pixels right of the center of 'a'
a+x5+y5 -> b; //From five pixels right and down from the center of 'a'
a -> b-5;     //From the center of 'a' to the center of 'b' - but stop 5 pixels before 'b'