improved fix

This commit is contained in:
bouni
2022-12-28 13:31:41 +00:00
parent fd60d70cda
commit 4889e01401
2 changed files with 35 additions and 35 deletions

View File

@ -12,14 +12,23 @@
#import pcbnew;pcbnew.GetWizardsBackTrace() #import pcbnew;pcbnew.GetWizardsBackTrace()
__version__ = '1.2.2' __version__ = '1.2.2'
import datetime import sys, os
import os
import sys
import pcbnew import pcbnew
import datetime
import wx import wx
from pcbnew import * 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 use_grid_origin = True
gridReference = 0.1 #1.27 #mm pcbnew.FromMM(1.0) #0.1mm 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): def Run(self):
#self.pcb = GetBoard() #self.pcb = GetBoard()
import os import sys,os
import sys
#mm_ius = 1000000.0 #mm_ius = 1000000.0
#_pcbnew_frame = [x for x in wx.GetTopLevelWindows() if x.GetTitle().lower().startswith('pcbnew')][0] #_pcbnew_frame = [x for x in wx.GetTopLevelWindows() if x.GetTitle().lower().startswith('pcbnew')][0]
pcbnew_window = find_pcbnew_w() pcbnew_window = find_pcbnew_w()
@ -158,9 +165,6 @@ def snap2grid(gridSizeMM,use_grid):
#print(mpxOnG,mpyOnG) #print(mpxOnG,mpyOnG)
locked='' locked=''
if not module.IsLocked(): 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: else:
locked='LOCKED' locked='LOCKED'
@ -184,9 +188,6 @@ def snap2grid(gridSizeMM,use_grid):
#print(mpxOnG,mpyOnG) #print(mpxOnG,mpyOnG)
locked='' locked=''
if not module.IsLocked(): 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: else:
locked='LOCKED' locked='LOCKED'
@ -208,9 +209,6 @@ def snap2grid(gridSizeMM,use_grid):
mpyOnG = int(mpy/FromMM(gridSizeMM))*FromMM(gridSizeMM) #+ auxOrigin.y mpyOnG = int(mpy/FromMM(gridSizeMM))*FromMM(gridSizeMM) #+ auxOrigin.y
locked='' locked=''
if not module.IsLocked(): 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: else:
locked='LOCKED' locked='LOCKED'
@ -222,10 +220,7 @@ def snap2grid(gridSizeMM,use_grid):
Value = str(module.GetValue()) Value = str(module.GetValue())
Value=(Value[:17] + '..') if len(Value) > 19 else Value Value=(Value[:17] + '..') if len(Value) > 19 else Value
Value="{0:<20}".format(Value) Value="{0:<20}".format(Value)
if "6.99" in GetBuildVersion(): Rotation='{0:.1f}'.format(getOrientation(module))
Rotation='{0:.1f}'.format((module.GetOrientation().AsDegrees()/10))
else:
Rotation='{0:.1f}'.format((module.GetOrientation()/10))
Rotation="{0:>6}".format(Rotation)+' ' Rotation="{0:>6}".format(Rotation)+' '
if module.GetLayer() == 0: if module.GetLayer() == 0:
Layer=" top" Layer=" top"

View File

@ -6,15 +6,25 @@
# #
# #
import datetime
import os
#import snaptogrid; import importlib; importlib.reload(snaptogrid) #import snaptogrid; import importlib; importlib.reload(snaptogrid)
import sys import sys, os
import pcbnew import pcbnew
import datetime
import wx import wx
from pcbnew import * 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 use_grid_origin = True
gridReference = 0.127 #1.27 #mm pcbnew.FromMM(1.0) #0.1mm 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): def Snap2Grid(gridSizeMM,use_grid_origin):
import os import sys,os
import sys
#mm_ius = 1000000.0 #mm_ius = 1000000.0
pcb = pcbnew.GetBoard() pcb = pcbnew.GetBoard()
@ -51,9 +59,6 @@ def Snap2Grid(gridSizeMM,use_grid_origin):
mpxOnG = int(mpx/FromMM(gridSizeMM))*FromMM(gridSizeMM)+ gridOrigin.x mpxOnG = int(mpx/FromMM(gridSizeMM))*FromMM(gridSizeMM)+ gridOrigin.x
mpyOnG = int(mpy/FromMM(gridSizeMM))*FromMM(gridSizeMM)+ gridOrigin.y mpyOnG = int(mpy/FromMM(gridSizeMM))*FromMM(gridSizeMM)+ gridOrigin.y
print(mpxOnG,mpyOnG) 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=str(module.GetPosition().x) # - gridOrigin.x)
#X_POS='{0:.4f}'.format(pcbnew.ToMM(module.GetPosition().x - gridOrigin.x )) #X_POS='{0:.4f}'.format(pcbnew.ToMM(module.GetPosition().x - gridOrigin.x ))
@ -77,7 +82,7 @@ def Snap2Grid(gridSizeMM,use_grid_origin):
Value = str(module.GetValue()) Value = str(module.GetValue())
Value=(Value[:17] + '..') if len(Value) > 19 else Value Value=(Value[:17] + '..') if len(Value) > 19 else Value
Value="{0:<20}".format(Value) Value="{0:<20}".format(Value)
Rotation='{0:.1f}'.format((module.GetOrientation()/10)) Rotation='{0:.1f}'.format(getOrientation(module))
Rotation="{0:>6}".format(Rotation)+' ' Rotation="{0:>6}".format(Rotation)+' '
if module.GetLayer() == 0: if module.GetLayer() == 0:
Layer=" top" Layer=" top"