|
|
| Menu location |
|---|
| TechDraw → Page → New Page From Template |
| Workbenches |
| TechDraw |
| Default shortcut |
| None |
| Introduced in version |
| - |
| See also |
| TechDraw PageDefault, TechDraw Templates |
Description
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
Usage
- An active document must exist.
- There are several ways to invoke the tool:
- Press the
New Page From Template button.
- Select the TechDraw → Page →
New Page From Template option from the menu.
- Press the
Properties
See TechDraw PageDefault.
Scripting
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()
Editable text fields
See also: TechDraw Templates for more information on creating templates.
Once a new Page object has been created, its Template attribute links to the embedded Template object that 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
To edit individual fields the setEditFieldContent method of the linked Template object can be used:
page.Template.setEditFieldContent("FC-Title", "Another title of my page")
This page is retrieved from https://wiki.freecad.org/TechDraw_PageTemplate