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

Как добраться до настроек Eplan через API

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

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

Закрыто

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до настроек Eplan через API

Сообщение ill_via »

Как получить все значения в Меню-Настройки-Пользователь-Интерфейсы - Экспорт данных изготовления/маркировка. Самое верхнее поле Схемы. как получить все значения которые там прописаны.
Аватара пользователя

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

Как добраться до свойств системы через API

Сообщение aranea »

ill_via, экспортируете настройку, узнаете путь, а потом что-то типа этого https://asutpforum.ru/viewtopic.php?p=40262#p40262
на каком этапе и в чем у вас трудности?
Изображение

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до свойств системы через API

Сообщение ill_via »

выгрузку сделал, но где там путь?

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

<?xml version="1.0" encoding="utf-8" ?>
<!-- Labelling_USER_Config: LB.КГА_Провода.xml -->
<Settings format="2">
 <CAT name="USER">
  <MOD name="Labelling">
   <LEV1 name="Config" nodekind="scheme">
.....
пробовал "USER.Labelling.Config" не работает.
у нас несколько вариантов отчетов экспортируется в Excel, чтобы выгрузить необходимо знать configSheme, т.е. как называется нужный отчет, а раз он есть в настройках, значит как-то можно его получить и использовать
Аватара пользователя

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

Как добраться до свойств системы через API

Сообщение aranea »

ill_via, давайте код, будем смотреть
Изображение

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до свойств системы через API

Сообщение ill_via »

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

Settings oSettings = new Settings();
oSettings.GetCountOfValues("USER.Labelling.Config");
на этом отваливается и пишет, что нет такого пути
Аватара пользователя

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

Как добраться до свойств системы через API

Сообщение aranea »

ill_via, вам нужен SchemeSetting , так как
ill_via писал(а): 30 апр 2020, 14:44Самое верхнее поле Схемы
Settings - это просто хранение простых данных в настройках Е, а SchemeSetting - это для работы со схемами (группами настроек, сохраненными под каким-то именем)
Изображение

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до настроек Eplan через API

Сообщение ill_via »

то что он мне нужен я в курсе. Я путь не могу правильный найти к настройкам. Например для экспорта DXF/DWG он выглядит "USER.DXF.SCHEMES". а для экспорта маркировки? "USER.LABEL.SCHEMES" и "USER.LABELING.SCHEMES" не работают.
Аватара пользователя

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

Как добраться до настроек Eplan через API

Сообщение aranea »

ill_via, да, по вашим словам получается, что не работает
Изображение

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до настроек Eplan через API

Сообщение ill_via »

+ $exception {"Не удалось найти настройку USER.LABEL.SCHEMES.LastUsed."} Eplan.EplApi.Base.BaseException
вот такой ошибкой падает, значит дело не в пути. копаем дальше
Аватара пользователя

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

Как добраться до настроек Eplan через API

Сообщение aranea »

ill_via, давайте, раз тут обсуждаем аспект программирования с использованием Eplan.api, использовать больше кода и меньше домыслов
Просторные рассуждения проводятся в другой теме
Изображение

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до настроек Eplan через API

Сообщение ill_via »

вопрос остается открытым, как добраться до выделенных свойств через API?
screen.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Barmaley4
знаток Eplan
знаток Eplan
Сообщения: 50
Зарегистрирован: 30 окт 2018, 09:17
Имя: Павел
Страна: РФ
город/регион: Москва
Благодарил (а): 2 раза
Поблагодарили: 51 раз

Как добраться до настроек Eplan через API

Сообщение Barmaley4 »

Всё очень просто, имена схем можно выдрать из списка дочерних узлов куста настроек, по хвосту .Name

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

                //Получаем коллекцию ВСЕХ имён подузлов в настройках лейблинга
                SettingNode sn = new SettingNode("USER.Labelling");
                StringCollection strcSettings = new StringCollection();
                sn.GetListOfAllSettings(ref strcSettings, true);

                //Сделаем из коллекции обычный List
                List<string> SchemeNames = strcSettings.OfType<string>().ToList();
                //Выбираем узлы только с именем схемы
                SchemeNames = SchemeNames.Where(s => s.Contains(".Name")).ToList();

                //Убираем лишнее из имени узла оставив только имя схемы
                SchemeNames = SchemeNames.Select(s => 
                    s.Replace("USER.Labelling.Config.", "").Replace(".Name", ""))
                    .ToList().Distinct().ToList();

Автор темы
ill_via
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 апр 2020, 12:08
Имя: Илья
Благодарил (а): 4 раза

Как добраться до настроек Eplan через API

Сообщение ill_via »

Barmaley4 писал(а): 06 май 2020, 12:15 "USER.Labelling"
Простите за дурацкий вопрос. Подскажите, где найти правильное обозначение всех пунктов меню, это же должно быть в каком-нибудь документе? в хэлпе не нашел ответов.
Аватара пользователя

Barmaley4
знаток Eplan
знаток Eplan
Сообщения: 50
Зарегистрирован: 30 окт 2018, 09:17
Имя: Павел
Страна: РФ
город/регион: Москва
Благодарил (а): 2 раза
Поблагодарили: 51 раз

