Макропрограммирование в Rastrwin
Переменные
Динамическая типизация
Комментарии
Условные выражения
Условные операторы
Циклы
Коллекции
Список. Методы
Класс "Автомобиль"
Объект Rastr
Организация данных
Название таблицы: системное и пользовательское
Как узнать название таблицы?
Как узнать название таблицы?
Как узнать название столбца?
Как узнать название столбца?
Как узнать название столбца?
Свойства полей в базе
Типы данных, которые хранятся как целые числа, но отображаются в одном из следующих видов:
Ссылки
Шаблоны
Доступ к данным
Доступ к коллекции всех таблиц tables
Доступ к отдельной таблице table
Доступ к коллекции всех столбцов таблицы columns таблицы table
Доступ к столбцу таблицы table
Доступ к ячейки
tables
tables.Методы
Методы работы с коллекцией таблиц
Свойства коллекций таблиц
table
Методы Tablе
Выборка
Групповая коррекция
Пример test_selection
Пример findNextSel(row)
Формат CSV
tables.Свойства
Число строк, соответствующих заданной выборке
Columns
Методы
Свойства
PropType
Объект Column
Значение данных в ячейки
Методы чтения данных в ячейки
Методы записи данных в ячейки
Метод расчета данных в столбце по формуле
Методы чтения и записи свойств столбцов
Служебные методы объекта Rastr
Работа с файлами
LoadCode
Проблемы с описанием пути файлов
Расчетные методы
11.29M
Категория: ПрограммированиеПрограммирование

Макропрограммирование в Rastrwin

1. Макропрограммирование в Rastrwin

2.

Пуск служит для запуска
макропроцедуры на выполнение
текущий текст макро
ход выполнения макро. В это окно
выводятся протокольные сообщения
программы и сообщения,
сгенерированные макро с помощью
команды printp
Макро используются для автоматизации выполнения нескольких
последовательных операций, упрощения выполнения некоторых
операций и написания пользовательских программ

3.

Перед выполнением производится синтаксический контроль
макроса, при нахождении ошибки в окно
Макросы выдается сообщение об ошибке с её описанием и
положением в тексте макроса

4.

Visual Basic Script Edition (VBScript)
является разновидностью языка Visual
Basic, разработанного фирмой Microsoft
для использования в качестве языка
сценариев. VBscript является
расширением пакетных сценариев,
выполняемых в MS DOS файлах (*.bat).
Также VBScript как расширение для HTML.
Python — это популярный высокоуровневый язык
программирования общего назначения с простым и
понятным синтаксисом

5. Переменные

• Название переменной должно
начинаться с алфавитного символа
или со знака
• Название переменной не должно
совпадать с названием ключевых слов
языка Python.
• Чувствительны к регистру

6. Динамическая типизация

Тип данных определяется автоматически в момент присвоения значения.
Переменную можно переназначить на другой тип данных на лету.

7. Комментарии

# Это отдельная строка-комментарий
rastr.print("Привет!") # А это комментарий на той же строке после кода
# Первая строка длинного описания
# Вторая строка длинного описания

8. Условные выражения

Операции сравнения относятся:
• == (проверка на равенство);
• != (проверка на неравенство);
• > (больше);
• < (меньше);
• >= (больше либо равно);
• <= (меньше либо равно)
Логические операции:
• and (логическое умножение);
• or (логическое сложение);
• not (логическое отрицание).

9. Условные операторы

age = 18
if age < 18:
rastr.print("Ранний возраст")
elif age == 18:
rastr.print("Ровно 18 лет")
else:
rastr.print("Больше 18 лет")
Основные конструкции
•if (если): проверяет условие. Если оно
истинно (True), выполняется блок кода с
отступом.
•elif (иначе если): проверяет
дополнительное условие, если предыдущие
оказались ложными (False).
•else (иначе): срабатывает, если все
предыдущие условия ложны. После него
условие не пишется

10. Циклы

