A new new new newer version of LB is available!
http://laserboy.org/code/LaserBoy_2015_02_23.zipI added a couple of new features and several new settings.
LB now does proximity based curve fitting (of a sort).
If you go into menu [Tab] system value settings, you can set option 2 insignificant distance. The default is 60.
This value has always been there for wave import normalization, but now it serves as a parameter for minimizing the loaded frame set.
If you look in menu h frame transforms, you'll see some new functions have been added and the key values are slightly different.
Option f fit to insignificant distance is the function itself. You can apply it to the art directly with the f key, and it is also included in the minimization process.
I have found that insignificant distance (in the [Tab] menu) can be set as high as option 3 max optimized lit vector in points with very nice results, depending on the art you apply it to.
For example, I can set option c rendered arc angle in degrees to something very small like 0.2 and then go into menu m render segments by coordinates and draw some really nice curvy math figures. The rendered arc angle determines how the curve is quantized into individual vertices. The smaller the arc step the more points there will be.
Then I can go into menu h and hit k to minimize and the points along the curve are reduced in number but the curve is still nicely fitted.
Be aware that using a high number for insignificant distance can really wreck art with a lot of small details.
Another function I just added is called conglomerate segments. It looks at all the lit segments in a frame to see of any of the ends meet. If so it glues those segments together into one continuous lit segment. If there are multiple segment ends that match, it looks at all of them and chooses the one that requires the least change in direction.
I have found that DXF imports can be all broken up into individual vectors in the wrong order, even though you might have drawn the image using POLYLINE.
This function will fix that.
It can be a very time consuming function when there are a lot of individual lit segments. The number of calculations it takes is exponentially related to how many items it has to sort.
In menu x system switch settings there are two new settings; 8 conglomerate in minimize and 9 fracture conglomerate. The first one tells LB whether it should use this function during minimization or not. The second one tells LB if it should fracture all of the segments into individual lit vectors before sorting them out and conglomerating them.
One other feature I added is in the u user interface visuals menu. Now you can choose to have the menu font with an opaque background. This makes it easier to read over a lot of detailed vector art.
James.