Spreadsheet Workbench/it: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
{{Docnav/it|[[Sketcher Workbench/it|Ambiente Sketcher]]|[[Start Workbench/it|Ambiente Start Workbench]]|IconL=Workbench_Sketcher.svg|IconR=Workbench_Start.svg}}
{{Docnav/it|[[Sketcher Workbench/it|Ambiente Sketcher]]|[[Start Workbench/it|Ambiente Start]]|IconL=Workbench_Sketcher.svg|IconR=Workbench_Start.svg}}
</div>


[[Image:Workbench_Spreadsheet.svg|64px]]
[[Image:Workbench_Spreadsheet.svg|thumb|128px|L'icona dell'ambiente Spreadsheet]]


== Introduzione ==
==Introduzione==
L'ambiente Spreadsheet consente di creare e modificare fogli di calcolo, utilizzare i dati del foglio di calcolo come parametri in un modello, riempire il foglio di calcolo con i dati recuperati da un modello, eseguire calcoli ed esportare i dati in altre applicazioni di fogli di calcolo come LibreOffice o Microsoft Excel.


<div class="mw-translate-fuzzy">
L'ambiente Spreadsheet è disponibile da FreeCAD 0.15.
L'ambiente [[Image:Workbench_Spreadsheet.svg|24px]] Spreadsheet consente di creare e modificare fogli di calcolo, utilizzare i dati del foglio di calcolo come parametri in un modello, riempire il foglio di calcolo con i dati recuperati da un modello, eseguire calcoli ed esportare i dati in altre applicazioni di fogli di calcolo come LibreOffice o Microsoft Excel.
</div>


{{TOCright}}
{{TOCright}}
[[File:Spreadsheet_screenshot.jpg|800px]]


[[File:Spreadsheet_screenshot.jpg|600px]]
{{Caption|Un foglio di calcolo con alcune celle compilate con testo e quantità}}

==Strumenti==

* [[File:Spreadsheet_CreateSheet.svg|24px]] [[Spreadsheet_CreateSheet/it|Crea un foglio di calcolo]]: crea un nuovo foglio di calcolo.

* [[File:Spreadsheet_Import.svg|24px]] [[Spreadsheet_Import/it|Importa un foglio di calcolo]]: importa un file con valori separati da virgola (CSV) in un foglio di calcolo.
* [[File:Spreadsheet_Export.svg|24px]] [[Spreadsheet_Export/it|Esporta il foglio di calcolo]]: esporta un file di valori separati da virgola (CSV) da un foglio di calcolo.

* [[File:Spreadsheet_MergeCells.svg|24px]] [[Spreadsheet_MergeCells/it|Unisci le celle]]: unisce le celle selezionate.
* [[File:Spreadsheet_SplitCell.svg|24px]] [[Spreadsheet_SplitCell/it|Dividi la cella]]: divide le celle precedentemente unite.

* [[File:Spreadsheet_AlignLeft.svg|24px]] [[Spreadsheet_AlignLeft/it|Allinea a sinistra]]: allinea a sinistra il contenuto delle celle selezionate.
* [[File:Spreadsheet_AlignCenter.svg|24px]] [[Spreadsheet_AlignCenter/it|Allinea in centro orizzontale]]: allinea al centro in orizzontale il contenuto delle celle selezionate.
* [[File:Spreadsheet_AlignRight.svg|24px]] [[Spreadsheet_AlignRight/it|Allinea a destra]]: allinea a destra il contenuto delle celle selezionate.
* [[File:Spreadsheet_AlignTop.svg|24px]] [[Spreadsheet_AlignTop/it|Allinea in alto]]: allinea in alto il contenuto delle celle selezionate.
* [[File:Spreadsheet_AlignVCenter.svg|24px]] [[Spreadsheet_AlignVCenter/it|Allinea in centro verticale]]: allinea al centro in verticale il contenuto delle celle selezionate.
* [[File:Spreadsheet_AlignBottom.svg|24px]] [[Spreadsheet_AlignBottom/it|Allinea in basso]]: allinea in basso il contenuto delle celle selezionate.

* [[File:Spreadsheet_StyleBold.svg|24px]] [[Spreadsheet_StyleBold/it|Grassetto]]: imposta il contenuto delle celle selezionate in grassetto.
* [[File:Spreadsheet_StyleItalic.svg|24px]] [[Spreadsheet_StyleItalic/it|Corsivo]]: imposta il contenuto delle celle selezionate in corsivo.
* [[File:Spreadsheet_StyleUnderline.svg|24px]] [[Spreadsheet_StyleUnderline/it|Sottolineato]]: imposta il contenuto delle celle selezionate su sottolineato.

* [[File:Spreadsheet_SetAlias.svg|24px]] [[Spreadsheet_SetAlias/it|Alias]]: imposta un alias per le celle selezionate.

* {{Button|Nero}} e {{Button|Bianco}} impostano i colori di primo piano e di sfondo delle celle selezionate.

<div class="mw-translate-fuzzy">
=== Proprietà delle celle ===
</div>

Le proprietà di una cella del foglio possono essere modificate con un clic destro su una cella. Si apre la seguente finestra:

[[File:SpreadsheetCellPropDialog.png]]

Come indicato dalle schede, è possibile modificare le seguenti proprietà:

