Changeset 5016


Ignore:
Timestamp:
05/22/09 06:55:35 (4 years ago)
Author:
werner
Message:

This patch adds support for exporting arcs from gerbview to pcbnew.
Note that this only handles arcs in non-copper layers.

Location:
trunk/gta02-core/kicad-patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gta02-core/kicad-patches/gerbview-export-arcs.patch

    r5011 r5016  
    1 Work in progress. 
     1Add support for exporting arcs in non-copper layers to gerbview. 
    22 
    3 Add support for exporting arcs to gerbview. 
     3- Werner 
     4 
     5--- 
    46 
    57Index: kicad/gerbview/export_to_pcbnew.cpp 
    68=================================================================== 
    7 --- kicad.orig/gerbview/export_to_pcbnew.cpp    2009-05-19 18:57:52.000000000 -0300 
    8 +++ kicad/gerbview/export_to_pcbnew.cpp 2009-05-19 20:49:23.000000000 -0300 
    9 @@ -94,7 +94,7 @@ 
    10   
    11      fprintf( File, "$SETUP\n" ); 
    12      sprintf( text, "InternalUnit %f INCH\n", 1.0 / PCB_INTERNAL_UNIT ); 
    13 -    fprintf( File, text ); 
    14 +    fprintf( File, "%s", text ); 
    15   
    16      Pcb->m_BoardSettings->m_CopperLayerCount = g_DesignSettings.m_CopperLayerCount; 
    17      fprintf( File, "Layers %d\n", g_DesignSettings.m_CopperLayerCount ); 
    18 @@ -165,6 +165,20 @@ 
     9--- kicad.orig/gerbview/export_to_pcbnew.cpp    2009-05-21 23:00:00.000000000 -0300 
     10+++ kicad/gerbview/export_to_pcbnew.cpp 2009-05-22 01:42:40.000000000 -0300 
     11@@ -165,6 +162,19 @@ 
    1912             drawitem->m_End   = track->m_End; 
    2013             drawitem->m_Width = track->m_Width; 
     
    2215+           if( track->m_Shape == S_ARC ) 
    2316+           { 
    24 +               double cx = -track->m_Param; 
     17+               double cx = track->m_Param; 
    2518+               double cy = track->GetSubNet(); 
    2619+               double a = atan2( track->m_Start.y-cy, track->m_Start.x-cx ); 
     
    2821+ 
    2922+               drawitem->m_Shape = S_ARC; 
    30 +               drawitem->m_Angle = (b-a)/M_PI*1800.0; 
    31 +               drawitem->m_End = drawitem->m_Start; 
     23+               drawitem->m_Angle = fmod((a-b)/M_PI*1800.0+3600.0, 3600.0); 
    3224+               drawitem->m_Start.x = cx; 
    3325+               drawitem->m_Start.y = cy; 
     
    3729         } 
    3830         else 
    39 @@ -198,6 +212,9 @@ 
    40                  newtrack->SetLayer( pcb_layer_number ); 
    41              } 
    42   
    43 +fprintf(stderr, "%d %d\n", track->m_Shape, newtrack->m_Shape); 
    44 +//if (newtrack->m_Shape == S_ARC_RECT) 
    45 +//  newtrack->m_Shape = S_ARC; 
    46              pcb->Add( newtrack ); 
    47          } 
    48      } 
    49 Index: kicad/gerbview/rs274d.cpp 
    50 =================================================================== 
    51 --- kicad.orig/gerbview/rs274d.cpp      2009-05-19 19:38:42.000000000 -0300 
    52 +++ kicad/gerbview/rs274d.cpp   2009-05-19 19:39:24.000000000 -0300 
    53 @@ -11,6 +11,9 @@ 
    54  #include "pcbplot.h" 
    55  #include "protos.h" 
    56   
    57 +#undef D 
    58 +#define D(x) 
    59 + 
    60  #define IsNumber( x ) ( ( ( (x) >= '0' ) && ( (x) <='9' ) )   \ 
    61                         || ( (x) == '-' ) || ( (x) == '+' )  || ( (x) == '.' ) ) 
    62   
    63 Index: kicad/gerbview/rs274x.cpp 
    64 =================================================================== 
    65 --- kicad.orig/gerbview/rs274x.cpp      2009-05-19 19:40:34.000000000 -0300 
    66 +++ kicad/gerbview/rs274x.cpp   2009-05-19 19:40:41.000000000 -0300 
    67 @@ -10,6 +10,9 @@ 
    68  #include "pcbplot.h" 
    69  #include "protos.h" 
    70   
    71 +#undef D 
    72 +#define D(x) 
    73 + 
    74  #define CODE( x, y ) ( ( (x) << 8 ) + (y) ) 
    75   
    76  enum RS274X_PARAMETERS { 
    77 Index: kicad/gerbview/tracepcb.cpp 
    78 =================================================================== 
    79 --- kicad.orig/gerbview/tracepcb.cpp    2009-05-19 19:36:58.000000000 -0300 
    80 +++ kicad/gerbview/tracepcb.cpp 2009-05-19 19:37:04.000000000 -0300 
    81 @@ -129,7 +129,7 @@ 
    82          if( !(track->ReturnMaskLayer() & printmasklayer) ) 
    83              continue; 
    84   
    85 -        D(printf("D:%p\n", track );) 
    86 +        //D(printf("D:%p\n", track );) 
    87   
    88          if( track->GetNet() == 0 )  // StartPoint 
    89          { 
    90 Index: kicad/gerbview/trpiste.cpp 
    91 =================================================================== 
    92 --- kicad.orig/gerbview/trpiste.cpp     2009-05-19 19:36:58.000000000 -0300 
    93 +++ kicad/gerbview/trpiste.cpp  2009-05-19 19:37:15.000000000 -0300 
    94 @@ -43,7 +43,7 @@ 
    95          if( !(track->ReturnMaskLayer() & printmasklayer) ) 
    96              continue; 
    97   
    98 -        D(printf("D:%p\n", track );) 
    99 +        //D(printf("D:%p\n", track );) 
    100   
    101          if( dcode_hightlight == track->GetNet() && track->GetLayer()==layer ) 
    102              Trace_Segment( panel, DC, track, draw_mode | GR_SURBRILL ); 
  • trunk/gta02-core/kicad-patches/series

    r5014 r5016  
    1212fix-pinedit-collision.patch 
    1313 
     14# pending 
     15gerbview-export-arcs.patch 
     16 
    1417# Work in progress 
    1518#drag-override.patch 
    16 #gerbview-export-arcs.patch 
Note: See TracChangeset for help on using the changeset viewer.