The Spc class gives you access to define spc 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 | Description |
| Spc.ROTATIONAL | Sketch rotational degrees of freedom. |
| Spc.TRANSLATIONAL | Sketch translational degrees of freedom. |
| Name | Description |
| Spc.NODE | SPC is *BOUNDARY_SPC_NODE. |
| Spc.SET | SPC is *BOUNDARY_SPC_SET. |
| Name | Type | Description |
| cid | integer | Coordinate system ID |
| dofrx | integer | Rotational constraint in local x direction |
| dofry | integer | Rotational constraint in local y direction |
| dofrz | integer | Rotational constraint in local z direction |
| dofx | integer | Translational constraint in local x direction |
| dofy | integer | Translational constraint in local y direction |
| dofz | integer | Translational constraint in local z direction |
| exists (read only) | logical | true if boundary SPC exists, false if referred to but not defined. |
| heading | string | Spc heading |
| id | logical | true if _ID option is set, false if not. |
| include | integer | The Include file number that the boundary SPC is in. |
| label | integer | Spc number. |
| model (read only) | integer | The Model number that the boundary SPC is in. |
| nid | integer | Node ID or node set ID |
| type | constant | The Spc type. Can be Spc.NODE or Spc.SET. |
| Name | Type | Description |
| bd_flag | logical | true if _BIRTH_DEATH option is set, false if not |
| birth | real | Activation time for constraint |
| death | real | Deactivation time for constraint |
Detailed DescriptionThe Spc class allows you to create, modify, edit and manipulate spc cards. See the documentation below for more details. |
Constructornew Spc(Model[Model], nid[integer], cid[integer], dofx[integer], dofy[integer], dofz[integer], dofrx[integer], dofry[integer], dofrz[integer], type[constant], label (optional)[integer], heading (optional)[string])DescriptionCreate a new Spc object. |
Model that spc will be created in
Node ID or node set ID
Coordinate system ID
Translational constraint in local x direction
Translational constraint in local y direction
Translational constraint in local z direction
Rotational constraint in local x direction
Rotational constraint in local y direction
Rotational constraint in local z direction
Specify the type of boundary spc (Can be Spc.NODE or Spc.SET)
Spc number
Title for the spc
ReturnsSpc object Return typeSpc |
ExampleTo create a new boundary spc in model m with label 200, of type SET var b = new Spc(m, 200, 0, 1, 0, 0, 1, 0, 0, Spc.SET, 200);
|
Details of functionsAssociateComment(Comment[Comment])DescriptionAssociates a comment with a boundary SPC. |
Comment that will be attached to the boundary SPC
ReturnsNo return value |
ExampleTo associate comment c to the boundary SPC s: s.AssociateComment(c);
|
Blank()DescriptionBlanks the boundary SPC |
No arguments
ReturnsNo return value |
ExampleTo blank boundary SPC s: s.Blank();
|
BlankAll(Model[Model], redraw (optional)[boolean]) [static]DescriptionBlanks all of the boundary SPCs in the model. |
Model that all boundary SPCs will be blanked in
If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().
ReturnsNo return value |
ExampleTo blank all of the boundary SPCs in model m: Spc.BlankAll(m);
|
BlankFlagged(Model[Model], flag[Flag], redraw (optional)[boolean]) [static]DescriptionBlanks all of the flagged boundary SPCs in the model. |
Model that all the flagged boundary SPCs will be blanked in
Flag set on the boundary SPCs that you want to blank
If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().
ReturnsNo return value |
ExampleTo blank all of the boundary SPCs in model m flagged with f: Spc.BlankFlagged(m, f);
|
Blanked()DescriptionChecks if the boundary SPC is blanked or not. |
No arguments
Returnstrue if blanked, false if not. Return typeBoolean |
ExampleTo check if boundary SPC s is blanked: if (s.Blanked() ) do_something...
|
ClearFlag(flag[Flag])DescriptionClears a flag on the boundary SPC. |
Flag to clear on the boundary SPC
ReturnsNo return value |
ExampleTo clear flag f for boundary SPC s: s.ClearFlag(f);
|
Copy(range (optional)[boolean])DescriptionCopies the boundary SPC. The target include of the copied boundary SPC 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().
ReturnsSpc object Return typeSpc |
ExampleTo copy boundary SPC s into boundary SPC z: var z = s.Copy();
|
DetachComment(Comment[Comment])DescriptionDetaches a comment from a boundary SPC. |
Comment that will be detached from the boundary SPC
ReturnsNo return value |
ExampleTo detach comment c from the boundary SPC s: s.DetachComment(c);
|
Error(message[string], details (optional)[string])DescriptionAdds an error for boundary SPC. 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 boundary SPC s: s.Error("My custom error");
|
First(Model[Model]) [static]DescriptionReturns the first boundary SPC in the model. |
Model to get first boundary SPC in
ReturnsSpc object (or null if there are no boundary SPCs in the model). Return typeSpc |
ExampleTo get the first boundary SPC in model m: var s = Spc.First(m);
|
FirstFreeLabel(Model[Model], layer (optional)[Include number]) [static]DescriptionReturns the first free boundary SPC label in the model. Also see Spc.LastFreeLabel(), Spc.NextFreeLabel() and Model.FirstFreeItemLabel(). |
Model to get first free boundary SPC 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).
ReturnsSpc label. Return typeNumber |
ExampleTo get the first free boundary SPC label in model m: var label = Spc.FirstFreeLabel(m);
|
FlagAll(Model[Model], flag[Flag]) [static]DescriptionFlags all of the boundary SPCs in the model with a defined flag. |
Model that all boundary SPCs will be flagged in
Flag to set on the boundary SPCs
ReturnsNo return value |
ExampleTo flag all of the boundary SPCs with flag f in model m: Spc.FlagAll(m, f);
|
Flagged(flag[Flag])DescriptionChecks if the boundary SPC is flagged or not. |
Flag to test on the boundary SPC
Returnstrue if flagged, false if not. Return typeBoolean |
ExampleTo check if boundary SPC s has flag f set on it: if (s.Flagged(f) ) do_something...
|
ForEach(Model[Model], func[function], extra (optional)[any]) [static]DescriptionCalls a function for each boundary SPC in the model. |
Model that all boundary SPCs are in
Function to call for each boundary SPC
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 Spc objects or properties for all of the boundary SPCs in a model in PRIMER. If the optional property argument is not given then an array of Spc objects is returned. If the property argument is given, that property value for each boundary SPC is returned in the array instead of a Spc object |
Model to get boundary SPCs from
Name for property to get for all boundary SPCs in the model
ReturnsArray of Spc objects or properties Return typeArray |
GetComments()DescriptionExtracts the comments associated to a boundary SPC. |
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 boundary SPC s: var comm_array = s.GetComments();
|
GetFlagged(Model[Model], flag[Flag], property (optional)[string]) [static]DescriptionReturns an array of Spc objects for all of the flagged boundary SPCs in a model in PRIMER If the optional property argument is not given then an array of Spc objects is returned. If the property argument is given, then that property value for each boundary SPC is returned in the array instead of a Spc object |
Model to get boundary SPCs from
Flag set on the boundary SPCs that you want to retrieve
Name for property to get for all flagged boundary SPCs in the model
ReturnsArray of Spc objects or properties Return typeArray |
GetFromID(Model[Model], number[integer]) [static]DescriptionReturns the Spc object for a boundary SPC ID. |
Model to find the boundary SPC in
number of the boundary SPC you want the Spc object for
ReturnsSpc object (or null if boundary SPC does not exist). Return typeSpc |
ExampleTo get the Spc object for boundary SPC 100 in model m var s = Spc.GetFromID(m, 100);
|
GetParameter(prop[string])DescriptionChecks if a Spc 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 Spc.ViewParameters() method and 'method chaining' (see the examples below). |
boundary SPC property to get parameter for
ReturnsParameter object if property is a parameter, null if not. Return typeParameter |
Keyword()DescriptionReturns the keyword for this spc (*BOUNDARY_SPC_xxxx). Note that a carriage return is not added. See also Spc.KeywordCards() |
No arguments
Returnsstring containing the keyword. Return typeString |
ExampleTo get the keyword for spc s: var key = s.Keyword();
|
KeywordCards()DescriptionReturns the keyword cards for the spc. Note that a carriage return is not added. See also Spc.Keyword() |
No arguments
Returnsstring containing the cards. Return typeString |
ExampleTo get the cards for spc s: var cards = s.KeywordCards();
|
Last(Model[Model]) [static]DescriptionReturns the last boundary SPC in the model. |
Model to get last boundary SPC in
ReturnsSpc object (or null if there are no boundary SPCs in the model). Return typeSpc |
ExampleTo get the last boundary SPC in model m: var s = Spc.Last(m);
|
LastFreeLabel(Model[Model], layer (optional)[Include number]) [static]DescriptionReturns the last free boundary SPC label in the model. Also see Spc.FirstFreeLabel(), Spc.NextFreeLabel() and see Model.LastFreeItemLabel() |
Model to get last free boundary SPC 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.
ReturnsSpc label. Return typeNumber |
ExampleTo get the last free boundary SPC label in model m: var label = Spc.LastFreeLabel(m);
|
Next()DescriptionReturns the next boundary SPC in the model. |
No arguments
ReturnsSpc object (or null if there are no more boundary SPCs in the model). Return typeSpc |
ExampleTo get the boundary SPC in model m after boundary SPC s: var s = s.Next();
|
NextFreeLabel(Model[Model], layer (optional)[Include number]) [static]DescriptionReturns the next free (highest+1) boundary SPC label in the model. Also see Spc.FirstFreeLabel(), Spc.LastFreeLabel() and Model.NextFreeItemLabel() |
Model to get next free boundary SPC 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).
ReturnsSpc label. Return typeNumber |
ExampleTo get the next free boundary SPC label in model m: var label = Spc.NextFreeLabel(m);
|
Pick(prompt[string], limit (optional)[Model or Flag], modal (optional)[boolean], button text (optional)[string]) [static]DescriptionAllows the user to pick a boundary SPC. |
Text to display as a prompt to the user
If the argument is a Model then only boundary SPCs from that model can be picked. If the argument is a Flag then only boundary SPCs that are flagged with limit can be selected. If omitted, or null, any boundary SPCs from any model can be selected. from any model.
If picking is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the pick will be modal.
By default the window with the prompt will have a button labelled 'Cancel' which if pressed will cancel the pick and return null. If you want to change the text on the button use this argument. If omitted 'Cancel' will be used.
ReturnsSpc object (or null if not picked) Return typeSpc |
ExampleTo pick a boundary SPC from model m giving the prompt 'Pick boundary SPC from screen': var s = Spc.Pick('Pick boundary SPC from screen', m);
|
Previous()DescriptionReturns the previous boundary SPC in the model. |
No arguments
ReturnsSpc object (or null if there are no more boundary SPCs in the model). Return typeSpc |
ExampleTo get the boundary SPC in model m before boundary SPC s: var s = s.Previous();
|
RenumberAll(Model[Model], start[integer]) [static]DescriptionRenumbers all of the boundary SPCs in the model. |
Model that all boundary SPCs will be renumbered in
Start point for renumbering
ReturnsNo return value |
ExampleTo renumber all of the boundary SPCs in model m, from 1000000: Spc.RenumberAll(m, 1000000);
|
RenumberFlagged(Model[Model], flag[Flag], start[integer]) [static]DescriptionRenumbers all of the flagged boundary SPCs in the model. |
Model that all the flagged boundary SPCs will be renumbered in
Flag set on the boundary SPCs that you want to renumber
Start point for renumbering
ReturnsNo return value |
ExampleTo renumber all of the boundary SPCs in model m flagged with f, from 1000000: Spc.RenumberFlagged(m, f, 1000000);
|
Select(flag[Flag], prompt[string], limit (optional)[Model or Flag], modal (optional)[boolean]) [static]DescriptionAllows the user to select boundary SPCs using standard PRIMER object menus. |
Flag to use when selecting boundary SPCs
Text to display as a prompt to the user
If the argument is a Model then only boundary SPCs from that model can be selected. If the argument is a Flag then only boundary SPCs that are flagged with limit can be selected (limit should be different to flag). If omitted, or null, any boundary SPCs 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 boundary SPCs selected or null if menu cancelled Return typeNumber |
SetFlag(flag[Flag])DescriptionSets a flag on the boundary SPC. |
Flag to set on the boundary SPC
ReturnsNo return value |
ExampleTo set flag f for boundary SPC s: s.SetFlag(f);
|
Sketch(type[constant], redraw (optional)[boolean])DescriptionSketches the Boundary SPC. The SPC will be sketched until you do a graphics update or delete the model |
Type of constraints to be drawn. Can be Spc.TRANSLATIONAL or Spc.ROTATIONAL.
If set to true (or omitted) the plot will be redrawn each time. If sketching a large number of items, efficiency will be gained by setting the argument to false for all but the last item sketched. The final call will redraw.
ReturnsNo return value |
ExampleTo sketch SPC s - Translational constraint s1.Sketch(Spc.TRANSLATIONAL, false);
s2.Sketch(Spc.TRANSLATIONAL, false);
s3.Sketch(Spc.TRANSLATIONAL, true);
|
SketchFlagged(type[integer], Model[Model], flag[Flag]) [static]DescriptionSketches all the flagged boundary SPCs in the model and update the plot. The SPCs will be sketched until you do a graphics update or delete the model. |
Type of constraints to be drawn. Can be Spc.TRANSLATIONAL or Spc.ROTATIONAL.
Model that all the flagged boundary SPCs will be sketched in
Flag set on the boundary SPCs that you want to sketch
ReturnsNo return value |
ExampleTo sketch translational SPCs flagged with f in model m and redraw Spc.SketchFlagged(Spc.TRANSLATIONAL, m, f);
|
Total(Model[Model], exists (optional)[boolean]) [static]DescriptionReturns the total number of boundary SPCs in the model. |
Model to get total for
true if only existing boundary SPCs should be counted. If false or omitted referenced but undefined boundary SPCs will also be included in the total.
Returnsnumber of boundary SPCs Return typeNumber |
ExampleTo get the total number of boundary SPCs in model m: var total = Spc.Total(m);
|
Unblank()DescriptionUnblanks the boundary SPC |
No arguments
ReturnsNo return value |
ExampleTo unblank boundary SPC s: s.Unblank();
|
UnblankAll(Model[Model], redraw (optional)[boolean]) [static]DescriptionUnblanks all of the boundary SPCs in the model. |
Model that all boundary SPCs will be unblanked in
If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().
ReturnsNo return value |
ExampleTo unblank all of the boundary SPCs in model m: Spc.UnblankAll(m);
|
UnblankFlagged(Model[Model], flag[Flag], redraw (optional)[boolean]) [static]DescriptionUnblanks all of the flagged boundary SPCs in the model. |
Model that the flagged boundary SPCs will be unblanked in
Flag set on the boundary SPCs that you want to unblank
If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().
ReturnsNo return value |
ExampleTo unblank all of the boundary SPCs in model m flagged with f: Spc.UnblankFlagged(m, f);
|
UnflagAll(Model[Model], flag[Flag]) [static]DescriptionUnsets a defined flag on all of the boundary SPCs in the model. |
Model that the defined flag for all boundary SPCs will be unset in
Flag to unset on the boundary SPCs
ReturnsNo return value |
ExampleTo unset the flag f on all the boundary SPCs in model m: Spc.UnflagAll(m, f);
|
Unsketch(redraw (optional)[boolean])DescriptionUnsketches the Spc. |
If set to true (or omitted) the plot will be redrawn each time. If unsketching a large number of items, efficiency will be gained by setting the argument to false for all but the last item unsketched. The final call will redraw.
ReturnsNo return value |
ExampleTo unsketch SPC s: s.Unsketch();
|
UnsketchAll(Model[Model]) [static]DescriptionUnsketches all SPCs. |
Model that all SPCs will be unblanked in
ReturnsNo return value |
ExampleTo unsketch all SPCs in model m and redraw: SPC.UnsketchAll(m);
|
UnsketchFlagged(Model[Model], flag[Flag]) [static]DescriptionUnsketches all flagged SPCs. |
Model that all SPCs will be unsketched in
Flag set on the SPCs that you want to unsketch
ReturnsNo return value |
ExampleTo unsketch all SPCs in model m which are flagged with f and redraw: SPC.UnsketchFlagged(m, f);
|
No arguments
ReturnsSpc object. Return typeSpc |
ExampleTo check if Spc property s.example is a parameter by using the Spc.GetParameter() method: if (s.ViewParameters().GetParameter(s.example) ) do_something...
|
Warning(message[string], details (optional)[string])DescriptionAdds a warning for boundary SPC. 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 boundary SPC s: s.Warning("My custom warning");
|
Xrefs()DescriptionReturns the cross references for this boundary SPC. |
No arguments
ReturnsXrefs object. Return typeXrefs |
ExampleTo get the cross references for boundary SPC s: var xrefs = s.Xrefs();
|
toString()DescriptionCreates a string containing the spc data in keyword format. Note that this contains the keyword header and the keyword cards. See also Spc.Keyword() and Spc.KeywordCards(). |
No arguments
Returnsstring Return typeString |
ExampleTo get data for spc s in keyword format var str = s.toString();
|