for
Циклы
while
Цикл while проверяет истинность
некоторого условия, и, если условие
истинно, выполняет инструкции в теле
цикла.
Цикл while проверяет истинность некоторого
условия, и, если условие истинно, выполняет
инструкции в теле цикла.
Функция range может принимать от 1 до 3
целочисленных аргументов:
• range(n) – возвращает последовательность целых
чисел от 0 до n – 1
• (range(3) вернет последовательность: 0, 1, 2);
• range(k, n) возвращает последовательность целых
чисел от k до n – 1
• (range(1, 4) вернет последовательность: 1, 2, 3);
• range(k, n, s) – возвращает последовательность
целых чисел от k до n –1 с шагом s (range(1, 10, 2)
вернет последовательность: 1, 3, 5, 7, 9).

11.

break
Выход из цикла
сontinue
Завершает текущий шаг (итерацию) цикла
и сразу переходит к следующему.

12. Коллекции

— это специальные типы данных, которые позволяют хранить
несколько элементов в одной переменной
Коллекция
Как задается
Описание
Можно
изменя
ть?
Дубликаты
Список
[1, 2, 3]
Элементы стоят строго по номерам
(индексам), начиная с 0
Да
Разрешены
Кортеж
(1, 2, 3)
Неизменяемый список. Создали один раз — и
больше его нельзя отредактировать.
Нет
Разрешены
Словарь
{"key": "value"}
Вместо номеров (индексов) для поиска
используются уникальные ключи (например,
слова, ID или номера телефонов).
Да
Ключи уникальны

13. Список. Методы

14.

Класс — это тип данных,
созданный пользователем.
Он
содержит
разные
свойства и методы.
Свойства класса (они же поля) это характеристики объекта
класса.
Методы класса - это функции, с
помощью которых можно
оперировать данными класса.
Объект — это экземпляр класса,
или его копия, которая находится в
памяти компьютера

15. Класс "Автомобиль"

Объекта
"Автомобиль Volkswagen Tiguan"
Свойства:
• Цвет
• Объем двигателя
• Мощность
• Тип коробки передач
Методы:
• Ехать
• Остановиться
• Заправиться
• Поставить на
сигнализацию
• Включить дворники
Класс "Автомобиль"
Свойства: Цвет="Белый",
Объем двигателя="1984 см3",
Мощность="180 л.с.",
Тип коробки передач="Робот"
Методы: Ехать, Остановиться,
Заправиться, Поставить на
сигнализацию, Включить дворники

16.

17.

18.

Фасад (Facade) — это структурный паттерн проектирования,
который предоставляет простой и понятный интерфейс к
сложной системе классов, библиотеке или фреймворку. Он
скрывает всю внутреннюю «кухню» и запутанную логику под
капотом, выдавая наружу всего одну или несколько удобных
кнопок

19. Объект Rastr

20.

• Объект Rastr представляет из себя совокупность коллекций
позволяющих получить доступ к данным, методам и свойствам.
• Программный интерфейс объекта – это перечень доступных
методов и свойств с описанием их параметров, а также перечень
подобъектов, которые с их помощью можно получить.

21. Организация данных

22.

Доступ к данным:
Встроенная
база
данных
Таблицы
Столбцы
(поля)
Строки
Имя
таблицы
Имя
столбца
Номер
строки

23. Название таблицы: системное и пользовательское

24. Как узнать название таблицы?

Файл\Настройки программы\Параметры\Данные\Таблицы

25. Как узнать название таблицы?

ПКМ на любом столбце таблицы\Название столбца

26. Как узнать название столбца?

ПКМ на любом столбце таблицы\Название столбца

27. Как узнать название столбца?

28. Как узнать название столбца?

Руководство пользователя

29.

Поле Ключ – для задания ключевых (уникальной комбинации) столбцов.
Поле Описание позволяет задать описание таблицы.
Поле в шаблоне – задает имя шаблона (имя и расширение), в котором сохраняется
таблица.

30. Свойства полей в базе

