Macro CartoucheFC/fr

Description
Cette macro est une application complète, elle permet de remplir simplement tous les champs du cartouche de la feuille de dessin livrée avec FreeCAD.

Utilisation
'''La modification de la feuille dans Inkscape peut pour le moment poser des problèmes de fonctionnement au programme (dans le cas ou vous enlevez le symbole sur la feuille, même problème avec FreeCAD), travaillez sur une copie de A3_Landscape.svg. '''

'''PS : pour le moment les accents et certains caractères comme & $ ne sont pas acceptés (et peut être d'autres caractères spéciaux) ! je cherche une solution.'''


 * La fenêtre reste au dessus des autres fenêtres et permet ainsi de contrôler le cartouche sans quitter le programme.


 * Copiez le code dans un fichier nommé Macro_CartoucheFC.py et placez le dans votre répertoire de macros habituelle.


 * Après avoir créé votre feuille de dessin à l'aide du module Drawing de FreeCAD, lancez la macro Macro_CartoucheFC.


 * A l'ouverture, le programme enregistrera en mémoire toutes les données déjà présente dans le cartouche de la feuille (s'ils sont remplis), toutes ces données seront automatiquement restituées à l'aide du bouton et tenus en mémoire jusqu’à la fermeture du programme.


 * Les boutons de date et heure  affichent la date et heure du système.


 * Le format de la date est tributaire du symbole sélectionné EU ou US qui détermine le format régional. Le changement ne se fait pas automatiquement (pour le cas ou vous avez entré une date manuellement) il faut cliquer à nouveau sur les boutons dates si vous changez le symbole (vérifiez avant d'imprimer).


 * Le champ A3 n'est pas fonctionnel (ce programme est basé sur le cartouche de la feuille A3 de FreeCAD).


 * Le bouton ou US change le sens du symbole de projection "Select your Symbol" est affiché par défaut, puis le symbole actif s'affiche. Cliquez sur le bouton et vérifiez sur la feuille le symbole, cliquez une seconde fois pour modifier le symbole.


 * Le choix de ce symbole, influe le format de la date EU = dd/MM/yyyy et US = MM/dd/yyyy.


 * Attention : Cette commande ne passe pas par le bouton et modifie immédiatement le symbole à chaque appuis sur la touche, vérifiez toujours si vous avez sur votre feuille le symbole approprié.


 * Le bouton efface tous les champs du cartouche. Vous pouvez revenir aux données d'origine à l'aide du bouton.


 * Le bouton enregistre tous les champs du cartouche dans la feuille. Vous pouvez revenir aux données d'origine à l'aide du bouton  (sauf pour le symbole régional qui travaille en indépendant et est effectif immédiatement).

Code
Macro_CartoucheFC.FcMacro
 * 1) -*- coding: utf-8 -*-
 * 2) Macro_CartoucheFC.py
 * 3) Remplir les zones du cartouche
 * 4) il faut que la page (drawing viewer) s'appelle " Page " qui est le nom par défaut du module Drawing
 * 5) Fill the area of the cartridge
 * 6) It is necessary that the page (drawing viewer) is called "Page", which is the default name of the Drawing module
 * 7) Python 2.6
 * 8) Created: 27/04/2013
 * 9) Created:  by mario52

import Draft, Part, FreeCAD, math, PartGui, FreeCADGui, PyQt4 from math import sqrt, pi, sin, cos, asin from FreeCAD import Base from PyQt4 import QtCore, QtGui

global path

path = FreeCAD.ConfigGet("AppHomePath")

def heure: return QtCore.QTime.currentTime.toString('hh:mm:ss') def dateEu: return QtCore.QDate.currentDate.toString('dd/MM/yyyy') # forme euro def dateUs: return QtCore.QDate.currentDate.toString('MM/dd/yyyy') # forme us def dateComp: return QtCore.QDate.currentDate.toString('dddd d MMMM yyyy') # Retourne "dimanche 20 Juillet 69"

try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig)

def errorDialog(msg): # Create a simple dialog QMessageBox # The first argument indicates the icon used: one of QtGui.QMessageBox.{NoIcon, Information, Warning, Critical, Question} diag = QtGui.QMessageBox(QtGui.QMessageBox.Critical,u"Error Message",msg) diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # cette fonction met la fenêtre en avant #diag.setWindowModality(QtCore.Qt.ApplicationModal) # la fonction a été désactivée pour favoriser "WindowStaysOnTopHint" diag.exec_

def symbol_EU(depx,depy):   #symbol_EU try: App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_US") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_EU") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("SymbolUS") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("SymbolEU") except: None App.activeDocument.addObject('Sketcher::SketchObject','Symbol_EU') App.activeDocument.Symbol_EU.Placement = App.Placement(App.Vector(0.0,0.0,0.0),App.Rotation(0.000000,0.000000,0.000000,1.000000)) App.ActiveDocument.Symbol_EU.addGeometry(Part.Line(App.Vector(-7.5,0.0,0.0),App.Vector(20.0,0.0,0.0)))

