#!/usr/bin/env python # -*- coding: utf-8 -*- # test script for TechDraw module # creates a page and 1 views # adds a hatch area to view1 from __future__ import print_function import FreeCAD import Part import Measure import TechDraw import os def DHatchTest(): path = os.path.dirname(os.path.abspath(__file__)) print ('TDHatch path: ' + path) templateFileSpec = path+'/TestTemplate.svg' hatchFileSpec = path + '/TestHatch.svg' FreeCAD.newDocument("TDHatch") FreeCAD.setActiveDocument("TDHatch") FreeCAD.ActiveDocument=FreeCAD.getDocument("TDHatch") #make source feature box = FreeCAD.ActiveDocument.addObject("Part::Box","Box") #make a page page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage','Page') FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate','Template') FreeCAD.ActiveDocument.Template.Template = templateFileSpec FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template page.Scale = 5.0 # page.ViewObject.show() #unit tests run in console mode #make Views view1 = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View') FreeCAD.ActiveDocument.View.Source = [box] rc = page.addView(view1) FreeCAD.ActiveDocument.recompute() #make hatch print("making hatch") hatch = FreeCAD.ActiveDocument.addObject('TechDraw::DrawHatch','Hatch') hatch.Source = (view1,["Face0"]) hatch.HatchPattern = hatchFileSpec #comment out to use default from preferences print("adding hatch to page") rc = page.addView(hatch) print("finished hatch") FreeCAD.ActiveDocument.recompute() rc = False if ("Up-to-date" in hatch.State): rc = True FreeCAD.closeDocument("TDHatch") return rc if __name__ == '__main__': DHatchTest()