[Emc-users] gcmc - 1.4.3
Hi All, A new version 1.4.3 of gcmc has been released. The major change is a bugfix in the execution of if/elif/else statements, where the final else would fail to executo when all if/elif clauses were false. Changes include: - Feature: Add option --gcode-nom2 to replace ending M2 with % in gcode as function generation - Feature: Add --pedantic to hide not-to-bad warnings - Feature: Implement comment() function to embed comments and debug statements easily without too much risk into the output - Feature/Change: Allow negative values on head()/tail() to ommit values without knowing the count - Change: Exit the gcmc binary with zero on --version - Change: Increase EPSILON to 1e-14 to catch rounding errors - Fix: Add missing --gcode-function option to command-line help - Fix: Add --define to command-line help - Fix: Fix 180 degree arcs to cope with calculation rounding errors - Fix: Fix if/elif/else execution where the else clause would fail to execute if all if/elif clauses were false You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The updated documentation is online at: http://www.vagrearg.org/content/gcmc-man http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref All documentation is, of course, included in the tar-ball distribution and now also added to the windows zip-file. As usual, let me know if you encounter bugs or have any questions or wishes. -- Greetings Bertho (disclaimers are disclaimed) -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Canned cycle relative motion weirdness
Hi, I've been looking into the canned cycles in LinuxCNC and the relative version is odd. The gcode documentation has an example: G0 X1 Y2 Z3 G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 It should make a nice pattern, but it drills in the wrong direction (down-to-up). The R-word need to be -1.8 (negative) to make it drill in the right direction. However, the documentation states a sequence of rapids/moves and indicates the positions which I cannot reproduce. F.ex. I cannot create a parameter combination that would move to the noted Z positions. Am I missing something or is there bitrot in either the documentation or interpreter? -- Greetings Bertho (disclaimers are disclaimed) -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - 1.5.0
Hi All, A new version 1.5.0 of gcmc has been released. There have been quite a few changes on the syntax and semantic level, as well as additional built-in functions for various things. An important semantic change is how add/subtract (+ and -) handles undef values. A second set of operators +| and -| supplement the new semantics. Another feature is passing function arguments by reference. This allows for better abstractions for some types of constructs (as multiple return values) and can improve execution speed if you are handling huge vector-lists. Several more language features are implemented to make gcmc more expressive and closer to what other programming languages provide, such as ternary operator (?:) and pre/post increment/decrement as part of expressions. A repeat() {} construct enables quick and simple loops that need to be executed a fixed number of times. Canned cycles have been added as library functions. There is no point in calling underlying canned-cycle-gcode because gcmc already possesses all tools to perform the operations using G0/G1/G4 primitives. Letting gcmc handle canned cycles also makes the resulting gcode more portable. An example is provided in the tarball. The documentation has been updated to include all the changes and adds a new documentation for library functions (see below for link). The list of changes for version 1.5.0 is long, so I'm not going to include the details here. You can find the list on the gcmc homepage. You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The updated documentation is online at: http://www.vagrearg.org/content/gcmc-man http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref http://www.vagrearg.org/content/gcmc-library All documentation is, of course, included in the tar-ball distribution and now also added to the windows zip-file. As usual, let me know if you encounter bugs or have any questions or wishes. -- Greetings Bertho (disclaimers are disclaimed) -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Canned cycle relative motion weirdness
On 02/22/2014 05:33 AM, Greg Bentzinger wrote: Yeah - I did some digging and that whole L word in a fixed cycle dates back to the original NIST RS-274D-NGC. IMHO - Its a dinosaur that should have died out. I consider it an accident waiting to be activated by the user. I agree that it is ancient and quite dangerous to use. However, since there is support for it, should it not work as advertised? The LinuxCNC docs say that it does one thing, but when I try the example, something different happens. Either the docu is wrong, or there is bitrot in the implementation. Even though it is ancient, it should then be fixed or removed. Having a wrong interpretation can lead to greater disaster. One of the most powerful reasons to switch to LCNC is the faster processing power and virtually unlimited program length. We have O-loops and plenty of other tools to make good G-code without using commands that are not so apparent in the actual actions they will execute. I assume since it was all ready supported in the early source code it has been kept as legacy support. I dare say most modern machine controls do not support this without additional verbose codes. Backwards compatibility is a good thing, which allows old code to run as expected. I agree that you should be severely disouraged from using it in the modern times. As you say, storage and computing power is no limitation nowadays. As is, I try not to use fixed cycles in incremental (G91) mode if possible. There can be enough confusion with the G98|G99 R and initial points in Inc mode without other issues. Negative R values are something to use with caution. The absolute mode (G90) cýclces do work as documented. They are actually useful. I also think that the relative mode cycles are useful, but they are a lot harder to grasp. That said, I implemented a couple of library calls for gcmc to emulate the canned cycles. There I just map it to G0/G1/G4 and perform the cycle programatically. Maybe I should not bother to implement the relative cousins and leave it at absolute canned- drill/drill_dwell/drill_peck cycles. You can always code your own version if you like. -- Greetings Bertho (disclaimers are disclaimed) -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Canned cycle relative motion weirdness
On 02/22/2014 11:16 PM, Stuart Stevenson wrote: What is the L supposed to do? The way I read the program the tool would: G0 X1 Y2 Z3 - move (in G90) to X1 Y2 Z3 or (in G91) move 1 inch X , 2 inches Y and 3 inches Z See: http://www.linuxcnc.org/docs/html/gcode/gcode.html#sec:G81-Drilling-Cycle Example 2 - Relative Position G81 G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 - in the drill cycle the tool would rapid 1.8 inches positive Z , move 4 inches positive X and 5 inches positive Y then drill .06 negative Z then rapid 1.2 inches negative Z to the starting point is L supposed to repeat the complete cycle 3 times? Yes, the L is a repeat of 3 times. We are at XYZ=1,2,3. What is supposed to happen according to the documentation is that the sequence G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 translates into: G91 G0 Z1.8 ; end at 1, 2, 4.8 initial rapid G0 X4 Y5; end at 5, 7, 4.8 first cycle G1 Z-0.6; end at 5, 7, 4.2 G0 Z0.6 ; end at 5, 7, 4.8 G0 X4 Y5; end at 9, 12, 4.8 second cycle G1 Z-0.6; end at 9, 12, 4.2 G0 Z0.6 ; end at 9, 12, 4.8 G0 X4 Y5; end at 13, 17, 4.8third cycle G1 Z-0.6; end at 13, 17, 4.2 G0 Z0.6 ; end at 13, 17, 4.8 The attached image shows what LinuxCNC actually does (same for version 2.5): G91 G0 Z1.8 ; end at 1, 2, 4.8 initial rapid G0 X4 Y5 Z-1.8 ; end at 5, 7, 3first cycle G1 Z1.2 ; end at 5, 7, 4.2 G0 Z0.6 ; end at 5, 7, 4.8 G0 X4 Y5 Z-1.8 ; end at 9, 12, 3 second cycle G1 Z1.2 ; end at 9, 12, 4.2 G0 Z0.6 ; end at 9, 12, 4.8 G0 X4 Y5 Z-1.8 ; end at 13, 17, 3 third cycle G1 Z1.2 ; end at 13, 17, 4.2 G0 Z0.6 ; end at 13, 17, 4.8 I can imaging that the G98 (return to old_z) would initiate the return to Z-level at 3, but changing the G98 to a G99 does not change anything at all. The sequence is still not conforming to the documentation. -- Greetings Bertho (disclaimers are disclaimed) attachment: g81-relative.png-- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Little OT, but...
On 03/02/2014 01:14 PM, Mark Wendt wrote: One can also use http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Emcrsh or http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Halrmt for remote controlling. It's an easy thing to use telnet socket in and Android app. Telnet is extremely unsecure, with no encryption. In fact, at work, we have to disable all telnet services. ssh is much more secure, with both the username/password transaction and the the data flow being encrypted. Unfortunately, there is no way to specify for LinuxCNC only to bind to localhost (127.0.0.1) for the remote services as they are apparently hardcoded to listen on any address. However, instead of disabling the service you could simply block outside access with a machine internal iptables rule and use ssh forwarding to tunnel the request. -- Greetings Bertho (disclaimers are disclaimed) -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] G93 Inverse Time Mode
On 03/07/2014 02:12 PM, Mark Wendt wrote: snippage Does anyone have any ideas about how to calculate the F word? Sorry John, I just had to have a chuckle about that... ;-) Oh my... Doesn't the /not working/ of the code already calculate the remaining letters? Please don't tell me a mill or a lathe has no humor. They both cut deep. -- Greetings Bertho (disclaimers are disclaimed) -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - 1.5.1
Hi All, A new version 1.5.1 of gcmc has been released. Important fix in this release are correction of a couple of memory issues that could lead to wrong results and corruption. You should upgrade to 1.5.1 to avoid running into these problems. The syntax documentation has been expanded and a new introduction document is available. The introduction starts with basic language outline and describes a program to create involute gears. Additional examples were created to show off the language. The examples include: - Involute gears - Floret hole-arrangement (sunflower pattern) with hole sorting - Continuous curvature pocketing - Generic tool-size compensation on either side of a path - Trochoidal milling (high-speed milling) The examples have screen-shots on the gcmc homepage for quick inspiration. You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The updated documentation is online at: http://www.vagrearg.org/content/gcmc-into http://www.vagrearg.org/content/gcmc-man http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref http://www.vagrearg.org/content/gcmc-library All documentation is, of course, included in the tar-ball distribution and now also added to the windows zip-file. As usual, let me know if you encounter bugs or have any questions or wishes. -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/20/2014 01:28 PM, sam sokolik wrote: some more random paths running the circular arc blend rc3... I just tested trochoidal milling using the example I created for gcmc: - image: http://www.vagrearg.org/gcmc/example-trochoidal-large.png - source: https://gitorious.org/gcmc/gcmc/source/example/trochoidal.gcmc Target: axis_mm simulator The runtime on 2.5.3: - trochoidal milling: 386s - total time: 482s Runtime on 2.6.0~pre, branch circular-blend-arc-rc3: - trochoidal milling: 110s - total time: 205s LinuxCNC reports the runtime at 2.7min (162s). It is clear that the old LinuxCNC version cannot keep the speed high and wanders between 500..600mm/min. The code sets the speed for the trochoidal path at 3000mm/min. The effective speed is still not entirely up to the requested speed and seems to hover arround 1900mm/min. That may be due to the simulator setup (maybe acceleration limits?) or the arc-blending not looking ahead far enough. Still, a very impressive improvement. -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/20/2014 02:38 PM, sam sokolik wrote: Could you post that gcode somewhere? (I don't have time right now to play with your cool scripting language..) It could be the centripetal accel limits of the spirals.. Yes, I also suspect the centripetal accel limits may be a problem here. You can get the gcode here: http://www.vagrearg.org/gcmc/trochoidal.ngc.gz -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/20/2014 02:46 PM, Bertho Stultiens wrote: On 03/20/2014 02:38 PM, sam sokolik wrote: Could you post that gcode somewhere? (I don't have time right now to play with your cool scripting language..) It could be the centripetal accel limits of the spirals.. Yes, I also suspect the centripetal accel limits may be a problem here. You can get the gcode here: http://www.vagrearg.org/gcmc/trochoidal.ngc.gz I just set the axis accelerations in the INI file from 508 to 1000, but the result is the same. Actual result is 109s vs. 110s, which is within the tolerance of my eye-on-the-clock timing. This is where my expertise end ;-) -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/20/2014 03:19 PM, sam sokolik wrote: the limit of sim is 1800mm/m - so if you change all the axis velocities to 58mm/s (3500mm/m) it peaks at 2900mm/min. Upping the acceleration to 1000mm/s^2 makes the program run at 3000mm/m steady. Indeed, with that setup the trochoidal path will be finished in ~73s and the total time ~168s. Also, LinuxCNC's runtime calculation of 2.7min will finally be correct for all practical purposes and intents. with my setup of 30in/s^2 - I get 3000mm/m (cool) the current TP peaks at about 600-700mm/s It works :-) However, if you are going to do trochoidal milling at those speeds, then you better make sure that you have one of those machines that weighs too much and is bolted securely or it will start dancing in the room. Great work! keep it up. -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/21/2014 05:05 PM, sam sokolik wrote: heh - isn't that how we all dress? That depends on how many lumps still hang together on my coat. It has some signs of wear and tear. I had to post some scopes of the torodal gcode. The new tp - strait G64 http://imagebin.org/300857 xyz - velocity gets to the programmed speed (aprox 1.96in/s - 3000mm/min) x acc, y acc. nice sin/cos graphs. sexy! (yes - I think it is sexy...) Ah yes, for trochoidal curves the accelerations of X and Y should be exactly sinusoidal. The first derivative (velocity) should show a static offset on the sinusoidal curves, which represents the direction of motion. Do you have a measurement of what the magnitude of path-deviation is from the programmed path? The path deviations may also be slightly reduced when the trochoidal path is generated with higher resolution (smaller angular step interval in the calculation). -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/21/2014 07:06 PM, sam sokolik wrote: I was wondering how I could check that.. I don't know - but I can tell you this.. At G64p.002q0 P is in mm and my config. 30in/s^2 and 500ipm per axis.. the velocity just starts to dip - just wiggles between 3000 and 2999mm/min. If I do p.001q0 it fluxuates around 2200mm/min. The accelleration graph looks a but harry at that thoug though.. (wipping around to try to keep up the path tolerance and velocity up..) [snip] so with the path programmed - it can follow at cutting speed with tollerances below what is sane... (with that config) That looks pretty impressive to follow within 50 micrometer. I prepared a few versions of the same patters. Each with a different angular interval to generate the curve from 10deg...0.2deg steps. That results in linear segments with lengths from ~0.75mm to ~0.01mm. http://media.vagrearg.org/gcmc/trochoidal-steps.tar.gz I wonder if the smallest angular interval would improve the following and where the breakdown occurs. -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code (sam sokolik)
On 03/21/2014 07:43 PM, sam sokolik wrote: there is a limitation of 'too short' Rob explained it in a dev email (discusing the Q part of G64).. Unfortunately, the new TP still has the restriction that you have to touch each segment at least once. A small NCD tolerance is still useful to combine stupidly short segments, in particular ones that would be skipped over in a single cycle of the trajectory planner. [snip] That explains the limits nicely, thanks. -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Toolchanges
On 03/24/2014 08:28 PM, andy pugh wrote: Maybe check your phone provider for a SMS e-mail or other port? http://www.ehow.co.uk/how_6510217_send-message-o2-cell-phone.html Hmm, certainly looks simpler than stopping the spindle and stabbing the quick-dial button with the tool :-) Why would you want to stop the spindle? :-) -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Toolchanges
On 03/24/2014 09:34 PM, Gene Heskett wrote: Maybe check your phone provider for a SMS e-mail or other port? http://www.ehow.co.uk/how_6510217_send-message-o2-cell-phone.html Hmm, certainly looks simpler than stopping the spindle and stabbing the quick-dial button with the tool :-) Why would you want to stop the spindle? :-) So your 2 armed tool changer can change the tool? :-) Please change tool with /remaining/ arm and fingers... But seriously, you could always hook a custom M-code and have a script send an SMS using an attached modem. However, I guess that you never should be too far away from a running machine. Maybe a siren and/or a blinking lamp? -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Toolchanges
On 03/26/2014 12:59 AM, Dave Cole wrote: No. To carry this to its logical conclusion, fix the phone to the table, locate the keys, then lay an 1/8 sheet of rubber over the phone which will have the side effect of keeping the swarf out of the keypad, stop the spindle and use the existing tool to dial the phone. As long as there is room on the table for the phone, problem solved. C'mon Gene. Get into the 21st century. iPhones and Androids don't have keypads. They're touch pads and already sealed for swarf. The phone can then be mounted as an offset to the machine's 0 and you can G5x your way to the touchpad... ;-) Ahh shaddup. My last cell phone was the economy ATT that I had signed up for a 29$ month 200 minute account that I never used more than 10% of unless I was up in Iron Mountain MI. Had a keypad. Did phone voicemail. But the monthly kept going up and when it got to $109.99 a month I told them where to stick it and it wasn't on the table of my mill. ;-) So I've been cell-less for about 6 months now. Don't miss it a bit. Gene, you are fortunate that you don't have to keep one in your pocket. Having the phone in your pocket would seriously complicate the CNC machine from reaching it to send you a message. On the other hand, achieving that goal of having the CNC to reach into your pcoket would likely draw enough attention to just change the tool while you're at it. -- Greetings Bertho (disclaimers are disclaimed) -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] New trajectory planner merged into LinuxCNC's development branch
On 06/12/2014 05:38 PM, sam sokolik wrote: This is even sexier Torchoidal path.. (graphing x and y acceleration and xyz velocity) [snip] Now I am a bit proud of myself with making the trochoidal example code. Oh vanity, sometimes nice, other times it has a price ;-) -- Greetings Bertho (disclaimers are disclaimed) -- HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions Find What Matters Most in Your Big Data with HPCC Systems Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. Leverages Graph Analysis for Fast Processing Easy Data Exploration http://p.sf.net/sfu/hpccsystems ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - G-Code Meta Compiler
Hi all, Every time I had to write a CNC-mill program using G-codes I got annoyed by the archaic format and syntax. Especially when needing to convert positional data from mil to mm, having recurring patterns and then also trying to keep track of everything. I looked for a meta compiler or generic pre-processor, but could not find anything that satisfied me. Being able to program should be easy. The G-Code Meta Compiler (gcmc) is just that, a scripting meta language, using modern procedural paradigms and a context free grammar, to generate G-code. It takes in a script and generates all the movements. Units can be assigned/attached to values to do metric/imperial conversions automatically. A rich set of built-in functions for G-codes and mathematical manipulations make it easy to keep track. Variables are typed into integer/floating point (scalars), vectors and vector-lists. You can define functions and use local variables. Standard loop-control is performed using foreach/for/while/do-while constructs as well as conditional execution with if/if-else constructs. The context-free grammar allows you to make sources more readable and therefore more debug-able. You can find the code at my git repository: https://gitorious.org/gcmc/gcmc An example script can be found in the tests directory (cutter.gcmc) and some preliminary documentation about the grammar and built-in functions can be found in the doc directory (gcmc.txt). Please note that the code is not entirely mature as of yet. However, the basics should function properly and you are encouraged to use it and take a look. If you have any comments you are welcome to provide feedback. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 01:33 PM, Kent A. Reed wrote: Every time I had to write a CNC-mill program using G-codes I got annoyed by the archaic format and syntax. Archaic? How could you say that? Why it's 10 years younger than I am. Oh, wait Shall I provide you with a script to mill a walking-cane? [snip] I look forward to taking it for a spin. Those of us who handcode can use all the tools we can get. Yes, I sincerely sympathize with all who have hand-coded. My brain still hurts from it. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 01:41 PM, andy pugh wrote: Whist not wanting to defend G-code, which is, as you say, horrible as a programming language, it does already contain G-codes to switch between units and (At least with the LinuxCNC variant) repeating patterns are reasonably manageable with the use of subroutines, loops and conditionals. The unit switching (G20/G21) makes life more difficult (IMO) in all cases where you have to calculate your position in a mixed setup. It is much easier to associate a unit to a variable and let it be converted automatically. It is less error-prone. Secondly, reading G-code that switches between units is a real hell. The problem is that you have to keep track manually (in your mind) which unit target is active. Again, very error prone. The loops and conditionals provided by G-code are, well, archaic. The format is context-sensitive and uses line numbers to keep track. Moving things around in a G-code program is a pain. The reason for a context-free grammar is to make coding more flexible without having to think about line numbers. A paradigm that has proven to be very successful. I looked for a meta compiler or generic pre-processor, but could not find anything that satisfied me. Being able to program should be easy. There is an alternative (and possibly more interesting) approach, you could develop your meta-language into an alternative interpreter for LinuxCNC. The interpreter doesn't _have _ to read G-code. It is just that the only one we have does so. Pluggable interpreters have been an option for a while. That would certainly be an option for future development. However, my first milestone was to be compatible with existing setups (primarily to make my own stuff). That is to say, I could have written my G-code program that started this project in two days. Instead I opted for using two weeks making gcmc. :-) For a future as a secondary/pluggable interpreter, it would be required to finalize the grammar, discuss required built-in functionality, discuss how to handle rotational axes and get a grip on all bugs. I think it would be a great idea, but I do not want to rush things. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 02:00 PM, Marius Liebenberg wrote: I downloaded, extracted, configured and maked it. Now what, I cant get any further than that. I like the idea and want to test it but you are going to have to give some small bit of guidance as to how we get to use it please. You should have an executable named 'gcmc' in the src directory. You can type (assuming you are in the src directory: $ ./gcmc -o output.ngc ../tests/cutter.gcmc That should give you an output file output.ngc in the current directory which is the intepretation of the testfile. You can get a brief option help by typing: $ ./gcmc -h Also have a look at the example script and the doc/gcmc.txt file for more information on the functionality provided. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 02:07 PM, andy pugh wrote: A way to configure CSS and feed-per-rev would be useful. Hm, yes, those will need to be implemented. As a hack... You can put anything into the generated code with the literal() function. It simply outputs anything you like. Also the other typical switches, such as radius comp on/off, absolute/relative (G90, G90.1) The relative/absolute question is actually a bit more involved. I have been pondering that one from when I started. The question is whether you want the meta-language or the generated code to support relative/absolute. Currently, the generated G-code is absolute by choice because it is easier to debug. There is, as such, no added value to mix relative/absolute in the generated target. Supporting relative addressing at the meta-language level /is/ a good thing. I just have not yet addressed that point. Some functions need to be added for relative movement and at least: - move()move_r() - goto()goto_r() - arc_cw() arc_cw_r() - arc_ccw() arc_ccw_r() I do track the current absolute position internally, and it is exposed to the script under the variable name global_position. There is also a variable called global_offset, which holds the command-line added offset for all generated code. Is G43 implicit in toolchange() ? No, currently the toolchange() only emits a T code. I think it may be appropriate to send a Tx followed by G43 Hx. It may also be appropriate to enable/disable this behavior with an optional second boolean parameter to toolchange(). -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 02:53 PM, andy pugh wrote: Getting a bit off topic here Well, if I cannot defend the choices made in the creation of gcmc, then they may not be valid choices and should be thought about. , but the RS274NGC version of G-code doesn't use line-numbers at all. While/Wend If/Endif are matched by numerical tags, so canbe moved about (but can't be repeated unless you change their identifier tags) http://www.linuxcnc.org/docs/html/gcode/o-code.html What is more readable? o100 sub (notice that the if-endif block uses a different number) o110 if [#2 GT 5] (some code here) o110 endif (some more code here) o100 endsub ... or ... function blabla(arg1, arg2) { if(arg2 5) { /* Some code here */ } } I have a feeling that a few years ago someone wrote a system to allow use of something Python-like to create G-code, but I can't find it. I vaguely remember seeing some python style attempt, but I have one *very* large objection to python: it is context-sensitive. IMO, it is brain-dead to use indenting for scoping purposes where context-free grammars have proven to be so useful over the years. But that is my opinion. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 05:11 PM, Gene Heskett wrote: I downloaded, extracted, configured and maked it. Now what, I cant get any further than that. I like the idea and want to test it but you are going to have to give some small bit of guidance as to how we get to use it please. Needs an installer script written, so I ran it in place from the cli. Well, it uses standard automake/autoconf tools and thus has make install ;-) No, you are right, it has a lot of rough edges. I wrote the announcement mail to the list to get early feedback. You know, publish early, publish often. It should improve over time. I ran it on the two test files, with cutter.gcmc being able to be executed on my mill, but arccw.test.gcmc failed. Good sized radius error at end of the arc according to linuxcnc. I added the arc-code this morning. However, the testfile just lacks a feedrate() line above the arc_cw() call according to my dry-test-run (also on 2.5.3). A file containing the following should work fine: feedrate(100); arc_cw([10, 10, 10], 10, 3); I think we need some docs too. Agree... As stated, I just started writing this code and it just grew as I was going along. The text-file doc about the grammar/functions was just a feable start to get something written down. But the .ngc file it generated for cutter.gcmc as a demo was impressive, actually generating more ncg code than I expected. No clue what it is, but it ran to completion in LCNC-2.5.3 as of yesterdays pull. It is a plate to be pressed onto a PCB (aligned with the components on it). Most of it is touch-off for drill-holes. However, it is why I wanted the mil/mm conversions in the first place. It generates quite a bit of G-code because it traces paths that I set up. I do not think that it is too much though ;-) So I think we have the makings of another very useful tool once we have some instructive docs. I certainly hope so. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 04:27 PM, TJoseph Powderly wrote: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?AptProgrammingForEMC look at the screenshots of the generic path description. This is high level and abstracted. The output is filtered according to machine style ( horiz, vertical, special kins, special variant of gcode ) I did take a look at Apt programming, but decided against it as being a bit exotic in syntax. I was looking for a C-like syntax, which is familiar more people afaik. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 04:29 PM, Gene Heskett wrote: As someone from the other side of the pond, I am far more comfortable in inches than in mm or mils for everyday work, but I think I need to understand what a mil is in the definitions you use? A 'mil' is one thousands of an inch or exactly 0.0254mm. My own interest is from my work with PCB design, which uses mils all the time. But all mechanics are done in mm. The disparity always annoyed me. Please, can you define the mm to mil conversion, and how that relates to inches for an old man like me who is used to speaking in thousandths for everyday precision measurements? mil -- mm == value * 0.0254 mm -- mil == value / 0.0254 1 inch = 1000 mil I am in electronics, so to me metric always made sense, but I've been stuck in Rome, doing as the Romans did for 79 years. This old dog needs to learn metric in the physical world, not just in wavelengths. Well, electronics still has a lot of imperial measures in use for PCB design. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 06:42 PM, Gene Heskett wrote: [snip] Generates: [snip] G2 X9.97547740 Y9.97547764 Z9.97547781 I10. J0. P3 That is seriously wrong... The generated code should read: ... G2 X10. Y10. Z10. I10. J0. P3 ... Is you add a move([0,0,0]); before the arc, does it still come out with a fractional XYZ position? You may want to try: spindlespeed(400); feedrate(100); spindle(1); literal(( initial global pos , global_position, )\n); literal(( global offset , global_offset, )\n); move([0,0,0]); literal(( before arc global pos , global_position, )\n); arc_cw([10, 10, 10], 10, 3); literal(( after arc global pos , global_position, )\n); spindle(0); Then you can see in the generated code what the positions evaluated to. The initial position should have been initialized to zero on all axes and the offset should read zero if none set on the command-line. My local compile gives: ... S400. F100. M3 ( initial global pos [0.00mm,0.00mm,0.00mm,0.00mm,0.00mm,0.00mm] ) ( global offset [0.00mm,0.00mm,0.00mm,0.00mm,0.00mm,0.00mm] ) G1 X0. Y0. Z0. ( before arc global pos [0.00mm,0.00mm,0.00mm,0.00mm,0.00mm,0.00mm] ) G2 X10. Y10. Z10. I10. J0. P3 ( after arc global pos [10.00mm,10.00mm,10.00mm,0.00mm,0.00mm,0.00mm] ) M5 ... -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 05:13 PM, Kent A. Reed wrote: It seems to me your to-do list is relevant independently of whether gcmc remains a standalone tool or mutates into another LinuxCNC interpreter. Agreed. It would be nice to have a wiki page, forum section, or some such where we can capture feedback, discussions, and desiderata. These email discussions get disjointed and are difficult to mine after the fact. Yes, I am wondering whether I should get this on LCNC wiki, or just make my own homepage or gitorious wiki to do this. Documentation is always twice as hard as writing the code. I try, at least, to update some documents as I go. But, you are right, it needs quite a bit of improvement, including proper discussion space. As for added functionality, I'd certainly want to see a meta-level ability in gcmc to include* user-defined units of functionality** at runtime. Otherwise I have to do it myself while preparing an input file to gcmc. This forces me to do bookkeeping better left to the computer. The include facility is a must to be part of the language. Will require a bit work, but is an important feature. Once an include facility is in place, then a user-space library can be created for common (more complex) tasks. Some (simple) functions may become built-ins once it is established what common requirements are. Some other messages have flashed by which border on programming-language bashing. I hope we can avoid yet another flame-war and concentrate on scoping, completing, and using your gcmc. Agreed. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 07:01 PM, Bertho Stultiens wrote: On 10/30/2013 06:42 PM, Gene Heskett wrote: [snip] Generates: [snip] G2 X9.97547740 Y9.97547764 Z9.97547781 I10. J0. P3 It was probably caused because I had been compiling with -O0 (for debugging) and that does not detect uninitialized variables. I pushed an update to gitorious that should fix that. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/30/2013 08:58 PM, Gene Heskett wrote: [snip] H, not at all what I got: [snip] ( global offset [-0.026255mm,-0.026255mm,-0.026255mm,0.00mm,0.00mm,0.00mm] ) This is why it fails. My code did not initialize the global offsets correctly, which had the consequence that the tracked global position was off. G1 X-0.02625543 Y-0.02625519 Z-0.02625501 The move([0,0,0]) corrected the discrepancy and then the arc works. [snip] Works, draws a nominally 20mm diameter spiral, moving z up for nominally 2.25 revolutions in the xy plane. So starting at XYZA = 0.0, 0.0, 0.0, 0.0, the ending position is 0.975, 0.975, 0.975, 0.0. Is that the intended action? Spindle-at-speed display=400, so that works. The intended action was to start at [0,0,0] and end at [10,10,10] with 2.25 revolutions in the xy plane. The uninitialized global offsets made the IJ calculations of the arc incorrect. As replied earlier, that should now have been fixed in my commit (and pushed to the gitorious repo). You should be able to do a git pull and recompile. Then the coordinates should match up correctly. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/31/2013 07:38 AM, Gregg Eshelman wrote: Once achieving a state where all of a program works, it's a good idea to do a renumber then continue work on a copy. If G-Code cannot handle gaps in its line numbers, then perhaps an editor could do so, then have a Save As runnable output function which automatically renumbers with a step of one and another option to save the editing version with the gaps? If you already are in need for a program to help you to fix a program, then why not fix the language in the first place? G-code has already evolved through time to support many more features than originally envisioned, but it still suffers from the the same archaic syntax. That was (and is) my objection. Even basic evolved into a (almost) context-free grammar, for the better or worse, in visual basic. Please note that you can write bad code in any language... I am not forcing anybody to change their habbits or preferences, only hoping to. I am trying to provide an alternative. Explaining why I want to provide an alternative seems a reasonable thing to do. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 10/31/2013 01:25 PM, Kent Reed wrote: There is no need to dwell on the justification for providing an alternative, either. As my grandmother was fond of saying, the proof of the pudding is in the eating. Let's get on with finishing the pudding and let the CNC world decide if it likes the taste. If it does, then gcmc will be its own justification. If it doesn't, you'll still have a program which satisfies your needs and sensibilities. My guess is that some will like it, some won't. A long-ago friend liked to remind me, there's no accounting for taste. Well said, thanks. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - Updates
Hi All, I've been updating the gcmc code quite a bit with stuff that was missing and several bug fixes. The syntax and semantics are now at a stage where most vector calculations can be performed and is illustrated with an example in tests/star.test.gcmc. The star is a convex polygon and is contracted with an offset from the corners. Other changes include: - include() function to include other files (and uses one or more -I cmd-line options for search path) - isXXX() functions to determine types - local keyword for forced local variables in functions - error()/warning()/message() functions to provide console output - Allow empty vectors and vectorlists - Added modulo (%) expression and abs() function - Syntax error checking with better indication what the problem is You can get it at https://gitorious.org/gcmc/gcmc or you can do a git pull to update your local copy. The doc/gcmc.txt file should be up to date on all changes. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 11/01/2013 11:40 PM, Tony Zampini wrote: I've been following this thread, and I'm very intrigued by your program - gcmc. What would it take to get gcmc to run in the Windows environment? For example, a windows console application? Gcmc has no external library dependency, so it should be fairly painless. I just did a cross-compile on my Linux-box with mingw, resulting in the following windows executable: http://www.vagrearg.org/gcmc/gcmc.zip SHA1 sum: 6e375d1ff8dd77cdd7c66a8e4d6002c98a381e5a gcmc/gcmc.zip SHA256 sum: 932baab00e6fef9844634c69e0e29b78c09fb067a4b1b6a3928c734b245a7304 gcmc/gcmc.zip If you have mingw+msys installed (and git) then you should be able to compile locally. Alternatively, if you have cygwin installed with git, then you should be able to do it too. If you decide to hack the parser or lexer, then you will need bison and flex installed too. Commands needed to compile: $ git clone https://git.gitorious.org/gcmc/gcmc.git $ cd gcmc $ ./configure $ make $ src/gcmc -o outfile.ngc inputfile.gcmc -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 11/02/2013 05:44 PM, Tony Zampini wrote: Thanks so much!! I was able run gcmc in a Command Window on my Win7 laptop. I tested it on your cutter.gcmc test program and it compiled without error. You are welcome. Please report any errors you may encounter. In the future, would it be possible for you to provide an updated gcmc.exe whenever you update the linux version? Or is this asking too much :) I am going to write a webpage dedicated to gcmc and I hope to be able to have multiple builds on there as well. Please do not expect everything to be done tomorrow. It is a lot of work to get everything in place. I also appreciate feedback and bugreports as well as examples and functions/apps any of you think are interesting to have bundled. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 11/03/2013 03:08 PM, Tony Zampini wrote: A quick question about gcmc. Are the contents of the prologue and epilogue hard-coded into the program? Or can I make them anything I want. They are hard-coded, but you can disable its generation by adding the -q option on the command-line. The reason for being hard-coded is that the generated G-code depends on a few settings of G-code interpreter, which are setup in the prologue. Dependencies include: - G21 ( Use mm ) - G40 ( Cancel cutter radius compensation ) - G90 ( Use absolute distance mode ) Strictly seen, the cutter radius compensation is not required if your program keeps track of its effect in the program. The active plane in the prologue can be set with the command-line option -p. The feedrate mode can be changed in the program by calling feedmode(). In principle, it should be possible to alter gcmc to output relative position code, which subsequently can be reused in other programs. It has been a thought I have been playing with. The epilogue simply terminates the program with M2. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 11/03/2013 03:32 PM, Bertho Stultiens wrote: In principle, it should be possible to alter gcmc to output relative position code, which subsequently can be reused in other programs. It has been a thought I have been playing with. To that end,... I just had a look at relative outputs and it was actually quite simple to implement. I pushed an update to gitorious that implements the -r command-line option, which in turn will output the G-code using relative addressing. That means that you can generate a fragment of code and include it into other programs quite easily: ... (your gcode here) ... G0 Xxx Yxx Zxx G91 (imported code from gcmc -r -q ...) G90 ... (back to your code) M2 -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 11/02/2013 08:10 PM, Bertho Stultiens wrote: In the future, would it be possible for you to provide an updated gcmc.exe whenever you update the linux version? Or is this asking too much :) I am going to write a webpage dedicated to gcmc and I hope to be able to have multiple builds on there as well. I have the current documentation, and then some more, online on my homepage: http://www.vagrearg.org/content/gcmc It has links to the sources, tarballs and a windows exe. Currently at version 1.0.1, adding the relative option. -- Greetings Bertho (disclaimers are disclaimed) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - Updates 2
Hi All, I've been updating the gcmc code continually. Current version 1.1.0 highlights are: - Add angular value units (degree and radian) - Add value unit query functions - Make LHS dominant for unit conversions in operations - Divide operation strips units if both LHS and RHS are of same unit class - Implement boolean short-circuit on and || - Add option to exit non-zero on warnings There are also some other small bugfixes (I hope). -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - Updates 2
On 11/06/2013 03:06 PM, Gene Heskett wrote: A suggestion Bertho. Your original message and the link to the tarball is now well off screen in the message list. Could you add it to your sig? I will add a link for future update messages. All should be available from: http://www.vagrearg.org/content/gcmc I hope that will provide you with all information. Let me know if there is anything else. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] USB Camera for edge finder?
On 11/07/2013 12:34 PM, Sebastian Bachmann wrote: The problem ist that the terms high magnification and depth of field does not fit well together. You can improve on the DOF if you use a very small apperture: a pin-hole. You will need a lot of light to image anything through a pin-hole and a good objective lens on your camera system to image properly on the sensor. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.1.1
Hi all, This new version allows index [] on vector- and vectorlist-variables to function as you'd expect. The syntax page has updated information and an example under the operator heading. This version also includes library functions in the tar-ball, a beginning of a test-framework and bugfixes. You can get it at: http://www.vagrearg.org/content/gcmc See the changes as noted on the page. If you have examples or tests you are willing to share, please let me know (on- or off-list). I'd be happy to include them. More examples means better understanding for all. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/08/2013 09:18 PM, Tony Zampini wrote: Thank you for maintaining and improving GCMC. I'm finding it very useful and powerful. It makes it so easy to whip up quick machining operations. I can do things with GCMC that I simply can't do with my CAM program(CamBam). Don't get me wrong, I love CamBam, but GCMC provides a high-level way to do *anything* you want. I am happy that you find it useful. As you have experienced, it is very easy to make a quick-and-dirty script that does what you want, which would be a painful experience in most, if not all, CAD/CAM packages. (And doing anything quick-and-dirty in gcode directly is usually pure torture ;-) You have confirmed my own experience and the reason why I created gcmc. If you have any scripts you want to share, please contact me because I really want more examples in the distribution. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Controlling an infrared reflow oven using LinuxCNC
On 11/08/2013 11:38 PM, Jean-Michel Pouré - GOOZE wrote: I need to know to what extend Linux CNC could be used to manage an infrared SMT reflow oven. Any ideas are welcome. That sounds a bit like using a hammer to screw a bolt... Sure, you could modify configs and make it work, if maybe not all of it, but why would you? This application screams for some custom software IMO. The easiest thing to do is wire up a micro-controller that reads the temperatures and can move the caddy, as well as controlling the heating elements/ventilators. Then you put a serial port on the microcontroller which you connect to a PC. You could also just do all of this on a Raspberry Pi as controlling PC and micro-controller if you extend the IO connector a bit. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/09/2013 07:40 PM, alan wrote: I also think this is a good idea. To test it I have quickly rewritten my g-code wheels program see attached file. It currently works only for paths cut in XY plane using XY movements. I cannot check this but the axis path plot look ok. Nice pattern. I'll include it, but may alter the formulation of the code a bit (see below). I am really excited that the grammar performs this well :-) My setup is a rotary system so I need to convert all cartesian XYZ movements into polar R theta depth movements where rotation is around the Z axis. Instead of move emitting g1 X?? Y?? Z?? I need to emit g1 x?? C?? Z?? . I am not sure how to do this. I havent looked yet in detail at the source code . I would appreciate any help / suggestions you have for creating a polar version of the goto and move functions. The current gcmc version uses a 6-axis system XYZABC in the vectors to move/goto calls. Arcs only use XYZ. However, there is a bug that fails the output at the moment because the ABC axes are converted to mm and not to degrees. A fix is in git (and pushed to gitorious). To move in a XZC axis system, you have vectors that look like: vec = [x, -, z, -, -, c]; An additional fix is in the pipeline which includes a 9-axis system XYZABCUVW, where XYZ and UVW are distance based and ABC angular based (also pushed to gitorious). A few comments on the code. You write: function CreateWheel(r,s,p) { local w; w = [r,s,p]; return w; } It could be simply written as (faster at runtime): function CreateWheel(r,s,p) { return [r,s,p]; } FWIW, you do not need the function as such... You call it with explicit addressing as: wheels = {}; wheels[0] = CreateWheel(10,1,0); wheels[1] = CreateWheel(5,7,0); wheels[2] = CreateWheel(3.333,-17,90); I would have written: wheels = {}; wheels += { CreateWheel(10,1,0) }; wheels += { CreateWheel(5,7,0) }; wheels += { CreateWheel(3.333,-17,90) }; or wheels = { [10, 1, 0], [5, 7, 0], [3.333, -17, 90] }; Both alternatives have the advantage that you do not need to keep track of the indices yourself. However, the latter may be more difficult to understand. There are more ways to come to the same result. Something not documented correctly (or not extensively enough) is the conversions of sin() arguments and to_XXX() functions. You do explicit radians conversion in CalcPoint() using to_rad(). If you have defined the angles from the start, then the conversions will be implicit in the grammar: wheels = { [10, 1, 0deg], [5, 7, 0deg], [3.333, -17, 90deg] }; ...and... CutPath(wheels, 0deg, 0.01deg, 360deg, cuttingdepth, svec); The sin(), cos() and tan() functions will internally convert from degrees to radians before calling the underlying system sin/cos/tan function. Your example has made it clear that I need to implement a vector slice/combine operator to isolate and combine XYZ, ABC and UVW parts of any vector. Also shift/rotate must be implemented for vectors (I already did that for vectorlists). Such operations would help vector calculations in some instances. Alternative is that a final calculation must do coordinate-system conversion, but that may be quite hard as it depends on the physical setup of the target. Some input on axis conversion and geometry conversion calculations and options is appreciated to find a generalized and easily comprehensible solution. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/09/2013 07:40 PM, alan wrote: To test it I have quickly rewritten my g-code wheels program see attached file. It currently works only for paths cut in XY plane using XY movements. I cannot check this but the axis path plot look ok. I made some small changes to the code. It runs a bit faster than the original version. Please note, gcmc 1.1.1 cannot compile it, you need version 1.1.2 or the git version. Version 1.1.1 lacks the ability to accept function calls as arguments in the creation of vector-lists (dies on an assert()). Get version 1.1.2 at: http://www.vagrearg.org/content/gcmc The documentation is also updated. -- Greetings Bertho (disclaimers are disclaimed) // /* Code to produce wheels paths */ /* Using GCMC Compiler */ /* Author: Alan Battersby */ /* Version: 1.0 */ // // /* Each wheel is a vector of three components */ /* Radius - The radius of the wheel */ /* Speed - The speed of the wheel */ /* Phase - The phase of the wheel */ function Radius(wheel) { return wheel[0]; } function Speed(wheel) { return wheel[1]; } function Phase(wheel) { return wheel[2]; } function CreateWheel(r, s, p) { return [r,s,p]; } /* Wheels are held in global vector list called wheels */ function CalcPoint(wheels, angle) { local at, posn, r, s, p, w; posn = [0, 0]; foreach (wheels; w) { r = Radius(w); s = Speed(w); p = Phase(w); at = s * angle + p; posn += [r * cos(at), r * sin(at) ]; } return posn; } function CutPath(wheels, start, inc, end, cdepth, scale) { local angle, point; /* move to first point at safe height */ for(angle = start; angle = end; angle += inc) { if (angle == start) { /* we should be at safe height */ /* so move to cutting depth*/ point = CalcPoint(wheels, angle); point = ScaleBy(scale, point); goto(point); goto([-,-,cdepth * scale[2]]); } else { point = CalcPoint(wheels, angle); point = ScaleBy(scale, point); move(point); } } } /*** Library / function GoAtSafeHeight(x,y) { goto([-,-,safeheight]); goto([x,y,safeheight]); } function ScaleBy(sv, v) { return [sv[0] * v[0], sv[1] * v[1]]; } /*** main program ***/ safeheight = 1mm; cuttingdepth = -1mm; svec = [5,5,1]; wheels = { CreateWheel(10, 1, 0deg), CreateWheel(5, 7, 0deg), CreateWheel(3.333, -17, 90deg) }; feedrate(60); GoAtSafeHeight(0, 0); CutPath(wheels, 0deg, 0.01deg, 360deg, cuttingdepth, svec); GoAtSafeHeight(0, 0); -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.2.0
Hi All, A new release, 1.2.0, has been made for the G-code meta compiler. Changes include: - and operators on scalars, vectors and vector-lists - full axis support for XYZ, ABC and UVW - fixed arcs to output valid IJK values and correct XYZ coordinates (thanks Tony for spotting the problem) - slight performance improvement using value structure caching reducing malloc/free overhead. You can get the tar-ball and a windows executable at: http://www.vagrearg.org/content/gcmc The online documentation has been updated to include a functional description of the shift operators and additionally a description how undefined values are handles in calculations. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/11/2013 09:50 PM, alan wrote: I did originally write both parts as per your changes. But kept getting a compilation error. I cannot remember what the message was and it was probably because of something else. So made those changes and it all seemed to work . I probably inadvertantly fixed the real problem but not having written C in such a long time I am not sure what was wrong. Yes, the error was probably hitting the mm/deg conversion bug. That should be fixed in version 1.2.0, which I released earlier today. I am happy to fix any bugs you encounter as long as I get an example that triggers it. Anyone who is not versed in C may prefer not to delve into the code and I am just as happy to receive examples, comments and suggestions. My background is EE/CS, so my strengths are more in the computer stuff than the mechanics. The sin(), cos() and tan() functions will internally convert from degrees to radians before calling the underlying system sin/cos/tan function. Didnt know about that thanks for the information Yeah, the automatic conversion of units was one of my original design parameters of the language. I have had so many problems and stupid errors when doing it manually that I considered it to be a requirement. Finally a comment about angles. I found when generating gcode in my own windows based program that I had to be careful with angles greater than 360. (This was before wrapped axes havent tried wrapped axes so dont know what will happen) . If I generated a path with multiple turns around the origin (easy to do with the wheels patterns), so that for example the polar coordinates (radius, angle,depth) of successive points was say (10,360,-1) then (12,10,-1) then (15,40,-1) in the same direction which for my setup is anticlockwise. Linuxcnc would get to 360 then do a clockwise move back to 10 ploughing a nice big path through the work and spoiling the pattern. So I have to generate positions (10,360,-1) (12,370,-1),(15,400,-1) to keep rotating in the same direction. So I keep a note of how many times the cutter crosses the x axis in an anticlockwise direction (the winding number) and use this to calculate the angle. If the cutter has a retrograde move and crosses the x in a clockwise direction I reduce this winding number. I do not use any modulo or other alteration in the coordinates, polar or Cartesian (expect for unit conversion and relative output option). You are absolutely right that 361 degrees and -1 degree are not the same in terms of machining as it encodes directional information. Also, as you correctly comment, 0, 360 and 720 degrees are distinct separate positions, considering the winding of the axis. I actually do not know how LinuxCNC handles this because I never /used/ a mill with a rotational axis, but my guess is that it does not do some modulo or other stupid stuff... I had some consideration about the angular axes, but decided quite early on that the user-program had to decide the actual magnitude and not some mathematical idea of modulo calculus. I mention this because generating polar coordinates is not quite so straightforward as cartesians. So even using your example below vec = [x, -, z, -, -, c]; I agree. Polar coordinate systems are much harder to use than Cartesian. Especially because there is no general agreement on where which rotational axis is mounted. Some may be on the mill's spindle (robotic finger-joints), while others are part of the X or Y axis. I have been pondering some generalizations, but have not come to any result that could be used. However, the example is still reasonably easy to handle. The trick lies in the use of undef values in the vectors. The rules for undef are such that simple operations have predictable result. With the addition of shifts ( and ) in the new 1.2.0 it should even be easier to handle coordinate subsets. But still, you need to keep track while writing the program. There has to be some pre-processing. Can this be accomodated by your meta compiler? Just thinking about your explicit angle conversions mentioned above. I have no plans of doing pre-processing at this moment. I do have some considerations of defining values on the command-line, which then can be used in the program. But I have not yet decided how to handle that. You can always use the C-pre-processor as a front-end, which is a text-substitution processor. Anyway, if you have some ideas for pre-processing, let me know and we'll debate the issue. Anyway keep up the good work, How far do you intend to take this structs? classes? I'll take gcmc as far as is necessary for replacing manual gcode programming. The sky is the limit :-) Classes... no plans at all. It is not an Object Oriented mill I try to control. There would be some few cases where it /might/ be useful, but my intuition tells me that the complexity of OO is a bad fit for a mill or a lathe. Structs, that is another case. I have been
[Emc-users] gcmc - v1.2.1
Hi all, A new gcmc release was made which fixes a couple of problems and adds some useful features. Changes include: - Change epilogue to use M30 for end program. M2 has been obsolete for quite a while - Add G49, G54 and G80 to the prologue to ensure known setup - Implement imperial units output using -i option. Gcmc still defaults to mm - Add head() and tail() functions to isolate parts of vectors and vectorlists - Change precedence of modulo (%) to same as multiply/divide to conform to other langauges - Fix default cutting plane selection You can get the tar-ball and windows executable at: http://www.vagrearg.org/content/gcmc The online documentation has been updated to reflect the changes. Please let me know of any problems and suggestions you may have. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] ldconfig question
On 11/13/2013 09:59 PM, Gene Heskett wrote: I have added /usr/lib/camunits to one of the files in /etc/ld.so.conf.d, and have verified that path is correct, but I don't seem to be able to make a sudo ldconfig -v|less show me that it is seeing a single one of the dozen plus .so files there. I was under the impression all we ever had to give it was the top level of a tree it (ldconfig) was supposed to process. Perhaps I'm running it wrong? Did you rebuild the cache before running ldconfig -v? -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] ldconfig question
On 11/13/2013 10:37 PM, Gene Heskett wrote: I have added /usr/lib/camunits to one of the files in /etc/ld.so.conf.d, and have verified that path is correct, but I don't seem to be able to make a sudo ldconfig -v|less show me that it is seeing a single one of the dozen plus .so files there. I was under the impression all we ever had to give it was the top level of a tree it (ldconfig) was supposed to process. Perhaps I'm running it wrong? Did you rebuild the cache before running ldconfig -v? I thought that was what did it? Plz explain further. Ehm, yes, but there are other options that prevent the cache from being written to disk/being rebuilt. However, if you only use ldconfig -v, then it should be rebuild. Have you checked that the .so files in question have the execute and read bits set? Another possibility is that the internal info of the .so does not match the version in the name. In that case, creating the symlinks may fail and the .so must be patched or rebuilt. You can actually test whether the files will load at all using LD_LIBRARY_PATH and maybe LD_PRELOAD environment variables (as long as the executable is not suid/sgid). See also man ld.so for detailed info. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/16/2013 05:33 PM, Tony Zampini wrote: for( x = 0; x = 10; x += 0.5 ) { for ( y = 0; y = 4; y += 0.5 ) { drill( [x, y, -0.5], 0.1, 0.1); } } Please note that gcmc defaults to mm if no units are specified. The above will move 0.5mm each step. For inches, you should explicitly specify it in the code: for( x = 0mil; x = 1mil; x += 500mil ) { for ( y = 0mil; y = 4000mil; y += 500mil ) { drill( [x, y, -500mil], 100mil, 100mil); } } I am considering to implement in-suffix for inches, but there are some annoying side-effects when doing so because there will be more than one conversion possibility. Should 1in + 1 be 2in or 1001mil. The former would be more logical, but has the problem that you no longer can assume a variable's magnitude. The latter has consistent magnitude, but is a bit harder to understand/grasp/use. Comments welcome. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/16/2013 07:06 PM, John Kasunich wrote: In non-metric countries, mil is typically used only when making printed circuit boards. Ordinary mechanical design is done in either inches or mm. In other words, inches and millimeters are the mainstream units, and mils are a niche application. It almost seems like you have it the other way around. You are right. Inches are the norm. The next version will use inches as the default imperial measurement and have mil as a derivative. This change will have some consequenses, but they are relatively easy to grasp: 1 in + 1 = 2 in 1 in + 1 mil = 1.001 in 1 mil + 1 = 0.001 in + 1 = 1.001 in -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/16/2013 11:37 PM, Tony Zampini wrote: The way I have been using GCMC is to not use any unit specifiers after numbers. This way, all I have to do is make sure I include G20 (program in inches) at the top, and everything is treated as inches, since GCMC will not do any conversions when no explicit units are specified (am I correct, Bertho?) In my example, I failed to mention that I used G20 at the beginning of the program. Yes, specifying no units at all will treat all measures as none and translate the values as is to the output. However, you must take extreme caution because some built-in functions will add units due to implicit conversions. I do not think that it is wise not to specify units because future versions of gcmc may interpret things differently (see below). To clarify my previous email, I use the literal statement to include the G20. I don't use the -i switch. So GCMC thinks its working in mm, and by not using any explicit unit specifiers, no conversions are done. Then when I run the gcode, all values are treated as inches. Adding literal to the code is like specifying assembly-code in a C-program. It is non-portable as hell. It works fine for your use in a specific case, but may have side-effects as things evolve. The -i option was introduced to enable change of metric/imperial defaults. That was not implemented at first, but the new version *will* implement complete and throughout change of default. That change also covers the implicit conversions in built-in functions and therefore will no longre require you to insert a literal change of units. The reason for this change is that I want metric/imperial conversions to work transparant and correctly under all circumstances. Part of the reason for gcmc's existance is the automatic unit conversions and that should simply work. [if I rant to much here just ignore me :-] Not using explicit units in the source will result in interpretation differences, depending how you compile. This is a consequence of the grammar and design. However, it does not follow that you should exploit this exeptional case. At least not when you want something to be portable. It is fine to use/abuse for your own projects, but you should be careful and painfully aware that you are on thinner and thinner ice as gcmc evolves and time progresses. All that said, making -i work on the global default improves predictablility of the generated code and does not worsen the situation (until I get a brainfart that has burning side-effects). -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/17/2013 07:31 AM, Marius Liebenberg wrote: ... As I said, being a programmer I understand the C language. Its getting to think out of the box that is required. Would you attempt more complex parts with this tool or just repetitive type of jobs? I too am more versed in C than mechanical engineering (well, 25 years of CS, that is). If gcmc is not capable of making complex parts, then there is something missing. I am not talking about replacing CAD, but pieces where you know your setup and can specify your piece algorithmically should be a piece of (milled) cake. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/17/2013 10:16 PM, Tony Zampini wrote: I understand your concern about portability, and I think the changes you are contemplating for the -i switch will allow me to eliminate the literal G20 statement. Yes, having -i to work consistently was the idea. A commit/push in git has been made to support that. So is it your recommendation that we *always* use units after all numeric values, even if we only plan to use, say, inches throughout a program? If you want your program to be portable, then yes, you should always use units when you are specifying a distance. The intricacies are of course a bit more nuanced and require due consideration. Nobody is forcing you to abide by any standards. However, you have to consider that you can get into trouble if you do not organize your own work. The arguments are basically the same for any type of software development. As an example, you wrote that lovely subroutine and want to reuse it in a different setting, but you allowed ambiguous distances to be defined and after a year you can't remember why/what you wrote (common example of any code-writing experience). If you decide to pass your lovely function to someone else, who does not use your unit-system, does your function still work the same or will it plow the walls of the mill? The example may look far fetched, but once written code has a tendency of surviving longer than you imagine. Especially temporary hacks are the most permanent and cause the biggest headaches. Once you get accustomed to writing programs, routines and functions with gcmc, you want to reuse more and more in library settings. A good library does its best to do what you tell it and is generally not dependent on circumstantial configuration. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - G-Code Meta Compiler
On 11/18/2013 02:36 AM, Kent A. Reed wrote: Congratulations, Bertho. I see that gcmc has been included in the Hackaday Links for November 17, 2013. Thanks, it is good to have more people see it. I hope your server can withstand the inevitable onslaught of curious browsers! It is not the first time that I get hit like that, so the site will probably manage. Luckily I offload much of the images and large files to another server. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/18/2013 03:00 AM, Steve Blackmore wrote: Ahhh - from another perspective. I am a mechanical engineer. I have a degree. I specialised in gas engineering, I worked for several years in a factory that made gas valves. We embraced CNC and I was there from the inception in the 80's. I know virtually nothing about C, but I do know a lot about commercial CAD/CAM. I would never hand write anything but the simplest code, or use gcmc, much easier for me to draw a 3D part, import, produce code and run. That is a refreshing perspective. I can understand your view, but the commercial CAD/CAM packages are out of reach for the hobbyist. There are many open and free CAD/CAM alternatives nowadays, however, the concepts in drawing a piece is a different paradigm and not suited for everyone. I too use 3D drawing for some pieces when they become too complex, but that is usual for 3D printing. My milling skills are lacking and I do not have access to the expensive tools ;-) Still, even the simplest code is easier to write with gcmc than hand-code gcode. But no need to be apologetic, everybody should use the tools he/she thinks are easiest or best suited. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/18/2013 06:06 AM, Rafael Skodlar wrote: First, I'm not familiar with the program details. However, I wonder why unit of measure throughout the program matters at all? There is a simple reason why it matters. The output stage, where values are output to XYZ coordinates, will use a conversion depending on how you run gcmc (-i option). (Please note that the following interpretation will be consistent from version 1.3.0 (which is in the pipeline).) Without -i, gcmc will default all none units to mm. With -i, gcmc will default all none units to inch. If you use scripts solely for your own use, then there is probably no problem. However, when you start to share, then differences will eventually pop up. It is the eternal portability problem all coders have to deal with. Mixed hardcoded measurement units inside functions is unnecessary or even dangerous [1] I believe. Mixing metric, inches, etc. is like saying I'm going to create a program that will compile code written in python sprinkled with some functions in java, or perl in between into a running program. Not necessarily a bad thing. It depends on what you are trying to achieve. Units are a far cry from mixing languages. Units are a concept. If I understand this correctly, default units are metric. Why not convert everything to metric? Don't all CNC machines understand it? Gcmc will convert everything to millimeter on output by default (unless you specify -i). Using units at the output-level should in my opinion always be either/or, but the problem resides not in the output. The reason for units in gcmc is to support designs that are mixed units. The problem I regularly deal with is making a box (metric) for a PCB (imperial). Now I can specify the coordinates in the design's source units and have everything fit correctly. No longer any need to do manual conversions, which are prone to error. A unit is a unit and should not change throughout the gcmc program. Units represent distance relationship between places of work (drilling, welding, tapping, extruding material, etc.). Units do not change as such. You have distance units and angular units. You normally only deal with units when adding them to constants. The point being, calculation will be distance or angular throughout the calculations. The problem is when you start mixing it with none. A value with no units associated can be interpreted in different ways, due to scaling. You need to /know/ what you are doing. Gcmc has a fixed set of rules to deal with these cases. Like any programming language, the programmer must express things in a way that will reach the proper result. Well designed programs come with configuration file(s) which define default values. If you work with inches all the time then set that in the configuration file and all will be translated to metric in the final code. If you use something else, like the ear size of current crown prince of England, then that would translate to G-code accordingly. [2] Configuration files are a hell to work with. Which files make up a project? I'd rather have everything in one source and define a few variables at the top to make the setup flexible. It would also be easy to resize (scale) working units on the fly, i.e. change from the original to whatever you want. At the top of gcmc programs you would change/redefine default variables into whatever is needed in a particular program. Ex. units = inch scale_x = 1.75 scale_y = 1.75 scale_z = 1 Scaling is an issue that can be seen on different levels. It is easy to scale any defined path in gcmc using vector math. However, there is no scaling at the output-level. The program defines what is output. Scaling at the output level raises a lot of issues, but you surely could implement an affine matrix to post-process all output. Knowing you dare dealing with inches, a special function would be called to swap metric G-code to US specific (G20 and G21, etc.). There are other G-codes exceptions, specific to some older machines, that would need code adaptation but everything else can stay the same for basic positioning functions I believe. Gcmc will not insert G20/G21 anywhere in the output other than in the prologue, which defines the initial setup. Everything else in the g-code will always use the same output unit format. You can, of course, insert them yourselves, but that may lead to unpredictable results. It is like changing a CPU from binary to decimal in the middle of a program. [1] If you are going to mix units (cutter.gcmc): move([-,-,-2.0mm]); tracepath(padpath + offset, -2.0mm, DWELL); move([-,-,-1.0mm]); goto([50mil, 0mil] + offset); This example is exactly why there are units. The above snippet uses a path that cuts out space for components (which are on a PCB). The components are placed in imperial units. However, I just want to cut 2mm into a block of plastic, which is
Re: [Emc-users] More flexible handling for coordinate systems?
On 11/18/2013 08:09 AM, Gregg Eshelman wrote: Could the vision system do realtime tracking and position error correction, continuously comparing the board to an accurate image? That is how pick-and-place machines work. They adapt to what they see. Integrating this into the g-code backend may prove to be difficult and it is probaby easier to create a feedback-loop in the generation of the movements/g-code. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.3.0
Hi all, A new release, version 1.3.0, of the G-Code Meta Compiler has been made. The new version includes a set of changes, improvements and bug fixes: - Inch units (in suffix) has been introduced and mil will now be converted to inch when parsed. Using inch as a base measure brings gcmc more in line with general imperial measure usage. - The -i option for output in imperial units now also consistently uses imperial units internally for all built-in functions. All values without units upon output are treated depending the default set on the command-line. - The command-line now supports both long and short options (use -h or --help for a complete list). - Prologue and epilogue code can now be imported from files specified on the command-line, replacing the built-in version. - Break and continue statements are fixed to actually break/continue the loop they are used in. (Thanks to Tony for spotting and reporting the problem). You can get the tar-ball and windows executable at: http://www.vagrearg.org/content/gcmc The online documentation has been updated to reflect the changes. Please let me know of any problems and suggestions you may have. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] More flexible handling for coordinate systems?
On 11/18/2013 03:43 PM, Philipp Burch wrote: Integrating this into the g-code backend may prove to be difficult and it is probaby easier to create a feedback-loop in the generation of the movements/g-code. Probably this is indeed the way to go. Creating a G-Code template for exactly one part in the panel and then letting the script generate the full program for the array. Right now, I'm using AXIS as a GUI with a GladeVCP extension for the alignment. Can I feed a string directly to the interpreter without creating a temporary program file first? Well, you have the MDI manual input tab, so there certainly is a manual hook in there to force-feed the interpreter with G-code lines. You could probably hook that with a named pipe or a socket. -- Greetings Bertho (disclaimers are disclaimed) -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/19/2013 06:59 AM, Rafael Skodlar wrote: The problem is when you start mixing it with none. A value with no units associated can be interpreted in different ways, due to scaling. You need to /know/ what you are doing. Don't assume things. I see programmers assume too many things and the rest of us have to deal with it later on. Gcmc does not assume, programmers do. Writing (good) code is hard, regardless of language. Some languages may be easier, but that is always a very subjective view. Any programmer needs to get familiar with the tools he/she uses before a full synergy can unfold. A programming language is a static set of rules by which you can model a problem. You need to learn to model correctly before you can get the best out of things. This example is exactly why there are units. This is where I disagree. Your example program has TW2 = TW / 2.0; used later as padpath = { [0mil+TW2, -75mil+TW2], [0mil+TW2, 75mil-TW2], [550mil-TW2, 75mil-TW2], [550mil-TW2, -75mil+TW2] }; If you can declare some value at the top, then everything could be assumed to be a (metric) unit and adjusted later with added or subtracted value stored in a variable. Why use special command line option when you can declare it in the program? I think you misunderstand the reason for units i gcmc. Units are there to have 1) ability to mix units without interference and 2) consistent output. The first part is that you want to be able to work in any units you like and have the machine take care of the conversions for you. The second part is that what /matters/ is the output. The output is either metric /or/ imperial, subject to the -i option. I understand. However, danger in mixing different units is very big. That's how NASA crashed a satellite on Mars mixing metric and US units. And therefore you should use units /correctly/ on all values. Then using gcmc will not result in wrong interpretations. BTW, the unit confusion of the Mars probe was in the software radar range interpretation iirc. Had the protocol included units, then it would have been spotted... move([-,-,-1.0mm]) will *only* move the Z-axis move([0,0,-1.0]) will move axes X, Y and Z My expectation was that move 0 is no move. Are you saying this are coordinates not a relative move? Learning curve .../ All gcmc coordinates are in the absolute XYZ/ABC/UVW space. You can move relative using move_r(), goto_r() and arcXX_r() functions. You *still* have a difference between undef values and explicit values. The conversion to G-code omits the coordinate only if you specify undef as value: move([0,0,1]); move_r([0,0,1]); becomes G1 X0 Y0 Z1 G1 X0 Y0 Z2 move([-,-,1]); move_r([-,-,1]); becomes G1 Z1 G1 Z2 Gcmc keeps track of the absolute position internally while executing the script, which can be retrieved at any point using the position() function. You can instruct gcmc to output relative movements (-r option), in which case all G-code uses turtle moves. The ';' is part of the statement and terminates a statement. It is a grammar thing to ensure that you can easily parse the syntax with a LALR(1) parser. The ';' is there because gcmc uses a context-free grammar, i.e. white-space is inconsequential. It's my belief that there is no need for redundancy. While it's easy to see new lines, what happens if you forget ;? It is not redundant in my view. If you forget a semi-colon, you get an error from the compiler. Not at all. All variables are instantiated at the spot where you write them. There is no need to declare anything. [snip function] It was local n, i, ... and res = {}; that led me to believe you need to initialize variables or arrays. The local keyword is to force variables in the local scope of the function. The reason is that you need a way to prevent variable-name collisions when you write a function. You often use i, n, x,... as variable names, which would collide on execution if not forced to be local to the function. Gcmc has no way of detecting whether the programmer wants to access a global variable or intends to instantiate a local variable. Therefore you use the local keyword to force the issue. You still need to initialize a variable before it can be used as an rvalue. Gcmc needs to know the value/content of a variable before you can use that value/content. Gcmc is not an interactive program and it will never be interactive. Sure. And it won't need more than 1MB of memory ;-) Don't be modest, think big. Based on previous experience we know that programs evolve into ever more productive tools. There is a difference between what is good for a program and what could be done with a program. If you take the extreme view, Zawinski's Law, then you would suggest that gcmc will eventually read email. I do not agree and resist that view with every fiber in my body. A program should do _one_ simple thing and should excel at it. The Unix philosophy of
Re: [Emc-users] gcmc - v1.1.1
On 11/19/2013 03:43 PM, Tony Zampini wrote: If you want a menu, then you can write a script as a wrapper. Gcmc is a command-line program and works in the tradition of all/most unix style commands. That's fine. What I'm concerned about is users that need to run repetitive tasks but don't understand CLI at all. Well, when the time is ripe, then someone will write an IDE or integrate it into an existing IDE. FWIW, under Win7, I was easily able to wrap an existing IDE around gcmc. For my work, I use the Keil uVision IDE for 8051 based development. This IDE has the capability to run a command line MS DOS batch file after the build. See, I didn't even have to suggest it... Integration is already done. Many brains thrown together (sometimes) create fantastic solutions. :-) -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Gcmc test with an SVG backend
On 11/19/2013 04:35 PM, David Armstrong wrote: I was hacking a bit on gcmc and got the idea that it might be used for the local hacker-space's PhotonSaw too (home-made laser cutter at osaa.dk). The PhotonSaw uses svg as input and cuts the paths from that file. While pondering, I thought it could also be used to visualize the path taken in general. Attached are two images of the gcmc examples as SVG paths images. is it feasable to load dxf's the same way as svg ? i'd definately have a need for that for 2d laser cutting It doesn't load SVG's, it /writes/ them. But, yes, it should be just as easy to write a DXF backend. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Gcmc test with an SVG backend
On 11/19/2013 04:35 PM, David Armstrong wrote: While pondering, I thought it could also be used to visualize the path taken in general. Attached are two images of the gcmc examples as SVG paths images. is it feasable to load dxf's the same way as svg ? i'd definately have a need for that for 2d laser cutting There is now a branch in git called backend_svg which includes both SVG and DXF output. If you compile locally, then you can switch branches to test like: $ cd ...local/gcmc/git/clone... $ git pull $ git checkout backend_svg $ ./configure $ make $ src/gcmc --help The selection of backend uses command-line switches --svg and --dxf. It should be intuitive, I hope. The SVG backend only uses the XY plane and ignores all Z. It also has the ability to output the goto()s from the script, which it puts in a separate layer. You can disable that using the --svg-no-movelayer switch. The line-width of the cut-path can be set with --svg-toolwidth=XXX, where XXX is in mm or inch, depending the -i switch. The DXF backend does record XYZ on lines and arcs, but I have not tested any 3D correctness, only checked that the 2D (XY) mapping lookes correct (using QCad). It only outputs the cut-path (i.e. move() and arc*()). Neither SVG nor DXF backend has implemented full circles (the P in the G2/G3). That I have to look into yet. I'm rather sure that the SVG backend's output is correct, but the DXF format may need tuning/fixing (dxf is a format that makes me sigh...). QCad seems happy, but that is not a general standard. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.3.1
Hi All, An updated version 1.3.1 of gcmc is available. Changes include: - Add circle_cw(_r) and circle_ccw(_r) functions for full circles. Arcs cannot unambiguously create circles because the center-point cannot be calculated from the radius alone. - Fix command-line segfault in long options --include and --output. The options were missing the required_argument tags. - Fix relative arcs to perform correctly on using arc_{cw,ccw}_r. - Fix global Z position update of drill() function. You can get the newest version at: http://www.vagrearg.org/content/gcmc The on-line documentation is updated to reflect the changes. Note: This release does not yet include the svg/dxf backends. These are not yet in the main trunk and are scheduled to be released shortly, when I get to tidy it a bit. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Gcmc test with an SVG backend
On 11/21/2013 12:57 AM, Bertho Stultiens wrote: While pondering, I thought it could also be used to visualize the path taken in general. Attached are two images of the gcmc examples as SVG paths images. is it feasable to load dxf's the same way as svg ? i'd definately have a need for that for 2d laser cutting There is now a branch in git called backend_svg which includes both SVG and DXF output. If you compile locally, then you can switch branches to test like: Both SVG and DXF backends are now merged into the master branch, so you may swicth back to the master branch to follow the development. All backends should be able to process all built-in functions, including the added circle functions. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.4.0 - Now supportting multiple backends
Hi All, I've been incrementally improving gcmc to support more and more features for easier and more general use. The new 1.4.0 version is a larger step forward and includes multiple backends to output in G-code, SVG and DXF formats. This enables gcmc to be used not only for mills/lathes, but also for laser cutters (and everything else I have not thought of yet ;-) The new backends can be selected on the command-line; see http://www.vagrearg.org/content/gcmc#running for details on all command-line options. Changes include: - Feature: add elif() construct in flow control to allow if(){} elif{}... else{} constructs - Feature: add SVG and DXF backends. Now gcmc can output in g-code, svg and dxf in either metric or imperial units - Feature: rotate_XX() functions now accept both vectors and vectorlists - Feature: array indices may now be negative to address from the last entry in a vector or vectorlist - Feature: svg backend may use svg_closepath() to ensure closed SVG paths - Feature: add isgcode(), issvg() and isdxf() query functions to detect target backend in scripts - Feature: add scale() function to scale vectors and vectorlists - Feature: add example of a laser-cut box - Fix: filemode for windows must take text/binary into account - Fix: properly test arc's radius vs start-/end-point to detect invalid arcs - Fix: allow stand-alone function calls in conditional expressions - Fix: coolant() function now accepts string argument to bring it inline with other g-code control functions - Fix: allow all examples to be built within the source-tree (make examples) - Fix: prevent several potential NULL pointer dereferences in value handling You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The set of examples can be compiled to all three output formats and screenshots of the results can be found at: http://www.vagrearg.org/content/gcmc#screenshots The online documentation is updated to reflect the changes: http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref Let me know if you run into any problems or have requests for changes. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.4.0 - Now supportting multiple backends
On 11/24/2013 06:40 PM, Lars Andersson wrote: thanks for your fine work! Really enjoy this. You are welcome. I also enjoy creating the program :-) I'm wondering about a small detail; how do I convert a vectorlist with one element as returned from tail(vectorlist, 1) into a vector as expected by move(vector)? To return the last vector in a list you can simply use: lastvector = vectorlist[-1]; or as a one-liner for the move you describe: move(vectorlist[-1]); The negative index was introduced with 1.4.0 to make it easier to get entries from the back. Pre 1.4.0 you had to write: lastvector = vectorlist[count(vectorlist)-1]; -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.4.0 - Now supporting multiple backends
On 11/24/2013 08:09 PM, Tony Zampini wrote: In general, if you have a one element vector list, and want to use it where a vector is required (such as the move() statement), you can simply include the index of the first (and only) element, which is 0. For example: move(vectorlist); // Compile error move(vectorlist[0]);// Legal statement Bertho, please correct me if I'm wrong. You are right. You can always index the vectorlist, and, if you know there is only one vector in it, the index at 0 will give you that vector. pedantic_mode There is a small nuance in your example regarding the comment. The compile error is actually a run-time error. Gcmc does not know the type of a variable until it is evalueted at run-time (it uses lazy evaluation and late binding). The first move would be syntactically correct, but it is semantically wrong, due to a type-mismatch, and therefore still result in an error. /pedantic_mode -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Is there an open source program similar to Vericut?
On 11/25/2013 10:25 AM, Dave Caroline wrote: I have not seen http://openscam.com/ mentioned yet. also there are a couple of other experiments http://www.anderswallin.net/tag/cutsim/ gdepth at http://emergent.unpythonic.net/01169521961 This is a bit of a sad story... I too have been looking for a simulator and just tested the above suggestions. (BTW, I am on Fedora 19) OpenSCAM: depends on dxflib, not available in fedora repos -- build fail gdepth: Last update Nov. 2008. Depends on Python numarray, apparently, Py 2.7 does not cut it -- build fail Cutsim: Last update ~2years ago. Uses external ngc interpreter and tooltable. After some minor g++ code fixing compiled. Running on an example -- Segfault Of the above, only OpenSCAM seems to be in active development. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Is there an open source program similar to Vericut?
On 11/25/2013 02:47 PM, Anders Wallin wrote: I have a feeling many of these CAD/CAM things require more knowledge than fits in the average open-source developers brain. I would not quite put it like that. There are some brilliant people out there. Not all will perform equally on all subjects. As they say, YMMV. The problem is to get the right minds interested into the right projects ;-) the code for my efforts is at: https://github.com/aewallin/libcutsim Ok, I'll take a look. That is not to say that my brain can fit the N-dimensional world with all associated tricks. But I can try and ask, at least, stupid questions. *your* help/patches is required with: - use of the linuxcnc g-code interpreter (through c++ or python). I don't think it makes sense to write a new g-code interpreter. Would it make sense to package the interpreter library into a separate .deb package, if there are other 'clients' than just linuxcnc? That would be a good idea. The rs274 binary could be used as a front-end for many other things too. But I guess that would be a matter for the emc-develop list and a patch in that direction. - GUI and 3D view based on polygon-arrays and vertex-arrays (I've used VTK, but something lower-level and faster might be better). I would suggest Qt for the GUI but opinions will differ.. Qt is easy in comparison to all other toolkits, so, yes, a good option. The question would be if it is possible to integrate it into an existing viewer, or take an existing code-frame of reference. - multi-threading so that the GUI remains responsive and the 3D view of the model updates while the simulation-engine runs Details of implementation; but still a consideration. - actual updates/improvements to the cutting-simulation engine: -- support for different shapes of cutters -- support for other G-codes than G1 -- data-structure and algorithm changes for e.g. Dual Contouring or one of the other improved isosurface extraction algorithms The README file lists a few references which explain most of the background. I will try to help and explain how the code works to anyone asking even semi-intelligent questions. I'll take your word for it and try to ask semi-intelligent questions when I get there ;-) -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Is there an open source program similar to Vericut?
On 11/25/2013 04:26 PM, John Murphy wrote: I use opensCAM and it works great, trivial install on ubuntu. Well, I tried to install ubuntu 12.04 LTS in a VM, but it locks up X all the time. However, I've been thinking about exporting to an openSCAD script through rs274 (or sai through linking tolibrs274.so). OpenSCAD is quite mature and already has all the primitives you want and you only need to generate a script that sums the tool-paths and subtracts it from a block. It may take a wile to render for larger G-code scripts, though, but I guess that will be a problem for most if not all imlementations when things get big. -- Greetings Bertho (disclaimers are disclaimed) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Is there an open source program similar to Vericut?
On 11/25/2013 08:09 PM, Bertho Stultiens wrote: However, I've been thinking about exporting to an openSCAD script through rs274 (or sai through linking tolibrs274.so). I did a really quick hack to export the feed movement to a script and could create a 3D representation of the cut result (is is an example file taken from gcmc). The scad-file and c-source used to create the scad file are attached too. The first few tries caused openscad to crash, which I could trace to some errors of mine. However, I do think that there are some bugs in openscad that will cause larger files to exhibit serious problems. There are some optimizations that could be considered. Currently, I just use any feed movement and create a hull of the start- to end-position. That is inefficient if some paths could be reused. Also, it is not clear whether calculation of sums and differences can be sped up by reordering them in a better way. -- Greetings Bertho (disclaimers are disclaimed) attachment: cutter-3D.png cutter-3D.scad.gz Description: application/gzip ngc2openscad.c.gz Description: application/gzip -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.4.1
Hi All, A new version 1.4.1 of gcmc has been released. The major changes are adding the command-line defines (-D option), revamped documentation and RPM and DEB package management files for automatic package generation. Changes include: - Feature: include unix man-page - Feature: revamp documentation to html-pages - Feature: allow empty statements termnated by semi-colon - Feature: implement command-line defines using -D option - Feature: add isdefined() function to test variables - Feature: add isrelative() function to test global relative setting - Feature: add .spec-file and debian-control for RPM and DEB packages - Fix: error recovery in parser should not crash - Fix: preologue/epilogue may only change for g-code backend - Fix: comparisons must take units into account and EPSILON boundary - Fix: move_r/goto_r and global relative moves corrected to generate correct code - Fix: use bsearch in finding functions to speed things up - Fix: incorrect help message for short options You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The updated documentation is online at: http://www.vagrearg.org/content/gcmc-man http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref All documentation is, of course, also included in the tar-ball distribution. -- Greetings Bertho (disclaimers are disclaimed) -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Is there an open source program similar to Vericut?
On 12/05/2013 11:52 AM, andy pugh wrote: But showing and moving machine and vises is a minor thing compared to material removal I think. Although I don't think it is trivial. I wonder if a voxel-based approach is simpler, but it rather depends on the required precision. If 1mm voxels on a 100mm cube give a good enough preview then you only need 125kB of data. If you want to simulate 1' cubes to 0.001 then you start looking at 200GB of data. The voxel approach is a valid one. You can reduce the data-set size by merging voxels in a plane and volume. There are tree-algorithms to handle such cases and there is an advantage that you only need to split, never merge. However, using trees can be computationally (a lot) more work. But then, it can be used for very high resolution and can be parallelized quite well. -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Is there an open source program similar to Vericut?
On 12/05/2013 12:05 PM, Bertho Stultiens wrote: The voxel approach is a valid one. You can reduce the data-set size by merging voxels in a plane and volume. There are tree-algorithms to handle such cases and there is an advantage that you only need to split, never merge. However, using trees can be computationally (a lot) more work. But then, it can be used for very high resolution and can be parallelized quite well. BTW, the splitting is usually done with the octtree approach (which was mentioned before). It can still generate a huge amount of data. If you want a block of 10 split down to 1mil (0.001), or 4 orders of magnitude, then you need a tree-depth of 14. That would be worst case 10^12 leaf nodes, which is computationally unfeasible. Even a measly 1% fill is 10^10 leaf nodes, which no ordinary computer would want to deal with. My guess is that you could get max. ~2.5 orders of magnitude resolution for any result that should complete in the near future. -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code
On 12/06/2013 01:46 AM, Robert Ellenberg wrote: As some of you know already, I'm working on an improvement to the linuxcnc trajectory planner that will allow much faster movement for engraving-type programs with lots of short segments. As part of this effort, I need test cases, both to find rare errors, and to estimate performance improvements. You could use the wheels.gcmc example from gcmc (contributed by Alan Battersby). It creates a lot of small segments of 10..100um. You can even increase the number of segments by decreasing the angle-interval of the calculation (currently at 0.01 degrees). I am a bit reluctant to attach the file due to the size (1.1MByte uncompressed, 450k gzip, 380k bz2 and ~200k with 7-zip). You should easily be able to generate the example yourself. Otherwise let me know. -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Slow G code
On 12/06/2013 02:37 AM, Robert Ellenberg wrote: You could use the wheels.gcmc example from gcmc (contributed by Alan Battersby). It creates a lot of small segments of 10..100um. You can even increase the number of segments by decreasing the angle-interval of the calculation (currently at 0.01 degrees). Thanks, Bertho, I'll give this a shot. Great. By the way, I launched gcmc accidentally with no input, and it seemed to hang. Running with --help listed the arguments nicely, so you might want to treat no arguments the same as --help. Running gcmc with no file as input will read input from stdin (the command-line) as in good unix tradition. If you do not specify an output file (-o option) then all output is written to stdout. This is done so you can form command-chains with pipes on the command-line. The behavior is described in the man-page (http://www.vagrearg.org/content/gcmc-man). You can terminate with ^C (break) or ^D, which is EOF on *nix systems (or, if using windows, ^Z to indicate EOF). -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Laser engravng
On 12/06/2013 07:07 PM, Florian Rist wrote: So my question is, to someone who may have tried/done this, is can a 1 ounce layer of copper be burned away rapidly enough so as not to leave a burned, conductive path where the copper was? I tried this with two different Lasers sources: 120 W CW CO2 Laser at 10600 µm wavelength: Result: no way to 'burn' the copper. It was hardly possible to burn away a the play of photosensitive coating used in the normal 'wet' process. 200W q-switched Yb:Yag Laser at 1064 µm: Result: even the 25 kW max. pulse energy were not sufficient to burn away the copper properly. It is possible to cut through the coper layer by the precess is not controlled enough. The pulse energy would probably have to be at least 10 times higher to establish a decent process. But this laser removes the light sensitive coating quite well at low power settings. Copper boils at ~2560 deg C and has a thermal conductivity of ~400W/(mK). Compare this to aluminium: 2520deg and 237W/(mK) and iron: 2860deg and 80W/(mK). Getting any copper vaporized, you need a *huge* amount of energy. We are talking about 100..250kW pulses to make any proper cut and more if it needs to be nice. Aluminium also has a great problem because it is very close to copper. Iron has 5 times less heat transport and even though it has a higher boiling temperature, it will vaporize more easily than copper and aluminium due to the reduced heat transport. -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Laser engravng
On 12/06/2013 07:56 PM, Gene Heskett wrote: PS: There was a ns pulsed UV Laser (quadrupled YAG) on ebay recently, this would be the right one for the job. I was close to buying it was quite cheap. unfortunatly not , copper for one will absorb the heat . and for a laser to work it realy needs to vaporise the metal , which is one reason you see dvd lasers burning wood or plastics rather than a clean cut . iv'e try'd copper and even with 600w + it's difficult to even mark it although the fr4 will burn quite nicely and be nice and crisp and fill your room with unfortunate toxins Just one of the reasons to have a 4 hose from my dust collector arranged to keep the area clear, and the stink outside, where my home sewn 2' diameter, 10' foot long collector bag lives. Also, you need an inert gas enclosure (argon) to prevent catastrophic results. Vaporizing metals at these temperatures are extremely reactive and any oxygen will result in a burning cloud. Not to mention eyeball wreckers just from the reflections off the surrounding walls. Bad idea for someone not well versed in the tech. Yes, the laser should be tuned to an absorption line of metal/material being cut to prevent too much energy loss due to reflection. Humm, thats beginning to sound like non-exportable munitions. Indeed, it is not a hobby-laser anymore... -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Laser engravng
On 12/06/2013 08:24 PM, Gene Heskett wrote: Hence the cataract warnings that seem to surround the long IR CO2 models. Unforch I do have some already. Cataract inducing lasers are at ~1500nm (often Yag type lasers). The 1.5um is small enough to pass through the cornea and will induce coagulation in the lens (making it milky-white). Your cornea also will take damage, but the bulk energy at these wavelengths (1..2um) are absorbed by the lens. Longer wavelengths are readily absorbed by water and will cause the tearfilm to boil off. If any appreciable amount of energy still passes onto the anterior chamber (between lens and cornea) then the water there will heat. Too long exposure will cause the lens to coagulate (at about 55..60 degrees C) and therefore also induce a cataract. When you get into such situation, you'd be swearing and grumbling that you /should/ have been wearing eye protection. ;-) Do not mess with your eyes. (full disclosure: I workes at a hospital's department of ophthalmology for 10 years). -- Greetings Bertho (disclaimers are disclaimed) -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc 1.4.2
Hi All, A new version 1.4.2 of gcmc has been released. The major change is the addition of g-code function generation (--gcode-function option) as well as the ability to reverse vectorlists for easier alternating path movements. The documentation now also includes the return values of the built-in functions. Changes include: - Feature: Add reverse() function to reverse vectorlist's vectors and vector's coordinates - Feature: Add --gcode-function option to generate gcode subroutines - Fix: toolchange() must emit M6 for actual change to happen - Fix: position() must return coordinates in correct units - Fix: documentation updated to include built-in function return types/values You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The updated documentation is online at: http://www.vagrearg.org/content/gcmc-man http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref All documentation is, of course, included in the tar-ball distribution and now also added to the windows zip-file. As usual, let me know if you encounter bugs or have any questions or wishes. -- Greetings Bertho (disclaimers are disclaimed) -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] jerk discussion
On 12/17/2013 12:23 PM, Gene Heskett wrote: I wonder if this is anything like that? http://www.youtube.com/watch?v=2SozZ7af3wg No, no resemblance to my idea, and TBT that driver would be dangerous unless its feedback does go into LCNC so LCNC knows it is not where LCNC told it to be. Cute demo yes but could you trust 9 of them to stay within a thou of the programmed path? Scary. But that is the point; if you do not have feedback, then you will never be able to ensure that you are anywhere on the programmed path. No matter what driver you use. If one axis is slowed down externally, then all others need to be adjusted too. The real problem is, if the slowing force is reduced, who is controlling the axis' (re-)acceleration? If the HW driver is (partly) autonomous, then your controlling SW will always lag behind and create a larger path deviation than if the SW has full control. I.e. reactionary vs. actionary control. -- Greetings Bertho (disclaimers are disclaimed) -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Number of available variables
Hi, Is there a reason, other than the RS274 standard, why there are only 5000 numbered variables available? I am trying to create a compiling backend to gcmc and the maximum complexity of the program will depend on the available storage. The gcode interpreter has enough Turing completeness to calculate anything, but the available memory size is a limiting factor. Wouldn't it be trivial to support numbered variables to any number N? -- Greetings Bertho (disclaimers are disclaimed) -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Number of available variables
On 12/17/2013 03:33 PM, andy pugh wrote: I am trying to create a compiling backend to gcmc and the maximum complexity of the program will depend on the available storage. You could use named variables instead. Not for indirect addressing. A lot of the memory needs to be addressed using #[var] or #[#123] constructs and the target is always a numerical variable. Unless you know of a way to store strings in variables and dereference them. -- Greetings Bertho (disclaimers are disclaimed) -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - 1.5.2
Hi All, A new version 1.5.2 of gcmc has been released. This release is a primarily a bug-fix release to fix arcs in the YZ plane. The release also adds new examples and a language feature to address vector coordinates as fields (v[0] can now be written as v.x). The documentation has been updated. Changes include: - Add Ball-in-Cube example - Add hypo-/epi-trochoids example - Add vim syntax-highlight file - Add field-addressing to vectors using '.' operator and axis names - Add to_inch() function as an alias to to_in() for consistency - Add RPM and Debian build documentation - Arcs in plane YZ modified wrong coordinates - Html errors in docs The examples have screen-shots on the gcmc homepage for quick inspiration. You can get the new version from the homepage: http://www.vagrearg.org/content/gcmc The updated documentation is online at: http://www.vagrearg.org/content/gcmc-into http://www.vagrearg.org/content/gcmc-man http://www.vagrearg.org/content/gcmc-syntax http://www.vagrearg.org/content/gcmc-funcref http://www.vagrearg.org/content/gcmc-library All documentation is, of course, included in the tar-ball distribution and now also added to the windows zip-file. As usual, let me know if you encounter bugs or have any questions or wishes. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 11/30/2014 01:02 AM, TZ(Paypal) wrote: Thanks for writing/maintaining gcmc. I like the addition of the . operator for vector field access. I can't wait to try it! It is my pleasure to maintain the code. I find it useful too ;-) The addition was suggested and I actually wondered why I did not think of it before. It does make some things more readable. I am wondering what is required to get the word out to more people. I had a page and release anouncement on freecode, but they shut down some time ago now. I'm better at coding than doing publishing. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 11/30/2014 03:46 PM, Gene Heskett wrote: On Sunday 30 November 2014 07:04:10 W. Martinjak did opine And Gene did reply: On 2014-11-27 15:46, Bertho Stultiens wrote: The updated documentation is online at: http://www.vagrearg.org/content/gcmc-into Should be: http://www.vagrearg.org/content/gcmc-intro Yes. is this very complete web page available in pdf for making dead tree copies? It would be bound and occupy the shelf beside the monitor in my case. Hm, no, not as such. But you could get the source html in the browser (from the distro or webpage) and do a Print to File as a Postscript file. Then run: $ ps2pdf -dOptimize=true -dEmbedAllFonts=true -sPAPERSIZE=a4 myfile.ps (or whatever papaer size you require) that will give you a myfile.pdf file. Then you can print that pdf on a printer using dead trees, bind it and put it on the shelf. However, it might be easier to save the html locally and read it locally in the browser or print it from your browser directly then ;-) -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 12/01/2014 12:46 AM, Gene Heskett wrote: The updated documentation is online at: http://www.vagrearg.org/content/gcmc-into Should be: http://www.vagrearg.org/content/gcmc-intro Yes. is this very complete web page available in pdf for making dead tree copies? It would be bound and occupy the shelf beside the monitor in my case. Hm, no, not as such. But you could get the source html in the browser (from the distro or webpage) and do a Print to File as a Postscript file. Then run: $ ps2pdf -dOptimize=true -dEmbedAllFonts=true -sPAPERSIZE=a4 myfile.ps (or whatever papaer size you require) that will give you a myfile.pdf file. Then you can print that pdf on a printer using dead trees, bind it and put it on the shelf. However, it might be easier to save the html locally and read it locally in the browser or print it from your browser directly then ;-) Which is what I just did, and punched mounted in a folder. But in looking it over, it seems to me that writing what I want it to do in a new language, and then translating it into gcode adds more complexity than I would have just writing it in gcode in the first place. Well, that is a matter of opinion, I guess. It is often easier to revert to old habits instead of learning new tricks. I know because I tend to do that too all too often (boy I feel old now ;-) The point being, using a new language means thinking at a different level of abstraction, which is always a steep learning curve. Speaking for my self, I just got fed up with plain gcode's archaics and wanted more structure. I have it in mind to have a couple vars in it which will be used as multipliers so I can control which set of these huge box fingers is being cut by inverting the shape of the cut in the y direction depending on whether a var is 1. or 0.0. ... [snip] ... Wow, you lost me there. Today is a good day, I woke up. :) This I can relate to :-) -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 11/30/2014 11:08 PM, TZ(Paypal) wrote: Have you considered doing a YouTube video that shows how gcmc is used? If you include CNC and Gcode in the title, I think you will get a lot of exposure. For example, take a look at the following video. He already has 5600+ views since Nov. 6th 2014. https://www.youtube.com/watch?v=CJFp9YjDqiY Well, considered, yes, but have no clue what or how to demonstrate. Also, it looks easy to make a video, but it is actually a lot of work and I'm not that good at visual media. I certainly see the point in doing so, which is why I wrote the intro document. I'd like to write more, but I have no current projects to use as an inspiration to go through all the movements. Maybe all I have is bad excuses... Besides, doing a video will take some of the mystery out of gcmc, for those people who might not know quite what it is, and the power of it. I'm a C programmer, so I recognized the power of gcmc immediately. :) Well, yes, gcmc is a paradigm shift from plain gcode. That leap is easiest to see for those who have coded before in similar languages. New paradigs take time to be incorporated into the general knowledge base to be seen as the way to do it. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 12/01/2014 09:08 AM, alex chiosso wrote: I'm following you since the beginning on this list and I've to say that your work is really nice and professionally made. I try to bo my best ;-) I usually don't use cnc's for machining parts but to do material handling or such so I need to make jumps within the G code (conditional or unconditional) but the LCNC interpreter don't have this feature. I've look at your instruction/functions sets but seem that in gcmc this feature is missing too. Is this because at the end of the conversion from gcmc to LCNC G code you have to rely on LCNC G code interpreter , isn't it ? Is there any way to improve this feature on gcmc ? I do not understand what you mean by jumps. All CNC machines use turtle graphics in 2D, 3D, 4D, etc. Gcmc is an abstract way to program the path of the turtle (mill) based on fairly standard math descriptions (vectors). CNC machines cannot physically jump. Well, they might do that, but that would not be a good thing, I guess. Can you give me an example when you want to jump and what that actually means for you? My guess is that you can use sub-routines to encapsulate functional routines for your handling machine and bind them together in conditional/uncoditional way. However, if you have (complex) feedback from your machine to decide what to do next, then you will find it difficult to use gcmc. It could be solved by using a different backend in gcmc to do other interactions, but that requires some development work and would depend highly on the application. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 12/01/2014 06:25 PM, alex chiosso wrote: This is an abstract of a post (that I opened a couple of months ago) on the conditional-unconditional nc program flow control . USA brand CNC manufacturer (Delta Tau PMAC-NC Pro2 http://www.deltatau.com/manuals/pdfs/PMAC-NC%20Pro2.pdf) and they use GOTO as a standard function for the NC program control into parametric programming FANUC style . And they declare : To maintain FANUC compatibility, this form of a conditional expression should be adhered to. GOTO expressions goto can be followed by an expression I used the term jumps because you already use an instruction called goto . So to be not ambiguous I used a different term to express myself. I guess you mean the programming construct go to. For gcmc, the goto(arg) function translates to rapid move to position arg, which has nothing at all to do with the language construct go to. If my interpretation is the case, then read on, else please elaborate. First of all, you may want to google Go To Considered Harmful. The argument is that a structured language should not have an explicit go to functionalty to alter program flow. In general, I subscribe to that sentiment, in which a structured language, like gcmc, never should allow to alter the program flow in unexpected ways. The language's control statements (if, while, for, repeat, etc.) already allow for the required flexibility in program flow-control. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 12/01/2014 06:52 PM, Jon Elson wrote: All CNC machines use turtle graphics in 2D, 3D, 4D, etc. No, turtle graphics is a scheme where the coordinate system is centered on the turtle, and everything is relative to which way the turtle is pointing now. So, if the turtle makes a 90 degree turn to the left, and then moves forward, it will go in a different direction than it would have before turning. So, the only operations permitted are turning left or right by some angle, and moving forward in whatever way the turtle is pointing. That I would call a semantic interpretation. Whether you turn the turtle or the coordinate system is a matter of frame of reference, which, mathematically, is a simple trick. The distinction is IMO irrelevant as you can always define the exact transformation matrix to any frame of reference (and we are not going to come close to speed c). Your assertion does not hold entirely, because some machines have a rotational axis, which alter the coordinate system, as seen from the object under construction. The point of turtle graphics is that the the point-of-operation is a continuous and uninterrupted curve (in the zero order; derivatives may be discontinuous). A milling bit does not magically appear/disappear at the operator's whim and will thus follow a continuous path in the zero order with respect to the object. (let us not split hairs on doing tool-changes) Most CNC machines have a fixed coordinate system, with an X axis, and a Y (or Z) axis that is 90 degrees to the X. There is no operation to turn left or right, and a +X move will always be in the same direction. Actually, the /machine/ usually has a fixed frame of reference. The programmer is welcome to use a different one as long as it is ultimately translated to the machine's coordinate system. As I said, it is a matter of frame of reference. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - 1.5.2
On 12/01/2014 07:01 PM, andy pugh wrote: On 1 December 2014 at 16:58, Bertho Stultiens ber...@vagrearg.org wrote: Well, yes, gcmc is a paradigm shift from plain gcode. That leap is easiest to see for those who have coded before in similar languages. I am not suggesting that you (or anyone) should do this, but it would be a logical extension to eliminate the G-code phase, and use a different interpreter to convert the gcmc code directly to machine motion primitives. I'd like that very much, replacing gcode with another top-level language. But the language should be developed far enough and have a good and broad userbase to be viable. There are other competitor codes to G-code which have failed to replace it, however, and adding another to the list would probably be frustrating. Indeed, if the effort goes lost in the infinite bitstream, then it would be frustrating. Therefore, building a stable and solid userbase is the first part that should be established. Broader use would also develop the language more to be as expressive as necessary for general purpose operation. The real point here is that broader use requires publishing it to a wider (targeted) audience. CNC machining is not my area of expertise (I am a noob in that respect) and come from electronics and computer science. So getting in touch with and convincing an unfamiliar group of people of my ideas is hard for me. Finding the right outlets and speaking the right language is a hurdle. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] AUTO: Jan Maier is out of the office
On 12/20/2014 04:18 PM, Pete Matos wrote: I am out of the office until 07.01.2015. LOLMerry Christmas!! Do such messages still get you banned (permanently)? I surely hope so... The autoreply of the digest's digest can send another away message, then another and another. -- Greetings Bertho (disclaimers are disclaimed) -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] VFD causing limits to trip. Huh?
On 03/16/2015 09:40 PM, Karlsson Wang wrote: A shield is primarily intended to prevent electrostatic coupling from the outside world. So by grounding in the consuming end the shield will get the ground potential of the consumer and the signal cables will be shielded from different external electric fields. This should motivate why as you say the shield should be connected in this end only. If there are current there is also a potential difference. There are generally three cases to consider: 1) a shield as a Faraday cage; this means that only one side of the shield may be connected to go into the earth/ground star-point where you maintain an absolute reference of zero (0V). The shield is used to dump all (most) cable-internal EM radiation into a low-impedance star-point via the shield. 2) a shield as in a coaxial conductor; here the signal is contained in the cable and the shield is part of the conducting circuit. This works on basis of very tightly controlled cable properties and is generally limited to a specific frequency range per cable specs. 3) all other cases; the shield is connected at both sides and is intentionally or unintentionally part of the conducting circuit. This case will generally give you worse results in terms of EMI emissions and protection. The shield will radiate and may act as an antenna to worsen the situation. I consider the VFD to be a noise source since it have common mode voltage which will emit an electrical field. There is also a capacitance between the VFD cables and shield. Since Shield impedance on high frequency is far from zero the shield around the VFD cables will not be at GND potential. The most common method is to increase common mode inductance by a filter but I have also seen active filters which reduce the common mode voltage and multiple step voltage inverters. With respect to VFD systems; the amount of junk they produce depends on the quality of the converter. The best version generates a relatively pure sinusoidal output and the EMI it generates is very minimal. Such VFD can normally be connected without problem with unshielded cabling. The lesser quality emulates a sinusoidal output, but has substantial higher harmonics. These VFDs are not too shabby, but they can cause interference. The best solution is to filter the output before putting it on (long) cables. No shielding is required when the harmonics are under control, but it generally does not hurt to use a Faraday cage type shield. The cheap VFDs are poor substitutes and generate nearing square-wave output. The amount of EMI from higher harmonics is high and is often difficult to filter at the source. These VFDs should be used with both output filters and shielded cabling. The remaining problem that may arise is EMI from the motor. The remaining harmonics may radiate from the motor just as easily. That cannot be solved with shielding of the cables. You must ensure proper earthing of the motor as well and it should be enclosed in a proper metal casing. It should also be noted that VFD frequency changes cause harmonics in the output. If you turn on/off the hard way, then you can introduce some transients that are very hard to control. The best way is to control the up-/down-going frequency such that no abrupt changes can occur and therefore no transients are allowed to be created due to too fast changes. -- Greetings Bertho (disclaimers are disclaimed) -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users