App.ActiveDocument.Symbol_EU.Placement = App.Placement(App.Vector(0.0,0.0),App.Rotation(0.000000,0.000000,0.000000,1.000000)) App.ActiveDocument.Symbol_EU.addGeometry(Part.Line(App.Vector(12.50,-7.5,0),App.Vector(12.50,7.5,0.0))) App.ActiveDocument.Symbol_EU.addGeometry(Part.Circle(App.Vector(12.50,0.0,0),App.Vector(0,0,1),2.5)) App.ActiveDocument.Symbol_EU.addGeometry(Part.Circle(App.Vector(12.50,0.0,0),App.Vector(0,0,1),5.0))

App.ActiveDocument.Symbol_EU.addGeometry(Part.Line(App.Vector(5.0,5.0,0.0),App.Vector(-5.0,2.5,0.0))) App.ActiveDocument.Symbol_EU.addGeometry(Part.Line(App.Vector(-5.0,-2.5,0.0),App.Vector(-5.0,2.5,0.0))) App.ActiveDocument.Symbol_EU.addGeometry(Part.Line(App.Vector(5.0,-5.0,0.0),App.Vector(-5.0,-2.5,0.0))) App.ActiveDocument.Symbol_EU.addGeometry(Part.Line(App.Vector(5.0,-5.0,0.0),App.Vector(5.0,5.0,0.0))) Gui.getDocument(App.ActiveDocument.Name).resetEdit FreeCADGui.getDocument(App.ActiveDocument.Name).getObject("Symbol_EU").LineColor = (0.00,0.00,0.00) App.ActiveDocument.recompute

App.activeDocument.addObject('Drawing::FeatureViewPart','SymbolEU') App.activeDocument.SymbolEU.Source = App.activeDocument.Symbol_EU App.activeDocument.SymbolEU.Direction = (0.0,0.0,1.0) App.activeDocument.SymbolEU.X = depx App.activeDocument.SymbolEU.Y = depy App.activeDocument.SymbolEU.Scale = 0.8 App.activeDocument.Page.addObject(App.activeDocument.SymbolEU) App.ActiveDocument.recompute FreeCADGui.getDocument(App.ActiveDocument.Name).getObject("Symbol_EU").Visibility = False
 * 1)    App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_EU")

def symbol_US(depx,depy):   #symbol_US try: App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_US") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_EU") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("SymbolUS") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("SymbolEU") except: None App.activeDocument.addObject('Sketcher::SketchObject','Symbol_US') App.activeDocument.Symbol_US.Placement = App.Placement(App.Vector(0.0,0.0,0.0),App.Rotation(0.000000,0.000000,0.000000,1.000000)) App.ActiveDocument.Symbol_US.addGeometry(Part.Line(App.Vector(-7.5,0.0,0.0),App.Vector(20.0,0.0,0.0)))

App.ActiveDocument.Symbol_US.Placement = App.Placement(App.Vector(0.0,0.0),App.Rotation(0.000000,0.000000,0.000000,1.000000)) App.ActiveDocument.Symbol_US.addGeometry(Part.Line(App.Vector(0.0,-7.5,0.0),App.Vector(0.0,7.5,0.0))) App.ActiveDocument.Symbol_US.addGeometry(Part.Circle(App.Vector(0.0,0.0,0.0),App.Vector(0,0,1),2.5)) App.ActiveDocument.Symbol_US.addGeometry(Part.Circle(App.Vector(0.0,0.0,0.0),App.Vector(0,0,1),5.0))

App.ActiveDocument.Symbol_US.addGeometry(Part.Line(App.Vector(17.5,5.0,0.0),App.Vector(7.5,2.5,0.0))) App.ActiveDocument.Symbol_US.addGeometry(Part.Line(App.Vector(7.5,-2.5,0.0),App.Vector(7.5,2.5,0.0))) App.ActiveDocument.Symbol_US.addGeometry(Part.Line(App.Vector(17.5,-5.0,0.0),App.Vector(7.5,-2.5,0.0))) App.ActiveDocument.Symbol_US.addGeometry(Part.Line(App.Vector(17.5,-5.0,0.0),App.Vector(17.5,5.0,0.0))) Gui.getDocument(App.ActiveDocument.Name).resetEdit FreeCADGui.getDocument(App.ActiveDocument.Name).getObject("Symbol_US").LineColor = (0.00,0.00,0.00) App.ActiveDocument.recompute

App.activeDocument.addObject('Drawing::FeatureViewPart','SymbolUS') App.activeDocument.SymbolUS.Source = App.activeDocument.Symbol_US App.activeDocument.SymbolUS.Direction = (0.0,0.0,1.0) App.activeDocument.SymbolUS.X = depx App.activeDocument.SymbolUS.Y = depy App.activeDocument.SymbolUS.Scale = 0.8 App.activeDocument.Page.addObject(App.activeDocument.SymbolUS) App.ActiveDocument.recompute FreeCADGui.getDocument(App.ActiveDocument.Name).getObject("Symbol_US").Visibility = False
 * 1)    App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_US")

