ayuda con lisp para corte de perfilería
Publicado por Juanma (157 intervenciones) el 10/02/2023 22:31:14
Buenas,
Estoy tratando de mejorar una lisp que estoy programando, pero no funciona como quiero, y creo que me estoy liando.
La intención es calcular el corte aproximadamente optimo para gastar el mínimo de perfiles.
Adjunto las 3 versiones que llevo hechas, junto con un dwg de muestra, donde se ve como funcionan.
trame: (primera aproximación, hace lo que debe)
ordena de mayor a menor las rectas seleccionadas, y las coloca en ese orden en tramos que sean igual o menores que la longitud de barra seleccionada. no optimiza nada, pero facilita la tarea, ya que al menos ordena, y te muestra donde tienes mas desperdicio, y con un simple desplazamiento vas ajustando a mano.
trame2: (segunda aproximación, hace lo que debe)
Parecida a la anterior, pero cuando la siguiente línea no cabe, busca una (y sólo una) en la lista que si quepa, y la coloca, antes de irse a la siguiente barra. esto tan simple, optimiza mucho el corte, como se ve en el dwg.
trameb: (segunda aproximación, funciona, pero no como debería)
Esta debería hacer lo siguiente; ordenar de mayor a menor, y comenzar a colocar de mayor a menor, pero cuando la siguiente línea ya no cabe, debería buscar la siguiente que quepa, y luego la siguiente, y así hasta que ya no halla ninguna línea en la lista que quepa en el espacio sobrante. ya después de eso, comenzaría la siguiente barra.
Pero aunque funciona a medias, claramente no hace eso.
Estoy tratando de mejorar una lisp que estoy programando, pero no funciona como quiero, y creo que me estoy liando.
La intención es calcular el corte aproximadamente optimo para gastar el mínimo de perfiles.
Adjunto las 3 versiones que llevo hechas, junto con un dwg de muestra, donde se ve como funcionan.
trame: (primera aproximación, hace lo que debe)
ordena de mayor a menor las rectas seleccionadas, y las coloca en ese orden en tramos que sean igual o menores que la longitud de barra seleccionada. no optimiza nada, pero facilita la tarea, ya que al menos ordena, y te muestra donde tienes mas desperdicio, y con un simple desplazamiento vas ajustando a mano.
trame2: (segunda aproximación, hace lo que debe)
Parecida a la anterior, pero cuando la siguiente línea no cabe, busca una (y sólo una) en la lista que si quepa, y la coloca, antes de irse a la siguiente barra. esto tan simple, optimiza mucho el corte, como se ve en el dwg.
trameb: (segunda aproximación, funciona, pero no como debería)
Esta debería hacer lo siguiente; ordenar de mayor a menor, y comenzar a colocar de mayor a menor, pero cuando la siguiente línea ya no cabe, debería buscar la siguiente que quepa, y luego la siguiente, y así hasta que ya no halla ninguna línea en la lista que quepa en el espacio sobrante. ya después de eso, comenzaría la siguiente barra.
Pero aunque funciona a medias, claramente no hace eso.
- trameado.zip(58,3 KB)
Valora esta pregunta


0