1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Скрипты и API

Сценарии / Модули API

Модератор: специалисты Eplan

Закрыто
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3327
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 176 раз
Поблагодарили: 364 раза

Re: Скрипты и API

Сообщение AGorskiy »

Интересующимся рекомендую посетить сайт https://getsatisfaction.com/stlm/topics ... _api_forum EPlan P8 API Programming - это Community Luc Morin. Александр аkа aranea знает этот сайт Изображение
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Re: Скрипты и API

Сообщение aranea »

гугл сегодня нашел тоже интересный сайтик
http://www.cnblogs.com/AriLee/
сижу читаю
Изображение
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3327
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 176 раз
Поблагодарили: 364 раза

Re: Скрипты и API

Сообщение AGorskiy »

Вынес в отдельную тему Перекрестные ссылки viewtopic.php?f=90&t=4020 работу Воробьева Александра aka aranea
На мой взгляд, в данной теме она (работа) просто потерялась.
По описанию интересная вещь, но признаюсь сам не проверял.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Re: Скрипты и API

Сообщение aranea »

ну так и задача разовая и довольно редкая =)
Изображение
Аватара пользователя

Dyma
знаток Eplan
знаток Eplan
Сообщения: 456
Зарегистрирован: 15 май 2012, 12:36
Имя: Чистякова Оксана
Страна: Россия
город/регион: Череповец
Благодарил (а): 4 раза
Поблагодарили: 17 раз

Re: Скрипты и API

Сообщение Dyma »

Хотелось бы такую штучку придумать (хотя это ближе к разделу МЕЧТА), чтобы как в Автокаде, если нужно что-то обрезать, то все разом, а не тыкать в каждый графический объект.
ЗЫ. Столкнулась сейчас с разрисовкой узлов на плане.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3327
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 176 раз
Поблагодарили: 364 раза

Батник для Винды

Сообщение AGorskiy »

Сабж для резервного копирования БДИ. Простой код, простая операция. Можно поступить двумя путями
1) создать ярлык поместить его в автозагрузку и при старте ОС будет произведена операция;
2) создать задание в Планировщике заданий, создать там некоторые условия, если нужны, указать путь к батнику.

Код: Выделить всё

@date /T > D:\EPLAN\Base_backup\filename
Set /p input=Имя < D:\EPLAN\Base_backup\filename
echo %input%
copy P:\Ресурсы\Элементы\СПб\ESS_part001.mdb "D:\EPLAN\Base_backup\%input%BackUp.mdb"
После выполнения операции у вас в каталоге с батником будет лежать еще файлы
"25.02.2014 BackUp.mdb" (пример, число сегодняшнее) и "filename" (в нем указана дата)

При изменении путей помните, что пробелов надо избегать, а сохранить батник в кодировке OEM 866, если в имени пути используете кириллицу, Notepad++ вам поможет.
Батник неидеален, замечания, предложения, пожелания приветствуются.
[+] кстати
чуть не забыл сказать, если использовать первый способ, то пути в первых двух строках можно игнорировать, а именно

Код: Выделить всё

@date /T > filename
Set /p input=Имя < filename
echo %input%
copy P:\Ресурсы\Элементы\СПб\ESS_part001.mdb "D:\EPLAN\Base_backup\%input%BackUp.mdb"
Связано это с тем, что при использовании Планировщика, командная строка выполняется из системной папки system32, а в этом случае из папке с батником.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

Всем здравствуйте!
Ни как не получается найти, как задать координаты создаваемого текста.

Код: Выделить всё

Eplan.EplApi.DataModel.Graphics.Text text = new Text();
text.Create(oPage, "Текст", 2.5);
Текст создаётся в точке [0,0]. Как бы его подвинуть?

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

Всё очень просто

Код: Выделить всё

PointD A = new PointD();
A.X = 20; A.Y = 20;
text.Location = A;

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1454
Зарегистрирован: 17 окт 2012, 11:24
Имя: Виталий
Страна: Беларусь
город/регион: Минск
Благодарил (а): 60 раз
Поблагодарили: 181 раз

Re: Скрипты и API

Сообщение Madwolf »

А еще проще так:

Код: Выделить всё

text.Location = new PointD(20, 20);
Кстати, все изменения в графических объектах нужно производить после того как они созданы методом create(), иначе вываливается исключение.

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

Добрый день!
Написана программка, использующая свойство функции "Пользователь, доп. поле1 <40201>". Для удобства оно переименовано, например, в "Номер сигнала" (Настройки: Проекты: Проект: Управление: Дополнительные поля: Функция: Новое имя).
Возможно ли это переименование запрограммировать, чтобы при запуске программы в другом проекте это свойство проекта уже называлось как надо.
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3327
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 176 раз
Поблагодарили: 364 раза

Re: Скрипты и API

Сообщение AGorskiy »

Мои познания в АПИ ничтожны, но смею предположить, что нет так как это затрагивает саму программу, но вам ничего не стоит использовать перенос свойств проекта - viewtopic.php?f=90&t=4873#p44146 и(или) заложить это себе в программку.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

AGorskiy, спасибо за совет, но требовалось немножко не то.
Порылся в хелпе, чуток подумал и придумал вот что:

Код: Выделить всё

SelectionSet sel = new SelectionSet();
Project prj = sel.GetCurrentProject(false);
ProjectSettings prjSet = new ProjectSettings(prj);
prjSet.SetStringSetting("TrDMBase.PropertyDefs.17.40201.PropertyName", "Моё новое имя свойства", 0);
Самая проблема оказалась в поиске имени настройки "TrDMBase.PropertyDefs.17.40201.PropertyName", в хелпе не нашёл, решил искать в "\EPLAN\Platform\2.2.5\cfg" по тексту "SUPPLEMENTARYFIELD" (взято из имени свойства функций, для которого и требуется замена). Поиск меня привёл к файлу SettingsMasterGui_AvailableSettings.xml, где лежат path'ы настроек.
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Re: Скрипты и API

