- GuiCommand: Name: TechDraw PageTemplate MenuLocation: TechDraw -> Page -> Insert Page using Template Workbenches: TechDraw_Workbench SeeAlso: TechDraw_PageDefault, TechDraw_Templates
The TechDraw PageTemplate tool creates a new Page object using the template file selected from a dialog.
The starting directory for the dialog can be specified in the TechDraw Preferences.
*One of the templates that comes with TechDraw: A4_Landscape_ISO7200_Pep.svg*- An active document must exist.
- There are several ways to invoke the tool:
- Press the Insert Page using Template button.
- Select the TechDraw → Page → Insert Page using Template option from the menu.
See TechDraw PageDefault.
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
A Page based on a selected template can be created with macros and from the Python console by using the following functions:
import FreeCAD as App
from PySide import QtGui
doc = App.ActiveDocument
default_dir = App.getResourceDir() + "Mod/TechDraw/Templates"
param = App.ParamGet("User parameter:BaseApp/Preferences/Mod/TechDraw/Files")
template_dir = param.GetString("TemplateDir", default_dir)
template_file = QtGui.QFileDialog.getOpenFileName(QtGui.QApplication.activeWindow(),
"Select a Template File",
template_dir,
"Template (*.svg)")
page = doc.addObject("TechDraw::DrawPage", "Page")
template = doc.addObject("TechDraw::DrawSVGTemplate", "Template")
template.Template = template_file[0]
page.Template = template
doc.recompute()
See also:
TechDraw Templates for more information on creating templates.
Once a new page has been created, its Template
attribute holds an EditableTexts
dictionary with the name of the editable fields (keys) and their textual values. Copy this dictionary to a variable, make changes, and then re-assign the dictionary to the EditableTexts
attribute to see the changes.
page = FreeCAD.ActiveDocument.Page
texts = page.Template.EditableTexts
for key, value in texts.items():
print("{0} = {1}".format(key, value))
texts["FC-Title"] = "The title of my page"
page.Template.EditableTexts = texts
{{TechDraw Tools navi}}
⏵ documentation index > TechDraw > TechDraw PageTemplate