{"id":986,"date":"2013-01-07T07:47:24","date_gmt":"2013-01-07T06:47:24","guid":{"rendered":"http:\/\/kamar-cnc.pl\/?page_id=986"},"modified":"2013-01-08T10:11:29","modified_gmt":"2013-01-08T09:11:29","slug":"mc-zamiast-dro","status":"publish","type":"page","link":"http:\/\/kamar-cnc.pl\/?page_id=986","title":{"rendered":"MC zamiast DRO"},"content":{"rendered":"<p>Niestety MC uruchomione w karcie przez <strong>EMBED_TAB<\/strong> l\u0105duje na samym ko\u0144cu &#8211; za wszystkimi zak\u0142adkami NGCGUI.<br \/>\nNajwygodniej by\u0142oby mie\u0107 MC od razu za podgl\u0105dem &#8211; zamiast zupe\u0142nie bezu\u017cytecznej dla nas zak\u0142adki DRO.<\/p>\n<p><em>Je\u017celi kto\u015b lubi zak\u0142adk\u0119 DRO, to pierwsz\u0105 cz\u0119\u015b\u0107 mo\u017ce pomin\u0105\u0107 i zacz\u0105\u0107 od s\u0142\u00f3w <a href='#mc'>&#8217;No dobrze to pozbyli\u015bmy sie zak\u0142adki DRO.&#8217;<\/a><br \/>\nWg tego przepisu mo\u017cna doda\u0107 dowoln\u0105 liczb\u0119 zak\u0142adek z dowolnymi (daj\u0105cymi si\u0119 osadzi\u0107) programami.<br \/>\n<\/em><\/p>\n<p>No to jedziemy &#8211; najpierw trzeba wyrzuci\u0107 zak\u0142adk\u0119 DRO:<\/p>\n<p>Otwieramy <strong>\/usr\/share\/axis\/tcl\/axis.tcl<\/strong>,<br \/>\nszukamy linii:<\/p>\n<div class=\"codecolorer-container tcl twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"tcl codecolorer\"><span class=\"kw1\">set<\/span> _tabs_preview <span class=\"br0\">&#91;<\/span><span class=\"sy0\">$<\/span><span class=\"br0\">&#123;<\/span>pane_top<span class=\"br0\">&#125;<\/span>.right insert end preview -text <span class=\"br0\">&#91;<\/span>_ <span class=\"st0\">&quot;Preview&quot;<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#93;<\/span><\/div><\/div>\n<p>i komentujemy linie dotycz\u0105ce <strong>_tabs_numbers<\/strong><br \/>\nwychodzi nam co\u015b takiego:<\/p>\n<div class=\"codecolorer-container tcl twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"tcl codecolorer\"><span class=\"kw1\">set<\/span> _tabs_preview <span class=\"br0\">&#91;<\/span><span class=\"sy0\">$<\/span><span class=\"br0\">&#123;<\/span>pane_top<span class=\"br0\">&#125;<\/span>.right insert end preview -text <span class=\"br0\">&#91;<\/span>_ <span class=\"st0\">&quot;Preview&quot;<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#93;<\/span><br \/>\n<span class=\"co1\">#set _tabs_numbers [${pane_top}.right insert end numbers -text [_ &quot;DRO&quot;]] # artur 2013.01.04<\/span><br \/>\n<span class=\"re0\">$_tabs_preview<\/span> configure -borderwidth <span class=\"nu0\">1<\/span><br \/>\n<span class=\"co1\">#$_tabs_numbers configure -borderwidth 1<\/span><br \/>\n<span class=\"co1\"><br \/>\n#pack ${_tabs_numbers}. -fill both -expand 1<\/span><br \/>\n<span class=\"co1\">#text ${_tabs_numbers}.text -width 1 -height 1 -wrap none \\<br \/>\n# -background [systembuttonface] \\<br \/>\n# -borderwidth 0 \\<br \/>\n# -relief flat<\/span><br \/>\n<span class=\"co1\">#pack ${_tabs_numbers}.text -fill both -expand 1<\/span><br \/>\n<span class=\"co1\">#bindtags ${_tabs_numbers}.text [list ${_tabs_numbers}.text . all]<\/span><\/div><\/div>\n<p>To <strong>#artur 2013.01.04<\/strong> mo\u017cna oczywi\u015bcie pomin\u0105\u0107 &#8211; ja sobie po prostu zaznaczam co i kiedy zmienia\u0142em.<\/p>\n<p>Zapisujemy <strong>axis.tcl<\/strong> i otwieramy <strong>\/usr\/bin\/axis<\/strong>.<\/p>\n<p>Szukamy:<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\">&nbsp;<span class=\"kw1\">def<\/span> redraw<span class=\"br0\">&#40;<\/span><span class=\"kw2\">self<\/span><span class=\"br0\">&#41;<\/span>:<\/div><\/div>\n<p>i komentujemy linie odpowiadaj\u0105ce za od\u015bwie\u017canie DRO &#8211; zostaje nam tak:<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"kw1\">def<\/span> redraw<span class=\"br0\">&#40;<\/span><span class=\"kw2\">self<\/span><span class=\"br0\">&#41;<\/span>:<br \/>\n&nbsp; &nbsp; <span class=\"co1\">#if not self.winfo_viewable(): &nbsp;# artur 2013.01.04<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">#return self.redraw_dro()<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"kw2\">self<\/span>.<span class=\"me1\">select_event<\/span>:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">self<\/span>.<span class=\"kw3\">select<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">self<\/span>.<span class=\"me1\">select_event<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">self<\/span>.<span class=\"me1\">select_event<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">None<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; GlCanonDraw.<span class=\"me1\">redraw<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">self<\/span><span class=\"br0\">&#41;<\/span><\/div><\/div>\n<p>szukamy:<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\">tabs_numbers<\/div><\/div>\n<p>i komentujemy dwie linie:<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"co1\">#tabs_numbers = str(root_window.tk.call(&quot;set&quot;, &quot;_tabs_numbers&quot;)) # artur 2013.01.04<\/span><br \/>\npane_top <span class=\"sy0\">=<\/span> <span class=\"kw2\">str<\/span><span class=\"br0\">&#40;<\/span>root_window.<span class=\"me1\">tk<\/span>.<span class=\"me1\">call<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;set&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;pane_top&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\npane_bottom <span class=\"sy0\">=<\/span> <span class=\"kw2\">str<\/span><span class=\"br0\">&#40;<\/span>root_window.<span class=\"me1\">tk<\/span>.<span class=\"me1\">call<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;set&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;pane_bottom&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\nwidgets <span class=\"sy0\">=<\/span> nf.<span class=\"me1\">Widgets<\/span><span class=\"br0\">&#40;<\/span>root_window<span class=\"sy0\">,<\/span> <br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;help_window&quot;<\/span><span class=\"sy0\">,<\/span> Toplevel<span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;.keys&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;about_window&quot;<\/span><span class=\"sy0\">,<\/span> Toplevel<span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;.about&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;text&quot;<\/span><span class=\"sy0\">,<\/span> Text<span class=\"sy0\">,<\/span> pane_bottom + <span class=\"st0\">&quot;.t.text&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;preview_frame&quot;<\/span><span class=\"sy0\">,<\/span> Frame<span class=\"sy0\">,<\/span> tabs_preview<span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n<span class=\"co1\"># &nbsp; &nbsp;(&quot;numbers_text&quot;, Text, tabs_numbers + &quot;.text&quot;), #artur 2013.01.04<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;tabs&quot;<\/span><span class=\"sy0\">,<\/span> bwidget.<span class=\"me1\">NoteBook<\/span><span class=\"sy0\">,<\/span> pane_top + <span class=\"st0\">&quot;.tabs&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;right&quot;<\/span><span class=\"sy0\">,<\/span> bwidget.<span class=\"me1\">NoteBook<\/span><span class=\"sy0\">,<\/span> pane_top + <span class=\"st0\">&quot;.right&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;mdi_history&quot;<\/span><span class=\"sy0\">,<\/span> Listbox<span class=\"sy0\">,<\/span> tabs_mdi + <span class=\"st0\">&quot;.history&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;mdi_command&quot;<\/span><span class=\"sy0\">,<\/span> Entry<span class=\"sy0\">,<\/span> tabs_mdi + <span class=\"st0\">&quot;.command&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;code_text&quot;<\/span><span class=\"sy0\">,<\/span> Text<span class=\"sy0\">,<\/span> tabs_mdi + <span class=\"st0\">&quot;.gcodes&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><\/div><\/div>\n<p>i jeszcze komentujemy jedna lini\u0119 na ko\u0144cu pliku (6 linia od ko\u0144ca) :<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"co1\">#widgets.numbers_text.bind(&quot;&lt;Configure&gt;&quot;, commands.redraw_soon) # artur 2013.01.04<\/span><\/div><\/div>\n<p><a name='mc'>No dobrze to pozbyli\u015bmy sie zak\u0142adki DRO.<\/a><br \/>\nTeraz dodajemy nasz\u0105 zak\u0142adk\u0119 przed zak\u0142adkami z NGCGUI.<\/p>\n<p>Szukamy:<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\">tkpkgs <span class=\"sy0\">=<\/span> inifile.<span class=\"me1\">findall<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;DISPLAY&quot;<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">&quot;TKPKG&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">or<\/span> <span class=\"st0\">&quot;&quot;<\/span><\/div><\/div>\n<p>i <strong>przed<\/strong> t\u0105 lini\u0105 dajemy nasze wypociny:<\/p>\n<div class=\"codecolorer-container python twitlight\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"co1\"># artur 04.01.2013<\/span><br \/>\n<span class=\"kw1\">def<\/span> mc<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>:<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">from<\/span> <span class=\"kw3\">subprocess<\/span> <span class=\"kw1\">import<\/span> Popen<br \/>\n&nbsp; &nbsp; rxid <span class=\"sy0\">=<\/span> root_window.<span class=\"me1\">winfo_id<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">os<\/span>.<span class=\"me1\">environ<\/span><span class=\"br0\">&#91;<\/span><span class=\"st0\">'AXIS_FORWARD_EVENTS_TO'<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">str<\/span><span class=\"br0\">&#40;<\/span>rxid<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; w <span class=\"sy0\">=<\/span> _dynamic_tab<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;mc&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;MC&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; f <span class=\"sy0\">=<\/span> <span class=\"kw3\">Tkinter<\/span>.<span class=\"me1\">Frame<\/span><span class=\"br0\">&#40;<\/span>w<span class=\"sy0\">,<\/span> container<span class=\"sy0\">=<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> borderwidth<span class=\"sy0\">=<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span> highlightthickness<span class=\"sy0\">=<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; f.<span class=\"me1\">pack<\/span><span class=\"br0\">&#40;<\/span>fill<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;both&quot;<\/span><span class=\"sy0\">,<\/span> expand<span class=\"sy0\">=<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; xid <span class=\"sy0\">=<\/span> f.<span class=\"me1\">winfo_id<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; c <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;uxterm -into {XID} -geometry 108x28 -e mc&quot;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">cmd<\/span> <span class=\"sy0\">=<\/span> c.<span class=\"me1\">replace<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'{XID}'<\/span><span class=\"sy0\">,<\/span> <span class=\"kw2\">str<\/span><span class=\"br0\">&#40;<\/span>xid<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">split<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; child <span class=\"sy0\">=<\/span> Popen<span class=\"br0\">&#40;<\/span><span class=\"kw3\">cmd<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; wait <span class=\"sy0\">=<\/span> <span class=\"kw3\">cmd<\/span><span class=\"br0\">&#91;<\/span>:<span class=\"nu0\">2<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">==<\/span> <span class=\"br0\">&#91;<\/span><span class=\"st0\">'halcmd'<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">'loadusr'<\/span><span class=\"br0\">&#93;<\/span><br \/>\nmc<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><\/div><\/div>\n<p>i ju\u017c &#8211; mamy MC zamiast DRO.<\/p>\n<p>Paczka ze zmienionymi plikami (z linuxcnc 2.5.1):<br \/>\n<a href=\"http:\/\/kamar-cnc.pl\/wp-content\/uploads\/2013\/01\/DRO.zip\">DRO<\/a><\/p>\n<p><a href=\"mailto:artur@kamar-cnc.pl\">Artur<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Niestety MC uruchomione w karcie przez EMBED_TAB l\u0105duje na samym ko\u0144cu &#8211; za wszystkimi zak\u0142adkami NGCGUI. Najwygodniej by\u0142oby mie\u0107 MC od razu za podgl\u0105dem &#8211; zamiast zupe\u0142nie bezu\u017cytecznej dla nas zak\u0142adki DRO. Je\u017celi kto\u015b lubi zak\u0142adk\u0119 DRO, to pierwsz\u0105 cz\u0119\u015b\u0107 &hellip; <a href=\"http:\/\/kamar-cnc.pl\/?page_id=986\">Czytaj dalej <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":964,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-986","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/pages\/986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=986"}],"version-history":[{"count":26,"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/pages\/986\/revisions"}],"predecessor-version":[{"id":991,"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/pages\/986\/revisions\/991"}],"up":[{"embeddable":true,"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=\/wp\/v2\/pages\/964"}],"wp:attachment":[{"href":"http:\/\/kamar-cnc.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}