forked from hamish2014/FreeCAD_drawing_dimensioning
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeleteDimension.py
78 lines (69 loc) · 3.33 KB
/
deleteDimension.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from dimensioning import *
import selectionOverlay, previewDimension
d = DimensioningProcessTracker()
def deleteDimension( event, referer, elementXML, elementParms, elementViewObject ):
debugPrint(2, 'deleting dimension %s' % elementViewObject.Name)
FreeCAD.ActiveDocument.openTransaction("Delete %s" % elementViewObject.Name)
FreeCAD.ActiveDocument.removeObject( elementViewObject.Name )
FreeCAD.ActiveDocument.commitTransaction()
recomputeWithOutViewReset(d.drawingVars)
FreeCADGui.Control.closeDialog()
if d.endFunction <> None:
previewDimension.preview.dimensioningProcessTracker = d
previewDimension.timer.start( 1 )
class deleteAllButton:
def deleteAllDimensions( self, arg1=None):
try :
FreeCAD.ActiveDocument.openTransaction("Delete All Dimensions")
debugPrint(2,'Deleting all dimensioning objects')
#FreeCAD.ActiveDocument.openTransaction("Delete All Dim. Objects")
for obj in d.drawingVars.page.Group:
if hasattr(obj,'Proxy') and isinstance(obj.Proxy, Proxy_DimensionObject_prototype):
FreeCAD.ActiveDocument.removeObject( obj.Name )
FreeCAD.ActiveDocument.commitTransaction()
#FreeCAD.ActiveDocument.commitTransaction()# ah undo not working ...
recomputeWithOutViewReset(d.drawingVars)
FreeCADGui.Control.closeDialog()
except:
errorMessagebox_with_traceback()
def generateWidget( self, dimensioningProcess ):
button = QtGui.QPushButton('Delete All')
button.clicked.connect( self.deleteAllDimensions )
return button
d.dialogWidgets.append( deleteAllButton() )
class UndoInfoText:
def generateWidget( self, dimensioningProcess ):
vbox = QtGui.QVBoxLayout()
vbox.addWidget( QtGui.QLabel('To undo a deletion:') )
vbox.addWidget( QtGui.QLabel(' 1) Undo') )
vbox.addWidget( QtGui.QLabel(' 2) Recompute Document') )
return vbox
d.dialogWidgets.append( UndoInfoText() )
maskBrush = QtGui.QBrush( QtGui.QColor(160,0,0,100) )
maskPen = QtGui.QPen( QtGui.QColor(160,0,0,100) )
maskPen.setWidth(0.0)
maskHoverPen = QtGui.QPen( QtGui.QColor(255,0,0,255) )
maskHoverPen.setWidth(0.0)
class DeleteDimension:
def Activated(self):
V = getDrawingPageGUIVars()
d.activate(V, dialogTitle='Delete Dimension', dialogIconPath=':/dd/icons/deleteDimension.svg' , endFunction=self.Activated, grid=False)
selectionOverlay.generateSelectionGraphicsItems(
[obj for obj in V.page.Group if hasattr(obj,'Proxy') and isinstance(obj.Proxy, Proxy_DimensionObject_prototype)],
doSelectViewObjectPoints = True,
onClickFun=deleteDimension,
sceneToAddTo = V.graphicsScene,
transform = V.transform,
pointWid=1.0,
maskPen=maskPen,
maskHoverPen=maskHoverPen,
maskBrush = maskBrush
)
selectionOverlay.addProxyRectToRescaleGraphicsSelectionItems( V.graphicsScene, V.graphicsView, V.width, V.height)
def GetResources(self):
return {
'Pixmap' : ':/dd/icons/deleteDimension.svg',
'MenuText': 'Delete Dimension',
'ToolTip': 'Delete a dimension'
}
FreeCADGui.addCommand('dd_deleteDimension', DeleteDimension())