As entranhas dos sistemas de CAD

É óbvio que se tem falado muito sobre o kernel dos sistemas de CAD nos últimos tempos. Grande parte desta conversa vem de encontro aos rumores em torno da Dassault Systèmes que esteja a alterar o kernel da SoliWorks, na minha opinião acho que a Dassault Systèmes não tem intensões de alterar o kernel, mas sim desenvolver um novo sistema com um novo kernel.
Então qual é a grande importância do kernel de um modelo CAD 3D, e porque é que importante o kernel que está funcionar num determinado sistema de CAD. A primeira questão pode ser, que o kernel afecta na modelação CAD 3D e por sua vez como afecta a capacidade no desenho técnico do produto desenvolvido e isto pode ser devido a bastantes factores.
De uma forma bastante simples o kernel do sistema de CAD é o coração do modelo 3D, pelo que recebe processos de instruções e produz resultados, sendo claro que os resultados são normalmente modelos CAD 3D. E todo o kernel de um sistema de CAD comercial no mercado tem características muito próprias e é diferente dos outros em muitas outras maneiras.
● As instruções ou as funções que o kernel irá aceitar são muito específicos para de cada kernel, além disso a cada conjunto de acções tem uma função específica de parâmetros ou operadores para esse kernel, e essas funções têm naturalmente de ser apresentada ao kernel no formato adequado, pelo que não existem padrões para as funções ou instruções para os kernel em geral.
● O Kernels pode definir de muitas formas diferente e a mesma geometria de um modelo CAD 3D, alguns kernels podem compreender a geometria do modelo CAD analiticamente, e alguns compreendem B-Splines, e outros compreendem NURBS, e assim por diante. Alguns podem entender todos os anteriores e sabem como unir as diferentes definições, e não existem padrões de como os kernels se podem misturar e juntar as várias definições.
● A modelação CAD 3D dos kernels pode funcionar para a diferentes resoluções ou precisões na resolução da geometria do modelo. Alguns kernels são mais estáveis e com uma resolução baixa, enquanto outros kernels são mais estáveis com uma resolução alta, mas a maioria dos kernels fornecem uma geometria do modelo CAD ajustável à resolução e com o controlo do respectivo sistema de CAD normalmente, e não existe nenhum padrão para a resolução do modelo CAD
● O kernel pode também calcular os resultados do modelo CAD de uma forma bastante diferente. Talvez a forma mais fácil de demonstrar isso é com recursos simples, como o boleado ou chanfro. Cada kernel calcula a região de um determinado vértice de uma forma diferente, sendo bastante visível, e não existe um padrão para o cálculo deste tipo de modelos CAD. Abaixo pode-se ver da IMAGEM01 à IMAGEM04 de alguns sistemas de CAD conhecidos no mercado actual, e os modelos CAD nas imagens apresentam diferenças nas topologias. Podendo-se ver perfeitamente como superfícies planares são afectadas de forma diferente. E através deste tipo exemplos uma pessoa pode facilmente verificar que tipo de sistema de CAD foi utilizado no desenvolvimento de uma determinado produto, por uma simples observação das arestas boleadas.
 imagem01
IMAGEM01
 imagem02
IMAGEM02
 imagem03
IMAGEM03
 imagem04