• Имя – уникальное имя столбца, используется для его идентификации. Должно состоять из латинских
букв, цифр и знака подчеркивания. Должно начинаться с буквы или знака подчеркивания.
• Тип данных используется для указания типа информации, хранящейся в столбце данных (см. раздел
Тип данных ).
• Название – используется для отображения в заголовке таблиц с этими данными
• Описание используется для более подробного описания данных.
• Ширина – ширина столбца данных в символо-местах.
• Точность – число цифр после десятичной точки. Используется для вещественных данных.
• Минимум/Максимум – допустимые пределы изменения данных. Используются для данных целого и
вещественного типа. При попытке ввести значение, выходящее за пределы, программа отреагирует
звуковым сигналом и оставит предыдущее значение числа.
• Масштаб отображения числа используется в тех случаях, когда расчетной программе удобно получать
значение в одних единицах измерения, а отображение производить в других.
• Формула – используется для автоматического вычисления значений элементов столбца по значениям
других элементов. В случае правильной формулы столбец FF принимает значение True.

31. Типы данных, которые хранятся как целые числа, но отображаются в одном из следующих видов:

• Переключатель – для хранения данных в виде переключателей
(включено/отключено, отмечен/неотмечен ). На самом деле,
внутри поля хранятся целые данные, но отображаются они либо
чистым прямоугольником (переключатель выключен, значение
числа равно нулю)
• Перечисление/Ссылка – перечисление заданных вариантов
Варианту:
- База соответствует значение 0
- Нагр – 1 и т.д.

32. Ссылки

Ссылки используются для организации информационных связей
между таблицами данных.
Столбец «Ссылка»
Имя_Таблицы[Столбец]
Столбец «Формула»
Столбец_данной_таблицы.Столбец, на который делается ссылка

33.

node – Узлы электрической сети
ny
...
delta
Номер узла
…
Угол расчетного напряжения
vetv – Ветви электрической сети
Имя
ip
iq
...
dij
Описание
Узел начала линии
Узел конца линии
...
Разность углов по концам линии
Ссылка
node[ny]
node[ny]
...
Формула
ip.delta-iq.delta
Алгоритм вычисления формулы по ссылкам (ip.delta):
1. При разборке формулы обнаруживается операция точка с параметрам ip и
delta.
2. При вычислении значения для параметра ip используется ссылка на таблицу
node, название параметра в ней – ny.
3. Осуществляется поиск заданного номера в таблице node – при успешном
поиске берется значение поля delta. При неуспешном – возвращается ноль.

34. Шаблоны

Рабочая
Файл
Шаблоны
определяют,
какие данные из
рабочей области
сохраняются
в
файле
или
загружаются из
файла.
область
Расчетный
модуль

35. Доступ к данным

36.

Объект Rastr
tables
Все таблицы с данными
table
Отдельная таблица
columns
Все столбцы таблицы
column
Столбец таблицы
Ячейка

37. Доступ к коллекции всех таблиц tables

38. Доступ к отдельной таблице table

39. Доступ к коллекции всех столбцов таблицы columns таблицы table

40. Доступ к столбцу таблицы table

41. Доступ к ячейки

rastr["node"] — [Квадратные скобки] берут
конкретную таблицу "node" из общего
объекта rastr.
column("uhom") — (Круглые скобки)
вызывают метод .column(), передавая ему
имя нужного столбца в качестве аргумента.

42. tables

43. tables.Методы

44. Методы работы с коллекцией таблиц

Имя
Описание
add(name)
Добавляет таблицу name к коллекции, возвращает объект table
remove(value)
Удаляет таблицу из коллекции, value – имя таблицы или индекс
item(value)
Возвращает объект table по имени или индексу
add_index(name)
Добавляет таблицу name к коллекции, возвращает ее индекс
find_index(name)
Поиск таблицы name в коллекции, возвращает ее индекс, или -1 если не
найдена.
item_index(name)
Поиск таблицы name в коллекции, возвращает ее индекс, или ошибку если не
найдена.

45.

46.

47. Свойства коллекций таблиц

Имя
Описание
count
Возвращает число таблиц в коллекции

48. table

49. Методы Tablе

