FAQ по Gcode, примеры

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Проверьте кто-нибудь, сохранятся ли параметры при аварийном выходе - например отключении питания?
Т.е. вопрос в том когда обновляется файл, при изменении параметра или при штатном завершении LinuxCNC?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Serg »

Оно в процессе работы старается сохранять при любом изменении R/W переменных, правда в очень редких случаях (лень описывать условия) может не сохранять.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Тандем
Новичок
Сообщения: 22
Зарегистрирован: 16 мар 2011, 18:26
Репутация: 2
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Тандем »

Был случай: при пропадании питания слетели пользовательские настройки (оффсеты систем координат). То есть в итоге имеем не старые данные, не новые, а именно нули.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Serg »

При пропадании питания может быть всё, что угодно. Например оригинальный файл с переменными переименовался в .bak, а новый хоть и создался, но ещё находился в кэше и на диск ещё не лёг - очевидно, что в таком случае при пропадании питания он и умрёт вместе с содержимым ОЗУ, а при след. запуске linuxcnc обнаружив отсутствие файла с переменными создаст его заново с нулями.
Это не глюк и не баг - это расплата за быстродействие. Если не нравится, то можно отключить для ФС отложенную запись.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение gennadiy »

Который день пытаюсь и не получается выполнять команды Python из M-code. Например:

Код: Выделить всё

#!/usr/bin/python
import linuxcnc
c = linuxcnc.command()

c.mode(linuxcnc.MODE_MDI)
c.wait_complete()
c.mdi("G0 X10")
Если запускать скрипт из терминала, то работает как надо.
Файл назвал M100 и сделал исполняемый. Находится он как прописано в .ini PROGRAM_PREFIX.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Попробуй добавить какой-то вывод, может оно не отрабатывает из-за конфликтов с linuxcnc.
Что говорит вообще?
Из консоли запускал, смотрел вывод?

Как точно файл называется? M большая?
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение gennadiy »

Что значит "добавить вывод"?
Ошибок не выдаёт и имя файла М100 с большой буквы М.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Ну чтобы писало в консоль или в log "строка такая-то, делаю то-то" и потом смотришь, запускается она вообще или нет. И опять же запусти linuxcnc из консоли, посмотри, может туда что-то выдается.
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение gennadiy »

Вот через терминал. Программа идёт до этой строки и дальше тишина...
Вложения
Снимок.png (3583 просмотра) <a class='original' href='./download/file.php?id=34095&mode=view' target=_blank>Загрузить оригинал (28.62 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Ага... т.е. он подвис и ты его вырубил?
Вообще, походу ждет переход в режим mdi...

Вообще, вообще... ты эту команду как вызываешь?
А то получается как, вызываешь команду, она просит сменить режим на MDI, но т.к. мы сейчас выполняем команду M100 до ее выполнения переключать режим нельзя... получается что команда ждет завершение самой себя :)...

Как в общем ты ее планируешь использовать? Что будет эта функция делать?
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение gennadiy »

Я М100 повесил на кнопку pyVCP через MDI_COMMAND = M100
А вообще хотел запускать программу G-code, нажав кнопку, с заданной строки командой

Код: Выделить всё

c.auto(linuxcnc.AUTO_RUN, program_start_line)
Может можно как-нибудь запустить скрипт кнопкой не используя M-code (M100...M199)?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

gennadiy писал(а):Я М100 повесил на кнопку pyVCP через MDI_COMMAND = M100
это лучше все делать через subroutines
O<foobar> CALL
.... и файл foobar.ngc c O<foobar> SUB
gennadiy писал(а):А вообще хотел запускать программу G-code, нажав кнопку, с заданной строки командой
Так.... это... в gladevcp вроде есть такая кнопка сейчас... или я что-то путаю?
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение gennadiy »

"Gladevcp" - это ж Python нужно знать и быть программистом. Переделать то, что есть на pyVCP наверное у меня не получится.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение nkp »

gennadiy писал(а):Который день пытаюсь и не получается выполнять команды Python из M-code. Например:

Код: Выделить всё

#!/usr/bin/python
import linuxcnc
c = linuxcnc.command()
c.mode(linuxcnc.MODE_MDI)
c.wait_complete()
c.mdi("G0 X10")
Если запускать скрипт из терминала, то работает как надо.
Файл назвал M100 и сделал исполняемый. Находится он как прописано в .ini PROGRAM_PREFIX.
попробуй так:

Код: Выделить всё

#!/usr/bin/python
import linuxcnc
c = linuxcnc.command() 

c.mdi("G91 G0 X10")
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

