Example: User Program
The program computes the thickness of a pressure vessel based on its diameter and material parameters such as working pressure and allowable stress. The program derives the diameter from the model. The user enters material parameters in the startup window according to prompts. The computed thickness is passed back to Creo Parametric.
[Program starts with next line]
/* Template for writing user programs in the Creo Parametric environment */
/* the following definition and include file are necessary */
#define USRMAIN
#include "spgusrgl.h"


/* This include file establishes useful variables for user needs. Those are:
1. D[i] refers to dimensions you see on the screen. ā€˜iā€™ is the index of a
dimension you see on the screen.
So, D[0] has a value corresponding to "d0" on the screen (or "sd0" if you are
in SKETCHER mode). D[4] corresponds to "d4" (or "sd4") on the screen, and so forth.
2. DIM_NUM Total number of dimensions on the screen.

*/

usrmain()
/* This program computes the thickness for a pressure vessel given the diameter from the model and various material and design constants input by the user. */
{
/* ---------------------- local variables ----------------------- */
/* Declare any additional variables or functions you need here. */
double sqrt ();
double thickness, f_s, joint_eff, allow_stress, press, dia;

/* ---------------------- executable code ----------------------- */
/* Prompt user for input. Prompts appear in the startup window. You must also
enter your responses there. */
printf("Enter material parameters\n");
printf("\n Working Pressure [psia]:\n");
scanf("%lf", &press);

printf("\n Factor of Safety [ ]:\n");
scanf("%lf", &f_s);

printf("\n Joint efficiency [ ]:\n");
scanf("%lf", &joint_eff);

printf("\n Allowable stress [psia]:\n");
scanf("%lf", &allow_stress);

/* Compute thickness of pressure vessel based on equations in Mechanical Analysis
and Design, A.H. Burr, Elsevier, 1982.
Note use of dimension D[2], the pressure vessel diameter, in computing the new
thickness */
thickness = press * D[2] * f_s / (2 * joint_eff * allow_stress);
/* Pass new thickness back to Creo Parametric */
D[3] = thickness;
}
[Program ends with previous line]
Was this helpful?