← Back to team overview

kicad-developers team mailing list archive

Re: eeschema bloc rotate


Le 04/09/2010 13:07, Pascal Baerten a écrit :
Hello all!

Indeed, hierarchical sheet rotation was not straight forward to support, but I finally managed it. :-)
The attached patch support bloc rotation on all objects.

The SCH_SHEET_PIN object is now inherited from HIER_LABEL who simplify somewhat the code.  sheetpin move is working in any
orientation, plot function is updated also.
As hierarchical sheet rotation was asked by Jean-Pierre, it was required to also store extra information in .sch file.
I found a relatively transparent approach to avoid incompatibilities between version:
The format is left unchanged, only the sheet_pin edge property is extended from 'L','R' to 'L','R','T','B' for respectively
Left,Right,Top,Bottom.  Previous versions will read any edge value other than 'R' as 'L' with little complaint.

It would be easy to add hotkey event on hierarchical sheet object for rotate and mirror (without block selection), but this is
behond the scope of adding support of block rotation and this patch is already large enough.

I tested this patch with sheets containing various objects, editing and plot functions are OK also. But I don't have really
complex shematics to extensively validate everything. your experience maybe helpful.

I hope this contribution will be useful to many!



2010/8/31 jean-pierre charras <jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>>

    Pascal Baerten a écrit :


        I recently switched to kicad and found it very promising!
        Block rotation was however a missing feature in schematic editor, quite annoying ....

        Please find below my first contribution to this great project.
        The attached patch file adds the following feature to eeschema:

            * block vertical mirror + popup menu
            * block  counter-clockwise rotate + popup menu
            * hotkey on block mirror_X (X)
            * hotkey on block mirror_Y (Y)
            * hotkey on block rotate ccw (R)
            * Some cleaning on existing code of block mirror: code defined in
              headers (.h) is moved to corresponding (.cpp) file

        Theses block operations are repeatable, (ie could be executed more than once; usefull for rotations) and move block remain
        active until placement. (comparable behaviour as moving/rotating single components)

Your patch was committed in rev 2475

Jean-Pierre CHARRAS