Bancada de trabalho Spreadsheet

From FreeCAD Documentation
Revision as of 09:23, 23 September 2022 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
í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

  • Import: import a CSV file into a spreadsheet.
  • Export: export a CSV file from a spreadsheet.
  • Align left: align the contents of selected cells to the left.
  • Align center: align the contents of selected cells to the center horizontally.
  • Align right: align the contents of selected cells to the right.
  • Align top: align the contents of selected cells to the top.
  • Align bottom: top align the contents of selected cells to the bottom.
  • Style bold: set the contents of selected cells to bold.
  • Style italic: set the contents of selected cells to italic.
  • Preto e Branco definir o primeiro plano e as cores de fundo das células selecionadas.

Preferences

Insert and remove rows and columns

Rows and columns can be inserted or removed by right-clicking a row or column header and selecting the appropriate option from the contex menu. It is possible to select multiple rows or columns first. Either by holding down the Ctrl key while selecting the headers, or by holding down the left mouse button and dragging.

In FreeCAD version 0.19 and earlier rows are inserted above the selected rows, and columns on the left of the selected columns. In FreeCAD version 0.20 you can specify the insertion side.

Note that removing rows or columns with data can break the spreadsheet and your model if it relies on the spreadheet. You are not prewarned if this happens.

Cut and copy-paste cells

Cut and copy-paste operations can be used on cells in FreeCAD spreadsheets. You can use the normal shortcuts for these operations: Ctrl+X, Ctrl+C and Ctrl+V respectively. To select multiple cells hold down the Ctrl key while selecting, or hold down the left mouse button and drag to select a rectangular cell range.

The cut and copy operations store the contents and properties of the cells on the Clipboard. The paste operation writes the data in such a way that the content of the top left cell of the stored data is dropped in the active cell. Other stored content is placed relative to that cell. Formulas are updated accordingly.

Note that removing cells with data can break the spreadsheet and your model if it relies on the spreadheet. You are not prewarned if this happens.

In FreeCAD version 0.19 and earlier there is a bug that can cause FreeCAD to hang if a non-rectangular cell range is pasted. It is advisable to save your work before performing any paste operations.

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

Uma célula de planilha pode conter um texto ou uma expressão arbitrária. Tecnicamente, as expressões devem começar com um sinal igual a '='. Entretanto, a planilha tenta ser inteligente; se você digitar o que parece ser uma expressão sem o sinal '=' principal, uma será adicionada automaticamente.

As expressões celulares podem conter números, funções, referências a outras células e referências a propriedades do modelo (Mas veja Limitações atuais abaixo). As células são referenciadas por sua coluna (letra CAPITULAR) e linha (número). Uma célula também pode ser referenciada por sua pseudônimo(abaixo).Exemplo: B4 + A6

Nota: As expressões celulares são tratadas pelo FreeCAD como código de programação. Portanto, quando você edita uma célula, o conteúdo que você vê não está seguindo suas configurações de visualização:

As referências a objetos no modelo são explicadas em Referências a dados CAD abaixo. A utilização dos valores das células da planilha para definir as propriedades do modelo é explicada em Dados da planilha em expressões abaixo. Para mais informações sobre as expressões e as funções disponíveis, veja Expressões.

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.

A tabela a seguir mostra alguns exemplos assumindo que o modelo tem uma característica chamada "MyCube":

Dados CAD Célula em Planilha Resultado
Comprimento paramétrico de um cubo de bancada de trabalho parcial =MyCube.Length Comprimento com unidades mm
Volume do Cubo =MyCube.Shape.Volume Volume em mm³ sem unidades
Tipo da forma do cubo =MyCube.Shape.ShapeType String: Solid
Rótulo do Cubo =MyCube.Label String: MyCube
x-coordenada do centro de massa do Cubo =MyCube.Shape.CenterOfMass.x x-coordenada em mm sem unidades

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.

Planilha por nome Planilha por Rótulo
Célula por Posição =Spreadsheet042.B5 =<<MySpreadsheet>>.B5
Célula por Pseudónimo =Spreadsheet042.MyAlias =<<MySpreadsheet>>.MyAlias

A maneira recomendada de consultar os dados da planilha é usar a etiqueta da planilha e o nome da célula. Para uma explicação mais profunda dos prós e contras dos modos de endereçamento, veja a seção expandida abaixo.

O uso do rótulo da planilha tem a vantagem de poder ser livremente alterado para descrever o conteúdo da planilha. Também é mais fácil identificar a planilha que está sendo utilizada, já que o texto na expressão corresponde à etiqueta mostrada na visualização do modelo e das propriedades. Se você decidir mudar o rótulo de uma planilha, as referências existentes ao conteúdo da planilha serão atualizadas, para que você não quebre suas expressões ao renomear a planilha. O nome interno da planilha não está prontamente disponível em nenhum lugar, exceto dentro do editor de expressões, portanto, se você usar o nome interno e mais tarde decidir renomear as planilhas, você poderá ter dificuldade em rastrear seus dados de expressão de volta à sua fonte.

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 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.

