C ponto central
4.3.5 Volumes de Deslocamento
Um volume de deslocamento define o volume gerado pela movi- mentação de um objeto arbitrário ao longo de um caminho arbitrário com possíveis rotações arbitrárias (ABDEL-MALEK et al., 2006). O volume de deslocamento de um conjunto arbitrário de pontos 𝑆 ao longo de um ca- minho 𝑀 em um espaço Euclidiano de 𝑑 dimensões é geralmente formu- lado como uma união infinita expressa formalmente como (SULLIVAN et al., 2012):
𝑠𝑤𝑒𝑒𝑝(𝑆, 𝑀 ) = ⋃︁
𝑞∈𝑀
𝑆𝑞 (4.2)
onde 𝑆𝑞 denota o conjunto 𝑆 posicionado de acordo com uma configura- ção 𝑞 do deslocamento 𝑀(𝑡), sendo 𝑡 ∈ [0, 1] o parâmetro de tempo da movimentação. 𝑀(𝑡) define o deslocamento com transformações de cor- pos rígidos. Essas transformações podem ser representadas em matrizes com coordenadas homogêneas:
𝑀 (𝑡) = ⎟ 𝑅(𝑡) 𝑇 (𝑡) 0 . . . 0 1 ⟨ (4.3) onde 𝑅(𝑡) é uma matriz de rotação ortogonal tridimensional 3 × 3 depen- dente do tempo 𝑡, e 𝑇 (𝑡) é um vetor de translação tridimensional também dependente a 𝑡.
Para qualquer conjunto 𝑆 simétrico movendo-se ao longo do ca- minho 𝑀(𝑡), como visto na Figura 4.8a, a distância de um ponto P até a superfície do volume de deslocamento 𝑠𝑤𝑒𝑒𝑝(𝑆, 𝑀(𝑡)) é definida por (SULLIVAN et al., 2012):
𝑑𝑖𝑠𝑡(P, 𝑠𝑤𝑒𝑒𝑝(𝑆, 𝑀 (𝑡))) = inf
𝑞∈𝜕𝑠𝑤𝑒𝑒𝑝(𝑆,𝑀 (𝑡))‖ q ⊗ P ‖ (4.4)
onde 𝜕𝑠𝑤𝑒𝑒𝑝(𝑆, 𝑀(𝑡)) representa os pontos contidos na superfície do volume de deslocamento. Assim, encontrar os campos de distância do volume de deslocamento requer calcular a superfície do volume, que pode ser uma tarefa difícil. Por isso este trabalho faz uso de uma abordagem diferente, onde ao invés de movimentar o volume da peça e manter o
ponto P parado, se move o ponto e mantêm a peça parada. Uma analogia seria ao invés de mover a ferramenta enquanto a peça sendo usinada permanece estática, é movida a peça enquanto a ferramenta permanece parada.
Figura 4.8: Distância de um volume de deslocamento
(a) (b)
Fonte: (SULLIVAN et al., 2012).
Essa nova abordagem está apresentada na Figura 4.8b, onde ao invés de deslocar a ferramenta em uma trajetória 𝑇 , como na Figura 4.8a, é feito o deslocamento do ponto P em uma trajetória inversa definida por:
ˆ
𝑇𝑃 = ¶P𝑏 ♣ 𝑏 ∈ ˆ𝑀 ♢ (4.5)
onde ˆ𝑀 é o deslocamento inverso, ou seja, ˆ𝑀 (𝑡) é a matriz inversa de 𝑀 (𝑡) para todos os valores de 𝑡 (ERDIM; ILIE ¸S, 2008). Assim, para o
mesmo problema descrito pela Equação 4.4, considere a curva da tra- jetória inversa ˆ𝑇𝑃 do ponto P e um conjunto 𝑆. A função de distância mínima de um ponto y na superfície de 𝑆 até um ponto z na trajetória inversa ˆ𝑇𝑃 é então definida como (SULLIVAN et al., 2012):
𝑑𝑖𝑠𝑡(𝑆, ˆ𝑇𝑃) = min
y∈𝜕𝑆,z∈ ˆ𝑇P
Ao usar essa abordagem da trajetória inversa, como mostra a Fi- gura 4.8b, a mesma distância pode ser encontrada sem precisar calcular a superfície do volume de deslocamento, ou seja:
𝑑𝑖𝑠𝑡(P, 𝑠𝑤𝑒𝑒𝑝(𝑆, 𝑀 (𝑡))) = 𝑑𝑖𝑠𝑡(𝑆, ˆ𝑇𝑃) (4.7)
Essa identidade pode então ser usada para simplificar o cálculo do volume de deslocamento, pois ao invés de buscar a distância de um ponto até a superfície do volume de deslocamento, basta encontrar a me- nor distância do ponto em movimento ( ˆ𝑀 (𝑡)) com a superfície do volume
estático (𝑀(0)).
A Seção 4.3.5.1 descreve como usar essa abordagem para en- contrar a distância entre um ponto e o volume de deslocamento de uma esfera com movimentação linear de forma analítica. Já a Seção 4.3.5.2 apresenta uma solução para distância entre um ponto e um volume de deslocamento de um cilindro com movimentação linear usando métodos numéricos iterativos.
4.3.5.1 Esfera com Movimentação Linear
Usando a propriedade da Equação 4.7 é possível simplificar o problema da distância entre um ponto arbitrário e um volume de desloca- mento se movendo linearmente. Assim, basta encontrar a menor distância entre um segmento de reta e o volume em sua posição original.
Essa simplificação é importante pois ela permite encontrar a me- nor distância entre um segmento de reta e uma esfera de forma analítica e eficiente. Dada uma esfera com o centro c e raio 𝑟, se deslocando com
cia entre um ponto p e a esfera é dada com a seguinte equação: 𝑡0= ( ˆ𝑇 ≤ (c ⊗ p))/( ˆ𝑇 ≤ ˆ𝑇 ), 𝑡1= ∏︁ ⋁︁ ⨄︁ ⋁︁ ⎩ 0 caso 𝑡0⊘ 0, 1 caso 𝑡0⊙ 1, 𝑡0 caso contrário., 𝑑𝑖𝑠𝑡(𝑆𝑒, p) = √︁ (p + ˆ𝑇 𝑡1) ≤ (p + ˆ𝑇 𝑡1) ⊗ 𝑟 (4.8)
onde 𝑆𝑒é o volume de deslocamento da esfera se movendo com a trans- formação 𝑇 (𝑡), e ˆ𝑇 é a transformada inversa de 𝑇 (1). A matriz 𝑀 (𝑡)
usada na Seção 4.3.5 foi simplificada para o vetor de translação 𝑇 (𝑡) pois a esfera está se deslocando de forma linear. Assim, a transformada in- versa ˆ𝑇 é apenas a negação dos valores de 𝑇 (1).
4.3.5.2 Cilindro com Movimentação Linear
A função de distância entre um ponto e um volume de desloca- mento de um cilindro se movimentando de forma linear também pode ser simplificada usando a Equação 4.7. Essa simplificação transforma a fun- ção de distância de forma que ela retorna a menor distância entre um segmento de reta e um cilindro.
Dado um cilindro 𝑆𝑐com sua posição descrita pelo vetor de trans- lação 𝑇 (𝑡) onde 𝑡 ∈ [0, 1], e um ponto p qualquer, a menor distância entre os dois é definida por:
𝑑𝑖𝑠𝑡(𝑆𝑐, p) = min
𝑡∈[0,1](𝑑𝑖𝑠𝑡(𝑆0, p + ˆ𝑇 (𝑡))) (4.9)
onde 𝑆0é o cilindro 𝑆𝑐na posição 𝑇 (0), e ˆ𝑇 (𝑡) é a transformada inversa
de 𝑇 (𝑡).
A Equação 4.9 descreve um sistema de minimização com uma variável 𝑡 ∈ [0, 1]. O algoritmo de Brent (1973), que é um método nu- mérico para solucionar equações lineares, foi usado neste trabalho para encontrar o valor de 𝑡 que retorna a menor distância.
4.4 Representação Discreta da Função de Distância
A Seção 4.3 apresentou funções de distância implícitas e con- tínuas para as superfícies dos volumes das fresas e da peça inicial. A Seção 4.3.5 mostrou funções de distância para os volumes de desloca- mento das ferramentas. Essas funções são então usadas para fazer a criação dos volumes que serão organizados em uma VDB e usados du- rantes a simulação de usinagem. Uma característica da VDB é que ela armazena voxels nos nós folhas, assim, é necessário a transformação das funções de distância contínuas em representações discretas.
Representações discretas de funções de distância contínuas são geralmente obtidas tirando amostras da função em intervalos regulares (SHIRLEY; MARSCHNER, 2009). O problema com essa abordagem é que diversas amostras distantes da superfície são avaliadas. Como ape- nas campos de distâncias próximos à superfície são armazenados em um narrow-band level set, essas amostras distantes introduzem custos computacionais desnecessários.
Esta seção apresenta três soluções para seleção das amostras a serem usadas para criação dos narrow-band level sets. A Seção 4.4.1 apresenta uma otimização para amostragens regulares. A Seção 4.4.2 descreve uma solução que busca avaliar funções de distância pertencen- tes apenas a narrow-band. Ambas abordagens anteriores apresentam algoritmos que não levam em consideração as características da forma geométrica, porém essas podem ser úteis para redução no número de amostras, como na solução da Seção 4.4.3, onde é apresentada uma técnica para geração de amostras para cilindros.