diff --git a/assembly.py b/assembly.py index 5e721cf..15a1e18 100644 --- a/assembly.py +++ b/assembly.py @@ -1542,19 +1542,11 @@ class AsmMovingPart(object): obj = self.assembly.Object pla = obj.ViewObject.DraggingPlacement - update = True rollback = [] if self.fixedTransform: fixed = self.fixedTransform movement = self.draggerPlacement.inverse().multiply(pla) - if not fixed.Shape: - # The moving part has completely fixed placement, so we move the - # parent assembly instead - rollback.append((obj.Name,obj,obj.Placement.copy())) - pla = obj.Placement.multiply(movement) - setPlacement(obj,pla) - update = False - else: + if fixed.Shape: # fixed position, so reset translation movement.Base = FreeCAD.Vector() if not utils.isVertex(fixed.Shape): @@ -1565,11 +1557,10 @@ class AsmMovingPart(object): movement.Rotation = FreeCAD.Rotation(yaw,0,0) pla = self.draggerPlacement.multiply(movement) - if update: - # obtain and update the part placement - pla = pla.multiply(self.offsetInv) - setPlacement(self.part,pla) - rollback.append((self.partName,self.part,self.oldPlacement.copy())) + # obtain and update the part placement + pla = pla.multiply(self.offsetInv) + setPlacement(self.part,pla) + rollback.append((self.partName,self.part,self.oldPlacement.copy())) if not gui.AsmCmdManager.AutoRecompute or \ QtGui.QApplication.keyboardModifiers()==QtCore.Qt.ControlModifier: diff --git a/solver.py b/solver.py index 5c4d602..c40f29d 100644 --- a/solver.py +++ b/solver.py @@ -53,8 +53,6 @@ class Solver(object): # TODO: this is ugly, need a better way to expose dragging interface addDragPoint = getattr(self.system,'addWhereDragged') if addDragPoint: - if dragPart in self._fixedParts: - raise RuntimeError('cannot drag fixed part') info = self._partMap.get(dragPart,None) if info: # add dragging point