Jump to content

"Конус"-Геомаркер в ПСК. Как убрать?


Recommended Posts

Прилетел чертеж от смежников

Не пойму, как отключить эту красоту?

image.png.7acaf1af5fbdbdfb096bad7408742ec2.png

ПСК конус.dwg

Edited by doctorraz
Теперь узнал, как эта фигня называется)))
  • Sad 1
Link to comment
Share on other sites

  • doctorraz changed the title to "Конус"-Геомаркер в ПСК. Как убрать?
  • 1 year later...

С отключением переменной отключается только видимость маркера, но информация в чертеже остается.

Накидал маленький скрипт для удаления маркера

(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)
  )

 

На приложенном примере вроде сработало.

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

Posted (edited)
59 минут назад, EdwardSt сказал:

Накидал маленький

Вот спасибо!!!

А то пока нанодев с GEOREMOVE разродится, все на пенсии будем

Edited by doctorraz
  • Like 1
Link to comment
Share on other sites

3 минуты назад, doctorraz сказал:

GEOREMOVE

Вот и имя команды более вразумительное нарисовалось)

Надеюсь, что столь варварский метод не удалит чонить лишнего...

Link to comment
Share on other sites

@EdwardSt, я не знаю как в нанокаде, а в акаде vla-getextensiondictionary гарантированно создавал словарь. Чтоб не создавать, приходилось предварительно проверять наличие словаря через vla-get-hasextensiondictionary

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

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)
  )

 

 

Спасибо за наводку

  • Like 1
Link to comment
Share on other sites

Спойлер
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)
  )

 

 

Спасибо за наводку

вроде работает..

где есть чистит,  где нет пишет отсутствует

 

Link to comment
Share on other sites

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)
  )

 

 

Спойлер

image.png

 

Georemove.lsp

 

 

Edited by EdwardSt
  • Like 2
Link to comment
Share on other sites

Да не, стандартная достаточно. Я в свое время качественно на этом обжегся :) Когда начал сравнивать подобные результаты с t / nil вместо :vlax-true / :vlax-false :) С тех пор только equal, только хардкор ;)

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...