TechDraw PageTemplate: Difference between revisions

From FreeCAD Documentation
(Marked this version for translation)
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 52: Line 52:


<!--T:23-->
<!--T:23-->
To add a page based on a selected template to the active document:
A Page based on a selected template can be created with [[Macros|macros]] and from the [[Python|Python]] console by using the following functions:


</translate>
</translate>

Latest revision as of 18:26, 24 July 2023

TechDraw PageTemplate

Menu location
TechDraw → Page → Insert Page using 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:

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