Examples:
The following VBA example constrains control point angles to increments of 45°. Each control-point vector is rotated to the closest angle that is a multiple of 45°.
Sub Test()
Dim s As Shape
Dim seg As Segment
Set s = ActiveShape
If s.Type = cdrCurveShape Then
For Each seg In s.Curve.Segments
If seg.Type = cdrCurveSegment Then
seg.StartingControlPointAngle = Constrain(seg.StartingControlPointAngle)
seg.EndingControlPointAngle = Constrain(seg.EndingControlPointAngle)
End If
Next seg
End If
End Sub Private Function Constrain(a As Double) As Double
Constrain = Fix(a / 45 + 0.5) * 45 End Function