ERASE LAST OBJECT

ERASE LAST OBJECT

rolisonfelipe
Collaborator Collaborator
1,366 Views
9 Replies
Message 1 of 10

ERASE LAST OBJECT

rolisonfelipe
Collaborator
Collaborator

(DEFUN SELECT ()
(command "_UNDO" "_BEGIN")
(if SALVA (SALVA (list "OSMODE" "CLAYER" "TEXTSTYLE")))
(setvar "OSMODE" 0)
(setq VVBL "STANDARD-AMBIENTE")
(VERIFICA-VVBL VVBL)
(setq FLAGX T)
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: "));;; SELECT THE POLIGON
(while FLAGX
(setq FLAGA T)
(while FLAGA
(if (NOT ENTS1) (progn (setq FLAGA nil)(setq FLAGX nil)))
(if FLAGX
(progn
(setq ENT1 (car ENTS1))
(setq PT1 (cadr ENTS1))
(setq LL1 (ENTGET ENT1)), SELETIONS
(setq TIPO (cdr (ASSOC 0 LL1)))
(if (OR (= TIPO "LWPOLYLINE")(= TIPO "REGION"));;; OBJECT CALL
(setq FLAGA nil)
(ALERT "OBJETO SELECIONADO NÃO É UM POLIGONO!") ))))
(if FLAGX (progn (command "_AREA" "_O" ENT1);;;CALL AREA
(setq VVAREA (strcat (rtos (GETVAR "AREA") 2 2) "m²"));;; ÁREA DESIGNER
(setq VCENT (EXECUTAR-CENTROID ENT1));;;;; CALL CENTER AREA
(command "_INSERT" VVBL VCENT ESCALA "" "" VVAREA NIVEPR (NTH (ATOI NLA) LLAREA2) (NTH (ATOI NLR) LLREVE2) ) ;;; INSERT BLOCK NAME ROM/AREA/
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))));;;; NEXT AREA, I LIKE IN THIS POINT ERASE LAST OBJECT " ENTS1",, IT IS OBJECT LIMIT ONLY FOR CALL..
(if RESTAURA (RESTAURA))
(command "_UNDO" "_END"))

0 Likes
Accepted solutions (2)
1,367 Views
9 Replies
Replies (9)
Message 2 of 10

ВeekeeCZ
Consultant
Consultant
Accepted solution

Using just 

(entdel ents1)

is not working for you ?

🤔

0 Likes
Message 3 of 10

rolisonfelipe
Collaborator
Collaborator

(if FLAGX (progn (command "_AREA" "_O" ENT1)
(setq VVAREA (strcat (rtos (GETVAR "AREA") 2 2) "m²"))
(setq VCENT (EXECUTAR-CENTROID ENT1))
(command "_INSERT" VVBL VCENT ESCALA "" "" VVAREA NIVEPR (NTH (ATOI NLA) LLAREA2) (NTH (ATOI NLR) LLREVE2) )
(entdel ENTS1)
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))))
(if RESTAURA (RESTAURA))
(command "_UNDO" "_END"))

 

 

ERRO : bad argument type: lentityp (<Entity name: -25df80> (1615.0 654.89
0.0))

0 Likes
Message 4 of 10

ВeekeeCZ
Consultant
Consultant

ohhh, it should be just ENT1

0 Likes
Message 5 of 10