Имя
add_row()
insert_row(row)
duplicate_row(row)
delete_row(row)
Описание
Добавить строку (пустую) в конец таблицы
Вставить пустую строку перед строкой с номером row
(строки в таблице нумеруются начиная с 0)
Дублировать строку с номером row
(строки в таблице нумеруются, начиная с 0)
Доступные методы:['__class__', '__contains__', '
Удалить строку row
'__dir__', '__doc__', '__eq__', '__format__', '__ge
'__getattribute__', '__getitem__', '__getstate__',
'__hash__', '__init__', '__init_subclass__', '__le__
'__lt__', '__module__', '__ne__', '__new__', '__re
'__reduce_ex__', '__repr__', '__setattr__', '__size
'__str__', '__subclasshook__', 'add_row', 'column
'count_selected_rows', 'data', 'delete_row',
'delete_selected_rows', 'description', 'duplicate_r
'findNextSel', 'find_next', 'insert_row', 'key', 'key_
'key_value', 'name', 'read_cdu', 'read_csv', 'setSel
'set_selection', 'size', 'swap_rows', 'template_nam
'test_selection', 'to_cdu', 'to_csv']

50. Выборка

51.

52.

«Дай строку №1»
Макрос
«Держи строку №1»
Rastrwin3
Макрос
…
Проверка условия
Выборка— это инструмент для отбора строк таблицы по заданному
условию (логическому выражению)
Найди все строки, где напряжение
меньше номинального на 5 %
Макрос
Держи все строки, где напряжение
меньше номинального на 5 %
Rastrwin3
Макрос
RastrWin сам быстро просматривает
свою таблицу у себя внутри, отбирает
строки по условию
Снижение количества обращений к объекту Rastr
увеличивает скорость работы макроса
…

53.

54. Групповая коррекция

55.

56.

57.

count_selected_rows', 'delete_selected_rows', 'findNextSel',
'find_next', 'key_selection', 'setSel', 'set_selection',
'test_selection']
Имя
set_selection(selection)
test_selection(row)
findNextSel(row)
delete_selected_rows()
key_selection_string(row)
key_value_string(row)
Описание
Задать выборку. Выборка задается в виде формулы, имеющей
логическое значение: 0 – не в выборке, 1 – в выборке. Выборку
можно представить как некоторый дополнительный
временный столбец, заданный формулой
Возвращает значение заданной выборки (0 или 1) для строки
row (только для чтения)
Возвращает индекс следующей строки, удовлетворяющей
выборке (–1, если не найден)
Удаляет строки, соответствующие предварительно заданной
выборке
Возвращает выборку, необходимую для точной идентификации
строки row по ключевым параметрам таблицы
Возвращает значения ключевых полей для строки с индексом
row

58. Пример test_selection

59. Пример findNextSel(row)

60.

61. Формат CSV

• CSV (от англ. Comma-Separated Values — значения, разделённые
запятыми) — текстовый формат, предназначенный для
представления табличных данных.
• Спецификация:
• Каждая строка файла — это одна строка таблицы.
• Разделителем (англ. delimiter) значений колонок является символ
запятой (,). Однако на практике часто используются другие
разделители (Например, точка с запятой (;))

62.

1965;Пиксель;E240 – формальдегид (опасный консервант)!;"красный, зелёный,
битый";"3000,00"
1965;Мышка;"А правильней использовать ""Ёлочки""";;"4900,00"
"Н/д";Кнопка;Сочетания клавиш;"MUST USE! Ctrl, Alt, Shift";"4799,00"
Результирующая таблица:
1965 Пиксель
E240 — формальдегид (опасный
консервант)!
1965 Мышка
А правильней использовать "Ёлочки"
Н/д
Сочетания клавиш
Кнопка
красный, зелёный,
битый
3000
4900
MUST USE! Ctrl, Alt,
Shift
4799

63.

Имя
Описание
to_csv(astra.CSVCode, path, Записывает таблицу в CSV файл с именем
param, div, encoding)
path, param – список имен столбцов,
разделенных запятыми, div – символразделитель (по умолчанию «;»), encoding –
кодировка (по умолчанию UTF-8).
read_csv(astra.CSVCode,
Читает файл (path), представляющий собой
path, param, div, defpar,
текстовый файл с разделителем (div); param –
encoding)
список читаемых столбцов таблицы,
разделенных запятыми; defpar – значения по
умолчанию в виде «имя=значение», encoding
– кодировка (по умолчанию UTF-8).

