<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NCXchange: the neutral NC code intermediate format on CNC-Master</title><link>https://cnc-master.xyz/en/ncx/</link><description>Recent content in NCXchange: the neutral NC code intermediate format on CNC-Master</description><generator>Hugo</generator><language>en</language><atom:link href="https://cnc-master.xyz/en/ncx/index.xml" rel="self" type="application/rss+xml"/><item><title>Definition: grammar of the NCX language</title><link>https://cnc-master.xyz/en/ncx/definition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cnc-master.xyz/en/ncx/definition/</guid><description>&lt;p&gt;The NCX language is defined as a formal grammar in Backus-Naur form (BNF). An NC program consists of blocks (lines) made up of cells of the form &lt;code&gt;[KEYWORD:ADDRESS=VALUE]&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="grammar"&gt;Grammar&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bnf" data-lang="bnf"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;program&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; ( &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;new-line&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; )+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;new-line&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &amp;#34;\n&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;cell&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;cell&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &amp;#34;[&amp;#34; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;content&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &amp;#34;]&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;content&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;function&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &amp;#34;=&amp;#34; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;target&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;function&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;text&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; | &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;text&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &amp;#34;:&amp;#34; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;address&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;address&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;text&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;target&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;value&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; | &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;value&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &amp;#34;,&amp;#34; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;target&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;value&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;text&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; | &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;decimal&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; | &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;decimal&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &amp;#34;.&amp;#34; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digits&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digits&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; | &amp;#34;-&amp;#34; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digits&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digits&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digit&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digit&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &amp;#34;0&amp;#34; | &amp;#34;1&amp;#34; | &amp;#34;2&amp;#34; | &amp;#34;3&amp;#34; | &amp;#34;4&amp;#34; | &amp;#34;5&amp;#34; | &amp;#34;6&amp;#34; | &amp;#34;7&amp;#34; | &amp;#34;8&amp;#34; | &amp;#34;9&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;text&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;character&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;character&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;::=&lt;/span&gt; &amp;#34;A&amp;#34; ... &amp;#34;Z&amp;#34; | &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;digit&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; | &amp;#34;_&amp;#34; | &amp;#34;+&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="the-productions-in-detail"&gt;The productions in detail&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;program&amp;gt;&lt;/code&gt;: A program consists of one or more blocks, each terminated by a new line.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;block&amp;gt;&lt;/code&gt;: A block is a sequence of one or more cells and corresponds to one program line.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;cell&amp;gt;&lt;/code&gt;: The cell is the basic unit of a program. Each cell consists of content enclosed in square brackets &lt;code&gt;[…]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;content&amp;gt;&lt;/code&gt;: The content of a cell is made up of a function and a target, separated by an equals sign &lt;code&gt;=&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;function&amp;gt;&lt;/code&gt;: The function specifies which action the cell performs. It consists either of text alone or of text followed by a colon &lt;code&gt;:&lt;/code&gt; and an address.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;address&amp;gt;&lt;/code&gt;: The address is optional and is only used when the function requires one. It consists of text.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;target&amp;gt;&lt;/code&gt;: The target specifies what the function is applied to: a single value or a comma-separated list of values (e.g. &lt;code&gt;INTERPO=ARC,CCW&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;value&amp;gt;&lt;/code&gt;: A value can be text, a decimal number or an integer.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;decimal&amp;gt;&lt;/code&gt;: A decimal number consists of an integer part and a fractional part, separated by a decimal point &lt;code&gt;.&lt;/code&gt; (e.g. &lt;code&gt;-22.543&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;integer&amp;gt;&lt;/code&gt;: An integer is a positive or negative whole number without decimal places; negative numbers start with a minus sign &lt;code&gt;-&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;digits&amp;gt;&lt;/code&gt;: A sequence of one or more digits.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;text&amp;gt;&lt;/code&gt;: Text is a sequence of one or more characters.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;character&amp;gt;&lt;/code&gt;: A single character is an uppercase letter &lt;code&gt;A&lt;/code&gt;–&lt;code&gt;Z&lt;/code&gt;, a digit, the underscore &lt;code&gt;_&lt;/code&gt; or the plus sign &lt;code&gt;+&lt;/code&gt; (e.g. in &lt;code&gt;WORKPLANE=XY+Z&lt;/code&gt;). Spaces are not permitted.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;p&gt;A block, here a clockwise arc with a center point, consists of several cells:&lt;/p&gt;</description></item><item><title>Specification of the NCX elements</title><link>https://cnc-master.xyz/en/ncx/specification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cnc-master.xyz/en/ncx/specification/</guid><description>&lt;p&gt;Each element of the NCX language is written as one cell of the form &lt;code&gt;[KEYWORD:ADDRESS=VALUE]&lt;/code&gt;: the keyword, an optional address and the value. The following overview documents all elements with their addresses, values and examples; where available, the corresponding conventional G or M command is given as well. The underlying grammar is described in the &lt;a href="https://cnc-master.xyz/en/ncx/definition/"&gt;Definition&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id="cat-program"&gt;Program&lt;/h2&gt;
&lt;h3 id="program"&gt;&lt;code&gt;PROGRAM&lt;/code&gt;: Program&lt;/h3&gt;
&lt;p&gt;Defines the header data of an NC program: name, unit of measurement and an optional comment.&lt;/p&gt;</description></item><item><title>Examples: Fanuc G-code to NCX</title><link>https://cnc-master.xyz/en/ncx/examples/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cnc-master.xyz/en/ncx/examples/</guid><description>&lt;p&gt;The following examples show how typical Fanuc G-code blocks are converted into the NCX format, each with the source block and the corresponding NCX cells.&lt;/p&gt;
&lt;div class="notice notice--warning"&gt;
 &lt;svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"&gt;&lt;path d="M12 3 2.5 20h19L12 3Z" stroke-linejoin="round"/&gt;&lt;path d="M12 10v4m0 3v.01"/&gt;&lt;/svg&gt;
 &lt;div&gt;&lt;div class="notice-title"&gt;Not yet specified&lt;/div&gt;&lt;p&gt;The rows marked with * use radius programming as well as the extended cycle parameters &lt;code&gt;CYCLE_DELAY&lt;/code&gt;, &lt;code&gt;CYCLE_SURFACE_ALTITUDE&lt;/code&gt; and &lt;code&gt;CYCLE_DEPTH_INCREMENT&lt;/code&gt;. These are not yet covered by the current &lt;a href="https://cnc-master.xyz/en/ncx/specification/"&gt;specification&lt;/a&gt;. The language is still in development.&lt;/p&gt;</description></item></channel></rss>