*SetBush() - asymmetric bushing pair with user subroutine

Sets the properties of an asymmetric bushing pair with a user subroutine.

Syntax

*SetBush(bush_name, , GFORCE|VFORCE|VTORQUE|FIELD, 
                               `solver_expr_l`, 
                               `solver_expr_r`) 
*Set(bush_name.l.use_local_dll,TRUE|FALSE) 
*Set(bush_name.r.use_local_dll,TRUE|FALSE) 
*Set(bush.l.local_dll,"string") 
*Set(bush.r.local_dll,"string")

Arguments

bush_name
The variable name of an existing bushing pair.
Data type: varname
GFORCE| VFORCE| VTORQUE| FIELD
This argument indicates the type of user subroutine that is used to define bushing properties.
solver_expr_l
A solver expression enclosed in back quotes to specify arguments for the user subroutine for the left bushing.
Data type: string
solver_expr_2
A solver expression enclosed in back quotes to specify arguments for the user subroutine for the right bushing.
Data type: string
bush_name.l.use_local_dll bush_name.r.use_local_dll
Specifies if a user subroutine DLL specific to the instance of one bushing pair entity is to be used.
Data type: boolean
bush_name.r.local_dll
The path and filename for the user subroutine DLL to be used with an instance of the user defined bushing pair.
Data type: string

Example

*BushPair( bsh_strut, "Strut upr bush", b_strut, 
 b_frame, 
 p_strut_upr )
*Curve(c_ax, "Strut axial rate")
*SetBush(bsh_strut, , GFORCE, 
 `USER(1, { bsh_strut.l.i.id, %d }, 
 { bsh_strut.l.j.id, %d }, 
 { cr() }, `
 ` 3000, 3000, -{ c_ax.id, %d }, 
 { cr() }, `
 ` 50000, 50000, 10000)`, 
 `USER(1, { bsh_strut.r.i.id, %d }, 
 { bsh_strut.r.j.id, %d }, 
 { cr() }, `
 ` 3000, 3000, -{ c_ax.id, %d }, 
 { cr() }, `
 ` 50000, 50000, 10000)`)

Context

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

Comments

When using user subroutines to compute the properties of a bushing pair, symmetry can no longer be enforced on the bushing pair.

Bushing properties can be computed with user subroutines of type GFOSUB, VFOSUB, VTOSUB, or FIESUB. A user executable must be created when using these subroutines. The solver expression specified follows Templex syntax where all the variables to be evaluated are enclosed in braces {} and the rest of the expression is treated as literal.