#emc-devel | Logs for 2008-04-08

[01:07:20] <jmkasunich> jepler: just getting started
[01:11:11] <jmkasunich> should I find it odd that offs-0.0.5,tar when unpacked gives me files named offs-0.1<whatever>? I was kind of expecting offs-0.0.5<whatever>
[01:37:19] <jepler> jmkasunich: it's likely that I screwed up the tarballs
[01:37:26] <jepler> jmkasunich: those are version numbers I made up on the fly, though
[01:38:23] <jmkasunich> I have your version running (had to get valgrind and to a little fiddling), now I'm working on putting my path in
[01:39:19] <jepler> jmkasunich: it would also have been possible to remove the references to valgrind entirely
[01:39:37] <jmkasunich> I figured as much, but getting the valgrind package was easier
[01:39:59] <jepler> jmkasunich: did you run it before you started modifying the path? If the bottom part of the generated code had only one box instead of a bunch of nested boxes, it has the broken closed path code
[01:40:45] <jmkasunich> bottom left or bottom right?
[01:41:14] <jepler> bottom right
[01:41:19] <jmkasunich> I did run it unmodified, but that screen is gone - I've since run a partly modified version, with about half the paths removed
[01:41:29] <jmkasunich> I don't have any boxes, I think thats the part I removed
[01:41:40] <jmkasunich> I think I only kept the left side
[01:42:14] <jmkasunich> and now I have even less
[01:42:38] <jepler> if you have the wrong files, it won't affect the one where your path is
[01:43:10] <jmkasunich> how do I tell it I have a closed path?
[01:43:41] <jepler> move back to the starting point with a line or arc, then c.close()
[01:43:49] <jmkasunich> ok
[01:44:00] <jmkasunich> right now I'm figuring out arcs
[01:44:16] <jmkasunich> and I added a couple struct pt to save typing
[01:44:45] <jmkasunich> since my coordinates are 4 digits after the decimal point, and your primitives need both start and end pts - don't want to type things twice
[01:45:09] <jepler> yeah that is a bit of an annoyance
[01:45:11] <jmkasunich> start.x = 0.6;
[01:45:11] <jmkasunich> start.y = 0.6;
[01:45:11] <jmkasunich> end.x = 0.7445;
[01:45:11] <jmkasunich> end.y = 0.2000;
[01:45:11] <jmkasunich> c.feed(line(start, end));
[01:45:12] <jmkasunich> start = end;
[01:45:14] <jmkasunich> end.x = 2.0;
[01:45:16] <jmkasunich> end.y = 0.0;
[01:45:18] <jmkasunich> c.feed(line(start, end));
[01:45:38] <jepler> did you follow the different ways to declare an arc? 2d.hh around line 50
[01:45:45] <jmkasunich> yeah
[01:46:03] <jepler> start, end, center or start, end, radius are probably the most natural for you
[01:46:10] <jmkasunich> yep
[01:46:16] <jmkasunich> I'll probably be using the first one
[01:46:25] <jmkasunich> (of those 2)
[01:47:59] <jmkasunich> for the 'bool' args, I just pass 1 or 0, right?
[01:50:00] <jmkasunich> and we have an arc!
[01:51:56] <jmkasunich> end.x = 1.1434; end.y = 0.4582;
[01:51:56] <jmkasunich> ctr.x = 0.7445; ctr.y = 0.6380;
[01:51:56] <jmkasunich> c.feed(arc(start, end, ctr, 1));
[01:51:56] <jmkasunich> start = end;
[01:51:58] <jmkasunich> oops
[01:52:03] <jmkasunich> never mind that...
[01:52:12] <jmkasunich> jepler: demo_comp.cc:25: error: ‘struct dummy’ has no member named ‘close’
[01:52:23] <jmkasunich> does that mean I have the version that doesn't do closed loops
[01:52:40] <jmkasunich> or just that I need to add a dummy close
[01:52:55] <jepler> could be either one
[01:53:11] <jmkasunich> added the dummy, no error
[01:53:29] <jmkasunich> and it looks like it might be doing the closed shape right
[01:53:52] <jmkasunich> hard to tell, since I still have a blend of your path and the beginning of mine
[01:57:23] <jmkasunich> what is a thick cyan line in the axis preview? I have one and I can't figure out where it is coming from
[01:57:50] <jmkasunich> duh, its the selected line
[01:57:59] <SWPadnos> heh
[01:58:10] <jmkasunich> but oddly, after loading the program, a non-existant line is selected
[01:58:44] <SWPadnos> a line that doesn't exist in the editor or a line that doesn't exist in the preview?
[01:59:01] <SWPadnos> err - g-code listing, not editor
[01:59:12] <jepler> hm -- that should probably disappear after reload
[01:59:20] <jmkasunich> a cyan line appears in the preview (3d window), when I click on it, it disappears
[01:59:45] <jmkasunich> it doesn't seem to be repeating now that I've clicked in other places - no big deal, I'm just easily confused
[02:00:45] <jmkasunich> I think I've found a pathalogical case that breaks your program (not my path, but a combination of part mine part yours) screenshot in a sec
[02:02:15] <jmkasunich> http://jmkasunich.com/pics/offs-1.png
[02:02:36] <jmkasunich> the line off by itself is the reference path
[02:02:49] <jmkasunich> large arc, then tighter radius arc, then a line off to the right
[02:08:54] <cradek> now may not be the time, but jmkasunich: if your program does not move Z or change feed while cutter comp is on, you could also try using the concave_ccomp branch for this
[02:09:31] <jmkasunich> cradek: I will need the loop removal stuff - some of my segments are short enough that they will disappear
[02:09:36] <cradek> but, the case you show in offs-1 would probably not give you what you want
[02:09:37] <jmkasunich> I think I need >1 lookahead
[02:09:46] <cradek> ok I understand
[02:09:56] <jmkasunich> the line shooting off to the right is not part of my profile
[02:10:00] <jmkasunich> its leftovers from jeffs
[02:10:11] <SWPadnos> I can't get the first G3 to execute - I get the dreaded "radius to start and end are different blah blah"
[02:13:13] <jepler> jmkasunich: looking...
[02:13:24] <jepler> jmkasunich: that's curious
[02:14:39] <jepler> no doubt it's a bug :-P
[02:14:43] <jmkasunich> heh
[02:14:52] <jmkasunich> really sharp outside corner
[02:14:55] <SWPadnos> odd. when I MDI the arc, it doesn't work
[02:15:02] <SWPadnos> when I run it in a program, it's fine
[02:15:02] <jmkasunich> which arc?
[02:15:10] <SWPadnos> line 5 in your screenshot ;)
[02:15:26] <jmkasunich> you MDI the preceeding line, right?
[02:15:40] <SWPadnos> yes, all the preceeding lines
[02:15:49] <SWPadnos> though I didn't do G20
[02:16:16] <jepler> jmkasunich: is that crazy line at the point where the path closes, or is it elsewhere?
[02:16:27] <SWPadnos> also of interest is that when I make a program with the first 7 lines of your code, the last line (the one left over from jepler's stuff) doesn't execute when I hit run
[02:16:46] <jmkasunich> elsewhere
[02:17:08] <jmkasunich> the close point is where you see the short rapids connecting the individual paths
[02:17:15] <jmkasunich> and the flow is counterclockwise
[02:17:49] <jepler> I bet it's a bug in the arc-from-endpoints-and-radius code
[02:17:52] <jmkasunich> line going down and right, then big arc, smaller arc, then line to way off right
[02:18:07] <jmkasunich> from way-off-right, it goes to way-off-up, then down to start
[02:18:22] <jepler> too bad my brain is fried
[02:18:23] <cradek> my calculator says that arc is fine
[02:18:34] <cradek> SWPadnos: ^
[02:18:42] <SWPadnos> the radius differed in the fourth decimal place
[02:19:00] <jmkasunich> when I added more of my path (going straight up from the highlighted arc), the weirdness in the generated paths moved up
[02:19:20] <jmkasunich> to the point where the path once again heads for way-off-right
[02:19:21] <SWPadnos> hmmm - no. start radius = 0.4380, end = 0.4371
[02:19:55] <cradek> are you in g91?
[02:20:17] <cradek> I see there's no g90 in the program - probably should be
[02:20:47] <SWPadnos> no, its in G90
[02:22:09] <cradek> the end radius is .43800100, I did it twice
[02:22:31] <cradek> did you type in the program by hand?
[02:23:02] <jepler> jmkasunich: if you can save copies of demo_comp.cc which misbehave in interesting ways, it would be helpful to me
[02:23:13] <SWPLinux> cradek: yes, I typed the MDI and program by hand
[02:23:15] <jmkasunich> I saved the one that goes with that screenshot
[02:23:20] <jepler> great
[02:23:30] <cradek> SWPLinux: well surely you just messed it up then?
[02:23:35] <SWPLinux> http://pastebin.ca/976333
[02:23:37] <SWPLinux> the program
[02:24:13] <jmkasunich> jepler: http://jmkasunich.com/pics/demo_comp_offs1.cc
[02:24:37] <SWPLinux> gah. I can't copy from the axis history
[02:24:54] <SWPLinux> the program as typed runs fine, except it doesn't execute the final line
[02:25:37] <cradek> doesn't go to X6?
[02:26:04] <SWPLinux> http://pastebin.ca/976338
[02:26:07] <SWPLinux> MDI history
[02:26:37] <SWPLinux> no, that last line isn't executed. I went to X6 in MDI and it worked fine, so it's not a limit thing
[02:26:55] <SWPLinux> this is on sim, so who knows ...
[02:27:01] <cradek> ouch. wonder if it's a problem with the % instead of M2
[02:27:09] <SWPLinux> one sec, I'll check
[02:27:22] <cradek> also turn on task-issue and see if it gets sent to motion
[02:27:28] <jmkasunich> I'm running sim, FWIW
[02:27:40] <SWPLinux> ok, it is executed with M2
[02:27:50] <SWPLinux> should M30 also end the program?
[02:27:56] <cradek> yes
[02:28:22] <SWPLinux> ok, works that way too
[02:30:04] <SWPLinux> the line isn't issued at all when % are used
[02:30:17] <jepler> well now I've thoroughly screwed up my working copy of offs
[02:30:26] <jmkasunich> oops
[02:30:26] <SWPLinux> offs
[02:30:28] <cradek> SWPLinux: please file a bug report against interp with your findings
[02:30:29] <SWPLinux> :)
[02:30:57] <jepler> hooray for version control :-P
[02:31:30] <SWPLinux> ok. odd though
[02:31:48] <SWPLinux> I added another move after that one - G0Z0.9, and both moves execute
[02:31:50] <jepler> jmkasunich: I'm sorry if my software is too buggy for your purposes at this time
[02:31:57] <jmkasunich> its not
[02:32:07] <jmkasunich> I'm about to post a screenshot of my path
[02:33:01] <jmkasunich> http://jmkasunich.com/pics/offs-2.png
[02:33:24] <jmkasunich> it didn't like that wild turn off to the far right, but its perfectly happy with my actual path
[02:33:36] <cradek> wow, that's neat
[02:33:47] <jepler> you'd better fix those G0s down into the material
[02:33:57] <jepler> * jepler tries no less than three times to rotate the preview
[02:34:01] <jepler> offs
[02:34:02] <cradek> haha
[02:34:03] <jmkasunich> yeah, it needs some touchup
[02:34:14] <cradek> it rapids down and then toward the center :-)
[02:34:27] <jmkasunich> it will be used to bring the port in this casting to the proper shape (ball end mill) http://jmkasunich.com/pics/block-end-faced-2007.jpg
[02:35:04] <jmkasunich> jepler: I can post this demo_comp.cc, then you can rotate it
[02:35:07] <cradek> I sure like the AXIS preview for writing/checking gcode
[02:35:39] <jepler> I'd like to have the .cc .. the .ngc would probably be more useful to others
[02:35:40] <jmkasunich> http://jmkasunich.com/pics/demo_comp_offs2.cc
[02:36:10] <jmkasunich> where does it write the ngc? or does it just pipe it into axis-remote?
[02:36:18] <jmkasunich> duh, never mind
[02:36:25] <SWPLinux> does anyone know how one is supposed to get from linuxcnc.org to the SF bug reporting page?
[02:36:56] <SWPLinux> I used the search and found a link, but I'd think it would be more obvious than that
[02:37:12] <cradek> click up in the location entry field and type sf.net/projects/emc?
[02:37:29] <jmkasunich> http://jmkasunich.com/pics/demo_comp_offs2.ngc
[02:37:42] <SWPLinux> well, I could also go to my SF user page and click through from there, but still ...
[02:39:59] <jmkasunich> the next step is to hack up jeffs code so I can offset each level down and to the left
[02:40:28] <jmkasunich> the lower and left straight edges of all levels will be lined up, and the tapering will take place along the rest of the outline
[02:42:03] <jmkasunich> and the taper isn't going to be uniform....
[02:42:14] <jmkasunich> very usefull tool jepler, thanks
[02:42:28] <jmkasunich> dog is whining, gotta walk him now
[02:43:19] <jepler> jmkasunich: have fun
[02:43:20] <jepler> see you later
[02:43:24] <jepler> * jepler is about ready to head to bed
[04:00:05] <jmkasunich> * jmkasunich lusts after tooling
[04:00:50] <jmkasunich> http://cgi.ebay.com/ER20-full-set-12-pcs-ER-20-high-precision-collet-set_W0QQitemZ200205925150QQihZ010QQcategoryZ45018QQtcZphotoQQcmdZViewItem
[04:01:09] <jmkasunich> http://cgi.ebay.com/ER20-STRAIGHT-SHANK-COLLET-CHUCK-TOOL-HOLDER-ER-20_W0QQitemZ200127288987QQihZ010QQcategoryZ45018QQtcZphotoQQcmdZViewItem
[04:06:10] <SWPLinux> what?
[04:06:52] <SWPLinux> damn. that didn't work
[04:07:35] <cradek> isn't 3/4 too big for your shoptask?
[04:07:54] <jmkasunich> 3/4 is the size of the tormach quick-change shanks
[04:08:06] <jmkasunich> tormach sells an ER-20 holder, but they want $81 for it
[04:08:19] <jmkasunich> this doesn't have the stop ring, but I can make that
[04:08:35] <cradek> http://www.cdcotools.com/item.php?itemid=428
[04:08:36] <jmkasunich> just over half the price
[04:08:38] <cradek> cheaper but ER16
[04:09:09] <jmkasunich> 4" long shank I'd have to cut down
[04:09:34] <cradek> I easily cut the shank on my boring head
[04:09:41] <jmkasunich> not hardened?
[04:09:48] <cradek> if so, not much
[04:09:59] <cradek> it looked ground
[04:10:16] <jmkasunich> have you dealt with cdco?
[04:10:19] <cradek> it's hard to guess what you'll get when you order this cheap stuff
[04:10:30] <cradek> yes I got some stuff from them.
[04:10:34] <cradek> maybe even twice, not sure
[04:11:26] <jmkasunich> the ER-20 is nice cause it goes up to 1/2"
[04:11:42] <cradek> yeah 1/2 is a nice size
[04:11:50] <jmkasunich> that ebay seller has ER-16 too, holders are the same price, collet sets about $15 less
[04:11:56] <jmkasunich> for that difference, I'd rather have 20
[04:12:04] <jmkasunich> no way I want both
[04:12:11] <cradek> do you ever use 3/4 mills or is that way too big?
[04:12:25] <jmkasunich> I probably could, as long as I was smart about feeds and speed
[04:13:17] <jmkasunich> I'm gonna talk to the friend I've been doing this work for - he's an ebay fiend, and has a paypal account - I may ask him if he'll buy me a set of collets and 2 chucks to pay for the job
[04:13:29] <jmkasunich> that would be a steal for him, and a nice addition to my tooling
[04:13:32] <cradek> that sounds slick
[04:14:02] <cradek> you'll never use most of the collets...
[04:14:08] <cradek> or at least I don't use mine
[04:14:17] <jmkasunich> the two chucks are just what is needed for the next operation - one for the ball end mill (3/16" shank) and one for the drill (0.281)
[04:14:23] <cradek> I mostly use the 1/8, 1/4, 3/8, 1"
[04:14:42] <jmkasunich> you don't drill much, or you have enough Z to deal with drills in chucks
[04:14:53] <jmkasunich> drills in collets work nicer if you have limited Z
[04:15:17] <cradek> I usually move the knee :-/
[04:15:30] <cradek> you think these will really clamp on everything?
[04:15:39] <jmkasunich> ER is a wide range collet
[04:16:30] <jmkasunich> http://i11.ebayimg.com/04/i/08/6d/f4/3a_3.JPG
[04:16:31] <cradek> it would be nice that you could always add a few more chucks
[04:16:41] <jmkasunich> note that it is slit from both top and bottom
[04:16:45] <cradek> I know, mine are ER40
[04:16:57] <jmkasunich> thats what lets them compress down
[04:17:08] <cradek> but gripping intermediate sizes seems iffy - maybe I just need to tighten it up and not worry.
[04:18:03] <cradek> I will try them next time for drilling.
[04:18:30] <cradek> (doubt my ER40 chuck is much shorter than the albrecht though)
[04:18:49] <jmkasunich> ER-20 is
[04:18:58] <cradek> yeah those look nice and short.
[04:19:07] <cradek> hopefully the shank is fairly hollow too.
[04:19:14] <jmkasunich> and ER20 with an endmill, and another ER-20 choked up on a drill, not too different
[04:19:17] <jmkasunich> shanks are hollow
[04:20:14] <cradek> I like that these you found take regular wrenches
[04:20:46] <cradek> I'd rather the small one had a full hex so you could use a closed wrench though
[04:21:21] <cradek> I'd definitely go get the right two wrenches (I hate crescents, they always make me bleed and ruin things)
[04:21:36] <jmkasunich> heh
[04:21:45] <cradek> not in that order
[04:21:49] <jmkasunich> damn, it got late again
[04:21:52] <cradek> ruin something, then bleed very shortly afterward
[04:22:16] <cradek> here too. goodnight...
[04:22:23] <jmkasunich> goodnight
[11:55:57] <jepler> ah shit that bug SWPadnos discovered is another segment combining bug, isn't it
[13:02:53] <SWPadnos> jepler: hmmm. could be.
[13:03:27] <SWPadnos> if G1->G0 gets combined differently than G3->G1 or G1->G1
[13:04:21] <SWPadnos> in both cases, there's a sharp corner - either from the last arc endpoint to the long G1, or from the XY G1 to the Z G1 or G0
[13:28:14] <cradek> jepler: yes surely
[13:28:42] <cradek> jepler: % doesn't call STOP_OR_END_OR_WHATEVER_IT_IS_PROGRAM(), it just stops sending the segments
[13:29:04] <cradek> not sure how to fix it except to make a FLUSH canon call
[13:29:44] <SWPadnos> are there undesired effects from calling STOP_OR_END_OR_WHATEVER_IT_IS_PROGRAM() for % ?
[13:30:03] <skunkworks_> * skunkworks_ wonders how you make a flushing sound on irc
[13:30:05] <cradek> would have to check that.
[13:30:20] <SWPadnos> I know it's supposed to be the same as M2, but there were possibly some esoteric differences
[13:30:48] <SWPadnos> (not that there are *supposed* to be esoteric differences, but there may be)
[13:31:14] <cradek> there are lots of differences between % and M2/M30
[13:31:27] <SWPadnos> M30 is palette change isn't it?
[13:31:29] <cradek> I see that we already have STOP() which could be called and does what we want
[13:31:44] <cradek> yes, stop + palette change
[13:32:19] <SWPadnos> are you saying that there are supposed to be lots of differences between % and M2, or just that there are? :)
[13:32:47] <cradek> there are supposed to be
[13:32:51] <cradek> M2 does lots of things
[13:32:52] <SWPadnos> ok
[13:34:01] <skunkworks_> m30 - switch paper tape drive and pallet.
[13:34:05] <skunkworks_> ;)
[13:34:23] <SWPadnos> ok, I guess M2 is the end of program command, and % signals that there's no more input
[13:34:48] <SWPadnos> but I'm not sure I see what the differences between them should be
[13:35:05] <SWPadnos> (and it's not clear to me by reading the rs274ngc manual)
[13:36:22] <jepler> SWPadnos: % doesn't do any of the things that M2 does, besides stopping reading
[13:36:29] <cradek> M2 turns off the spindle, switches to G54, unapplies G92, switches to your default units, switches to G90, etc etc
[13:41:18] <alex_joni> cradek: I think there was some FLUSH canon call
[13:41:25] <alex_joni> I remember needing it for something else..
[13:42:01] <alex_joni> void FINISH() {
[13:42:01] <alex_joni> flush_segments();
[13:42:01] <alex_joni> }
[13:42:35] <alex_joni> from canon.hh:
[13:42:36] <alex_joni> * last segment to be output, if it has been held to do segment merging */
[13:42:36] <alex_joni> extern void FINISH(void);
[13:42:57] <alex_joni> hmm.. lost a line of comment there
[13:43:18] <alex_joni> /* to be called by emcTaskPlanExecute when done interpreting. This causes the
[13:43:21] <alex_joni> * last segment to be output, if it has been held to do segment merging */
[13:43:24] <alex_joni> extern void FINISH(void);
[13:44:36] <cradek> ok, that's much easier then
[13:44:52] <cradek> I added STOP() to all the canons, I'll call FINISH() instead
[13:45:04] <jepler> cradek: are you fixing this? thanks.
[13:45:43] <cradek> yes, welcome
[13:53:10] <CIA-30> EMC: 03cradek 07TRUNK * 10emc2/src/emc/rs274ngc/ (gcodemodule.cc interp_read.cc): fix #1937281: last move discarded if it's a G1 and the file ends with %
[13:53:10] <CIA-30> EMC: 03cradek 07TRUNK * 10emc2/src/emc/task/emccanon.cc: fix #1937281: last move discarded if it's a G1 and the file ends with %
[13:53:18] <CIA-30> EMC: 03cradek 07TRUNK * 10emc2/src/emc/sai/saicanon.cc: fix #1937281: last move discarded if it's a G1 and the file ends with %
[13:53:19] <CIA-30> EMC: 03cradek 07TRUNK * 10emc2/src/emc/canterp/canterp.cc: fix #1937281: last move discarded if it's a G1 and the file ends with %
[13:54:19] <alex_joni> cradek: cool ;)
[13:54:43] <alex_joni> cradek: ran any interpreter tests from the testsuite?
[13:55:59] <alex_joni> hmm.. flowsnake ends in %, but has an M5 before it
[13:57:40] <SWPadnos> cool!
[13:58:09] <SWPadnos> so - I just got off the phone with my friend who works for my previous company
[13:58:35] <SWPadnos> he said they've finally gotten fed up enough with Mach that they'd like me to come in and help them get EMC2 running :)
[14:02:35] <cradek> none of the tests change
[14:02:53] <jepler> that's good as long as none of them use percents
[14:02:54] <cradek> (hmm, I'm surprised flowsnake didn't then)
[14:03:02] <jepler> does it have m2 before %?
[14:03:28] <cradek> no...
[14:03:42] <SWPadnos> hmmm - I didn't try too many variations of final moves last night
[14:04:05] <cradek> oh, I didn't make saicanon print anything when FINISH() is called
[14:04:07] <cradek> duh
[14:06:55] <CIA-30> EMC: 03cradek 07TRUNK * 10emc2/src/emc/sai/saicanon.cc: #1937281: sai should print FINISH, and fix the corresponding test
[14:07:03] <CIA-30> EMC: 03cradek 07TRUNK * 10emc2/tests/interp/flowsnake/expected: #1937281: sai should print FINISH, and fix the corresponding test
[14:07:49] <cradek> I suppose nobody has noticed this because the last line of a real gcode program is almost always going to be a rapid
[14:08:16] <SWPadnos> yeah, of some sort
[14:08:42] <SWPadnos> G28/G30 are also possible, but those are rapids too :)
[14:08:56] <cradek> yep
[14:09:43] <micges> I've noticed this about 1 year ago when I wrote gcode generator... workaround is (MSG, ...) line before % and I leave that :)
[14:10:03] <jepler> bugs don't get fixed when they're not mentioned
[14:10:30] <cradek> but, often they get fixed fast when a good bug report is filed
[14:11:23] <micges> recently I manage to find bugs... earlier I knew too little
[14:12:05] <micges> I'm still learning
[14:14:33] <micges> bbl
[15:39:08] <alex_joni> bbl
[23:23:33] <jmkasunich> shiny new collets and chucks should arrive Thur or Fri
[23:23:42] <jmkasunich> getting paid in tooling is something I could get used to ;-)