=== string the "probe_basic" ui from linuxcnc 2.9 folder === === with "probe basic installed but not able to run from === === the probe basic folder using "linuxcnc === cnc@cnc1:~/linuxcnc$ . ./scripts/rip-environment cnc@cnc1:~/linuxcnc$ linuxcnc LINUXCNC - 2.9.0~pre0 Machine configuration directory is '/home/cnc/linuxcnc/configs/probe_basic/probe_basic' Machine configuration file is 'probe_basic.ini' Starting LinuxCNC... Unrecognized line skipped: ;Tool Pocket X Offset Y Offset Z Offset Diameter Remark Found file(REL): ./hallib/core_sim_5.hal Note: Using POSIX realtime motion.c: Creating unlock hal pins for joint 4 Found file(REL): ./hallib/spindle_sim.hal Found file(REL): ./hallib/simulated_home_probe_basic.hal [qtpyvcp][INFO] Logging to /home/cnc/linuxcnc/configs/probe_basic/probe_basic/sim.log (logger.py:101) [qtpyvcp][INFO] QtPyVCP Version: v0.3.7+40.g57d5dc59 (opt_parser.py:188) [qtpyvcp.utilities.info][INFO] The machine has 5 axes and 5 joints (info.py:376) [qtpyvcp.utilities.info][INFO] The Axis/Joint mapping is: (info.py:377) [qtpyvcp.utilities.info][INFO] Axis X --> Joint 0 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis Y --> Joint 1 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis Z --> Joint 2 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis A --> Joint 3 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis B --> Joint 4 (info.py:385) [qtpyvcp][INFO] Loading global stylesheet: /home/cnc/probe_basic/probe_basic/probe_basic.qss (application.py:185) libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP: known incorrect sRGB profile [qtpyvcp.vcp_launcher][INFO] Loading POSTGUI_HALFILE: /home/cnc/linuxcnc/configs/probe_basic/probe_basic/hallib/time.hal (vcp_launcher.py:96) And clicking "Exit" on probe_basic UI Shutting down and cleaning up LinuxCNC... Traceback (most recent call last): File "/home/cnc/linuxcnc/bin/axis-remote", line 26, in import sys, getopt, tkinter, os ImportError: No module named tkinter task: 2032 cycles, min=0.000035, max=0.014826, avg=0.009916, 0 latency excursions (> 10x expected cycle time of 0.010000s) Note: Using POSIX realtime cnc@cnc1:~/linuxcnc$ === Now worked on probe_basic to try to clear its problem === cnc@cnc1:~/probe_basic$ pip uninstall probe_basic cnc@cnc1:~/probe_basic$ pip install -e . Obtaining file:///home/cnc/probe_basic Installing collected packages: probe-basic Running setup.py develop for probe-basic Successfully installed probe-basic === Try to get into edit mode === cnc@cnc1:~/probe_basic$ editvcp probe_basic Traceback (most recent call last): File "/home/cnc/.local/bin/editvcp", line 11, in load_entry_point('qtpyvcp', 'console_scripts', 'editvcp')() File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point return ep.load() File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2443, in load return self.resolve() File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2449, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/home/cnc/qtpyvcp/qtpyvcp/tools/editvcp.py", line 34, in import linuxcnc ImportError: No module named linuxcnc === Compile probe_basic now === cnc@cnc1:~/probe_basic$ qcompile probe_basic Compiling .ui files in package 'probe_basic': probe_basic_vertical.ui => probe_basic_vertical_ui.py ... ok probe_basic.ui => probe_basic_ui.py ... ok about.ui => about_ui.py ... ok Compiling .qrc files in package 'probe_basic': probe_basic.qrc => probe_basic_rc.py ... ok cnc@cnc1:~/probe_basic$ === Try to run linuxcnc 2.9 now === cnc@cnc1:~/probe_basic$ linuxcnc Command 'linuxcnc' not found, did you mean: command 'linuxvnc' from deb linuxvnc Try: sudo apt install cnc@cnc1:~/probe_basic$ === Try the "editvcp probe_basic after compiling" command === cnc@cnc1:~/probe_basic$ editvcp probe_basic Traceback (most recent call last): File "/home/cnc/.local/bin/editvcp", line 11, in load_entry_point('qtpyvcp', 'console_scripts', 'editvcp')() File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point return ep.load() File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2443, in load return self.resolve() File "/home/cnc/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2449, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/home/cnc/qtpyvcp/qtpyvcp/tools/editvcp.py", line 34, in import linuxcnc ImportError: No module named linuxcnc cnc@cnc1:~/probe_basic$ === To overcome this problem in probe_basic folder and have terminal window open === $ . /home/cnc/linuxcnc/scripts/rip-environment $ linuxcnc Responds with: LINUXCNC - 2.9.0~pre0 and pops up the "Welcome to LinuxCNC" vcp selection window. And can now select probe_basic vcp as seen below. cnc@cnc1:~/probe_basic$ . /home/cnc/linuxcnc/scripts/rip-environment cnc@cnc1:~/probe_basic$ linuxcnc LINUXCNC - 2.9.0~pre0 Machine configuration directory is '/home/cnc/linuxcnc/configs/probe_basic/probe_basic' Machine configuration file is 'probe_basic.ini' Starting LinuxCNC... Unrecognized line skipped: ;Tool Pocket X Offset Y Offset Z Offset Diameter Remark Found file(REL): ./hallib/core_sim_5.hal Note: Using POSIX realtime motion.c: Creating unlock hal pins for joint 4 Found file(REL): ./hallib/spindle_sim.hal Found file(REL): ./hallib/simulated_home_probe_basic.hal [qtpyvcp][INFO] Logging to /home/cnc/linuxcnc/configs/probe_basic/probe_basic/sim.log (logger.py:101) [qtpyvcp][INFO] QtPyVCP Version: v0.3.7+40.g57d5dc59 (opt_parser.py:188) [qtpyvcp.utilities.info][INFO] The machine has 5 axes and 5 joints (info.py:376) [qtpyvcp.utilities.info][INFO] The Axis/Joint mapping is: (info.py:377) [qtpyvcp.utilities.info][INFO] Axis X --> Joint 0 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis Y --> Joint 1 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis Z --> Joint 2 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis A --> Joint 3 (info.py:385) [qtpyvcp.utilities.info][INFO] Axis B --> Joint 4 (info.py:385) [qtpyvcp][INFO] Loading global stylesheet: /home/cnc/probe_basic/probe_basic/probe_basic.qss (application.py:185) libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP: known incorrect sRGB profile [qtpyvcp.vcp_launcher][INFO] Loading POSTGUI_HALFILE: /home/cnc/linuxcnc/configs/probe_basic/probe_basic/hallib/time.hal (vcp_launcher.py:96) === Pushing the UI exit button now === Shutting down and cleaning up LinuxCNC... Traceback (most recent call last): File "/home/cnc/linuxcnc/bin/axis-remote", line 26, in import sys, getopt, tkinter, os ImportError: No module named tkinter task: 1188 cycles, min=0.000035, max=0.011129, avg=0.009809, 0 latency excursions (> 10x expected cycle time of 0.010000s) Note: Using POSIX realtime cnc@cnc1:~/probe_basic$ === Did the two step commands to get into edit mode as below === === Just running "editvcp probe_basic" by itself will not work === cnc@cnc1:~/probe_basic$ . /home/cnc/linuxcnc/scripts/rip-environment cnc@cnc1:~/probe_basic$ editvcp probe_basic Loading YAML config file: /home/cnc/probe_basic/probe_basic/probe_basic.yml touch-probe.diameter-offset OrderedDict([('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1)]) touch-probe.calibration-offset OrderedDict([('description', u'Probe trigger point offset.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1)]) probe-parameters.probe-tool-number OrderedDict([('description', u'probe tool number.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 9999)]) probe-parameters.step-off-width OrderedDict([('description', u'probe step off width.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1000)]) probe-parameters.probe-fast-fr OrderedDict([('description', u'probe fast feedrate.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1000)]) probe-parameters.probe-slow-fr OrderedDict([('description', u'probe slow feedrate.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1000)]) probe-parameters.max-xy-distance OrderedDict([('description', u'max x and y probe travel distance.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 100)]) probe-parameters.xy-clearance OrderedDict([('description', u'x and y clearance distance.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1000)]) probe-parameters.max-z-distance OrderedDict([('description', u'max z probe travel distance.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 100)]) probe-parameters.z-clearance OrderedDict([('description', u'z clearance distance.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1000)]) probe-parameters.extra-probe-depth OrderedDict([('description', u'extra probe depth.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 100)]) probe-parameters.edge-width OrderedDict([('description', u'edge width probing distance.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1000)]) tool-change-position.x-tool-change-position OrderedDict([('description', u'x axis tool change position.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-change-position.y-tool-change-position OrderedDict([('description', u'y axis tool change position.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-change-position.z-tool-change-position OrderedDict([('description', u'z axis tool change position.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-setter-probe.fast-probe-fr OrderedDict([('description', u'tool probe fast feedrate.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-setter-probe.slow-probe-fr OrderedDict([('description', u'tool probe slow feedrate.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-setter-probe.z-max-travel OrderedDict([('description', u'maximumm z travel while probing before erroring out.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-setter-probe.xy-max-travel OrderedDict([('description', u'maximumm xy travel while probing before erroring out.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-setter-probe.retract-distance OrderedDict([('description', u'distance tool retracts after fast probe move.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) tool-setter-probe.spindle-nose-height OrderedDict([('description', u'distance from home to tool setter for the spindle nose.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) programmable-coolant.active OrderedDict([('description', u'activates programmable coolant with 1 as entry.'), ('default_value', 0.0), ('persistent', True), ('min_value', 0), ('max_value', 1)]) programmable-coolant.spindle-to-nozzle-dist OrderedDict([('description', u'horizontal distance from spindle centerline to nozzle centerline.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) programmable-coolant.gaugeline-to-nozzle-dist OrderedDict([('description', u'vertical distance from spindle centerline to nozzle centerline.'), ('default_value', 0.0), ('persistent', True), ('min_value', -1000), ('max_value', 1000)]) programmable-coolant.pc-angle-offset OrderedDict([('description', u'coolant nozzle offset amount to adjust for distance, pressure, gravity.'), ('default_value', 0.0), ('persistent', True), ('min_value', -45), ('max_value', 45)]) axis-display.xyz-checkbox OrderedDict([('description', u'sets the gui display to 3 axis.'), ('default_value', 1), ('persistent', True), ('min_value', 0), ('max_value', 1)]) axis-display.xyza-checkbox OrderedDict([('description', u'sets the gui display to 4 axis.'), ('default_value', 0), ('persistent', True), ('min_value', 0), ('max_value', 1)]) axis-display.xyzab-checkbox OrderedDict([('description', u'sets the gui display to 5 axis.'), ('default_value', 0), ('persistent', True), ('min_value', 0), ('max_value', 1)]) Loading UI file: /home/cnc/probe_basic/probe_basic/probe_basic.ui Loading QSS file: /home/cnc/probe_basic/probe_basic/probe_basic.qss Starting QtDesigner ... Resetting rcs_errors_printed because a new NML channel is being created. [qtpyvcp-designer.widgets.dialogs][ERROR] The requested dialog 'open_file' was not found. (__init__.py:21) libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP: known incorrect sRGB profile [qtpyvcp-designer.widgets.dialogs][ERROR] The requested dialog 'open_file' was not found. (__init__.py:21) [qtpyvcp-designer.widgets.dialogs][ERROR] The requested dialog 'open_file' was not found. (__init__.py:21) cnc@cnc1:~/probe_basic$ === Conclusions === When LinuxCNC 2.8 is loaded it can find the link to linuxcnc just fine to allow "editing" but will not autolink when using Linuxcnc V2.9. LinuxCNC V2.9 will run the probe_basic ui if it is already installed in the LinuxCNC v2.9 vcp list and probe_basic is also installed in its own folder. Probe_basic can always be called up in the designer for editing, but without the link to LinuxCNC it will not have the Hal and some other items available. Style will also not be displayed properly.