Add spindle speed support
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)
-
-
repo owner @mandrav, @joernsn, is this resolved?
-
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.
-
repo owner I haven't tested it myself, but looked at the pull request and seems to be there. See https://bitbucket.org/jpcgt/flatcam/pull-request/13/added-parameter-spindle-speed-to-cnc-jobs/diff
Did you see anything strange in the console? I think I saw a warning about spindle speed a few days ago.
-
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()
-
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.
-
repo owner - changed status to resolved
Fixed in f503dab.
Testing is appreciated!
- Log in to comment
I have implemented this setting, and filed a pull request.
You can review the request here: https://bitbucket.org/jpcgt/flatcam/pull-request/13/added-parameter-spindle-speed-to-cnc-jobs/diff
If you want to test the code you can clone this branch: https://bitbucket.org/joernsn/flatcam/branch/spindlespeed