try: DESIGNED_BY = App.activeDocument.getObject("Page").EditableTexts[0] #lineEdit01 DESIGNED_BY CREATION_DATE = App.activeDocument.getObject("Page").EditableTexts[1] #lineEdit02 CREATION_DATE date CREA_DATE = CREATION_DATE[0:10] # lineEdit02h date CREA_TIME = CREATION_DATE[13:21] # lineEdit02h heure CHECKED_BY = App.activeDocument.getObject("Page").EditableTexts[2] # lineEdit03 CHECK_DATE = App.activeDocument.getObject("Page").EditableTexts[3] # lineEdit04 date CHEC_DATE = CHECK_DATE[0:10] # lineEdit04 date CHEC_TIME = CHECK_DATE[13:21] # lineEdit04h heure SIZE = "A3" # lineEdit05 SCALE = App.activeDocument.getObject("Page").EditableTexts[4] # lineEdit06 WEIGHT = App.activeDocument.getObject("Page").EditableTexts[5] # lineEdit07 DRAWING_NUMBER = App.activeDocument.getObject("Page").EditableTexts[6] # lineEdit08 SHEET = App.activeDocument.getObject("Page").EditableTexts[7] # lineEdit09 TITLE = App.activeDocument.getObject("Page").EditableTexts[8] # textEdit_01 DESCRIPTION = App.activeDocument.getObject("Page").EditableTexts[9] # textEdit_02

except: errorDialog("Erreur cartouche ou pas de feuille de dessin 'Page'") else: try: try: lineEdit18 = App.activeDocument.getObject("Note_I").Text[0] except: lineEdit18 = "" try: lineEdit17 = App.activeDocument.getObject("Note_H").Text[0] except: lineEdit17 = "" try: lineEdit16 = App.activeDocument.getObject("Note_G").Text[0] except: lineEdit16 = "" try: lineEdit15 = App.activeDocument.getObject("Note_F").Text[0] except: lineEdit15 = "" try: lineEdit14 = App.activeDocument.getObject("Note_E").Text[0] except: lineEdit14 = "" try: lineEdit13 = App.activeDocument.getObject("Note_D").Text[0] except: lineEdit13 = "" try: lineEdit12 = App.activeDocument.getObject("Note_C").Text[0] except: lineEdit12 = "" try: lineEdit11 = App.activeDocument.getObject("Note_B").Text[0] except: lineEdit11 = "" try: lineEdit10 = App.activeDocument.getObject("Note_A").Text[0] except: lineEdit10 = "" try: lineEdit20 = App.activeDocument.getObject("CopyRight").Text[0] except: lineEdit20 = "" except: errorDialog("erreur note")

class Ui_MainWindow(object):

def __init__(self, MainWindow): self.window = MainWindow #___________________________________________________________________________________

MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(810, 440) MainWindow.setMaximumSize(QtCore.QSize(810, 480)) self.centralWidget = QtGui.QWidget(MainWindow) self.centralWidget.setObjectName(_fromUtf8("centralWidget"))

#       self.pushButton01 = QtGui.QPushButton(self.centralWidget) #       self.pushButton01.setGeometry(QtCore.QRect(115, 360, 93, 28)) #       self.pushButton01.setObjectName(_fromUtf8("pushButton01")) #       self.pushButton01.clicked.connect(self.on_pushButton01_clicked) #connection pushButton01

self.pushButton02 = QtGui.QPushButton(self.centralWidget) self.pushButton02.setGeometry(QtCore.QRect(225, 360, 93, 28)) self.pushButton02.setObjectName(_fromUtf8("pushButton02")) self.pushButton02.clicked.connect(self.on_pushButton02_clicked) #connection pushButton02

self.pushButton03 = QtGui.QPushButton(self.centralWidget) self.pushButton03.setGeometry(QtCore.QRect(335, 360, 93, 28)) self.pushButton03.setObjectName(_fromUtf8("pushButton03")) self.pushButton03.clicked.connect(self.on_pushButton03_clicked) #connection pushButton03

self.pushButton04 = QtGui.QPushButton(self.centralWidget) self.pushButton04.setGeometry(QtCore.QRect(445, 360, 93, 28)) self.pushButton04.setObjectName(_fromUtf8("pushButton04")) self.pushButton04.clicked.connect(self.on_pushButton04_clicked) #connection pushButton04

self.pushButton05 = QtGui.QPushButton(self.centralWidget) self.pushButton05.setGeometry(QtCore.QRect(555, 360, 93, 28)) self.pushButton05.setObjectName(_fromUtf8("pushButton05")) self.pushButton05.clicked.connect(self.on_pushButton05_clicked) #connection pushButton05

self.pushButton06 = QtGui.QPushButton(self.centralWidget) self.pushButton06.setGeometry(QtCore.QRect(170, 56, 20, 20)) self.pushButton06.setObjectName(_fromUtf8("pushButton06")) self.pushButton06.clicked.connect(self.on_pushButton06_clicked) #connection pushButton06

self.pushButton07 = QtGui.QPushButton(self.centralWidget) self.pushButton07.setGeometry(QtCore.QRect(190, 56, 20, 20)) self.pushButton07.setObjectName(_fromUtf8("pushButton07")) self.pushButton07.clicked.connect(self.on_pushButton07_clicked) #connection pushButton07

self.pushButton08 = QtGui.QPushButton(self.centralWidget) self.pushButton08.setGeometry(QtCore.QRect(170, 136, 20, 20)) self.pushButton08.setObjectName(_fromUtf8("pushButton08")) self.pushButton08.clicked.connect(self.on_pushButton08_clicked) #connection pushButton08

