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!

regards

Pascal


2010/8/31 jean-pierre charras <[email protected] 
<mailto:[email protected]>>

    Pascal Baerten a écrit :

        Hi,

        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
Thanks.

--
Jean-Pierre CHARRAS




_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to