Сообщение aranea »

limbir, отличное решение!
также имена путей можно найти после экспорта нужных настроек в xml файл

Код: Выделить всё

<?xml version="1.0" encoding="utf-8" ?> 
- <Settings ver="2.2.5">
  <CAT name="COMPANY" /> 
  <CAT name="INSTALL" /> 
- <CAT name="PROJECT">
- <MOD name="TrDMBase">
- <LEV1 name="PropertyDefs">
.......
- <LEV2 name="17">
...........
- <LEV3 name="40201">
- <Setting name="PropertyName" ver="1" type="string" desc="649">
- <Default>
  <Val /> 
  </Default>
  <Val /> 
  </Setting>
  </LEV3>
..............
Изображение

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

Никак теперь не могу определить к какому классу относится "Обозначение местоположения", это штрихпунктирная рамка, которая на CTRL+F11 вызывается. Может кто в курсе?
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Re: Скрипты и API

Сообщение aranea »

Код: Выделить всё

SelectionSet selectionSet = new SelectionSet();
StorableObject[] storableObjects = selectionSet.Selection;

foreach (StorableObject so in storableObjects)
    {
    MessageBox.Show("so.ToString(): " + so.ToString());
    }
дает
so.ToString(): Eplan.EplApi.DataModel.LocationBox
Изображение

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

aranea, благодарю!

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

Воспользовавшись предложенным aranea методом определил TypeIdentifier "Обозначения местоположения", указав в выводимом сообщении

Код: Выделить всё

so.TypeIdentifier.ToString();
Потом по этому значению пытаюсь выбирать из списка StorableObject эти рамки мест обозначения.

Код: Выделить всё

SelectionSet sel = new SelectionSet();
Project prj = sel.GetCurrentProject(false);
DMObjectsFinder fndr = new DMObjectsFinder(prj);
StorableObject[] storObj = fndr.GetStorableObjects(null);
foreach (StorableObject so in storObj)
                if (so.TypeIdentifier == 88)
                {

                }
Выбрал, но как их теперь преобразовать из класса StorableObject в LocationBox?
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Re: Скрипты и API

Сообщение aranea »

вариант 1

Код: Выделить всё

SelectionSet selectionSet = new SelectionSet();
List<LocationBox> oLBs = selectionSet.Selection.OfType<LocationBox>().ToList();

foreach (LocationBox oLB in oLBs)
    {

    }
вариант 2

Код: Выделить всё

LocationBox oLB = so as LocationBox;
не проверял
Изображение

limbir
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 12 фев 2014, 08:13
Имя: Сергей
Страна: Россия
Благодарил (а): 1 раз

Re: Скрипты и API

Сообщение limbir »

Спасибо! Второй вариант то что надо!
В первом варианте выбор производится через SelectionSet, а мне бы через DMObjectsFinder.

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1454
Зарегистрирован: 17 окт 2012, 11:24
Имя: Виталий
Страна: Беларусь
город/регион: Минск
Благодарил (а): 60 раз
Поблагодарили: 181 раз

Re: Скрипты и API

Сообщение Madwolf »

Также еще можно использовать следующую конструкцию явного приведения типов ((LocationBox)so). ...

AlmazM
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 30 апр 2014, 09:45
Имя: Минвалеев Алмаз Хайдарзанович
Страна: Россия
город/регион: Набережные Челны/Татарстан

Re: Скрипты и API

Сообщение AlmazM »

Добрый день всем! Кто-нибудь подскажет можно ли реализовать с помощью API вот что: хочу чтобы при вставке устройств и кабелей в их счетчик (для ОУ) присваивалась цифра которую я написал в обозначение места установки в структурном идентификаторе.
Например, у меня есть объект "Емкость подземная". По технологической схеме его номер 41. Захожу в струк. идентификатор создаю данный объект: Обозначение места установки=41, Описание=Емкость подземная. Далее создаю страницу и размещаю ее в 41 месте установки. Все устройства (с черными ящиками и кабели) нумеруем как сам объект. Т.е Счетчик в ОУ = 41 и подсчетчик = 1...n.
Так вот приходится делать это вручную. А хотелось бы вставил макрос, допустим датчика, на страницу и он автоматически себе в счетчик присвоил номер "обозначения место установки" со структурного идентификатора.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 89 раз
Поблагодарили: 115 раз

Re: Скрипты и API

Сообщение legionercheg »

Можно, наверное, попробовать эти данные для устройства вытаскивать через "Свойство блока"...
Будет выглядеть как то так:
[+] Свойство блока
1.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Alexander_Pavlov
знаток Eplan
знаток Eplan
Сообщения: 97
Зарегистрирован: 09 апр 2014, 09:55
Имя: Александр Павлов
Страна: РФ
город/регион: Санкт Петербург
Благодарил (а): 12 раз
Поблагодарили: 6 раз

Re: Скрипты и API

Сообщение Alexander_Pavlov »

Как можно запускать скрипты? сервисные программы - сценарии - выполнить? версия p8 2.1
Eplan 2.6 сборка 10395
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Re: Скрипты и API

Сообщение aranea »

если скрипт содержит строку [Start], то "сервисные программы - сценарии - выполнить"
в противном случае "сервисные программы - сценарии - загрузить"
Изображение
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3327
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 176 раз
Поблагодарили: 364 раза

github.com

Сообщение AGorskiy »

GitHub — самый крупный веб-сервис для хостинга IT-проектов и их совместной разработки.
https://github.com/DanielPa - думаю некоторых коллег заинтересует
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Закрыто

Вернуться в «Eplan API»