Let a continuous beam turn on what it crosses
set_scissor_hingeLet a continuous beam turn or slide on the members it crosses (a scissor hinge, engine 0.2.68), with no link member or extra node: a rail resting on beams, a bracing pair crossing at a bolt. Name the beam by member_ids (or an existing member_set_id) and give the releases. Returns the model.
releases is an object over tx, ty, tz (translations) and rx, ry, rz (rotations): 0.0 FREES that axis, a positive number is a spring between the beam and the node (force/length for t*, forcelength/rad for r), and an axis you do not name is HELD — the same tristate as a member hinge. {"rz":0.0} lets a beam in the XY plane turn on what it crosses; {"tx":0.0} lets it slide along X.
The hinge goes on a MEMBER SET and applies wherever one of the set's members meets a member OUTSIDE the set (or a plate). Inside the set the members stay joined to each other, so the beam stays continuous. A set holding every member meets nothing and the solver refuses it, so when no set holds exactly these members they leave their sets for a new one; info lists the sets they were taken from. at_nodes limits the hinge to those nodes of the beam (a rail that slides over its first post only); omit it for every crossing.
axes: "Global" (the default) or {"User":{"x":[...],"y":[...]}} for a rack turned in plan — the first axis runs along x, the second along y made square to it. "Local" is refused: the set's members need not share one.
Supports and nodal loads at a released node act on the members outside the set, and a node's reported displacement is theirs; the beam's own motion there is in its members' local end displacements. The solver refuses a member point load or moment exactly at a released end of the beam. In second order, a model with scissor hinges takes the corotational correction only when analysis.options.nonlinear_method is COROTATIONAL. The model is written with schema_version 3, so an engine older than 0.2.68 refuses it instead of solving every crossing rigid. scissor_hinge_id reuses (and with releases or axes, rewrites) one definition for several beams; clear:true takes the hinge off the beam's set.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| axes | No | "Global" (default) or {"User":{"x":[1,0,0],"y":[0,1,0]}} for a frame turned in plan. "Local" is refused. | |
| clear | No | Take the scissor hinge off the beam's member set. | |
| model | No | Stringified FERS model JSON | |
| at_nodes | No | JSON array of the beam's node ids where the hinge applies; omit for every node where the beam meets another member. | |
| releases | No | Axes to release: {"rz":0.0} frees rotation about global Z, {"tx":0.0} lets the beam slide along X, a positive number is a spring (force/length for tx/ty/tz, force*length/rad for rx/ry/rz). An axis not named is HELD. | |
| model_ref | No | Handle from stash_model, used INSTEAD of `model`. Avoids sending the whole document on every step; the tool returns the same handle back. | |
| member_ids | No | JSON array of the continuous beam's member ids, e.g. [4,5,6]. They get a member set of their own unless one already holds exactly them. | |
| member_set_id | No | Instead of member_ids: put the hinge on this existing member set. | |
| scissor_hinge_id | No | Reuse this existing scissor hinge definition (and rewrite it when releases or axes are given). |