Index: doc-rnd/devlog/20150820a_dimensions.html
===================================================================
--- doc-rnd/devlog/20150820a_dimensions.html (nonexistent)
+++ doc-rnd/devlog/20150820a_dimensions.html (revision 753)
@@ -0,0 +1,24 @@
+
+
+ pcb-rnd devlog
+ fp2anim dimensions
+After attacking the qfn()/qfp() parametric footprint problem today,
+I realized fp2anim lacked a very important feature: dimension lines.
+The footprint being generated is to match the datasheet. Checking the match
+requires visible dimensions.
+
+The new feature of fp2anim is to optionally display custom dimensions on
+the preview. Generator scripts print #dimension comments in the footprint
+file (not breaking the file format). The generator passes on a dimension
+name along with the value. As a first attempt my conventions are:
+
+ - add dimension lines for dimension type input parameters
+
- add dimension lines for calculated dimensions if they are likely to be informative and be included in the datasheet
+
+
+ fp2anim vector font
+While working on the dimensions, I realized I had to switch to vector fonts:
+the built-in pixel font of animator can not be rotated. The size of a vector
+font text can be calculated, which also enables fp2anim to optionally place
+semi-transparent bars behind the text to make it more visible on dark background
+(like pads).
Index: doc-rnd/devlog/20150820b_qf.html
===================================================================
--- doc-rnd/devlog/20150820b_qf.html (nonexistent)
+++ doc-rnd/devlog/20150820b_qf.html (revision 753)
@@ -0,0 +1,27 @@
+
+
+ pcb-rnd devlog
+ qf()
+The next group of footprints I decided to generate are qfn(), tqfp(), lqfp().
+The generic set of rules for these footprints is:
+
+ - there is a virtual rectangle that forms rows of pads
+
- pads are evenly spaced among the edges of that rectangle
+
- pin numbering is counter-clockwise
+
- the body of the part may be inside of the rectangle or may extend over the pads
+
+
+ low level flexibility vs. high level comfort
+qf() currently has 14 arguments. It is flexible enough to generate qfn, tqfp,
+lqfp, and anything similar I've seen in the package datasheet of a major
+vendor. However, it is not straight forward to convert datasheet tables
+into qf() parameters.
+
+On the other hand, in practice we need qfn() and tqfp(), which are special
+cases of qf(). To nail the common use cases, qfn() and tqfp() narrows down
+the number of parameters to 3..4. Even better, these parameters are exactly
+those that are in the name of a typical QFN or TQFP footprint or in the first
+few lines of the dimensions table. I call these scripts frontends to qf().
+
+This makes the common footprints very easy to produce using frontends while
+leaves a (bit more complicated) plan B, qf(), for special cases.