Re: parallel lines still crash program


Adam Richards
 
Edited

A couple of notes on PolyLines. 

1. You can't delete the endpoints (today). 
2. You can only delete a mid point if it is selected.
3. Also there is no line/polyline split function (one has just been requested as a new feature). The Draw object support in the program has been less advanced than tracks and it will take time to sort out. You can "split" a Polygon by making it into a Polyline "open" but it only works by omitting the line from last to first point.

About Parallel Line itself:

1. If a Draw element was moved or rotated, Parallel Line would ignore the origin and angle. This alone explains a lot of the results complained about. The new code acts appropriately when the origin is non-zero, or the angle is set.
2. Bezier Lines were completely missing from Parallel Line function - although they would highlight as though they could be paralleled. So a Bezier Track Parallel Line could produce a Bezier line that that the same function could not then use for another line - (would do nothing with no error messages).  I have added the needed function call.
3. The Parallel Bezier function was also imprecise in point setting - especially if the end point angles were not roughly co-linear.  I think the right way to do this has now been discovered - by moving each control point separately based on its own end's angle. 
4. I was in a quandary about how to do parallel Polylines (or Polygons) properly when it was written so the current code punted and essentially did an offset copy. I think the right answer is to offset each point to the same hand side as cursor by looking at the two line segment angles at the point individually and moving the point based on the split of the vertex angle. I have put up new code for this - it seems to work well in test. 
5. As a bonus I supported Polygons (and filled polygons) with Parallel Lines - so now you can have concentric rectangles and so forth.

Adam

Join main@xtrackcad.groups.io to automatically receive all group messages.