64.

• atsra.CSV_KOD – числовое значение, определяет режим чтения
или записи таблицы в методах «ReadCSV» и «WriteCSV»:
Константа
Значение
Описание
ADD
0
Добавить в конец таблицы (режим «Присоединить»)
REPLACE
KEY
1
2
KEYADD
3
Заменить данные в таблице (режим «Загрузить»)
Заменить данные по ключевым полям. Если ключ не найден, то данные
игнорируются (режим
«Обновить»)
Заменить данные по ключевым полям. Если ключ не найден, то данные
добавляются в конец таблицы (режим «Объединить»)
INDEX
4
REPLACENAME
5
Заменить данные по индексу. В файле индекс-колонка должна иметь
название «#».
В отличие от REPLACE игнорируется первая строка в файле, полагая, что
в ней содержатся названия полей

65.

66. tables.Свойства

67.

Имя
name
description
template_name
Описание
Имя таблицы
Описание таблицы
Имя шаблона (типа файла), в который помещается данная таблица
size
Число строк в таблице
key
Задаются ключевые столбцы (один или несколько), обеспечивающие
уникальную комбинацию для поиска
count_selected_rows
Возвращает число строк, соответствующих заданной выборке

68. Число строк, соответствующих заданной выборке

69.

70. Columns

Коллекция столбцов таблицы. Возвращается вызовом метода columns()
объекта table.

71. Методы

Имя
add(name, PropType)
Описание
Добавить столбец с именем name, типа PropType.
Возвращает новый столбец. Описание PropType см.
ниже.
Удалить столбец, где value – имя столбца или номер.
remove(value)
item(value)
Возвращает столбец по номеру или названию.
add_index(name, PropType)
Добавить столбец с именем name, типа PropType.
Возвращает индекс столбца.
find_index(name)
Возвращает индекс столбца по имени name

72. Свойства

Имя
count
Описание
Число столбцов в коллекции (только для чтения)

73.

74.

75. PropType

Константа
Значение
Описание
INT
0
Целый
DOUBLE
1
Вещественный
STRING
2
Строка
BOOL
3
Переключатель
ENUM
4
Перечисление
ENPIC
COLOR
5
6
Перечисление картинок (не используется)
Цвет
SUPERENUM
7
Перечисление динамическое

76. Объект Column

77. Значение данных в ячейки

Не
масштабированное
значение
z
Тип соответствует
типу столбца
zs
Строковая
переменная
zn
Тип соответствует
типу столбца
Ячейка
Масштабированное
значение

78. Методы чтения данных в ячейки

Имя
Описание
z(index)
Возвращаетне масштабированное значение элемента в строке
index
zs(index)
Возвращает масштабированное значение элемента в строке,
приведенное к типу «строка»
zn(index)
Возвращает масштабированное значение элемента в строке index

79.

Пример:
расчетный
угол напряжения узла 1
Внутри RastrWin угол напряжения
хранится в радианах, но для
человека удобнее его
анализировать в градусах

80. Методы записи данных в ячейки

Имя
Описание
set_z
Возвращает/задает не масштабированное значение элемента в
строке index
set_zs
Возвращает/задает масштабированное значение элемента в
строке, приведенное к типу строки
Возвращает/задает масштабированное значение элемента в
строке index
set_zn

81.

Столбец.set_z(Индекс, Значение)

82. Метод расчета данных в столбце по формуле

Имя
Описание
calculate(formula)
Вычисляет значения элементов столбца в соответствии с заданной
формулой и выборкой (групповая коррекция).

83. Методы чтения и записи свойств столбцов

Имя
Описание
property(astra.FieldProperties),set_property Возвращает/задает значение свойства столбца,
FieldProperties – перечисление, тип свойства.

84.

FieldProperties:
Описание
Константа
Значение
NAME
0
Имя
TYPE
1
Тип
WIDTH
2
Ширина
PRECISION
3
Точность
TITLE
4
Заголовок
EXPRESSION
5
Формула
AFOR
6
--
ISACTIVEFORMULA
7
--
NAMEREF
8
Перечисление – ссылка
DESCRIPTION
9
Описание
MIN
10
Минимум
MAX
11
Максимум
SCALE
12
Масштаб
CACHE
13
--
UNIT
14
Единица измерения

