Commit 3237ea13 authored by charras's avatar charras
Browse files

pcbnew PS output: now shows oblong holes with the true shape.

Also, uses kicad/bin in libs.win instead of kicad/winexe
parent dd45a357
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -5,6 +5,11 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.

2008-Apr-21 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    PS output: now shows oblong holes with the true shape.


2008-Apr-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+1 −1
Original line number Diff line number Diff line
# File:		libs.win
#binaries path:
KICAD_BIN = /f/kicad/winexe
KICAD_BIN = /f/kicad/bin



+33 −25
Original line number Diff line number Diff line
@@ -437,7 +437,7 @@ static void PrintDrillMark( BOARD* Pcb )

/* Draw a drill mark for pads and vias.
 * Must be called after all drawings, because it
 * redraw the drill mark on a pad or via
 * redraw the drill mark on a pad or via, as a negative (i.e. white) shape
 */
{
    const int SMALL_DRILL = 150;
@@ -458,7 +458,7 @@ static void PrintDrillMark( BOARD* Pcb )
    diam.x = diam.y = (g_DrillShapeOpt == DRILL_MARK) ? SMALL_DRILL :
                      g_DesignSettings.m_ViaDrill;

    for( pts = Pcb->m_Track; pts != NULL; pts = (TRACK*) pts->Pnext )
    for( pts = Pcb->m_Track; pts != NULL; pts = pts->Next() )
    {
        if( pts->Type() != TYPEVIA )
            continue;
@@ -474,19 +474,27 @@ static void PrintDrillMark( BOARD* Pcb )
    Module = Pcb->m_Modules;
    for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
    {
        PtPad = (D_PAD*) Module->m_Pads;
        for( ; PtPad != NULL; PtPad = (D_PAD*) PtPad->Pnext )
        PtPad = Module->m_Pads;
        for( ; PtPad != NULL; PtPad = PtPad->Next() )
        {
            if( PtPad->m_Drill.x == 0 )
                continue;

            // calcul de la position des trous, selon echelle
            // Output hole shapes:
            pos = PtPad->m_Pos;
            diam.x = diam.y = (g_DrillShapeOpt == DRILL_MARK) ? SMALL_DRILL :
            if( PtPad->m_DrillShape == PAD_OVAL )
            {
                diam = PtPad->m_Drill;
                trace_1_pastille_OVALE_POST( pos, diam, PtPad->m_Orient, FILLED );
            }
            else
            {
                diam.x = (g_DrillShapeOpt == DRILL_MARK) ? SMALL_DRILL :
                         PtPad->m_Drill.x;
                trace_1_pastille_RONDE_POST( pos, diam.x, FILLED );
            }
        }
    }

    fprintf( dest, " 0 setgray\n" );
}
+9 −3
Original line number Diff line number Diff line
@@ -673,7 +673,7 @@ bool WinEDA_PcbFrame::Genere_Pad_Connexion( wxDC* DC, int layer )
            dy += abs( pt_pad->m_DeltaSize.x ) / 2;
        }

        /* calculate the 4 segment coordintes (starting from the pad centre cX,cY) */
        /* calculate the 4 segment coordinates (starting from the pad centre cX,cY) */
        sommet[0][0] = 0; sommet[0][1] = -dy;
        sommet[1][0] = -dx; sommet[1][1] = 0;
        sommet[2][0] = 0; sommet[2][1] = dy;
@@ -697,10 +697,16 @@ bool WinEDA_PcbFrame::Genere_Pad_Connexion( wxDC* DC, int layer )

            /* Test if the segment is allowed */
            if( BAD_DRC==m_drc->DrcBlind( pt_track, m_Pcb->m_Track ) )
            {
                // Drc error, retry with a smaller width
                // because some drc errors are due to a track width > filling zone size.
                pt_track->m_Width = g_GridRoutingSize;
                if( BAD_DRC==m_drc->DrcBlind( pt_track, m_Pcb->m_Track ) )
                {
                    delete pt_track;
                    continue;
                }
            }

            /* Search for a zone segment */
            loctrack = Locate_Zone( m_Pcb->m_Zone, pt_track->m_End, layer );