self.pushButton09 = QtGui.QPushButton(self.centralWidget) self.pushButton09.setGeometry(QtCore.QRect(190, 136, 20, 20)) self.pushButton09.setObjectName(_fromUtf8("pushButton09")) self.pushButton09.clicked.connect(self.on_pushButton09_clicked) #connection pushButton09

self.pushButton10 = QtGui.QPushButton(self.centralWidget) self.pushButton10.setGeometry(QtCore.QRect(100, 220, 101, 20)) self.pushButton10.setObjectName(_fromUtf8("pushButton10")) self.pushButton10.clicked.connect(self.on_pushButton10_clicked) #connection pushButton10

self.lineEdit_01 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_01.setGeometry(QtCore.QRect(20, 20, 181, 16)) font = QtGui.QFont font.setPointSize(7) self.lineEdit_01.setFont(font) self.lineEdit_01.setObjectName(_fromUtf8("lineEdit_01")) self.lineEdit_01.setText(DESIGNED_BY)

self.lineEdit_02 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_02.setGeometry(QtCore.QRect(20, 60, 82, 16)) font = QtGui.QFont font.setPointSize(7) self.lineEdit_02.setFont(font) self.lineEdit_02.setObjectName(_fromUtf8("lineEdit_02")) self.lineEdit_02.setText(CREA_DATE)

self.lineEdit_02h = QtGui.QLineEdit(self.centralWidget) self.lineEdit_02h.setGeometry(QtCore.QRect(98, 60, 72, 16)) font = QtGui.QFont font.setPointSize(7) self.lineEdit_02h.setFont(font) self.lineEdit_02h.setObjectName(_fromUtf8("lineEdit_02h")) self.lineEdit_02h.setText(CREA_TIME)

self.lineEdit_03 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_03.setGeometry(QtCore.QRect(20, 100, 181, 16)) font = QtGui.QFont font.setPointSize(7) self.lineEdit_03.setFont(font) self.lineEdit_03.setObjectName(_fromUtf8("lineEdit_03")) self.lineEdit_03.setText(CHECKED_BY)

self.lineEdit_04 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_04.setGeometry(QtCore.QRect(20, 140, 82, 16)) font = QtGui.QFont font.setPointSize(7) self.lineEdit_04.setFont(font) self.lineEdit_04.setObjectName(_fromUtf8("lineEdit_04")) self.lineEdit_04.setText(CHEC_DATE)

self.lineEdit_04h = QtGui.QLineEdit(self.centralWidget) self.lineEdit_04h.setGeometry(QtCore.QRect(98, 140, 72, 16)) font = QtGui.QFont font.setPointSize(7) self.lineEdit_04h.setFont(font) self.lineEdit_04h.setObjectName(_fromUtf8("lineEdit_04h")) self.lineEdit_04h.setText(CHEC_TIME)

self.lineEdit_05 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_05.setGeometry(QtCore.QRect(20, 180, 61, 61)) font = QtGui.QFont font.setPointSize(17) font.setBold(False) font.setWeight(50) self.lineEdit_05.setFont(font) self.lineEdit_05.setAlignment(QtCore.Qt.AlignCenter) self.lineEdit_05.setObjectName(_fromUtf8("lineEdit_05")) self.lineEdit_05.setText(SIZE)

self.lineEdit_06 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_06.setGeometry(QtCore.QRect(20, 280, 61, 41)) font = QtGui.QFont font.setPointSize(10) self.lineEdit_06.setFont(font) self.lineEdit_06.setAlignment(QtCore.Qt.AlignCenter) self.lineEdit_06.setObjectName(_fromUtf8("lineEdit_06")) self.lineEdit_06.setText(SCALE)

self.lineEdit_07 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_07.setGeometry(QtCore.QRect(100, 280, 101, 41)) font = QtGui.QFont font.setPointSize(10) self.lineEdit_07.setFont(font) self.lineEdit_07.setAlignment(QtCore.Qt.AlignCenter) self.lineEdit_07.setObjectName(_fromUtf8("lineEdit_07")) self.lineEdit_07.setText(WEIGHT)

self.lineEdit_08 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_08.setGeometry(QtCore.QRect(220, 280, 341, 41)) self.lineEdit_08.setObjectName(_fromUtf8("lineEdit_08")) self.lineEdit_08.setText(DRAWING_NUMBER)

self.lineEdit_09 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_09.setGeometry(QtCore.QRect(570, 280, 81, 41)) self.lineEdit_09.setObjectName(_fromUtf8("lineEdit_09")) self.lineEdit_09.setText(SHEET)

self.lineEdit_10 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_10.setGeometry(QtCore.QRect(690, 290, 101, 30)) self.lineEdit_10.setObjectName(_fromUtf8("lineEdit_10")) self.lineEdit_10.setText(lineEdit10)

self.lineEdit_11 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_11.setGeometry(QtCore.QRect(690, 260, 101, 30)) self.lineEdit_11.setObjectName(_fromUtf8("lineEdit_11")) self.lineEdit_11.setText(lineEdit11)

self.lineEdit_12 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_12.setGeometry(QtCore.QRect(690, 230, 101, 30)) self.lineEdit_12.setObjectName(_fromUtf8("lineEdit_12")) self.lineEdit_12.setText(lineEdit12)

self.lineEdit_13 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_13.setGeometry(QtCore.QRect(690, 200, 101, 30)) self.lineEdit_13.setObjectName(_fromUtf8("lineEdit_13")) self.lineEdit_13.setText(lineEdit13)

