Hy jeff and thanks to give always an answer to my doubts.
The function write is called every time that button 1 is pressed,it doesn't matter if it held down or not.
Anyway,I have found on this forum a similar post,in which you suggested to use the pencil from the tools module.
This is the code and it works:
Code:
import viz
import vizact
import vizshape
import vizact
import vizmat
import viztask
viz.go()
viz.MainView.setPosition(0,0,-40)
viz.clearcolor(viz.GRAY)
sensable=viz.add('sensable3.dle')
device=sensable.addHapticDevice()
device.workspace.setScale([10,10,10])
from tools import pencil
tool=pencil.Pencil()
pen=viz.add('art/pencil.obj')
pen.setPosition([0,0,-2])
pen.setScale([0.05,0.05,0.05])
cube=viz.add('art/box.wrl')
cube.color(0,0,0)
cube.setScale([35,20,0.1])
cube1=viz.add('art/box.wrl')
cube1.setPosition([-17.5,0,0])
cube1.setScale([1,21,0.2])
cube1.color(0,255,0)
cube2=viz.add('art/box.wrl')
cube2.color(0,255,0)
cube2.setPosition([17.5,0,0])
cube2.setScale([1,21,0.2])
cube3=viz.add('art/box.wrl')
cube3.color(0,255,0)
cube3.setPosition([0,10,0])
cube3.setScale([35,1,0.2])
cube4=viz.add('art/box.wrl')
cube4.color(0,255,0)
cube4.setPosition([0,-10,0])
cube4.setScale([35,1,0.2])
myButton = viz.addButtonLabel('Erase')
myButton.setPosition(0.5,0.1,0)
myButton.setScale(3,1,1)
count=0
def MyTask():
while True:
yield viztask.waitButtonDown(myButton)
tool.clear()
viztask.schedule( MyTask())
def UpdateModel():
line = viz.MainWindow.screenToWorld(device.getPosition())
pen.setPosition(line.endFromDistance(40))
vizact.ontimer(0,UpdateModel)
def write(e):
if e.button==0:
update(tool)
viz.link(pen,tool)
viz.callback(viz.SENSOR_DOWN_EVENT,write)
def update(tool):
tool.draw()
tool.setUpdateFunction(update)
The problem is that when i press the button of the stylus it starts drawing the trajectory but it never ends. I am looking to implement some control so that when the button is pressed again the trajectory is not drawn, and again if i press the button for the third time the system starts again drawing the trajecotry.I hope it is clear

Suggestions?
I need something like when you enter in this function,execute and repeat it until this event happens. The problem is that with the while loop everything freeze