-
Notifications
You must be signed in to change notification settings - Fork 3
FBD: System Sketch
mkraska edited this page Nov 26, 2024
·
10 revisions
We start with an empty new STACK question.
- Make sure to use a simple text editor, e.g. Marklar
- Set the Question text to Markdown format
- Set the feedback text fields always to HTML format
Let us create a system sketch like this:
You create the list of objects for the system sketch. You can use jsfiddle for rapid prototyping and then copy the list of objects to STACK.
initdata: [
[ "grid", "","",-2, 5,-4,4, 40],
[ "bar", "1", [0, 0], [1, -2], "show" ],
[ "beam","white", "gray80",[0, 0],[3,0],0.15, "show"],
[ "crosshair","", [3, -1], [0,0], [1,1], [1,1], "grid" ],
[ "dim", "a", [3, 2], [4,2], 0 ],
[ "fix12", "C", [1, -2], 0 , "show"],
[ "fix13", "B", [3, 0], 180, "show"],
[ "node", "A", [0,0] ],
[ "q", "","q_0", [0, 0.2], [3,0.2], 0 , 1, 0, "show"],
[ "forceGen", "F_1", [-1, 3]],
[ "momentGen", "M_1", [1, 3]]
];
init: stackjson_stringify(initdata);
You add the generic block for the sketch.
<p hidden>[[input:objects]] [[validation:objects]]</p>
<p hidden>[[input:names]] [[validation:names]] </p>
<div style="float:right">
[[jsxgraph width='500px' height='400px' input-ref-objects="stateRef" input-ref-names="fbd_names" ]]
var mode = "STACK";
const initstring = {#init#};
const centeredLabelStyle = {size:0, showInfobox:false, label:{offset:[-6,0],
anchorX:'left', anchorY:'middle'}};
// End of STACK header
[[include src="https://raw.githubusercontent.com/mkraska/meclib/main/meclib.js"/]]
[[/jsxgraph]]</div>
You might also want to add instructions and hints on how to edit the sketch.
**Freischnitt**
Schneiden Sie den Balken frei. Ersetzen Sie die Lager durch Reaktionen und ersetzen Sie die Streckenlast durch eine resultierende Kraft.
Geben Sie als Name der resultierenden Kraft deren Wert als Formel an.
Gegeben: Gitterweite \\(a\\), Streckenlast \\(q_0\\).
[[lang code="de"]]
<details><summary><strong>Bedienungshinweise</strong></summary>
<ul>
<li>Objekte (de-)aktivieren: Doppelklick
<li>Kraft/Moment
<ul>
<li>erzeugen: Name (oder Ausdruck für Wert) eintragen und grauen Pfeil auf die Skizze ziehen
<li>löschen: Doppelklicken
<li>Name ändern: Löschen und neu erzeugen. Sorry, etwas unbequem :(
<li>Position und Richtung ändern: Rote Kontrollpunkte ziehen
</ul>
<li> Resultierende von Streckenlasten: Mindestens ein Kontrollpunkt muss auf der Streckenlast liegen
<li> Reaktionskräfte: Anfangs- oder Endpunkt müssen auf dem Lagerpunkt liegen
<li> Reaktionsmomente: Mittelpunkt muss auf dem Lager liegen
</ul>
</details>
[[/lang]]
[[lang code="other"]]
<details><summary><strong>Hints for interactive input</strong></summary>
<ul>
<li>Activate/de-activate objects: double click
<li>Force/moment
<ul>
<li>Create: Enter name (or expression indicating the value) in the text field and then drag the gray arrow onto the sketch.
<li>Delete: Double click on the arrow
<li>Change name: Delete and create new with correct name. Sorry, somewhat inconvenient :(
<li>Change position and direction: Drag red control points
</ul>
<li>Resultants of line loads: At least one control point is on the line load area
<li>Force reactions: Either of the two control points must be on the support point
<li>Moment reactions: Center point must coincide with the support point.
</ul>
</details>
[[/lang]]
- Remove everything here.
- Verify the question text and update the form
Specify properties of the input fields:
-
objects
Field Value Input type String (Zeichenkette) Model answer []
Students must verify no Show validation no -
names
Field Value Input type algebraic Model answer []
Forbid floats no Students must verify no Show validation no
Set the Default mark to 0
, otherwise you can't save the question without PRTs.
In order to try code snippets in jsfiddle,
- copy the code from the wiki page to the clipboard
- follow the link for the JSXGraph version you want to try
- Replace the code in the HTML section (contents of
<p hidden id="init">
) with the content of the clipboard