r5016 - trunk/gta02-core/kicad-patches

werner at docs.openmoko.org werner at docs.openmoko.org
Fri May 22 06:55:35 CEST 2009


Author: werner
Date: 2009-05-22 06:55:35 +0200 (Fri, 22 May 2009)
New Revision: 5016

Modified:
   trunk/gta02-core/kicad-patches/gerbview-export-arcs.patch
   trunk/gta02-core/kicad-patches/series
Log:
This patch adds support for exporting arcs from gerbview to pcbnew.
Note that this only handles arcs in non-copper layers.



Modified: trunk/gta02-core/kicad-patches/gerbview-export-arcs.patch
===================================================================
--- trunk/gta02-core/kicad-patches/gerbview-export-arcs.patch	2009-05-22 04:51:25 UTC (rev 5015)
+++ trunk/gta02-core/kicad-patches/gerbview-export-arcs.patch	2009-05-22 04:55:35 UTC (rev 5016)
@@ -1,34 +1,26 @@
-Work in progress.
+Add support for exporting arcs in non-copper layers to gerbview.
 
-Add support for exporting arcs to gerbview.
+- Werner
 
+---
+
 Index: kicad/gerbview/export_to_pcbnew.cpp
 ===================================================================
---- kicad.orig/gerbview/export_to_pcbnew.cpp	2009-05-19 18:57:52.000000000 -0300
-+++ kicad/gerbview/export_to_pcbnew.cpp	2009-05-19 20:49:23.000000000 -0300
-@@ -94,7 +94,7 @@
- 
-     fprintf( File, "$SETUP\n" );
-     sprintf( text, "InternalUnit %f INCH\n", 1.0 / PCB_INTERNAL_UNIT );
--    fprintf( File, text );
-+    fprintf( File, "%s", text );
- 
-     Pcb->m_BoardSettings->m_CopperLayerCount = g_DesignSettings.m_CopperLayerCount;
-     fprintf( File, "Layers %d\n", g_DesignSettings.m_CopperLayerCount );
-@@ -165,6 +165,20 @@
+--- kicad.orig/gerbview/export_to_pcbnew.cpp	2009-05-21 23:00:00.000000000 -0300
++++ kicad/gerbview/export_to_pcbnew.cpp	2009-05-22 01:42:40.000000000 -0300
+@@ -165,6 +162,19 @@
              drawitem->m_End   = track->m_End;
              drawitem->m_Width = track->m_Width;
  
 +	    if( track->m_Shape == S_ARC )
 +	    {
-+		double cx = -track->m_Param;
++		double cx = track->m_Param;
 +		double cy = track->GetSubNet();
 +		double a = atan2( track->m_Start.y-cy, track->m_Start.x-cx );
 +		double b = atan2( track->m_End.y-cy, track->m_End.x-cx );
 +
 +		drawitem->m_Shape = S_ARC;
-+		drawitem->m_Angle = (b-a)/M_PI*1800.0;
-+		drawitem->m_End = drawitem->m_Start;
++		drawitem->m_Angle = fmod((a-b)/M_PI*1800.0+3600.0, 3600.0);
 +		drawitem->m_Start.x = cx;
 +		drawitem->m_Start.y = cy;
 +	    }
@@ -36,67 +28,3 @@
              pcb->Add( drawitem );
          }
          else
-@@ -198,6 +212,9 @@
-                 newtrack->SetLayer( pcb_layer_number );
-             }
- 
-+fprintf(stderr, "%d %d\n", track->m_Shape, newtrack->m_Shape);
-+//if (newtrack->m_Shape == S_ARC_RECT)
-+//  newtrack->m_Shape = S_ARC;
-             pcb->Add( newtrack );
-         }
-     }
-Index: kicad/gerbview/rs274d.cpp
-===================================================================
---- kicad.orig/gerbview/rs274d.cpp	2009-05-19 19:38:42.000000000 -0300
-+++ kicad/gerbview/rs274d.cpp	2009-05-19 19:39:24.000000000 -0300
-@@ -11,6 +11,9 @@
- #include "pcbplot.h"
- #include "protos.h"
- 
-+#undef D
-+#define D(x)
-+
- #define IsNumber( x ) ( ( ( (x) >= '0' ) && ( (x) <='9' ) )   \
-                        || ( (x) == '-' ) || ( (x) == '+' )  || ( (x) == '.' ) )
- 
-Index: kicad/gerbview/rs274x.cpp
-===================================================================
---- kicad.orig/gerbview/rs274x.cpp	2009-05-19 19:40:34.000000000 -0300
-+++ kicad/gerbview/rs274x.cpp	2009-05-19 19:40:41.000000000 -0300
-@@ -10,6 +10,9 @@
- #include "pcbplot.h"
- #include "protos.h"
- 
-+#undef D
-+#define D(x)
-+
- #define CODE( x, y ) ( ( (x) << 8 ) + (y) )
- 
- enum RS274X_PARAMETERS {
-Index: kicad/gerbview/tracepcb.cpp
-===================================================================
---- kicad.orig/gerbview/tracepcb.cpp	2009-05-19 19:36:58.000000000 -0300
-+++ kicad/gerbview/tracepcb.cpp	2009-05-19 19:37:04.000000000 -0300
-@@ -129,7 +129,7 @@
-         if( !(track->ReturnMaskLayer() & printmasklayer) )
-             continue;
- 
--        D(printf("D:%p\n", track );)
-+        //D(printf("D:%p\n", track );)
- 
-         if( track->GetNet() == 0 )  // StartPoint
-         {
-Index: kicad/gerbview/trpiste.cpp
-===================================================================
---- kicad.orig/gerbview/trpiste.cpp	2009-05-19 19:36:58.000000000 -0300
-+++ kicad/gerbview/trpiste.cpp	2009-05-19 19:37:15.000000000 -0300
-@@ -43,7 +43,7 @@
-         if( !(track->ReturnMaskLayer() & printmasklayer) )
-             continue;
- 
--        D(printf("D:%p\n", track );)
-+        //D(printf("D:%p\n", track );)
- 
-         if( dcode_hightlight == track->GetNet() && track->GetLayer()==layer )
-             Trace_Segment( panel, DC, track, draw_mode | GR_SURBRILL );

Modified: trunk/gta02-core/kicad-patches/series
===================================================================
--- trunk/gta02-core/kicad-patches/series	2009-05-22 04:51:25 UTC (rev 5015)
+++ trunk/gta02-core/kicad-patches/series	2009-05-22 04:55:35 UTC (rev 5016)
@@ -11,6 +11,8 @@
 # under discussion
 fix-pinedit-collision.patch
 
+# pending
+gerbview-export-arcs.patch
+
 # Work in progress
 #drag-override.patch
-#gerbview-export-arcs.patch




More information about the commitlog mailing list