Comando de posicionamento

7 respostas
P

:smiley: ola pessoal eh o seguinte

preciso urgentemente de um comando com o qual possa posicionar peças automaticamente em um local de forma que o comando faça com que aconteça tudo automatico .

assim por exemplo: tenho uma chapa de mdf de tal diametro, e quero utliza-la para cortar em outras peças de tamanhos diferentes (vamos supor 6 tamanhos diferentes) e tenho de posicionar as peças na chapa de mdf de forma que economize o maximo de madeira possivel, sendo que o computador ajusta td automaticamente sozinho, ele ajusta a posiçao das peças. o restante do comando eu ja sei, só não sei o comando para posiciona-las de forma que aproveitem o maximo possivel da madeira.

ajudem-me por favor

7 Respostas

dudaskank

Explique-se melhor…

elcapote

eh nao deu pra enteder nada mesmo!

vc quer fazer oque?

P

pronto agora da pra entender melhor olhem la no começo

ViniGodoy

Você só está pedindo um dos mais complexos problemas matemáticos já criados pelo homem.

peczenyj

Eu ja resolvi um problema parecido usando derivadas.

É o caso de fazer pesquisa operacional?

P

peczenyj, meu amigo, para que você tenha uma noção do que quero, veja em www.cortecerto.com.br, é um sistema de otimização de corte ele posiciona as peças de acordo com o tamanho da chapa de madeira, de forma a aproveitar o máximo, estamos procurando uma idéia de como o sistema pode posicionar as peças,

se tiveres algum exemplo manda pra nós.

abraço

peczenyj

Cara, assim.

Quando eu fazia o curso de bacharelado em Física na UFRGS eu tive a disciplina de Calculo I.

No fim do semestre entramos no capitulo de otimização. Basicamente era o seguinte: se vc tem uma função que receba um parâmetro e, como resposta vc tem a quantidade que vc deseja maximizar, bastaria encontrar o máximo dessa função via derivadas.

ex: Vc tem X metros de uma peça de metal e quer fazer um quadrilatero com ela de forma a ter a maior área possivel.

area = ladoA * lado B

porem, 2*(ladoA + ladoB) é um valor constante, que é a largura da sua peça. logo

2*(ladoA + ladoB) = X
(ladoA + ladoB) = X/2
ladoA = X/2 - ladoB

area = ladoA * lado B , então
area = ( X/2 - ladoB) * lado B
area = -ladoB^2 + (X/2)ladoB

Agora, para entrar num formato mais interessante

area(ladoB) = -ladoB^2 + (X/2)ladoB

o que eu fiz: baseado na constante X eu tenho uma função entre a área e o ladoB (poderia ser o ladoA, tanto faz). Eu tenho que encontrar o maior valor possivel de area para qq tamanho de lado (perceba que eu não posso qualquer valor de lado…)

Para encontrar o maximo, vc faz a derivada da area em relação ao ladoB

d (area) / d(ladoB) = -2 (ladoB) + X/2

é capaz de vc perguntar, o que diabos isso me informa. pois bem, a derivada é uma medida de variação. o ponto maximo (ou minimo) de uma função tem valor 0, pois geometricamente a derivada retorna a inclinação de uma reta tangente aquele ponto.

resumindo, se d (area) / d(ladoB) = 0, vc encontra o ladoB que informa o máximo de area

-2 (ladoB) + X/2 = 0

X/2 = 2ladoB
X/4 = ladoB

como
ladoA = X/2 - ladoB
ladoA = X/2 - X/4 = X4

Ou seja, um quadrado de perimetro X tem a maior area, nesse caso.

Infelizmente o seu problema dificilmente sera resolvido com uma função de uma variavel. Vai requerer um trabalho extra em, talvez, ler um pouco sobre pesquisa operacional.

edit: fiz um grafico rapido, f(x) é a função area e o eixo x é, na verdade, o tamanho do ladoB, e a soma dos lados vale 5.

o ponto que a seta mostra é o maximo de area, quando ambos os lados tem o mesmo valor, isto é, 1.25


Criado 20 de março de 2008
Ultima resposta 24 de mar. de 2008
Respostas 7
Participantes 5