Отключить геометку

Здравствуйте.

Подскажите, как в чертеже избавиться от наличия геометки? Не отключить отображение (GEOMARKERVISIBILITY <0>), а удалить её?

Я знаю только один способ:

  1. В Нанокаде копировать содержимое чертежа в буфер обмена;
  2. В Автокаде вставить в чистый чертёж содержимое буфера. В этот момент геометка пропадает;
  3. Сделать обратную операцию, копировать из Автокада в новый чертёж Нанокада.

Этот способ требует наличия Автокада и часто ломает чертежи, поэтому не устраивает.

Чтобы удалить насовсем с помощью Автокада - команда “_GEOREMOVE”.

Чтобы удалить насовсем с помощью Автокада - команда “_GEOREMOVE”.

Спасибо, для Автокада работает. А в Нанокаде нет такой команды.
Как быть с Нанокадом?

А насколько это серьезная проблема сейчас? Т.е. почему принципиально обязательно удалять, а не просто отключить?

А насколько это серьезная проблема сейчас? Т.е. почему принципиально обязательно удалять, а не просто отключить?

У меня задача начальства избавиться от геомаркеров.

Насколько я понимаю, геомаркер содержит данные о географическом положении объектов. Передача этих данных в сторонние файлы недопустима.

Боюсь сейчас в nanoCAD удалить геомаркер не получится, только отключить.

Код от EduardSt сносит эту шляпу

(defun c:drz_GEOREMOVE ( / ext_dict vb va)
(vl-load-com)
(setq mes “Расширения в файле отсутствуют!”)
(setq va (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))

(if (equal (vla-get-hasextensiondictionary va) :vlax-true)
(progn
(setq ext_dict (vla-GetExtensionDictionary va))
(setq mes “Геоинформация отсутствует!”)
(vlax-for vb ext_dict
(if (= (vla-get-ObjectName vb) “AcDbGeoData”)
(progn
(vla-delete vb)
(setq mes “Геоинформация удалена!”)
)))
)
)
(print mes)
(prin1)
)

Код от EduardSt сносит эту шляпу

(defun c:drz_GEOREMOVE ( / ext_dict vb va)
(vl-load-com)
(setq mes “Расширения в файле отсутствуют!”)
(setq va (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))

(if (equal (vla-get-hasextensiondictionary va) :vlax-true)
(progn
(setq ext_dict (vla-GetExtensionDictionary va))
(setq mes “Геоинформация отсутствует!”)
(vlax-for vb ext_dict
(if (= (vla-get-ObjectName vb) “AcDbGeoData”)
(progn
(vla-delete vb)
(setq mes “Геоинформация удалена!”)
)))
)
)
(print mes)
(prin1)
)

Спасибо! Лисп работает, то что надо!

Эдуарду спасибо!

Боюсь сейчас в nanoCAD удалить геомаркер не получится, только отключить.

Как раз лисп выше (уже успел забыть про него!) сносит этот геомаркер из файла.

Проблема в том, этот маркер периодически возникает вновь, если кто-то из команды проекта копирует через буфер что-то из “зараженного” файла. Реально, ведет себя эта шляпа, как вирус. Поэтому таблетку лучше иметь под рукой.

1 лайк

Загрузил данный лисп, метка осталась
DRZ_GEOREMOVE - DRZ_GEOREMOVEошибка: неверное число аргументов: SETQ: (MES “РАСШИРЕНИЯ В ФАЙЛЕ ОТСУТСТВУЮТ!”)
E:\Работа\Библиотека\nogeomarker.lsp:3,7

Предположу, что в результате экспериментов с лисп-файлом кто-то сдвинул скобку.
Выражение должно быть, как указано в фрагменте кода выше,
(setq mes “Расширения в файле отсутствуют!”).
В таком виде неверного количества аргументов быть не может.

1 лайк

Благодарю, действительно ошибка была в коде, все сработало.

2 лайка