PDA

View Full Version : Object in which space in ActiveX method !



rajat_bapi_mallick
2005-12-29, 07:08 AM
Hi !

How do I know that an object is laying on "model space" or "paper space" in ActiveX method ?

Thanks,

Rajat
INDIA

CADmium
2005-12-29, 08:07 AM
try for example this code:


(defun GETOWNERSPACE (OBJ / OBJLAYOUT NAME OWNER)
(if(and(setq OBJ(cond
((=(type OBJ) 'VLA-OBJECT) OBJ)
((=(type OBJ) 'Ename)(vlax-ename->vla-object OBJ))
)
)
(not(vl-catch-all-error-p
(setq OWNER(vl-catch-all-apply
'vlax-invoke-method
(list
(vla-get-ActiveDocument(vlax-get-acad-object))
'ObjectIdToObject
(vla-get-ownerid OBJ)
)
)
)
)
)
(setq NAME(vla-get-name OWNER))
)
(if(not(vl-catch-all-error-p
(setq OBJLAYOUT(vl-catch-all-apply
'vla-get-layout
(list OWNER)
)
)
)
)
(list NAME "= LAYOUT" (vla-get-name OBJLAYOUT))
(list NAME "BLOCK")
)
)
)


call : (GETOWNERSPACE (car(entsel)))

you can also modify the returns..

fixo
2005-12-29, 09:04 AM
Hi !

How do I know that an object is laying on "model space" or "paper space" in ActiveX method ?

Thanks,

Rajat
INDIA

Hi Rajat

Or give this a try:



(defun demo-tab-test (obj / adoc check obj)
(vl-load-com)
(or adoc
(setq adoc (vla-get-activedocument
(vlax-get-acad-object)
)
)
)
(and obj
(not (vl-catch-all-error-p
(setq check
(vl-catch-all-apply
(function (lambda ()
(vla-get-taborder
(vla-get-layout
(vla-objectIdtoobject
adoc
(vla-get-ownerID obj)
)
)
)
)
)
)
)
)
)
)
(if (zerop check)
(alert "Model")
(alert "Paper")
)
)

; CaLL :
(demo-tab-test (vlax-ename->vla-object
(car (entsel
"\n >> Select object \n"))))