Spreadsheet Workbench/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "'''Примечание:''' Выражения в ячейках обрабатываются FreeCAD как программный код. Поэтому при редакт...")
(Created page with "В следующей таблице показаны некоторые примеры, предполагающие, что модель имеет функцию с име...")
(41 intermediate revisions by the same user not shown)
Line 16: Line 16:


[[File:Spreadsheet_screenshot.jpg|600px]]
[[File:Spreadsheet_screenshot.jpg|600px]]
{{Caption|Таблица с определенными ячейками, заполненными текстом и значениями.}}
{{Caption|A spreadsheet with certain cells filled with text and quantities}}


== Инструменты ==
== Инструменты ==
Line 28: Line 28:
* [[File:Spreadsheet_SplitCell.svg|24px]] [[Spreadsheet_SplitCell/ru|Разделить ячейку]]: разделить ранее объединённые ячейки.
* [[File:Spreadsheet_SplitCell.svg|24px]] [[Spreadsheet_SplitCell/ru|Разделить ячейку]]: разделить ранее объединённые ячейки.


* [[File:Spreadsheet_AlignLeft.svg|24px]] [[Spreadsheet_AlignLeft|Align left]]: align the contents of selected cells to the left.
* [[File:Spreadsheet_AlignLeft.svg|24px]] [[Spreadsheet_AlignLeft/ru|Align left]]: выровнять содержимое выбранных ячеек по левому краю.
* [[File:Spreadsheet_AlignCenter.svg|24px]] [[Spreadsheet_AlignCenter|Align center]]: align the contents of selected cells to the center horizontally.
* [[File:Spreadsheet_AlignCenter.svg|24px]] [[Spreadsheet_AlignCenter/ru|Align center]]: выровнять содержимое выбранных ячеек горизонтально по центру.
* [[File:Spreadsheet_AlignRight.svg|24px]] [[Spreadsheet_AlignRight|Align right]]: align the contents of selected cells to the right.
* [[File:Spreadsheet_AlignRight.svg|24px]] [[Spreadsheet_AlignRight/ru|Align right]]: выровнять содержимое выбранных ячеек по правому краю.
* [[File:Spreadsheet_AlignTop.svg|24px]] [[Spreadsheet_AlignTop|Align top]]: align the contents of selected cells to the top.
* [[File:Spreadsheet_AlignTop.svg|24px]] [[Spreadsheet_AlignTop/ru|Align top]]: выровнять содержимое выбранных ячеек по верху.
* [[File:Spreadsheet_AlignVCenter.svg|24px]] [[Spreadsheet_AlignVCenter|Align vertical center]]: align the contents of selected cells to the center vertically.
* [[File:Spreadsheet_AlignVCenter.svg|24px]] [[Spreadsheet_AlignVCenter/ru|Align vertical center]]: выровнять содержимое выбранных ячеек вертикально по центру.
* [[File:Spreadsheet_AlignBottom.svg|24px]] [[Spreadsheet_AlignBottom|Align bottom]]: top align the contents of selected cells to the bottom.
* [[File:Spreadsheet_AlignBottom.svg|24px]] [[Spreadsheet_AlignBottom/ru|Align bottom]]: выровнять содержимое выбранных ячеек по низу.


* [[File:Spreadsheet_StyleBold.svg|24px]] [[Spreadsheet_StyleBold|Style bold]]: set the contents of selected cells to bold.
* [[File:Spreadsheet_StyleBold.svg|24px]] [[Spreadsheet_StyleBold/ru|Style bold]]: установить для выбранных ячеек жирный шрифт.
* [[File:Spreadsheet_StyleItalic.svg|24px]] [[Spreadsheet_StyleItalic|Style italic]]: set the contents of selected cells to italic.
* [[File:Spreadsheet_StyleItalic.svg|24px]] [[Spreadsheet_StyleItalic/ru|Style italic]]: установить для выбранных ячеек наклонный шрифт.
* [[File:Spreadsheet_StyleUnderline.svg|24px]] [[Spreadsheet_StyleUnderline|Style underline]]: set the contents of selected cells to underlined.
* [[File:Spreadsheet_StyleUnderline.svg|24px]] [[Spreadsheet_StyleUnderline/ru|Style underline]]: установить для выбранных ячеек подчёркнутый шрифт.


