The Curve class gives you access to load curve cards in PRIMER. More...
The PRIMER JavaScript API provides many class constants, properties and methods. For Arup to
be able to extend and enhance the API in the future any constant, property or method names beginning with a lowercase
or uppercase letter are reserved.
If you need to add your own properties or methods to one of the existing classes then to avoid any potential future conflict you
should ensure that the name begins with either an underscore (_) or a dollar sign ($) or the name is prefixed with your
own unique identifier.
For example if company 'ABC' need to add a property called 'example' then to avoid any potential future conflict use one of:
| Name | Type | Description |
| dattyp | integer | Data type |
| dist | real | Total distance tool will travel |
| exists (read only) | logical | true if curve exists, false if referred to but not defined. |
| function | string | Function expression for Curve.CURVE_FUNCTION |
| heading | string | Curve heading |
| include | integer | The Include file number that the curve is in. |
| label | integer | Curve number. Also see the lcid property which is an alternative name for this. |
| lcid | integer | Curve number. Also see the label property which is an alternative name for this. |
| lcint | integer | Number of discretization points for the curve |
| model (read only) | integer | The Model number that the curve is in. |
| ncurves | integer | Number of points in curve or number of curves in table. The npoints property is an alternative name for this. (read only for tables) |
| npoints | integer | Number of points in curve or number of curves in table. The ncurves property is an alternative name for this. (read only for tables) |
| offa | real | Offset for abscissa values |
| offo | real | Offset for ordinate values |
| sfa | real | Scale factor on abscissa value |
| sfo | real | Scale factor on ordinate value |
| sidr | integer | Stress initialisation by dynamic relaxation |
| tend | real | Time curve returns to zero |
| trise | real | Rise time |
| tstart | real | Time curve starts to rise |
| type | constant | Load curve type (Can be Curve.CURVE, Curve.CURVE_FUNCTION, Curve.SMOOTH, Curve.FUNCTION or Curve.TABLE). |
| version | string | Version for discretization. Can be blank, "3858" or "5434a" |
| vmax | real | Maximum velocity |
Detailed DescriptionThe Curve class allows you to create, modify, edit and manipulate curve cards. See the documentation below for more details. |
Constructornew Curve(Model[Model], options [object])DescriptionCreate a new Curve object. |
Model that curve will be created in
Options for creating the curve
Object has the following properties:
| Name | Type | Description |
| dattyp (optional) | integer | Data type |
| dist (Type of load curve must be Curve.CURVE_SMOOTH) (optional) | real | Total distance tool will travel |
| function (load curve type has to be Curve.FUNCTION or Curve.CURVE_FUNCTION) (optional) | string | Function expression |
| heading (optional) | string | Title for the curve |
| lcid | integer | Curve number |
| lcint (optional) | integer | Data type |
| offa (optional) | real | Offset on abscissa value |
| offo (optional) | real | Offset on ordinate value |
| sfa (optional) | real | Scale factor on abscissa value |
| sfo (optional) | real | Scale factor on ordinate value |
| sidr (optional) | integer | Stress initialisation by dynamic relaxation |
| tend (Type of load curve must be Curve.CURVE_SMOOTH) (optional) | real | Time curve returns to zero |
| trise (Type of load curve must be Curve.CURVE_SMOOTH) (optional) | real | Rise time |
| tstart (Type of load curve must be Curve.CURVE_SMOOTH) (optional) | real | Time curve starts to rise |
| type | constant | Type of load curve. Can be Curve.CURVE, Curve.TABLE, Note this does not have to be defined. In previous versions of PRIMER you could only construct a basic load curve type, therefore the type argument was not used. PRIMER is still backwards compatible with this method of load curve creation. |
| vmax (Type of load curve must be Curve.CURVE_SMOOTH) (optional) | real | Maximum velocity |
ReturnsCurve object Return typeCurve |
new Curve(Load curve type[constant], Model[Model], lcid[integer], sidr (optional)[integer], sfa (optional)[real], sfo (optional)[real], offa (optional)[real], offo (optional)[real], dattyp (optional)[integer], heading (optional)[string], lcint (optional)[integer]) [deprecated]This function is deprecated in version 21.0. It is only provided to keep old scripts working. We strongly advise against using it in new scripts. Support may be removed in future versions. DescriptionCreate a new Curve object. |
Type of load curve. Can be Curve.CURVE, Curve.TABLE, Note this does not have to be defined. In previous versions of PRIMER you could only construct a basic load curve type, therefore the type argument was not used. PRIMER is still backwards compatible with this method of load curve creation.
Model that curve will be created in
Curve number
Stress initialisation by dynamic relaxation
Scale factor on abscissa value
Scale factor on ordinate value
Offset on abscissa value
Offset on ordinate value
Data type
Title for the curve
Number of discretization points for the curve
ReturnsCurve object Return typeCurve |
ExampleTo create a new curve in model m with label 200 var l = new Curve(Curve.CURVE, m, 200);
|
new Curve(Load curve type[constant], Model[Model], lcid[integer], sidr (optional)[integer], function (optional)[string], heading (optional)[string]) [deprecated]This function is deprecated in version 21.0. It is only provided to keep old scripts working. We strongly advise against using it in new scripts. Support may be removed in future versions. DescriptionCreate a new Curve *DEFINE_CURVE_FUNCTION object. |
Type of load curve. Must be Curve.CURVE_FUNCTION.
Model that curve will be created in
Curve number
Stress initialisation by dynamic relaxation
Function expression
Title for the curve
ReturnsCurve object Return typeCurve |
new Curve(Load curve type[constant], Model[Model], lcid[integer], function (optional)[string], heading (optional)[string]) [deprecated]This function is deprecated in version 21.0. It is only provided to keep old scripts working. We strongly advise against using it in new scripts. Support may be removed in future versions. DescriptionCreate a new Curve *DEFINE_FUNCTION object. |
Type of load curve. Must be Curve.FUNCTION.
Model that curve will be created in
Curve number
Function expression
Title for the curve
ReturnsCurve object Return typeCurve |
new Curve(Load curve type[constant], Model[Model], lcid[integer], sidr (optional)[integer], dist (optional)[real], tstart (optional)[real], tend (optional)[real], trise (optional)[real], vmax (optional)[real], heading (optional)[string]) [deprecated]This function is deprecated in version 21.0. It is only provided to keep old scripts working. We strongly advise against using it in new scripts. Support may be removed in future versions. DescriptionCreate a new Curve *DEFINE_CURVE_SMOOTH object. |
Type of load curve. Must be Curve.CURVE_SMOOTH.
Model that curve will be created in
Curve number
Stress initialisation by dynamic relaxation
Total distance tool will travel
Time curve starts to rise
Time curve returns to zero
Rise time
Maximum velocity
Title for the curve
ReturnsCurve object Return typeCurve |
ExampleTo create a new curve function in model m with label 200' (example from keyword manual) var l = new Curve(Curve.CURVE_SMOOTH, m, 200);
|
Details of functionsAddPoint(xvalue[real], yvalue[real])DescriptionAdds a point to a load curve. |
The x value of the point.
The y value of the point.
ReturnsNo return value. |
ExampleTo add a point with values of x=3 and y=5 to curve l: l.AddPoint(3, 5);
|
AddTableEntry(value[real], load curve[integer])DescriptionAdds an entry line to a table. |
The value for for this entry in the table.
The load curve corresponding to the defined value.
ReturnsNo return value. |
ExampleTo add an entry with a value of 3 for load curve 1000: l.AddTableEntry(3, 1000);
|
AssociateComment(Comment[Comment])DescriptionAssociates a comment with a curve. |
Comment that will be attached to the curve
ReturnsNo return value |
ExampleTo associate comment c to the curve c: c.AssociateComment(c);
|
Browse(modal (optional)[boolean])DescriptionStarts an edit panel in Browse mode. |
If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.
Returnsno return value |
ExampleTo Browse curve c: c.Browse();
|
ClearFlag(flag[Flag])DescriptionClears a flag on the curve. |
Flag to clear on the curve
ReturnsNo return value |
ExampleTo clear flag f for curve c: c.ClearFlag(f);
|
Copy(range (optional)[boolean])DescriptionCopies the curve. The target include of the copied curve can be set using Options.copy_target_include. |
If you want to keep the copied item in the range specified for the current include. Default value is false. To set current include, use Include.MakeCurrentLayer().
ReturnsCurve object Return typeCurve |
ExampleTo copy curve c into curve z: var z = c.Copy();
|
Create(Model[Model], modal (optional)[boolean]) [static]DescriptionStarts an interactive editing panel to create a curve. |
Model that the curve will be created in
If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.
ReturnsCurve object (or null if not made) Return typeCurve |
ExampleTo start creating a curve in model m: var l = Curve.Create(m);
|
CreateTable(Model[Model], modal (optional)[boolean]) [static]DescriptionStarts an interactive editing panel to create a table. |
Model that the curve will be created in
If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.
ReturnsCurve object (or null if not made) Return typeCurve |
ExampleTo start creating a table in model m: var l = Curve.CreateTable(m);
|
DetachComment(Comment[Comment])DescriptionDetaches a comment from a curve. |
Comment that will be detached from the curve
ReturnsNo return value |
ExampleTo detach comment c from the curve c: c.DetachComment(c);
|
Edit(modal (optional)[boolean])DescriptionStarts an interactive editing panel. |
If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.
Returnsno return value |
ExampleTo Edit curve c: c.Edit();
|
Error(message[string], details (optional)[string])DescriptionAdds an error for curve. For more details on checking see the Check class. |
The error message to give
An optional detailed error message
ReturnsNo return value |
ExampleTo add an error message "My custom error" for curve c: c.Error("My custom error");
|
First(Model[Model]) [static]DescriptionReturns the first curve in the model. |
Model to get first curve in
ReturnsCurve object (or null if there are no curves in the model). Return typeCurve |
ExampleTo get the first curve in model m: var c = Curve.First(m);
|
FirstFreeLabel(Model[Model], layer (optional)[Include number]) [static]DescriptionReturns the first free curve label in the model. Also see Curve.LastFreeLabel(), Curve.NextFreeLabel() and Model.FirstFreeItemLabel(). |
Model to get first free curve label in
Include file (0 for the main file) to search for labels in (Equivalent to First free in layer in editing panels). If omitted the whole model will be used (Equivalent to First free in editing panels).
ReturnsCurve label. Return typeNumber |
ExampleTo get the first free curve label in model m: var label = Curve.FirstFreeLabel(m);
|
FlagAll(Model[Model], flag[Flag]) [static]DescriptionFlags all of the curves in the model with a defined flag. |
Model that all curves will be flagged in
Flag to set on the curves
ReturnsNo return value |
ExampleTo flag all of the curves with flag f in model m: Curve.FlagAll(m, f);
|
Flagged(flag[Flag])DescriptionChecks if the curve is flagged or not. |
Flag to test on the curve
Returnstrue if flagged, false if not. Return typeBoolean |
ExampleTo check if curve c has flag f set on it: if (c.Flagged(f) ) do_something...
|
ForEach(Model[Model], func[function], extra (optional)[any]) [static]DescriptionCalls a function for each curve in the model. |
Model that all curves are in
Function to call for each curve
An optional extra object/array/string etc that will appended to arguments when calling the function
ReturnsNo return value |
GetAll(Model[Model], property (optional)[string]) [static]DescriptionReturns an array of Curve objects or properties for all of the curves in a model in PRIMER. If the optional property argument is not given then an array of Curve objects is returned. If the property argument is given, that property value for each curve is returned in the array instead of a Curve object |
Model to get curves from
Name for property to get for all curves in the model
ReturnsArray of Curve objects or properties Return typeArray |
GetComments()DescriptionExtracts the comments associated to a curve. |
No arguments
ReturnsArray of Comment objects (or null if there are no comments associated to the node). Return typeArray |
ExampleTo get the array of comments associated to the curve c: var comm_array = c.GetComments();
|
GetFlagged(Model[Model], flag[Flag], property (optional)[string]) [static]DescriptionReturns an array of Curve objects for all of the flagged curves in a model in PRIMER If the optional property argument is not given then an array of Curve objects is returned. If the property argument is given, then that property value for each curve is returned in the array instead of a Curve object |
Model to get curves from
Flag set on the curves that you want to retrieve
Name for property to get for all flagged curves in the model
ReturnsArray of Curve objects or properties Return typeArray |
GetFromID(Model[Model], number[integer]) [static]DescriptionReturns the Curve object for a curve ID. |
Model to find the curve in
number of the curve you want the Curve object for
ReturnsCurve object (or null if curve does not exist). Return typeCurve |
ExampleTo get the Curve object for curve 100 in model m var c = Curve.GetFromID(m, 100);
|
GetParameter(prop[string])DescriptionChecks if a Curve property is a parameter or not. Note that object properties that are parameters are normally returned as the integer or float parameter values as that is virtually always what the user would want. For this function to work the JavaScript interpreter must use the parameter name instead of the value. This can be done by setting the Options.property_parameter_names option to true before calling the function and then resetting it to false afterwards.. This behaviour can also temporarily be switched by using the Curve.ViewParameters() method and 'method chaining' (see the examples below). |
curve property to get parameter for
ReturnsParameter object if property is a parameter, null if not. Return typeParameter |
GetPoint(row[integer])DescriptionReturns x and y data for a point in a curve |
The row point you want the data for. Note that curve points start at 0, not 1.
ReturnsAn array containing the x coordinate and the y coordinate. Return typeArray |
ExampleTo get the curve data for the 3rd point for curve l: if (l.npoints >= 3)
{
var point_data = l.GetPoint(2);
}
|
GetTableEntry(row[integer])DescriptionReturns the value and curve label for a row in a table |
The row point you want the data for. Note that curve points start at 0, not 1.
ReturnsAn array containing the value and the load curve label. Return typeArray |
ExampleTo get the data for the 3rd point for table t: if (t.npoints >= 3)
{
var row_data = t.GetTableEntry(2);
}
|
InsertPoint(ipt[integer], xvalue[real], yvalue[real], position[integer])DescriptionInserts point values before or after a specified row of data on a load curve. |
The row you want to insert the data before or after. Note that the row data starts at 0, not 1.
The x value of the point.
The y value of the point.
Specify either before or after the selected row. Use 'Curve.BEFORE' for before, and 'Curve.AFTER' for after.
ReturnsNo return value. |
ExampleTo insert the values after the 3rd row to x=3, y=5 for curve l: l.InsertPoint(2, 3, 5, Curve.AFTER);
|
InsertTableEntry(ipt[integer], value[real], lcid[integer], position[integer])DescriptionInserts a table row before or after a specified row of data on a table. |
The row you want to insert the data before or after. Note that the row data starts at 0, not 1.
The value of the row.
The load curve corresponding to the defined value.
Specify either before or after the selected row. Use 'Curve.BEFORE' for before, and 'Curve.AFTER' for after.
ReturnsNo return value. |
ExampleTo insert the values after the 3rd row to value=3, lcur=5 for table t: t.InsertTableEntry(2, 3, 5, Curve.AFTER);
|
Keyword()DescriptionReturns the keyword for this curve (*DEFINE_CURVE_xxxx). Note that a carriage return is not added. See also Curve.KeywordCards() |
No arguments
Returnsstring containing the keyword. Return typeString |
ExampleTo get the keyword for curve l: var key = l.Keyword();
|
KeywordCards()DescriptionReturns the keyword cards for the curve. Note that a carriage return is not added. See also Curve.Keyword() |
No arguments
Returnsstring containing the cards. Return typeString |
ExampleTo get the cards for curve l: var cards = l.KeywordCards();
|
Last(Model[Model]) [static]DescriptionReturns the last curve in the model. |
Model to get last curve in
ReturnsCurve object (or null if there are no curves in the model). Return typeCurve |
ExampleTo get the last curve in model m: var c = Curve.Last(m);
|
LastFreeLabel(Model[Model], layer (optional)[Include number]) [static]DescriptionReturns the last free curve label in the model. Also see Curve.FirstFreeLabel(), Curve.NextFreeLabel() and see Model.LastFreeItemLabel() |
Model to get last free curve label in
Include file (0 for the main file) to search for labels in (Equivalent to Highest free in layer in editing panels). If omitted the whole model will be used.
ReturnsCurve label. Return typeNumber |
ExampleTo get the last free curve label in model m: var label = Curve.LastFreeLabel(m);
|
Next()DescriptionReturns the next curve in the model. |
No arguments
ReturnsCurve object (or null if there are no more curves in the model). Return typeCurve |
ExampleTo get the curve in model m after curve c: var c = c.Next();
|
NextFreeLabel(Model[Model], layer (optional)[Include number]) [static]DescriptionReturns the next free (highest+1) curve label in the model. Also see Curve.FirstFreeLabel(), Curve.LastFreeLabel() and Model.NextFreeItemLabel() |
Model to get next free curve label in
Include file (0 for the main file) to search for labels in (Equivalent to Highest+1 in layer in editing panels). If omitted the whole model will be used (Equivalent to Highest+1 in editing panels).
ReturnsCurve label. Return typeNumber |
ExampleTo get the next free curve label in model m: var label = Curve.NextFreeLabel(m);
|
Previous()DescriptionReturns the previous curve in the model. |
No arguments
ReturnsCurve object (or null if there are no more curves in the model). Return typeCurve |
ExampleTo get the curve in model m before curve c: var c = c.Previous();
|
RemovePoint(row[integer])DescriptionRemoves a row of data from a curve |
The row point you want to remove. Note that curve points start at 0, not 1.
ReturnsNo return value. |
ExampleTo remove the curve data for the 3rd point for curve l: if (l.npoints >= 3)
{
var point_data = l.RemovePoint(2);
}
|
RemoveTableEntry(ipt[integer])DescriptionRemoves the value and loadcurve values for a specified row of data on a load curve. |
The row you want to remove the data for. Note that the row data starts at 0, not 1.
ReturnsNo return value. |
ExampleTo remove an entry at row 4: t.RemoveTableEntry(4);
|
RenumberAll(Model[Model], start[integer]) [static]DescriptionRenumbers all of the curves in the model. |
Model that all curves will be renumbered in
Start point for renumbering
ReturnsNo return value |
ExampleTo renumber all of the curves in model m, from 1000000: Curve.RenumberAll(m, 1000000);
|
RenumberFlagged(Model[Model], flag[Flag], start[integer]) [static]DescriptionRenumbers all of the flagged curves in the model. |
Model that all the flagged curves will be renumbered in
Flag set on the curves that you want to renumber
Start point for renumbering
ReturnsNo return value |
ExampleTo renumber all of the curves in model m flagged with f, from 1000000: Curve.RenumberFlagged(m, f, 1000000);
|
Select(flag[Flag], prompt[string], limit (optional)[Model or Flag], modal (optional)[boolean]) [static]DescriptionAllows the user to select curves using standard PRIMER object menus. |
Flag to use when selecting curves
Text to display as a prompt to the user
If the argument is a Model then only curves from that model can be selected. If the argument is a Flag then only curves that are flagged with limit can be selected (limit should be different to flag). If omitted, or null, any curves can be selected. from any model.
If selection is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the selection will be modal.
ReturnsNumber of curves selected or null if menu cancelled Return typeNumber |
SetFlag(flag[Flag])DescriptionSets a flag on the curve. |
Flag to set on the curve
ReturnsNo return value |
ExampleTo set flag f for curve c: c.SetFlag(f);
|
SetPoint(ipt[integer], xvalue[real], yvalue[real])DescriptionSets the x and y values for a specified row of data on a load curve. |
The row you want to set the data for. Note that the row data starts at 0, not 1.
The x value of the point.
The y value of the point.
ReturnsNo return value. |
ExampleTo set the values for the 3rd row to x=3, y=5 for curve l: l.SetPoint(2, 3, 5);
|
SetTableEntry(ipt[integer], value[real], load curve[integer])DescriptionSets the value and loadcurve values for a specified row of data on a load curve. |
The row you want to set the data for. Note that the row data starts at 0, not 1.
The value for for this entry in the table.
The load curve corresponding to the defined value.
ReturnsNo return value. |
ExampleTo add an entry with a value of 3 for load curve 1000 at row 4: t.SetTableEntry(4, 3, 1000);
|
Total(Model[Model], exists (optional)[boolean]) [static]DescriptionReturns the total number of curves in the model. |
Model to get total for
true if only existing curves should be counted. If false or omitted referenced but undefined curves will also be included in the total.
Returnsnumber of curves Return typeNumber |
ExampleTo get the total number of curves in model m: var total = Curve.Total(m);
|
UnflagAll(Model[Model], flag[Flag]) [static]DescriptionUnsets a defined flag on all of the curves in the model. |
Model that the defined flag for all curves will be unset in
Flag to unset on the curves
ReturnsNo return value |
ExampleTo unset the flag f on all the curves in model m: Curve.UnflagAll(m, f);
|
No arguments
ReturnsCurve object. Return typeCurve |
ExampleTo check if Curve property c.example is a parameter by using the Curve.GetParameter() method: if (c.ViewParameters().GetParameter(c.example) ) do_something...
|
Warning(message[string], details (optional)[string])DescriptionAdds a warning for curve. For more details on checking see the Check class. |
The warning message to give
An optional detailed warning message
ReturnsNo return value |
ExampleTo add a warning message "My custom warning" for curve c: c.Warning("My custom warning");
|
Xrefs()DescriptionReturns the cross references for this curve. |
No arguments
ReturnsXrefs object. Return typeXrefs |
ExampleTo get the cross references for curve c: var xrefs = c.Xrefs();
|
toString()DescriptionCreates a string containing the curve data in keyword format. Note that this contains the keyword header and the keyword cards. See also Curve.Keyword() and Curve.KeywordCards(). |
No arguments
Returnsstring Return typeString |
ExampleTo get data for curve l in keyword format var l = d.toString();
|