Обновление чертежа при изменении слоя или объекта

Автор Тема: Обновление чертежа при изменении слоя или объекта  (Прочитано 12740 раз)

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

Оффлайн ДаниилАвтор темы

  • ADN Club
  • Сообщений: 31
  • Карма: 2
Я с Вами согласен, ввиду того, что это мой первый опыт работы с AutoCad через .net, в основном использовал примеры, которые находил в интернете и документации, и должного внимания не уделил коду. Как раз собираюсь этим заняться.

с ClassObject понял

а по поводу string Id. Я получал ID от выбранного элемента и записывал его в стринговую переменную, через ToString, т.к., на сколько я понимаю, тип данные ObjectId - intPtr. Не разобрался, как с ним работать. И мне показалось логично хранить ID объекта в string.

Ну и передаю его соответственно в метод как String. Как я понимаю, приведение string типа к типу intPtr должно помочь уйти от перебора слоев и поиска нужного Id.

Надеюсь, что объяснил более менее понятно.


с перебором, действительно, загнался немного. Id известен, достаточно его передать и внести нужные изменения.

Фокусировка помогла в моей проблеме, спасибо Вам большое.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Фокусировка помогла в моей проблеме, спасибо Вам большое.
Отлично.
а по поводу string Id. Я получал ID от выбранного элемента и записывал его в стринговую переменную, через ToString, т.к., на сколько я понимаю, тип данные ObjectId - intPtr. Не разобрался, как с ним работать. И мне показалось логично хранить ID объекта в string.
Совершенно нелогично хранить ID в string. Причин две:
1) ID - это постоянное значение, но только в пределах одного сеанса работы с AutoCAD. Т.е. при следующем открытии этого чертежа у этого объекта будет другой ID. Поэтому смысла хранить его в виде строки нет никакого. Для этой цели есть Handle, который в виде строки хранится в чертеже и он одинаков в разных сеансах работы с AutoCAD.
2) Во внутреннем представлении ID имеет тип long.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ДаниилАвтор темы

  • ADN Club
  • Сообщений: 31
  • Карма: 2
Согласен, действительно сделал лишнее. Можно без проблем хранить ObjectID, затем передавать его в метод для внесения нужных изменений. Не заметил сразу этого. Ну и скорость работы должна заметно увеличится.

Спасибо за замечания. Учту их на будущее.