Skip to content

Latest commit

 

History

History
89 lines (55 loc) · 2.98 KB

TechDraw_PageTemplate.md

File metadata and controls

89 lines (55 loc) · 2.98 KB

  • GuiCommand: Name: TechDraw PageTemplate MenuLocation: TechDraw -> Page -> Insert Page using Template Workbenches: TechDraw_Workbench SeeAlso: TechDraw_PageDefault, TechDraw_Templates

TechDraw PageTemplate

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

{{TechDraw Tools navi}}


documentation index > TechDraw > TechDraw PageTemplate