kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #09769
Re: Script access to pcb plot
SetNegative also changes the way colors are plotted, which also makes sense.
if( negativeMode )
emitSetRGBColor( 1 - r, 1 - g, 1 - b );
else
emitSetRGBColor( r, g, b );
Ok, will find the way to do it, without making you all spend time on reading me, implementation
can always be changed for better later.
Miguel Angel Ajo
http://www.nbee.es
+34911407752
skype: ajoajoajo
On 24/03/2013, at 23:48, Miguel Angel Ajo Pelayo <miguelangel@xxxxxxx> wrote:
>
>
> On 24/03/2013, at 18:08, Lorenzo Marcantonio <l.marcantonio@xxxxxxxxxxxx> wrote:
>
>> On Sun, Mar 24, 2013 at 12:51:38AM +0100, Miguel Angel Ajo Pelayo wrote:
>>> More questions, is it possible to tell the plotter a background color?, something weird for a plotter, right,
>>> but in SVG it would be great to dump in black background too.
>>
>> Uhmm no. The only background processing done is the initial black splat
>> for the initial negative processing (and only in pcbnew).
>>
>
> Makes sense
>
>> Nothing forbid you to do a svg-only interface for background color (or
>> else do a virtual in the base class which is a no-op and implement it
>> where significative). Both approach have deep philosophical implications XD
>>
>
> I think second makes more sense, no-op for everything else but SVG, and SVG
> with background method implemented, and, may be some plotting option to set background
> where available (like stereo),
>
>> Look for 'fat interface' on the net for neverending holy wars (i.e.
>> a virtual method against a dynamic cast for checking availability). Also
>> known as: C++ has no duck typing XDXD.
>
>>
>> Anyway the PS/PDF drivers already have the required code (the negative
>> splat). Sadly ATM this is *not* done in the driver (I don't remember
>> why...), look for the FillNegativeKnockout function in pcbnew. That
>> could be easy moved in the initial page processing.
>>
>
> /** Prefill in black an area a little bigger than the board to prepare for the
> * negative plot */
> static void FillNegativeKnockout( PLOTTER *aPlotter, const EDA_RECT &aBbbox )
> {
> const int margin = 5 * IU_PER_MM; // Add a 5 mm margin around the board
> aPlotter->SetNegative( true );
> aPlotter->SetColor( WHITE ); // Which will be plotted as black
> EDA_RECT area = aBbbox;
> area.Inflate( margin );
> aPlotter->Rect( area.GetOrigin(), area.GetEnd(), FILLED_SHAPE );
> aPlotter->SetColor( BLACK );
> }
>
> "SetNegative" isn't what I'm looking for?,
> shouldn't I just implement that in SVG plotter? (usually done with a 100% width, 100% height rect black element)
>
>> Of course the negative feature *can't* be replaced with something like
>> that because gerber (which is in fact the most important driver)
>> implements it natively.
>
>>
>> --
>> Lorenzo Marcantonio
>> Logos Srl
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help : https://help.launchpad.net/ListHelp
>
References