Ther is a problem about the circles. Revgen don't handle circles over 180 deg.
I think the problem can be fixed by add some code in the cut.awk file:
....
...
#----------- Arc XY Section --------------------------------
if ( plnmode == "G17" ) {
if ( gmode == "G02" || gmode == "G03" ) {
if ( lastmode == "G01" ) {
print " }"
print " ]"
}
stpointx = thex
stpointy = they
stpointz = thez
calcenter(stpointx,stpointy,stpointz,thei,thej,thek)
calrad(stpointx,stpointy,stpointz,centerx,centery,centerz)
calxyz(searchX,searchY,searchZ,endline)
endpointx = thex
endpointy = they
endpointz = thez
if ( arcdirxy != "reverse" ) {
if ( gmode == "G02" ) {
printf ("ARC[DR=0, XC=%.6f, YC=%.6f, XS=%.6f, YS=%.6f,
XE=%.6f, YE=%.6f, LV=%.6f]\n", centerx, centery, stpointx, stpointy,
endpointx, endpointy, thez)
lastmode = "G02"
}
if ( gmode == "G03" ) {
printf ("ARC[DR=1, XC=%.6f, YC=%.6f, XS=%.6f, YS=%.6f,
XE=%.6f, YE=%.6f, LV=%.6f]\n", centerx, centery, stpointx, stpointy,
endpointx, endpointy, thez)
lastmode = "G03"
}
}
if ( arcdirxy == "reverse" ) {
if ( gmode == "G02" ) {
printf ("ARC[DR=1, RA=%.6f, XS=%.6f, YS=%.6f, XE=%.6f,
YE=%.6f, LV=%.6f]\n", radius, stpointx, stpointy, endpointx, endpointy, thez)
lastmode = "G02"
}
if ( gmode == "G03" ) {
printf ("ARC[DR=0, RA=%.6f, XS=%.6f, YS=%.6f, XE=%.6f,
YE=%.6f, LV=%.6f]\n", radius, stpointx, stpointy, endpointx, endpointy, thez)
lastmode = "G03"
}
}
}
}
# ARC[XC=##, YC=##, XS=##, YS=##, XE=##, YE=##,
# XI=##, YI=##, SS=##, SC=##, TS=$$, AS=##,
# SE=##, TE=$$, AE=##, SI=##, TI=$$, DR=##,
# RA=##, LV=##]
...
..
#------------- Function to determine x,y,z ----------------------
....
...
function calcenter(stpointx,stpointy,stpointz,thei,thej,thek){
if ( implied == 0 ) {
places = 1.0
}
if ( implied == 1 ) {
places = 10.0
}
if ( implied == 2 ) {
places = 100.0
}
if ( implied == 3 ) {
places = 1000.0
}
if ( implied == 4 ) {
places = 10000.0
}
if ( implied == 5 ) {
places = 100000.0
}
if ( implied == 6 ) {
places = 1000000.0
}
searchI = match($0,"I")
searchJ = match($0,"J")
searchK = match($0,"K")
searchR = match($0,"R")
thei = (substr($0,searchI+1,endline))/places
thej = (substr($0,searchJ+1,endline))/places
thek = (substr($0,searchK+1,endline))/places
if ( arcmode == "start_center" ) {
centerx = stpointx + thei
centery = stpointy + thej
centerz = stpointz + thek
}
if ( arcmode == "center_start" ) {
centerx = stpointx - thei
centery = stpointy - thej
centerz = stpointz - thek
}
if ( arcmode == "absolute" ) {
centerx = thei
centery = thej
centerz = thek
}
return centerx centery centerz thei thej thek
}
....
...
------------------------
an extra function determin small ore big circle is neded I think
T.Holst
At 11:17 AM 5/25/00 -0400, you wrote:
>Hey all
>
>There were several posts some time ago concerning reverse code generation;
>creating a model from code.
>
>Did anyone ever have any success with this and if so, where can I get the
>program?
>
>Thanks
>Pete
>
>
>_______________________________________________________
>Peter Ruehle
>Semiconductor Packaging Materials
>[EMAIL PROTECTED]
>http://www.sempck.com
>(914) 273-5500
>
>======================================================================
>To find out more about this mailing list including how to unsubscribe,
>send the message "info mfg-smartcam" to [EMAIL PROTECTED]
>======================================================================
>
---------------------
PROTOTECH AS
P.O. Box 6034
N-5892 Bergen, Norway.
======================================================================
To find out more about this mailing list including how to unsubscribe,
send the message "info mfg-smartcam" to [EMAIL PROTECTED]
======================================================================