LISP - Criar uma função que percorra todos os elementos e arredonde os pares de coordenadas

LISP - Criar uma função que percorra todos os elementos e arredonde os pares de coordenadas

higorigorsantosGUBFF
Explorer Explorer
350Exibições
1Resposta
Mensagem 1 de 2

LISP - Criar uma função que percorra todos os elementos e arredonde os pares de coordenadas

higorigorsantosGUBFF
Explorer
Explorer

Tenho uma dúvida: o AutoCAD possui alguma função que corrige automaticamente as coordenadas dos elementos para valores arredondados, ou isso só pode ser feito usando LISP? Caso só seja possível com LISP, gostaria de entender qual é o problema no código anexado.


(defun c:ArredondarCoord ()
(setq ent (entsel "\nSelecione a polilinha: "))
(setq pl (car ent))
(setq data (entget pl))
(setq pontos (vl-remove-if-not '(lambda (x) (and (eq (type x) 'list) (= (car x) 10))) data))
(foreach ponto pontos
(setq coords (cdr ponto))
(setq nova-coord (mapcar 'fix coords))
(setq data (subst (cons 10 coords) ponto data)))
(entmod data)
(princ "Coordenadas arredondadas!"))

Estou trabalhando em um projeto em que as coordenadas estão todas com valores quebrados. Por exemplo, uma polilinha começa em X=1.215165, Y=2.812032, e eu gostaria de corrigir essas coordenadas para X=1.000000, Y=3.000000. Criei o comando anexado, mas ele não está funcionando como esperado.

Existe algum outro comando que também permita fazer isso com diferentes tipos de elementos, como retângulos, linhas ou até pontos de referência dos blocos?

0 Curtidas
351Exibições
1Resposta
Respostas (1)
Mensagem 2 de 2

hmsilva
Mentor
Mentor

@higorigorsantosGUBFF 

já respondi no teu post anterior...

 

Quanto a um comando nativo de AutoCAD, não existe.

Poderás sempre escrever uma rotina para fazer a substituição das coordenadas.

 

Espero que ajude

Henrique

EESignature