Seamly2D icon indicating copy to clipboard operation
Seamly2D copied to clipboard

NEW TOOLS: Darts

Open sconklin opened this issue 7 years ago • 4 comments

This Dart tool has been talked about quite a bit for years, it never seems to make it into the issues list.

Result of the Dart Tool is four new points:
1 Dart vertex p1d1 1 Dart midpoint p4d1 2 Dart leg points p2d1, p3d1

Four options: Dart on Line &Dart on Curve, each can use a) Width and Depth or b) rotation angle and depth

=========================== Dart on a line, using Width & Length

Parameters:

  • Points of the line = L1, L2
  • Length - Distance from L1 to the dart midpoint position on the line
  • Width = Width of the dart
  • Depth = Enter distance from dart midpoint to the dart vertex
  • Angle = Angle of dart from midpoint to vertex, relative to AngleLine_L1_L2, default is clockwise perpendicular to the line (AngleLine_L1_L2 - 90)
  • Dart suffix = 'd1'

The tool calculates: Only px points are permanent...

  • m1 = midpoint = Point Along Line at Distance from L1 to L2 using 'Length' (temporary)
  • p1d1 = vertex = Point at Distance & Angle from m1 using 'Depth' and 'Angle'
  • l1 = dart leg nearest L1 = Point Along Line at Distance from m1 to L1 using 'Width/2' (temporary)
  • l2 = dart leg nearest L2 = Point Along Line at Distance from m1 to L2 using 'Width/2' (temporary)
  • p2d1, p3d1 = True Dart of L1, L2, l1, p1d1, l2
  • Draw Line_p2d1_L1, Line_p3d1_L2, Line_p1d1_p2d1, Line_p1d1_p3d1, hidden line Line_p1d1_m1
  • f1 = fold line point = Intersect Line & Axis along Line_p2d1_L1, from p1d1 at 2*AngleLine_p1d1_p2d1 minus AngleLine_p1d1_m1 (temporary)
  • Draw Line_p1d1_f1
  • p4d1 = Point Along Line at Distance from p1d1 to m1 using distance Line_p1d1_f1
  • Delete Line_p1d1_m1, Line_p1d1_f1, f1
  • Hide l1, l2 =================

Dart on a curve, using Width & Depth:

Similar to Dart along Line except:

  • midpoint m1 is created with Segment curve or spline tool
  • Angle of dart (default is perpendicular to the tangent at m1 on the curve)
  • f1 is Intersect Curve and Axis
  • Draw curve from L1 to p2d1 using 1st angle from original curve and 2nd angle = AngleLine_p1d1_p2d1 + 90
  • Draw curve from p3d1 to L2 using 1st angle = AngleLine_p1d1_p3d1 - 90 and 2nd angle of orginal curve

sconklin avatar Nov 23 '17 14:11 sconklin