pcb_text_new_by_bbox() Typically used by alien format import code to scale and place a text object to look similar as it did in the original, despite the different fonts. 1. Input bbox You need to calculate the unrotated input bounding box on the input, considering only input properties (how the font looked like in the original software) and absolutely no pcb-rnd things (e.g. how the font works in pcb-rnd). This input bounding box will be the new reference "coordinate system". The input bounding box is specified as 0;0 being the upper left corner and a width and a height (bbw and bbh) you calculate. 2. Text alignment You need to figure the alignment, how it worked in the original format. For a specific text object, this means: "which point _within the input bounding box_ is located at the target X;Y coord". In other words, "by which point do we grab the whole text object for placing", relative to the upper-left corner of the bbox. Or in short: the anchor point. This is specified by anchx and anchy. For example if your text is placed at 150;143, the input bbox is 70x10 and it is aligned vertical=center, horizontal=right, then your data is: X=150, Y=143, bbw=70, bbh=10, anchx=70, anchy=5. 3. Scaling: scxy Scaling (determining text size) is automatic so the new font matches the bounding box as much as possible. The only input besides the bbox is the "scaling aspect" of the input font, which is sx/sy, or in other words character/font width/height ratio of the input font. Normally this is 1, that is, the font is as wide as high. A value if 2 means the text is stretched horizontally by a factor of 2, while 0.33333 means the text is stretched vertically so a character is 3x higher than wide compared to the neutral sizing. 4. Mirroring With the latest minor data model upgrades, you can independently mirror the text object in x and y direction. This is passed in the mirror arg. The mirroring happens in a way that the original anchor point remains in place and the object (and resulting bbox) is mirrored around the anchor. 5. Rotation The rot argument is CCW (when not mirrored), in degrees. The rotation happens around the anchor point. 6. Order of operations The code applies the above in this specific order: place at anchor, rotate then mirror. So mirroring affects direction of rotation. 7. Other arguments The rest of the arguments are the same as for normal pcb_text_new.