Macro Automatic drawing/es

Este código genera una Hoja de Dibujo con tres vistas ortográficas (alzado, planta y perfil derecho) alineadas entre sí, y una vista isométrica situada en la parte superior derecha de la hoja. Calcula la escala basada en el tamaño del modelo y el espacio disponible en la hoja. La vista isométrica está escalada a 2/3 de las otras.

Utiliza el Sistema de representación europeo.

Cómo se utiliza
Es necesario seleccionar un objeto antes de ejecutar la macro.

Limitaciones

 * La eslaca no es estándar. Puedes tener que cambiar las vistas manualmente a una escala estándar.
 * Sólo funciona con un único objeto (esta es una limitación del entorno de Dibujo)
 * Es necesario modificarla para que trabaje en el sistema americano de representación utilizado en los EE.UU. y Canada.

La macro
import FreeCAD, Part, Drawing if len(Gui.Selection.getSelectionEx)>1: App.Console.PrintError("Warning: Only the first item is generate") if len(Gui.Selection.getSelectionEx)==0: App.Console.PrintError("Warning: Need to select one item") Piece=Gui.Selection.getSelectionEx[0] App.activeDocument.addObject('Drawing::FeaturePage','AutoDrawing') App.activeDocument.AutoDrawing.Template = App.getResourceDir+'Mod/Drawing/Templates/A3_Landscape.svg' DH=20 DL=30 L=Piece.Object.Shape.BoundBox.XMax H=Piece.Object.Shape.BoundBox.ZMax P=Piece.Object.Shape.BoundBox.YMax Sc=(400-3*DL)/(L+H) Sc2=(250-3*DH)/(P+H) if Sc>Sc2 : Sc=Sc2 TopX=DL+Sc*L FrontX=DL+Sc*L RightX=2*DL+Sc*L IsoX=2*DL+Sc*(L) TopY=DH+Sc*P RightY=DH+P*Sc FrontY=2*DH+Sc*(P+H) IsoY=2*DH+Sc*P

print TopX,RightX,TopY,FrontY

App.activeDocument.addObject('Drawing::FeatureViewPart','topView') App.activeDocument.topView.Source =Piece.Object App.activeDocument.topView.Direction = (0,0,1) App.activeDocument.topView.Rotation=180 App.activeDocument.topView.X = TopX App.activeDocument.topView.Y = TopY App.activeDocument.topView.ShowHiddenLines=True App.activeDocument.AutoDrawing.addObject(App.activeDocument.topView) App.activeDocument.topView.Scale = Sc App.activeDocument.addObject('Drawing::FeatureViewPart','FrontView') App.activeDocument.FrontView.Source =Piece.Object App.activeDocument.FrontView.Direction = (0,-1,0) App.activeDocument.FrontView.Rotation=90 App.activeDocument.FrontView.Scale = Sc App.activeDocument.FrontView.X = FrontX App.activeDocument.FrontView.Y = FrontY App.activeDocument.FrontView.ShowHiddenLines=True App.activeDocument.AutoDrawing.addObject(App.activeDocument.FrontView) App.activeDocument.addObject('Drawing::FeatureViewPart','RightView') App.activeDocument.RightView.Source =Piece.Object App.activeDocument.RightView.Direction = (1,0,0) App.activeDocument.RightView.Scale = Sc App.activeDocument.RightView.X = RightX App.activeDocument.RightView.Y = RightY App.activeDocument.RightView.ShowHiddenLines=True App.activeDocument.AutoDrawing.addObject(App.activeDocument.RightView) App.activeDocument.addObject('Drawing::FeatureViewPart','IsoView') App.activeDocument.IsoView.Source =Piece.Object App.activeDocument.IsoView.Direction = (1,1,1) App.activeDocument.IsoView.Rotation=60 App.activeDocument.IsoView.Scale = Sc*.6 App.activeDocument.IsoView.X = IsoX App.activeDocument.IsoView.Y = IsoY App.activeDocument.IsoView.ShowHiddenLines=True App.activeDocument.AutoDrawing.addObject(App.activeDocument.IsoView)
 * 1) Create topView
 * 1) Create FrontView
 * 1) Create RightView
 * 1) Create IsotView