Há três soluções para lidar com isso:

  1. Pular temporariamente as recomputas:
    • Na Vista em árvore clique com o botão direito do mouse sobre o documento que contém a planilha de cálculo.
    • Selecione a opção Skip recomputes no menu de contexto.
    • Há uma grande desvantagem para esta solução. Os novos valores inseridos na planilha não serão exibidos até que o documento seja recalculado. Em vez disso #PENDENTE é mostrado.
    • Você pode recalcular manualmente, usando o comando Atualização, ou desabilitar a opção Skip recomputes quando você terminar de editar.
  2. Use uma macro para saltar automaticamente as recomputas durante a edição de uma planilha:
    • Download e execução skipSheet.FCMacro.
    • Esta solução economiza alguns passos em relação à primeira solução, mas também tem a desvantagem mencionada.
  3. Colocar a planilha em um arquivo separado:
    • Você pode consultar os dados de uma planilha de um arquivo externo com esta sintaxe: =NameOfFile#<<MySpreadsheet>>.MyAlias.
    • A vantagem de ter a planilha em outro arquivo sobre o desligamento de recomputas é que a própria planilha é recalculada.
    • A desvantagem é que o modelo não será recalculado automaticamente após alterações na planilha.
    • No cenário onde você primeiro abre o arquivo 'planilha', altera um ou mais valores e depois abre o arquivo 'modelo', não haverá nenhuma indicação de que o modelo precisa ser recalculado. Mas se ambos os arquivos estiverem abertos, o ícone Atualização será atualizado corretamente para o arquivo 'modelo' após as mudanças no arquivo 'planilha'.

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

CSV format

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.

XLSX format

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.

Cell binding

introduced in version 0.20

It is possible to bind the content of cells to other spreadsheet cells. This can be useful when dealing with large tables or to get cell content from another spreadsheet.

Create binding

To bind, for example, the cell range A3-C4 to the cell range B1-D2:

  1. Select the cell range A3-C4.
  2. Right-click and select Bind... from the context menu.
  3. The Bind Spreadsheet Cells dialog opens.
  4. Set the range B1-D2 for the To cells:
  5. Press OK.
  6. Bound cells have a blue border to highlight the binding.
  7. If you now enter something in cell C1, the same will immediately appear in cell B3.

The spreadsheet may now look like this

Change binding

  1. Right-click a bound cell (there is no need to highlight the whole bound range) and select Bind... from the context menu.
  2. The Bind Spreadsheet Cells dialog opens.
  3. Change one or more options. Note that the Bind cells, the bound cell range, cannot be changed.
  4. Press OK.

Remove binding

  1. Right-click a bound cell (there is no need to highlight the whole bound range) and select Bind... from the context menu.
  2. The Bind Spreadsheet Cells dialog opens.
  3. Press Unbind.

Notes

  • The Hide dependency of binding option can be used to prevent problems with cyclic dependencies between spreadsheets. Selecting it is necessary when, for example, cells in Spreadsheet A are bound to Spreadsheet B, while cells in Spreadsheet B, in turn, are bound to some other cells in Spreadsheet A. This option should be used with caution:
    • Hiding dependencies can be dangerous because broken dependencies can damage your FreeCAD file. For example, when you delete a spreadsheet you will not be warned about hidden dependencies.
    • When you open a document with a spreadsheet containing a hidden dependency, you will get the spreadsheet marked to be recomputed. This is because a cyclic dependency cannot be recomputed automatically. To recompute the Std Refresh tool must be used.
  • The cell binding has a range check and warns you about mismatched ranges. For example binding 1x3 cells to 3x2 cells cannot work because it is unknown which 3 cells of the original 6 cells should be used.
  • You cannot change the cell range of an existing binding. You must first unbind the cells and then create a new binding.
  • The frame color indicating the binding cannot be changed yet.

Configuration tables

introduced in version 0.20

You can use Spreadsheets to create configuration tables with sets of predefined parameters for your model, and then dynamically change which configuration to use. See this Forum post if you want to know more about the inner workings of this feature.

Expand this section for a brief tutorial on creating a configuration table.

  1. In a new document, first create a Std Part, then create a Part Box, a Part Cylinder and a Spreadsheet.
  2. The Box and the Cylinder are automatically placed in the Std Part container. Manually put the Spreadsheet in the container as well.
  3. In the Spreadsheet enter the content as shown below. Set the alias for B2 as width, C2 as length and D2 as radius:
  4. Bind the expressions Spreadsheet.width and Spreadsheet.length to the Box's properties DadosWidth and DadosLength, respectively:
  5. Bind the expression Spreadsheet.radius to the Cylinder's property DadosRadius. Also change the DadosHeight of the Cylinder to 5 mm so that it is lower than the Box.
  6. Right-click the cell A2 in the Spreadsheet and select Configuration table... from the context menu.
  7. The Setup Configuration Table dialog opens.
  8. Enter the following:
  9. Press OK.
  10. A new property called DadosConfiguration is be added to the Std Part container to choose the configuration as shown below:

You can use either a Std Link or a PartDesign SubShapeBinder to instantiate a Variant Instance of a configurable object with the following steps:

  1. Create a Std Link to the Std Part container and set its DadosLink Copy On Change property to Enabled.
  2. Move the Link to a new place by changing its DadosPlacement so that it is easier to distinguish from the original object.
  3. Select a different DadosConfiguration for the Link to create a variant instance.

Similar steps apply to a PartDesign SubShapeBinder, except that its property for activating a variant instance is called DadosBinder Copy On Change.

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')