Algumas pessoas já descobriram as funcionalidades das funções Activex, por exemplo: Vla-AddLine, para adicionar uma linha... Muito bem, todos este métodos do tipo "adição" de entitade, e muitos outros, requerem como primeiro argumento "ONDE" adicionar a entidade... no Model, Paper, onde inserir?
Quem usa o entmake (ou mesmo o command) para criar entidades, normalmente não se preocupa se está no model ou no paper, muitos nem sabem qual dxf colocar na lista para que a entidade vá parar num lugar ou outro...
Voltando ao assunto: as vezes você quer inserir a linha no "Space" que a pessoa tiver, seja ela o model ou o paper, mas você que usar os métodos activex, como saber em que espaço ela está? e mais você precisará o VLA-OBJECT deste "Space"...
É isso que esta rotina faz: detecta em qual space ela está e devolve o VLA correspondente... isso é especialmente útil se a pessoa esta no paper space com uma viewport ativa e consequentemente desenhando no model
aí está
(defun get-activespace (/ this)
(setq this (vla-get-activedocument
(vlax-get-Acad-Object)))
(if (= (vla-get-activespace this) 1)
(vla-get-ModelSpace this)
(if (= :vlax-true (vla-get-mspace this))
(vla-get-ModelSpace this)
(vla-get-PaperSpace this))))
Nenhum comentário:
Postar um comentário