moving multiple points on a spline
Taus Moller Aug 7, 2015 8:11 AMI wish to move multiple points on a spline at the same time. The way i currently achieve moving a point is through the X and Y properties on the ISketchPoint interface. Every time X or Y is modified the sketch is solved. If the sketch solving fails, e.g if there is a self intersection, the point is reset to its previous value. Now if i intend to mover several points on a spline, there is a pretty good chance that after moving one of the points, the spline might intersect itself even though the final spline is valid. This might even happen when moving a single point moving one coordinate before the other.
I have attached a scenario with a before and after picture. Here a single point is moved. The move requires the point to move upwards and to the right. If the X coordinate is updated the sketch solves fine, and the Y coordinate can be updated. If the order is the other way round, and the Y coordinate is update first the spline intersects it self and the move is rejected. When the X value is subsequently moved and the point would end up with the correct X coordinate but the wrong Y coordinate. If it was only a single point one could just try them in any order. However when moving multiple point this will not work.
It is fairly simple to create a curve C and alternative curve C' where each point c in C maps to a point c' in C' such that no point c can move to the matching point c' without C self intersecting. Thus this curve would be impossible to update one point at a time. Creating a new curve is also not an option as all auxillary data like relations etc. will be lost.
Is it possible to delay the sketch solve until all points are moved?

after.png 13.4 KB

before.png 14.5 KB