--- pcbnew/scripting/pcbnew.i.old 2014-10-11 12:29:01.000000000 +0200 +++ pcbnew/scripting/pcbnew.i 2014-10-11 21:43:10.640380605 +0200 @@ -93,6 +93,7 @@ #include #include #include + #include #include #include #include @@ -129,6 +130,7 @@ %include %include %include +%include %include %include %include --- pcbnew/scripting/board_item.i.old 2014-10-11 12:29:01.000000000 +0200 +++ pcbnew/scripting/board_item.i 2014-10-11 22:14:23.420335733 +0200 @@ -37,6 +37,7 @@ %extend BOARD_ITEM { + PCB_TARGET* Cast_to_PCB_TARGET() { return dynamic_cast(self); } TEXTE_PCB* Cast_to_TEXTE_PCB() { return dynamic_cast(self); } DIMENSION* Cast_to_DIMENSION() { return dynamic_cast(self); } MODULE* Cast_to_MODULE() { return dynamic_cast(self); } @@ -47,8 +48,8 @@ EDGE_MODULE* Cast_to_EDGE_MODULE() { return dynamic_cast(self); } D_PAD* Cast_to_D_PAD() { return dynamic_cast(self); } TRACK* Cast_to_TRACK() { return dynamic_cast(self); } - ZONE_CONTAINER* Cast_to_ZONE_CONTAINER() { return dynamic_cast(self);} VIA* Cast_to_VIA() { return dynamic_cast(self); } + ZONE_CONTAINER* Cast_to_ZONE_CONTAINER() { return dynamic_cast(self);} %pythoncode @@ -77,9 +78,12 @@ return self.Cast_to_VIA() elif ct=="TRACK": return self.Cast_to_TRACK() + elif ct=="PCB_TARGET": + return self.Cast_to_PCB_TARGET() elif ct=="ZONE_CONTAINER": return self.Cast_to_ZONE_CONTAINER() else: + print("Warning: Uncatched Cast() to %s" % ct) return None --- pcbnew/class_mire.h.old 2014-10-11 23:53:51.394626461 +0200 +++ pcbnew/class_mire.h 2014-10-11 23:57:14.451290771 +0200 @@ -89,6 +89,11 @@ */ bool HitTest( const EDA_RECT& aRect, bool aContained = true, int aAccuracy = 0 ) const; + wxString GetClass() const + { + return wxT( "PCB_TARGET" ); + } + // Virtual function const EDA_RECT GetBoundingBox() const;