(defun c:plan-verificar ()
;----------------------------------------------------------------------------------------------------------------
; Verificar e criar layer
(if (= nil (tblsearch "layer" "0-CORRIGIR"))
(command "layer" "_n" "0-CORRIGIR" "_C" 2 "0-CORRIGIR" ""))
;----------------------------------------------------------------------------------------------------------------
; Verificar poligonos abertos
(setq quantcorrigir 0 )
(setq vlimites (ssget "_x" (list (cons 8 "LIMITE_CTO"))))
(setq quantlimites (sslength vlimites))
(setq cont8 0)
(repeat quantlimites
(progn
(setq entname (ssname vlimites cont8))
(setq valor (entget entname))
(setq valor70 (cdr (assoc 70 valor )))
(setq cont8 (+ cont8 1))
(setq vl (vlax-ename->vla-object (entlast)))
(vlax-put-property vl "Closed" :vlax-true) ;changes it to -1
(if (= valor70 0 )
(command "_change" "si" entname "P" "_LA" "0-CORRIGIR" "_LW" "0.5" ""))
))
(setvar "LWDISPLAY" 1 )
(setq vlimites1 (ssget "_x" (list (cons 8 "0-CORRIGIR"))))
(if (/= vlimites1 nil )
(setq quantcorrigir (sslength vlimites1)))
)
)
@edsaqueteAG5Q7 wrote:
Como consigo alterar as variaveis "cloused" de "no" para "yes", tentei usar o pedi para não deu certo.
Acho que com os comandos VL da certo mais não tenho conhecimento deles ainda.
Olá @edsaqueteAG5Q7 talvez algo assim...
(defun c:demo ( / edata i ss x)
;; Verificar se existem poligonos abertos no layer LIMITE_CTO
(if (setq ss (ssget "_X"
'((0 . "LWPOLYLINE")
(8 . "LIMITE_CTO")
(-4 . "<NOT")
(-4 . "&")
(70 . 1)
(-4 . "NOT>")
)
)
)
(progn
;; Verificar se existe e criar layer
(if (null (tblsearch "layer" "0-CORRIGIR"))
(entmake '((0 . "LAYER")
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbLayerTableRecord")
(2 . "0-CORRIGIR")
(70 . 0)
(62 . 2)
)
)
)
;;proceder à correção dos poligonos
(setq x (sslength ss))
(repeat (setq i x)
(setq edata (entget (ssname ss (setq i (1- i)))))
(setq edata (entmod (subst '(8 . "0-CORRIGIR") (assoc 8 edata) edata)))
(setq edata (entmod (subst (cons 70 (1+ (cdr (assoc 70 edata)))) (assoc 70 edata) edata)))
(if (assoc 370 edata)
(entmod (subst '(370 . 50) (assoc 370 edata) edata))
(entmod (append edata (list (cons 370 50))))
)
)
(setvar 'LWDISPLAY 1)
(alert
(cond ((> x 1)
(strcat "Foram colocados no layer 0-CORRIGIR "
(itoa x)
" poligonos!"
)
)
(T "Foi colocado no layer 0-CORRIGIR 1 poligono!")
)
)
)
(alert "Não existem poligonos a corrigir!")
)
(princ)
)
Espero que ajude
Henrique
@edsaqueteAG5Q7 wrote:
Como consigo alterar as variaveis "cloused" de "no" para "yes", tentei usar o pedi para não deu certo.
Acho que com os comandos VL da certo mais não tenho conhecimento deles ainda.
Usando Visual LISP...
(defun c:demo1 (/ adoc i layobj obj ss x)
(if (setq ss (ssget "_X" '((0 . "LWPOLYLINE")(8 . "LIMITE_CTO")(-4 . "<NOT")(-4 . "&")(70 . 1)(-4 . "NOT>"))))
(progn (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(setq layobj (vla-Add (vla-get-Layers adoc) "0-CORRIGIR"))
(vlax-put-property layobj 'Color 2)
(setq x (sslength ss))
(repeat (setq i x)
(setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
(vla-put-layer obj "0-CORRIGIR")
(vla-put-closed obj :vlax-true)
(vla-put-lineweight obj acLnWt050)
)
(vla-SetVariable adoc "LWDISPLAY" 1)
(alert
(cond ((> x 1)
(strcat "Foram colocados no layer 0-CORRIGIR " (itoa x) " poligonos!")
)
(T "Foi colocado no layer 0-CORRIGIR 1 poligono!")
)
)
)
(alert "Não existem poligonos a corrigir!")
)
(princ)
)
Espero que ajude
Henrique
Não encontrou o que está procurando? Pergunte à comunidade ou compartilhe seu conhecimento.