Macro Automatic drawing/it: Difference between revisions

From FreeCAD Documentation
(Created page with "{{Macro/it|Icon=Text-x-python|Name=Automatic drawing|Name/it=Automatic drawing|Description=Questo codice consente di ottenere in un disegno 4 viste diverse dell'oggetto (anter...")
No edit summary
 
(29 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
{{Macro/it|Icon=Text-x-python|Name=Automatic drawing|Name/it=Automatic drawing|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}}
{{Macro/it
|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==
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].

== 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.
This code generates a [[Drawing Module|Drawing]] page with three orthographic views (front, top and right) aligned to each other, and an isometric view placed at the top right of the page. It calculates the scale based on the model size and space available on the sheet. The iso view is scaled to 2/3 of the ortho views.<br />
* Funziona solo con un singolo oggetto (questa è una limitazione del Modulo Drawing)
It uses the [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#First-angle_projection first-angle projection].
* Richiede delle modifiche per farla funzionare secondo il [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#Third-angle_projection third-angle projection] ovvero il [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#Third-angle_projection Sistema di rappresentazione americano] utilizzato negli Stati Uniti e in Canada.


==== How to use ====
== La macro ==
An object needs to be selected before launching the macro.


==== Limitations ====
* Scale is not standard. You may need to change the views manually to a standard scale.
* It only works with a single object (this is a limitation from the Drawing Workbench)
* Needs to be modified to work for [http://en.wikipedia.org/wiki/Multiview_orthographic_projection#Third-angle_projection third-angle projection] used in the US and Canada.


ToolBar icon [[Image:Macro_Automatic_drawing.png]]
==== The script ====


'''Macro_Automatic_drawing.FCMacro'''


{{MacroCode|code=
<syntaxhighlight>


import FreeCAD, Part, Drawing
import FreeCAD, Part, Drawing
Line 85: Line 103:
App.activeDocument().AutoDrawing.addObject(App.activeDocument().IsoView)
App.activeDocument().AutoDrawing.addObject(App.activeDocument().IsoView)


}}
</syntaxhighlight>
{{clear}}
{{clear}}

<languages/>
==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