# From package freecadobjects to be used with python FreeCAD programming. # Class RDimension. # # Copyright (C) 2017 Ronja Hetzel <ronja.hetzel@rwth-aachen.de> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. import FreeCAD ## class RDimension. # Unknown, if it is working. I know I tried working with it, but I don't remember with what outcome. # @todo Check if RDimension is working. class RDimension(): ## Constructor. # @param doc RDocument to measure the dimension in. # @param p1 Point 1 given to Draft.makeDimension. # @param p2 Point 2 given to Draft.makeDimension. # @param p3 Point 3 given to Draft.makeDimension. def __init__(self,doc,p1,p2,p3): self.doc = doc self.label = "Dimension" global dimensionscounter if dimensionscounter>=1 and dimensionscounter<10: self.label = self.label + "00" + str(dimensionscounter) if dimensionscounter>=10 and dimensionscounter<100: self.label = self.label + "0" + str(dimensionscounter) if dimensionscounter>=100: print("I cannot handle so many dimensions!!!") self.geo = Draft.makeDimension(p1,p2,p3) ## @see RObject.vis self.vis = self.doc.gui.getObject(self.label) dimensionscounter += 1 self.doc.recompute() self.vis.DisplayMode = "3D" ## Set the font size of the label giving the length of the measured dimension. # Try for example with font size 50. def setfontsize(self,fontsize): self.vis.FontSize = fontsize