Почему выбранный объект не выделяется

Автор Тема: Почему выбранный объект не выделяется  (Прочитано 9820 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Сколько полей можно добавлять в текстовый примитив? Если несколько, то на каждое поле можно повесить гиперссылку. Так?

Да. Так возможно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Короче говоря - нарисуйте то что вам нужно получить средствами AutoCAD, а мы постараемся показать как это сделать программно.
Александр, добрый день!
Хочу воспользоваться вашим предложением.
Подскажите, пожалуйста, как вставить поле в текстовый примитив.
Спасибо.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Александр, добрый день!
Хочу воспользоваться вашим предложением.
Подскажите, пожалуйста, как вставить поле в текстовый примитив.
Спасибо.
Это я показал выше: https://adn-cis.org/forum/index.php?topic=10156.msg46216#msg46216
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Вы написали, что покажете, как это сделать программно.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Вы написали, что покажете, как это сделать программно.
Укажите пример текста (например, "Мой сайт") и пример гиперссылки (например, "https://adn-cis.org")
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Винт B.М5-6g*20.36.016 ГОСТ 1491-80.
Удалить текст ГОСТ 1491-80 и вставить в это место поле с тем же текстом и адресом www.mail.ru

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Не слишком чисто и красиво, но сойдёт:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. using Autodesk.AutoCAD.Runtime;
  5.  
  6. #pragma warning disable 0618
  7.  
  8. // This line is not mandatory, but improves loading performances
  9. [assembly: CommandClass(typeof(AddHyperInDBText.MyCommands))]
  10.  
  11. namespace AddHyperInDBText
  12. {
  13.   public class MyCommands
  14.   {
  15.     [CommandMethod("HReplace")]
  16.     public void HReplace()
  17.     {
  18.       Document doc = Application.DocumentManager.MdiActiveDocument;
  19.       if (doc == null) return;
  20.       Editor ed = doc.Editor;
  21.       PromptEntityOptions opt = new PromptEntityOptions("\nВыберите однострочный текст: ");
  22.       opt.SetRejectMessage("Это не однострочный текст!");
  23.       opt.AddAllowedClass(typeof(DBText), false);
  24.       PromptEntityResult res = ed.GetEntity(opt);
  25.       if (res.Status == PromptStatus.OK)
  26.       {
  27.         using (DBText text = res.ObjectId.Open(OpenMode.ForWrite) as DBText)
  28.         {
  29.           string str = text.TextString;
  30.           if (str.Contains("ГОСТ 1491-80")) {
  31.             str = str.Replace("ГОСТ 1491-80", "%<\\AcVar \\href \"https://www.mail.ru##ГОСТ 1491-80#1\">%");
  32.             text.TextString = str;
  33.           }
  34.         }
  35.         ed.Command("_UPDATEFIELD", res.ObjectId, "");
  36.       }
  37.     }
  38.   }
  39. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Спасибо.
В какой сборке сидит Autodesk.AutoCAD.Runtime?
Транслятор ругается на ed.Command. Может потому, что не подключен Autodesk.AutoCAD.Runtime.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Спасибо.
В какой сборке сидит Autodesk.AutoCAD.Runtime?
Транслятор ругается на ed.Command. Может потому, что не подключен Autodesk.AutoCAD.Runtime.
Нужно подключить acmgd.dll, acdbmgd.dll, accoremgd.dll
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Они все подключены.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Версия AutoCAD?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
2020

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
2020
Значит снова что-то не то сделал. Класс Editor с методом Command в пространстве имён  Autodesk.AutoCAD.EditorInput, которая из accoremgd.dll
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Александр Ривилис 24-11-2020, 17:54:18

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Так без команд:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. using Autodesk.AutoCAD.Runtime;
  5.  
  6. #pragma warning disable 0618
  7.  
  8. // This line is not mandatory, but improves loading performances
  9. [assembly: CommandClass(typeof(AddHyperInDBText.MyCommands))]
  10.  
  11. namespace AddHyperInDBText
  12. {
  13.   public class MyCommands
  14.   {
  15.     [CommandMethod("HReplace")]
  16.     public void HReplace()
  17.     {
  18.       Document doc = Application.DocumentManager.MdiActiveDocument;
  19.       if (doc == null) return;
  20.       Editor ed = doc.Editor;
  21.       PromptEntityOptions opt = new PromptEntityOptions("\nВыберите однострочный текст: ");
  22.       opt.SetRejectMessage("Это не однострочный текст!");
  23.       opt.AddAllowedClass(typeof(DBText), false);
  24.       PromptEntityResult res = ed.GetEntity(opt);
  25.       if (res.Status == PromptStatus.OK)
  26.       {
  27.         using (DBText text = res.ObjectId.Open(OpenMode.ForWrite) as DBText)
  28.         {
  29.           string str = text.TextString;
  30.           if (str.Contains("ГОСТ 1491-80")) {
  31.             str = str.Replace("ГОСТ 1491-80", "%<\\AcVar \\href \"http://www.mail.ru##ГОСТ 1491-80#1\">%");
  32.             text.TextString = str;
  33.           }
  34.         }
  35.         doc.Database.EvaluateFields();
  36.       }
  37.     }
  38.   }
  39. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Разобрался. Проект достался мне по-наследству. Там все dll брались из версии 2013.
Взял dll из ObjectArx 2020, но теперь задача не собирается.