Render
The render section tells Circuit Diagram what your component should look like.
The render section is made up of a <render>
tag, which contains a number of group
s (similar to the connections section) with conditions, where each group contains one or more render commands.
<render>
<group conditions="CONDITIONS">
(render commands here)
</group>
</render>
Similar to the connections section, the group tag can be omitted if no conditions are required.
Render commands allow you to draw the following: line, rectangle, ellipse, text and path.
Line
The line is the simplest render command, drawing a straight line between two points.
Attributes
| Attribute | Type | Example | Description |
| ------------|-------------| ----------------|-------------------------------------|
| start | point | _Start+5x+10y
| Start position. |
| end | point | _Start+5x+10y
| End position. |
| thickness | integer | 2
| Thickness of the line (default: 2). |
Italic attributes are optional. Other attributes are required.
Examples
<line start="_Start" end="_Middle-20x" />
Rectangle
This command draws a rectangle.
Attributes
| Attribute | Type | Example | Description |
| ------------|-------------| ------------|----------------------------------------------------------|
| x | coordinate | _Start+10
| Top left x coordinate. |
| y | coordinate | _Start+10
| Top left y coordinate. |
| width | integer | 10
| Width of the rectangle. |
| height | integer | 10
| Height of the rectangle. |
| fill | boolean | true
| Whether the rectangle should be filled (default: false). |
Italic attributes are optional. Other attributes are required.
Examples
<rect x="_Start-8" y="_Middle-20" width="16" height="40" />
<rect x="_Start-22" y="_Middle+10" width="16" height="40" fill="true" />
Ellipse
This command draws an ellipse or circle.
Attributes
| Attribute | Type | Example | Description |
| ------------|-------------| ----------------|--------------------------------------------------------|
| centre | point | _Start+5x+10y
| Position of the centre of the ellipse. |
| rx | integer | 10
| Radius in the x-axis. |
| ry | integer | 10
| Radius in the y-axis. |
| fill | boolean | true
| Whether the ellipse should be filled (default: false). |
Italic attributes are optional. Other attributes are required.
Examples
<ellipse centre="_Middle" rx="26" ry="26" />
<ellipse centre="_Middle" rx="26" ry="26" fill="true" />
Text
This command draws a piece of text. The text to be drawn can either be static text, or a single property name preceeded by a dollar symbol.
When displaying a property, you cannot add any additional text to it. This can instead be achieved using property formatting described earlier.
<text value="$Resistance" x="_Middle" y="_Start-17" align="CentreCentre" />
The attributes are:
value
- the text or property to renderx
- the x-coordinatey
- the y-coordinatealign
- where the anchor point should be:- The first word gives the vertical location, any one of:
- Top
- Centre
- Bottom
- The second word gives the horizontal location, any one of:
- Left
- Centre
- Right
- The first word gives the vertical location, any one of:
size
- defaults tomedium
if not specified; the allowed values are:large
Italic attributes are optional. Other attributes are required.
Text Runs
In addition to specifying the value
attribute for text, you can specify multiple text runs.
<text value="I7" x="_Middle-46" y="_Middle-80" align="CentreLeft" size="large">
<value>
<span>I</span>
<sub>7</sub>
</value>
</text>
Each text run can be one of the following:
span
- normal textsub
- subscript textsup
- superscript text
Path
The path command draws a path using svg-style syntax.
It has start
, data
and the optional fill="true"
attributes.
<path start="_Middle-20y" data="m -26,-16 l 8,8 m 1,1 l -2,-4 l -2,2 l 4,2 l -2,-4" />
The start attribute defines where the path starts, and the data attribute contains the path information. All svg commands within the data section must be relative - use lowercase letters only.
For a tutorial on svg commands, visit this page.
Example
Below is a portion of the render section of the Resistor component.
<render>
<!-- Standard -->
<group conditions="horizontal">
<line start="_Start" end="_Middle-20x" />
<rect x="_Middle-20x" y="_Start-8y" width="40" height="16" />
<line start="_Middle+20x" end="_End" />
</group>
<group conditions="horizontal,$Type!=Variable,$Type!=Thermistor,$Type!=LDR">
<text value="$Resistance" x="_Middle" y="_Start-17" align="CentreCentre" />
</group>
<group conditions="!horizontal">
<line start="_Start" end="_Middle-20y" />
<rect x="_Start-8x" y="_Middle-20y" width="16" height="40" />
<line start="_Middle+20y" end="_End" />
</group>
<group conditions="!horizontal,$Type!=Variable,$Type!=Thermistor,$Type!=LDR">
<text value="$Resistance" x="_Start-14" y="_Middle" align="CentreRight" />
</group>
<!-- Potentiometer -->
<group conditions="horizontal,$Type==Potentiometer">
<path start="_Middle-20x" data="m 14,16 l 6,-6 l 6,6 m -6,-5 l 0,18" />
</group>
<group conditions="!horizontal,$Type==Potentiometer">
<path start="_Middle-20y" data="m 16,14 l -6,6 l 6,6 m -5,-6 l 18,0" />
</group>
...
</render>