IMAGEM04
Estas são algumas das grandes diferenças, havendo muitas mais especialmente na definição da modelação de superfícies livres.
Então a importância tem o kernel no processo de desenvolvimento de produtos. É que quando se está a trabalhar num sistema de CAD normalmente tem-se duas camadas de informação. A camada superior é a definição de recurso incluindo qualquer importação ou não-ordenada da geometria 3D, desenhos 2D, parâmetros e outras funções dos recursos de modelação, essa é a intensão do desenho técnico ou seja a árvore da história do modelo. Sobre a camada inferior é a geometria resultante mas claro que com modelação directa livre tudo que um modelo CAD possui é a camada inferior. Ao mover dados de um modelo CAD de um kernel para outro ambas as camadas têm de ser consideradas.
Vamos considerar a camada de cima como a primeira, para simplificar bastante pelo que é mais complexo. E para a modelação livre não é necessário preocupar com esta camada, seguindo logo para a camada inferior. Um sistema de CAD baseado na história da raiz paramétrico está basicamente a gravar as todas as funções e enviar para o kernel e depois para o histórico da raiz do modelo e estas funções do kernel são empacotadas para definir um recurso paramétrico. Por exemplo, um esboço com a distância de extrusão cria uma primitiva. Os “constraints” controlaram o tamanho e a posição da nova primitiva. Em seguida uma função booleana é adicionada para especificar se à geometria primitiva serão adicionados ou removidos geometria relativa. A função booleana da primitiva e a relação dos parâmetros são transmitidos ao kernel e a resultante geometria 3D é processada e revelada como solido CAD ao utilizador. Esta função do kernel é processada cada vez que um determinado recurso é regenerado ou reprocessados. As funções do kernel, juntamente com os parâmetros necessários é bastante específico para cada kernel, é altamente provável que outro kernel não vai entender essa função muito específica, e mesmo que o fizesse os resultados geométricas poderia ser muito diferente.
Movendo a camada superior do kernel para um outro kernel e como um programa escrito em FORTRAN e tentar compilado em C, é impossível, as funções e os parâmetros relacionados não são compatíveis. Como tais funções dão gravadas no histórico da árvore tem de ser traduzidas para funcionarem num kernel diferente. A indústria de CAD fez tentativas de fazer vários tradutores que tentam traduzir esta camada superior de um kernel para outro, mas o sucesso tem sido bastante limitado, sendo esta umas das razoes do lento progresso nos kernel dos modelos CAD, estando-se bastante limitado à camada superior. E se houve bastantes alterações nos kernels haverá o impacto da compatibilidade com a versão anterior e respectivamente como no seu histórico da árvore.
A movimentação da camada superior do kernel para outro kernel pode fornecer um grande risco para o desenvolvimento de um produto, pelo que a conversão do histórico/ modelo CAD 3D têm que funcionar perfeitamente porque se não a intenção de modelação ou o próprio modelo CAD 3D são dados perdidos, mas se houver uma conversão completa e robusta da camada superior não é necessário se preocupar com a camada inferior, pelo que a conversão do modelo CAD 3D será recriada para a camada superior pelo processamento que houve no kernel.
Agora vou considerar a camada inferior ou seja o modelo 3D geometria sem modelação paramétrica, seja a modelação CAD 3D aonde a ordenação dos recursos e funções não tem importância. Como foi mencionado anteriormente os kernels dos modelos CAD 3D podem criar modelos 3D numa variada de formas, resoluções, precisões.
Embora exista na indústria modelo CAD 3D padrões como IGES e STEP, mas como acima mencionado não existe padrões para a definição ou precisão do modelo CAD 3D, a transição não é perfeita de um STEP para um IGES, havendo lacunas e erros durante essa transferência.
Pessoalmente já tive várias experiencias pessoais nesse sentido em meios industriais, de modelo CAD 3D com erros e lacunas que possivelmente foi devido à conversão de ficheiros CAD 3D de superfícies para NURBS ou vice-versa. Podendo haver problemas com os pos processamento de ficheiros IGES ou STEP dentro dos próprios sistemas de CAD, pelo que deve ao envio e recepção dos modelos 3D de um kernel para outro kernel. E o processamento dessas conversões tem um grande impacto no processo de desenvolvimento do produto. Quando muda-se de sistema de CAD ou existe a conversão do kernel de um modelo CAD 3D para outro, acontecem os erros que acima se refere.
Mas ainda existem algumas dúvidas, se actualmente os sistemas de CAD possuem ferramentas para resolver rapidamente as imperfeições do modelo CAD 3D.
E como poderá uma alteração no kernel como pode afectar o processo do desenvolvimento do produto modelado num sistema CAD 3D, que camada é que o utilizador vai transferir se vai ser a superior ou a inferior do kernel. E o que acontece quando se usa para modelar um modelo 3 um kernel para modelação conceptual e outro kernel para modelação técnica, e será que dá para utilizar uma modelação paramétrica para uma modelação conceptual sem que os dados degenerem o modelo CAD. E que robustez existe na camada superior do kernel que se utiliza. Se são mantido padrões rigorosos na modelação CAD, e se é necessário precisão no detalhe no kernel do modelo CAD 3D. Se os modelos CAD que possui são da camada inferior ou superior. Como é que os modelo CAD do produto desenvolvimento tem impacto em múltiplos kernels.
Estas são algumas das questões que são importantes, tendo em conta a revolução na manufactura e desenvolvimento do produto que vivemos.

Sem comentários: