Add spindle speed support

Issue #124 resolved
Yiannis Mandravellos created an issue

Please consider adding a field for entering the desired spindle speed for the cnc job being exported so that "M03" becomes "M03 Sxxxx". Right now I have to manually edit the exported gcode each time.

Comments (7)

  1. Yiannis Mandravellos reporter

    Did a 'git pull' today and although the 'spindle speed' field is there in the UI, the exported gcode contains plain 'M03' command w/out speed setting... Is there some option that should be turned on or something?

    EDIT Tried again and it works for drilling. It didn't work before for tracks isolation.

  2. Yiannis Mandravellos reporter

    Sorry, I can't say if something's wrong from the log. I paste it here so you can have a look yourself :)

    [INFO][MainThread] FlatCAM Starting...
    [DEBUG][MainThread] Application path is /home/.../.../.../flatcam
    [DEBUG][MainThread] Started in /home/.../.../.../flatcam
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] propagate_defaults()
    [DEBUG][MainThread]   gerber_use_buffer_for_union OK!
    [DEBUG][MainThread]   cncjob_coordinate_format OK!
    [DEBUG][MainThread]   spindlespeed OK
    [DEBUG][MainThread]   zdownrate OK
    [DEBUG][MainThread]   excellon_zeros OK!
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] options_write_form_field(): No field for: gerber_use_buffer_for_union
    [DEBUG][MainThread] options_write_form_field(): No field for: spindlespeed
    [DEBUG][MainThread] options_write_form_field(): No field for: def_win_w
    [DEBUG][MainThread] options_write_form_field(): No field for: cncjob_coordinate_format
    [DEBUG][MainThread] options_write_form_field(): No field for: zoom_ratio
    [DEBUG][MainThread] options_write_form_field(): No field for: shell_at_startup
    [DEBUG][MainThread] options_write_form_field(): No field for: serial
    [DEBUG][MainThread] options_write_form_field(): No field for: shell_shape
    [DEBUG][MainThread] options_write_form_field(): No field for: zoom_in_key
    [DEBUG][MainThread] options_write_form_field(): No field for: def_win_y
    [DEBUG][MainThread] options_write_form_field(): No field for: stats
    [DEBUG][MainThread] options_write_form_field(): No field for: recent_limit
    [DEBUG][MainThread] options_write_form_field(): No field for: defaults_save_period_ms
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] options_write_form_field(): No field for: def_win_h
    [DEBUG][MainThread] options_write_form_field(): No field for: zoom_out_key
    [DEBUG][MainThread] options_write_form_field(): No field for: fit_key
    [DEBUG][MainThread] options_write_form_field(): No field for: excellon_zeros
    [DEBUG][MainThread] options_write_form_field(): No field for: zdownrate
    [DEBUG][MainThread] options_write_form_field(): No field for: def_win_x
    [DEBUG][MainThread] options_write_form_field(): No field for: last_folder
    [DEBUG][MainThread] options_write_form_field(): No field for: point_clipboard_format
    [DEBUG][MainThread] Options --> 0
    [INFO][MainThread] Starting Worker...
    [INFO][MainThread] Checking for updates in backgroud (this is version 8.3).
    [DEBUG][Dummy-1] Worker Started!
    [DEBUG][Dummy-2] Worker Started!
    [DEBUG][MainThread] setup_recent_items()
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] setup_shell()
    [DEBUG][MainThread] END of constructor. Releasing control.
    [DEBUG][Dummy-1] Running task: {'worker_name': 'worker2', 'params': [], 'fcn': <bound method App.version_check of <FlatCAMApp.App object at 0x7fd2d4b11510>>}
    [DEBUG][Dummy-2] Running task: {'worker_name': 'worker2', 'params': [], 'fcn': <bound method App.version_check of <FlatCAMApp.App object at 0x7fd2d4b11510>>}
    [DEBUG][Dummy-1] Task ignored.
    [DEBUG][Dummy-2] version_check()
    [DEBUG][Dummy-2] Checking for updates @ http://flatcam.org/version?s=7h80pwno465bsqgldj5y&v=8.3&os=unix&on_toggle_units=1&on_delete=205&on_about=1&on_fileopengerber=46&gerber_on_generatecutout_button=25&on_options_project2app=1&gerber_on_iso_button=81&excellon_on_create_milling_button=25&exec_command=57&excellon_on_create_cncjob_button=84&cncjob_on_exportgcode_button=189&save_defaults=8352&on_file_saveproject=13&geometry_on_generatecnc_button=144&gerber_on_generatebb_button=3&on_file_saveprojectas=30&on_file_openproject=1&on_options_app2project=28&geometry_on_paint_button=57&on_toolbar_replot=1&gerber_on_generatenoncopper_button=17&on_file_new=26&on_fileopenexcellon=32
    [DEBUG][Dummy-2] FlatCAM is up to date!
    [DEBUG][Dummy-1] Running task: {'params': ['/home/.../.../.../tests/TestCycloneCircuit-F_Cu.gtl'], 'fcn': <bound method App.open_gerber of <FlatCAMApp.App object at 0x7fd2d4b11510>>}
    [DEBUG][Dummy-2] Running task: {'params': ['/home/.../.../.../tests/TestCycloneCircuit-F_Cu.gtl'], 'fcn': <bound method App.open_gerber of <FlatCAMApp.App object at 0x7fd2d4b11510>>}
    [DEBUG][Dummy-1] open_gerber()
    [DEBUG][Dummy-2] Task ignored.
    [DEBUG][Dummy-1] FCVisibleProcessContainer.on_change()
    [DEBUG][Dummy-1] new_object()
    [DEBUG][Dummy-1] Calling object constructor...
    [DEBUG][Dummy-1] 0.008230 seconds before initialize().
    [DEBUG] Geometry.convert_units()
    [INFO] Found aperture definition. Line 8: %ADD10C,0.150000*%
    [INFO] Found aperture definition. Line 9: %ADD11R,1.998980X0.449580*%
    [INFO] Found aperture definition. Line 10: %ADD12R,0.449580X1.998980*%
    [INFO] Found aperture definition. Line 11: %ADD13C,0.300000*%
    [DEBUG] Line 13: Aperture change to (10)
    [DEBUG] {'type': 'C', 'size': 0.15}
    [DEBUG] Line 14: Aperture change to (11)
    [DEBUG] {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 8.806179999999999), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 9.60628), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 10.40638), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 11.20648), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 12.00658), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 12.80668), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 13.60678), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (0.93726 14.40688), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 14.4018), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 8.788399999999999), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 9.6012), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 10.414), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 11.2014), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 12.0142), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 12.8016), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Flashing @POINT (10.5029 13.6144), Aperture: {'width': 1.99898, 'size': 2.048912691356076, 'type': 'R', 'height': 0.44958}
    [DEBUG] Line 31: Aperture change to (12)
    [DEBUG] {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (2.92862 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (3.72618 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (4.52882 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (5.326379999999999 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (6.12902 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (6.92658 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (7.72922 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (8.52678 16.4084), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (2.9337 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (3.7211 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (4.5339 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (5.3213 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (6.1087 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (6.9215 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (7.734299999999999 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Flashing @POINT (8.5471 6.8072), Aperture: {'width': 0.44958, 'size': 2.048912691356076, 'type': 'R', 'height': 1.99898}
    [DEBUG] Line 48: Aperture change to (13)
    [DEBUG] {'type': 'C', 'size': 0.3}
    [WARNING] Joining 84 polygons.
    [WARNING] Union(buffer) done.
    [DEBUG][Dummy-1] 0.050206 seconds executing initialize().
    [DEBUG][Dummy-1] Moving new object back to main thread.
    [DEBUG][MainThread] on_object_created()
    [DEBUG][Dummy-1] FCVisibleProcessContainer.on_done()
    [DEBUG][Dummy-1] FCVisibleProcessContainer.on_done()
    [DEBUG][MainThread] on_object_created --> OC.append()
    [DEBUG][MainThread] append --> OC.get_names()
    [DEBUG][MainThread] FlatCAMGerber.set_ui()
    [DEBUG][MainThread] on_object_created --> FlatCAMGerber.plot()
    [DEBUG][MainThread] plot --> FlatCAMObj.plot()
    [DEBUG][MainThread] on_zoom_fit--> OC.get_bounds()
    [DEBUG] Geometry->bounds()
    [DEBUG][MainThread] 0.148180 seconds adding object and plotting.
    [DEBUG][MainThread] register_recent()
    [DEBUG][MainThread]    gerber
    [DEBUG][MainThread]    /home/.../.../.../tests/TestCycloneCircuit-F_Cu.gtl
    [DEBUG][MainThread] on_list_selection_change()
    [DEBUG][MainThread] Current: <PyQt4.QtGui.QItemSelection object at 0x7fd2c4bccd70>, Previous <PyQt4.QtGui.QItemSelection object at 0x7fd2c4bccc08>
    [DEBUG][MainThread] on_list_selection_change--> FlatCAMObj.build_ui()
    [DEBUG][MainThread] Radio toggled
    [WARNING][MainThread] Tried to set an option or field that does not exist: use_buffer_for_union
    [DEBUG][MainThread] Mouse button pressed on list
    [DEBUG][MainThread] on_item_activated--> FlatCAMObj.build_ui()
    [WARNING][MainThread] Tried to set an option or field that does not exist: use_buffer_for_union
    [DEBUG][MainThread] Mouse button pressed on list
    [DEBUG][MainThread] on_iso_button_click--> FlatCAMObj.read_form()
    [WARNING][MainThread] Failed to read option from field: use_buffer_for_union
    [DEBUG][MainThread] new_object()
    [DEBUG][MainThread] Calling object constructor...
    [DEBUG][MainThread] 0.000457 seconds before initialize().
    [DEBUG][MainThread] 0.048507 seconds executing initialize().
    [DEBUG][MainThread] Moving new object back to main thread.
    [DEBUG][MainThread] on_object_created()
    [DEBUG][MainThread] on_object_created --> OC.append()
    [DEBUG][MainThread] append --> OC.get_names()
    [DEBUG][MainThread] FlatCAMGeometry.set_ui()
    [DEBUG][MainThread] plot --> FlatCAMObj.plot()
    [DEBUG][MainThread] on_zoom_fit--> OC.get_bounds()
    [DEBUG] Geometry->bounds()
    [DEBUG] Geometry->bounds()
    [DEBUG][MainThread] 0.173508 seconds adding object and plotting.
    [DEBUG][MainThread] on_list_selection_change()
    [DEBUG][MainThread] Current: <PyQt4.QtGui.QItemSelection object at 0x7fd2b3063ed8>, Previous <PyQt4.QtGui.QItemSelection object at 0x7fd2c40ecb90>
    [DEBUG][MainThread] build_ui--> FlatCAMObj.build_ui()
    [DEBUG][MainThread] Radio toggled
    [DEBUG][MainThread] Mouse button pressed on list
    [DEBUG][MainThread] build_ui--> FlatCAMObj.build_ui()
    [DEBUG][MainThread] Mouse button pressed on list
    [DEBUG][MainThread] on_generatecnc_button_click--> FlatCAMObj.read_form()
    [DEBUG][MainThread] Object TestCycloneCircuit-F_Cu.gtl_iso_cnc has been promised.
    [DEBUG][Dummy-2] Running task: {'params': [<FlatCAMApp.App object at 0x7fd2d4b11510>], 'fcn': <function job_thread at 0x7fd2b304f0c8>}
    [DEBUG][Dummy-2] Task ignored.
    [DEBUG][Dummy-1] Running task: {'params': [<FlatCAMApp.App object at 0x7fd2d4b11510>], 'fcn': <function job_thread at 0x7fd2b304f0c8>}
    [DEBUG][Dummy-1] FCVisibleProcessContainer.on_change()
    [DEBUG][Dummy-1] new_object()
    [DEBUG][Dummy-1] Calling object constructor...
    [DEBUG][Dummy-1] Creating CNCJob object...
    [DEBUG][Dummy-1] 0.000206 seconds before initialize().
    [DEBUG] generate_from_geometry_2()
    [DEBUG] 24 paths
    [DEBUG] Indexing geometry before generating G-Code...
    [DEBUG] Starting G-Code...
    [DEBUG] 24 paths traced.
    [DEBUG][Dummy-1] 0.066183 seconds executing initialize().
    [DEBUG][Dummy-1] Moving new object back to main thread.
    [DEBUG][Dummy-1] FCVisibleProcessContainer.on_done()
    [DEBUG][MainThread] on_object_created()
    [DEBUG][Dummy-1] FCVisibleProcessContainer.on_done()
    [DEBUG][MainThread] on_object_created --> OC.append()
    [DEBUG][MainThread] Promised object TestCycloneCircuit-F_Cu.gtl_iso_cnc became available.
    [DEBUG][MainThread] append --> OC.get_names()
    [DEBUG][MainThread] FlatCAMCNCJob.set_ui()
    [DEBUG][MainThread] plot --> FlatCAMObj.plot()
    [DEBUG][MainThread] on_zoom_fit--> OC.get_bounds()
    [DEBUG] Geometry->bounds()
    [DEBUG] Geometry->bounds()
    [DEBUG] Geometry->bounds()
    [DEBUG] solid_geometry is None
    [DEBUG][MainThread] 0.370434 seconds adding object and plotting.
    [DEBUG][MainThread] on_list_selection_change()
    [DEBUG][MainThread] Current: <PyQt4.QtGui.QItemSelection object at 0x7fd2c40ec848>, Previous <PyQt4.QtGui.QItemSelection object at 0x7fd2c40ec758>
    [DEBUG][MainThread] on_list_selection_change--> FlatCAMObj.build_ui()
    [WARNING][MainThread] Tried to set an option or field that does not exist: coordinate_format
    [DEBUG][MainThread] Mouse button pressed on list
    [DEBUG][MainThread] on_item_activated--> FlatCAMObj.build_ui()
    [WARNING][MainThread] Tried to set an option or field that does not exist: coordinate_format
    [DEBUG][MainThread] Mouse button pressed on list
    [DEBUG][MainThread] register_recent()
    [DEBUG][MainThread]    cncjob
    [DEBUG][MainThread]    /home/.../.../.../tests/tmp
    [DEBUG][MainThread] setup_recent_items()
    
  3. Juan Pablo Caram repo owner

    This could be a clue, but not sure.

    [DEBUG][MainThread] options_write_form_field(): No field for: spindlespeed
    

    I guess I'll have to reproduce the problem and debug it myself. I appreciate your testing.

  4. Log in to comment