Author Topic: if statement to fix error  (Read 1935 times)

0 Members and 1 Guest are viewing this topic.

butzers09silverado

  • Guest
if statement to fix error
« on: October 20, 2011, 01:40:21 PM »
it appears that when the layer is already set to "0" in the drawing we get an invalid layer error... thoughts?


Code: [Select]
(or *vla-AcadObject* (setq *vla-AcadObject* (vlax-get-acad-object)))
(or *vla-ActiveDocument* (setq *vla-ActiveDocument* (vla-get-ActiveDocument *vla-AcadObject*)))
(or *vla-LayersCollection* (setq *vla-LayersCollection* (vla-get-Layers *vla-ActiveDocument*)))

;; Adjust the layer 0
(if (not (vl-catch-all-error-p (setq l (vl-catch-all-apply 'vla-Item (list *vla-LayersCollection* "0")))))
  (progn
    (vla-put-LayerOn l :vlax-true)
    (vla-put-Freeze l :vlax-false)
    (vla-put-Lock l :vlax-false)
  )
)
(setvar 'CLayer "0")

kojacek

  • Mosquito
  • Posts: 14
Re: if statement to fix error
« Reply #1 on: October 20, 2011, 01:47:38 PM »
it appears that when the layer is already set to "0" in the drawing we get an invalid layer error... thoughts?


Code: [Select]
(or *vla-AcadObject* (setq *vla-AcadObject* (vlax-get-acad-object)))
(or *vla-ActiveDocument* (setq *vla-ActiveDocument* (vla-get-ActiveDocument *vla-AcadObject*)))
(or *vla-LayersCollection* (setq *vla-LayersCollection* (vla-get-Layers *vla-ActiveDocument*)))

;; Adjust the layer 0
(if (not (vl-catch-all-error-p (setq l (vl-catch-all-apply 'vla-Item (list *vla-LayersCollection* "0")))))
  (progn
    (vla-put-LayerOn l :vlax-true)
    (vla-put-Freeze l :vlax-false)
    (vla-put-Lock l :vlax-false)
  )
)
(setvar 'CLayer "0")

You can not freeze current layer.

best regards
kojacek

ronjonp

  • Needs a day job
  • Posts: 7529
Re: if statement to fix error
« Reply #2 on: October 20, 2011, 02:19:44 PM »
Maybe move around the catch-all:


Code: [Select]
(if (setq l (tblobjname "layer" "0"))
  (progn (setq l (vlax-ename->vla-object l))
(vl-catch-all-apply 'vla-put-freeze (list l :vlax-false))
(vl-catch-all-apply 'vla-put-lock (list l :vlax-false))
(vl-catch-all-apply 'vla-put-layeron (list l :vlax-true))
(setvar 'clayer "0")
  )
)

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC

butzers09silverado

  • Guest
Re: if statement to fix error
« Reply #3 on: October 24, 2011, 04:36:46 PM »
what kind of slow down do you figure this is causing?

ronjonp

  • Needs a day job
  • Posts: 7529
Re: if statement to fix error
« Reply #4 on: October 24, 2011, 05:30:38 PM »
what kind of slow down do you figure this is causing?

Ummmm ... not sure what you are referring to  :?

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC