This commit is contained in:
benj5378
2022-01-24 22:47:42 +01:00
committed by WandererFan
parent b64b5f78b0
commit d2fff3465f
3 changed files with 83 additions and 67 deletions

View File

@@ -1,26 +1,26 @@
#***************************************************************************
#* Copyright (c) 2002 Juergen Riegel <juergen.riegel@web.de> *
#* *
#* This file is part of the FreeCAD CAx development system. *
#* *
#* 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. *
#* *
#* FreeCAD 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 Lesser General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with FreeCAD; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************/
# ***************************************************************************
# * Copyright (c) 2002 Juergen Riegel <juergen.riegel@web.de> *
# * *
# * This file is part of the FreeCAD CAx development system. *
# * *
# * 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. *
# * *
# * FreeCAD 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 Lesser General Public License for more details. *
# * *
# * You should have received a copy of the GNU Library General Public *
# * License along with FreeCAD; if not, write to the Free Software *
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
# * USA *
# * *
# ***************************************************************************/
# FreeCAD init script of the TechDraw module
FreeCAD.__unit_test__ += [ "TestTechDrawApp" ]
FreeCAD.__unit_test__ += ["TestTechDrawApp"]

View File

@@ -1,25 +1,25 @@
#***************************************************************************
#* Copyright (c) 2002,2003 Juergen Riegel <juergen.riegel@web.de> *
#* *
#* This file is part of the FreeCAD CAx development system. *
#* *
#* 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. *
#* *
#* FreeCAD 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 Lesser General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with FreeCAD; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************/
# ***************************************************************************
# * Copyright (c) 2002,2003 Juergen Riegel <juergen.riegel@web.de> *
# * *
# * This file is part of the FreeCAD CAx development system. *
# * *
# * 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. *
# * *
# * FreeCAD 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 Lesser General Public License for more details. *
# * *
# * You should have received a copy of the GNU Library General Public *
# * License along with FreeCAD; if not, write to the Free Software *
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
# * USA *
# * *
# ***************************************************************************/
# TechDraw gui init module
#
@@ -28,26 +28,34 @@
# runs when the gui is up
class TechDrawWorkbench (Workbench):
class TechDrawWorkbench(Workbench):
"Technical Drawing workbench object"
def __init__(self):
self.__class__.Icon = FreeCAD.getResourceDir() + "Mod/TechDraw/Resources/icons/preferences-techdraw.svg"
self.__class__.Icon = (
FreeCAD.getResourceDir()
+ "Mod/TechDraw/Resources/icons/preferences-techdraw.svg"
)
self.__class__.MenuText = "TechDraw"
self.__class__.ToolTip = "Technical Drawing workbench"
def Initialize(self):
# load the module
try:
import TechDrawTools
except ImportError as err:
FreeCAD.Console.PrintError("Features from TechDrawTools package cannot be loaded. {err}\n".format(err= str(err)))
FreeCAD.Console.PrintError(
"Features from TechDrawTools package cannot be loaded. {err}\n".format(
err=str(err)
)
)
def GetClassName(self):
return "TechDrawGui::Workbench"
Gui.addWorkbench(TechDrawWorkbench())
# Append the export handler
FreeCAD.addExportType("Technical Drawing (*.svg *.dxf *.pdf)","TechDrawGui")
FreeCAD.addExportType("Technical Drawing (*.svg *.dxf *.pdf)", "TechDrawGui")

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#**************************************************************************
# **************************************************************************
# Copyright (c) 2018 WandererFan <wandererfan@gmail.com> *
# *
# This file is part of the FreeCAD CAx development system. *
@@ -20,7 +20,7 @@
# License along with FreeCAD; if not, write to the Free Software *
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
# USA *
#**************************************************************************
# **************************************************************************
# Name: moveView macro
# About: move Views from Drawing Page to TechDraw Page in the current doc
@@ -31,41 +31,49 @@
import FreeCAD
import FreeCADGui
svgHead = "<svg\n" + " xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"\n" + " xmlns:freecad=\"http://www.freecadweb.org/wiki/index.php?title=Svg_Namespace\">\n"
svgHead = (
"<svg\n"
+ ' xmlns="http://www.w3.org/2000/svg" version="1.1"\n'
+ ' xmlns:freecad="http://www.freecadweb.org/wiki/index.php?title=Svg_Namespace">\n'
)
svgTail = "\n</svg>"
def moveViews():
s = FreeCADGui.Selection.getSelection()
if len(s) != 2:
print ("Please select 1 Drawing Page and 1 TechDraw Page")
print("Please select 1 Drawing Page and 1 TechDraw Page")
return
print ("First object in selection is a: ", s[0].TypeId)
print ("Second object in selection is a: ", s[1].TypeId)
if s[0].isDerivedFrom("Drawing::FeaturePage") and \
s[1].isDerivedFrom("TechDraw::DrawPage"):
dPage = s[0]
tPage = s[1]
elif s[0].isDerivedFrom("TechDraw::DrawPage") and \
s[1].isDerivedFrom("Drawing::FeaturePage"):
print("First object in selection is a: ", s[0].TypeId)
print("Second object in selection is a: ", s[1].TypeId)
if s[0].isDerivedFrom("Drawing::FeaturePage") and s[1].isDerivedFrom(
"TechDraw::DrawPage"
):
dPage = s[0]
tPage = s[1]
elif s[0].isDerivedFrom("TechDraw::DrawPage") and s[1].isDerivedFrom(
"Drawing::FeaturePage"
):
tPage = s[0]
dPage = s[1]
else:
print ("Please select 1 Drawing Page and 1 TechDraw Page")
print("Please select 1 Drawing Page and 1 TechDraw Page")
return
i = 1
for o in dPage.OutList:
newName = "DraftView" + str(i).zfill(3)
print ("moving " + o.Name + " to " + newName)
print("moving " + o.Name + " to " + newName)
svg = svgHead + o.ViewResult + svgTail
no = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewSymbol',newName)
no = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewSymbol", newName)
no.Symbol = svg
tPage.addView(no)
i += 1
print ("moveViews moved " + str(i-1) + " views")
print("moveViews moved " + str(i - 1) + " views")
if __name__ == '__main__':
if __name__ == "__main__":
moveViews()