gennadiy писал(а):"Gladevcp" - это ж Python нужно знать и быть программистом. Переделать то, что есть на pyVCP наверное у меня не получится.
Gladevcp это тот же pyvcp, только с красивым редактором, не более того.
Т.е. просто на панельку добавляешь кнопки и все, у тебя появляются пины, так же как в pyvcp, или просто уже работающие кнопки.
Вот пример исходника панельки сделанного на gladevcp, ничего не напоминает?

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gladevcp 0.0 -->
  <requires lib="gtk+" version="2.16"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="window1">
    <child>
      <object class="GtkVBox" id="vbox1">
        <property name="visible">True</property>
        <property name="spacing">2</property>
        <child>
          <object class="GtkFrame" id="frame1">
            <property name="visible">True</property>
            <property name="label_xalign">0</property>
            <property name="shadow_type">none</property>
            <child>
              <object class="GtkAlignment" id="alignment1">
                <property name="visible">True</property>
                <property name="left_padding">12</property>
                <child>
                  <object class="HAL_HBar" id="spindle-rpm-hbar">
                    <property name="visible">True</property>
                    <property name="bg_color">#bebebebebebe</property>
                    <property name="max">2500</property>
                    <property name="z0_border">0.69999998807907104</property>
                    <property name="z0_color">#0000ffff0000</property>
                    <property name="z1_border">0.89999997615814209</property>
                    <property name="z1_color">#ffffffff0000</property>
                    <property name="z2_color">#ffff00000000</property>
                  </object>
                </child>
              </object>
            </child>
            <child type="label">
              <object class="GtkLabel" id="label1text">
                <property name="visible">True</property>
                <property name="label" translatable="yes"><b>Spindle</b></property>
                <property name="use_markup">True</property>
              </object>
            </child>
          </object>
          <packing>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkFrame" id="frame2">
            <property name="visible">True</property>
            <property name="label_xalign">0</property>
            <property name="shadow_type">none</property>
            <child>
              <object class="GtkAlignment" id="alignment2">
                <property name="visible">True</property>
                <property name="left_padding">12</property>
                <child>
                  <object class="HAL_Table" id="status">
                    <property name="visible">True</property>
                    <property name="n_rows">6</property>
                    <property name="n_columns">2</property>
                    <child>
                      <object class="HAL_LED" id="led1">
                        <property name="visible">True</property>
                        <property name="pick_color_off">#000000000000</property>
                        <property name="pick_color_on">#ffffb7b90b5c</property>
                      </object>
                    </child>
                    <child>
                      <object class="HAL_LED" id="led2">
                        <property name="visible">True</property>
                        <property name="pick_color_off">#000000000000</property>
                        <property name="pick_color_on">#1d56ab6dfd26</property>
                      </object>
                      <packing>
                        <property name="top_attach">1</property>
                        <property name="bottom_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_LED" id="led3">
                        <property name="visible">True</property>
                        <property name="pick_color_off">#000000000000</property>
                        <property name="pick_color_on">#ffff327ff2b6</property>
                      </object>
                      <packing>
                        <property name="top_attach">2</property>
                        <property name="bottom_attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_Label" id="prepared-tool">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">label</property>
                        <property name="text_template">Prepared tool: %s</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_Label" id="current-tool">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">label</property>
                        <property name="text_template">Current tool: %s</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">1</property>
                        <property name="bottom_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_LED" id="led4">
                        <property name="visible">True</property>
                        <property name="led_shape">2</property>
                      </object>
                      <packing>
                        <property name="top_attach">3</property>
                        <property name="bottom_attach">4</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_LED" id="led5">
                        <property name="visible">True</property>
                        <property name="led_shape">2</property>
                        <property name="on_color">yellow</property>
                      </object>
                      <packing>
                        <property name="top_attach">4</property>
                        <property name="bottom_attach">5</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_LED" id="led6">
                        <property name="visible">True</property>
                        <property name="led_shape">2</property>
                        <property name="on_color">green</property>
                      </object>
                      <packing>
                        <property name="top_attach">5</property>
                        <property name="bottom_attach">6</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_Label" id="combo-value">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">label</property>
                        <property name="text_template">System: %s</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">2</property>
                        <property name="bottom_attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_Label" id="scale-value">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">label</property>
                        <property name="label_pin_type">1</property>
                        <property name="text_template">Scale value: %.4f</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">3</property>
                        <property name="bottom_attach">4</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_Label" id="spin-value">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">label</property>
                        <property name="label_pin_type">1</property>
                        <property name="text_template">Spinbutton: %.2f</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">4</property>
                        <property name="bottom_attach">5</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkLabel" id="hits">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Hits: 0</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">5</property>
                        <property name="bottom_attach">6</property>
                      </packing>
                    </child>
                  </object>
                </child>
              </object>
            </child>
            <child type="label">
              <object class="GtkLabel" id="label2text">
                <property name="visible">True</property>
                <property name="label" translatable="yes"><b>Status</b></property>
                <property name="use_markup">True</property>
              </object>
            </child>
          </object>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <object class="GtkFrame" id="frame3">
            <property name="visible">True</property>
            <property name="label_xalign">0</property>
            <property name="shadow_type">none</property>
            <child>
              <object class="GtkAlignment" id="alignment3">
                <property name="visible">True</property>
                <property name="left_padding">12</property>
                <child>
                  <object class="HAL_Table" id="settings">
                    <property name="visible">True</property>
                    <property name="n_rows">3</property>
                    <property name="n_columns">3</property>
                    <child>
                      <object class="HAL_Button" id="button">
                        <property name="label" translatable="yes">LED 1</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">True</property>
                        <accelerator key="g" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
                        <accelerator key="n" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
                        <accelerator key="b" signal="activate" modifiers="GDK_CONTROL_MASK"/>
                        <signal name="pressed" handler="on_button_press"/>
                      </object>
                      <packing>
                        <property name="top_attach">1</property>
                        <property name="bottom_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_HScale" id="scale">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="adjustment">adjustment1</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">1</property>
                        <property name="bottom_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_SpinButton" id="spin">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="invisible_char">●</property>
                        <property name="adjustment">adjustment2</property>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                        <property name="top_attach">2</property>
                        <property name="bottom_attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_ToggleButton" id="toggle">
                        <property name="label" translatable="yes">LED2
