Spreadsheet Workbench/pt-br: Difference between revisions

From FreeCAD Documentation
(Created page with "O FreeCAD atribuirá automaticamente um nome exclusivo a uma planilha de cálculo quando ela for criada. Estes nomes seguem o padrão {{incode|Spreadsheet}}, {{incode|Spreadsh...")
(Created page with "Para usar os dados da planilha em outras partes do FreeCAD, você geralmente criará uma Expressão que se refere à planilha e à célula que contém os dados...")
Line 127: Line 127:
=== Dados da planilha em expressões ===
=== Dados da planilha em expressões ===


Para usar os dados da planilha em outras partes do FreeCAD, você geralmente criará uma [[Expressions|Expressão]] que se refere à planilha e à célula que contém os dados que você deseja usar. Você pode identificar as planilhas por nome ou por etiqueta, e pode identificar as células por posição ou por pseudônimo. O auto-completamento está disponível para todas as formas de referência.
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.


{|{{Prettytable}}
{|{{Prettytable}}

Revision as of 16:42, 20 August 2021

ícone da bancada de trabalho Spreadsheet

Introdução

A bancada de trabalho Spreadsheet permite criar e editar planilhas, usar dados da planilha como parâmetros em um modelo, preencher a planilha com dados recuperados de um modelo, realizar cálculos e exportar os dados para outras aplicações de planilhas como o LibreOffice ou o Microsoft Excel.

Uma planilha com determinadas células preenchidas com texto e quantidades

Ferramentas

  • Importar: importar um arquivo de valores separados por tabulações em uma planilha.
  • Exportar: exportar um arquivo de valores separados por tabulações a partir de uma planilha de cálculo.
  • Negrito: definir o conteúdo das células selecionadas para o negrito.
  • Itálico: definir o conteúdo das células selecionadas para itálico.
  • Sublinhado: definir o conteúdo das células selecionadas para sublinhado.
  • Preto e Branco definir o primeiro plano e as cores de fundo das células selecionadas.

Menu de contexto das linhas e colunas da planilha: clique com o botão direito do mouse no cabeçalho de uma linha ou coluna para inserir uma nova linha acima ou uma nova coluna à esquerda, ou para excluir a linha/coluna atual. Você também pode selecionar várias linhas ou colunas para excluí-las.
introduced in version 0.20Você também pode selecionar onde as novas linhas/colunas serão inseridas. Além disso, para inserir por exemplo 3 novas colunas de uma vez, selecione 3 colunas e use o menu contextual que agora se oferecerá para inserir 3 colunas.

Propriedades celulares

As propriedades de uma célula de planilha podem ser editadas com um clique com o botão direito do mouse sobre uma célula. As seguintes propriedades o diálogo aparece:

Conforme indicado pelas abas, as seguintes propriedades podem ser alteradas:

  • Cor: Cor do texto e cor de fundo
  • Alinhamento: Alinhamento horizontal e vertical do texto
  • Estilo: Estilo do texto: negrito, itálico, sublinhado
  • Unidades: Unidades de exibição para esta célula. Por favor, leia a seção abaixo Unidades.
  • Pseudônimo: Defina um pseudônimo para esta célula. Este apelido pode ser usado em fórmulas celulares e também em expressões gerais; veja a seção Dados da planilha em expressões para mais informações.

Expressões celulares

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

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

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 information on expressions and the available functions, see Expressions.

Interação entre as planilhas e o modelo CAD

Os dados nas células de uma planilha podem ser usados nas expressões de parâmetros do modelo CAD. Assim, uma planilha pode ser usada como fonte para valores de parâmetros utilizados em todo o modelo, reunindo efetivamente os valores em um só lugar. Quando os valores são alterados na planilha, eles são propagados ao longo do modelo.

Da mesma forma, as propriedades dos objetos do modelo CAD podem ser usadas em expressões em células de planilhas. Isto permite o uso de propriedades de objetos como volume ou área na planilha eletrônica. Se o nome de um objeto no modelo CAD for alterado, a alteração será automaticamente propagada para quaisquer referências nas expressões da planilha usando o nome que foi alterado.

Mais de uma planilha de cálculo pode ser usada em um documento. Uma planilha pode ser identificada usando seu nome ou sua etiqueta.

O FreeCAD atribuirá automaticamente um nome exclusivo a uma planilha de cálculo quando ela for criada. Estes nomes seguem o padrão Spreadsheet, Spreadsheet001, Spreadsheet002 e assim por diante. O nome não pode ser alterado manualmente, e não é visível nas propriedades da planilha. Ele pode ser usado para se referir à planilha em uma Expressão (ver Dados da planilha em expressões abaixo.)

O rótulo de uma planilha é automaticamente definido com o nome da planilha no momento da criação. Ao contrário do nome, a etiqueta pode ser alterada, por exemplo, no painel de propriedades ou usando a ação do menu de contexto Renomear. Note que a etiqueta de uma planilha dentro de um documento tem que ser única; se você tentar mudar a etiqueta para uma etiqueta já usada por outra planilha, o FreeCAD não aceitará a nova etiqueta.

Verificações FreeCAD para dependências cíclicas. Ver Limitações atuais.

Referências a dados CAD

Como indicado acima, é possível consultar os dados do modelo CAD em expressões de planilhas.

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

Dados da planilha em expressões

Para usar os dados da planilha em outras partes do FreeCAD, você geralmente criará uma Expressão que se refere à planilha e à célula que contém os dados que você deseja usar. Você pode identificar as planilhas por nome ou por etiqueta, e pode identificar as células por posição ou por pseudônimo. O auto-completamento está disponível para todas as formas de referência.

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.

Esteja ciente de que quando você cria uma nova planilha, o nome e a etiqueta são os mesmos, por isso é fácil usar acidentalmente o nome da planilha em vez da etiqueta. Uma maneira simples de evitar isto é dar à planilha um nome significativo antes de começar a usá-la em expressões.

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.

Modelos complexos e recompilações

A edição de uma planilha irá desencadear uma recomputação do modelo 3D, mesmo que as mudanças não afetem o modelo. Para um modelo complexo, uma recomputação pode levar muito tempo, e ter que esperar após cada edição é, naturalmente, bastante irritante.

There are three solutions to deal with this:

  1. Temporarily skip recomputes:
    • In the Tree view right-click the document that contains the spreadsheet.
    • 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.

Unidades

A Planilha tem uma noção de dimensão (unidades) associada aos valores das células. Um número inserido sem uma unidade associada não tem dimensão. A unidade deve ser inserida imediatamente após o valor do número, sem espaço interveniente. Se um número tiver uma unidade associada, essa unidade será usada em todos os cálculos. Por exemplo, a multiplicação de dois comprimentos com a unidade mm dá uma área com a unidade mm².

Se uma célula contém um valor que representa uma dimensão, ela deve ser inserida com sua unidade associada. Embora em muitos casos simples se possa sobreviver com um valor sem dimensão, é insensato não entrar com a unidade. Se um valor representando uma dimensão for inserido sem sua unidade associada, há algumas seqüências de operações que fazem com que o FreeCAD reclame de unidades incompatíveis em uma expressão quando ela aparece, a expressão deve ser válida. (Isto pode ser melhor compreendido visualizando este tópico nos fóruns do FreeCAD.)

Você pode mudar as unidades exibidas para um valor de célula usando o diálogo de propriedades guia de unidades. (acima). Isto não altera o valor contido na célula; ele apenas converte o valor existente para exibição. O valor utilizado para os cálculos não muda, e os resultados das fórmulas que utilizam o valor não mudam. Por exemplo, uma célula contendo o valor "5,08cm" pode ser exibida como "2in", alterando o valor da aba de unidades para "in".

Um número sem dimensão não pode ser alterado para um número com uma unidade pelo diálogo de propriedades da célula. Pode-se colocar uma cadeia de unidades, e essa cadeia será exibida; mas a célula ainda contém um número sem dimensões. Para mudar um valor sem dimensão para um valor com uma dimensão, o próprio valor deve ser reentrado com sua unidade associada.

Ocasionalmente, pode ser desejável se livrar de uma dimensão em uma expressão. Isto pode ser feito multiplicando por 1 com uma unidade recíproca.

Importação e exportação

As folhas podem ser importadas e exportadas para o formato csv que também pode ser lido e escrito pela maioria das outras aplicações de planilhas como o Microsoft Excel ou o LibreOffice Calc. Ao importar arquivos para o FreeCAD, o delimitador (o caractere que é usado para separar colunas) deve ser o caracter TAB (que pode ser definido ao exportar de outras aplicações). A importação de um arquivo CSV está disponível a partir do menu Planilha → Importar Planilha ou clicando no ícone . Esta função de importação não abre arquivos Excel ou qualquer outro formato de planilha eletrônica.

Planilhas em formato Excel "xlsx" podem ser importadas através do menu Arquivo → Import.... As planilhas do Excel também podem ser abertas clicando no menu Arquivo → Abrir... ou clicando no ícone ou clicando no ícone . Nesses casos, é criado um novo documento com uma planilha dentro. As seguintes características são suportadas:

  • todas as funções que também estão disponíveis na planilha do FreeCAD. Outras funções dão um erro na célula correspondente após a importação.
  • Nomes de células
  • Mais de uma "Folha" na planilha Excel-spreadsheet. Neste caso, uma planilha FreeCAD é criada para cada planilha do Excel.

Outras funcionalidades não são importadas para a planilha do FreeCAD. O Excel-importado é o da introduced in version 0.17 do FreeCAD

Impressão

Para lidar com a configuração da página necessária para impressão, as planilhas do FreeCAD são impressas inserindo-as em Visualizar planilha do TechDraw.

Limitações atuais

Verificações FreeCAD para dependências cíclicas. Por projeto, essa verificação pára no nível do objeto da planilha. Como conseqüência, não se deve ter uma planilha que contenha tanto células cujos valores são usados para especificar parâmetros para o modelo, quanto células cujos valores usam a saída do modelo. Por exemplo, você não pode ter células especificando o comprimento, largura e altura de um objeto, e outra célula que faz referência ao volume total da forma resultante. Esta restrição pode ser superada com duas planilhas: uma usada como fonte de dados para parâmetros de entrada no modelo e a outra usada para cálculos baseados nos dados geométricos resultantes.

Quando as células são copiadas, somente o conteúdo (expressão/valor) é copiado. As propriedades da célula descritas acima não são copiadas.

Para versões anteriores, veja Folha de cálculo legada.

Noções básicas de script

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

sheet.set('A1','10mm')
sheet.recompute()
sheet.get('A1')

sheet.setAlias('B1','Diameter')
sheet.set('Diameter','20mm')
sheet.recompute()
sheet.get('Diameter')