Polyne - Closed - Yes No

edsaqueteAG5Q7
Enthusiast
Enthusiast

Polyne - Closed - Yes No

edsaqueteAG5Q7
Enthusiast
Enthusiast

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.

0 Curtidas
Responder
382Exibições
3Respostas
  • Lisp
Respostas (3)

edsaqueteAG5Q7
Enthusiast
Enthusiast

(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)))



)

)

0 Curtidas

hmsilva
Mentor
Mentor

@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

EESignature

0 Curtidas

hmsilva
Mentor
Mentor

@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.


@edsaqueteAG5Q7 

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

EESignature

0 Curtidas