[9bdedb]: maxima-pre59 / bin / mgnuplot  Maximize  Restore  History

Download this file

104 lines (81 with data), 2.5 kB

#!/usr/local/bin/wish -f


#set gnuPlotstream [open {|  gnuplot /d19/staff/wfs/tmp/jo } w]
set gnuPlotstream [open {|  gnuplot  } r+]


proc sendgnu com {
    global gnuPlotstream
    puts stdout $com ; flush stdout
    puts $gnuPlotstream $com ; flush $gnuPlotstream
}

set ii 0
while {$ii < $argc} {
 switch -exact "X[lindex $argv $ii]"  {
    X-parametric3d {
sendgnu "set parametric\n" 
sendgnu "set data style lines\n"
sendgnu "set hidden\n"
set ii [expr {$ii + 1}]
sendgnu "splot '[lindex $argv $ii]'\n" }
}
set ii [expr {$ii +1}]
}  
set xrot 60
set zrot 30


text .text
.text configure -height 4 -width 40

proc getoptions {} {
#    unlink gnu-optionsxx
    set tmp gnu-optionsxx
    exec rm -f $tmp
    sendgnu "save '$tmp'\n"
    while {[file exists $tmp] <= 0} {exec sleep 0}
    set at [.fra.options nearest 0]
    set f [ open gnu-optionsxx ]
    .fra.options delete 0 end
    while { [gets $f line] >= 0 } {
	.fra.options insert end [lrange $line 0 end ]}
    .fra.options yview $at	
    }

frame .fra -bd 2
label .fra.label -text "Current Set Options"
scrollbar .fra.scroll -command ".fra.options yview"    
listbox .fra.options -yscrollcommand ".fra.scroll set" -relief sunken -bd 2
pack .fra.label
pack .fra.options -side left
pack .fra.scroll -side right -fill y
bind .fra.options <Double-1> "set selected_option  \[lindex \[selection get\] 0\]"
frame .option_edit

proc msg a {global $a
 sendgnu [format "%s\n\nreplot\n" [expr $$a]] ;
 set $a ""
 getoptions}
 
proc mkOption_edit {a b} {
    global $b
   label $a.label -text "Edit: "
   entry $a.entry -width 20 -relief sunken -bd 2 -textvariable $b
    bind $a.entry  <Return> "msg  $b"
   pack $a.label $a.entry -side left -padx 1m -pady 2m
}

mkOption_edit .option_edit selected_option


getoptions

button .exit -text "Exit" -command {
    sendgnu  "exit\n"
    destroy .
}

button .save -text "save gnuplot.out" -command {
    sendgnu "save 'gnuplot.out'\n"
 }

scale .rotxscale -label "xrotation"  \
   -orient horizontal -length 200 -from 0 -to 180 \
    -command gnuPlotsetview -tickinterval 60
scale .rotzscale -label "zrotation" \
    -orient horizontal -length 200 -from 0 -to 360 \
    -command gnuPlotsetview -tickinterval 120

set initted 0
.rotxscale set $xrot
.rotzscale set $zrot

proc gnuPlotsetview value  {
    global initted
    if { $initted < 2 } { set initted [expr {$initted + 1}]} \
    else \
    {sendgnu [format "set view %d,%d\nreplot\n" [.rotxscale get] [.rotzscale get]]}}

pack .exit   .rotxscale .rotzscale .fra .option_edit .save


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks