Post Reply 
program SECTION ver 2.0
05-14-2015, 01:13 PM (This post was last modified: 05-16-2015 10:01 AM by akmon.)
Post: #4
RE: program SECTION ver 2.0
With new firmware version (7820), the picture of section appears for half a second and it comes back to main screen showing "Invalid input".

Update. I´ve erased some part of the code, at the end for not flickering "Press Enter". It does not flick, but the figure and results remain until you press a key.

Code:
EXPORT SECTION(mat)
BEGIN
Local t,d,h,y0,a,ix1,iy1,iy;
Local ssy,ry,yy1,ix,ssx,rx;
Local d1,y,i,n,at,ftor,mx1;
Local mx2,my1,my2, res;

t:= revlist(col(mat,1));
d:= revlist(col(mat,2));
t:= append(t,0); d:= append(d,0);
n:= DIM(t); n:= n(1)−1;

h:=MAKEMAT(0,n+1);
y0:=h; a:=h; ix1:=h; yy1:=h; iy1:=h;
h[1]:=0;

d1:=sum(d);
ftor:= 200/(MAX(d1,MAX(t)));

RECT_P();
LINE_P(G0,160,0,160,220,#0000FF);
LINE_P(G0,0,220,320,220,#0000FF);

FOR i FROM 1 TO n DO
h[i+1]:= h[i]+d[i];
IF t[i]≠0 THEN
my1:=iPart(210-ftor*h[i]+0.5);
my2:=iPart(210-ftor*(h[i]+d[i])+0.5);
mx1:=iPart(240-ftor*(t[i]/2)+.5);
mx2:=iPart(mx1+ftor*t[i]+.5);

LINE_P(G0,mx1,my1,mx1,my2,#FF0000);
LINE_P(G0,mx1,my2,mx2,my2,#FF0000);
LINE_P(G0,mx2,my1,mx2,my2,#FF0000);
LINE_P(G0,mx2,my1,mx1,my1,#FF0000);
END;
END;

y0:=h+ d/2;
a:= t .*d;
ix1:= CAS(t .* (d .^3) /12);
iy1:= CAS(d .* (t .^3) /12);
at:= sum(a);
y:= sum(a .* y0)/at;
yy1:=y0 .- y;
ix:= sum(ix1)+sum(a .* (yy1 .* yy1));
ssx:=ix/(d1-y);
rx:= √(ix/at);
iy:=sum(iy1);
ssy:= 2*iy/(max(t));
ry:= √(iy/at);

res:= MAKELIST(0,X,1,9);

res:= {"ӯ = "+round(y,2)+" cm",
"d = "+round(d1,2)+" cm",
"Ix = "+round(ix,2)+" cm⁴",
"Sx = "+round(ssx,2)+" cm³",
"rx = "+round(rx,2)+" cm",
"Iy = "+round(iy,2)+" cm⁴",
"Sy = "+round(ssy,2)+" cm³",
"ry = "+round(ry,2)+" cm",
"A = "+round(at,2)+" cm²" };

TEXTOUT_P("*** SECTION V1.2 ***",5,5,0,#0000FF);
TEXTOUT_P("by Rafael H. Padilla V.",5,21,0,#0000FF);
TEXTOUT_P("dysup@hotmail.com",5,35,0,#0000FF);
TEXTOUT_P("*** RESULTS ***",5,55,0,#0000FF);
FOR i FROM 1 TO 9 DO
TEXTOUT_P(res(i),10,58+i*16);
END;

my1:=iPart(210-y*ftor+0.5);
FOR i FROM 1 TO 11 DO
mx1:= iPart((i-1)*10+190);
mx2:= mx1+6;
LINE_P(mx1,my1,mx2,my1,#00FF00);
END;

TEXTOUT_P("NA",170,my1-5);
REPEAT
TEXTOUT_P("PRESS <<ENTER>> KEY",90,222,0,#FF0000);
WAIT(.35);
UNTIL GETKEY ≠ −1;

return(res);

END;
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
program SECTION ver 2.0 - churichuro - 02-16-2014, 03:53 AM
RE: program SECTION ver 2.0 - churichuro - 03-17-2015, 05:24 AM
RE: program SECTION ver 2.0 - akmon - 05-14-2015 01:13 PM
RE: program SECTION ver 2.0 - zmp - 08-04-2015, 06:18 PM



User(s) browsing this thread: 1 Guest(s)