TechDraw PageTemplate/en

TechDraw PageTemplate

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

  1. An active document must exist.
  2. 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.

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")