Coordenadas extremas

Esta rotina calcula as coordenadas mínima e máxima de uma lista de pontos.

O interessante dela, é que ela implementa as funções MAX e MIN do autolisp duma forma um pouco estranha…. explico: normalmente estaríamos tentados a escrever simplesmente:
(apply ‘min (mapcar ‘car lpt))
para calcular a coordenadas X mínima desta lista de pontos… e funciona!!! na maioria das vezes, mas não em todas.. alguem sabe dizer por que? o que acontece se tivermos mais de 256 pontos na lista? dá erro!!! isso eu observei no cad2000, ja no 2007 não deu erro algum… alguem já percebeu algo parecido?

em fim, a rotina que eu uso é assim:


(defun get-max-min-corners (lpt / ptmin ptmax)
(
setq ptmin (car lpt) ptmax ptmin)
(
foreach pt lpt
(setq ptmin (mapcar min ptmin pt)
ptmax (mapcar max ptmax pt)))
(
list ptmin ptmax))


lpt é a lista de pontos

Deixe um comentário

Carrinho de compras
Rolar para cima