Atelierul Foi de calcul

From FreeCAD Documentation
Revision as of 21:08, 23 March 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
Spreadsheet workbench icon

introduced in version 0.15 Atelierul lucru pentru foi de calcul vă permite să creați și să editați foi de calcul, să efectuați calcule și să preluați date dintr-un model și să exportați datele sale în alte aplicații de calcul tabelar, cum ar fi LibreOffice sau Microsoft Excel.

Screenshot of a spreadsheet

Cell Expressions

A spreadsheet cell may contain arbitrary text or an expression. Technically, expressions must start with an equals '=' sign. However, the spreadsheet attempts to be intelligent; if you enter what looks like an expression without the leading '=', one will be added automatically.

Cell expressions may contain numbers, functions, references to other cells, and references to properties of the model (But see Current Limitations below). Cells are referenced by their column (CAPITAL letter) and row (number). A cell may also be referenced by its alias-name (below). Example: B4 + A6

References to objects in the model are explained under References to CAD-Data below. Using spreadsheet cell values to define model properties are explained under Spreadsheet Data in Expressions below. For more specifics on how expressions are formed, see Expressions.

Funcții Suportate

Standard trigonometric and other common mathematical functions as well as statistical aggregation functions are supported (see Expressions).

Interaction between Spreadsheets and the CAD Model

Data in the cells of a spreadsheet may be used in CAD model parameter expressions. Thus, a spreadsheet may be used as the source for parameter values used throughout a model, effectively gathering the values in one place. When values are changed in the spreadsheet, they are propagated throughout the model.

Similarly, properties from CAD model objects may be used in expressions in spreadsheet cells. This allows use of object properties like volume or area in the spreadsheet. If the name of an object in the CAD model is changed, the change will automatically be propagated to any references in spreadsheet expressions using the name which was changed.

More than one spreadsheet may be used in a document; spreadsheets may be given a user-assigned name (rename) like any other object.

FreeCAD checks for cyclic dependencies. See Current Limitations.

Proprietățile celulei

Proprietățile unei celule de calcul tabelar pot fi editate cu un clic dreapta pe o celulă. Următoarele dialoguri apar:

Are câteva tab-uri. Următoarele proprietăți pot fi modificate:

  • Culoarea textului și culoarea de fundal
  • Aliniere text orizontală și verticală
  • Stil text: bold, italic, subliniat
  • Unitate de afișare pentru această celulă. Citiți secțiunea de mai jos.
  • Definiți un nume alias pentru această celulă. Acest alias-nume poate fi folosit în formulele de celule și, de asemenea, în FreeCADExpressions introduced in version 0.16

Referință To CAD-Data

Este posibil să utilizați datele din construcție în foaia de calcul. Următorul tabel prezintă câteva exemple, presupunând că modelul are o caracteristică numită "Cube" (rețineți că acesta este numele intern al caracteristicii, și nu numele utilizatorului atribuit etichetei):

CAD-Data Call in Spreadsheet Result
Parametric Length of a Part-Workbench Cube =Cube.Length Length with units mm
Volume of the Cube =Cube.Shape.Volume Volume in mm³ without units
Type of the Cube-shape =Cube.Shape.ShapeType String: Solid
Label of the Cube =Cube.Label String: Cube
x-coordinate of center of mass of the Cube =Cube.Shape.CenterOfMass.x x-coordinate in mm without units

Computed expressions in spreadsheet cells start with an equals ('=') sign. However, the spreadsheet entry mechanism attempts to be smart. An expression may be entered without the leading '='; if the string entered is a valid expression, an '=' is automatically added when the final Enter is typed. If the string entered is not a valid expression (often the result of entering something with the wrong case, e.g. "MyCube.length" instead of "MyCube.Length"), no leading '=' is added and it is treated as simply a text string.

Note: The above behavior (auto insert of '=') has some unpleasant ramifications:

  • If you want to keep a column of names corresponding to the alias-names in an adjacent column of values, you must enter the name in the label column before giving the cell in the value column its alias-name. Otherwise, when you enter the alias-name in the label column the spreadsheet will assume it is an expression and change it to "=<alias-name>"; and the displayed text will be the value from the <alias-name> cell.
  • If you make an error when entering the name in the label column and wish to correct it, you cannot simply change it to the alias-name. Instead, you must first change the alias-name to something else, then fix the text name in the label column, then change the alias-name in the value column back to its original.

One way to side-step these issues is to prefix text labels corresponding to alias-names with a fixed string, thereby making them different. Note that "_" will not work, as it is converted to "=". However, a blank, while invisible, will work.

The following table shows some examples assuming the model has a feature named "MyCube":

CAD-Data Cell in Spreadsheet Result
Parametric Length of a Part-Workbench Cube =MyCube.Length Length with units mm
Volume of the Cube =MyCube.Shape.Volume Volume in mm³ without units
Type of the Cube-shape =MyCube.Shape.ShapeType String: Solid
Label of the Cube =MyCube.Label String: MyCube
x-coordinate of center of mass of the Cube =MyCube.Shape.CenterOfMass.x x-coordinate in mm without units