Как добраться до настроек Eplan через API

Сообщение Barmaley4 »

ill_via, может быть где-то оно и есть, я не знаю. Я использую данные из скрытой настройки "экспортировать настройку". Что бы активировать этот пункт необходимо выполнить следующий код через api, или через сценарии - выполнить (с атрибутом Start) *

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

	Settings oSettings = new Settings();
	oSettings.SetBoolSetting("USER.EnfMVC.ContextMenuSetting.ShowExtended", true, 0);
тогда будет доступна опция "экспортировать настройку" в любом из полей настроек.
Из xml можно будет понять в какой структуре древа находится тот или иной набор настроек
Пример по полю "целевой файл" из Пользователь-интерфейсы-внешняя обработкаЖ

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

<Settings format="2">
 <CAT name="USER">
  <MOD name="MacrosGui">
   <LEV1 name="PXF">
    <LEV2 name="Export">
     <LEV3 name="Schemes" nodekind="scheme">
      <LEV4 name="3D">
       <LEV5 name="Data" nodekind="block">
        <LEV6 name="File">
         <Setting name="Destination" type="string">
* я имел ввиду дополнительно появится опция контекстного меню "скопировать путь настроек в буфер обмена", там будет текстовое представление, его можно задавать через класс settings

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

Как добраться до настроек Eplan через API

Сообщение Madwolf »

ill_via писал(а): 30 апр 2020, 23:33

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

Settings oSettings = new Settings();
oSettings.GetCountOfValues("USER.Labelling.Config");
на этом отваливается и пишет, что нет такого пути
SchemeSetting oSCHsetting = new SchemeSetting();
oSCHsetting.Init("USER.Labelling.Config");
//folderPath = System.IO.Path.GetDirectoryName(oSCHsetting.GetStringSetting("File.Destination", 0));

Далее можно получить списки доступных схем, установить текущую схему (oSCHsetting.CheckIfSchemeExists(schemeName) ), настроить все как нужно и т.д.

hakimrv
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 28 янв 2019, 09:22
Имя: Равиль
Страна: Россия
город/регион: Казань
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Как добраться до настроек Eplan через API

Сообщение hakimrv »

Madwolf писал(а): 01 июн 2020, 11:20 Далее можно получить списки доступных схем, установить текущую схему (oSCHsetting.CheckIfSchemeExists(schemeName) ), настроить все как нужно и т.д.
Добрый вечер.
Хотелось бы уточнить способ получения списка доступных схем Экспорта/Маркировки.
К примеру: вывод названий всех доступных схем Label в CheckBox для Form либо просто в MessageBox.
Через метод SchemeSetting получается выводить список схем только в виде экспорта в отдельный файл

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

 SchemeSetting oSCHsetting = new SchemeSetting();
                oSCHsetting.Init("USER.Labelling.Config");
                oSCHsetting.CheckIfSchemeExists("USER.Labelling.Config");
                oSCHsetting.ExportSchemes(@"C:\Users\Рабочий стол\export.txt");
Заранее спасибо!
Аватара пользователя

Barmaley4
знаток Eplan
знаток Eplan
Сообщения: 50
Зарегистрирован: 30 окт 2018, 09:17
Имя: Павел
Страна: РФ
город/регион: Москва
Благодарил (а): 2 раза
Поблагодарили: 51 раз

Как добраться до настроек Eplan через API

Сообщение Barmaley4 »

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

		//Вывод в ComboBox
		comboBoxLablingSch.Items.Clear();
                comboBoxLablingSch.Items.AddRange(GetLabelingchemeNames());
                comboBoxLablingSch.SelectedIndex = new Random().Next(comboBoxLablingSch.Items.Count);

public static string[] GetLabelingchemeNames()
        {
            //Получаем коллекцию ВСЕХ имён подузлов в настройках лейблинга
            SettingNode sn = new SettingNode("USER.Labelling");
            StringCollection strcSettings = new StringCollection();
            sn.GetListOfAllSettings(ref strcSettings, true);

            //Сделаем из коллекции обычный List
            List<string> SchemeNames = strcSettings.OfType<string>().ToList();
            //Выбираем узлы только с именем схемы
            SchemeNames = SchemeNames.Where(s => s.Contains(".Name")).ToList();

            //Убираем лишнее из имени узла оставив только имя схемы
            SchemeNames = SchemeNames.Select(s =>
                s.Replace("USER.Labelling.Config.", "").Replace(".Name", ""))
                .ToList().Distinct().ToList();

            return SchemeNames.ToArray();
        }


kibor
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 10 апр 2023, 19:47
Имя: Кирилл
Благодарил (а): 2 раза

Как добраться до настроек Eplan через API

Сообщение kibor »

Добрый день!
Уже всю голову себе сломал. а как из API запустить "Экспорт данных изготовления/вывести маркировку" с нужной настройкой?
Аватара пользователя

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

Как добраться до настроек Eplan через API

Сообщение aranea »

Изображение
Закрыто

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