<div dir="ltr">Hi again,<br><br>I have modified the code a bit. Used Assembly to add lines and cursoe, so that we can rotate the entire cursor easily.<br><br>Here is the modified code<br><br><b><span style="color: rgb(0, 0, 153);">import vtk</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">import numpy as np</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">color=[1,1,0]</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Bounds=[-110,110,-110,110,0,0]</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Cursor=vtk.vtkCursor2D()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.SetModelBounds(Bounds)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.SetFocalPoint(0,0,0)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Cursor.AllOn()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.AxesOn()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.OutlineOff()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Cursor.SetRadius(1)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">mapper=vtk.vtkPolyDataMapper()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">mapper.SetInputConnection(Cursor.GetOutputPort())</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">actor=vtk.vtkActor()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">actor.SetMapper(mapper)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">actor.GetProperty().SetColor(color)</span><br style="color: rgb(0, 0, 153);">
<br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">def CreateTicks(Cursorolor,CursorursorBounds,TickInterval):</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    XTicks=list()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">    YTicks=list()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    XBoundsRight=CursorursorBounds[0]</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    XBoundsLeft=CursorursorBounds[1]</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">    YBoundsRight=CursorursorBounds[2]</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    YBoundsLeft=CursorursorBounds[3]</span><br style="color: rgb(0, 0, 153);">
<br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    for x in range(XBoundsRight+TickInterval,XBoundsLeft,TickInterval):</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        print x</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        XTick=vtk.vtkLineSource()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        XTick.SetPoint1(x,5,0)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        XTick.SetPoint2(x,-5,0)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        XTick.Update()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        XTickMapper=vtk.vtkPolyDataMapper()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        XTickMapper.SetInputConnection(XTick.GetOutputPort())</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        XTickActor=vtk.vtkActor()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        XTickActor.SetMapper(XTickMapper)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        XTickActor.GetProperty().SetColor(color)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        XTicks.append(XTickActor)</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    for y in range(YBoundsRight+TickInterval,YBoundsLeft,TickInterval):</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        #print y</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        YTick=vtk.vtkLineSource()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        YTick.SetPoint1(5,y,0)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        YTick.SetPoint2(-5,y,0)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        YTick.Update()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        YTickMapper=vtk.vtkPolyDataMapper()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        YTickMapper.SetInputConnection(YTick.GetOutputPort())</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        YTickActor=vtk.vtkActor()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        YTickActor.SetMapper(YTickMapper)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">        YTickActor.GetProperty().SetColor(color)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">        YTicks.append(YTickActor)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">    return XTicks,YTicks</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);">
<br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">XTicks,YTicks=CreateTicks((1,1,0),Bounds,10)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">NumOfXTicks= np.size(XTicks)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">NumOfYTicks= np.size(YTicks)</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Ren=vtk.vtkRenderer()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Assembly=vtk.vtkAssembly()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Assembly.AddPart(actor)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">for x in range(0,NumOfXTicks,1):</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">    Assembly.AddPart(XTicks[x])</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">for y in range(0,NumOfYTicks,1):</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">    Assembly.AddPart(YTicks[y])</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Assembly.RotateZ(45)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Ren.AddActor(Assembly)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">RenWin=vtk.vtkRenderWindow()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">RenWin.AddRenderer(Ren)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">RenWin.Render()</span></b><br>
<br><br>Thanks,<br><br>Jothy<br><br><div class="gmail_quote">On Sun, Apr 18, 2010 at 5:54 PM, Jothybasu K Selvaraj <span dir="ltr">&lt;<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr">Hi Guys,<br><br>I have managed to create a digital graticule, but the distance of the ticks doesn&#39;t match properly.Basically its stitching together a cursor2D &amp; small line from vtkLineSource.<br><br>

If anyone can figure it out, I request them to create a c++ class and sub,it that to the developer list as a convenience class.<br><br>Thanks,<br><br>Jothy <br><br><br><br><br><br>import vtk<br>import numpy as np<br>color=[1,1,0]<br>

Bounds=[-110,110,-110,110,0,0]<br>Cursor=vtk.vtkCursor2D()<br>Cursor.SetModelBounds(Bounds)<br>Cursor.SetFocalPoint(0,0,0)<br>Cursor.AllOn()<br>Cursor.AxesOn()<br>Cursor.OutlineOff()<br>Cursor.SetRadius(1)<br>mapper=vtk.vtkPolyDataMapper()<br>

mapper.SetInputConnection(Cursor.GetOutputPort())<br>actor=vtk.vtkActor()<br>actor.SetMapper(mapper)<br>actor.GetProperty().SetColor(color)<br><br><br>def CreateTicks(Cursorolor,CursorursorBounds,TickInterval):<br>    XTicks=list()<br>

    YTicks=list()<br>    XBoundsRight=CursorursorBounds[0]<br>    XBoundsLeft=CursorursorBounds[1]<br>    YBoundsRight=CursorursorBounds[2]<br>    YBoundsLeft=CursorursorBounds[3]<br><br>    for x in range(XBoundsRight+TickInterval,XBoundsLeft,TickInterval):<br>

        print x<br>        XTick=vtk.vtkLineSource()<br>        XTick.SetPoint1(x,5,0)<br>        XTick.SetPoint2(x,-5,0)<br>        XTick.Update()<br>        XTickMapper=vtk.vtkPolyDataMapper()<br>        XTickMapper.SetInputConnection(XTick.GetOutputPort())<br>

        XTickActor=vtk.vtkActor()<br>        XTickActor.SetMapper(XTickMapper)<br>        XTickActor.GetProperty().SetColor(color)<br>        XTicks.append(XTickActor)<br><br>    for y in range(YBoundsRight+TickInterval,YBoundsLeft,TickInterval):<br>

        #print y<br>        YTick=vtk.vtkLineSource()<br>        YTick.SetPoint1(5,y,0)<br>        YTick.SetPoint2(-5,y,0)<br>        YTick.Update()<br>        YTickMapper=vtk.vtkPolyDataMapper()<br>        YTickMapper.SetInputConnection(YTick.GetOutputPort())<br>

        YTickActor=vtk.vtkActor()<br>        YTickActor.SetMapper(YTickMapper)<br>        YTickActor.GetProperty().SetColor(color)<br>        YTicks.append(YTickActor)<br>    return XTicks,YTicks<br><br><br>XTicks,YTicks=CreateTicks((1,1,0),Bounds,10)<br>

NumOfXTicks= np.size(XTicks)<br>NumOfYTicks= np.size(YTicks)<br><br><br>Ren=vtk.vtkRenderer()<br>Ren.AddActor(actor)<br>for x in range(0,NumOfXTicks,1):<br>    Ren.AddActor(XTicks[x])<br><br>for y in range(0,NumOfYTicks,1):<br>

    Ren.AddActor(YTicks[y])<br><br><br>RenWin=vtk.vtkRenderWindow()<br>RenWin.AddRenderer(Ren)<br>RenWin.Render()<br><br></div>
</blockquote></div><br></div>