[ltk-user] Can't get SCALE value

JW james.robert.watson at gmail.com
Sun Dec 16 01:19:48 UTC 2012


I am having two problems with SCALE.  

1. I cannot set bounds to anything other than integers.  For example:
(make-instance 'scale :from 0 :to (* 2 pi) ...
gives me an error.

2. I am unable to retrieve the :VARIABLE value

In the below, vales of UPPER-THETA and FORE-THETA never seem to be anything but 
0, no matter where I slide the scale.  I have tested all the drawing an update 
code, I am stumped!

(defun controltest ()
  "Test of a user-controlled robot arm"
  (with-ltk ()
    (let* ((upper-theta 0) (fore-theta 0)
	   (upper-slider 
	    (make-instance 'scale :from 0 :to 7 
			   :length  360 :variable upper-theta))
	   (fore-slider 
	    (make-instance 'scale :from 0 :to 7
			   :length  360 :variable fore-theta))
	   (cnvs (make-instance 'canvas :width cnvs-width :height cnvs-height))
	   (upper (manip:uctk-beam :cen-x 200 :cen-y 200 
				   :b-length 40 :b-width 20
				   :tk-cnvs cnvs))
	   (fore (manip:uctk-beam :cen-x 0 :cen-y 40 ; relative to upper
				  :b-length 40 :b-width 20
				  :tk-cnvs cnvs))
	   (slp-time 50) #|ms|# )
      (labels ((update ()
		 (draw upper nil) ; contains FORE, no need to draw separately
		 (geo:set-member-theta upper 2 fore-theta)
		 (geo:set-theta upper upper-theta)
		 (after slp-time #'update)))
	(geo:add-geo upper fore) ; make FORE a member of UPPER
	(pack cnvs :fill :both :expand 1)
	(pack upper-slider :side :bottom)
	(pack fore-slider :side :bottom)
	(update)))))





More information about the ltk-user mailing list