KiCad Pcbnew Python Scripting
|
Collection of handy functions to simplify drawing shapes from within footprint wizards. More...
Public Member Functions | |
DefaultGraphicLayer (self) | |
DefaultTextValueLayer (self) | |
__init__ (self, module) | |
PushTransform (self, mat) | |
Add a transform to the top of the stack and recompute the overall transform. | |
PopTransform (self, num=1) | |
Remove a transform from the top of the stack and recompute the overall transform. | |
ResetTransform (self) | |
Reset the transform stack to the identity matrix. | |
RecomputeTransforms (self) | |
Re-compute the transform stack into a single transform and store in the DC. | |
TransformTranslate (self, x, y, push=True) | |
Set up and return a transform matrix representing a translation optionally pushing onto the stack. | |
TransformFlipOrigin (self, flip, push=True) | |
Set up and return a transform matrix representing a horizontal, vertical or both flip about the origin. | |
TransformFlip (self, x, y, flip=flipNone, push=True) | |
Set up and return a transform matrix representing a horizontal, vertical or both flip about a point (x,y) | |
TransformRotationOrigin (self, rot, push=True) | |
Set up and return a transform matrix representing a rotation about the origin, and optionally push onto the stack. | |
TransformRotation (self, x, y, rot, push=True) | |
Set up and return a transform matrix representing a rotation about the point (x,y), and optionally push onto the stack. | |
TransformScaleOrigin (self, sx, sy=None, push=True) | |
Set up and return a transform matrix representing a scale about the origin, and optionally push onto the stack. | |
TransformPoint (self, x, y, mat=None) | |
Return a point (x, y) transformed by the given matrix, or if that is not given, the drawing context transform. | |
SetLineThickness (self, lineThickness) | |
Set the current pen lineThickness used for subsequent drawing operations. | |
SetLineTickness (self, lineThickness) | |
Old version of SetLineThickness. | |
GetLineThickness (self) | |
Get the current drawing context line thickness. | |
SetLayer (self, layer) | |
Set the current drawing layer, used for subsequent drawing operations. | |
GetLayer (self) | |
Return the current drawing layer, used for drawing operations. | |
Line (self, x1, y1, x2, y2) | |
Draw a line from (x1, y1) to (x2, y2) | |
Circle (self, x, y, r, filled=False) | |
Draw a circle at (x,y) of radius r If filled is true, the thickness and radius of the line will be set such that the circle appears filled. | |
MyCmp (self, n1, n2) | |
Arc (self, cx, cy, sx, sy, angle) | |
Draw an arc based on centre, start and angle. | |
HLine (self, x, y, l) | |
Draw a horizontal line from (x,y), rightwards. | |
VLine (self, x, y, l) | |
Draw a vertical line from (x1,y1), downwards. | |
Polyline (self, pts, mirrorX=None, mirrorY=None) | |
Draw a polyline, optionally mirroring around the given points. | |
Reference (self, x, y, size, orientation_degree=0) | |
Draw the module's reference as the given point. | |
Value (self, x, y, size, orientation_degree=0) | |
As for references, draw the module's value. | |
Box (self, x, y, w, h) | |
Draw a rectangular box, centred at (x,y), with given width and height. | |
NotchedCircle (self, x, y, r, notch_w, notch_h, rotate=0) | |
Circle radius r centred at (x, y) with a raised or depressed notch at the top Notch height is measured from the top of the circle radius. | |
NotchedBox (self, x, y, w, h, notchW, notchH, rotate=0) | |
Draw a box with a notch in the centre of the top edge. | |
BoxWithDiagonalAtCorner (self, x, y, w, h, setback=pcbnew.FromMM(1.27), flip=flipNone) | |
Draw a box with a diagonal at the top left corner. | |
BoxWithOpenCorner (self, x, y, w, h, setback=pcbnew.FromMM(1.27), flip=flipNone) | |
Draw a box with an opening at the top left corner. | |
RoundedBox (self, x, y, w, h, rad) | |
Draw a box with rounded corners (i.e. | |
ChamferedBox (self, x, y, w, h, chamfer_x, chamfer_y) | |
Draw a box with chamfered corners. | |
MarkerArrow (self, x, y, direction=dirN, width=pcbnew.FromMM(1)) | |
Draw a marker arrow facing in the given direction, with the point at (x,y) | |
Public Attributes | |
module = module | |
dict | dc |
Static Public Attributes | |
int | dirN = 0 |
int | dirNE = 45 |
int | dirE = 90 |
int | dirSE = 135 |
int | dirS = 180 |
int | dirSW = 225 |
int | dirW = 270 |
int | dirNW = 315 |
int | flipNone = 0 |
int | flipX = 1 |
int | flipY = 2 |
int | flipBoth = 3 |
list | xfrmIDENTITY = [1, 0, 0, 0, 1, 0] |
defaultLineThickness = pcbnew.FromMM(0.15) | |
Protected Member Functions | |
_ComposeMatricesWithIdentity (self, mats) | |
Compose a sequence of matrices together by sequential pre-multiplication with the identity matrix. | |
Collection of handy functions to simplify drawing shapes from within footprint wizards.
A "drawing context" is provided which can be used to set and retain settings such as line thickness and layer. The DC also contains a "transform stack", which allows easy positioning and transforming of drawn elements without lots of geometric book-keeping.
Definition at line 180 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.__init__ | ( | self, | |
module ) |
Definition at line 218 of file FootprintWizardBase.py.
|
protected |
Compose a sequence of matrices together by sequential pre-multiplication with the identity matrix.
mats | list of matrices to compose |
Definition at line 259 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Arc | ( | self, | |
cx, | |||
cy, | |||
sx, | |||
sy, | |||
angle ) |
Draw an arc based on centre, start and angle.
The transform matrix is applied
Note that this won't work properly if the result is not a circular arc (e.g. a horizontal scale)
cx | the x coordinate of the arc centre |
cy | the y coordinate of the arc centre |
sx | the x coordinate of the arc start point |
sy | the y coordinate of the arc start point |
angle | the arc's central angle (in deci-degrees) |
Definition at line 536 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Box | ( | self, | |
x, | |||
y, | |||
w, | |||
h ) |
Draw a rectangular box, centred at (x,y), with given width and height.
x | the x coordinate of the box's centre |
y | the y coordinate of the box's centre |
w | the width of the box |
h | the height of the box |
Definition at line 659 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.BoxWithDiagonalAtCorner | ( | self, | |
x, | |||
y, | |||
w, | |||
h, | |||
setback = pcbnew.FromMM(1.27), | |||
flip = flipNone ) |
Draw a box with a diagonal at the top left corner.
x | the x coordinate of the circle's centre |
y | the y coordinate of the circle's centre |
w | the width of the box |
h | the height of the box |
setback | the set-back of the diagonal, in both x and y |
flip | one of flipNone, flipX, flipY or flipBoth to change the diagonal corner |
Definition at line 748 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.BoxWithOpenCorner | ( | self, | |
x, | |||
y, | |||
w, | |||
h, | |||
setback = pcbnew.FromMM(1.27), | |||
flip = flipNone ) |
Draw a box with an opening at the top left corner.
x | the x coordinate of the circle's centre |
y | the y coordinate of the circle's centre |
w | the width of the box |
h | the height of the box |
setback | the set-back of the opening, in both x and y |
flip | one of flipNone, flipX, flipY or flipBoth to change the open corner position |
Definition at line 775 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.ChamferedBox | ( | self, | |
x, | |||
y, | |||
w, | |||
h, | |||
chamfer_x, | |||
chamfer_y ) |
Draw a box with chamfered corners.
:param x: the x coordinate of the box's centre :param y: the y coordinate of the box's centre :param w: the width of the box :param h: the height of the box :param chamfer_x: the size of the chamfer set-back in the x direction :param chamfer_y: the size of the chamfer set-back in the y direction
Definition at line 837 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Circle | ( | self, | |
x, | |||
y, | |||
r, | |||
filled = False ) |
Draw a circle at (x,y) of radius r If filled is true, the thickness and radius of the line will be set such that the circle appears filled.
x | the x coordinate of the arc centre |
y | the y coordinate of the arc centre |
r | the circle's radius |
filled | True to draw a filled circle, False to use the current DC line thickness |
Definition at line 498 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.DefaultGraphicLayer | ( | self | ) |
Definition at line 212 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.DefaultTextValueLayer | ( | self | ) |
plugins.FootprintWizardBase.FootprintWizardDrawingAids.GetLayer | ( | self | ) |
Return the current drawing layer, used for drawing operations.
Definition at line 479 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.GetLineThickness | ( | self | ) |
Get the current drawing context line thickness.
Definition at line 466 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.HLine | ( | self, | |
x, | |||
y, | |||
l ) |
Draw a horizontal line from (x,y), rightwards.
x | line start x coordinate |
y | line start y coordinate |
l | line length |
Definition at line 570 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Line | ( | self, | |
x1, | |||
y1, | |||
x2, | |||
y2 ) |
Draw a line from (x1, y1) to (x2, y2)
Definition at line 485 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.MarkerArrow | ( | self, | |
x, | |||
y, | |||
direction = dirN, | |||
width = pcbnew.FromMM(1) ) |
Draw a marker arrow facing in the given direction, with the point at (x,y)
x | x position of the arrow tip |
y | y position of the arrow tip |
direction | arrow direction in degrees (0 is "north", can use dir* shorthands) |
width | arrow width |
Definition at line 870 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.MyCmp | ( | self, | |
n1, | |||
n2 ) |
replace the cmp() of python2
Definition at line 526 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.NotchedBox | ( | self, | |
x, | |||
y, | |||
w, | |||
h, | |||
notchW, | |||
notchH, | |||
rotate = 0 ) |
Draw a box with a notch in the centre of the top edge.
x | the x coordinate of the circle's centre |
y | the y coordinate of the circle's centre |
w | the width of the box |
h | the height of the box |
notchW | the width of the notch |
notchH | the height of the notch |
rotate | the rotation of the whole figure, in degrees |
Definition at line 714 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.NotchedCircle | ( | self, | |
x, | |||
y, | |||
r, | |||
notch_w, | |||
notch_h, | |||
rotate = 0 ) |
Circle radius r centred at (x, y) with a raised or depressed notch at the top Notch height is measured from the top of the circle radius.
x | the x coordinate of the circle's centre |
y | the y coordinate of the circle's centre |
r | the radius of the circle |
notch_w | the width of the notch |
notch_h | the height of the notch |
rotate | the rotation of the whole figure, in degrees |
Definition at line 678 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Polyline | ( | self, | |
pts, | |||
mirrorX = None, | |||
mirrorY = None ) |
Draw a polyline, optionally mirroring around the given points.
pts | list of polyline vertices (list of (x, y)) |
mirrorX | x coordinate of mirror point (None for no x-flip) |
mirrorY | y coordinate of mirror point (None for no y-flip) |
Definition at line 590 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.PopTransform | ( | self, | |
num = 1 ) |
Remove a transform from the top of the stack and recompute the overall transform.
num | the number of transforms to pop from the stack. |
Definition at line 238 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.PushTransform | ( | self, | |
mat ) |
Add a transform to the top of the stack and recompute the overall transform.
mat | the transform matrix to add to the stack |
Definition at line 228 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.RecomputeTransforms | ( | self | ) |
Re-compute the transform stack into a single transform and store in the DC.
Definition at line 282 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Reference | ( | self, | |
x, | |||
y, | |||
size, | |||
orientation_degree = 0 ) |
Draw the module's reference as the given point.
The actual setting of the reference is not done in this drawing aid - that is up to the wizard
x | the x position of the reference |
y | the y position of the reference |
size | the text size (in both directions) |
orientation_degree | text orientation in degrees |
Definition at line 624 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.ResetTransform | ( | self | ) |
Reset the transform stack to the identity matrix.
Definition at line 252 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.RoundedBox | ( | self, | |
x, | |||
y, | |||
w, | |||
h, | |||
rad ) |
Draw a box with rounded corners (i.e.
a 90-degree circular arc)
:param x: the x coordinate of the box's centre :param y: the y coordinate of the box's centre :param w: the width of the box :param h: the height of the box :param rad: the radius of the corner rounds
Definition at line 802 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.SetLayer | ( | self, | |
layer ) |
Set the current drawing layer, used for subsequent drawing operations.
Definition at line 472 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.SetLineThickness | ( | self, | |
lineThickness ) |
Set the current pen lineThickness used for subsequent drawing operations.
lineThickness | the new line thickness to set |
Definition at line 445 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.SetLineTickness | ( | self, | |
lineThickness ) |
Old version of SetLineThickness.
Does the same thing, but is only here for compatibility with old scripts. Set the current pen lineThickness used for subsequent drawing operations
lineThickness | the new line thickness to set |
Definition at line 454 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformFlip | ( | self, | |
x, | |||
y, | |||
flip = flipNone, | |||
push = True ) |
Set up and return a transform matrix representing a horizontal, vertical or both flip about a point (x,y)
This is performed by a translate-to-origin, flip, translate- back sequence.
x | the x coordinate of the flip point |
y | the y coordinate of the flip point |
flip | one of flipNone, flipX, flipY, flipBoth |
push | add this transform to the current stack |
Definition at line 334 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformFlipOrigin | ( | self, | |
flip, | |||
push = True ) |
Set up and return a transform matrix representing a horizontal, vertical or both flip about the origin.
flip | one of flipNone, flipX, flipY, flipBoth |
push | add this transform to the current stack |
Definition at line 309 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformPoint | ( | self, | |
x, | |||
y, | |||
mat = None ) |
Return a point (x, y) transformed by the given matrix, or if that is not given, the drawing context transform.
x | the x coordinate of the point to transform |
y | the y coordinate of the point to transform |
mat | the transform matrix to use or None to use the current DC's |
Definition at line 428 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformRotation | ( | self, | |
x, | |||
y, | |||
rot, | |||
push = True ) |
Set up and return a transform matrix representing a rotation about the point (x,y), and optionally push onto the stack.
This is performed by a translate-to-origin, rotate, translate- back sequence
x | the x coordinate of the rotation centre |
y | the y coordinate of the rotation centre |
rot | the rotation angle in degrees |
push | add this transform to the current stack |
Definition at line 379 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformRotationOrigin | ( | self, | |
rot, | |||
push = True ) |
Set up and return a transform matrix representing a rotation about the origin, and optionally push onto the stack.
( cos(t) -sin(t) 0 ) ( sin(t) cos(t) 0 )
rot | the rotation angle in degrees |
push | add this transform to the current stack |
Definition at line 359 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformScaleOrigin | ( | self, | |
sx, | |||
sy = None, | |||
push = True ) |
Set up and return a transform matrix representing a scale about the origin, and optionally push onto the stack.
( sx 0 0 ) ( 0 sy 0 )
sx | the scale factor in the x direction |
sy | the scale factor in the y direction |
push | add this transform to the current stack |
Definition at line 405 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.TransformTranslate | ( | self, | |
x, | |||
y, | |||
push = True ) |
Set up and return a transform matrix representing a translation optionally pushing onto the stack.
( 1 0 x ) ( 0 1 y )
x | translation in x-direction |
y | translation in y-direction |
push | add this transform to the current stack |
Definition at line 290 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.Value | ( | self, | |
x, | |||
y, | |||
size, | |||
orientation_degree = 0 ) |
As for references, draw the module's value.
x | the x position of the value |
y | the y position of the value |
size | the text size (in both directions) |
orientation_degree | text orientation in degrees |
Definition at line 643 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.VLine | ( | self, | |
x, | |||
y, | |||
l ) |
Draw a vertical line from (x1,y1), downwards.
x | line start x coordinate |
y | line start y coordinate |
l | line length |
Definition at line 580 of file FootprintWizardBase.py.
dict plugins.FootprintWizardBase.FootprintWizardDrawingAids.dc |
Definition at line 221 of file FootprintWizardBase.py.
|
static |
Definition at line 210 of file FootprintWizardBase.py.
|
static |
Definition at line 194 of file FootprintWizardBase.py.
|
static |
Definition at line 192 of file FootprintWizardBase.py.
|
static |
Definition at line 193 of file FootprintWizardBase.py.
|
static |
Definition at line 199 of file FootprintWizardBase.py.
|
static |
Definition at line 196 of file FootprintWizardBase.py.
|
static |
Definition at line 195 of file FootprintWizardBase.py.
|
static |
Definition at line 197 of file FootprintWizardBase.py.
|
static |
Definition at line 198 of file FootprintWizardBase.py.
|
static |
Definition at line 205 of file FootprintWizardBase.py.
|
static |
Definition at line 202 of file FootprintWizardBase.py.
|
static |
Definition at line 203 of file FootprintWizardBase.py.
|
static |
Definition at line 204 of file FootprintWizardBase.py.
plugins.FootprintWizardBase.FootprintWizardDrawingAids.module = module |
Definition at line 219 of file FootprintWizardBase.py.
|
static |
Definition at line 207 of file FootprintWizardBase.py.