Para quem trabalha com obra civil o georreferenciamento foi uma das maneiras mais convenientes que nas ultimas décadas se consolidou como uma ferramenta de compatibilização e expansão entre projetos existentes e novos de tal forma que hoje a maior parte das empresas possuem sistema bem elaborados de guardar de forma georreferenciada as informações de seus empreendimentos.
O problema é que para a projetista sempre é uma surra importar essas informações, especialmente porque elas são disponibilizadas em documentos de AutoCAD e em coordenadas UTM.
Dessa forma as coordenadas informadas em X e Y correspondem aos valores reais e a elevação vem escrita como um texto solto ou na forma de bloco, como pode ser viso na foto.
Mais ainda, é possível encontrar desenhos com curvas de nível como polyline com Z sendo a elevação do terreno, ou seja, existe uma infinidade de formas de se receber os dados de locação de campo com os valores informados georreferenciados.
Pensando em todas essas barreiras pensei em desenvolver um código capaz de unir todas essas informações para importação no PLS-CADD, o programa de CAD para roteamento de linhas de transmissão de energia.
O PLS-CADD tem uma forma simples de entrar com dados de topografia, trata-se do formato XYZ. Este formato é uma forma de organização bem compacta de armazenamento e manipulação de massas de dados topográficos como nuvem de pontos. É possível, por exemplo, criar um arquivo tabulado com as informações de cada ponto de medição e importa-lo.
O Fato é que a forma com que a topografia brasileira informa os dados é bem caótica de tal forma que sempre temos que realizar algum tipo de manipulação para gerar uma "nuvem de pontos" e com isso ter uma precisão maior na locação das linhas de transmissão.
Não vou entrar em méritos de código mas esse programa foi feito usando o .NET API do AutoCAD 2012. E basicamente consiste em um comando que carrega um formulário e o mantem retido, "aberto e ligado ao AutoCAD" durante toda a seção de importação de pontos de tal forma que os botões da janela enviam comando de prompt pelo ActiveDocument executando o comando com todas as interfaces disponíveis da API retornando os dados no formulário aberto.
A janela fica sendo uma escarva do AutoCAD de tal forma que a área de impressão de valores é acessada como "Public", logo todos os comando executados no MyCommands.cs podem transferir e acessar a interface de saída a qualquer momento. Não existe risco de mais de um comando acessar a interface pois todos rodam bem rápido além disso, o usuário só pode executar um comando de cada vez.
Um ponto importante que foi criado nesse programa foi associação do Feature Code. O Feature Code é a designação de pontos utilizada no PLS-CADD, trata-se de uma lista de códigos numéricos que associam a cada ponto descrição do tipo de obstáculo que ele se refere e os espaçamento associados que serão adotados durante o roteamento da Linha de Transmissão. Como o desejo é criar um arquivo de pontos já final, completamente pré-analisado no processo de importação isso era vital, logo criei uma classe separada, responsável por ler o arquivo *.fea onde são salvos os Feature Codes e lista-los de tal forma que todas as funções sejam capazes de utilizar.
Foi criado basicamente 4 comandos iniciais para realizar a importação dos pontos:
O problema é que para a projetista sempre é uma surra importar essas informações, especialmente porque elas são disponibilizadas em documentos de AutoCAD e em coordenadas UTM.
Dessa forma as coordenadas informadas em X e Y correspondem aos valores reais e a elevação vem escrita como um texto solto ou na forma de bloco, como pode ser viso na foto.
Mais ainda, é possível encontrar desenhos com curvas de nível como polyline com Z sendo a elevação do terreno, ou seja, existe uma infinidade de formas de se receber os dados de locação de campo com os valores informados georreferenciados.
Pensando em todas essas barreiras pensei em desenvolver um código capaz de unir todas essas informações para importação no PLS-CADD, o programa de CAD para roteamento de linhas de transmissão de energia.
O PLS-CADD tem uma forma simples de entrar com dados de topografia, trata-se do formato XYZ. Este formato é uma forma de organização bem compacta de armazenamento e manipulação de massas de dados topográficos como nuvem de pontos. É possível, por exemplo, criar um arquivo tabulado com as informações de cada ponto de medição e importa-lo.
O Fato é que a forma com que a topografia brasileira informa os dados é bem caótica de tal forma que sempre temos que realizar algum tipo de manipulação para gerar uma "nuvem de pontos" e com isso ter uma precisão maior na locação das linhas de transmissão.
Não vou entrar em méritos de código mas esse programa foi feito usando o .NET API do AutoCAD 2012. E basicamente consiste em um comando que carrega um formulário e o mantem retido, "aberto e ligado ao AutoCAD" durante toda a seção de importação de pontos de tal forma que os botões da janela enviam comando de prompt pelo ActiveDocument executando o comando com todas as interfaces disponíveis da API retornando os dados no formulário aberto.
A janela fica sendo uma escarva do AutoCAD de tal forma que a área de impressão de valores é acessada como "Public", logo todos os comando executados no MyCommands.cs podem transferir e acessar a interface de saída a qualquer momento. Não existe risco de mais de um comando acessar a interface pois todos rodam bem rápido além disso, o usuário só pode executar um comando de cada vez.
Um ponto importante que foi criado nesse programa foi associação do Feature Code. O Feature Code é a designação de pontos utilizada no PLS-CADD, trata-se de uma lista de códigos numéricos que associam a cada ponto descrição do tipo de obstáculo que ele se refere e os espaçamento associados que serão adotados durante o roteamento da Linha de Transmissão. Como o desejo é criar um arquivo de pontos já final, completamente pré-analisado no processo de importação isso era vital, logo criei uma classe separada, responsável por ler o arquivo *.fea onde são salvos os Feature Codes e lista-los de tal forma que todas as funções sejam capazes de utilizar.
Foi criado basicamente 4 comandos iniciais para realizar a importação dos pontos:
- "Importar XY"
- "Importar YX e Z"
- "Importar Polyline de elevação"
- "Importar um bloco com informações"
Os dois primeiros são bem parecidos, trata-se de selecionar um ponto georreferenciado no desenho de AutoCAD e, através de outra caixa de dialogo, associar as informações pertinentes do ponto. Útil quando a informação sobre o ponto está solta no desenho como texto ou indicação de outra natureza como foto e afins.
O Terceiro comando trata-se de importar uma polyline de elevação. O PLS-CADD é capaz de importar isso também e esse comando é um pouco desnecessário, mas como eu estava com a mão na massa decidi fazer uma ferramenta bem universal onde não seria necessário importar alguns pontos de uma forma e outros de outra forma.
Quem trabalha com Polilinhas do AutoCAD logo notará que existem 3 tipos de Ploylines: Polyline, Polyline2d e Polyline3d. É engraçado porque o PLS-CADD só entende Polyline2d mas quando ele cria um DXF 3D do alinhamento da Linha de Transmissão (LT) ele exporta uma Polyline3d.
De fato, para o código eu só tratei os objetos to tipo Polyline, Polyline2d, pois as curvas de nível são linhas com elevação constante. Adicionalmente é possível editar a elevação de cada linha através da mesma caixa de dialogo apresentada nos comandos anteriores. Também é possível importar todas elas juntas caso cada uma esteja na sua dada elevação.
Por fim, o mais complexo comando foi o de importar informações listadas num bloco. Muito embora este seja a forma mais eficiente de associar as informações do levantamento topográfico uma vez que é possível associar a natureza o obstáculo cota, altura e dezenas de outras informações, para conversão é muito mais complexo.
A tarefa de importar eu dividi em 2 passos:
1º Passo: Associar as informações do bloco com os atributos do PLS-CADD, desta maneira o usuário selecione um Block Reference com informações, cada atributo assim como o nome do bloco e as coordenadas X,Y e Z são listadas para associação com cada atributo de ponto do PLS-CADD.;
2º Passo: Selecionar todos os Block Reference que se deseja importar com aquela associação feita.Com isso foi possível rapidamente extrair todas as informações da topografia e transferi-las para o PLS-CADD.
Olá Vitor!
ResponderExcluirÉ possível falar contigo sobre este trabalho que você publicou?
Se sim poderia informar seu número de telefone ou email? O meu email é: marcoantonio@engemap.com.br