Skip to content

Commit

Permalink
adding Undo on loading pcb/tracks to avoid issues on deleting objects
Browse files Browse the repository at this point in the history
  • Loading branch information
easyw committed Jan 10, 2022
1 parent be679a8 commit 47246ef
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 6 deletions.
6 changes: 3 additions & 3 deletions InitGui.py
Expand Up @@ -10,13 +10,13 @@
#* Kicad STEPUP (TM) is a TradeMark and cannot be freely usable *
#* *

ksu_wb_version='v 10.9.3'
ksu_wb_version='v 10.10.1'
global myurlKWB, ksuWBpath
myurlKWB='https://github.com/easyw/kicadStepUpMod'
global mycommitsKWB
mycommitsKWB=506 # v10.9.3
mycommitsKWB=507 # v10.10.1
global verKSU
verKSU="10.2.0"
verKSU="10.3.1"

import FreeCAD, FreeCADGui, Part, os, sys
import re, time
Expand Down
9 changes: 8 additions & 1 deletion kicadStepUpCMD.py
Expand Up @@ -28,7 +28,7 @@
import constrainator
from constrainator import add_constraints, sanitizeSkBsp

ksuCMD_version__='2.0.5'
ksuCMD_version__='2.0.6'


precision = 0.1 # precision in spline or bezier conversion
Expand Down Expand Up @@ -3406,7 +3406,14 @@ def IsActive(self):
def Activated(self):
# do something here...
import tracks
if FreeCAD.ActiveDocument is not None:
doc = FreeCAD.ActiveDocument
else:
doc = FreeCAD.newDocument()
doc.commitTransaction()
doc.openTransaction('add_tracks_kicad')
tracks.addtracks()
doc.commitTransaction()

FreeCADGui.addCommand('ksuToolsAddTracks',ksuToolsAddTracks())
#####
Expand Down
13 changes: 12 additions & 1 deletion kicadStepUptools.py
Expand Up @@ -495,7 +495,7 @@
pythonopen = builtin.open # to distinguish python built-in open function from the one declared here

## Constant definitions
___ver___ = "10.2.0"
___ver___ = "10.3.1"
__title__ = "kicad_StepUp"
__author__ = "maurice & mg"
__Comment__ = 'Kicad STEPUP(TM) (3D kicad board and models exported to STEP) for FreeCAD'
Expand Down Expand Up @@ -6740,6 +6740,9 @@ def onLoadBoard(file_name=None,load_models=None,insert=None):
say('Pcb not present')
else:
doc=FreeCAD.newDocument(fname)
doc.commitTransaction()
doc.openTransaction('opening_kicad')
say('opening Transaction \'opening_kicad\'')
pg = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/kicadStepUp")
pg.SetString("last_pcb_path", make_string(last_pcb_path)) # py3 .decode("utf-8")
#pg.SetString("last_pcb_path", last_pcb_path.decode("utf-8"))
Expand Down Expand Up @@ -6800,6 +6803,8 @@ def onLoadBoard(file_name=None,load_models=None,insert=None):
#pcbThickness,modules,board_elab,mod_lines,mod_arcs,mod_circles=LoadKicadBoard(name)
#say(modules)
#routineDrawPCB(pcbThickness,board_elab,mod_lines,mod_arcs,mod_circles)
doc.commitTransaction()
say('closing Transaction \'opening_kicad\'')
else:
say(name+' missing\r')
stop
Expand Down Expand Up @@ -10060,6 +10065,10 @@ def routineDrawFootPrint(content,name):
doc=FreeCAD.activeDocument()
else:
doc=FreeCAD.newDocument()
#doc.UndoMode = 1
#doc.openTransaction()
doc.openTransaction('opening_kicad_footprint')
say('opening Transaction \'opening_kicad_footprint\'')
for obj in FreeCAD.ActiveDocument.Objects:
FreeCADGui.Selection.removeSelection(obj)

Expand Down Expand Up @@ -10772,6 +10781,8 @@ def routineDrawFootPrint(content,name):
#pads_found=getPadsList(content)
else:
sayerr('internal layers not supported or fotprint empty')
doc.commitTransaction()
say('closing Transaction \'opening_kicad_footprint\'')
###

def routineDrawIDF(doc,filename):
Expand Down
2 changes: 1 addition & 1 deletion package.xml
Expand Up @@ -2,7 +2,7 @@
<package format="1" xmlns="https://wiki.freecad.org/Package_Metadata">
<name>KicadStepUp Workbench</name>
<description>A bidirectional ECAD/MCAD collaboration between KiCAD and FreeCAD.</description>
<version>10.9.3</version>
<version>10.10.1</version>
<maintainer email="easyw@katamail.com">Maui</maintainer>
<license file="LICENSE">AGPLv3.0</license>
<url type="repository" branch="master">https://github.com/easyw/kicadStepUpMod</url>
Expand Down

0 comments on commit 47246ef

Please sign in to comment.