Difference between revisions of "Bend Reduction Editor"

From ATTWiki
Jump to: navigation, search
(Math Operators)
(Math Operators)
Line 138: Line 138:
 
# "(" and ")" control the order of operation
 
# "(" and ")" control the order of operation
  
 
+
<font size=1>
 
<pre>
 
<pre>
 
NewArc := ((BendAllowance * blinksw(OD) + (PI/2 * (blinksw(CLR)-0.5 * blinksw(OD) ))) / 90) * blinksw(BENDANGLE);
 
NewArc := ((BendAllowance * blinksw(OD) + (PI/2 * (blinksw(CLR)-0.5 * blinksw(OD) ))) / 90) * blinksw(BENDANGLE);
 
</pre>
 
</pre>
 
+
</font>
 
<br>
 
<br>
 
<br>
 
<br>

Revision as of 12:59, 7 March 2008

Blinkswlogo.jpg

Solidworkslogo.png

Contents


Bend Reduction Editor Screen

Predicting elongation in a tube shape requires complex mathematics that changes per customer application. Benderlink for SolidWorks now allows operators to program their Bend Reduction formula into the program. This is the Bend Reduction Function editor:

Blinksw bendreductionfunction menu.jpg

The editor is very powerful because it allows you to enter action Pascal code to define the function that returns the adjusted arc lengths. This is an example bend reduction program included with Benderlink:


Sample Program

var
  BendAllowance: real;
  NewArc: real;
begin
  BendAllowance := 0.64;
  NewArc := ((BendAllowance * blinksw(OD) + (PI/2 * (blinksw(CLR)-0.5 * blinksw(OD) ))) / 90) * blinksw(BENDANGLE);
  //MessageDlg('New Arc Length: ' + floattostr(NewArc), mtInformation, [mbOK], 0);
  result := NewArc;
end;



Creating New Variables

Pascal is a strongly typed language that requires variables to be predefined in the "var" section like this:

var
  BendAllowance: real;
  NewArc: real;

Each variable is given a name like "BendAllowance" then its type is defined with a colon and the type. A few simple examples are:

var
  iValue: integer;
  bValue: boolean;
  rValue: real;
  szVal: string


All of this is placed before the "begin" statement.


Begin and End

Pascal starts and ends the actual formula section with the "begin" and "end" statements. They are required. Note that the "end;" statement has a semi-colon following.

begin

end;



Assignment

Assignment means "assigning a value to a variable." In Pascal, this is done using the ":=" symbol. The "=" alone is used for constants (which are not variable). So wherever you see the ":=" characters, you know that the code is assigning a value. BendAllowance is a "real" type variable and it is assigned the value of 0.64:

  BendAllowance := 0.64;




End of Statement Semi-Colon

Pascal uses the semi-colon to indicate the end of a statement. This allows for multi-line statements in Pascal. (BASIC uses the Carriage Return character to indicate the end of a line - so a statement can only be on a single line.)

Here are samples of how this works in Pascal. All of these have the same result because the semi-colon is used to indicate the end of the statement.

  BendAllowance := 0.64;
  BendAllowance
    := 0.64;
  BendAllowance
    :=
    0.64;



The Function's Result

The value returned is called the "result". At the bottom of the code (just before the "end;" line), the...

result := NewArc;
...line of code assigns the value in the NewArc variable to each arc length in Benderlink during conversion.


The function result type should be either "real", "double", or "extended" - which are all floating point types.

Accessing Benderlink's Values

There are three special functions that insert values from the bend data during conversion:

Insert the Outer Diameter

blinksw(OD)

Insert the Centerline Radius

blinksw(CLR)

Insert the Bend Angle

blinksw(BENDANGLE)

Each of these are should be formed as a complete word with no spaces between any of the characters.


Math Operators

Use the standard operators to form your formula:

  1. "+" and "-" are standard add and subtract
  2. "*" is multiplication
  3. "/" is floating point division
  4. "div" is integer division
  5. "(" and ")" control the order of operation

NewArc := ((BendAllowance * blinksw(OD) + (PI/2 * (blinksw(CLR)-0.5 * blinksw(OD) ))) / 90) * blinksw(BENDANGLE);



Notes In Code

Pascal allows these methods for putting note lines into code:

Use two forward slashes makes a line into a note line:

 // This is a note line



Use curly brackets for multiple lines of notes:

 {This is a note line}

or

 {This is a note line 1
  This is note line 2
  This is note line 3}



Mathematical Function List

These are the available math functions:

blinksw(OD)
blinksw(CLR)
blinksw(BENDANGLE)
sqr()
sqrt()
arctan()
cos()
sin()
tan()
abs()
exp()
ln()
log()
int()
frac()
trunc()
round()
arcsin()
arccos()
sign()
not()
PI
ArcCos()
ArcCosh()
ArcCot()
ArcCotH()
ArcCsc()
ArcCscH()
ArcSec()
ArcSecH()
ArcSin()
ArcSinh()
ArcTan2()
ArcTanh()
Cosecant()
Cosh()
Cot()
Cotan()
CotH()
Csc()
CscH()
CycleToDeg()
CycleToGrad()
CycleToRad()
DegToCycle()
DegToGrad()
DegToRad()
GradToCycle()
GradToDeg()
GradToRad()
Hypot()
IntPower()
IsInfinite()
IsNan()
Ldexp()
LnXP1()
Log10()
Log2()
LogN()
Max(
Min()
Power()
RadToCycle()
RadToDeg()
RadToGrad()
RandG()
RandomRange()
Sec()
Secant()
SecH()
Sinh()
Tan()
Tanh()