self.lineEdit_14 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_14.setGeometry(QtCore.QRect(690, 170, 101, 30)) self.lineEdit_14.setObjectName(_fromUtf8("lineEdit_14")) self.lineEdit_14.setText(lineEdit14)

self.lineEdit_15 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_15.setGeometry(QtCore.QRect(690, 140, 101, 30)) self.lineEdit_15.setObjectName(_fromUtf8("lineEdit_15")) self.lineEdit_15.setText(lineEdit15)

self.lineEdit_16 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_16.setGeometry(QtCore.QRect(690, 110, 101, 30)) self.lineEdit_16.setObjectName(_fromUtf8("lineEdit_16")) self.lineEdit_16.setText(lineEdit16)

self.lineEdit_17 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_17.setGeometry(QtCore.QRect(690, 80, 101, 30)) self.lineEdit_17.setObjectName(_fromUtf8("lineEdit_17")) self.lineEdit_17.setText(lineEdit17)

self.lineEdit_18 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_18.setGeometry(QtCore.QRect(690, 50, 101, 30)) self.lineEdit_18.setObjectName(_fromUtf8("lineEdit_18")) self.lineEdit_18.setText(lineEdit18)

self.lineEdit_20 = QtGui.QLineEdit(self.centralWidget) # Copyright self.lineEdit_20.setGeometry(QtCore.QRect(20, 330, 771, 22)) self.lineEdit_20.setObjectName(_fromUtf8("lineEdit_20")) self.lineEdit_20.setText(lineEdit20)

self.textEdit_01 = QtGui.QTextEdit(self.centralWidget) self.textEdit_01.setGeometry(QtCore.QRect(220, 20, 431,60 )) font = QtGui.QFont font.setPointSize(15) font.setBold(True) font.setWeight(75) self.textEdit_01.setFont(font) self.textEdit_01.setObjectName(_fromUtf8("textEdit_01")) self.textEdit_01.setText(TITLE)

self.textEdit_02 = QtGui.QTextEdit(self.centralWidget) self.textEdit_02.setGeometry(QtCore.QRect(220, 90, 431, 60)) self.textEdit_02.setObjectName(_fromUtf8("textEdit_02")) self.textEdit_02.setText(DESCRIPTION)

#       self.graphicsView_01 = QtGui.QGraphicsView(self.centralWidget) #       self.graphicsView_01.setGeometry(QtCore.QRect(100, 160, 101, 81)) #       brush = QtGui.QBrush(QtGui.QColor(0, 170, 255)) #       brush.setStyle(QtCore.Qt.NoBrush) #       self.graphicsView_01.setBackgroundBrush(brush) #       self.graphicsView_01.setObjectName(_fromUtf8("graphicsView_01"))

self.textEdit_03 = QtGui.QTextEdit(self.centralWidget) self.textEdit_03.setGeometry(QtCore.QRect(100, 160, 101, 55)) self.textEdit_03.setAlignment(QtCore.Qt.AlignCenter) self.textEdit_03.setObjectName(_fromUtf8("textEdit_03")) self.textEdit_03.setText("Select your Symbol")

self.graphicsView_02 = QtGui.QGraphicsView(self.centralWidget) self.graphicsView_02.setGeometry(QtCore.QRect(220, 160, 431, 81))#570, 160, 81, 81 self.graphicsView_02.setObjectName(_fromUtf8("graphicsView_02"))

self.label_01 = QtGui.QLabel(self.centralWidget) self.label_01.setGeometry(QtCore.QRect(20, 0, 91, 16)) self.label_01.setObjectName(_fromUtf8("label_01"))

self.label_02 = QtGui.QLabel(self.centralWidget) self.label_02.setGeometry(QtCore.QRect(20, 40, 53, 16)) self.label_02.setObjectName(_fromUtf8("label_02"))

self.label_03 = QtGui.QLabel(self.centralWidget) self.label_03.setGeometry(QtCore.QRect(20, 80, 101, 16)) self.label_03.setObjectName(_fromUtf8("label_03"))

self.label_04 = QtGui.QLabel(self.centralWidget) self.label_04.setGeometry(QtCore.QRect(20, 120, 91, 16)) self.label_04.setObjectName(_fromUtf8("label_04"))

self.label_05 = QtGui.QLabel(self.centralWidget) self.label_05.setGeometry(QtCore.QRect(20, 160, 53, 16)) self.label_05.setObjectName(_fromUtf8("label_05"))

self.label_06 = QtGui.QLabel(self.centralWidget) self.label_06.setGeometry(QtCore.QRect(20, 260, 53, 16)) self.label_06.setObjectName(_fromUtf8("label_06"))

self.label_07 = QtGui.QLabel(self.centralWidget) self.label_07.setGeometry(QtCore.QRect(100, 260, 101, 16)) self.label_07.setObjectName(_fromUtf8("label_07"))

self.label_08 = QtGui.QLabel(self.centralWidget) self.label_08.setGeometry(QtCore.QRect(220, 260, 121, 16)) self.label_08.setObjectName(_fromUtf8("label_08"))