hak_vz
Advisor
Advisor
(entdel (entlast))
;or in your case  there is an error
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: "))
;replace with
(setq ENTS1 (CAR(ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))

Miljenko Hatlak

EESignature

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
0 Likes
Message 6 of 10

rolisonfelipe
Collaborator
Collaborator

(DEFUN SELECT (); ORIGINAL LSP
(command "_UNDO" "_BEGIN")
(if SALVA (SALVA (list "OSMODE" "CLAYER" "TEXTSTYLE")))
(setvar "OSMODE" 0)
(setq VVBL "STANDARD-AMBIENTE")
(VERIFICA-VVBL VVBL)
(setq FLAGX T)
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: "))
(while FLAGX
(setq FLAGA T)
(while FLAGA
(if (NOT ENTS1) (progn (setq FLAGA nil)(setq FLAGX nil)))
(if FLAGX
(progn
(setq ENT1 (car ENTS1))
(setq PT1 (cadr ENTS1))
(setq LL1 (ENTGET ENT1))
(setq TIPO (cdr (ASSOC 0 LL1)))
(if (OR (= TIPO "LWPOLYLINE")(= TIPO "REGION"))
(setq FLAGA nil)
(ALERT "OBJETO SELECIONADO NÃO É UM POLIGONO!") )))
(if FLAGX (progn (command "_AREA" "_O" ENT1)
(setq VVAREA (strcat (rtos (GETVAR "AREA") 2 2) "m²"))
(setq VCENT (EXECUTAR-CENTROID ENT1))
(command "_INSERT" VVBL VCENT ESCALA "" "" VVAREA NIVEPR (NTH (ATOI NLA) LLAREA2) (NTH (ATOI NLR) LLREVE2))
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))))
(if RESTAURA (RESTAURA))
(command "_UNDO" "_END"))

 

 

 

(DEFUN SELECT (); ORIGINAL LSP
(command "_UNDO" "_BEGIN")
(if SALVA (SALVA (list "OSMODE" "CLAYER" "TEXTSTYLE")))
(setvar "OSMODE" 0)
(setq VVBL "STANDARD-AMBIENTE")
(VERIFICA-VVBL VVBL)
(setq FLAGX T)
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: "))
(while FLAGX
(setq FLAGA T)
(while FLAGA
(if (NOT ENTS1) (progn (setq FLAGA nil)(setq FLAGX nil)))
(if FLAGX
(progn
(setq ENT1 (car ENTS1))
(setq PT1 (cadr ENTS1))
(setq LL1 (ENTGET ENT1))
(setq TIPO (cdr (ASSOC 0 LL1)))
(if (OR (= TIPO "LWPOLYLINE")(= TIPO "REGION"))
(setq FLAGA nil)
(ALERT "OBJETO SELECIONADO NÃO É UM POLIGONO!") )))
(entdel (entlast))) ;;;AT THIS POINT THE SELECTED "ETS1" OBJECT IS DELETED. BUT DOES NOT ALLOW THE INFORMATION TO BE CAPTURED TO TRANSMIT TO THE BLOCK.
(if FLAGX (progn (command "_AREA" "_O" ENT1)
(setq VVAREA (strcat (rtos (GETVAR "AREA") 2 2) "m²"))
(setq VCENT (EXECUTAR-CENTROID ENT1))
(command "_INSERT" VVBL VCENT ESCALA "" "" VVAREA NIVEPR (NTH (ATOI NLA) LLAREA2) (NTH (ATOI NLR) LLREVE2))

(entdel (entlast))) ;;;;IF I ADD AT THIS POINT HE READ THE SELECTED OBJECT INSERT THE BLOCK, KEEP THE SELECTED OBJECT AND NEXT THE BLOCK NEXT.
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))))
(if RESTAURA (RESTAURA))
(command "_UNDO" "_END"))

 

 

(setq ENTS1 (CAR(ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))

WITH THAT FRAGMENT OF THE ERROR 

0 Likes
Message 7 of 10

rolisonfelipe
Collaborator
Collaborator

I NEED THE YELLOW LINE TO BE DELETED AFTER THE SELECTION AND THEN THE BLOCK IS INSERTED.

 

(DEFUN SELECT ()
(command "_UNDO" "_BEGIN")
(if SALVA (SALVA (list "OSMODE" "CLAYER" "TEXTSTYLE")))
(setvar "OSMODE" 0)
(setq VVBL "STANDARD-AMBIENTE")
(VERIFICA-VVBL VVBL)
(setq FLAGX T)
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: "))
(while FLAGX
(setq FLAGA T)
(while FLAGA
(if (NOT ENTS1) (progn (setq FLAGA nil)(setq FLAGX nil)))
(if FLAGX
(progn
(setq ENT1 (car ENTS1))
(setq PT1 (cadr ENTS1))
(setq LL1 (ENTGET ENT1))
(setq TIPO (cdr (ASSOC 0 LL1)))
(if (OR (= TIPO "LWPOLYLINE")(= TIPO "REGION"))
(setq FLAGA nil)
(ALERT "OBJETO SELECIONADO NÃO É UM POLIGONO!") )(entdel (entlast)))))
(if FLAGX (progn (command "_AREA" "_O" ENT1)
(setq VVAREA (strcat (rtos (GETVAR "AREA") 2 2) "m²"))
(setq VCENT (EXECUTAR-CENTROID ENT1))
(command "_INSERT" VVBL VCENT ESCALA "" "" VVAREA NIVEPR (NTH (ATOI NLA) LLAREA2) (NTH (ATOI NLR) LLREVE2))
(setq ENTS1 (ENTSEL "\n>>Selecione um poligono <ENTER=Fim>: ")))))
(if RESTAURA (RESTAURA))
(command "_UNDO" "_END"))

0 Likes
Message 8 of 10

hak_vz
Advisor
Advisor
Accepted solution

@rolisonfelipeYou can not access property of an deleted object. So take object area, store it to same variable and than erase it.

 

Miljenko Hatlak

EESignature

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
0 Likes
Message 9 of 10

rolisonfelipe
Collaborator
Collaborator

IN THE RIGHT PLACE, THIS FRAGMENT DID EXACTLY WHAT IT NEEDED. I LEARNED ONE MORE VARIABLE "entdel"

THANK YOU

0 Likes
Message 10 of 10

rolisonfelipe
Collaborator
Collaborator

I have not yet taken the way of storing variable, but I try to follow the logic without understanding what is being proposed, liguage opener like this allow me to adapt and create new functions, but when using vl-xxxx is much more compact and complex any modification, because there is no room for maneuver is all more specific, but thanks for inluminating my walk of knowledge

 

 

Solved: Copy attribute - Autodesk Community - AutoCAD this lsp  is one variation 

0 Likes