The same thing as a subroutine. ; 90 degree cw arc in quadrant 1 0-90 degrees
o100 sub G91 G2 X#1 Y-#1 I0.0 J-#1 G90 o100 endsub G1 X0 Y0 F10 o100 call [0.250] G0 X1 Y-1 o100 call [0.50] M2 JT On 12/3/2014 9:39 AM, Gene Heskett wrote: > On Wednesday 03 December 2014 07:34:59 John Thornton did opine > And Gene did reply: >> The default behavior for arc distance is incremental so for a given arc >> you only have to change the start and end points to be correct. >> >> For example with the center of the arc at X0 Y0 and a 0.510 diameter >> and starting at 180 and going CW to 90 the G code is: >> G0 X-0.2550 Y0.0000 >> G2 X0.0000 Y0.2550 I0.2550 J0.0000 >> >> If I move the center to X1 Y1 then the G code is: >> G0 X0.7450 Y1.0000 >> G2 X1.0000 Y1.2550 I0.2550 J0.0000 >> >> Notice that I and J remain the same and both the start point and the >> end points change by the difference in center locations. >> >> JT > That "center locations" is a different concept to me I guess. > > And maybe that why I have such a hell of a time with g2/g3. > > My theory I have been using is to drive the machine (g1) to the start > point of the arc. Like: > g1 xstarting xpoint > g1 ystarting ypoint > xpoint += tooldia > ypoint += tooldia > g2 Xxpoint Yypoint I or Jtooldia dependent on quadrant. > > I am intending to do 90 degree arcs to round corners. > The y coords are always negative as I had to put the homing contacts as > a brass corner screwed to a flip it out of the way after use, hinged > stop that will locate the end of the board. Its located arbitrarily near > the center of the table in the x direction, and the front of the 1/4" > tool, when zeroed and driven to touch the board is y = -.323" > > what I have now, with the g2 moves commented out, and a move AFTER the > arc callthat shows a 45 degree angle line to put the tool at the end of > the arc, a useless line of code if the arc works because it will already > be at the end of the arc when that move is executed successfully. > > So I have a right corner sub and a left corner sub. > > o<rightC> sub > ( to cut right corners ) > (debug,RightC x_tmp=#<_x_tmp>) > (debug,RightC y_tmp=#<_y_tmp>) > (debug,RightC J=tdia=#<_tdia>) > ( arcbuddy = G2 X0.2550 Y0.0000 I-0.0000 J-0.2550 starting @ X0.0000 Y0.2550 ) > (G2 X[#<_x_tmp> + #<_tdia>] Y#<_y_tmp> J-#<_tdia>) > o<rightC> endsub > > o<leftC> sub > ( to cut left corners ) > (debug,leftC x_tmp=#<_x_tmp>) > (debug,LeftC y_tmp=#<_y_tmp>) > (debug,LeftC tdia=#<_tdia>) > ( arcbuddy = G2 X0.0000 Y0.2550 I0.255 J-0.0000 starting @ X-0.2550 Y0.0000 ) > (G2 X#<_x_tmp> Y[#<_y_tmp> - #<_tdia>] I#<_tdia>) > o<leftC> endsub > > With the G2 moves short circuited by (), the debugs are showing what I > think should be the correct values, but it all goes boom with large errors if > the G2 move is enabled. > > I'll step it to the first, right corner right now: > Machine is at X-3.890 Y-.323 > x_tmp = -3.635 passed to right sub > y_tmp = -.5780 ditto > tdia = .2550 > > It draws a line in the correct locations to join the start and end > positions of the curve wanted. > > Stepping to the first left corner: > Machine is driven to X-2.6400 Y-.5780 > x_tmp = -2.385000 > y_tmp = -.323000 > tdia = .255000 > > But if I enable the G2 in RightC, and force step it, then the screen that > LCNC was launched from will spit out this (reformatted for clarity): > > emc/task/emctask.cc 389: interp_error: > Radius to end of arc differs from radius to start: > start=(X-3.8900,Y-0.3230) > center=(X-3.8900,Y-0.5780) > end=(X-3.3800,Y-0.5780) > r1=0.2550 > r2=0.5100 > abs_err=0.255 > rel_err=50.0000% > Radius to end of arc differs from radius to start: > start=(X-3.8900,Y-0.3230) > center=(X-3.8900,Y-0.5780) > end=(X-3.3800,Y-0.5780) > r1=0.2550 > r2=0.5100 > abs_err=0.255 > rel_err=50.0000% > > Why it spit it out twice I have no clue but thats one attempt. > > So where have I failed in translating this to function anyplace the table > can each? > > Is my start at curve start, goto end with what I tell G2, set radius at offset > method AFU? > > FWIW, I also used the code straight out of arcbuddy but put a G91 in front > of the G2, and a G90 after. Seemingly no effect on the error msg itself. > > [...] > > Thanks Big John. > > Cheers, Gene Heskett ------------------------------------------------------------------------------ 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=164703151&iu=/4140/ostg.clktrk _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users