Macro Automatic drawing/it: Difference between revisions

From FreeCAD Documentation
mNo edit summary
No edit summary
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Macro/it
{{Macro/it|Icon=Text-x-python|Name=Automatic drawing|Name/it=Proiezioni Automatiche|Description=Questo codice consente di ottenere in un disegno 4 viste diverse dell'oggetto (anteriore, superiore, iso, destra). Ha bisogno di qualche modifica per essere completamente efficace.|Author=Normandc|Version=1.0|Date=2016-09-26}}
|Name=Automatic drawing
|Translate=Proiezioni Automatiche
|Icon=Macro_Automatic_drawing.png
|Description=Questo codice consente di ottenere in un disegno 4 viste diverse dell'oggetto (anteriore, superiore, iso e destra). Ha bisogno di qualche modifica per essere completamente efficace.
|Author=Normandc
|Version=1.0
|Date=2016-09-26
|FCVersion=Tutte versione utilizzando Drawing Workbench
|Download=[https://www.freecadweb.org/wiki/images/0/08/Macro_Automatic_drawing.png ToolBar icon]
}}


==Descrizione==
==Descrizione==
Questo codice genera una pagina di [[Drawing Module/it|Drawing]] ( Disegno) con tre viste ortogonali (frontale, dall'alto e laterale destra) allineate, più una vista isometrica posto in alto a destra della pagina. Calcola la scala basandosi sulle dimensioni del modello e sullo spazio disponibile nel foglio. La vista iso viene ridimensionata a 2/3 delle altre.
Questo codice genera una pagina di [[Drawing Workbench/it|Drawing]] ( Disegno) con tre viste ortogonali (frontale, dall'alto e laterale destra) allineate, più una vista isometrica posto in alto a destra della pagina. Calcola la scala basandosi sulle dimensioni del modello e sullo spazio disponibile nel foglio. La vista iso viene ridimensionata a 2/3 delle altre.


Utilizza il [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#First-angle_projection first-angle projection] ovvero il [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#First-angle_projection Sistema di rappresentazione europeo].
Utilizza il [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#First-angle_projection first-angle projection] ovvero il [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#First-angle_projection Sistema di rappresentazione europeo].


== Utilizzo ==
== Utilizzo ==
Prima di avviare la macro è necessario selezionare un oggetto.

Prima di lanciare la macro è necessario selezionare un oggetto.


== Limitazioni ==
== Limitazioni ==
Line 19: Line 28:
== La macro ==
== La macro ==



ToolBar icon [[Image:Macro_Automatic_drawing.png]]


'''Macro_Automatic_drawing.FCMacro'''
'''Macro_Automatic_drawing.FCMacro'''


{{Code|code=
{{MacroCode|code=


import FreeCAD, Part, Drawing
import FreeCAD, Part, Drawing
Line 94: Line 105:
}}
}}
{{clear}}
{{clear}}

==Link==

Nel forum [https://forum.freecadweb.org/viewtopic.php?f=8&t=3361 Automatic drawing]

Latest revision as of 19:16, 17 September 2022

Proiezioni Automatiche

Descrizione
Questo codice consente di ottenere in un disegno 4 viste diverse dell'oggetto (anteriore, superiore, iso e destra). Ha bisogno di qualche modifica per essere completamente efficace.

Versione macro: 1.0
Ultima modifica: 2016-09-26
Versione FreeCAD: Tutte versione utilizzando Drawing Workbench
Download: ToolBar icon
Autore: Normandc
Autore
Normandc
Download
ToolBar icon
Link
Versione macro
1.0
Data ultima modifica
2016-09-26
Versioni di FreeCAD
Tutte versione utilizzando Drawing Workbench
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questo codice genera una pagina di Drawing ( Disegno) con tre viste ortogonali (frontale, dall'alto e laterale destra) allineate, più una vista isometrica posto in alto a destra della pagina. Calcola la scala basandosi sulle dimensioni del modello e sullo spazio disponibile nel foglio. La vista iso viene ridimensionata a 2/3 delle altre.

Utilizza il first-angle projection ovvero il Sistema di rappresentazione europeo.

Utilizzo

Prima di avviare la macro è necessario selezionare un oggetto.

Limitazioni

  • La scala non è standard. Può essere necessario modificare manualmente la vista per adattarla ad una scala standard.
  • Funziona solo con un singolo oggetto (questa è una limitazione del Modulo Drawing)
  • Richiede delle modifiche per farla funzionare secondo il third-angle projection ovvero il Sistema di rappresentazione americano utilizzato negli Stati Uniti e in Canada.

La macro

ToolBar icon

Macro_Automatic_drawing.FCMacro

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

#Create topView
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
#Create FrontView
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)
#Create RightView
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)
#Create IsotView
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)

Link

Nel forum Automatic drawing