toggle</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">True</property>
                        <accelerator key="d" signal="clicked" modifiers="GDK_MOD1_MASK"/>
                        <accelerator key="c" signal="activate" modifiers="GDK_MOD1_MASK"/>
                      </object>
                      <packing>
                        <property name="top_attach">2</property>
                        <property name="bottom_attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_RadioButton" id="radio1">
                        <property name="label" translatable="yes">radiobutton</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">False</property>
                        <property name="active">True</property>
                        <property name="draw_indicator">True</property>
                      </object>
                      <packing>
                        <property name="left_attach">2</property>
                        <property name="right_attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_RadioButton" id="radio2">
                        <property name="label" translatable="yes">radiobutton</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">False</property>
                        <property name="active">True</property>
                        <property name="draw_indicator">True</property>
                        <property name="group">radio1</property>
                      </object>
                      <packing>
                        <property name="left_attach">2</property>
                        <property name="right_attach">3</property>
                        <property name="top_attach">1</property>
                        <property name="bottom_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_RadioButton" id="radio3">
                        <property name="label" translatable="yes">radiobutton</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">False</property>
                        <property name="active">True</property>
                        <property name="draw_indicator">True</property>
                        <property name="group">radio1</property>
                      </object>
                      <packing>
                        <property name="left_attach">2</property>
                        <property name="right_attach">3</property>
                        <property name="top_attach">2</property>
                        <property name="bottom_attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_ComboBox" id="combo">
                        <property name="visible">True</property>
                        <property name="model">offset-list</property>
                        <property name="active">0</property>
                        <property name="column">1</property>
                        <child>
                          <object class="GtkCellRendererText" id="cellrenderertext1"/>
                          <attributes>
                            <attribute name="text">0</attribute>
                          </attributes>
                        </child>
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="right_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="HAL_CheckButton" id="check">
                        <property name="label" translatable="yes">checkbutton</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">False</property>
                        <property name="draw_indicator">True</property>
                      </object>
                    </child>
                  </object>
                </child>
              </object>
            </child>
            <child type="label">
              <object class="GtkLabel" id="label3text">
                <property name="visible">True</property>
                <property name="label" translatable="yes"><b>Settings</b></property>
                <property name="use_markup">True</property>
              </object>
            </child>
          </object>
          <packing>
            <property name="position">2</property>
          </packing>
        </child>
        <child>
          <object class="GtkFrame" id="frame4">
            <property name="visible">True</property>
            <property name="label_xalign">0</property>
            <property name="shadow_type">none</property>
            <child>
              <object class="GtkAlignment" id="alignment4">
                <property name="visible">True</property>
                <property name="left_padding">12</property>
                <child>
                  <object class="HAL_HBox" id="commands">
                    <property name="visible">True</property>
                    <child>
                      <object class="GtkButton" id="button1">
                        <property name="label" translatable="yes">   Goto
machine
    zero</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">True</property>
                        <property name="related_action">hal_action_mdi1</property>
                      </object>
                      <packing>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkButton" id="button2">
                        <property name="label" translatable="yes">      Goto