<div class="mw-translate-fuzzy">
* Color: Colore del testo e colore di sfondo
* Alignment: Allineamento orizzontale e verticale del testo
* Style: Stile del testo: grassetto, corsivo, sottolineato
* Units: <span id="units_tab"></span>Mostra le unità di misura per questa cella. Si prega di leggere la sezione [[Spreadsheet_Workbench/it#Unità di misura|Unità di misura]] sottostante.
* Alias: <span id="alias_name"></span>Definisce un nome alias per questa cella. Questo nome alias può essere utilizzato nelle formule della cella e in generale anche nelle espressioni di FreeCAD.
Anche se è possibile utilizzare il numero di riga e di colonna in un'espressione per fare riferimento a una cella, è consigliabile assegnare alla cella un nome alias e utilizzarlo.
Ad esempio, se i dati nella cella B1 contengono il parametro length per un oggetto, un nome alias di "MyObject_Length" consente di chiamare il valore come "Spreadsheet.MyObject_Length"
invece di "Spreadsheet.B1". {{Version/it|0.16}}
</div>

<div class="mw-translate-fuzzy">
== Espressioni nelle celle ==
== Espressioni nelle celle ==
</div>


<div class="mw-translate-fuzzy">
Una cella del foglio di calcolo può contenere un testo o un'espressione.
Una cella del foglio di calcolo può contenere un testo o un'espressione.
Tecnicamente, le espressioni devono iniziare con un segno "=" uguale.
Tecnicamente, le espressioni devono iniziare con un segno "=" uguale.
Line 19: Line 73:
se si inserisce qualcosa che sembra un'espressione senza il segno '=',
se si inserisce qualcosa che sembra un'espressione senza il segno '=',
lo aggiunge automaticamente.
lo aggiunge automaticamente.
</div>


<div class="mw-translate-fuzzy">
Le espressioni inserite nelle celle possono contenere numeri, funzioni, riferimenti ad altre celle e riferimenti alle proprietà del modello
Le espressioni inserite nelle celle possono contenere numeri, funzioni, riferimenti ad altre celle e riferimenti alle proprietà del modello
(Ma vedere sotto le [[Spreadsheet_Workbench/it#Limitazioni attuali|Limitazioni attuali]]).
(Ma vedere sotto le [[Spreadsheet_Workbench/it#Limitazioni attuali|Limitazioni attuali]]).
Line 25: Line 81:
Una cella può anche essere referenziata dal suo [[Spreadsheet_Workbench/it#alias_name|alias]].
Una cella può anche essere referenziata dal suo [[Spreadsheet_Workbench/it#alias_name|alias]].
Esempio: B4 + A6
Esempio: B4 + A6
</div>


'''Note:''' Cell expressions are treated by FreeCAD as programming code. Therefore, when you edit a cell the content you see that it is not following your display settings:
* the decimal separator is always a dot
* the number of displayed decimals can differ from your [[Preferences_Editor#Units|preferences settings]]

<div class="mw-translate-fuzzy">
I riferimenti agli oggetti nel modello sono spiegati in seguito in [[#Riferimento ai dati CAD|Riferimento ai dati CAD]].
I riferimenti agli oggetti nel modello sono spiegati in seguito in [[#Riferimento ai dati CAD|Riferimento ai dati CAD]].
L'utilizzo dei valori delle celle del foglio di calcolo per definire le proprietà del modello è spiegato in seguito in [[#Dati dei fogli di calcolo nelle espressioni|Dati del foglio di calcolo nelle espressioni]].
L'utilizzo dei valori delle celle del foglio di calcolo per definire le proprietà del modello è spiegato in seguito in [[#Dati dei fogli di calcolo nelle espressioni|Dati del foglio di calcolo nelle espressioni]].
Per ulteriori informazioni su come sono formate le espressioni, consultare la pagina [[Expressions/it|Espressioni]].
Per ulteriori informazioni su come sono formate le espressioni, consultare la pagina [[Expressions/it|Espressioni]].
</div>


<div class="mw-translate-fuzzy">
== Funzioni supportate ==

Sono supportate le funzioni trigonometriche standard e le altre comuni funzioni matematiche nonché le funzioni di aggregazione statistica (vedere [[Expressions/it|Expressioni]]).

== Interazione tra fogli di calcolo e modello CAD ==
== Interazione tra fogli di calcolo e modello CAD ==
</div>


<div class="mw-translate-fuzzy">
I dati nelle celle di un foglio di calcolo possono essere utilizzati nelle espressioni dei parametri del modello CAD.
I dati nelle celle di un foglio di calcolo possono essere utilizzati nelle espressioni dei parametri del modello CAD.
Pertanto, un foglio di calcolo può essere utilizzato come origine per i valori dei parametri utilizzati in un modello, raccogliendo efficacemente i valori in un'unica posizione.
Pertanto, un foglio di calcolo può essere utilizzato come origine per i valori dei parametri utilizzati in un modello, raccogliendo efficacemente i valori in un'unica posizione.
Quando i valori vengono modificati nel foglio di calcolo, le modifiche si propagano nel modello.
Quando i valori vengono modificati nel foglio di calcolo, le modifiche si propagano nel modello.
</div>


<div class="mw-translate-fuzzy">
Allo stesso modo, le proprietà degli oggetti del modello CAD possono essere utilizzate nelle espressioni nelle celle del foglio di calcolo.
Allo stesso modo, le proprietà degli oggetti del modello CAD possono essere utilizzate nelle espressioni nelle celle del foglio di calcolo.
Ciò consente l'uso di proprietà dell'oggetto, come il volume o l'area, nel foglio di calcolo.
Ciò consente l'uso di proprietà dell'oggetto, come il volume o l'area, nel foglio di calcolo.
Se nel modello CAD viene cambiato il nome di un oggetto,
Se nel modello CAD viene cambiato il nome di un oggetto,
la modifica viene automaticamente propagata a qualsiasi riferimento nelle espressioni del foglio di calcolo utilizzando il nome che è stato modificato.
la modifica viene automaticamente propagata a qualsiasi riferimento nelle espressioni del foglio di calcolo utilizzando il nome che è stato modificato.
</div>


<div class="mw-translate-fuzzy">
In un documento si possono utilizzare più fogli di calcolo;
In un documento si possono utilizzare più fogli di calcolo;
ai fogli di calcolo può essere assegnato un nome assegnato (rinominato) come qualsiasi altro oggetto.
ai fogli di calcolo può essere assegnato un nome assegnato (rinominato) come qualsiasi altro oggetto.
</div>


FreeCAD will automatically assign a unique name to a spreadsheet when it is created. These names follow the pattern {{incode|Spreadsheet}}, {{incode|Spreadsheet001}}, {{incode|Spreadsheet002}} and so on. The name can not be changed manually, and it is not visible in the properties of the spreadsheet. It can be used to refer to the spreadsheet in an [[Expressions|Expression]] (see [[#Spreadsheet_data_in_expressions|Spreadsheet data in expressions]] below.)
FreeCAD verifica le dipendenze cicliche. Vedere [[Spreadsheet_Workbench#Current_Limitations/it|Limitazioni correnti]].


The label of a spreadsheet is automatically set to the name of the spreadsheet upon creation. Unlike the name, the label can be changed, for example in the properties panel or using the context menu action Rename. Note that the label of a spreadsheet within a document has to be unique; if you try to change the label to a label already used by another spreadsheet, FreeCAD will not accept the new label.
=== Proprietà delle celle ===


<div class="mw-translate-fuzzy">
Le proprietà di una cella del foglio possono essere modificate con un clic destro su una cella. Si apre la seguente finestra:
FreeCAD verifica le dipendenze cicliche. Vedere [[Spreadsheet_Workbench/it#Limitazioni attuali|Limitazioni attuali]].

</div>
[[File:SpreadsheetCellPropDialog.png]]

Come indicato dalle schede, è possibile modificare le seguenti proprietà:

* Color: Colore del testo e colore di sfondo
* Alignment: Allineamento orizzontale e verticale del testo
* Style: Stile del testo: grassetto, corsivo, sottolineato
* Units: <span id="units_tab"></span>Mostra le unità di misura per questa cella. Si prega di leggere la sezione [[Spreadsheet_Workbench/it#Unità di misura|Unità di misura]] sottostante.
* Alias: <span id="alias_name"></span>Definisce un nome alias per questa cella. Questo nome alias può essere utilizzato nelle formule della cella e in generale anche nelle espressioni di FreeCAD.
Anche se è possibile utilizzare il numero di riga e di colonna in un'espressione per fare riferimento a una cella, è consigliabile assegnare alla cella un nome alias e utilizzarlo.
Ad esempio, se i dati nella cella B1 contengono il parametro length per un oggetto, un nome alias di "MyObject_Length" consente di chiamare il valore come "Spreadsheet.MyObject_Length"
invece di "Spreadsheet.B1". {{Version/it|0.16}}


<div class="mw-translate-fuzzy">
=== Riferimento ai dati CAD ===
=== Riferimento ai dati CAD ===
</div>


Come indicato sopra, è possibile fare riferimento ai dati del modello CAD nelle espressioni del foglio di calcolo.
Come indicato sopra, è possibile fare riferimento ai dati del modello CAD nelle espressioni del foglio di calcolo.


<div class="mw-translate-fuzzy">
Le espressioni calcolate nelle celle del foglio di calcolo iniziano con un segno di uguale ('=').
Le espressioni calcolate nelle celle del foglio di calcolo iniziano con un segno di uguale ('=').
Comunque, il meccanismo di immissione del foglio di calcolo tenta di essere intelligente.
Comunque, il meccanismo di immissione del foglio di calcolo tenta di essere intelligente.
Line 79: Line 138:
(spesso il risultato di una digitazione sbagliata, ad es. "MyCube.length" anziché "MyCube.Length"),
(spesso il risultato di una digitazione sbagliata, ad es. "MyCube.length" anziché "MyCube.Length"),
non viene aggiunto il segno '=' e viene trattato semplicemente come una stringa di testo.
non viene aggiunto il segno '=' e viene trattato semplicemente come una stringa di testo.
</div>


<div class="mw-translate-fuzzy">
Nota: il comportamento precedente (inserimento automatico di '=') ha alcune spiacevoli conseguenze:
Nota: il comportamento precedente (inserimento automatico di '=') ha alcune spiacevoli conseguenze:
* se si desidera mantenere una colonna di nomi corrispondenti ai nomi [[#alias_name|alias-names]] in una colonna di valori adiacente, è necessario immettere il nome nella colonna dell'etichetta prima di quello assegnato alla cella nella colonna del valore come nome alias. Altrimenti, quando inserisce il nome alias nella colonna dellle etichette il foglio di calcolo assume che è un'espressione e lo cambia in "= <alias-name>"; e il testo visualizzato è il valore dalla cella <alias-name>.
* se si desidera mantenere una colonna di nomi corrispondenti ai nomi [[#alias_name|alias-names]] in una colonna di valori adiacente, è necessario immettere il nome nella colonna dell'etichetta prima di quello assegnato alla cella nella colonna del valore come nome alias. Altrimenti, quando inserisce il nome alias nella colonna dellle etichette il foglio di calcolo assume che è un'espressione e lo cambia in "= <alias-name>"; e il testo visualizzato è il valore dalla cella <alias-name>.
* Se si commette un errore quando si inserisce il nome nella colonna dell'etichetta e si desidera correggerlo, non si può semplicemente cambiar con il nome alias. Invece, bisogna prima cambiare il nome alias in qualcos'altro, quindi correggere il nome del testo nella colonna dell'etichetta, quindi cambiare il nome alias nella colonna con il suo originale.
* Se si commette un errore quando si inserisce il nome nella colonna dell'etichetta e si desidera correggerlo, non si può semplicemente cambiar con il nome alias. Invece, bisogna prima cambiare il nome alias in qualcos'altro, quindi correggere il nome del testo nella colonna dell'etichetta, quindi cambiare il nome alias nella colonna con il suo originale.
</div>


<div class="mw-translate-fuzzy">
Un modo per aggirare questi problemi è prefissare le etichette di testo corrispondenti ai nomi di alias con una stringa fissa, rendendoli così diversi. Notare che "_" non funziona, poiché viene convertito in "=". Tuttavia, un spazio, anche se invisibile, funziona.
Un modo per aggirare questi problemi è prefissare le etichette di testo corrispondenti ai nomi di alias con una stringa fissa, rendendoli così diversi. Notare che "_" non funziona, poiché viene convertito in "=". Tuttavia, un spazio, anche se invisibile, funziona.
</div>


La tabella seguente mostra alcuni esempi assumendo che il modello abbia una funzione denominata "MyCube":
La tabella seguente mostra alcuni esempi assumendo che il modello abbia una funzione denominata "MyCube":
Line 113: Line 177:
|}
|}


<div class="mw-translate-fuzzy">
=== Dati dei fogli di calcolo nelle espressioni ===
=== Dati dei fogli di calcolo nelle espressioni ===
</div>


In order to use spreadsheet data in other parts of FreeCAD, you will usually create an [[Expressions|Expression]] that refers to the spreadsheet and the cell that contains the data you want to use. You can identify spreadsheets by name or by label, and you can identify the cells by position or by alias. Autocompletion is available for all forms of referencing.
L'utilizzo dei dati di un foglio di calcolo in altre parti di FreeCAD richiede un nome completamente definito. Poiché è possibile avere diversi fogli nello stesso documento, serve il nome del foglio con il nome della cella o dell'alias.
Le seguenti immagini che mostrano l'utilizzo di un "number" alias di un foglio "MySheet" per una espressione
in PartDesign.


{|{{Prettytable}}
[[File:Expression usage1.png]]
!
!Spreadsheet by Name
!Spreadsheet by Label
|-
!Cell by Position
|{{incode|<nowiki>=Spreadsheet042.B5</nowiki>}}
|{{incode|<nowiki>=<<MySpreadsheet>>.B5</nowiki>}}
|-
!Cell by Alias
|{{incode|<nowiki>=Spreadsheet042.MyAlias</nowiki>}}
|{{incode|<nowiki>=<<MySpreadsheet>>.MyAlias</nowiki>}}
|}


<div class="mw-collapsible mw-collapsed">
Digitando una "M" viene visualizzato un elenco di nomi disponibili (sopra).
The recommended way to refer to spreadsheet data is to use the spreadsheet label and cell alias name. For a more in-depth explanation of the pros and cons of the addressing modes, see the expanded section below.
I tasti freccia consentono di spostarsi verso il basso su "MySheet" e selezionarlo;
<div class="mw-collapsible-content">
{{KEY|Enter}} fa sì che venga completato nell'espressione.
Si può anche continuare a digitare o fare clic sulla voce con il mouse.


Using the spreadsheet label has the advantage that it can be freely changed to describe the contents of the spreadsheet. It is also easier to identify the spreadsheet that is being used since the text in the expression matches the label shown in the model and property views. If you decide to change the label of a spreadsheet, existing references to the contents of the spreadsheet will be updated, so you won't break your expressions by renaming the spreadsheet. The internal name of the spreadsheet is not readily available anywhere except within the expression editor, so if you use the internal name and later decide to rename the spreadsheets, you might have a hard time tracing your expression data back to its source.
[[File:Expression usage2.png]]


Be aware that when you create a new spreadsheet, the name and the label are the same, so it is easy to accidentally use the spreadsheet name instead of the label. A simple way to avoid this is to give the spreadsheet a meaningful name before starting to use it in expressions.
Digitando una "n" ora viene mostrato l'elenco di nomi di alias disponibili in MySheet che iniziano con "n" (sopra).
"number" ora può essere selezionato come descritto sopra.
Una volta inserito un nome valido con contenuto utilizzabile,
il campo del risultato mostra il valore calcolato; in questo caso, la lunghezza (sotto).


While you may use the row and column number in an expression to reference a cell, best practice is to give the cell an alias name and use that. See [[#Cell Properties|Cell Properties]] above on how to set the alias. For example, if the data in cell B1 contained the length parameter for an object, an alias name of {{incode|MyObject_Length}} would allow the value to be referred to as {{incode|<<MyParams>>.MyObject_Length}} instead of {{incode|Spreadsheet.B1}}. Besides being much easier to read and understand, alias names are also much easier to change if you decide to adjust the structure of your spreadsheet. Using an alias also has the advantage that it is reasier to see which cells are used to control other parts of the document. Note that FreeCAD will automatically adjust the positional references in expressions if you insert or remove rows and columns in the spreadsheet, so even if you use row and column numbers in an expression, you can insert rows and columns without breaking the references to the surrounding cells.
[[File:Expression usage3.png]]


</div>
Un'ulteriore digitazione, come l'aggiunta di un segno "+", comporta un'espressione che non è più valida e viene indicato.
</div>
Continuando a completare l'espressione può nuovamente dare come risultato un'espressione valida.

=== Complex models and recomputes ===

Editing a spreadsheet will trigger a recompute of the 3D model, even if the changes do not affect the model. For a complex model a recompute can take a long time, and having to wait after every single edit is of course quite annoying.

There are three solutions to deal with this:
# Temporarily skip recomputes:
#* Right-click the document node in the [[Tree_view|Tree view]].
#* Select the {{MenuCommand|Skip recomputes}} option from the context menu.
#* There is a big disadvantage to this solution. New values entered in the spreadsheet will not be displayed until the document is recomputed. Instead {{incode|#PENDING}} is shown.
#* You can either recompute manually, using the [[Std_Refresh|Std Refresh]] command, or disable {{MenuCommand|Skip recomputes}} when you are done editing.
# Use a macro to automatically skip recomputes while editing a spreadsheet:
#* Download and run [https://forum.freecadweb.org/viewtopic.php?f=8&t=48600#p419301 skipSheet.FCMacro].
#* This solution saves a few steps compared to the first solution, but also has the mentioned disadvantage.
# Put the spreadsheet in a separate file:
#* You can reference spreadsheet data from an external file with this syntax: {{incode|<nowiki>=NameOfFile#<<MySpreadsheet>>.MyAlias</nowiki>}}.
#* The advantage of having the spreadsheet in another file over switching off recomputes is that the spreadsheet itself does get recomputed.
#* The disadvantage is that the model won't automatically recompute after changes to the spreadsheet.
#* In the scenario where you first open the 'spreadsheet' file, change one or more values and then open the 'model' file, there won't be any indication that the model needs to be recomputed. But if both files are open the [[Std_Refresh|Std Refresh]] icon will update correctly for the 'model' file after changes to the 'spreadsheet' file.


== Unità di misura ==
== Unità di misura ==


<div class="mw-translate-fuzzy">
Il foglio di calcolo ha il concetto dimensione (unità di misura) associata ai valori delle celle.
Il foglio di calcolo ha il concetto dimensione (unità di misura) associata ai valori delle celle.
Un numero inserito senza un'unità associata non ha dimensione.
Un numero inserito senza un'unità associata non ha dimensione.
Line 145: Line 237:
Se un numero ha un'unità di misuraa associata, quell'unità sarà utilizzata in tutti i calcoli.
Se un numero ha un'unità di misuraa associata, quell'unità sarà utilizzata in tutti i calcoli.
Ad esempio, la moltiplicazione di due lunghezze con l'unità mm fornisce un'area con l'unità in mm&sup2;.
Ad esempio, la moltiplicazione di due lunghezze con l'unità mm fornisce un'area con l'unità in mm&sup2;.
</div>


<div class="mw-translate-fuzzy">
Se una cella contiene un valore che rappresenta una dimensione, esso deve essere inserito con la relativa unità associata.
Se una cella contiene un valore che rappresenta una dimensione, esso deve essere inserito con la relativa unità associata.
Anche se molti casi semplici possono essere gestiti con un valore adimensionale, è sconsigliato non inserire l'unità.
Anche se molti casi semplici possono essere gestiti con un valore adimensionale, è sconsigliato non inserire l'unità.
Se un valore che rappresenta una dimensione viene inserito senza la relativa unità associata, alcune sequenze di operazioni costringono FreeCAD a segnalare l'incompatibilità delle unità in un'espressione quando sembra che dovrebbe essere convalidata.
Se un valore che rappresenta una dimensione viene inserito senza la relativa unità associata, alcune sequenze di operazioni costringono FreeCAD a segnalare l'incompatibilità delle unità in un'espressione quando sembra che dovrebbe essere convalidata.
(Questo può essere compreso meglio compreso guardando [https://forum.freecadweb.org/viewtopic.php?f=3&t=34713&p=292455#p292438 this thread] nel forum di FreeCAD).
(Questo può essere compreso meglio compreso guardando [https://forum.freecadweb.org/viewtopic.php?f=3&t=34713&p=292455#p292438 questa discussione] nel forum di FreeCAD).
</div>


<div class="mw-translate-fuzzy">
È possibile modificare le unità visualizzate per un valore di cella utilizzando la finestra di dialogo delle proprietà [[#units_tab|units tab]] (sopra).
È possibile modificare le unità visualizzate per un valore di cella utilizzando la finestra di dialogo delle proprietà [[#units_tab|units tab]] (sopra).
Questo non modifica il valore contenuto nella cella; converte solo il valore esistente per la visualizzazione.
Questo non modifica il valore contenuto nella cella; converte solo il valore esistente per la visualizzazione.
Il valore utilizzato per i calcoli non cambia, ed i risultati delle formule che utilizzano il valore non cambiano.
Il valore utilizzato per i calcoli non cambia, ed i risultati delle formule che utilizzano il valore non cambiano.
Ad esempio, una cella contenente il valore "5.08cm" può essere visualizzata come "2in" modificando il valore della scheda delle unità su "in".
Ad esempio, una cella contenente il valore "5.08cm" può essere visualizzata come "2in" modificando il valore della scheda delle unità su "in".
</div>


<div class="mw-translate-fuzzy">
Un numero adimensionale non può essere modificato in un numero con un'unità tramite la finestra di dialogo delle proprietà della cella.
Un numero adimensionale non può essere modificato in un numero con un'unità tramite la finestra di dialogo delle proprietà della cella.
Si può inserire una stringa di unità e tale stringa verrà visualizzata; ma la cella contiene ancora un numero adimensionale. Per modificare un valore adimensionale in un valore con una dimensione, è necessario reinserire il valore stesso con l'unità associata.
Si può inserire una stringa di unità e tale stringa verrà visualizzata; ma la cella contiene ancora un numero adimensionale. Per modificare un valore adimensionale in un valore con una dimensione, è necessario reinserire il valore stesso con l'unità associata.
</div>


Occasionalmente può essere desiderabile sbarazzarsi di una dimensione in un'espressione. Questo può essere fatto moltiplicando per 1 con un'unità reciproca.
Occasionalmente può essere desiderabile sbarazzarsi di una dimensione in un'espressione. Questo può essere fatto moltiplicando per 1 con un'unità reciproca.
Line 165: Line 264:
I fogli possono essere importati ed esportati nel formato [https://en.wikipedia.org/wiki/Comma-separated_values csv] che può anche essere letto e scritto da molte altre applicazioni di fogli di calcolo come Microsoft Excel o LibreOffice Calc. Durante l'importazione dei file in FreeCAD, il delimitatore (il carattere che viene utilizzato per separare le colonne) deve essere il carattere di tabulazione (questo può essere impostato durante l'esportazione da altre applicazioni). L'importazione di un file CSV è disponibile tramite il menu {{MenuCommand|Spreadsheet → Import Spreadsheet}} o facendo clic sull'icona [[Image:SpreadsheetImport.svg|24px]]. Questa funzione di importazione non apre file Excel o altri formati di fogli di calcolo.
I fogli possono essere importati ed esportati nel formato [https://en.wikipedia.org/wiki/Comma-separated_values csv] che può anche essere letto e scritto da molte altre applicazioni di fogli di calcolo come Microsoft Excel o LibreOffice Calc. Durante l'importazione dei file in FreeCAD, il delimitatore (il carattere che viene utilizzato per separare le colonne) deve essere il carattere di tabulazione (questo può essere impostato durante l'esportazione da altre applicazioni). L'importazione di un file CSV è disponibile tramite il menu {{MenuCommand|Spreadsheet → Import Spreadsheet}} o facendo clic sull'icona [[Image:SpreadsheetImport.svg|24px]]. Questa funzione di importazione non apre file Excel o altri formati di fogli di calcolo.


<div class="mw-translate-fuzzy">
I fogli di calcolo in formato Excel "xlsx" possono essere importati in un documento FreeCAD tramite il menu {{MenuCommand|File → Importa...}}. I fogli di calcolo Excel possono anche essere aperti da FreeCAD facendo clic nel menu {{MenuCommand|File → Apri...}} o facendo clic sull'icona [[Image:Document-open.svg|24px]]. In questo caso all'interno si crea un nuovo documento con un foglio di calcolo. Sono supportate le seguenti caratteristiche:
I fogli di calcolo in formato Excel "xlsx" possono essere importati in un documento FreeCAD tramite il menu {{MenuCommand|File → Importa...}}. I fogli di calcolo Excel possono anche essere aperti da FreeCAD facendo clic nel menu {{MenuCommand|File → Apri...}} o facendo clic sull'icona [[Image:Document-open.svg|24px]]. In questo caso all'interno si crea un nuovo documento con un foglio di calcolo. Sono supportate le seguenti caratteristiche:
</div>


* tutte le funzioni che sono disponibili anche nel foglio di calcolo FreeCAD. Le altre funzioni danno un errore nella cella corrispondente dopo l'importazione.
* tutte le funzioni che sono disponibili anche nel foglio di calcolo FreeCAD. Le altre funzioni danno un errore nella cella corrispondente dopo l'importazione.
Line 173: Line 274:
Le altre funzionalità non vengono importate nel foglio di calcolo di FreeCAD. L'importazione di Excel è disponibile dalla {{Version/it|0.17}} di FreeCAD.
Le altre funzionalità non vengono importate nel foglio di calcolo di FreeCAD. L'importazione di Excel è disponibile dalla {{Version/it|0.17}} di FreeCAD.


<div class="mw-translate-fuzzy">
== Limitazioni attuali ==
== Limitazioni attuali ==
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
FreeCAD verifica le dipendenze cicliche.
Non è possibile fornire dati per una geometria, ad esempio una lunghezza, in un foglio elettronico e recuperare nello stesso foglio il volume della forma risultante. Ciò creerebbe un riferimento circolare. Questa è una decisione intenzionale. Tuttavia, è possibile utilizzare due differenti fogli: uno come sorgente dei dati per la geometria e l'altro per i rapporti (risultati) sui dati della geometria.
Per come è concepita, tale verifica si arresta al livello dell'oggetto foglio di calcolo.
Di conseguenza, non si dovrebbe avere un foglio di calcolo che contiene contemporaneamente le celle i cui valori sono utilizzati per specificare parametri nel modello e sia celle i cui valori utilizzano l'output del modello.
Ad esempio, non è possibile avere celle che specificano la lunghezza, la larghezza e l'altezza di un oggetto e un'altra cella che fa riferimento al volume totale della forma risultante.
Questa limitazione può essere superata creando due fogli di calcolo:
uno utilizzato come origine dati per i parametri di input per il modello
e l'altro usato per il risultato dei calcoli basati sui dati geometrici.
</div>
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Non è possibile selezionare e copiare più celle contemporaneamente. Si può copiare e incollare solo il contenuto di una cella per volta.
Quando le celle vengono copiate, viene copiato solo il contenuto (espressione o valore).
Le [[Spreadsheet_Workbench/it#Proprietà delle celle|Proprietà delle celle]] descritte sopra non sono copiate.
</div>
</div>

Per le versioni precedenti di FreeCAD vedere [[Spreadsheet_legacy/it|Foglio di calcolo - Versione in via di sostituzione]].


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
==Script di base==
Per le versioni precedenti di FreeCAD vedere [[Spreadsheet_legacy/it|Foglio di calcolo - Versione in via di sostituzione]]
</div>
</div>


==Script di base==
{{Code|code=
{{Code|code=
import Spreadsheet
import Spreadsheet
Line 194: Line 305:
}}
}}


<div class="mw-translate-fuzzy">
{{Docnav/it|[[Sketcher Workbench/it|Ambiente Sketcher]]|[[Start Workbench/it|Ambiente Start Workbench]]|IconL=Workbench_Sketcher.svg|IconR=Workbench_Start.svg}}
{{Docnav/it|[[Sketcher Workbench/it|Ambiente Sketcher]]|[[Start Workbench/it|Ambiente Start]]|IconL=Workbench_Sketcher.svg|IconR=Workbench_Start.svg}}
</div>


{{Spreadsheet_Tools_navi{{#translation:}}}}
{{Userdocnavi}}
{{Userdocnavi{{#translation:}}}}
[[Category:Spreadsheet]]
[[Category:Workbenches]]
[[Category:Workbenches{{#translation:}}]]

Revision as of 14:08, 2 December 2020

L'icona dell'ambiente Spreadsheet

Introduzione

L'ambiente Spreadsheet consente di creare e modificare fogli di calcolo, utilizzare i dati del foglio di calcolo come parametri in un modello, riempire il foglio di calcolo con i dati recuperati da un modello, eseguire calcoli ed esportare i dati in altre applicazioni di fogli di calcolo come LibreOffice o Microsoft Excel.

Un foglio di calcolo con alcune celle compilate con testo e quantità

Strumenti

  • Grassetto: imposta il contenuto delle celle selezionate in grassetto.
  • Corsivo: imposta il contenuto delle celle selezionate in corsivo.
  • Sottolineato: imposta il contenuto delle celle selezionate su sottolineato.
  • Alias: imposta un alias per le celle selezionate.
  • Nero e Bianco impostano i colori di primo piano e di sfondo delle celle selezionate.

Proprietà delle celle

Le proprietà di una cella del foglio possono essere modificate con un clic destro su una cella. Si apre la seguente finestra:

Come indicato dalle schede, è possibile modificare le seguenti proprietà:

  • Color: Colore del testo e colore di sfondo
  • Alignment: Allineamento orizzontale e verticale del testo
  • Style: Stile del testo: grassetto, corsivo, sottolineato
  • Units: Mostra le unità di misura per questa cella. Si prega di leggere la sezione Unità di misura sottostante.
  • Alias: Definisce un nome alias per questa cella. Questo nome alias può essere utilizzato nelle formule della cella e in generale anche nelle espressioni di FreeCAD.

Anche se è possibile utilizzare il numero di riga e di colonna in un'espressione per fare riferimento a una cella, è consigliabile assegnare alla cella un nome alias e utilizzarlo. Ad esempio, se i dati nella cella B1 contengono il parametro length per un oggetto, un nome alias di "MyObject_Length" consente di chiamare il valore come "Spreadsheet.MyObject_Length" invece di "Spreadsheet.B1". disponibile dalla versione 0.16

Espressioni nelle celle

Una cella del foglio di calcolo può contenere un testo o un'espressione. Tecnicamente, le espressioni devono iniziare con un segno "=" uguale. Tuttavia, il foglio elettronico tenta di essere intelligente; se si inserisce qualcosa che sembra un'espressione senza il segno '=', lo aggiunge automaticamente.

Le espressioni inserite nelle celle possono contenere numeri, funzioni, riferimenti ad altre celle e riferimenti alle proprietà del modello (Ma vedere sotto le Limitazioni attuali). Le celle sono referenziate dalla loro colonna (lettera maiuscola) e riga (numero). Una cella può anche essere referenziata dal suo alias. Esempio: B4 + A6

Note: Cell expressions are treated by FreeCAD as programming code. Therefore, when you edit a cell the content you see that it is not following your display settings:

  • the decimal separator is always a dot
  • the number of displayed decimals can differ from your preferences settings

I riferimenti agli oggetti nel modello sono spiegati in seguito in Riferimento ai dati CAD. L'utilizzo dei valori delle celle del foglio di calcolo per definire le proprietà del modello è spiegato in seguito in Dati del foglio di calcolo nelle espressioni. Per ulteriori informazioni su come sono formate le espressioni, consultare la pagina Espressioni.

Interazione tra fogli di calcolo e modello CAD

I dati nelle celle di un foglio di calcolo possono essere utilizzati nelle espressioni dei parametri del modello CAD. Pertanto, un foglio di calcolo può essere utilizzato come origine per i valori dei parametri utilizzati in un modello, raccogliendo efficacemente i valori in un'unica posizione. Quando i valori vengono modificati nel foglio di calcolo, le modifiche si propagano nel modello.

Allo stesso modo, le proprietà degli oggetti del modello CAD possono essere utilizzate nelle espressioni nelle celle del foglio di calcolo. Ciò consente l'uso di proprietà dell'oggetto, come il volume o l'area, nel foglio di calcolo. Se nel modello CAD viene cambiato il nome di un oggetto, la modifica viene automaticamente propagata a qualsiasi riferimento nelle espressioni del foglio di calcolo utilizzando il nome che è stato modificato.

In un documento si possono utilizzare più fogli di calcolo; ai fogli di calcolo può essere assegnato un nome assegnato (rinominato) come qualsiasi altro oggetto.

FreeCAD will automatically assign a unique name to a spreadsheet when it is created. These names follow the pattern Spreadsheet, Spreadsheet001, Spreadsheet002 and so on. The name can not be changed manually, and it is not visible in the properties of the spreadsheet. It can be used to refer to the spreadsheet in an Expression (see Spreadsheet data in expressions below.)

The label of a spreadsheet is automatically set to the name of the spreadsheet upon creation. Unlike the name, the label can be changed, for example in the properties panel or using the context menu action Rename. Note that the label of a spreadsheet within a document has to be unique; if you try to change the label to a label already used by another spreadsheet, FreeCAD will not accept the new label.

FreeCAD verifica le dipendenze cicliche. Vedere Limitazioni attuali.

Riferimento ai dati CAD

Come indicato sopra, è possibile fare riferimento ai dati del modello CAD nelle espressioni del foglio di calcolo.

Le espressioni calcolate nelle celle del foglio di calcolo iniziano con un segno di uguale ('='). Comunque, il meccanismo di immissione del foglio di calcolo tenta di essere intelligente. Un'espressione può essere inserita senza il segno '='; se la stringa inserita è un'espressione valida, un '=' viene aggiunto automaticamente quando si premere Enter finale. Se la stringa inserita non è un'espressione valida (spesso il risultato di una digitazione sbagliata, ad es. "MyCube.length" anziché "MyCube.Length"), non viene aggiunto il segno '=' e viene trattato semplicemente come una stringa di testo.

Nota: il comportamento precedente (inserimento automatico di '=') ha alcune spiacevoli conseguenze:

  • se si desidera mantenere una colonna di nomi corrispondenti ai nomi alias-names in una colonna di valori adiacente, è necessario immettere il nome nella colonna dell'etichetta prima di quello assegnato alla cella nella colonna del valore come nome alias. Altrimenti, quando inserisce il nome alias nella colonna dellle etichette il foglio di calcolo assume che è un'espressione e lo cambia in "= <alias-name>"; e il testo visualizzato è il valore dalla cella <alias-name>.
  • Se si commette un errore quando si inserisce il nome nella colonna dell'etichetta e si desidera correggerlo, non si può semplicemente cambiar con il nome alias. Invece, bisogna prima cambiare il nome alias in qualcos'altro, quindi correggere il nome del testo nella colonna dell'etichetta, quindi cambiare il nome alias nella colonna con il suo originale.

Un modo per aggirare questi problemi è prefissare le etichette di testo corrispondenti ai nomi di alias con una stringa fissa, rendendoli così diversi. Notare che "_" non funziona, poiché viene convertito in "=". Tuttavia, un spazio, anche se invisibile, funziona.

La tabella seguente mostra alcuni esempi assumendo che il modello abbia una funzione denominata "MyCube":

Dati CAD Chiamata nel foglio di calcolo Risultato
Lunghezza parametrica di un Cubo di Part =Cube.Length Lunghezza in mm
Volume del Cubo =Cube.Shape.Volume Volume in mm³ senza unità
Tipo di forma del Cubo =Cube.Shape.ShapeType String: Solid
Etichetta del Cubo =Cube.Label String: Cube
coordinata x del centro di massa del Cubo =Cube.Shape.CenterOfMass.x coordinata x in mm senza unità di misura

Dati dei fogli di calcolo nelle espressioni

In order to use spreadsheet data in other parts of FreeCAD, you will usually create an Expression that refers to the spreadsheet and the cell that contains the data you want to use. You can identify spreadsheets by name or by label, and you can identify the cells by position or by alias. Autocompletion is available for all forms of referencing.

Spreadsheet by Name Spreadsheet by Label
Cell by Position =Spreadsheet042.B5 =<<MySpreadsheet>>.B5
Cell by Alias =Spreadsheet042.MyAlias =<<MySpreadsheet>>.MyAlias

The recommended way to refer to spreadsheet data is to use the spreadsheet label and cell alias name. For a more in-depth explanation of the pros and cons of the addressing modes, see the expanded section below.

Using the spreadsheet label has the advantage that it can be freely changed to describe the contents of the spreadsheet. It is also easier to identify the spreadsheet that is being used since the text in the expression matches the label shown in the model and property views. If you decide to change the label of a spreadsheet, existing references to the contents of the spreadsheet will be updated, so you won't break your expressions by renaming the spreadsheet. The internal name of the spreadsheet is not readily available anywhere except within the expression editor, so if you use the internal name and later decide to rename the spreadsheets, you might have a hard time tracing your expression data back to its source.

Be aware that when you create a new spreadsheet, the name and the label are the same, so it is easy to accidentally use the spreadsheet name instead of the label. A simple way to avoid this is to give the spreadsheet a meaningful name before starting to use it in expressions.

While you may use the row and column number in an expression to reference a cell, best practice is to give the cell an alias name and use that. See Cell Properties above on how to set the alias. For example, if the data in cell B1 contained the length parameter for an object, an alias name of MyObject_Length would allow the value to be referred to as <<MyParams>>.MyObject_Length instead of Spreadsheet.B1. Besides being much easier to read and understand, alias names are also much easier to change if you decide to adjust the structure of your spreadsheet. Using an alias also has the advantage that it is reasier to see which cells are used to control other parts of the document. Note that FreeCAD will automatically adjust the positional references in expressions if you insert or remove rows and columns in the spreadsheet, so even if you use row and column numbers in an expression, you can insert rows and columns without breaking the references to the surrounding cells.

Complex models and recomputes

Editing a spreadsheet will trigger a recompute of the 3D model, even if the changes do not affect the model. For a complex model a recompute can take a long time, and having to wait after every single edit is of course quite annoying.

There are three solutions to deal with this:

  1. Temporarily skip recomputes:
    • Right-click the document node in the Tree view.
    • Select the Skip recomputes option from the context menu.
    • There is a big disadvantage to this solution. New values entered in the spreadsheet will not be displayed until the document is recomputed. Instead #PENDING is shown.
    • You can either recompute manually, using the Std Refresh command, or disable Skip recomputes when you are done editing.
  2. Use a macro to automatically skip recomputes while editing a spreadsheet:
    • Download and run skipSheet.FCMacro.
    • This solution saves a few steps compared to the first solution, but also has the mentioned disadvantage.
  3. Put the spreadsheet in a separate file:
    • You can reference spreadsheet data from an external file with this syntax: =NameOfFile#<<MySpreadsheet>>.MyAlias.
    • The advantage of having the spreadsheet in another file over switching off recomputes is that the spreadsheet itself does get recomputed.
    • The disadvantage is that the model won't automatically recompute after changes to the spreadsheet.
    • In the scenario where you first open the 'spreadsheet' file, change one or more values and then open the 'model' file, there won't be any indication that the model needs to be recomputed. But if both files are open the Std Refresh icon will update correctly for the 'model' file after changes to the 'spreadsheet' file.

Unità di misura

Il foglio di calcolo ha il concetto dimensione (unità di misura) associata ai valori delle celle. Un numero inserito senza un'unità associata non ha dimensione. L'unità di misura deve essere immessa immediatamente dopo il valore numerico, senza spazio intermedio. Se un numero ha un'unità di misuraa associata, quell'unità sarà utilizzata in tutti i calcoli. Ad esempio, la moltiplicazione di due lunghezze con l'unità mm fornisce un'area con l'unità in mm².

Se una cella contiene un valore che rappresenta una dimensione, esso deve essere inserito con la relativa unità associata. Anche se molti casi semplici possono essere gestiti con un valore adimensionale, è sconsigliato non inserire l'unità. Se un valore che rappresenta una dimensione viene inserito senza la relativa unità associata, alcune sequenze di operazioni costringono FreeCAD a segnalare l'incompatibilità delle unità in un'espressione quando sembra che dovrebbe essere convalidata. (Questo può essere compreso meglio compreso guardando questa discussione nel forum di FreeCAD).

È possibile modificare le unità visualizzate per un valore di cella utilizzando la finestra di dialogo delle proprietà units tab (sopra). Questo non modifica il valore contenuto nella cella; converte solo il valore esistente per la visualizzazione. Il valore utilizzato per i calcoli non cambia, ed i risultati delle formule che utilizzano il valore non cambiano. Ad esempio, una cella contenente il valore "5.08cm" può essere visualizzata come "2in" modificando il valore della scheda delle unità su "in".

Un numero adimensionale non può essere modificato in un numero con un'unità tramite la finestra di dialogo delle proprietà della cella. Si può inserire una stringa di unità e tale stringa verrà visualizzata; ma la cella contiene ancora un numero adimensionale. Per modificare un valore adimensionale in un valore con una dimensione, è necessario reinserire il valore stesso con l'unità associata.

Occasionalmente può essere desiderabile sbarazzarsi di una dimensione in un'espressione. Questo può essere fatto moltiplicando per 1 con un'unità reciproca.

Importazione ed esportazione

I fogli possono essere importati ed esportati nel formato csv che può anche essere letto e scritto da molte altre applicazioni di fogli di calcolo come Microsoft Excel o LibreOffice Calc. Durante l'importazione dei file in FreeCAD, il delimitatore (il carattere che viene utilizzato per separare le colonne) deve essere il carattere di tabulazione (questo può essere impostato durante l'esportazione da altre applicazioni). L'importazione di un file CSV è disponibile tramite il menu Spreadsheet → Import Spreadsheet o facendo clic sull'icona . Questa funzione di importazione non apre file Excel o altri formati di fogli di calcolo.

I fogli di calcolo in formato Excel "xlsx" possono essere importati in un documento FreeCAD tramite il menu File → Importa.... I fogli di calcolo Excel possono anche essere aperti da FreeCAD facendo clic nel menu File → Apri... o facendo clic sull'icona . In questo caso all'interno si crea un nuovo documento con un foglio di calcolo. Sono supportate le seguenti caratteristiche:

  • tutte le funzioni che sono disponibili anche nel foglio di calcolo FreeCAD. Le altre funzioni danno un errore nella cella corrispondente dopo l'importazione.
  • i nomi alias per le celle
  • più di una foglio nei fogli di calcolo Excel. In questo caso viene creato un foglio di calcolo di FreeCAD per ogni foglio di Excel.

Le altre funzionalità non vengono importate nel foglio di calcolo di FreeCAD. L'importazione di Excel è disponibile dalla disponibile dalla versione 0.17 di FreeCAD.

Limitazioni attuali

FreeCAD verifica le dipendenze cicliche. Per come è concepita, tale verifica si arresta al livello dell'oggetto foglio di calcolo. Di conseguenza, non si dovrebbe avere un foglio di calcolo che contiene contemporaneamente le celle i cui valori sono utilizzati per specificare parametri nel modello e sia celle i cui valori utilizzano l'output del modello. Ad esempio, non è possibile avere celle che specificano la lunghezza, la larghezza e l'altezza di un oggetto e un'altra cella che fa riferimento al volume totale della forma risultante. Questa limitazione può essere superata creando due fogli di calcolo: uno utilizzato come origine dati per i parametri di input per il modello e l'altro usato per il risultato dei calcoli basati sui dati geometrici.

Quando le celle vengono copiate, viene copiato solo il contenuto (espressione o valore). Le Proprietà delle celle descritte sopra non sono copiate.

Per le versioni precedenti di FreeCAD vedere Foglio di calcolo - Versione in via di sostituzione.

Script di base

import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet")
sheet.Label = "Dimensions"