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

Reply via email to