VPFREEZE

Então, pra variar um pouco, um´programa para se trabalhar com viewports. è o seguinte, você cria a viewport, congela alguns layers nela com o vpfreeze e tal... depois inventa que precisa o mesmo "estado" dos layers numa outra viewport, ou em "trocentas" delas em outros layouts, bem, como saber quais layers estão congelados? simples, basta pegar os dxf 330 da ELIST da viewport, hehehe... complicou né, certo... faz assim:
mais...
(defun c:svpstate (/ view)
  (
tbn:error-init nil)
  (
if (setq view (ssget ":S" '((0 . "VIEWPORT"))))
    (
setq svpstate:frzc (vl-remove nil
                          (mapcar '(lambda (l)
                                     (
if (= 331 (car l))
                                       (
dxf 2 (cdr l))))
                                  (
entget (ssname view 0))))))
  (
tbn:error-restore))


(
defun c:lvpstate (/ ss)
  (
tbn:error-init nil)
  (
if svpstate:frzc
    (progn
      (prompt "\nSeleciona as viewports onde aplicar o layer_state")
      (
if (setq ss (ssget '((0 . "VIEWPORT"))))
    (
progn
          (vla-put-mspace thisdrawing :vlax-true)
      (
repeat (sslength ss)
        (
setq ent (ssname ss 0))
        (
vla-put-ActivePViewport thisdrawing (vlax-ename->vla-object ent))
        (
command "vplayer" "thaw" "*" "" ""
             "vplayer" "freeze"

             (vl-string-right-trim ","
                       (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) svpstate:frzc)) ) "" "")
        (
ssdel ent ss))))))
  (
tbn:error-restore))


Link(s) da(s) subrotina(s) usada(s):
tbn:error-init, dxf, tbn:error-restore, thisdrawing

É pra ser usado assim: crie a viewport da maneira que lhe convém, use o comando svpstate, ele irá criar uma lista dos layers congelados nesta viewport. Depois, selecione as viewports onde ele irá congelar os mesmos layers e use o comando lvpstate, pronto...
Obs: o primeiro comando cria uma variável global chamada "svpstate:frzc", se você recuperar o seu conteúdo, verá que é uma lista com os nomes dos layers

LinkWithin

Related Posts Plugin for WordPress, Blogger...