Hello everyone, still on vacation but I'm back in the Los Angeles area.

I received an email from retired engineer Djajadi Susastra, who has been using Hewlett Packard calculators since 1989. Susastra obtained a BSc in Mechanical Engineering that year. He recently purchased an HP Prime calculator and has asked me to share his programs on mechanical engineering (the last three deal with business and finance), which he learned how to program the Prime from this blog.

Djajadi, I am very thankful for the compliments and with pleasure, here are the programs he has sent:

**CALCULATING
CROSS SECTION AREA OF CYLINDER.**

EXPORT AREA()

BEGIN

LOCAL OD, ID, AA;

INPUT (OD,
"OD=" );

INPUT
(ID,"ID=" );

AA:=(OD^2-ID^2)/4*PI;

MSGBOX
("XSECTION AREA=" +AA);

END;

**CALCULATING
MAXIMUM BENDING MOMENT ON A CYLINDER AT YIELD. **

EXPORT BENDING()

BEGIN

LOCAL OD,
ID, YI, I, BEN;

INPUT
(OD, "OD (IN)=" );

INPUT
(ID, "ID= (IN)=" );

INPUT
(YI, "YIELD (PSI)=");

I:=(OD^4-ID^4)/64*PI;

BEN:=YI*I/(12*(OD/2));

MSGBOX
("MAX BENDING ALLOWED (FT-LB)=" +BEN);

END;

**CALCULATING
COLLAPSE PRESSURE ON 110 KSI YIELD PIPE (PER API 5C3).**

EXPORT
COLLAPSE110()

BEGIN

LOCAL OD,
ID, YI, TEN, DT, COL;

INPUT
(OD, "OD (IN)=" );

INPUT
(ID, "ID= (IN)=" );

YI:=110000;

DT:=OD/((OD-ID)/2);

IF
DT≤12.44 THEN

COL:=2*YI*(DT-1)/DT^2;

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
12.44<DT AND DT≤20.41 THEN

COL:=YI*(3.181/DT-.0819)-2852;

MSGBOX
("COLLPASE PRESS (PSI)=" +COL);

END;

IF
20.41<DT AND DT≤26.22 THEN

COL:=YI*(2.066/DT-.0532);

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
26.22<DT AND DT≤1000 THEN

COL:=46950000/(DT*(DT-1)^2);

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
DT≥1001 THEN

MSGBOX
("NO CASE");

END;

END;

**CALCULATING
COLLAPSE PRESSURE ON 80 KSI YIELD PIPE (PER API 5C3).**

EXPORT
COLLAPSE80()

BEGIN

LOCAL OD,
ID, YI, TEN, DT, COL;

INPUT
(OD, "OD (IN)=" );

INPUT
(ID, "ID= (IN)=" );

YI:=80000;

DT:=OD/((OD-ID)/2);

IF
DT≤13.38 THEN

COL:=2*YI*(DT-1)/DT^2;

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
13.38<DT AND DT≤22.47 THEN

COL:=YI*(3.071/DT-.0667)-1955;

MSGBOX
("COLLPASE PRESS (PSI)=" +COL);

END;

IF 22.47<DT
AND DT≤31.02 THEN

COL:=YI*(1.998/DT-.0434);

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
31.02<DT AND DT≤1000 THEN

COL:=46950000/(DT*(DT-1)^2);

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
DT≥1001 THEN

MSGBOX
("NO CASE");

END;

END;

**CALCULATING
COLLAPSE PRESSURE ON 75KSI YIELD PIPE (PER API 5C3).**

EXPORT
COLLAPSE75()

BEGIN

LOCAL OD,
ID, YI, TEN, DT, COL;

INPUT
(OD, "OD (IN)=" );

INPUT
(ID, "ID= (IN)=" );

YI:=75000;

DT:=OD/((OD-ID)/2);

IF
DT≤13.6 THEN

COL:=2*YI*(DT-1)/DT^2;

