Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

  1. С 13.10.2020 снова работает авторизация/регистрация через социальные сети: VK (Вконтакте) и Facebook.
    Скрыть объявление

Задание системы координат

Тема в разделе "Map 3D", создана пользователем anton253, 17 апр 2012.

  1. trir

    Форумчанин Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.110
    Симпатии:
    881
    Адрес:
    gnomtrir@mail.ru
    у MgCoordinateSystemCategory есть методы AddCoordinateSystem и RemoveCoordinateSystem
    у MgCoordinateSystem есть GetCategories()

    Код:
     public static string CStoCategory() //string Category_name
    {
    MgCoordinateSystemFactory coordSysFactory = new MgCoordinateSystemFactory();
    MgCoordinateSystemCatalog csCatalog = coordSysFactory.GetCatalog();
     
    MgCoordinateSystemDictionary csDict = csCatalog.GetCoordinateSystemDictionary();
     
    MgCoordinateSystemEnum csDictEnum = csDict.GetEnum();
    int csCount = csDict.GetSize();
    MgStringCollection csNames = csDictEnum.NextName(csCount);
     
     
    MgCoordinateSystem cs = null;
    string csName = null;
    bool csProtect;
     
    var cDict = csCatalog.GetCategoryDictionary().GetCategory("NewCategory");
     
    //Перебираем словарь СК
    int i1 = 0;
    for (int i2 = 0; i2 < csCount; i2++)
    {
    csName = csNames.GetItem(i2);
    cs = csDict.GetCoordinateSystem(csName);
    csProtect = cs.IsProtected();
     
    //Условие - если данная СК пользовательская (импортированная из XML)
    if (csProtect == false)
    {   //Пусть для примера для созданной категории с одной внесеной ск по имени "NewCategory"
    //new .AddCoordinateSystem(csName);
    cDict.AddCoordinateSystem(csName);
    i1++;
    }
    }
    return i1.ToString();
    }
     
    #121
  2. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    14
    Адрес:
    Санкт-Петербург
    Ну вот ... GetCategories() не возвращает вообще ничего (если дописать ToString ();) а AddCoordinateSystem непонятно как работает - по крайней мере у меня не получилось так создать
    --- Сообщения объединены, 11 ноя 2020, Оригинальное время сообщения: 11 ноя 2020 ---
    Попробовал такой вариант (с объявлением словаря категорий не через MgCoordinateSystemCategoryDictionary а через var) - тоже нет изменения библиотеки :(
     
    #122
  3. trir

    Форумчанин Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.110
    Симпатии:
    881
    Адрес:
    gnomtrir@mail.ru
    как ты используешь эту либу?
     
    #123
  4. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    14
    Адрес:
    Санкт-Петербург
    Как-то так
    А у тебя оно работает? Если да - тогда сделаю через плагин к программе а не в Dynamo как сейчас
     

    Вложения:

    #124
  5. trir

    Форумчанин Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.110
    Симпатии:
    881
    Адрес:
    gnomtrir@mail.ru
    #125
  6. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    14
    Адрес:
    Санкт-Петербург
    #126
  7. trir

    Форумчанин Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.110
    Симпатии:
    881
    Адрес:
    gnomtrir@mail.ru
    Код:
            [CommandMethod("test1")]
            public void test1()
            {
                var editor = Application.DocumentManager.MdiActiveDocument.Editor;
                var sRes = editor.GetString("Get CS Name:");
     
                if (sRes.Status == PromptStatus.OK)
                {
                    MgCoordinateSystemFactory coordSysFactory = new MgCoordinateSystemFactory();
                    MgCoordinateSystemCatalog csCatalog = coordSysFactory.GetCatalog();
                    MgCoordinateSystemDictionary csDict = csCatalog.GetCoordinateSystemDictionary();
     
                    var cs = csDict.GetCoordinateSystem(sRes.StringResult);
                    var cgs = cs.GetCategories();
                    for (var i = 0; i < cgs.GetCount(); i++)
                    {
                        editor.WriteMessage(cgs.GetItem(i));
                    }
                }
            }
     
    #127

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление