[GRASS5] nviz problem

Hi,

Your fix doesn't work:
----------------------
GRASS 5.7.cvs:~/tmp > cat i
#!/bin/sh
exec nviz -f $GISBASE/etc/nviz2.2/scripts/nviz2.2_script "$@"
GRASS 5.7.cvs:~/tmp > ./i
Illegal filename. character </> not allowed.Error: Raster /home/geni/usr/grass/grass51/dist.i686-pc-cygwin/etc/nviz2.2/scripts/nviz2.2_script does not exist in current Mapset
Load Failed
GRASS 5.7.cvs:~/tmp >
----------------------

nviz2.2_script is not a map but a script. The error message comes from the
grass parser library not from tcl/tk. I think nviz is a grass module itself,
so it doesn't accept parameters except grass ones.

If -f option is given:
nviz -f nviz_script grass parameters

Otherwise:
nviz -- grass parameters

This is what I understand, but where does nviz do something for "-f"
option? I cannot find it.

When I run "nviz -f elev=dem500" which should be wrong, nviz displays
dem500 and tries to find "elev=dem500" script without success:
----------------------
Loading Data
translating colors from fp
recalculating normals...
Error in startup script: couldn't read file "elev=dem500": no such file
or directory
----------------------

I think the tcl/tk parser conflicts with the grass parser and maybe
tcl/tk sould have a priority here.

Thank you.
Huidae Cho

On Mon, Dec 20, 2004 at 09:18:11AM -0400, Bob Covill wrote:

Hi,

I was finally able to duplicate the background error on my RedHat 7.3
system. For some reason it works fine on my RedHat 9 system.

I have searched the Tcl/Tk archives for documentation of similar
problems, but found nothing.

In the meantime I have got the following script to work.

#!/bin/sh
exec nviz -f $GISBASE/etc/nviz2.2/scripts/nviz2.2_script "$@"

This seems to work if started in the foreground or background, but I
have not tested it properly. In order to use the above script you have
to first edit nviz_init.c in visualization/nviz/src and comment out the
following line ...

    if (!script_mode)
            Tcl_Eval(interp, nviz_script); /* source nviz_script to
start main window */

After commenting, rebuild nviz and run the above script. Hopefully this
will work for you.

Now that I have an idea of where the problem is originating, hopefully I
can figure out a more permanent solution. Suggestions welcome.

--
Bob

