doctorraz Posted March 1, 2022 Report Share Posted March 1, 2022 (edited) Прилетел чертеж от смежников Не пойму, как отключить эту красоту? ПСК конус.dwg Edited March 1, 2022 by doctorraz Теперь узнал, как эта фигня называется))) 1 Quote Link to comment Share on other sites More sharing options...
Boroda888 Posted March 1, 2022 Report Share Posted March 1, 2022 Типа геомаркер хранится в чертеже Команда: VAR:GEOMARKERVISIBILITY Новое значение GEOMARKERVISIBILITY <1>: 0 добавлено через 0 минут 2 1 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted May 30 Report Share Posted May 30 С отключением переменной отключается только видимость маркера, но информация в чертеже остается. Накидал маленький скрипт для удаления маркера (defun c:del_geo_information ( / ext_dict vb) (vl-load-com) (setq ext_dict (vla-GetExtensionDictionary (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))) (vlax-for vb ext_dict (if (= (vla-get-ObjectName vb) "AcDbGeoData") (vla-delete vb)) ) (print "Геоинформация удалена!") (prin1) ) На приложенном примере вроде сработало. 1 2 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted May 30 Author Report Share Posted May 30 (edited) 59 минут назад, EdwardSt сказал: Накидал маленький Вот спасибо!!! А то пока нанодев с GEOREMOVE разродится, все на пенсии будем Edited May 30 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted May 30 Report Share Posted May 30 3 минуты назад, doctorraz сказал: GEOREMOVE Вот и имя команды более вразумительное нарисовалось) Надеюсь, что столь варварский метод не удалит чонить лишнего... Quote Link to comment Share on other sites More sharing options...
kpblc Posted May 30 Report Share Posted May 30 @EdwardSt, я не знаю как в нанокаде, а в акаде vla-getextensiondictionary гарантированно создавал словарь. Чтоб не создавать, приходилось предварительно проверять наличие словаря через vla-get-hasextensiondictionary 1 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted May 30 Report Share Posted May 30 12 минут назад, kpblc сказал: проверять наличие словаря через vla-get-hasextensiondictionary Спойлер (defun c:GEOREMOVE ( / ext_dict vb va) (vl-load-com) (setq mes "отсутсвует!") (setq va (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (if (vla-get-hasextensiondictionary va) (progn (setq ext_dict (vla-GetExtensionDictionary va)) (vlax-for vb ext_dict (if (= (vla-get-ObjectName vb) "AcDbGeoData") (progn (vla-delete vb) (setq mes "удалена!") ))))) (print (strcat "Геоинформация " mes)) (prin1) ) Спасибо за наводку 1 Quote Link to comment Share on other sites More sharing options...
kpblc Posted May 30 Report Share Posted May 30 Эммм... А не (equal (vla-get-hasextensiondictionary va) :vlax-true) ? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted May 30 Author Report Share Posted May 30 Спойлер 18 минут назад, EdwardSt сказал: Ну тогда (Скрыть контент) (defun c:GEOREMOVE ( / ext_dict vb va) (vl-load-com) (setq mes "отсутсвует!") (setq va (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (if (vla-get-hasextensiondictionary va) (progn (setq ext_dict (vla-GetExtensionDictionary va)) (vlax-for vb ext_dict (if (= (vla-get-ObjectName vb) "AcDbGeoData") (progn (vla-delete vb) (setq mes "удалена!") ))))) (print (strcat "Геоинформация " mes)) (prin1) ) (defun c:GEOREMOVE ( / ext_dict vb va) (vl-load-com) (setq mes "отсутсвует!") (setq va (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (if (vla-get-hasextensiondictionary va) (progn (setq ext_dict (vla-GetExtensionDictionary va)) (vlax-for vb ext_dict (if (= (vla-get-ObjectName vb) "AcDbGeoData") (progn (vla-delete vb) (setq mes "удалена!") ))))) (print (strcat "Геоинформация " mes)) (prin1) ) Спасибо за наводку вроде работает.. где есть чистит, где нет пишет отсутствует Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted May 30 Report Share Posted May 30 (edited) 1 час назад, kpblc сказал: А не (equal (vla-get-hasextensiondictionary va) :vlax-true) ? Косяк, однако ... Спойлер (defun c: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) ) Спойлер Georemove.lsp Edited May 30 by EdwardSt 2 Quote Link to comment Share on other sites More sharing options...
kpblc Posted May 30 Report Share Posted May 30 Да не, стандартная достаточно. Я в свое время качественно на этом обжегся Когда начал сравнивать подобные результаты с t / nil вместо :vlax-true / :vlax-false С тех пор только equal, только хардкор 2 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.