Comments (9)
Are you filing this issue simply because the behavior is not as described in the NIST document or does this create other issues?
from linuxcnc.
Are you filing this issue simply because the behavior is not as described in the NIST document
Yes
or does this create other issues?
I can't build a machine that meets the standards.
It is not standard software bug.
from linuxcnc.
So do you see this as a GUI issue or an issue with the underlying code base?
I came across another violation of the NIST standard recently regarding G52/G92 deactivation on M2/M30:
#2921
Personally I find it rather unfortunate that a standard configuration of LinuxCNC does not follow the standard NIST behavior.
The problem is that these violations are not necessarily bugs but can be intentional. In the case of the nonstandard G52/G92 behavior it is actually tested for when we run the build tests. In the case of MDI stacking it is likely the same.
from linuxcnc.
So do you see this as a GUI issue or an issue with the underlying code base?
Can you explain me what is "underlying code base"?
Personally I find it rather unfortunate that a standard configuration of LinuxCNC does not follow the standard NIST behavior.
The problem is that these violations are not necessarily bugs but can be intentional. In the case of the nonstandard G52/G92 behavior it is actually tested for when we run the build tests. In the case of MDI stacking it is likely the same.
Some people wants stacking MDI stacking some people like me wants the same behavior like NIST.
https://forum.linuxcnc.org/gmoccapy/51209-we-allow-stacking-of-mdi-commands-is-it-ok?start=0
It must be configurable.
from linuxcnc.
What I meat is, should the individual GUIs be responsible whether stacking is allowed or not or should the python interface do it?
from linuxcnc.
The LCNC integrator should be responsible for stacking MDI commands or not stacking. A person who makes a machine.
Small printer with small stepper motor - it doesnt matter.
Big machine with servos - I recommeneded use standards.
The LCNC integrator can be person who use only HAL language.
from linuxcnc.
Hello,
I don't want to debate whether the MDI queue is a matter of the NIST standard or another standard. Let's leave that to the LCNC integrators.
I would like to recap the possibilities.
Simple (no graphic change):
- disable the MDI queue
- enable MDI queue
- make disable/enable MDI queue configurable (I prefer this)
More complex (graphical change):
- enter blocks of MDI commands (This is the best solution)
This is how a friend has it on an old CNC machine with a sinumerik from the 80s. It still has a green CRC screen.
He can enter several lines of MDI commands into the MDI screen.
Once he enters this, he starts this sequence with the physical green button. He would like this solution in the current LCNC as well.
In Gmoccapy's implementation, it might look like this:
Currently, the Enter key executes the current line of MDI code.
If we decided on this solution, the Enter key should create another line. The execution of this block would be the blue arrow, or just the HAL pin. MDI blocks queuing is disabled.
from linuxcnc.
Personally I prefer the current behavior to multi-line entry. It suite me to have the machine drilling the first hole / making the first pass while I am typing in the next hole position or endpoint.
Are you sure that you are interpreting the nature of the document correctly? All that I can find is a NIST report from 2000 describing their implementation of an RS274 interpreter. I don't think that it is necessarily clear that this has the status of a NIST standard.
If you are looking for an official, issued standard then maybe you need to choose one of the following:
"The first standardized version of G-code used in the United States, RS-274, was published in 1963 by the Electronic Industries Alliance (EIA; then known as Electronic Industries Association).[4] In 1974, EIA approved RS-274-C, which merged RS-273 (variable block for positioning and straight cut) and RS-274-B (variable block for contouring and contouring/positioning). A final revision of RS-274 was approved in 1979, as RS-274-D.[5][6] In other countries, the standard ISO 6983 (finalized in 1982) is often used, but many European countries use other standards.[7] For example, DIN 66025 is used in Germany, and PN-73M-55256 and PN-93/M-55251 were formerly used in Poland."
But I doubt that any of the major G-code dialects conforms to any of these standards, but will rather be a superset of them.
LinuxCNC has moved on a lot from the 2000 report. For example the 2000 report does not include G76 lathe threading.
Personally I see LinuxCNC as the inheritor of the NIST "standard" and just as they were making it up as they went along, so are we. We are still closer to that 2000 report version than most of the commercial G-code variants.
from linuxcnc.
I'm not an expert on NIST standards. That's why I prefer configurability. On the other hand, I'm not the only one who prefers to ban the MDI queue.
https://forum.linuxcnc.org/gmoccapy/51209-we-allow-stacking-of-mdi-commands-is-it-ok?start=0#289684
from linuxcnc.
Related Issues (20)
- The unit of feed rates are not [mm/m] HOT 1
- Glade Tooltable widget destroys tooltable in a particular case HOT 51
- Python oword freezes UI HOT 10
- LinuxCNC 2.9.2 Pi 5 Debian Bookworm hdmi_force_hotplug not working
- Issue Parsing G4 Commands with Invalid Parameter HOT 5
- could not test axis settings with stepconf HOT 1
- Broken homing error handling! If one joint fails to home the other joints will continue anyways. HOT 5
- Posemath #define toLine() is same defined as in Qt library. HOT 2
- Gcode interpreter takes wrong order in v2.10 (Gcode with M67 commands give inverted result) HOT 11
- Write hal module in c language linuxcnc with proper permissions on Rpi4 and Fedora IOT HOT 5
- Tool Offset Parameters #5401-5409 HOT 3
- Remove StateTag tag. As it is never used. HOT 4
- URL not fining ISO file HOT 6
- Safety Issue - Spindle Starts itself after program pause, spindle stop, program stop 2.9 HOT 8
- Broken sim config at sim/axis/remap/manual-toolchange-with-tool-length-switch HOT 1
- Add missing manual pages for remaining binaries (melfagui millturngui qtplasmac_gcode setup_designer tool_mmap_read tool_watch xyzab-tdr-gui z_level_compensation modcompile) HOT 7
- Ascidoc man pages are not shown on website HOT 3
- Many formatting errors after man page conversion to adoc HOT 9
- COMPONENT PIN NAMES ARE GETTING TOO LONG HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linuxcnc.