Huidae Cho wrote:
>Hi, output is the following:
>
>GRASS 5.7.cvs:~/tmp > cat a
>#!/bin/sh
>exec nviz "$0" "$@"
>GRASS 5.7.cvs:~/tmp > ./a elev=dem&
>[1] 1112
>GRASS 5.7.cvs:~/tmp > Loading Data
>Loading Data
>translating colors
>recalculating normals...
>% w 100
>
>[1]+ Stopped ./a elev=dem
>GRASS 5.7.cvs:~/tmp >
>
>It stops just after displaying map and empty control windows and
>if I "fg", it starts working again.
>
>I think behavior is not consistent from system to system.
>
>
>Huidae Cho
>
>
>On Sat, Dec 18, 2004 at 04:29:33PM +0000, Bob Covill wrote:
>
>>Hi,
>>
>>
>>
>>This is an interesting one. If I execute something like "nviz -q &", nviz
>>
>>starts up normally with the wish (%) prompt. If I hit enter at the prompt
>>I
>>
>>am returned to the normal command line prompt and can run other commands
>>
>>(while nviz is running). When I quit nviz I get the respone on the command
>>
>>line ...
>>
>>[1]+ Done nviz -q
>>
>>which is what I would expect from a command that has been running in the
>>
>>background.
>>
>>
>>
>>Out of curiousity try creating a simple startup script with the following:
>>
>>
>>
>>#!/bin/sh
>>
>>exec nviz "$0" "$@"
>>
>>
>>
>>Make it executable and try running it in the background. For example if
>>you
>>
>>name the script nv_start.sh, try "nv_start.sh elev=dem &" and see if that
>>
>>works.
>>
>>
>>
>>--
>>
>>Bob
>>
>>
>>
>>
>>
>>On 12/18/2004, "Huidae Cho" <grass4u@gmail.com> wrote:
>>
>>
>>
>>
>>>Interesting!
>>
>>>Is wish running in background? As I know, a shell-like program cannot be
>>
>>>running in that way because if it's bg'ed or run with "&", /bin/sh or
>>
>>>the login shell takes control of stdin so that users can stay in the
>>>login
>>
>>>shell.
>>
>>>If it's executed by a script, then it's ok because it's a usual shell
>>
>>>script.
>>
>>>Do you mean running "nviz" and executing other programs in the "%" nviz
>>
>>>prompt instead of running "nviz &"?
>>
>>>If wish is running in background (wish &), how can you execute wish
>>
>>functions?
>>
>>
>>>Thank you.
>>
>>>Huidae Cho
>>
>>>On Sat, Dec 18, 2004 at 01:22:50PM +0000, Bob Covill wrote:
>>
>>>>Hi,
>>>
>>>>It appears that not even wish will run in the background on your system
>>>
>>...
>>
>>
>>>>very strange.
>>>
>>>>The current nviz IS the old NVWISH executable which was called was
>>>>called
>>>
>>by
>>
>>
>>>>the old nviz shell script. The reason I got rid of the shell script was
>>>
>>>>because when nviz encountered an error the same un-informitive message
>>>
>>was
>>
>>
>>>>generated because it was passed through the script. Also, there are a
>>>
>>number
>>
>>
>>>>of error catches in the actual nviz tcl scripts which were completely
>>>
>>ignored
>>
>>
>>>>with the old shell startup.
>>>
>>>>Before reverting to the old startup it would be nice to know why wish
>>>
>>(and
>>
>>
>>>>nviz) will not run in the background on some systems. On both of my
>>>
>>RedHat
>>
>>
>>>>systems it runs fine both in the background and the foreground.
>>>
>>>>--
>>>
>>>>Bob
>>>
>>>>On 12/18/2004, "Huidae Cho" <grass4u@gmail.com> wrote:
>>>
>>>>>Hi,
>>>>
>>>>>Now nviz is not a *wish script but a shell itself. That's why it prints
>>>>
>>>>>a prompt and we cannot execute it background and inside "d.m &". To fix
>>>>
>>>>>this problem, I think we should go back to NVWISH because running nviz
>>>>
>>>>>foreground is pain.
>>>>
>>>>>You can test this:
>>>>
>>>>> wish &
>>>>
>>>>>prints % prompt and just stop!
>>>>
>>>>>Huidae Cho
>>>>
>>>>>On Fri, Dec 17, 2004 at 09:02:39PM -0400, Bob Covill wrote:
>>>>
>>>>>>Hello,
>>>>>
>>>>>>I tried running the latest version of nviz in the background with
>>>>>
>>>>>>various options and it seems to work fine. The "%" prompt that you see
>>>>>
>>>>>>is perfectly normal. The nviz program is simply a customized version
>>>>>
>>of
>>
>>
>>>>>>the Tcl/Tk "wish" executable. Try executing "wish" on the command line
>>>>>
>>>>>>and you should see the same prompt.
>>>>>
>>>>>>As for it crashing when it is run in the background, I have no idea.
>>>>>
>>You
>>
>>
>>>>>>might try changing GRASS_MESSAGE_FORMAT environment variable to see if
>>>>>
>>>>>>that has any effect.
>>>>>
>>>>>>It might help to know what platform and Tcl/Tk version it is failing
>>>>>
>>on.
>>
>>
>>>>>>For me it works on RedHat 7.3 with Tk8.3, and RedHat 9 with Tk8.4.
>>>>>
>>>>>>--
>>>>>
>>>>>>Bob
>>>>>
>>>>>>Helena wrote:
>>>>>
>>>>>>>Huidae Cho wrote:
>>>>>>
>>>>>>>>Hi,
>>>>>>>
>>>>>>>>I noticed today that nviz doesn't work if I run it background as
>>>>>>>
>>>>before.
>>>
>>>>>>>>Similarly, it just stops after displaying a map when it's executed
>>>>>>>
>>from
>>
>>
>>>>>>>>"d.m &" which is recommended in the welcome message.
>>>>>>>
>>>>>>>>nviz elevation=dem & # doesn't work
>>>>>>>
>>>>>>>>d.m & # nviz doesn't work
>>>>>>>
>>>>>>>>nviz elevation=dem # works!
>>>>>>>
>>>>>>>>d.m # nviz works!
>>>>>>>
>>>>>>>>And I see nviz prints % prompt. Does anyone have a clue?
>>>>>>>
>>>>>>>It must be the latest change that was done - I just tried it and it
>>>>>>
>>>>>>>does not work even if I do nviz elevation=dem, it displays the DEM
>>>>>>
>>>>>>>but fails to open the Main pannel and prints a % prompt.
>>>>>>
>>>>>>>It worked OK just a few days (weeks?) ago.
>>>>>>
>>>>>>>It may be related to the change in the startup script - Bob, are you
>>>>>>
>>>>>>>around? How does it work for you?
>>>>>>
>>>>>>>Helena
>>>>>>
>>>>>>>>Thanks.
>>>>>>>
>>>>>>>>Huidae Cho
>>>>>>>
>>>>>>>>_______________________________________________
>>>>>>>
>>>>>>>>grass5 mailing list
>>>>>>>
>>>>>>>>grass5@grass.itc.it
>>>>>>>
>>>>>>>>http://grass.itc.it/mailman/listinfo/grass5
>>>>>>>
>>>_______________________________________________
>>
>>>grass5 mailing list
>>
>>>grass5@grass.itc.it
>>
>>>http://grass.itc.it/mailman/listinfo/grass5
>>
>
>

--
Bob Covill

Tekmap Consulting
P.O. Box 2016
Fall River, N.S.
B2T 1K6
Canada

E-Mail: bcovill@tekmap.ns.ca
Phone: 902-860-1496
Fax: 902-860-1498

----- End forwarded message -----