85.

86. Служебные методы объекта Rastr

87. Работа с файлами

Имя
load(astra.load_code,
file, template)
save(file, template)
new_file(template)
Описание
Загружает файл данных file в рабочую область в соответствии с шаблоном
типа template. Если поле template пусто, то загружается file без шаблона,
если пусто поле file, то загружается только шаблон. file и template строки
путей к файлу.
Сохраняет информацию из рабочей области в файле file по шаблону
template
Очищается часть рабочей области, соответствующая шаблону. Если
структура таблицы в рабочей области не существует, она создается
(пустая). Если таблица уже существует, ее содержимое очищается и
приводится в соответствие с шаблоном. Если шаблон не задан, то
очищается вся рабочая область

88. LoadCode

Константа
ADD
REPL
Значение
0
1
KEY
2
KEY_ADD
3
Описание
Таблица добавляется к имеющейся в рабочей области,
совпадение ключевых полей не контролируются
(соответствует режиму «Присоединить» в меню)
Таблица
в рабочей области замещается
(соответствует режиму «Загрузить» в меню)
Данные в таблице, имеющие одинаковые ключевые поля,
заменяются. Если ключ не найден, то данные
игнорируются (соответствует режиму «Обновить» в меню)
Данные в таблице, имеющие одинаковые ключевые поля,
заменяются. Если ключ не найден, то данные вставляются
(соответствует режиму «Объединить» в меню)

89. Проблемы с описанием пути файлов

filename=r"C:\Users\Admin\Documents\RastrWin3\test-rastr\cx195.rg2"
Python воспринимает обратные слэши (\) в путях к
файлам как начало специальных управляющих символов
Добавьте префикс r перед строкой (сырые строки)
Самый простой способ. Буква r заставляет Python
игнорировать управляющие символы.
filename=r"C:\Users\....cx195.rg2"
Замените обратные слэши на прямые
filename="C:/Users/....cx195.rg2"
Удвойте обратные слэши
filename="C:\\Users\\....cx195.rg2"

90.

91. Расчетные методы

92.

Контроль исходной
информации
Расчет УР стартовым
алгоритмом
Проверка допустимости введенных
данных:
• наличие изолированных узлов, т.е.
узлов, с которыми не соединено ни
одной ветви;
наличие
фрагментов
сети,
несвязанных
с
балансирующим
узлом;
• наличие ветвей, у которых
отсутствует информация об узлах
(или хотя бы об одном узле),
ограничивающих эти ветви;
соответствие
коэффициента
трансформации
номинальным
напряжениям
узлов,
ограничивающих трансформаторную
ветвь.
При
выявлении
подобных
ошибочных ситуаций узел или ветвь,
введенные с ошибкой, отключаются
программой.
Для
улучшения
начального
приближение
в
RastrWin3
используется специальный
стартовый алгоритм, основанный на
методе Зейделя. В большинстве
случаев он позволяет получить
надежную сходимость при очень
плохом начальном приближении.
Плоский старт
«Да» – расчет начинается с
номинальных модулей и нулевых
углов напряжений;
«Нет» – расчет начинается с текущего
начального приближения.
Расчет режима
методом Ньютона

93.

Имя
rgm(options)
Описание
Расчет режима, options – строка дополнительных параметров. Параметры могут
быть следующими:
"" – c параметрами по умолчанию;
"p" – расчет с плоского старта;
"z" – отключение стартового алгоритма;
"c" – отключение контроля данных;
"r" – отключение подготовки данных (можно использовать при повторном
расчете режима с измененными значениями узловых мощностей и модулей
напряжения).
opf(options)
Оптимизация режима по реактивной мощности, options – строка
дополнительных параметров
Контроль данных для расчета режима
kdd(options)

94.

95.

Все расчетные методы возвращают код ошибки в виде:
• ASTCode.OK=0 (все хорошо),
• ASTCode.NB=1 (не сбалансирован режим).
English     Русский Правила