Macro Corner shapes wizard/fr: Difference between revisions

From FreeCAD Documentation
(création et traduction de la page)
 
(ajout de "|Icon=Text-x-python")
Line 1: Line 1:
=Macro_Corner_shapes_wizard/fr=
=Macro_Corner_shapes_wizard/fr=
{{Macro/fr|Name=Corner shapes wizard|Name/fr=Corner shapes wizard|Description=Cette macro est une application complète, il ouvre une boîte de dialogue demandant les dimensions angulaires de votre pièce, puis crée l'objet dans le document, et, crée une page avec les vues, de dessus, de face et latérale de la pièce.|Author=Nicotuf}}
{{Macro/fr|Icon=Text-x-python|Name/fr=Corner shapes wizard|Description=Cette macro est une application complète, il ouvre une boîte de dialogue demandant les dimensions angulaires de votre pièce, puis crée l'objet dans le document, et, crée une page avec les vues, de dessus, de face et latérale de la pièce.|Author=Nicotuf}}


# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-

Revision as of 18:07, 24 December 2012

Macro_Corner_shapes_wizard/fr

File:Text-x-python {{{Name}}}

Description
Cette macro est une application complète, il ouvre une boîte de dialogue demandant les dimensions angulaires de votre pièce, puis crée l'objet dans le document, et, crée une page avec les vues, de dessus, de face et latérale de la pièce.

Auteur: Nicotuf
Auteur
Nicotuf
Téléchargement
None
Liens
Version Macro
1.0
Dernière modification
None
Version(s) FreeCAD
None
Raccourci clavier
None
Voir aussi
None

   # -*- coding:utf-8 -*-

   #####################################
   # Importation de fonctions externes :

   #from os import *
   import FreeCAD, FreeCADGui, Part, Draft, math, MeshPart, Mesh, Drawing
   from PyQt4 import QtGui,QtCore
   from FreeCAD import Base
   App=FreeCAD
   Gui=FreeCADGui

   ##################################
   # Défnition Class :

   class Corniere:
      def __init__(self, obj):
         obj.addProperty("App::PropertyLength","L1","Corniere","Largeur 1").L1=20.0
         obj.addProperty("App::PropertyLength","L2","Corniere","Largeur 2").L2=20.0
         obj.addProperty("App::PropertyLength","e1","Corniere","Epaisseur 1").e1=2.0
         #obj.addProperty("App::PropertyLength","e2","Corniere","Epaisseur 2").e2=2.0
         obj.addProperty("App::PropertyLength","Longueur","Corniere","Longueur").Longueur=200.0
         obj.Proxy = self

      def execute(self, fp):
         P1=Base.Vector(fp.e1,fp.e1,0)
         S1=Part.makeBox(fp.L1,fp.L2,fp.Longueur)
         S2=Part.makeBox(fp.L1-fp.e1,fp.L2-fp.e1,fp.Longueur,P1)
         fp.Shape=S1.cut(S2)   

   ##################################
   # Défnition locale de fonctions :


   def proceed():
      QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)

      if FreeCAD.ActiveDocument==None:
         FreeCAD.newDocument("Corniere")

      oldDocumentObjects=App.ActiveDocument.Objects

      try:
         QL1 = float(l1.text())   
         QL2 = float(l2.text())
         Qe = float(l3.text())
         QLongueur = float(l4.text())
      except:
         FreeCAD.Console.PrintError("Wrong input! Only numbers allowed...\n")

      Cor=FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Corniere")
      Corniere(Cor)
      Cor.ViewObject.Proxy=0
      Cor.L1=QL1
      Cor.L2=QL2
      Cor.e1=Qe
      Cor.Longueur=QLongueur

      App.ActiveDocument.recompute()
      Gui.SendMsgToActiveView("ViewFit")

      QtGui.qApp.restoreOverrideCursor()
      
      Plan(Cor)
      
      dialog.hide()

   def hide():

      dialog.hide()

   def Plan(obj):

      ObjetProjete=obj.Shape

      TailleX=ObjetProjete.BoundBox.XLength
      TailleY=ObjetProjete.BoundBox.YLength
      TailleZ=ObjetProjete.BoundBox.ZLength

      page = App.activeDocument().addObject('Drawing::FeaturePage','Page')
      page.Template = App.getResourceDir()+'Mod/Drawing/Templates/A3_Landscape.svg'   
      vueprofil = App.activeDocument().addObject('Drawing::FeatureViewPart','VueProfil')
      vueprofil.Source = obj
      vueprofil.Direction = (0.0,0.0,1.0)
      vueprofil.Scale = 1.0
      vueprofil.X = 50.0
      vueprofil.Y = 50.0
      page.addObject(vueprofil)

      vuegauche = App.activeDocument().addObject('Drawing::FeatureViewPart','Vuegauche')
      vuegauche.Source = obj
      vuegauche.Direction = (-1.0,0.0,0.0)
      vuegauche.ShowHiddenLines = True
      vuegauche.Scale = 1.0
      vuegauche.Rotation = 180.0
      vuegauche.X = 50.0+TailleX/2+TailleX
      vuegauche.Y = 50.0
      page.addObject(vuegauche)

      vuedessus = App.activeDocument().addObject('Drawing::FeatureViewPart','Vuedessus')
      vuedessus.Source = obj
      vuedessus.Direction = (0.0,-1.0,0.0)
      vuedessus.ShowHiddenLines = True
      vuedessus.Scale = 1.0
      vuedessus.Rotation = 180.0
      vuedessus.X = 50.0+TailleX/2+TailleX
      vuedessus.Y = 50.0+TailleX/2+TailleY+TailleX
      page.addObject(vuedessus)

      vueiso = App.activeDocument().addObject('Drawing::FeatureViewPart','VueIso')
      vueiso.Source = obj
      vueiso.Direction = (-1.0,-1.0,0.5)
      vueiso.Scale = 1.0
      vueiso.ShowSmoothLines = True
      vueiso.X = TailleZ+TailleX/2
      vueiso.Y = 7*TailleZ+3*TailleY
      page.addObject(vueiso)
      

      App.activeDocument().recompute()

      PageFile = open(page.PageResult,'r')
      OutFile = open('temp.svg','w')
      OutFile.write(PageFile.read())
      del OutFile,PageFile
      

   dialog = QtGui.QDialog()
   dialog.resize(200,200)
   dialog.setWindowTitle("Corniere")
   la = QtGui.QVBoxLayout(dialog)

   e1 = QtGui.QLabel("Dimensions de la corniere")
   commentFont=QtGui.QFont("Arial",10,True)
   e1.setFont(commentFont)
   la.addWidget(e1)

   t1 = QtGui.QLabel("L1")
   la.addWidget(t1)
   l1 = QtGui.QLineEdit()
   l1.setText("20")
   la.addWidget(l1)

   t2 = QtGui.QLabel("L2")
   la.addWidget(t2)
   l2 = QtGui.QLineEdit()
   l2.setText("20")
   la.addWidget(l2)

   t3 = QtGui.QLabel("e")
   la.addWidget(t3)
   l3 = QtGui.QLineEdit()
   l3.setText("2")
   la.addWidget(l3)

   t4 = QtGui.QLabel("Longueur")
   la.addWidget(t4)
   l4 = QtGui.QLineEdit()
   l4.setText("300")
   la.addWidget(l4)

   okbox = QtGui.QDialogButtonBox(dialog)
   okbox.setOrientation(QtCore.Qt.Horizontal)
   okbox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
   la.addWidget(okbox)
   QtCore.QObject.connect(okbox, QtCore.SIGNAL("accepted()"), proceed)
   QtCore.QObject.connect(okbox, QtCore.SIGNAL("rejected()"), hide)
   QtCore.QMetaObject.connectSlotsByName(dialog)
   dialog.show()
Traductions disponibles de cette page :