Get-ActiveSpace

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