Diego
Não consigo trabalhar com o arquivo que voce enviou. Nao penso em verificar software que "abram" o mesmo pois eu estaria mudando o foco do problema.
Elaborei um aplicativo em dvb que deve ser carregado com o comando "appload".
O dwg em anexo apresenta diversas curvas, linhas, reta para simulação e verificação do aplicativo.
As três a direita e ao alto simulam três curvas de nivel com alturas (z) diferentes, as duas ao alto e a esquerda simulam dois niveis (z) diferentes. As demais figuras estão no mesmo plano.
A soluçao apresentada considera que todas as figuras estão em planos (xy) paralelos, podendo diferir apenas o "z" entre estes planos. Não considero curvas no plano "zx" por exemplo.
Após a abertura do arquivo dwg dê o comando "EXPLODE" em todo o desenho;
O aplicativo trabalha apenas linhas (retas) e arcos, gerados após o comando "EXPLODE"
Delete varias curvas, propositalmente, e rode a macro "CENTRO DE MASSA - CENTRO_LINHAS";
O resultado será imediado, sendo criado um circulo e texto com o comprimento total de todas as curvas (somadas). O centro do círculo é o ponto procurado;
A caixa de mensagem apresenta estas informações;
Aplique várias vezes o comando "Ctrl Z" e volte para a condição inicial, antes de ter deletado algumas curvas;
Delete outras curvas e rode novamente a macro e veja o resultado;
Faça a simulação com as curvas de nível , esquerda e a direita, separamente, e veja o resultado;
Faça a simulação com um único semi círculo;
Faça a simulação de um semi círculo, adicione um "mirror" do mesmo, criando aparentemente um círculo, rode a macro e veja que o centro está no centro;
É importante explodir o arquivo.
Eu poderia ter feito uma cópia de trabalho para a determinação do ponto e posteriormente inserido as informações no arquivo principal mas penso que isto não é relevante.
Caso após o comando "EXPLODE" apareça outros objetos além de retas e curvas, podemos ter um erro e, ocorrendo, gostaria de ter esta informação, para melhoria.
Toda crítica é bem vinda.
Ticiano