Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

Lisp para modificar texto mediante quantidade de blocos selecionados

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Responder
Avatar do usuário
luislhss
Concreto
Concreto
Mensagens: 66
Registrado em: Ter 23 Out 2007 11:00:00 pm

Lisp para modificar texto mediante quantidade de blocos selecionados

Mensagem por luislhss » Seg 28 Out 2019 9:38:48 am

Bom dia a todos!

construir essa lisp para somar a quantidade de determinado blocos e a partir da quantidade modificar um valor mediante a quantidade de blocos contados.

(defun c:ads (/ selecao ss soma s1 s2 dia ennew)

(prompt "\nSelecione os bicos: ")

(while
(setq selecao (ssget '( (0 . "INSERT"))))
(setq ss (ssget "P" '((0 . "INSERT") (2 . "SPK_P"))))
(setq soma (sslength ss))



(setq s1 (entget (car (entsel "\nSelecion o diâmetro a ser alterado: "))))
(assoc 1 s1)
(setq s2 (cdr (assoc 1 s1)))


(IF (<= soma 2)
(progn
(setq dia "ø1''")
)
)

(IF (and (> soma 2) (<= soma 3))
(progn
(setq dia "ø1.1/4''")
)
)

(IF (and (> soma 3) (<= soma 5))
(progn
(setq dia "ø1.1/2''")
)
)

(IF (and (> soma 5) (<= soma 10))
(progn
(setq dia "ø2''")
)
)

(IF (and (> soma 10) (<= soma 20))
(progn
(setq dia "ø2.1/2''")
)
)

(IF (and (> soma 20) (<= soma 40))
(progn
(setq dia "ø3''")
)
)

(IF (and (> soma 40)(<= soma 100))
(progn
(setq dia "ø4''" )
)
)

(IF (and (> soma 100)(<= soma 275))
(progn
(setq dia "ø6''")

)
)


(setq ennew (subst (cons 1 dia) (assoc 1 s1) s1))
(entmod ennew)

(command "_.select" selecao "P")
(setq soma1 (ssget "P"))
(setq somaTot (+ soma soma1))

)

(PRINC)
)


porem...quando tendo continuar a soma já somando com os blocos que já foram contados, da erro possivelmente nas ultimas linhas:

(command "_.select" selecao "P")
(setq soma1 (ssget "P"))
(setq somaTot (+ soma soma1))

o que posso estar fazendo de errado?

sou bem fraco em recursividade.

Responder