* [[File:Spreadsheet_SetAlias.svg|24px]] [[Spreadsheet_SetAlias|Set alias]]: set alias for selected cells.
* [[File:Spreadsheet_SetAlias.svg|24px]] [[Spreadsheet_SetAlias/ru|Set alias]]: установить псевдоним для выбранных ячеек.


* {{Button|Black}} and {{Button|White}} set the foreground and the background colors of the selected cells.
* {{Button|Black}} и {{Button|White}} устанавливают цвета переднего и заднего плана выбранных ячеек.


== Выражения в ячейках ==
== Выражения в ячейках ==
Line 49: Line 49:
Однако, таблица пытается быть умной, и если Вы введёте нечто, похожее на выражение, но без начального знака '=', он будет добавлен автоматически.
Однако, таблица пытается быть умной, и если Вы введёте нечто, похожее на выражение, но без начального знака '=', он будет добавлен автоматически.


Выражения ячеек могут содержать числа, функции, ссылки на другие ячейки и ссылки на свойства модели. (Но смотрите [[#Текущие_ограничения|текущие ограничения]] ниже).
Cell expressions may contain numbers, functions, references to other cells, and references to properties of the model
Ссылки на ячейки по их столбцам (ЗАГЛАВНЫЕ буквы) и строкам (числа).
(But see [[#Current_Limitations|Current Limitations]] below).
На ячейки можно так же ссылаться по их [[#alias_name|псевдонимам]] (см. ниже).
Cells are referenced by their column (CAPITAL letter) and row (number).
Пример: B4 + A6
A cell may also be referenced by its [[#alias_name|alias-name]] (below).
Example: B4 + A6


'''Примечание:''' Выражения в ячейках обрабатываются FreeCAD как программный код. Поэтому при редактировании ячеек видимое содержимое не следует настройкам дисплея:
'''Примечание:''' Выражения в ячейках обрабатываются FreeCAD как программный код. Поэтому при редактировании ячеек видимое содержимое не следует настройкам дисплея:
* десятичный разделитель всегда точка
* десятичный разделитель всегда точка
* число показываемых десятичных чисел может отличаться от [[Preferences_Editor/ru#Units|настроек]]
* число показываемых десятичных чисел может отличаться от [[Preferences_Editor/ru#Единицы измерения|настроек]]


Ссылки на объекты в модели описаны в разделе [[#Ссылки_на_данные_САПР|Ссылки на данные САПР]].
References to objects in the model are explained under [[#References_to_CAD-Data|References to CAD-Data]] below.
Использование значений ячеек для определения параметров моделей описано в разделе [[#Данные_таблицы_в_выражениях|Данные таблицы в выражениях]].
Using spreadsheet cell values to define model properties are explained under [[#Spreadsheet_Data_in_Expressions|Spreadsheet Data in Expressions]] below.
Относительно специфики формирования выражений, смотрите [[Expressions/ru|Выражения]].
For more specifics on how expressions are formed, see [[Expressions|Expressions]].


==Поддерживаемые функции==
== Supported Functions ==


Поддерживаются стандартные тригонометрические и прочие общие математические функции, плюс функции статистического агрегирования (см. [[Expressions/ru|Выражения]]).
Standard trigonometric and other common mathematical functions as well as statistical aggregation functions are supported (see [[Expressions|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 проверяет на циклические зависимости. Смотрите в разделе [[#Текущие_ограничения|Текущие ограничения]].
FreeCAD checks for cyclic dependencies. See [[Spreadsheet_Workbench#Current_Limitations|Current Limitations]].


===Свойства ячейки===
=== Cell Properties ===


Свойства ячейки электронной таблицы можно редактировать, щелкнув ячейку правой кнопкой мыши. Появится следующий диалог:
The properties of a spreadsheet cell can be edited with a right-click on a cell. The following
dialog pops up:


[[File:SpreadsheetCellPropDialog.png]]
[[File:SpreadsheetCellPropDialog.png]]


Как указано на вкладках, можно изменить следующие свойства:
As indicated by the tabs, the following properties can be changed:


* Цвет: цвет текста и цвет фона.
* Color: Text color and background color
* Выравнивание: выравнивание текста по горизонтали и вертикали
* Alignment: Text horizontal and vertical alignment
* Стиль: стиль текста: полужирный, курсив, подчеркивание.
* Style: Text style: bold, italic, underline
* Единицы: <span id="units_tab"></span>Отображение единиц измерения для этой ячейки. Прочтите раздел [[#Единицы_измерения|Единицы измерения]] ниже.
* Units: <span id="units_tab"></span>Display units for this cell. Please read the [[Spreadsheet_Workbench#Units|Units]] section below.
* Псевдоним: <span id="alias_name"></span>Определение псевдонима для этой ячейки. Этот псевдоним можно использовать в формулах ячеек, а также в общих выражениях FreeCAD.
* Alias: <span id="alias_name"></span>Define an alias-name for this cell. This alias-name can be used in cell formulas and also in general FreeCAD Expressions.
Хотя можно использовать номер строки и столбца в выражении для ссылки на ячейку, лучше всего дать ячейке псевдоним и использовать его.
While one may use the row and column number in an expression to reference a cell,
Например, если данные в ячейке B1 содержат параметр длины для объекта, псевдоним «MyObject_Length» позволяет называть значение «Spreadsheet.MyObject_Length» вместо «Spreadsheet.B1». {{Version|0.16}}
best practice is to give the cell an alias-name and use that.
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 "Spreadsheet.MyObject_Length"
instead of "Spreadsheet.B1". {{Version|0.16}}


===Ссылки на данные САПР===
=== References to CAD-Data ===


Как указано выше, можно ссылаться на данные из модели САПР в выражениях электронной таблицы.
As indicated above, one can reference data from the CAD model in spreadsheet expressions.


Вычисляемые выражения в ячейках электронной таблицы начинаются со знака равенства ('=').
Computed expressions in spreadsheet cells start with an equals ('=') sign.
Однако механизм ввода в электронную таблицу пытается быть умным.
However, the spreadsheet entry mechanism attempts to be smart.
Выражение можно вводить без символа '=' в начале; если введённая строка является допустимым выражением, при вводе последнего {{KEY|Enter}} автоматически добавляется '='.
An expression may be entered without the leading '=';
Если введённая строка не является допустимым выражением (часто это результат ввода чего-то в неправильном регистре, например, «MyCube.length» вместо «MyCube.Length»), начальный знак «=» не добавляется и рассматривается как просто текстовая строка.
if the string entered is a valid expression,
an '=' is automatically added when the final {{KEY|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:
* Если вы хотите сохранить столбец имен, соответствующий [[#alias_name|псевдонимам]] в соседнем столбце значений, вы должны ввести имя в столбце метки перед тем как дать ячейке в колонке значений его псевдоним. В противном случае, при вводе псевдонима в столбце метки, электронная таблица предположит, что это выражение, и изменит его на «= <имя-псевдонима>»; а отображаемый текст станет значением из ячейки <alias-name>.
* If you want to keep a column of names corresponding to the [[#alias_name|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.


В следующей таблице показаны некоторые примеры, предполагающие, что модель имеет функцию с именем «MyCube»:
The following table shows some examples assuming the model has a feature named "MyCube":
{|{{Prettytable}}
{|{{Prettytable}}
!Данные САПР
!CAD-Data
!Ячейка в таблице
!Cell in Spreadsheet
!Результат
!Result
|-
|-
|Параметрическая длинна Куба верстака Part
|Parametric Length of a Part-Workbench Cube
|=MyCube.Length
|=MyCube.Length
|Длинна в единицах mm
|Length with units mm
|-
|-
|Volume of the Cube
|Объём Cube
|=MyCube.Shape.Volume
|=MyCube.Shape.Volume
|Volume in mm&sup3; without units
|Объём в mm&sup3; без указания единиц
|-
|-
|Type of the Cube-shape
|Тип формы Cube
|=MyCube.Shape.ShapeType
|=MyCube.Shape.ShapeType
|String: Solid
|String: Solid
|-
|-
|Label of the Cube
|Метка Cube
|=MyCube.Label
|=MyCube.Label
|String: MyCube
|String: MyCube
|-
|-
|Координата X центра масс Cube
|x-coordinate of center of mass of the Cube
|=MyCube.Shape.CenterOfMass.x
|=MyCube.Shape.CenterOfMass.x
|Координата X в mm без указания единиц
|x-coordinate in mm without units
|}
|}


===Данные таблицы в выражениях===
=== Spreadsheet Data in Expressions ===


Использование данных электронных таблиц в других частях FreeCAD требует полностью определенного имени. Поскольку может быть более одной электронной таблицы в документе, необходимо имя электронной таблицы вместе с именем ячейки или псевдонимом. На следующих рисунках показано использование псевдонима «number» из электронной таблицы «MySheet» в выражении верстака PartDesign.
The usage of spreadsheet data in other parts of FreeCAD requires a fully defined name. Because it is possible to have
more than one spreadsheet in a document, the spreadsheet name together with the cell name or alias is required.
The following pictures show the usage of an alias "number" from a spreadsheet "MySheet" in an expression
in the PartDesign Workbench.


[[File:Expression usage1.png]]
[[File:Expression usage1.png]]


При вводе буквы «M» отображается список доступных имен (см. выше). Клавиши со стрелками позволяют перелистать к «MySheet» и выбрать его; {{KEY|Enter}} приведет к его завершению в выражении.
Typing an "M" shows a list of available names (above).
Вы также можете продолжить ввод или щелкнуть запись с помощью мыши.
The arrow-keys allow one to move down to "MySheet" and select it;
{{KEY|Enter}} will cause it to be completed in the expression.
You can also continue typing or click the entry with the mouse.


[[File:Expression usage2.png]]
[[File:Expression usage2.png]]


При вводе «n» теперь отображается список всех начинающийся с «n» псевдонимов в MySheet (см. выше). Теперь можно выбрать «number», как описано выше.
Typing an "n" now shows the list of available alias names in MySheet starting with "n" (above).
После ввода действительного имени с корректным содержанием, поле результата покажет рассчитанное значение, в данном случае длина (см. ниже).
"number" can now be selected as described above.
Once a valid name with usable content is entered,
the result field will show the calculated value; in this case, the length (below).


[[File:Expression usage3.png]]
[[File:Expression usage3.png]]


Дальнейший ввод, например добавление знака «+», приведёт к выражению, которое больше не действительно, что будет указано.
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.


==Единицы измерения==
== Units ==


The Spreadsheet has a notion of dimension (units) associated with cell values.
The Spreadsheet has a notion of dimension (units) associated with cell values.
Line 203: Line 182:
Occasionally it may be desirable to get rid of a dimension in an expression. This can be done by multiplying by 1 with a reciprocal unit.
Occasionally it may be desirable to get rid of a dimension in an expression. This can be done by multiplying by 1 with a reciprocal unit.


==Импорт и экспорт==
== Importing and exporting ==


Sheets can be imported and exported to the [https://en.wikipedia.org/wiki/Comma-separated_values csv] format which can also be read and written by most other spreadsheet applications such as Microsoft Excel or LibreOffice Calc. When importing files into FreeCAD, the delimiter (the character that is used to separate columns) must be the TAB character (this can be set when exporting from other applications). The import of a CSV-file is available from the menu {{MenuCommand|Spreadsheet → Import Spreadsheet}} or by clicking on the icon [[Image:SpreadsheetImport.svg|24px]]. This import function does not open Excel files or any other spreadsheet format.
Sheets can be imported and exported to the [https://en.wikipedia.org/wiki/Comma-separated_values csv] format which can also be read and written by most other spreadsheet applications such as Microsoft Excel or LibreOffice Calc. When importing files into FreeCAD, the delimiter (the character that is used to separate columns) must be the TAB character (this can be set when exporting from other applications). The import of a CSV-file is available from the menu {{MenuCommand|Spreadsheet → Import Spreadsheet}} or by clicking on the icon [[Image:SpreadsheetImport.svg|24px]]. This import function does not open Excel files or any other spreadsheet format.
Line 216: Line 195:
Other functionality is not imported into the FreeCAD spreadsheet. The Excel-import is {{Version|0.17}} of FreeCAD.
Other functionality is not imported into the FreeCAD spreadsheet. The Excel-import is {{Version|0.17}} of FreeCAD.


==Текущие ограничения==
== Current Limitations ==


FreeCAD проверяет циклические зависимости.
FreeCAD checks for cyclic dependencies.
По задумке эта проверка останавливается на уровне объекта электронной таблицы.
By design, that check stops at the level of the spreadsheet object.
Как следствие, у вас не должно быть электронной таблицы, содержащей как ячейки, значения которых используются для определения параметров модели, так и ячейки, значения которых используют выходные данные модели.
As a consequence, you should not have a spreadsheet which contains both
Например, у вас не может быть ячеек, определяющих длину, ширину и высоту объекта, и другой ячейки, которая ссылается на общий объем полученной формы.
cells whose values are used to specify parameters to the model,
Это ограничение можно преодолеть с помощью двух электронных таблиц: одна используется в качестве источника данных для входных параметров модели, а другая используется для расчётов на основе результирующих геометрических данных.
and cells whose values use output from the model.
For example, you cannot have cells specifying the length, width, and height of an object,
and another cell which references the total volume of the resulting shape.
This restriction can be surmounted by having two spreadsheets:
one used as a data-source for input parameters to the model
and the other used for calculations based on resultant geometry-data.


При копировании ячеек копируется только содержание (выражение/значение).
When cells are copied, only the content (expression/value) is copied.
Описанные выше [[#Свойства_ячейки/ru|свойства ячейки]] не копируются.
The [[Spreadsheet_Workbench#Cell_Properties|Cell Properties]] described above are not copied.


For earlier versions see [[Spreadsheet_legacy|Spreadsheet legacy]].
Насчёт ранних версий смотрите [[Spreadsheet_legacy|Spreadsheet legacy]].


== Scripting Basics==
== Scripting Basics==

Revision as of 09:06, 16 October 2020

Spreadsheet workbench icon

Введение

Верстак электронных таблиц позволяет создать и редактировать электронные таблицы, использовать данные из электронной таблицы как параметр в модели, заполнять таблицу данными из модели, выполнять вычисления, и экспортировать данные в другие приложения текстовых таблиц, такие как LibreOffice или Microsoft Excel.

Таблица с определенными ячейками, заполненными текстом и значениями.

Инструменты

  • Create sheet: создать новую электронную таблицу.
  • Импорт: импортировать файл со значениями, разделёнными запятыми (CSV), в электронную таблицу.
  • Экспорт: экспорт файла со значениями, разделёнными запятыми (CSV), из электронной таблицы.
  • Align left: выровнять содержимое выбранных ячеек по левому краю.
  • Align center: выровнять содержимое выбранных ячеек горизонтально по центру.
  • Align right: выровнять содержимое выбранных ячеек по правому краю.
  • Align top: выровнять содержимое выбранных ячеек по верху.
  • Align vertical center: выровнять содержимое выбранных ячеек вертикально по центру.
  • Align bottom: выровнять содержимое выбранных ячеек по низу.
  • Style bold: установить для выбранных ячеек жирный шрифт.
  • Style italic: установить для выбранных ячеек наклонный шрифт.
  • Style underline: установить для выбранных ячеек подчёркнутый шрифт.
  • Set alias: установить псевдоним для выбранных ячеек.
  • Black и White устанавливают цвета переднего и заднего плана выбранных ячеек.

Выражения в ячейках

Ячейка таблицы может содержать любой текст или выражение. Технически, выражение должно начинаться со знака равенства '='. Однако, таблица пытается быть умной, и если Вы введёте нечто, похожее на выражение, но без начального знака '=', он будет добавлен автоматически.

Выражения ячеек могут содержать числа, функции, ссылки на другие ячейки и ссылки на свойства модели. (Но смотрите текущие ограничения ниже). Ссылки на ячейки по их столбцам (ЗАГЛАВНЫЕ буквы) и строкам (числа). На ячейки можно так же ссылаться по их псевдонимам (см. ниже). Пример: B4 + A6

Примечание: Выражения в ячейках обрабатываются FreeCAD как программный код. Поэтому при редактировании ячеек видимое содержимое не следует настройкам дисплея:

  • десятичный разделитель всегда точка
  • число показываемых десятичных чисел может отличаться от настроек

Ссылки на объекты в модели описаны в разделе Ссылки на данные САПР. Использование значений ячеек для определения параметров моделей описано в разделе Данные таблицы в выражениях. Относительно специфики формирования выражений, смотрите Выражения.

Поддерживаемые функции

Поддерживаются стандартные тригонометрические и прочие общие математические функции, плюс функции статистического агрегирования (см. Выражения).

Взаимодействие между электронными таблицами и моделью САПР

Данные в ячейках электронной таблицы могут использоваться в выражениях параметров модели САПР. Таким образом, электронная таблица может использоваться как источник значений параметров, используемых во всей модели, эффективно собирая значения в одном месте. Когда значения изменяются в электронной таблице, они распространяются по всей модели.

Точно так же свойства из объектов модели САПР могут использоваться в выражениях в ячейках электронной таблицы. Это позволяет использовать такие свойства объекта, как объем или площадь в электронной таблице. Если имя объекта в модели САПР изменяется, изменение автоматически распространяется на все ссылки в выражениях в электронной таблице, использующих изменённое имя.

В одном документе можно использовать более одной электронной таблицы; электронным таблицам можно давать присвоенное пользователем имя (переименовывать), как и любому другому объекту.

FreeCAD проверяет на циклические зависимости. Смотрите в разделе Текущие ограничения.

Свойства ячейки

Свойства ячейки электронной таблицы можно редактировать, щелкнув ячейку правой кнопкой мыши. Появится следующий диалог:

Как указано на вкладках, можно изменить следующие свойства:

  • Цвет: цвет текста и цвет фона.
  • Выравнивание: выравнивание текста по горизонтали и вертикали
  • Стиль: стиль текста: полужирный, курсив, подчеркивание.
  • Единицы: Отображение единиц измерения для этой ячейки. Прочтите раздел Единицы измерения ниже.
  • Псевдоним: Определение псевдонима для этой ячейки. Этот псевдоним можно использовать в формулах ячеек, а также в общих выражениях FreeCAD.

Хотя можно использовать номер строки и столбца в выражении для ссылки на ячейку, лучше всего дать ячейке псевдоним и использовать его. Например, если данные в ячейке B1 содержат параметр длины для объекта, псевдоним «MyObject_Length» позволяет называть значение «Spreadsheet.MyObject_Length» вместо «Spreadsheet.B1». introduced in version 0.16

Ссылки на данные САПР

Как указано выше, можно ссылаться на данные из модели САПР в выражениях электронной таблицы.

Вычисляемые выражения в ячейках электронной таблицы начинаются со знака равенства ('='). Однако механизм ввода в электронную таблицу пытается быть умным. Выражение можно вводить без символа '=' в начале; если введённая строка является допустимым выражением, при вводе последнего Enter автоматически добавляется '='. Если введённая строка не является допустимым выражением (часто это результат ввода чего-то в неправильном регистре, например, «MyCube.length» вместо «MyCube.Length»), начальный знак «=» не добавляется и рассматривается как просто текстовая строка.

Примечание: Такое поведение (автоматическая вставка '=') имеет некоторые неприятные последствия:

  • Если вы хотите сохранить столбец имен, соответствующий псевдонимам в соседнем столбце значений, вы должны ввести имя в столбце метки перед тем как дать ячейке в колонке значений его псевдоним. В противном случае, при вводе псевдонима в столбце метки, электронная таблица предположит, что это выражение, и изменит его на «= <имя-псевдонима>»; а отображаемый текст станет значением из ячейки <alias-name>.
  • Если вы допустили ошибку при вводе имени в столбце метки и хотите исправить ее, вы не сможете просто изменить ее на псевдоним. Вместо этого вам придётся сначала изменить псевдоним на другой, затем исправить текстовое имя в столбце метки, и лишь потом вернуть псевдоним в столбце значений в исходный вид.

Один из способов обойти эти проблемы - поставить перед текстовыми метками, соответствующими псевдонимам, фиксированную строку, тем самым делая их разными. Обратите внимание, что «_» не будет работать, так как он преобразуется в «=». Однако пробел, хотя и невидим, работать будет.

В следующей таблице показаны некоторые примеры, предполагающие, что модель имеет функцию с именем «MyCube»:

Данные САПР Ячейка в таблице Результат
Параметрическая длинна Куба верстака Part =MyCube.Length Длинна в единицах mm
Объём Cube =MyCube.Shape.Volume Объём в mm³ без указания единиц
Тип формы Cube =MyCube.Shape.ShapeType String: Solid
Метка Cube =MyCube.Label String: MyCube
Координата X центра масс Cube =MyCube.Shape.CenterOfMass.x Координата X в mm без указания единиц

Данные таблицы в выражениях

Использование данных электронных таблиц в других частях FreeCAD требует полностью определенного имени. Поскольку может быть более одной электронной таблицы в документе, необходимо имя электронной таблицы вместе с именем ячейки или псевдонимом. На следующих рисунках показано использование псевдонима «number» из электронной таблицы «MySheet» в выражении верстака PartDesign.

При вводе буквы «M» отображается список доступных имен (см. выше). Клавиши со стрелками позволяют перелистать к «MySheet» и выбрать его; Enter приведет к его завершению в выражении. Вы также можете продолжить ввод или щелкнуть запись с помощью мыши.

При вводе «n» теперь отображается список всех начинающийся с «n» псевдонимов в MySheet (см. выше). Теперь можно выбрать «number», как описано выше. После ввода действительного имени с корректным содержанием, поле результата покажет рассчитанное значение, в данном случае длина (см. ниже).

Дальнейший ввод, например добавление знака «+», приведёт к выражению, которое больше не действительно, что будет указано. Продолжение для завершения выражения может снова привести к правильному выражению.

Единицы измерения

The Spreadsheet has a notion of dimension (units) associated with cell values. A number entered without an associated unit has no dimension. The unit should be entered immediately following the number value, with no intervening space. If a number has an associated unit, that unit will be used in all calculations. For example, the multiplication of two lengths with the unit mm gives an area with the unit mm².

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

You can change the units displayed for a cell value using the properties dialog units tab (above). This does not change the value contained in the cell; it only converts the existing value for display. The value used for calculations does not change, and the results of formulas using the value do not change. For example, a cell containing the value "5.08cm" can be displayed as "2in" by changing the units tab value to "in".

A dimensionless number cannot be changed to a number with a unit by the cell properties dialog. One can put in a unit string, and that string will be displayed; but the cell still contains a dimensionless number. In order to change a dimensionless value to a value with a dimension, the value itself must be re-entered with its associated unit.

Occasionally it may be desirable to get rid of a dimension in an expression. This can be done by multiplying by 1 with a reciprocal unit.

Импорт и экспорт

Sheets can be imported and exported to the csv format which can also be read and written by most other spreadsheet applications such as Microsoft Excel or LibreOffice Calc. When importing files into FreeCAD, the delimiter (the character that is used to separate columns) must be the TAB character (this can be set when exporting from other applications). The import of a CSV-file is available from the menu Spreadsheet → Import Spreadsheet or by clicking on the icon . This import function does not open Excel files or any other spreadsheet format.

Spreadsheets in Excel-format "xlsx" can be imported via the menu File → Import.... Excel-spreadsheets can also be opened by clicking in the menu File → Open... or by clicking on the icon . In these cases a new document with a spreadsheet inside is created. The following features are supported:

  • all functions that are also available in the FreeCAD spreadsheet. Other functions give an error in the corresponding cell after the import.
  • Alias names for cells
  • More than one "Sheet" in the Excel-spreadsheet. In this case one FreeCAD spreadsheet is created for each Excel sheet.

Other functionality is not imported into the FreeCAD spreadsheet. The Excel-import is introduced in version 0.17 of FreeCAD.

Текущие ограничения

FreeCAD проверяет циклические зависимости. По задумке эта проверка останавливается на уровне объекта электронной таблицы. Как следствие, у вас не должно быть электронной таблицы, содержащей как ячейки, значения которых используются для определения параметров модели, так и ячейки, значения которых используют выходные данные модели. Например, у вас не может быть ячеек, определяющих длину, ширину и высоту объекта, и другой ячейки, которая ссылается на общий объем полученной формы. Это ограничение можно преодолеть с помощью двух электронных таблиц: одна используется в качестве источника данных для входных параметров модели, а другая используется для расчётов на основе результирующих геометрических данных.

При копировании ячеек копируется только содержание (выражение/значение). Описанные выше свойства ячейки не копируются.

Насчёт ранних версий смотрите Spreadsheet legacy.

Scripting Basics

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