MSGBOX ("COLLAPSE
PRESS (PSI)=" +COL);

END;

IF
13.6<DT AND DT≤22.91 THEN

COL:=YI*(3.054/DT-.0642)-1806;

MSGBOX
("COLLPASE PRESS (PSI)=" +COL);

END;

IF
22.91<DT AND DT≤32.05 THEN

COL:=YI*(1.99/DT-.0418);

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
32.05<DT AND DT≤1000 THEN

COL:=46950000/(DT*(DT-1)^2);

MSGBOX
("COLLAPSE PRESS (PSI)=" +COL);

END;

IF
DT≥1001 THEN

MSGBOX
("NO CASE");

END;

END;

**CALCULATING
VON MISSES STRESS (THICK WALL, SHIGLEY AND MITCHELL, API 6A)**

EXPORT
EQUI_STRESS()

BEGIN

LOCAL OD,
ID, P, S1, S2, S3, SE, T;

INPUT
(OD, "OD (IN)=" );

INPUT
(ID, "ID= (IN)=" );

INPUT (P,
"PRESSURE (PSI)=");

T:=(OD-ID)/2;

LOCAL RA;

RA:=OD/40;

IF
T>RA THEN

S1:=P*ID^2/(OD^2-ID^2);

S2:=P*(OD^2+ID^2)/(OD^2-ID^2);

S3:=-1*P;

SE:=(((S1-S2)^2+(S2-S3)^2+(S3-S1)^2)/2)^.5;

MSGBOX
("EQUIVALENT STRESS (PSI)=" +SE);

ELSE

MSGBOX
("THIN WALL");

END;

END;

**CALCULATING
YIELD PRESSURE (API 5 C3).**

EXPORT
YIELDPRESS()

BEGIN

LOCAL OD,
ID, YI, PY;

INPUT
(OD, "OD (IN)=" );

INPUT
(ID, "ID= (IN)=" );

INPUT
(YI, "YIELD (PSI)=");

PY:=.875*(2*YI*(OD-ID)/2)/OD;

MSGBOX
("YIELD PRESSURE (PSI)=" +PY);

RETURN

END;

**CALCULATING SHEAR AREA AND
BEARING AREA ON ACME THREADS. **

EXPORT
THREAD()

BEGIN

LOCAL D,
N, P, ES, KN, M, SA, BA;

INPUT (D,
"OD=" );

INPUT
(N,"NO OF THREAD PER INCH" );

P:=1/N;

ES:=D-.5*P-.008*D^.5-.006*D^.5-.03*(1/N)^.5;

KN:=D-P+.05*P;

M:=D-.05*P;

SA:=PI*KN*(.5+N*TAN(14.5)*(ES-KN));

BA:=(M^2-KN^2)/4*N*PI;

MSGBOX
("ACME 2G, SHEAR AREA=" +SA);

MSGBOX
("BEARING AREA=" +BA);

END;

**CALCULATING
GROSS MARGIN (IN %) WHEN COST AND PRICE ARE KNOWN. **

EXPORT
COST()

BEGIN

LOCAL P,
C, GM;

INPUT (P,
"PRICE=" );

INPUT (C,
"COST=" );

GM:=100-(100*C/P);

MSGBOX
("GROSS MARGIN (%)=" +GM);

END;

**CALCULATING
PRICE WHEN COST AND GROSS MARGIN (IN %) ARE KNOWN. **

EXPORT
GROSSMARGIN()

BEGIN

LOCAL G,
C, P;

INPUT (G,
"GM (%)" );

INPUT (C,
"COST=" );

P:=C/(1-G/100);

MSGBOX
("PRICE=" +P);

RETURN

END;

**CALCULATING
FUTURE VALUE WHEN PRESENT VALUE, INTEREST PER YEAR, AND PERIOD IN YEAR ARE
KNOWN. **

EXPORT
FUTUREVAL ()

BEGIN

LOCAL PV,
I, P, N, FV;

INPUT
(PV, "PRESENT VALUE=" );

INPUT
(I,"INTEREST (ANNUAL)=" );

INPUT (N,
"PERIOD (IN YEAR)=");

FV:=PV*(1+I/100)^N;

MSGBOX
("FUTURE VALUE=" +FV);

END

Eddie

This blog entry is property of Edward Shore. 2015.