⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 axis.tcl

📁 CNC 的开放码,EMC2 V2.2.8版
💻 TCL
📖 第 1 页 / 共 4 页
字号:
wm iconname .keys {}wm resiz .keys 0 0wm minsize .keys 1 1wm protocol .keys WM_DELETE_WINDOW {wm wi .keys}# Grid widget ${pane_top}.feedoverridegrid ${pane_top}.feedoverride \	-column 0 \	-row 2 \	-sticky new# Grid widget ${pane_top}.spinoverridegrid ${pane_top}.spinoverride \	-column 0 \	-row 3 \	-sticky newgrid ${pane_top}.jogspeed \	-column 0 \	-row 4 \	-sticky newgrid ${pane_top}.ajogspeed \	-column 0 \	-row 5 \	-sticky new# Grid widget .infogrid .info \	-column 0 \	-row 5 \	-columnspan 2 \	-sticky ew# Grid widget ${pane_top}.previewgrid ${pane_top}.preview \	-column 1 \	-row 1 \	-columnspan 2 \	-rowspan 99 \	-sticky neswgrid ${pane_top}.tabs \	-column 0 \	-row 1 \	-sticky nesw \	-padx 2 \	-pady 2grid rowconfigure ${pane_top} 1 -weight 1grid columnconfigure ${pane_top} 1 -weight 1grid ${pane_bottom}.t \	-column 1 \	-row 1 \	-sticky neswgrid rowconfigure ${pane_bottom} 1 -weight 1grid columnconfigure ${pane_bottom} 1 -weight 1grid .top -column 0 -row 1 -sticky nsewgrid .bottom -column 0 -row 2 -sticky nsew# Grid widget .toolbargrid .toolbar \	-column 0 \	-row 0 \	-columnspan 3 \	-sticky neswgrid columnconfigure . 0 -weight 1grid rowconfigure . 1 -weight 1# vim:ts=8:sts=8:noet:sw=8set TASK_MODE_MANUAL 1set TASK_MODE_AUTO 2set TASK_MODE_MDI 3set STATE_ESTOP 1set STATE_ESTOP_RESET 2set STATE_OFF 3set STATE_ON 4set INTERP_IDLE 1set INTERP_READING 2set INTERP_PAUSED 3set INTERP_WAITING 4set TRAJ_MODE_FREE 1set KINEMATICS_IDENTITY 1set manual [concat [winfo children $_tabs_manual.axes] \    $_tabs_manual.jogf.zerohome.home \    $_tabs_manual.jogf.jog.jogminus \    $_tabs_manual.jogf.jog.jogplus \    $_tabs_manual.spindlef.cw $_tabs_manual.spindlef.ccw \    $_tabs_manual.spindlef.stop $_tabs_manual.spindlef.brake \    $_tabs_manual.flood $_tabs_manual.mist $_tabs_mdi.command \    $_tabs_mdi.go]proc disable_group {ws} { foreach w $ws { $w configure -state disabled } }proc enable_group {ws} { foreach w $ws { $w configure -state normal } }proc state {e args} {    set e [uplevel \#0 [list expr $e]]    if {$e} { set newstate normal } else {set newstate disabled}    foreach w $args {        if {[llength $w] > 1} {            set m [lindex $w 0]            for {set i 1} {$i < [llength $w]} {incr i} {                set idx [extract_text [_ [lindex $w $i]]]                set oldstate [$m entrycget $idx -state]                if {$oldstate != $newstate} {                    $m entryconfigure $idx -state $newstate                }            }        } else {            set oldstate [$w cget -state]            if {$oldstate != $newstate} {                $w configure -state $newstate            }        }    }}proc relief {e args} {    set e [uplevel \#0 [list expr $e]]    if {$e} { set newstate sunken } else {set newstate link }    foreach w $args { $w configure -relief $newstate }}proc update_title {args} {    if {$::taskfile == ""} {        wm ti . [_ "AXIS $::version (No file)"]        wm iconname . "AXIS"    } else {        wm ti . "[lindex [file split $::taskfile] end] - AXIS $::version"        wm iconname . "[lindex [file split $::taskfile] end]"    }}proc update_state {args} {    switch $::task_state \        $::STATE_ESTOP { set ::task_state_string [_ "ESTOP"] } \        $::STATE_ESTOP_RESET { set ::task_state_string [_ "OFF"] } \        $::STATE_ON { set ::task_state_string [_ "ON"] } \    relief {$task_state == $STATE_ESTOP} .toolbar.machine_estop    state  {$task_state != $STATE_ESTOP} \        .toolbar.machine_power {.menu.machine "Toggle _Machine Power"}    relief {$task_state == $STATE_ON}    .toolbar.machine_power     state  {$interp_state == $INTERP_IDLE && $taskfile != ""} \        .toolbar.reload {.menu.file "_Reload"}    state  {$taskfile != ""} \        .toolbar.reload {.menu.file "_Save gcode as..."}    state  {$interp_state == $INTERP_IDLE && $taskfile != "" && $::has_editor} \        {.menu.file "_Edit..."}    state  {$taskfile != ""} {.menu.file "_Properties..."}    state  {$interp_state == $INTERP_IDLE} .toolbar.file_open \        {.menu.file "_Open..." "_Quit"}    state  {$task_state == $STATE_ON && $interp_state == $INTERP_IDLE } \        .toolbar.program_run {.menu.machine "_Run program"} \        {.menu.file "Reload tool ta_ble"}    state  {$interp_state == $INTERP_IDLE && $::has_editor} \        {.menu.file "Edit _tool table..."}    state  {$task_state == $STATE_ON && $interp_state == $INTERP_IDLE} \        {.menu.machine "Homin_g" "_Zero coordinate system"}    relief {$interp_state != $INTERP_IDLE} .toolbar.program_run    state  {$task_state == $STATE_ON && $taskfile != ""} \                .toolbar.program_step {.menu.machine "S_tep"}    state  {$task_state == $STATE_ON && \      ($interp_state == $INTERP_READING || $interp_state == $INTERP_WAITING) } \                {.menu.machine "_Pause"}    state  {$task_state == $STATE_ON && $interp_state == $INTERP_PAUSED } \                {.menu.machine "Re_sume"}    state  {$task_state == $STATE_ON && $interp_state != $INTERP_IDLE} \                .toolbar.program_pause    relief {$interp_state == $INTERP_PAUSED} \                .toolbar.program_pause    state  {$task_state == $STATE_ON && $interp_state != $INTERP_IDLE} \                .toolbar.program_stop {.menu.machine "Stop"}    relief {$interp_state == $INTERP_IDLE} \                .toolbar.program_stop    state  {$::has_ladder} {.menu.file "_Ladder Editor..."}    state {$interp_state == $INTERP_IDLE && $highlight_line != -1} \                {.menu.machine "Set _next line"}    state {$::task_state == $::STATE_ON && $::interp_state == $::INTERP_IDLE\            && $spindledir != 0} \                $::_tabs_manual.spindlef.spindleminus \                $::_tabs_manual.spindlef.spindleplus    if {$::motion_mode == $::TRAJ_MODE_FREE && $::kinematics_type != $::KINEMATICS_IDENTITY} {        set ::position [concat [_ "Position:"] Joint]    } else {        set coord_str [lindex [list [_ Machine] [_ Relative]] $::coord_type]        set display_str [lindex [list [_ Actual] [_ Commanded]] $::display_type]        set ::position [concat [_ "Position:"] $coord_str $display_str]    }    if {$::task_state == $::STATE_ON && $::interp_state == $::INTERP_IDLE} {        if {$::last_interp_state != $::INTERP_IDLE || $::last_task_state != $::task_state} {            set_mode_from_tab        }        enable_group $::manual    } else {        disable_group $::manual    }    if {$::task_state == $::STATE_ON && $::interp_state == $::INTERP_IDLE &&        ($::motion_mode == $::TRAJ_MODE_FREE            || $::kinematics_type == $::KINEMATICS_IDENTITY)} {        $::_tabs_manual.jogf.jog.jogincr configure -state normal    } else {        $::_tabs_manual.jogf.jog.jogincr configure -state disabled    }    if {$::task_state == $::STATE_ON && $::interp_state == $::INTERP_IDLE &&        ($::motion_mode != $::TRAJ_MODE_FREE            || $::kinematics_type == $::KINEMATICS_IDENTITY)} {        $::_tabs_manual.jogf.zerohome.zero configure -state normal    } else {        $::_tabs_manual.jogf.zerohome.zero configure -state disabled    }    set ::last_interp_state $::interp_state    set ::last_task_state $::task_state}proc set_mode_from_tab {} {    set page [${::pane_top}.tabs raise]    switch $page {        mdi { ensure_mdi }        default { ensure_manual }    }}proc joint_mode_switch {args} {    if {$::motion_mode != $::TRAJ_MODE_FREE || $::kinematics_type == $::KINEMATICS_IDENTITY} {        $::_tabs_manual.axes.axisx configure -text X        $::_tabs_manual.axes.axisy configure -text Y        $::_tabs_manual.axes.axisz configure -text Z        $::_tabs_manual.axes.axisa configure -text A        $::_tabs_manual.axes.axisb configure -text B        $::_tabs_manual.axes.axisc configure -text C    } else {        $::_tabs_manual.axes.axisx configure -text 0        $::_tabs_manual.axes.axisy configure -text 1        $::_tabs_manual.axes.axisz configure -text 2        $::_tabs_manual.axes.axisa configure -text 3        $::_tabs_manual.axes.axisb configure -text 4        $::_tabs_manual.axes.axisc configure -text 5    }}proc queue_update_state {args} {     after cancel update_state    after idle update_state}set rotate_mode 0set taskfile ""set task_state -1set has_editor 1set has_ladder 0set last_task_state 0set task_mode -1set interp_pause 0set last_interp_state 0set interp_state 0set running_line -1set highlight_line -1set coord_type 1set display_type 0set spindledir {}set motion_mode 0set kinematics_type -1set metric 0set max_speed 1trace variable taskfile w update_titletrace variable taskfile w queue_update_statetrace variable task_state w queue_update_statetrace variable task_mode w queue_update_statetrace variable interp_pause w queue_update_statetrace variable interp_state w queue_update_statetrace variable running_line w queue_update_statetrace variable highlight_line w queue_update_statetrace variable spindledir w queue_update_statetrace variable coord_type w queue_update_statetrace variable display_type w queue_update_statetrace variable motion_mode w queue_update_statetrace variable kinematics_type w queue_update_statetrace variable motion_mode w joint_mode_switchset editor_deleted 0bind . <Control-Tab> {    set page [${pane_top}.tabs raise]    switch $page {        mdi { ${pane_top}.tabs raise manual }        default { ${pane_top}.tabs raise mdi }    }    break}# any key that causes an entry action should not continue to perform a# binding on "."foreach b [bind Entry] {    switch -glob $b {        <Shift-Key-*> - <Control-Key-*> -        <Meta-Key-*> - <Alt-Key-*> {            bind Entry $b {+if {[%W cget -state] == "normal"} break}        }    }}foreach b { Left Right        Up Down Prior Next Home        Left Right Up Down         Prior Next Home         End } {    bind Entry <KeyPress-$b> {+if {[%W cget -state] == "normal"} break}    bind Entry <KeyRelease-$b> {+if {[%W cget -state] == "normal"} break}}bind Entry <Control-KeyPress-Home> {+if {[%W cget -state] == "normal"} break}bind Entry <Control-KeyRelease-Home> {+if {[%W cget -state] == "normal"} break}bind Entry <Control-KeyPress-KP_Home> {+if {[%W cget -state] == "normal"} break}bind Entry <Control-KeyRelease-KP_Home> {+if {[%W cget -state] == "normal"} break}set bb [bind Entry <KeyPress>]foreach k { Left Right Up Down Prior Next            Home End } {    set b [bind Entry <$k>]    if {$b == {}} { set b $bb }    bind Entry <KeyPress-KP_$k> "if {%A == \"\"} { $b } { $bb; break }"    bind Entry <KeyRelease-KP_$k> {+if {[%W cget -state] == "normal"} break}}bind Entry <Key> {+if {[%W cget -state] == "normal" && [string length %A]} break}proc is_continuous {} {    expr {"[$::_tabs_manual.jogf.jog.jogincr get]" == [_ "Continuous"]}}proc show_all text {    $text yview moveto 0.0    update    set fy [lindex [$text yview] 1]    set ch [$text cget -height]    $text configure -height [expr {ceil($ch/$fy)}]}proc delete_all text {    set nl [lindex [split [$text index end] .] 0]    while {$nl >= 1500} {      $text delete 1.0 1000.end      incr nl -1000    }    $text delete 1.0 end}proc size_combobox_to_entries c {    set fo [$c cget -font]    set wi [font measure $fo 0]    set sz 4    foreach i [$c list get 0 end] {        set li [expr ([font measure $fo $i] + $wi - 1)/$wi]        if {$li > $sz} { set sz $li }    }    $c configure -width $sz}size_combobox_to_entries $_tabs_manual.jogf.jog.jogincrproc setval {vel max_speed} {    if {$vel == $max_speed} { return 1 }    if {$vel == 0} { return 0 }    set x [expr {-1/(log($vel/60./$max_speed)-1)}]    expr {round($x * 200.) / 200.}}proc val2vel {val max_speed} {    if {$val == 0} { return 0 }    if {$val == 1} { format "%32.5f" [expr {$max_speed * 60.}]    } else { format "%32.5f" [expr {60 * $max_speed * exp(-1/$val + 1)}] }}proc places {s1 s2} {    if {$s1 > 1 && int($s1) != int($s2)} {        return [expr {[string first . $s1]-1}]    }    set l1 [string length $s1]    set l2 [string length $s2]    for {set i 15} {$i < $l1 && $i < $l2} {incr i} {        set c1 [string index $s1 $i]        set c2 [string index $s2 $i]        if {$c1 != "0" && $c1 != "." && $c1 != $c2} { return $i }     }    return [string length $s1]}proc val2vel_show {val maxvel} {    set this_vel [val2vel $val $maxvel]    set next_places 0    set last_places 0    if {$val > .005} {        set next_vel [val2vel [expr {$val - .005}] $maxvel]        set next_places [places $this_vel $next_vel]    }    if {$val < .995} {        set prev_vel [val2vel [expr {$val + .005}] $maxvel]        set prev_places [places $this_vel $prev_vel]    }    if {$next_places > $last_places} {        string trim [string range $this_vel 0 $next_places]    } {        string trim [string range $this_vel 0 $last_places]    }}proc set_slider_min {minval} {    global pane_top    global max_speed    ${pane_top}.jogspeed.s configure -from [setval $minval $max_speed]}proc set_aslider_min {minval} {    global pane_top    global max_aspeed    ${pane_top}.ajogspeed.s configure -from [setval $minval $max_aspeed]}proc update_jog_slider_vel {newval} {    global jog_speed max_speed    set max_speed_units [to_internal_linear_unit $max_speed]    if {$max_speed_units == {None}} return    if {$::metric} { set max_speed_units [expr {25.4 * $max_speed_units}] }    set speed [val2vel_show $newval $max_speed_units];    set jog_speed $speed}proc update_units {args} {    if {$::metric} {        ${::pane_top}.jogspeed.l1 configure -text mm/min    } else {        ${::pane_top}.jogspeed.l1 configure -text in/min    }    update_jog_slider_vel $::jog_slider_val}proc update_ajog_slider_vel {newval} {    global jog_aspeed max_aspeed    set jog_aspeed [val2vel_show $newval $max_aspeed];}bind . <Configure> { if {"%W" == "."} {    wm minsize %W [winfo reqwidth %W] [expr [winfo reqheight %W]+4] }}bind . <Alt-v> [bind all <Alt-Key>]bind . <Alt-v> {+break}wm withdraw .aboutwm withdraw .keysDynamicHelp::add $_tabs_manual.spindlef.ccw -text [_ "Turn spindle counterclockwise \[F10\]"]DynamicHelp::add $_tabs_manual.spindlef.cw -text [_ "Turn spindle clockwise \[F9\]"]DynamicHelp::add $_tabs_manual.spindlef.stop -text [_ "Stop spindle \[F9/F10\]"]DynamicHelp::add $_tabs_manual.spindlef.spindleplus -text [_ "Turn spindle Faster \[F12\]"]DynamicHelp::add $_tabs_manual.spindlef.spindleminus -text [_ "Turn spindle Slower \[F11\]"]DynamicHelp::add $_tabs_manual.spindlef.brake -text [_ "Turn spindle brake on \[Shift-B\] or off \[B\]"]DynamicHelp::add $_tabs_manual.flood -text [_ "Turn flood on or off \[F8\]"]DynamicHelp::add $_tabs_manual.mist -text [_ "Turn mist on or off \[F7\]"]DynamicHelp::add $_tabs_manual.jogf.zerohome.home -text [_ "Send active axis home \[Home\]"]DynamicHelp::add $_tabs_manual.jogf.zerohome.zero -text [_ "Set G54 offset for active axis \[End\]"]DynamicHelp::add $_tabs_manual.axes.axisx -text [_ "Activate axis \[X\]"]DynamicHelp::add $_tabs_manual.axes.axisy -text [_ "Activate axis \[Y\]"]DynamicHelp::add $_tabs_manual.axes.axisz -text [_ "Activate axis \[Z\]"]DynamicHelp::add $_tabs_manual.axes.axisa -text [_ "Activate axis \[A\]"]DynamicHelp::add $_tabs_manual.axes.axisb -text [_ "Activate axis \[4\]"]DynamicHelp::add $_tabs_manual.axes.axisc -text [_ "Activate axis \[5\]"]DynamicHelp::add $_tabs_manual.jogf.jog.jogminus -text [_ "Jog selected axis"]DynamicHelp::add $_tabs_manual.jogf.jog.jogplus -text [_ "Jog selected axis"]DynamicHelp::add $_tabs_manual.jogf.jog.jogincr -text [_ "Select jog increment"]DynamicHelp::add $_tabs_manual.jogf.override -text [_ "Temporarily allow jogging outside machine limits \[L\]"]# On at least some versions of Tk (tk8.4 on ubuntu 6.06), this hides files# beginning with "." from the open dialog.  Who knows what it does on other# versions.catch {    auto_load ::tk::dialog::file::     namespace eval ::tk::dialog::file {}    set ::tk::dialog::file::showHiddenBtn 1    set ::tk::dialog::file::showHiddenVar 0}# vim:ts=8:sts=4:et:sw=4:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -