[Draft] Update DraftEdit PR with Yorik suggestions

Cleanings of import at the beginning of new module.
Moved command setup in InitGui and removed import DraftEdit from DraftTools.
This commit is contained in:
carlopav
2019-06-16 11:38:17 +02:00
committed by Yorik van Havre
parent 555d04c221
commit 4ee893b78a
3 changed files with 44 additions and 20 deletions

View File

@@ -1,22 +1,40 @@
import sys, os, FreeCAD, FreeCADGui, WorkingPlane, math, re, Draft, Part, Draft_rc, DraftVecUtils
# -*- coding: utf8 -*-
#***************************************************************************
#* *
#* Copyright (c) 2009, 2010 *
#* Yorik van Havre <yorik@uncreated.net>, Ken Cline <cline@frii.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
__title__="FreeCAD Draft Edit Tool"
__author__ = "Yorik van Havre, Werner Mayer, Martin Burbaum, Ken Cline, Dmitry Chigrin"
__url__ = "http://www.freecadweb.org"
import FreeCAD, FreeCADGui, Draft, DraftTools, math
from FreeCAD import Vector
if FreeCAD.GuiUp:
import FreeCADGui
from PySide import QtGui,QtCore
from DraftTools import translate
from PySide.QtCore import QT_TRANSLATE_NOOP
else:
def translate(ctxt,txt):
return txt
def QT_TRANSLATE_NOOP(ctxt,txt):
return txt
from DraftSnap import *
from DraftTrackers import *
from pivy import coin
import DraftTools
from PySide import QtCore
from PySide.QtCore import QT_TRANSLATE_NOOP
from DraftTools import translate
class Edit():
"The Draft_Edit FreeCAD command definition"
@@ -400,6 +418,7 @@ class Edit():
self.resetTrackers()
def addPointToCurve(self,point,info=None):
import Part
if not (Draft.getType(self.obj) in ["BSpline","BezCurve"]): return
pts = self.obj.Points
if Draft.getType(self.obj) == "BezCurve":
@@ -549,7 +568,7 @@ class Edit():
if Draft.getType(self.obj) in ["BezCurve"]:
pts = self.recomputePointsBezier(pts,self.editing,v,self.obj.Degree,moveTrackers=False)
# check that the new point lies on the plane of the wire
import DraftGeomUtils
import DraftGeomUtils, DraftVecUtils
if self.obj.Closed:
n = DraftGeomUtils.getNormal(self.obj.Shape)
dv = editPnt.sub(pts[self.editing])
@@ -620,6 +639,8 @@ class Edit():
self.finish()
def resetTrackersBezier(self):
#in future move tracker definition to DraftTrackers
from pivy import coin
knotmarkers = (coin.SoMarkerSet.DIAMOND_FILLED_9_9,#sharp
coin.SoMarkerSet.SQUARE_FILLED_9_9, #tangent
coin.SoMarkerSet.HOURGLASS_FILLED_9_9) #symmetric
@@ -738,6 +759,7 @@ class Edit():
self.by = self.by.negative()
def updateRectangle(self,v):
import DraftVecUtils
delta = v.sub(self.obj.Placement.Base)
if self.editing == 0:
p = self.obj.Placement
@@ -834,6 +856,7 @@ class Edit():
self.updateCirclePts(0,1,1,1)
elif self.arc3Pt == False:
import Part
if self.editing == 0:#center point
import DraftVecUtils
p1 = self.obj.Shape.Vertexes[0].Point

View File

@@ -46,8 +46,6 @@ from DraftSnap import *
from DraftTrackers import *
from pivy import coin
import DraftEdit
#---------------------------------------------------------------------------
# Preflight stuff
#---------------------------------------------------------------------------
@@ -5822,7 +5820,6 @@ FreeCADGui.addCommand('Draft_Downgrade',Downgrade())
FreeCADGui.addCommand('Draft_Trimex',Trimex())
FreeCADGui.addCommand('Draft_Scale',Scale())
FreeCADGui.addCommand('Draft_Drawing',Drawing())
FreeCADGui.addCommand('Draft_Edit',DraftEdit.Edit())
FreeCADGui.addCommand('Draft_Edit_Improved',EditImproved())
FreeCADGui.addCommand('Draft_AddPoint',AddPoint())
FreeCADGui.addCommand('Draft_DelPoint',DelPoint())

View File

@@ -67,12 +67,16 @@ class DraftWorkbench (Workbench):
# import Draft tools, icons
try:
import os,Draft_rc,DraftTools, DraftGui
import DraftEdit
from DraftTools import translate
FreeCADGui.addLanguagePath(":/translations")
FreeCADGui.addIconPath(":/icons")
except Exception as inst:
print(inst)
FreeCAD.Console.PrintError("Error: Initializing one or more of the Draft modules failed, Draft will not work as expected.\n")
# setup commands
FreeCADGui.addCommand('Draft_Edit',DraftEdit.Edit())
# setup menus
self.cmdList = ["Draft_Line","Draft_Wire","Draft_Circle","Draft_ArcTools","Draft_Ellipse",