Spreadsheet Data în Expresii

Utilizarea datelor din foi de calcul în alte părți ale FreeCAD necesită un nume complet definit. Pentru că este posibil să existe mai mult de o foaie de calcul într-un document, este necesar un nume de foaie de calcul împreună cu numele celulei sau cu un alias. Următoarele imagini ilustrează utilizarea unui nume "număr" dintr-o foaie de calcul "MySheet" într-o expresie în Workbench-ul PartDesign.

Tastarea unui "M" prezintă o listă cu numele disponibile. Tastele săgeți permit selectarea "MySheet".

Tastarea unui "n" arată acum lista de nume alias disponibile în MySheet, începând cu "n". "Numărul" poate fi selectat cu butonul săgeată în jos. Odată ce un nume valabil cu un conținut util este dat, câmpul rezultat va prezenta lungimea calculată.

Further typing, such as adding a "+" sign, will result in an expression which is no longer valid which will be indicated. Continuing to complete the expression can again result in a valid expression.

Unități de măsură

Foaia de calcul utilizează unități. Dacă un număr are o unitate, această unitate va fi utilizată în toate calculele. Înmulțirea a două lungimi cu unitatea în mm dă o suprafață cu unitatea mm pătrați-mm & sup2 ;.

If a cell contains a value which represents a dimension, it should be entered with its associated unit. While in many simple cases one can get by with a dimensionless value, it is unwise to not enter the unit. If a value representing a dimension is entered without its associated unit, there are some sequences of operations which cause FreeCAD to complain of incompatible units in an expression when it appears the expression should be valid. (This may be better understood by viewing this thread in the FreeCAD forums.)

Puteți schimba unitatea de lungime de la mm la inch prin dialog, veți obține cu un clic dreapta pe o celulă. Celula va arăta acum lungimea în centimetri. Valoarea utilizată pentru calcule nu se modifică. Rezultatele unei formule care utilizează această valoare nu se modifică atunci când unitatea indicată a unei intrări a fost modificată. Rezultatul se calculează încă din lungimea în mm.

Un număr fără o unitate de măsură nu poate fi modificat într-un număr cu unitate de măsură prin dialogul proprietăților celulare. Se poate introduce un șir de unități, care va fi afișat, dar celula conține încă un număr fără unitate de măsură.

Uneori este de dorit să scapi de o unitate. Acest lucru se poate face numai prin înmulțirea cu 1 cu o unitate reciprocă.

Import și export

Foiile de calcul pot fi importate și exportate în formatul csv, care poate fi, de asemenea, citit și scris de majoritatea altor aplicații de calcul tabelar, cum ar fi Microsoft Excel sau LibreOffice Calc. Când importați fișiere în FreeCAD, separatorul/delimitatorul (caracterul care este utilizat pentru a separa coloanele) trebuie să fie caracterul TAB (acest lucru poate fi setat când exportați din alte aplicații). Importul unui fișier CSV este disponibil prin intermediul foii de calcul Spreadsheet / Import sau prin apăsarea pe pictograma . Această funcție de import nu deschide fișiere Excel sau orice alt format de foaie de calcul.

Foile de calcul în format Excel "xlsx" pot fi importate prin meniul File / Import ... într-un document FreeCAD. Foile de calcul Excel pot fi deschise de FreeCAD făcând clic pe meniul File / Open ... sau făcând clic pe pictograma . În acest caz se creează un nou document cu o foaie de calcul în interior. Sunt acceptate următoarele caracteristici:

  • toate funcțiile disponibile și în foaia de calcul FreeCAD. Alte funcții dau o eroare în celula corespunzătoare după import.
  • Alias nume pentru celule
  • Mai mult de un tabel din foaia Excel. În acest caz, sunt create mai multe foi de calcul FreeCAD.

Alte funcționalități nu sunt importate în foaia de calcul FreeCAD. Importul Excel este introduced in version 0.17 al FreeCAD.

Limitări curente

Nu este posibilă furnizarea de date pentru o geometrie, de exemplu o lungime, într-o foaie de calcul și extragerea în aceeași foaie de calcul a volumului forma rezultată. Aceasta va crea o referință circulară. Aceasta este o decizie de proiectare. Cu toate acestea, este posibil să utilizați două foi de calcul diferite: una ca sursă de date pentru geometrie și altul pentru raportarea datelor geometrice.

Nu este posibilă selectarea și copierea mai multor celule. Numai conținutul unei celule din câmpul de introducere poate fi copiat și inserat în câmpul de intrare al unei alte celule.

Pentru versiunile anterioare ale FreeCAD, a se vedea Spreadsheet legacy

Bazele script programări

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