From 4889e014016cb924aa15aa4ec7ca052eba25d06c Mon Sep 17 00:00:00 2001 From: bouni Date: Wed, 28 Dec 2022 13:31:41 +0000 Subject: [PATCH] improved fix --- Snap2Grid/snap2grid.py | 41 +++++++++++++++------------------- Snap2Grid/snaptogrid_script.py | 29 ++++++++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/Snap2Grid/snap2grid.py b/Snap2Grid/snap2grid.py index 7bfd9e3..7aa8828 100644 --- a/Snap2Grid/snap2grid.py +++ b/Snap2Grid/snap2grid.py @@ -12,14 +12,23 @@ #import pcbnew;pcbnew.GetWizardsBackTrace() __version__ = '1.2.2' -import datetime -import os -import sys - +import sys, os import pcbnew +import datetime import wx from pcbnew import * +# Make snap2grid compatible with KiCAD 6.99 +if "6.99" in GetBuildVersion(): + wxPoint = VECTOR2I + +def getOrientation(fp): + o = fp.GetOrientation() + if "6.99" in GetBuildVersion(): + return o.AsDegrees() + return o / 10 + + use_grid_origin = True gridReference = 0.1 #1.27 #mm pcbnew.FromMM(1.0) #0.1mm @@ -101,9 +110,7 @@ class snap_to_grid( pcbnew.ActionPlugin ): def Run(self): #self.pcb = GetBoard() - import os - import sys - + import sys,os #mm_ius = 1000000.0 #_pcbnew_frame = [x for x in wx.GetTopLevelWindows() if x.GetTitle().lower().startswith('pcbnew')][0] pcbnew_window = find_pcbnew_w() @@ -158,10 +165,7 @@ def snap2grid(gridSizeMM,use_grid): #print(mpxOnG,mpyOnG) locked='' if not module.IsLocked(): - if "6.99" in GetBuildVersion(): - module.SetPosition(VECTOR2I(mpxOnG,mpyOnG)) - else: - module.SetPosition(wxPoint(mpxOnG,mpyOnG)) + module.SetPosition(wxPoint(mpxOnG,mpyOnG)) else: locked='LOCKED' X_POS=str(module.GetPosition().x) # - gridOrigin.x) @@ -184,10 +188,7 @@ def snap2grid(gridSizeMM,use_grid): #print(mpxOnG,mpyOnG) locked='' if not module.IsLocked(): - if "6.99" in GetBuildVersion(): - module.SetPosition(VECTOR2I(mpxOnG,mpyOnG)) - else: - module.SetPosition(wxPoint(mpxOnG,mpyOnG)) + module.SetPosition(wxPoint(mpxOnG,mpyOnG)) else: locked='LOCKED' X_POS=str(module.GetPosition().x) # - gridOrigin.x) @@ -208,10 +209,7 @@ def snap2grid(gridSizeMM,use_grid): mpyOnG = int(mpy/FromMM(gridSizeMM))*FromMM(gridSizeMM) #+ auxOrigin.y locked='' if not module.IsLocked(): - if "6.99" in GetBuildVersion(): - module.SetPosition(VECTOR2I(mpxOnG,mpyOnG)) - else: - module.SetPosition(wxPoint(mpxOnG,mpyOnG)) + module.SetPosition(wxPoint(mpxOnG,mpyOnG)) else: locked='LOCKED' X_POS=str(module.GetPosition().x) # - gridOrigin.x) @@ -222,10 +220,7 @@ def snap2grid(gridSizeMM,use_grid): Value = str(module.GetValue()) Value=(Value[:17] + '..') if len(Value) > 19 else Value Value="{0:<20}".format(Value) - if "6.99" in GetBuildVersion(): - Rotation='{0:.1f}'.format((module.GetOrientation().AsDegrees()/10)) - else: - Rotation='{0:.1f}'.format((module.GetOrientation()/10)) + Rotation='{0:.1f}'.format(getOrientation(module)) Rotation="{0:>6}".format(Rotation)+' ' if module.GetLayer() == 0: Layer=" top" diff --git a/Snap2Grid/snaptogrid_script.py b/Snap2Grid/snaptogrid_script.py index 7956c9a..fe9ec98 100644 --- a/Snap2Grid/snaptogrid_script.py +++ b/Snap2Grid/snaptogrid_script.py @@ -6,15 +6,25 @@ # # -import datetime -import os #import snaptogrid; import importlib; importlib.reload(snaptogrid) -import sys - +import sys, os import pcbnew +import datetime import wx from pcbnew import * + +# Make snap2grid compatible with KiCAD 6.99 +if "6.99" in GetBuildVersion(): + wxPoint = VECTOR2I + +def getOrientation(fp): + o = fp.GetOrientation() + if "6.99" in GetBuildVersion(): + return o.AsDegrees() + return o / 10 + + use_grid_origin = True gridReference = 0.127 #1.27 #mm pcbnew.FromMM(1.0) #0.1mm @@ -32,9 +42,7 @@ gridReference = 0.127 #1.27 #mm pcbnew.FromMM(1.0) #0.1mm def Snap2Grid(gridSizeMM,use_grid_origin): - import os - import sys - + import sys,os #mm_ius = 1000000.0 pcb = pcbnew.GetBoard() @@ -51,10 +59,7 @@ def Snap2Grid(gridSizeMM,use_grid_origin): mpxOnG = int(mpx/FromMM(gridSizeMM))*FromMM(gridSizeMM)+ gridOrigin.x mpyOnG = int(mpy/FromMM(gridSizeMM))*FromMM(gridSizeMM)+ gridOrigin.y print(mpxOnG,mpyOnG) - if "6.99" in GetBuildVersion(): - module.SetPosition(VECTOR2I(mpxOnG,mpyOnG)) - else: - module.SetPosition(wxPoint(mpxOnG,mpyOnG)) + module.SetPosition(wxPoint(mpxOnG,mpyOnG)) X_POS=str(module.GetPosition().x) # - gridOrigin.x) #X_POS='{0:.4f}'.format(pcbnew.ToMM(module.GetPosition().x - gridOrigin.x )) X_POS="{0:<11}".format(X_POS) @@ -77,7 +82,7 @@ def Snap2Grid(gridSizeMM,use_grid_origin): Value = str(module.GetValue()) Value=(Value[:17] + '..') if len(Value) > 19 else Value Value="{0:<20}".format(Value) - Rotation='{0:.1f}'.format((module.GetOrientation()/10)) + Rotation='{0:.1f}'.format(getOrientation(module)) Rotation="{0:>6}".format(Rotation)+' ' if module.GetLayer() == 0: Layer=" top"