Index: lib/machine/machine_0.1.tcl ================================================================== --- lib/machine/machine_0.1.tcl +++ lib/machine/machine_0.1.tcl @@ -119,13 +119,31 @@ if {$v(doSpiral)} { drawPathInCanvas $w.view [spiralOutXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsSpiral)] 1 {-fill purple -arrow none} drawPathInCanvas $w.view [spiralInXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsSpiral)] 1 {-fill pink -arrow none} } } + proc buildExercise {} { - + variable v + gcode::write::open + gcode::write::display "Motor Exercise" + $w.view delete all + if {$v(doOpositeSides)} { + gcode::write::path -move [squareCrissCrossXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsOpositeSide)] 25 {-fill blue} + } + if {$v(doOpositeCircle)} { + gcode::write::path -move [roundCrissCrossXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsOpositeCircle)] 25 {-fill green} + } + if {$v(doSideStitch)} { + gcode::write::path -move [stitchSidesXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsStitchSides)] 25 {-fill white} + } + if {$v(doSpiral)} { + gcode::write::path -move [spiralOutXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsSpiral)] 1 {-fill purple -arrow none} + gcode::write::path -move [spiralInXY $v(x0) $v(y0) $v(x1) $v(y1) $v(segsSpiral)] 1 {-fill pink -arrow none} + } } + proc drawPathInCanvas {c path {delay 0} {pathArgs {}}} { set pathPt [lassign $path P0] lassign $P0 x0 y0 foreach pt $pathPt { lassign $pt x1 y1 @@ -180,32 +198,32 @@ set Xc [expr {$X0+$X1/2}] set Yc [expr {$Y0+$Y1/2}] set width [expr {$X1-$X0}] set height [expr {$Y1-$Y0}] set R [expr {min(abs($X1-$X0)/2,abs($Y1-$Y0)/2)}] - for {set i 0} {$i <= $N} {incr i} { + for {set i 0} {$i < $N} {incr i} { set x0 [expr {1.0*($width/$N)*$i+$X0}] set y0 [expr {$Y0}] set x1 [expr {$X1}] set y1 [expr {1.0*($height/$N)*$i+$Y0}] lappend path [list $x0 $y0] [list $x1 $y1] } - for {set i 0} {$i <= $N} {incr i} { + for {set i 0} {$i < $N} {incr i} { set x0 [expr {$X1}] set y0 [expr {1.0*($height/$N)*$i+$Y0}] set x1 [expr {$X1-1.0*($width/$N)*$i}] set y1 [expr {$Y1}] lappend path [list $x0 $y0] [list $x1 $y1] } - for {set i $N} {$i >= 0} {incr i -1} { + for {set i $N} {$i > 0} {incr i -1} { set x0 [expr {1.0*($width/$N)*$i+$X0}] set y0 [expr {$Y1}] set x1 [expr {$X0}] set y1 [expr {1.0*($height/$N)*$i+$Y0}] lappend path [list $x0 $y0] [list $x1 $y1] } - for {set i $N} {$i >= 0} {incr i -1} { + for {set i $N} {$i > 0} {incr i -1} { set x0 [expr {$X0}] set y0 [expr {1.0*($height/$N)*$i+$Y0}] set x1 [expr {$X1-1.0*($width/$N)*$i}] set y1 [expr {$Y0}] lappend path [list $x0 $y0] [list $x1 $y1]