current system
      zero</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">True</property>
                        <property name="related_action">hal_action_mdi2</property>
                      </object>
                      <packing>
                        <property name="position">1</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkToggleButton" id="togglebutton1">
                        <property name="label" translatable="yes">Excute Oword
  subroutine</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">True</property>
                        <property name="related_action">hal_toggleaction_mdi1</property>
                      </object>
                      <packing>
                        <property name="position">2</property>
                      </packing>
                    </child>
                  </object>
                </child>
              </object>
            </child>
            <child type="label">
              <object class="GtkLabel" id="label4text">
                <property name="visible">True</property>
                <property name="label" translatable="yes"><b>Commands</b></property>
                <property name="use_markup">True</property>
              </object>
            </child>
          </object>
          <packing>
            <property name="position">3</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
  <object class="EMC_Action_MDI" id="hal_action_mdi1">
    <property name="command">G53 G0  X0 Y0 Z0</property>
  </object>
  <object class="EMC_Action_MDI" id="hal_action_mdi2">
    <property name="command">g0 X0 Y0 Z0</property>
  </object>
  <object class="EMC_ToggleAction_MDI" id="hal_toggleaction_mdi1">
    <property name="command"> O<oword> call [${spin-f}] [${check}] [${toggle}] [${scale}] [${spin-f}]  [${combo-s}]</property>
  </object>
  <object class="GtkAdjustment" id="adjustment1">
    <property name="upper">100</property>
    <property name="step_increment">1</property>
  </object>
  <object class="GtkAdjustment" id="adjustment2">
    <property name="upper">100</property>
    <property name="step_increment">10</property>
  </object>
  <object class="GtkListStore" id="offset-list">
    <columns>
      <!-- column-name System -->
      <column type="gchararray"/>
      <!-- column-name Number -->
      <column type="gint"/>
    </columns>
    <data>
      <row>
        <col id="0" translatable="yes">G54</col>
        <col id="1">0</col>
      </row>
      <row>
        <col id="0" translatable="yes">G55</col>
        <col id="1">1</col>
      </row>
      <row>
        <col id="0" translatable="yes">G56</col>
        <col id="1">2</col>
      </row>
      <row>
        <col id="0" translatable="yes">G57</col>
        <col id="1">3</col>
      </row>
      <row>
        <col id="0" translatable="yes">G58</col>
        <col id="1">4</col>
      </row>
      <row>
        <col id="0" translatable="yes">G59</col>
        <col id="1">5</col>
      </row>
      <row>
        <col id="0" translatable="yes">G59.1</col>
        <col id="1">6</col>
      </row>
      <row>
        <col id="0" translatable="yes">G59.2</col>
        <col id="1">7</col>
      </row>
      <row>
        <col id="0" translatable="yes">G59.3</col>
        <col id="1">8</col>
      </row>
    </data>
  </object>
</interface>
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение gennadiy »

nkp писал(а):попробуй так:

Код: Выделить всё

#!/usr/bin/python
import linuxcnc
c = linuxcnc.command() 
c.mdi("G91 G0 X10")
Да, так работает.
Я уже понял, что во время выполнения скрипта на Python (используя M100...M199) нельзя менять режим работы интерпретатора вот этими командами:

Код: Выделить всё

c.abort()
c.mode(linuxcnc.MODE_MDI)
c.mode(linuxcnc.MODE_AUTO)
c.mode(linuxcnc.MODE_MANUAL)
Nick писал(а): у тебя появляются пины, так же как в pyvcp
Nick, это то, что надо! Даже попробовал кнопкой стартовать с нужной строки G-code.
Всем спасибо!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение nkp »

интересно - с чем связано ограничение на активацию цифровых пинов из gcode
при G41-42 :
Выделение_006.png (3051 просмотр) <a class='original' href='./download/file.php?id=39514&mode=view' target=_blank>Загрузить оригинал (62.72 КБ)</a>
ну ладно бы связаные с движением М62-63 , но тут не дает прописать М64-65
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Хмм M66 тоже не работает...
надо на linuxcnc.org запостить...
Вложения
m66.png
m66.png (8.7 КБ) 2987 просмотров
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Serg »

В исходниках для этих проверок есть специальный блок кода - видно, что специально сделано.
Можно по истории комитов поискать когда добавилось и посмотреть зачем именно.

P.S. Мне лень... Изображение
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Lexxa »

Подскажите, как запустить цикл типа "for" внутри g кода?

Т.е. хочу выполнять кусок g кода n раз.
:bender:
Ответить

Вернуться в «LinuxCNC»