self.label_09 = QtGui.QLabel(self.centralWidget) self.label_09.setGeometry(QtCore.QRect(570, 260, 53, 16)) self.label_09.setObjectName(_fromUtf8("label_09"))

self.label_10 = QtGui.QLabel(self.centralWidget) self.label_10.setGeometry(QtCore.QRect(670, 290, 16, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_10.setFont(font) self.label_10.setObjectName(_fromUtf8("label_10"))

self.label_11 = QtGui.QLabel(self.centralWidget) self.label_11.setGeometry(QtCore.QRect(670, 260, 16, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_11.setFont(font) self.label_11.setObjectName(_fromUtf8("label_11"))

self.label_12 = QtGui.QLabel(self.centralWidget) self.label_12.setGeometry(QtCore.QRect(670, 230, 16, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_12.setFont(font) self.label_12.setObjectName(_fromUtf8("label_12"))

self.label_13 = QtGui.QLabel(self.centralWidget) self.label_13.setGeometry(QtCore.QRect(670, 200, 18, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_13.setFont(font) self.label_13.setObjectName(_fromUtf8("label_13"))

self.label_14 = QtGui.QLabel(self.centralWidget) self.label_14.setGeometry(QtCore.QRect(670, 170, 15, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_14.setFont(font) self.label_14.setObjectName(_fromUtf8("label_14"))

self.label_15 = QtGui.QLabel(self.centralWidget) self.label_15.setGeometry(QtCore.QRect(670, 140, 14, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_15.setFont(font) self.label_15.setObjectName(_fromUtf8("label_15"))

self.label_16 = QtGui.QLabel(self.centralWidget) self.label_16.setGeometry(QtCore.QRect(670, 110, 18, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_16.setFont(font) self.label_16.setObjectName(_fromUtf8("label_16"))

self.label_17 = QtGui.QLabel(self.centralWidget) self.label_17.setGeometry(QtCore.QRect(670, 80, 18, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_17.setFont(font) self.label_17.setObjectName(_fromUtf8("label_17"))

self.label_18 = QtGui.QLabel(self.centralWidget) self.label_18.setGeometry(QtCore.QRect(670, 50, 10, 33)) font = QtGui.QFont font.setPointSize(12) font.setBold(True) font.setWeight(75) self.label_18.setFont(font) self.label_18.setObjectName(_fromUtf8("label_18"))

self.label_19 = QtGui.QLabel(self.centralWidget) self.label_19.setGeometry(QtCore.QRect(720, 15, 100, 33)) self.label_19.setObjectName(_fromUtf8("label_19"))

MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QtGui.QMenuBar(MainWindow) self.menuBar.setGeometry(QtCore.QRect(0, 0, 810, 26)) self.menuBar.setObjectName(_fromUtf8("menuBar")) MainWindow.setMenuBar(self.menuBar) self.statusBar = QtGui.QStatusBar(MainWindow) self.statusBar.setObjectName(_fromUtf8("statusBar")) MainWindow.setStatusBar(self.statusBar)

self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow): MainWindow.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # cette fonction met la fenêtre en avant MainWindow.setWindowTitle(_translate("MainWindow", "Cartouche", None)) #       self.pushButton01.setText(_translate("MainWindow", "Position", None)) self.pushButton02.setText(_translate("MainWindow", "Quitter", None)) self.pushButton03.setText(_translate("MainWindow", "Memo", None)) self.pushButton04.setText(_translate("MainWindow", "Nettoyer", None)) self.pushButton05.setText(_translate("MainWindow", "Appliquer", None)) self.pushButton06.setText(_translate("MainWindow", "D.", None)) self.pushButton07.setText(_translate("MainWindow", "H.", None)) self.pushButton08.setText(_translate("MainWindow", "D.", None)) self.pushButton09.setText(_translate("MainWindow", "H.", None)) self.pushButton10.setText(_translate("MainWindow", "Symbole EU", None))

self.label_01.setText(_translate("MainWindow", "Designed by :", None)) self.label_02.setText(_translate("MainWindow", "Date :", None)) self.label_03.setText(_translate("MainWindow", "Checked by :", None)) self.label_04.setText(_translate("MainWindow", "Date :", None)) self.label_05.setText(_translate("MainWindow", "Size :", None)) self.label_06.setText(_translate("MainWindow", "Scale :", None)) self.label_07.setText(_translate("MainWindow", "Weight (Kg) :", None)) self.label_08.setText(_translate("MainWindow", "Drawing number :", None)) self.label_09.setText(_translate("MainWindow", "Sheet :", None)) self.label_10.setText(_translate("MainWindow", "A", None)) self.label_11.setText(_translate("MainWindow", "B", None)) self.label_12.setText(_translate("MainWindow", "C", None)) self.label_13.setText(_translate("MainWindow", "D", None)) self.label_14.setText(_translate("MainWindow", "E", None)) self.label_15.setText(_translate("MainWindow", "F", None)) self.label_16.setText(_translate("MainWindow", "G", None)) self.label_17.setText(_translate("MainWindow", "H", None)) self.label_18.setText(_translate("MainWindow", "I", None)) self.label_19.setText(_translate("MainWindow", "Notes", None)) #______________________________________________________________________________________       # Boutons def on_pushButton10_clicked(self):   # Bouton /Symbole if self.textEdit_03.toPlainText=="Symbole US": self.pushButton10.setText(_translate("MainWindow", "Symbole US", None)) self.textEdit_03.setText("Symbole EU") symbol_EU(247.5,263.5) #(247.5,263.5) else: self.pushButton10.setText(_translate("MainWindow", "Symbole EU", None)) self.textEdit_03.setText("Symbole US") symbol_US(247.5,263.5) #(247.5,263.5) def on_pushButton09_clicked(self):   # Bouton /heure document self.lineEdit_04h.setText(str(heure)) def on_pushButton08_clicked(self):   # Bouton date/ document if self.textEdit_03.toPlainText=="Symbole US": self.lineEdit_04.setText(str(dateUs)) else: self.lineEdit_04.setText(str(dateEu)) def on_pushButton07_clicked(self):   # Bouton /heure checked self.lineEdit_02h.setText(str(heure)) def on_pushButton06_clicked(self):   # Bouton date/ checked if self.textEdit_03.toPlainText=="Symbole US": self.lineEdit_02.setText(str(dateUs)) else: self.lineEdit_02.setText(str(dateEu)) def on_pushButton05_clicked(self):   # Bouton Appliquer DESIGNED_BY = self.lineEdit_01.text CREATION_DATE = self.lineEdit_02.text+" - "+self.lineEdit_02h.text CHECKED_BY = self.lineEdit_03.text CHECK_DATE = self.lineEdit_04.text+" - "+self.lineEdit_04h.text SIZE = "A3" # self.lineEdit_05.text SCALE = self.lineEdit_06.text WEIGHT = self.lineEdit_07.text DRAWING_NUMBER = self.lineEdit_08.text SHEET = self.lineEdit_09.text TITLE = self.textEdit_01.toPlainText DESCRIPTION = self.textEdit_02.toPlainText SYMBOL = self.textEdit_03.toPlainText FreeCAD.getDocument (App.ActiveDocument.Name).getObject("Page").EditableTexts = [unicode(DESIGNED_BY, 'utf-8'),unicode(CREATION_DATE, 'utf-8'),unicode(CHECKED_BY, 'utf-8'),      unicode(CHECK_DATE, 'utf-8'),  unicode(SCALE, 'utf-8'),  unicode(WEIGHT, 'utf-8'),  unicode(DRAWING_NUMBER, 'utf-8'),  unicode(SHEET, 'utf-8'),  unicode(TITLE, 'utf-8'),  unicode(DESCRIPTION, 'utf-8'),] #print App.ActiveDocument.Name try: App.activeDocument.removeObject('Note_I') except: None try: App.activeDocument.removeObject('Note_H') except: None try: App.activeDocument.removeObject('Note_G') except: None try: App.activeDocument.removeObject('Note_F') except: None try: App.activeDocument.removeObject('Note_E') except: None try: App.activeDocument.removeObject('Note_D') except: None try: App.activeDocument.removeObject('Note_C') except: None try: App.activeDocument.removeObject('Note_B') except: None try: App.activeDocument.removeObject('Note_A') except: None try: App.activeDocument.removeObject('CopyRight') except: None if self.lineEdit_18.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_I') App.activeDocument.Note_I.X = 391.0 App.activeDocument.Note_I.Y = 232 App.activeDocument.Note_I.Scale = 3.0 App.activeDocument.Note_I.Text = str(self.lineEdit_18.text) App.activeDocument.Page.addObject(App.activeDocument.Note_I) if self.lineEdit_17.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_H') App.activeDocument.Note_H.X = 391.0 App.activeDocument.Note_H.Y = 238.8 App.activeDocument.Note_H.Scale = 3.0 App.activeDocument.Note_H.Text = str(self.lineEdit_17.text) App.activeDocument.Page.addObject(App.activeDocument.Note_H) if self.lineEdit_16.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_G') App.activeDocument.Note_G.X = 391.0 App.activeDocument.Note_G.Y = 245.4 App.activeDocument.Note_G.Scale = 3.0 App.activeDocument.Note_G.Text = str(self.lineEdit_16.text) App.activeDocument.Page.addObject(App.activeDocument.Note_G) if self.lineEdit_15.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_F') App.activeDocument.Note_F.X = 391.0 App.activeDocument.Note_F.Y = 252 App.activeDocument.Note_F.Scale = 3.0 App.activeDocument.Note_F.Text = str(self.lineEdit_15.text) App.activeDocument.Page.addObject(App.activeDocument.Note_F) if self.lineEdit_14.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_E') App.activeDocument.Note_E.X = 391.0 App.activeDocument.Note_E.Y = 258.6 App.activeDocument.Note_E.Scale = 3.0 App.activeDocument.Note_E.Text = str(self.lineEdit_14.text) App.activeDocument.Page.addObject(App.activeDocument.Note_E) if self.lineEdit_13.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_D') App.activeDocument.Note_D.X = 391.0 App.activeDocument.Note_D.Y = 265.2 App.activeDocument.Note_D.Scale = 3.0 App.activeDocument.Note_D.Text = str(self.lineEdit_13.text) App.activeDocument.Page.addObject(App.activeDocument.Note_D) if self.lineEdit_12.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_C') App.activeDocument.Note_C.X = 391.0 App.activeDocument.Note_C.Y = 271.8 App.activeDocument.Note_C.Scale = 3.0 App.activeDocument.Note_C.Text = str(self.lineEdit_12.text) App.activeDocument.Page.addObject(App.activeDocument.Note_C) if self.lineEdit_11.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_B') App.activeDocument.Note_B.X = 391.0 App.activeDocument.Note_B.Y = 278.4 App.activeDocument.Note_B.Scale = 3.0 App.activeDocument.Note_B.Text = str(self.lineEdit_11.text) App.activeDocument.Page.addObject(App.activeDocument.Note_B) if self.lineEdit_10.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','Note_A') App.activeDocument.Note_A.X = 391.0 App.activeDocument.Note_A.Y = 285.0 App.activeDocument.Note_A.Scale = 3.0 App.activeDocument.Note_A.Text = str(self.lineEdit_10.text) App.activeDocument.Page.addObject(App.activeDocument.Note_A) if self.lineEdit_20.text != "": App.activeDocument.addObject('Drawing::FeatureViewAnnotation','CopyRight') App.activeDocument.CopyRight.X = 221 App.activeDocument.CopyRight.Y = 286 App.activeDocument.CopyRight.Scale = 3.0 App.activeDocument.CopyRight.Text = str(self.lineEdit_20.text) App.activeDocument.Page.addObject(App.activeDocument.CopyRight)

App.ActiveDocument.recompute

def on_pushButton04_clicked(self):   # Bouton nettoyer try: App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_US") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_EU") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("SymbolUS") except: None try: App.getDocument(App.ActiveDocument.Name).removeObject("SymbolEU") except: None DESIGNED_BY = ""   ;self.lineEdit_01.setText("") CREATION_DATE = "" ;self.lineEdit_02.setText("") self.lineEdit_02h.setText("") CHECKED_BY = ""    ;self.lineEdit_03.setText("") CHECK_DATE = ""    ;self.lineEdit_04.setText("") self.lineEdit_04h.setText("") SIZE = "A3"        ;self.lineEdit_05.setText("A3") SCALE = ""         ;self.lineEdit_06.setText("") WEIGHT = ""        ;self.lineEdit_07.setText("") DRAWING_NUMBER = "" ;self.lineEdit_08.setText("") SHEET = ""         ;self.lineEdit_09.setText("") TITLE = ""         ;self.textEdit_01.setText("") DESCRIPTION = ""   ;self.textEdit_02.setText("") self.lineEdit_10.setText("") self.lineEdit_11.setText("") self.lineEdit_12.setText("") self.lineEdit_13.setText("") self.lineEdit_14.setText("") self.lineEdit_15.setText("") self.lineEdit_16.setText("") self.lineEdit_17.setText("") self.lineEdit_18.setText("") self.lineEdit_20.setText("")

def on_pushButton03_clicked(self):   # Bouton Memo self.lineEdit_01.setText(DESIGNED_BY) self.lineEdit_02.setText(CREA_DATE) self.lineEdit_02h.setText(CREA_TIME) self.lineEdit_03.setText(CHECKED_BY) self.lineEdit_04.setText(CHEC_DATE) self.lineEdit_04h.setText(CHEC_TIME) self.lineEdit_05.setText(SIZE) self.lineEdit_06.setText(SCALE) self.lineEdit_07.setText(WEIGHT) self.lineEdit_08.setText(DRAWING_NUMBER) self.lineEdit_09.setText(SHEET) self.textEdit_01.setText(TITLE) self.textEdit_02.setText(DESCRIPTION)

self.lineEdit_18.setText(lineEdit18) self.lineEdit_17.setText(lineEdit17) self.lineEdit_16.setText(lineEdit16) self.lineEdit_15.setText(lineEdit15) self.lineEdit_14.setText(lineEdit14) self.lineEdit_13.setText(lineEdit13) self.lineEdit_12.setText(lineEdit12) self.lineEdit_11.setText(lineEdit11) self.lineEdit_10.setText(lineEdit10) self.lineEdit_20.setText(lineEdit20)

def on_pushButton02_clicked(self):   # Bouton Quitter App.Console.PrintMessage("Terminé\r\n") self.window.hide #   def on_pushButton01_clicked(self):    # Bouton appel de Position #       MainWindow.resize(210, 480) #       executer #       MainWindow.resize(810, 480) #______________________________________________________________________________________

MainWindow = QtGui.QMainWindow ui = Ui_MainWindow(MainWindow) MainWindow.show

Autre
Les champs n'ont pas de limite de longueur, vérifiez votre cartouche.

Ce programme crée sur votre projet un dessin représentant le symbole régional de projection, n'y touchez pas il est enregistré sous forme cachée donc invisible.

Si vous voulez qu'il soit effacée dé-commentez ces lignes commentées et vice versa FreeCADGui.getDocument(App.ActiveDocument.Name).getObject("Symbol_EU").Visibility = False et FreeCADGui.getDocument(App.ActiveDocument.Name).getObject("Symbol_US").Visibility = False (j'avais quelque fois une erreur à l'exécution quand le symbole était effacé)
 * 1)    App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_EU")
 * 1)    App.getDocument(App.ActiveDocument.Name).removeObject("Symbol_US")

Ce module travaille avec la feuille de mise en plan incluse dans FreeCAD cette feuille s'appelle Page, ne pas modifier le nom de cette feuille !