Você está na página 1de 67

UNIVERSIDADE FEDERAL DE MINAS GERAIS

ESCOLA DE ENGENHARIA

DEPARTAMENTO DE ENGENHARIA DE MINAS

Uso de scripts para customização de softwares de mineração - Estudo de caso para definição
de realces planejados interceptados por furos de sondagem

Francisco Militão de Souza Silva

Maria Eduarda Santos Costa

Belo Horizonte,

Maio de 2021

1
Francisco Militão de Souza Silva

Maria Eduarda Santos Costa

Uso de scripts para customização de softwares de mineração - Estudo de caso para definição
de realces planejados interceptados por furos de sondagem

Monografia apresentada ao Departamento


de Engenharia de Minas da Escola de
Engenharia da Universidade Federal de
Minas Gerais como requisito parcial para
obtenção do título de Bacharel em
Engenharia de Minas.
Orientador: Pedro Benedito Casagrande

Belo Horizonte,

Maio de 2021

2
UNIVERSIDADE FEDERAL DE MINAS GERAIS
ESCOLA DE ENGENHARIA
DEPARTAMENTO DE ENGENHARIA DE MINAS

Monografia intitulada “Uso de scripts para customização de softwares de mineração - Estudo


de caso para definição de realces planejados interceptados por furos de sondagem”, de
autoria dos graduandos Francisco Militão de Souza Silva e Maria Eduarda Santos Costa,
aprovada pela banca examinadora constituída pelos seguintes membros:

Prof. Pedro Benedito Casagrande – EE/UFMG


Geólogo / UFMG – Professor Orientador DEMIN - UFMG

Prof. Pedro Henrique Alves Campos- EE/UFMG


Eng. Minas / UFMG – Professor DEMIN - UFMG

Eng. Mestre Leandro Geraldo Canaan Silveira – EE/UFOP


Eng. Minas / UFOP – Engenheiro Sênior - Vale

Belo Horizonte, 17 de maio de 2021.

3
DEDICATÓRIA

Dedicamos este trabalho aos que nos permitiram hoje,


estar sobre os ombros de gigantes.

4
AGRADECIMENTOS

De ambos os autores:

Aos amigos e companheiros de jornada Beatriz Casagrande, João Victor Menezes, Maria Inêz
Oliveira e Mariana de Souza, pelo incentivo, apoio e risadas. Vocês tornaram a caminhada até
aqui muito mais leve e feliz.

À Datamine, que nos permitiu a utilização de um de seus produtos, o Studio RM, para o
desenvolvimento deste trabalho, num incentivo ao desenvolvimento da ciência e à integração
da academia com o mercado.

Ao Prof. Pedro Casagrande, nosso orientador, pela sua atenção e apoio durante a preparação
do trabalho.

Aos membros da Banca Examinadora, pela leitura do texto e pelas sugestões oferecidas ao
trabalho.

Aos amigos e amigas que não foram citados e que sempre estiveram conosco nos auxiliando.

De Maria Eduarda:

A Victor Filipe, por todo amor e suporte incondicional ao mostrar alegria quando tudo parecia
impossível e ser uma maravilhosa companhia nesta etapa da vida.

5
“Tem que saber ler.”

José Ricardo Queiroz Franco, 2018.

6
RESUMO

A proposta de scripts é tornar processos recorrentes mais simples e rápidos através da


automatização e da construção de interfaces simplificadas. Para avaliar se esses objetivos são
cumpridos, o presente estudo buscou entender o contexto histórico da utilização de scripts e
elaborou, de forma prática, um script para atender uma demanda real vivenciada em uma mina
subterrânea: conhecer quais realces planejados possuem furos de sondagem em seu interior.
Por se tratar de uma demanda incomum, o software não possui uma ferramenta destinada
especificamente para isso, mas é possível gerar o resultado empregando uma sequência de
processos, a qual foi automatizada pelo script.

Palavras-chave: software de mineração, scripts, Datamine, JavaScript, HTML.

7
ABSTRACT

The goal of scripts is making recurring processes easier and faster through automation and the
creation of simple user interfaces. To analyze if these goals are being met, the present study
investigated the historic context of the use of scripts and created one to fulfill a real life need
of an underground mine: to find out which planned stopes have already been drilled. As this is
not a common demand, the software does not have a dedicated tool to do it, but it is possible
to reach the result wanted using a sequence of processes that has been automated by the script.

Keywords: mining software, scripts, Datamine, Javascript, HTML.

8
LISTA DE FIGURAS

Figura 1: Studio RM com janela Customization aberta próxima ao centro da tela............................... 11


Figura 2: Janela Customization. ............................................................................................................ 12
Figura 3: Interface de script gerado automaticamente pela ferramenta Record Script. "Extra" é o nome
com o qual o script foi salvo. ................................................................................................................ 12
Figura 4: Exemplo de interface customizada a partir de manipulação do arquivo HTML gerado pela
ferramenta Record Scripting. ................................................................................................................ 13
Figura 5: Caminho para o documento de referência que contém as interfaces dos comandos existentes
no Studio RM. ....................................................................................................................................... 14
Figura 6: Parte da tabela de atributos de um arquivo de furos de sondagem em formato Datamine.
BHID, FROM, TO, X, Y e Z são exemplos de colunas com nomenclatura padronizada. .................... 15
Figura 7: Realces utilizados nos testes do script vistos em perspectiva. .............................................. 19
Figura 8: Furos de sondagem considerados nos testes visto em perspectiva. ....................................... 20
Figura 9: Realces e sondagem considerados vistos em conjunto e em perspectiva. ............................. 20
Figura 10: Ícone de acesso à gravação de processos (Record Script) em destaque no menu Home do
Studio RM. ............................................................................................................................................ 22
Figura 11: Barra de Comandos (Command Bar). ................................................................................. 23
Figura 12: Função AutoConnect(). ....................................................................................................... 24
Figura 13: Função RadioHabilita(). ...................................................................................................... 24
Figura 14: Função Browser(). ............................................................................................................... 25
Figura 15: Função btnExecutar_onclick() - Avisos. ............................................................................. 26
Figura 16: Função btnExecutar_onclick() - Criação de atributos. ........................................................ 27
Figura 17: Função btnExecutar_onclick() - Cubagem. ......................................................................... 28
Figura 18: Função btnExecutar_onclick() – Eliminação dos arquivos temporários. ............................ 28
Figura 19: Avisos inseridos no script para tornar sua utilização mais intuitiva. A) Informa da
necessidade de preenchimento de campos obrigatórios quando esses são deixados vazios. B) Demanda
confirmação de prosseguimento em uma etapa que opcionalmente poderia ser executada de outro
modo. C) Orienta sobre o correto preenchimento dos campos de entrada para obtenção do resultado
esperado. D) Solicita a entrada de um nome para o arquivo de saída quando esse não é informado. .. 29
Figura 20: Aviso inserido para garantir que o usuário saiba quando o processamento foi concluído. . 29
Figura 21: Interface do script desenvolvido no estudo de caso com a nomenclatura dos tipos de
elementos existentes (botões, lista suspensa e caixas de texto). ........................................................... 30
Figura 22: Janela browser aberta quando selecionado o botão do campo "Furos de sondagem". ........ 31
Figura 23: Lista suspensa antes (esquerda) e depois (direita) da inserção de uma wireframe na caixa
de entrada para realces. ......................................................................................................................... 32
Figura 24: Interface do script quando se habilita a cubagem................................................................ 33
Figura 25: Realces gerados pelo script visualizados junto aos furos de sondagem. Para essa
visualização foi aplicada uma legenda baseada no atributo gerado pelo processamento do script para
definir quais escavações contêm sondagens em seu interior. ............................................................... 34
Figura 26: Visualização em tela apenas das escavações que contêm sondagem por meio da aplicação
de filtro. ................................................................................................................................................. 34
Figura 27: Visualização em tela apenas das escavações que não contêm sondagem por meio da
aplicação de filtro.................................................................................................................................. 35
Figura 28: Validação visual dos resultados por meio de visualização em seção. ................................. 35
Figura 29: Tabela de cubagem em formato Datamine. Perceba que a última linha traz um resultado
totalizado para o conjunto de realces. ................................................................................................... 36
Figura 30: Tabela de cubagem em formato Excel. Perceba que a última linha traz um resultado
totalizado para o conjunto de realces. ................................................................................................... 37
Figura 31: Tela inicial do Studio RM com script carregado na aba Customization. ............................ 38

9
SUMÁRIO
1. INTRODUÇÃO .................................................................................................................. 1
2. OBJETIVO ......................................................................................................................... 3
2.1 Objetivo geral: ......................................................................................................... 3
2.2 Objetivos específicos: .............................................................................................. 3
3. REVISÃO BIBLIOGRÁFICA ........................................................................................... 4
3.1 Histórico do uso de softwares na mineração, melhorias e impactos ........................... 4
3.2 Programação de softwares na mineração: customização ............................................ 6
3.3 Glue Codes, Scripts e linguagens aglutinativas .......................................................... 9
3.4 Component Object Model (COM) ............................................................................ 10
3.5 O Studio RM ............................................................................................................. 11
3.5.1 Arquivos em formato Datamine......................................................................... 14
3.6 Linguagem HTML .................................................................................................... 15
3.7 Linguagem Javascript ................................................................................................ 16
3.8 Realces ...................................................................................................................... 17
3.9 Furos de sondagem .................................................................................................... 18
4. ESTUDO DE CASO ........................................................................................................ 19
5. METODOLOGIA ............................................................................................................. 22
6. RESULTADOS ................................................................................................................ 30
7. DISCUSSÃO DOS RESULTADOS ................................................................................ 38
8. CONCLUSÕES ................................................................................................................ 40
9. SUGESTÕES PARA TRABALHOS FUTUROS ............................................................ 41
10. REFERÊNCIAS BIBLIOGRÁFICAS.......................................................................... 42
11. ANEXOS ...................................................................................................................... 45

10
1. INTRODUÇÃO

A mineração é uma atividade com demandas complexas e que lida com grandes
escalas de movimentação de material, mão de obra e recursos financeiros. Essas
características favoreceram que o setor mineral buscasse por soluções computacionais mesmo
quando os computadores ainda ocupavam todo o espaço de uma sala. Computadores podem
desenvolver cálculos complexos mais rapidamente que humanos e conseguem aumentar a
produtividade das equipes, o que resulta em aprimoramento dos trabalhos e retorno financeiro
positivo (SACHS, 2009).
O uso de softwares na mineração adentrou inicialmente os grandes empreendimentos,
em geral para uso na etapa de planejamento de lavra. Em seguida se espalhou para diversas
outras etapas da cadeia produtiva. Surgiram softwares para o gerenciamento de amostras em
laboratórios, para o gerenciamento de frotas, para a criação e simulação de planos de fogo,
dentre muitos outros. Com o barateamento da tecnologia, o acesso pôde se democratizar para
minas menores (PIES; FIGUEIREDO, 2015).
As aplicações voltadas para a atividade minerária comumente não são criadas sob
medida para uma empresa ou mina. Os softwares usualmente são produtos padronizados que
são comprados pelas mineradoras (em inglês são chamados de produtos off-the-shelf). Dessa
forma, por vezes os produtos não atendem da melhor forma possível algumas das demandas
específicas de uma mina, muitas vezes por serem aspectos intrínsecos àquela operação e não
utilizados por outras. Desse modo, a possibilidade de customizar os softwares torna-se uma
aliada para adaptar soluções para situações específicas.
A customização pode acontecer por meio da utilização de códigos de script, os quais
são um agrupamento de orientações para que uma atividade seja executada numa aplicação.
As orientações podem ser elaboradas por qualquer usuário e devem ser escritas em linguagem
de programação, sendo que a linguagem apropriada varia de acordo com o produto utilizado
(JavaScript e HTML para a linha Studio da empresa Datamine e Microsoft Visual Basic for
Applications nos produtos da antiga Gemcom, por exemplo) (HACK, 2003).
Além de aprimorar os produtos para atender às demandas específicas de uma mina, os
scripts também podem automatizar procedimentos repetitivos e garantir a geração de
relatórios padronizados. A utilização de scripts está diretamente ligada ao empoderamento do
usuário, lhe conferindo o papel de protagonista sobre a plataforma que utiliza. Ela permite
que o usuário ganhe velocidade sobre processos através da automação, além de poder gerar
resultados sempre dentro do mesmo padrão com consistência, o que auxilia na organização

1
da informação. Outro atrativo da customização de softwares através de scripts é que o usuário
se torna o autor da interface, podendo torná-la mais simples e intuitiva possível, inclusive
podendo escrever as informações nela contidas em qualquer idioma, diferentemente dos
softwares, que por vezes não possuem versão em português, por exemplo.

2
2. OBJETIVO
2.1 Objetivo geral:

Avaliar a customização de softwares de mineração através do uso de scripts


que objetivam otimizar atividades rotineiras.

2.2 Objetivos específicos:

A fim de atingir o objetivo geral, pretende-se:


i. Construir um histórico da utilização de softwares na mineração;
ii. Reunir referencial teórico a respeito da customização de softwares na
mineração;
iii. Demonstrar a metodologia de criação de scripts para o
software Datamine Studio RM;
iv. Desenvolver um script para o software Datamine Studio RM como
estudo de caso.

3
3. REVISÃO BIBLIOGRÁFICA
3.1 Histórico do uso de softwares na mineração, melhorias e impactos

Mineração é uma das atividades humanas mais antigas já realizadas. Inicialmente, a


atividade minerária para os mais diversos produtos era realizada praticamente de forma
instintiva e contava com poucos recursos tecnológicos. Com o avanço da tecnologia, os
produtos que possuíam maior valor associado, em geral commodities metálicas, motivaram a
inserção de melhorias nas atividades das minas para maximizar os retornos, enquanto para
produções de matérias-primas de baixo valor, muito associadas a construção civil, como areia,
brita, até mesmo hoje possuem menor aderência de tecnologias de melhoria dos processos,
dada relação de custo-benefício (GERMANI, 2002).
Segundo Sachs (2009), os primeiros softwares de cunho especializado para mineração
foram utilizados na década de 60 e procuravam inicialmente auxiliar nos processos de
planejamento de lavra. O intuito era calcular teores médios e obter a cava ótima através do
sequenciamento otimizado da extração de material. O uso destes sistemas oferecia suporte à
tomada de decisão, trazendo as informações consolidadas e totalizações simples. No entanto,
na aurora do uso destes sistemas havia muita limitação da utilização dada a baixa capacidade
de processamento e memória, dificuldade de entrada de dados através de cartões perfurados e
inexistência de interfaces gráficas.
Anteriormente à elaboração de computadores e softwares de mineração, conforme Pies
e Figueiredo (2015), os engenheiros de minas, quando precisavam projetar o planejamento da
mina, bem como suas estimativas, utilizavam algoritmos já descritos na literatura, contudo todo
o processamento da informação era feito à mão e com auxílio de instrumentos de desenhos
técnicos que davam forma ao projeto. A atividade era onerosa, o que limitava muito a
possibilidade de simular cenários variados e refazer periodicamente os planos. No decorrer dos
anos, a computação proporcionou melhorias em velocidade e precisão que proporcionaram a
capacidade de “gerar facilmente diversos modelos de cavas, fazer análises de sensibilidade, e
gerar planos iterativos podendo ser recalculados de acordo com as necessidades ou com a
descoberta de novas informações geológicas” (PIES; FIGUEIREDO, 2015, p.47).
Com a evolução das tecnologias ao longo dos anos, o caminho apontado pela mineração
foi o da busca por simulações que procurassem representar com cada vez mais fidúcia as
situações reais para observar comportamentos em diversos cenários diferentes. Dessa forma,
os softwares foram se especializando e procuravam simplificar a realidade focando nos
parâmetros que mais a impactam a fim de construir parte a parte um sistema e então modelar

4
uma simulação em que era possível obter observações estatísticas de seu possível desempenho,
ou seja, a simulação é a ferramenta que permite responder a questionamentos como: “o que
ocorre se...” (GONÇALVES, 2019).
Como destaca Silva (2019), na perspectiva do planejamento de lavra,
independentemente do método utilizado para desenvolvimento da lavra, consiste num trabalho
extremamente exaustivo se executado de forma manual e por isso os métodos transpostos para
um desenvolvimento computacional tornam as estimativas mais rápidas e precisas, uma vez
que praticamente todos os procedimentos são realizados sem ação humana, apenas a inserção
de informações na interface. Ademais, os softwares proporcionam uma visualização mais
integrada da distribuição dos valores das variáveis de interesse e permitem ao usuário uma
interpretação mais próxima da realidade ao passo que podem ser fornecidas imagens, e modelos
3D, permitindo melhores decisões. Outro ganho expressivo com essa evolução é a flexibilidade
e a previsibilidade que os softwares propiciam às operações das minas, “permitindo a
simulação e análise de vários cenários antes de iniciarem-se as atividades reais” (PIES;
FIGUEIREDO, 2015).
De acordo com Silva (2006), à época da publicação, nota-se que a utilização de
softwares de modelagem e planejamento de lavra apresentam um estado já consolidado e já
permeiam as mineradoras no Brasil e no mundo. Além disso, houve uma ampliação da
aplicação para ações de suporte à qualidade dos minérios no curto prazo, com a comunicação
simultânea entre as operações de uma mina.
Sachs (2009) descreve a respeito dos diversos programas que podem auxiliar em
praticamente todas as etapas do processo produtivo atualmente, sendo que há um destaque, em
função do pioneirismo, para os de geologia e planejamento de lavra com os mais notáveis
desenvolvimentos e significativo potencial de armazenar e gerenciar enormes volumes de
dados, enquanto ainda estão em busca de melhorias como visualizações tridimensionais,
manipulação de sólidos, realidade virtual e complexos algoritmos para os diversos cálculos
dessa etapa. De mesma forma, os sistemas relacionados às operações unitárias procuram
incessantemente auxiliar na otimização dos processos a fim de reduzir os custos: ao que tange
as questões de manutenção, é esperado o apoio para obter o melhor desempenho, evitando
tempos ociosos e utilizando ao máximo a capacidade do ativo, ou seja, potencializar a
disponibilidade física (SACHS, 2009). Em consonância, os comumente utilizados sistemas de
despacho, controlam e otimizam a produtividade dos caminhões durante as atividades da mina,
bem como funções avançadas de qualidade, fluxo de produção, aderência ao planejamento de
lavra, e máxima utilização entre os diversos grupos de equipamentos (carregamento, transporte
5
e infraestrutura) através de GPS de alta precisão, interfaces gráficas em 3D, conexões wireless
e realidade virtual (SACHS, 2009). Quanto aos sistemas utilizados nas usinas, estes buscam
monitorar os diversos parâmetros físicos, químicos e metalúrgicos envolvidos no processo,
bem como armazenar em bancos de dados e auxiliar a controlar as variáveis operacionais que
amparam para que os produtos resultantes saiam conforme especificações (SACHS, 2009).
Atualmente, as empresas buscam melhorias que consigam otimizar os diversos sistemas
de maneira mais integradas a fim de que todos os setores que participem do processo de
produção possam ter acesso às informações, permitindo que haja flexibilidade no
gerenciamento dos dados e melhor visibilidade no âmbito corporativo (SILVA, 2006). Em
paralelo, “várias mineradoras, institutos de pesquisa e universidade estão conduzindo
pesquisas visando desenvolver novas tecnologias de modo a mudar o paradigma de operação
de uma mina” (Sachs, 2009), em que se objetiva retirar os colaboradores da mina e utilizar
maquinário autônomo, dessa forma diminuindo a exposição do homem na linha de frente das
atividades, acarretando menor risco e maior segurança, além de poder centralizar o controle
num único centro e de modo remoto.

3.2 Programação de softwares na mineração: customização

O avanço computacional dos últimos anos permitiu a expansão da utilização de


softwares na mineração, disponibilizando as mais diversas soluções para os problemas
enfrentados em uma mina. Contudo, as empresas que fornecem nesse mercado distribuem
diversas soluções que são padronizadas, conhecidas comumente como “programas de
prateleira”. Em alguns casos, os fornecedores modificam seus produtos para atender a
demandas de um cliente, mas de forma geral esses softwares são padronizados. Dada essa
limitação, eles passaram a dispor do uso de scripts para auxiliar seus usuários.

Segundo Hack (2003), scripts existem há pelo menos sessenta anos. Trata-se de
linguagens de programação que são utilizadas para conectar ferramentas pré-existentes em um
sistema e por isso também são conhecidas como glue codes, segundo Ousterhout (1998). De
acordo com Hack (2003), scripts podem ser úteis para automatizar rotinas complexas e para
tornar os procedimentos mais intuitivos e simples. Com isso, são gerados ganhos de velocidade
e eficiência, o que resulta em benefícios econômicos.

Os softwares passaram a contar com espaços para desenvolvimento de scripts com o


aumento da velocidade dos computadores e popularização de aplicações hospedadas na web e
por conseguinte sua adaptação e inserção para linguagem HTML. Quanto as linguagens

6
empregadas em scripts, tem-se como a mais antiga utilizada a JCL – Job Control Language –
sendo datada na década de 60. Anos depois, em 1986, o AutoCAD incorporou a AutoLISP,
uma linguagem utilizada para fins de engenharia. A customização em softwares de mineração
se popularizou a partir da década de 1990.

Nos softwares de planejamento de lavra, desde o início dos anos 2000 estão disponíveis
diversas ferramentas para criação de scripts. Os fornecedores desses produtos optaram por
disponibilizar distintas linguagens de programação para scripts. Podem ser citados o software
Surpac, que utiliza em seu ambiente de desenvolvimento a linguagem SCL – Surpac Command
Language – que é baseada na TCL – Tool Command Language; o software MineMax, que
também adaptou a linguagem TCL; o MineSight, que utiliza a linguagem Python; Gemcom
Desktop Edition que permitia o uso da linguagem Visual Basic for Applications (VBA); e a
linha Studio da Datamine, que optou por utilizar a interface COM – Component Object Model
– disponibilizando os comandos e processos de seus programas para quaisquer linguagens
aplicadas para scripts que tenham suporte para COM (HACK, 2003)1. Exemplos de linguagens
com suporte para COM são JavaScript e VBScript, as quais podem ser incorporadas a
documentos em HTML (DATAMINE, [2019]).

Hack (2003) compara as diferentes linguagens de scripting disponibilizadas por alguns


fornecedores de softwares para mineração. Segundo ele, há muito espaço para evolução da
linguagem TCL, dada sua popularidade por já estar presente em alguns softwares do mercado,
dado seu pioneirismo, mas também em função ter sido incluída para modelagens de minas
complexas e para as etapas de planejamento, de modo a proporcionar flexibilidade para adaptar
funcionalidades dentro dos produtos que utilizam essa linguagem, dada sua característica de
linguagem de código aberto. Contudo, em função de todo potencial de desenvolvimento, pode
resultar que este ocorra de maneira fragmentada e seja mais difícil que os avanços sejam
conhecidos do ponto de vista de comunidade de usuários. Hack (2003) afirma que VBA é uma
linguagem que tem seu desenvolvimento mediado por controle corporativo pela Microsoft, o
que pode ser um impeditivo para o seu desenvolvimento orgânico, mas que tende a garantir
maior estabilidade em sua integração com outros softwares ao mesmo tempo que todas as

1
Vale ressaltar que as informações se referem à época de escrita do artigo e que desde então
algumas alterações de produtos ocorreram, como pode-se citar a aquisição da empresa
responsável pelo Surpac pela Gemcom no ano de 2006, conforme é atestado por Corum
Mergers & Acquisitions (2006).

7
informações são compiladas e documentadas. Dessa maneira, poderia ser considerada como
melhor opção para lidar com programas do Windows, contudo em função de Python e TCL
possuírem seu código aberto, é esperado que a interface entre programas não seja mais um
limitante. O VBA possui vantagens como: é esperado que usuários dessa linguagem necessitem
de menos treinamento em função de sua similaridade com o funcionamento de programas do
Windows, também é esperado que o VBA possua um desempenho mais rápido que ferramentas
desenvolvidas autonomamente. Por fim, Hack (2003) diz que a Datamine, ao oferecer a
interface COM, deu flexibilidade e liberdade ao desenvolvedor para escolher a opção de
linguagem que mais lhe for conveniente conforme suas habilidades e preferências.

Hack (2003), salienta considerações importantes para selecionar um software e por


conseguinte a linguagem empregada, como por exemplo: i) se já há algum software em uso e
portanto não há sentido em buscar outro, pelo menos momentaneamente; ii) o tempo em que a
solução deve estar disponível e quão personalizável ela deve ser, uma vez que podem já haver
soluções disponíveis nas comunidades de desenvolvimento ou pelo próprio fornecedor caso se
trate de um problema comum (deve-se avaliar o custo embutido); iii) averiguação sobre qual
seria mais produtivo economicamente entre solicitar ao fornecedor a solução ou qualificar um
colaborador para que ele desenvolva o recurso necessário; iv) e por fim, a robustez necessária
para solucionar o problema através de scripts, pois alguns softwares possuem limitações com
relação ao que scripts podem realizar em seus sistemas.

Quanto a sinalizações futuras, a customização de softwares na mineração está


diretamente ligada a necessidade de o usuário final precisar cada vez mais de soluções
específicas para seus problemas e/ou torná-las cada vez mais rápidas e padronizadas, o que por
consequência requer dos fornecedores desses softwares mais atenção a essa condição, e a
criação de espaços em que seja possível aos desenvolvedores colaborar entre si, a fim de
compartilhar soluções e práticas. Esta última condição pode enfrentar restrições por parte das
empresas dado o alto investimento que estas realizam para desenvolver certas resoluções de
seus problemas. Paralelamente, ressalta-se que a necessidade de contornar algum problema do
tipo controle corporativo de uma ferramenta que acaba por limitar a experiência do usuário, é
o que propicia as inovações mais ousadas, nesse sentido o controle da linguagem VBA pela
Microsoft pode se tornar um obstáculo e fazer sobressair soluções de código aberto,
simultaneamente em que iniciativas de flexibilização de desenvolvimento como COM da
Datamine tendem a se popularizar dada a adaptabilidade além de sua conexão com

8
desenvolvimento web. Por fim, quanto a mercados menores, como de minerais industriais, há
grande possibilidade de os fornecedores oportunizarem seus softwares para atendê-los, sendo
estes os que potencialmente mais devem requerer customizações para se adequarem aos seus
negócios, contudo é necessário avaliar proposições como ferramentas, treinamentos e suporte
gratuitos para viabilizar a utilização do ponto de vista não só técnico, bem como econômico
também (HACK, 2003).

3.3 Glue Codes, Scripts e linguagens aglutinativas

Linguagens de script assumem que em uma coleção de componentes úteis já existe


em outra linguagem. Elas não objetivam escrever aplicações inteiras do zero, mas sim
combinar componentes pré-existentes e por isso às vezes são chamadas de linguagens
aglutinativas (glue languages ou system integration languages). Os componentes pré-
existentes usualmente são escritos em linguagens de programação de sistemas
(OUSTERHOUT, 1998).
Linguagens de scripts não são substitutas para as linguagens de programação de
sistemas e vice-versa. Elas são destinadas a fins diferentes. Linguagens de scripts permitem
que os códigos sejam escritos rapidamente (até 10 vezes mais rapidamente do que códigos de
linguagens de programação de sistemas), mas possuem velocidade de execução até 20 vezes
menor. A performance de processamento mais lenta usualmente não é um problema para os
scripts, pois eles são, em geral, relativamente curtos e porque parte considerável de seus
conteúdos são os componentes que ele conecta, os quais são constituídos em linguagem de
programação de sistemas. Entretanto, é importante conhecer as diferenças entre esses dois
tipos de linguagens para melhor aplicá-los (OUSTERHOUT, 1998).
Segundo Ousterhout (1998), exemplos de linguagens de scripts são JavaScript, Perl,
VBA e TCL, enquanto exemplos de linguagens de programação de sistemas são Pascal, C,
C++ e Java. Uma característica fundamental das linguagens de programação de sistemas é
que são compiladas, enquanto as de script são interpretadas, sendo que códigos compilados
têm sua execução usualmente mais rápida do que códigos interpretados.
Uma linguagem compilada é aquela cujo código precisa passar por uma etapa de
compilação, que é quando um compilador transforma todo o código escrito pelo programador
em um arquivo binário (linguagem de máquina). A compilação permite que os computadores
posteriormente executem o algoritmo de forma rápida. Em linguagens interpretadas, os
códigos são lidos por um interpretador uma linha por vez durante a execução, o que reduz o
desempenho (FRANCOIS, 2015).

9
Linguagens de scripts são mais simples e fáceis de aprender, pois possuem sintaxe
simplificada. Por isso, elas ganharam popularidade com o aumento do número de
programadores casuais a partir do surgimento dos computadores pessoais. Para os
programadores casuais, a programação não é seu trabalho principal, mas sim uma ferramenta
auxiliar, portanto, para essas pessoas não faz sentido despender meses para aprender uma
linguagem complexa, mas elas estão dispostas a empregar algumas horas para estudo do tema,
o que é o bastante para iniciar a criação de scripts úteis (OUSTERHOUT, 1998).
Com base nessas características, Ousterhout (1998) afirma que as linguagens de script
são ideais para casos em que a velocidade de criação e teste da rotina são aspectos
importantes, mas que as linguagens de desenvolvimento de sistemas devem ser empregadas
sempre que algoritmos complexos forem desenvolvidos ou que a velocidade de execução seja
crucial.

3.4 Component Object Model (COM)

Component Object Model (COM) objetiva permitir a reutilização de trechos de código,


os quais são chamados de objetos ou componentes. Esses objetos podem ser acessados por
meio de funções pré-definidas que um programador pode chamar em seus códigos para
interagir, as quais são chamadas de interfaces. Uma biblioteca de COM contém um conjunto
de interfaces. COM é um padrão que permite a criação de bibliotecas reutilizáveis, as quais
podem ser criadas utilizando linguagens distintas, pois COM é independente de linguagem de
implementação (MICROSOFT, 2018). COM foi projetado para ser um ambiente de
desenvolvimento de todas as linguagens de programação presentes em sua biblioteca, mas o
grau de dificuldade para fazê-lo varia conforme a linguagem utilizada (GRAY et al., 1998).

Uma interface define o comportamento esperado de um componente e este só pode ser


utilizado por meio da interface. Além disso, os usuários de uma biblioteca têm acesso apenas
às interfaces, não possuindo informação alguma sobre o conteúdo interior dos componentes
(MICROSOFT, 2018).

Códigos de script podem ser inseridos em páginas web e executados por navegadores.
O script então pode invocar objetos COM, o que permite ao desenvolvedor web utilizar códigos
pré-existentes em seu script (GRAY et al., 1998). O Studio RM da empresa Datamine possui
Component Object Model completo publicado que pode ser acessado através de scripts usando
JavaScript, VBScript ou qualquer linguagem de script compatível com COM. Esses scripts
podem ser incorporados em um documento HTML e executados em navegador acoplado ao

10
software (janela Customization) para executar comandos ou processos do Studio RM
(DATAMINE, 2019).

3.5 O Studio RM

O Studio RM é um software que oferece ferramentas para execução de modelagem


geológica explícita e implícita, criação de modelos de blocos e estimativa de teores a partir de
diversos algoritmos, além de permitir a modelagem de parâmetros geotécnicos e de
geometalurgia. Ele foi desenvolvido e é comercializado pela empresa Datamine e seu público-
alvo são geólogos e geoestatísticos, podendo ser utilizado como base para declarações de
recursos e reservas, pois fornece processos auditáveis e reprodutíveis conforme exigido pelos
códigos internacionais JORC, SAMREC e NI 43-101 (DATAMINE, 2021).

Para utilizar um script no Studio RM, deve-se abri-lo na janela Customization (Figura
1 e Figura 2), o que pode ser feito arrastando o arquivo do código até ela ou por meio do
caminho: Home | JScript | Run Script (DATAMINE, [201-?]).

Figura 1: Studio RM com janela Customization aberta próxima ao centro da tela.

11
Figura 2: Janela Customization.

O método mais simples para criar um script na linha Studio da Datamine é através da
ferramenta de gravação de processos que o software oferece. A partir da ferramenta Record
Script, todos os processos executados são registrados em um documento HTML. Esse
documento gera uma interface simples que contém apenas o nome com o qual o arquivo de
script foi salvo e um botão de execução (Figura 3). Quando o botão é pressionado, os processos
gravados são reproduzidos (DATAMINE, [201-?]).

Figura 3: Interface de script gerado automaticamente pela ferramenta Record Script. "Extra" é o nome com o
qual o script foi salvo.

12
O arquivo HTML pode ser posteriormente acessado e editado para gerar modificações
na interface do script, como adicionar botões, caixas de texto e check boxes (Figura 4). Também
é possível alterar valores padrão do script, como nomes dos arquivos de entrada e saída. Deve-
se ressaltar que no Studio RM existem processos (operações que manipulam arquivos
independentemente de estarem carregados em tela) e comandos (operações que manipulam
objetos carregados em tela) (DATAMINE, [201-?]). De acordo com Datamine ([2019]), ambos
podem ser utilizados em scripts, mas apenas os processos podem ser gravados. Para inserir
comandos em um código é possível buscar suas interfaces no documento de referência
chamado “Scripting COM Reference”, o qual é parte integrante do Studio RM e pode ser
acessado por meio do ícone exibido na Figura 5.

Figura 4: Exemplo de interface customizada a partir de manipulação do arquivo HTML gerado pela ferramenta
Record Scripting.

13
Figura 5: Caminho para o documento de referência que contém as interfaces dos comandos existentes no Studio
RM.

Para que se possa manipular os arquivos HTML de scripts voltados para o Studio RM,
Datamine ([2019]) recomenda que o programador tenha conhecimento prévio de linguagens de
script, como JavaScript; tenha conhecimento de comandos e processos comuns do Studio RM
e do modelo de objeto usado pelo software; e tenha um software para scripting apropriado
como Visual Studio Express®.

3.5.1 Arquivos em formato Datamine

Usualmente, o papel de um script no software Studio RM é manipular os arquivos em


formato Datamine presentes no projeto, portanto, é importante entender o que eles são.
Arquivos em formato Datamine são tabelas que possuem algumas colunas com nomes
padronizados (Figura 6). As colunas são denominadas “atributos”, que são informações
referentes ao arquivo, e a tabela é chamada de “tabela de atributos”. Com base na nomenclatura
padronizada de atributos, os arquivos são divididos em alguns tipos, como strings (arquivos de
linhas), drillholes (furos de sondagem), block models (modelos de blocos) e wireframes
(arquivos que representam superfícies ou sólidos, tais como corpos de minério, cavas ou
realces). Cada um dos tipos possui colunas específicas em sua tabela e essa nomenclatura
padronizada também permite que o software interprete a informação tabelada e represente os
dados tridimensionalmente de forma visual quando existem coordenadas (DATAMINE,
[2019]).
Não é obrigatório que uma tabela de atributos contenha apenas as colunas com nomes
padronizados. Usuários podem acrescentar novas colunas para agregar informações ao arquivo,
assim como podem remover colunas completas ou apenas alguns dos dados listados em colunas

14
específicas. Existem diversos métodos para manipular tabelas de atributos (DATAMINE,
[2019]).

Figura 6: Parte da tabela de atributos de um arquivo de furos de sondagem em formato Datamine. BHID,
FROM, TO, X, Y e Z são exemplos de colunas com nomenclatura padronizada.

3.6 Linguagem HTML

A linguagem HTML é atualmente mundialmente difundida e permeia o dia a dia de


qualquer pessoa que utilize a internet. Num contexto dos primórdios da criação da internet,
segundo Silva (2019), Tim Berners-Lee criador da linguagem HTML - HyperText Markup
Language - no início da década de 90, através de um protótipo de navegador, buscava através
da linguagem interligar hipertextos conectando computadores pelo mundo por meio de links
globais, posteriormente denominados hiperlinks. Inicialmente, desenvolveu um software
próprio com protocolo a fim de recuperar hipertextos, o que foi chamado de HTTP - Hypertext
Transfer Protocol - e o HTML surge do formato de texto que Tim Berners utilizou para elaborar
o HTTP.
O HTML teve por base de criação a especificação SGML - Standard Generalized
Markup Language – tratando-se como referência dado o reconhecimento internacional sobre
as condutas gerais de criação de linguagens de marcação, sendo a inovação para a linguagem,
a capacidade de conseguir executar a marcação de hiperlinks em diferentes computadores. A
linguagem passou por modificações em seus primeiros anos e, com ajuda de diversos
colaboradores, acabou sendo publicada em 1993 a versão final com nome de HTML+, com a
15
seguinte estrutura para seus documentos: títulos, parágrafos, listas, tabelas e figuras, sendo que
a linguagem não se objetivava a focar na aparência, em parâmetros como espaçamento de
margens, e palavras, tipografia de fontes, entre outros, deixando a cargo dos softwares que
renderizaríamos documentos marcados em HTML (SILVA, 2019).
Com o passar dos anos, houve muitas atualizações sobre a linguagem e tornou-se
mundialmente conhecida e aceita como um padrão internacional dado pelo W3C – World Wide
Consortium – a fim de mediar o seu desenvolvimento e torná-la parametrizada aos usuários,
desde 1994 (SILVA, 2019).
Gripa (2002) apud Cantu (2002) define HTML como uma linguagem de marcação de
hipertexto, com texto simples e uso de muitas tags para referenciar características ao arquivo
em desenvolvimento ou mesmo criar links para outros arquivos HTML, imagens, tabelas, entre
outras possibilidades.
O funcionamento da linguagem segue a ideia de tags em pares para marcar a abertura
e o fechamento, a fim de demarcar o início e fim de uma característica. Ao desenvolver um
documento HTML, inicia-se com a tag <html>, e a seguir divide-se o arquivo em duas partes,
sendo segregadas nas tags <head> (cabeçalho da página) e <body> (corpo da página), cada
qual com seus respectivo terminador correspondente. A parte que compõe o cabeçalho do
arquivo HTML dispõe do título e possíveis outros elementos genéricos necessários. Enquanto
no corpo da página, apresenta-se o assunto a ser desenvolvido pelo arquivo. A linguagem
possui a opção de conectar-se com outros links, podendo ser feito usando-se a tag <a> (GRIPA,
2002).

3.7 Linguagem Javascript

Diversas linguagens vêm sendo desenvolvidas ao longo dos anos a fim de solucionar
problemas ou para tornar mais simples e fluido a atividade de programar. Similarmente, a
linguagem de script JavaScript foi criada pela empresa Netscape Communications
Corporation, por Brendan Eich e recebeu primeiramente o nome de Mocha, que posteriormente
foi mudado para LiveScript e por fim, atualizado em JavaScript em 1995. Apesar de ter seu
nome costumeiramente confundido com a linguagem Java, elas possuem apenas similaridades
na sintaxe (GRILLO, FORTES, 2008).
Segundo Silva e Sobral (2017), o intuito do desenvolvimento da linguagem, na década
de 90, era focado para resolver problemas do usuário ao ter de lidar com o ambiente web, dado
que este não era muito responsivo. Dessa forma, JavaScript evoluiu rapidamente, ganhando
notoriedade e espaço em diversos navegadores, se tornando a principal opção para

16
desenvolvimento front-end de sistemas de softwares na Web. Enquanto Grillo e Fortes (2008),
ressaltam como JavaScript é uma linguagem de programação de propósito geral, que garante
dinamismo, dispõe de propriedades do paradigma de orientação a objetos e em função de ser
Client-side – que é passível de rodar no computador do usuário – é esperado que ela seja apta
a executar qualquer tipo de aplicação em seu host. O Google Inc. é um grande exemplo de
empresa que utiliza essa linguagem em suas aplicações e por conseguinte elas se tornam tão
interativas.
Grillo e Fortes (2008) define a linguagem como:
JavaScript permite criar pequenos programas embutidos no próprio código de uma
página HTML e capazes de gerar números, processar alguns dados, verificar
formulários, alterar valor de elementos HTML e criar elementos HTML. Tudo isso
diretamente no computador cliente, evitando a troca de informações com o servidor
e o tempo passa a depender somente do processamento local do cliente, não mais da
latência da rede. [...] JavaScript é uma linguagem completa e poderosa que possui
muitas das qualidades de diversas outras linguagens, como: listas associativas,
tipagem dinâmica e expressões regulares de Perl e a sintaxe similar a C/C++,
linguagens de grande reconhecimento tanto no mundo acadêmico quanto
comercialmente. Além disso, JavaScript é multiparadigma e entre eles destacam-se a
programação estrutural e orientada a objeto; possui funções de ordem superior; entre
outros.
Em consonância, Silva e Sobral (2017) definem que “JavaScript é uma linguagem de
script, interpretada, baseada em objetos e protótipos, multi-paradigma e dinâmica, suportando
além do estilo orientado a objeto, os estilos imperativo e funcional” (SILVA; SOBRAL, 2017,
p.9). Esta linguagem trouxe liberdade e flexibilidade e possibilitou a pessoas que não eram
programadores por formação, a utilização de seus recursos para desenvolvimento de
programas. Em tempo, a flexibilização da linguagem implica aos desenvolvedores uma certa
falta de referencial padrão de programação em JavaScript, ficando à mercê do conhecimento
do usuário, tornando a experiência do desenvolvedor um gargalo.

3.8 Realces

A definição realce é compreendida como uma “escavação subterrânea resultante da


extração mineral, o termo é aplicado apenas para a extração de minério, não incluindo os
minérios retirados de poços e tuneis auxiliares” (TAVARES, 2016).

17
3.9 Furos de sondagem

Como Quaresma et al. (2019) discute, para caracterizar material em subsuperfície é


preciso extrair amostras in situ e para isso comumente se utiliza a sondagem. Existem diversas
técnicas de sondagem, mas elas basicamente consistem em perfurações (furos de sondagem),
com o devido maquinário e pessoal especializado que retira o material a diversas
profundidades, podendo ser recuperado íntegro ou fragmentado. Vale ressaltar que a depender
da grandeza da área analisada, faz-se necessário extensiva campanha com diversos furos de
sondagem para ser possível o entendimento completo sobre o local. As amostras obtidas podem
ser encaminhadas para testes laboratoriais e outras análises de profissionais como geólogos.

18
4. ESTUDO DE CASO

Através de atividades de estágio na empresa Datamine Software, chegou ao


conhecimento dos autores que uma geóloga que atua em mineração subterrânea necessitava
conhecer quais realces planejados possuíam furos de sondagem em seu interior. A geóloga
desejava descobrir isso utilizando o Studio RM, mas, por se tratar de uma demanda incomum,
esse software não possui uma ferramenta destinada especificamente para isso. É possível fazer
o que ela desejava, mas seria necessário utilizar uma série de processos para alcançar esse
resultado. Por se tratar de uma demanda recorrente nas atividades dessa profissional, um script
capaz de automatizar a sequência de processos é ideal para garantir a execução rápida e correta
do procedimento.
Os arquivos iniciais da situação problema são wireframes de realces (Figura 7 e Figura
9) e furos de sondagem (Figura 8 e Figura 9). É imprescindível que os realces possuam um
atributo discretizador, pois esses arquivos usualmente representam um conjunto de escavações,
as quais precisam ser identificadas separadamente. O atributo discretizador é um identificador
numérico com valores únicos para cada um dos realces e é praxe no planejamento de lavra
subterrânea que ele seja criado.

Figura 7: Realces utilizados nos testes do script vistos em perspectiva.

19
Figura 8: Furos de sondagem considerados nos testes visto em perspectiva.

Figura 9: Realces e sondagem considerados vistos em conjunto e em perspectiva.

O objetivo do processamento é gerar uma cópia do arquivo de wireframes na qual existe


a informação de quais realces contém sondagens. Para isso, o procedimento acrescenta um
atributo ao arquivo de realces contendo essa informação. Vale ressaltar que a ação de criar

20
atributos também é conhecida popularmente como aplicação de carimbos ou como carimbar
um arquivo.
A fim de tornar o script ainda mais útil, os autores optaram por inserir a possibilidade
de o usuário optar por executar a cubagem dos realces carimbados. Esse acréscimo ao script
permite estudar a utilização dessa ferramenta para geração de relatórios padronizados. A
cubagem torna necessária a utilização de um modelo de blocos como arquivo de entrada para
o script.

21
5. METODOLOGIA

Foram utilizadas as linguagens HTML e JavaScript, sendo que a opção por JavaScript
se deu em decorrência de o processo de gravação automática de scripts do Studio RM entregar
seu produto final nessa linguagem. Para manipulação do código, utilizou-se o editor de textos
Sublime Text. Os arquivos de realces, furos de sondagem e modelo de blocos utilizados como
base para construção e teste do script são provenientes do tutorial da linha Studio da Datamine
e são instalados no computador automaticamente junto ao software Studio RM.
O primeiro passo para construção do código foi a gravação dos processos por meio da
ferramenta Record Script (Figura 10). Processos podem ser acessados digitando seus nomes na
Command Bar (Figura 11) do software e os nomes dos processos utilizados, assim como o
objetivo de empregá-los, são:
• SELWF para marcar quais furos estão no interior de realces.
• COUNT com o arquivo de saída do SELWF para gerar uma lista dos stopes que
possuem furos em seu interior.
• MGSORT no arquivo de saída do COUNT e no arquivo de triângulos dos realces para
que ambos estejam ordenados com base no atributo de discretização.
• RESTRI com os arquivos de saída do MGSORT para gerar um arquivo de triângulos
contendo apenas os realces que possuem furos em seu interior.
• APPEND com o produto do RESTRI e com o arquivo inicial de realces para gerar um
arquivo contendo todos os realces, mas no qual aqueles que possuem furos estão
duplicados.
• MGSORT e EXTRA aplicados ao resultado do APPEND para criar os atributos que
trazem a informação referente a quais realces contém sondagens, além de eliminar os
dados duplicados. Optou-se por criar dois atributos, denominados CONTEM_FURO e
CONTEM_FURO_NUM, sendo o primeiro alfanumérico e o segundo numérico, pois
alguns procedimentos exigem que se utilize um tipo específico de atributo, assim o
script gera um produto válido para qualquer processamento posterior.

Figura 10: Ícone de acesso à gravação de processos (Record Script) em destaque no menu Home do Studio RM.

22
Figura 11: Barra de Comandos (Command Bar).

Após a gravação, o arquivo resultante foi manipulado. A edição do código objetiva


permitir que o usuário possa escolher arquivos de entrada com quaisquer nomes, garantir que
a cubagem seja opcional, construir uma interface intuitiva, deletar os arquivos intermediários
que não são o objetivo final do script, criar avisos para tornar o processamento mais intuitivo
e inserir comandos de tela, os quais não são gravados pela ferramenta Record Script.
Inicialmente foi construída a interface, a qual foi escrita em HTML como uma tabela.
Para isso foram utilizadas as tags <TABLE>, que cria uma tabela; <TR>, que cria as linhas da
tabela; e <TD>, responsável por criar cada célula. Foram inseridos botões e caixas de texto
utilizando a tag <INPUT> e seu atributo “TYPE”, tendo sido utilizados “TYPE” igual a text,
button e radio. Também foi inserida uma lista suspensa, a qual demandou a tag <SELECT>.
A logomarca do Departamento de Engenharia de Minas da UFMG foi inserida a partir do
atributo “SRC” da tag <IMG>. Para isso, a imagem foi codificada em Base64 utilizando o site
gratuito Base64 Image Encoder2.
A etapa seguinte foi a edição do código JavaScript. Os nomes dos arquivos empregados
na gravação foram substituídos em todo o script por campos variáveis ligados às caixas de
texto da interface para que os usuários pudessem definir quais arquivos utilizar. Posteriormente
foi inserido o comando wireframe-dynamic-evaluation a partir das informações fornecidas pelo
documento “Scripting COM Reference” (Figura 5) para que o script também contemplasse a
criação de um relatório de cubagem padronizado.
Em JavaScript, foram construídas ou editadas diversas funções e em todas elas buscou-
se inserir comentários para documentar o objetivo de cada trecho do código. A primeira dessas
funções, AutoConnect() (Figura 12), é gerada automaticamente, mas foi editada para garantir
que os campos ligados à cubagem estejam desabilitados quando o script é aberto.

2
https://www.base64-image.de/
23
Figura 12: Função AutoConnect().

A função RadioHabilita() (Figura 13) objetiva tornar mais intuitivo que a cubagem é
opcional, pois habilita o preenchimento das caixas de entrada para cubagem apenas quando se
decide por executá-la. A função Browser() (Figura 14) foi criada para que os botões localizados
ao lado das caixas de texto funcionem como browsers e também para popular a lista suspensa
com dados presentes no arquivo de wireframes inserido na caixa de texto “Relaces / Stopes
(tr)” do script.

Figura 13: Função RadioHabilita().

24
Figura 14: Função Browser().

A função btnExecutar_onclick() contém o código responsável por manipular os


arquivos de entrada a fim de gerar os arquivos de saída esperados. Ela é criada automaticamente
e após sua edição é possível considerar que ela foi subdividida em quatro seções, sendo a
primeira (Figura 15) responsável por gerar avisos relacionados ao preenchimento incorreto das
caixas de texto do script, a segunda (Figura 16) responsável por criar os atributos que apontam
quais realces possuem furos de sondagem em seu interior, a terceira parte (Figura 17) é
responsável por executar a cubagem e a última apaga os arquivos temporários, que são aqueles
arquivos gerados ao longo do processamento, mas que não correspondem ao objetivo final do
usuário (Figura 18).

25
Figura 15: Função btnExecutar_onclick() - Avisos.

26
Figura 16: Função btnExecutar_onclick() - Criação de atributos.

27
Figura 17: Função btnExecutar_onclick() - Cubagem.

Figura 18: Função btnExecutar_onclick() – Eliminação dos arquivos temporários.

Os avisos supracitados podem ser vistos na Figura 19 e no fim da função


btnExecutar_onclick() também foi acrescentado um aviso que permite ao usuário saber que o

28
processamento do script terminou (Figura 20). Destaca-se que o texto da interface e dos avisos
foi escrito em língua portuguesa, enquanto o software não possui versão nesse idioma.

B C

Figura 19: Avisos inseridos no script para tornar sua utilização mais intuitiva. A) Informa da necessidade de
preenchimento de campos obrigatórios quando esses são deixados vazios. B) Demanda confirmação de
prosseguimento em uma etapa que opcionalmente poderia ser executada de outro modo. C) Orienta sobre o
correto preenchimento dos campos de entrada para obtenção do resultado esperado. D) Solicita a entrada de um
nome para o arquivo de saída quando esse não é informado.

Figura 20: Aviso inserido para garantir que o usuário saiba quando o processamento foi concluído.

29
6. RESULTADOS
A interface do script desenvolvido para o estudo de caso está apresentada na Figura 21.
A seção “Entrada” comporta os campos para inserção dos arquivos que serão processados,
enquanto a seção “Saída” abriga os campos para definição dos nomes dos produtos que serão
gerados pelo script. Após o preenchimento, deve-se pressionar o botão “Executar” para que o
processamento tenha início. Caso haja erros no preenchimento dos campos, os avisos descritos
anteriormente (Figura 19) serão exibidos.

Figura 21: Interface do script desenvolvido no estudo de caso com a nomenclatura dos tipos de elementos
existentes (botões, lista suspensa e caixas de texto).

As caixas de texto podem ser preenchidas digitando-se valores, mas é possível perceber
na Figura 21 que diversos campos do script possuem botões ao lado das caixas de texto. Esses
botões, cujo único texto são reticências, abrem uma janela browser quando são pressionados
(Figura 22). O objetivo é facilitar a entrada de dados, pois torna dispensável que o usuário se
atente para digitar corretamente o nome dos arquivos de entrada. Além disso, cada browser
está programado para mostrar apenas o tipo apropriado de arquivo (wireframes, modelos de
blocos ou arquivos de sondagem) quando aberto. Caso o usuário considere pertinente, ele pode
encontrar os demais arquivos utilizando a opção All tables, que está visível na parte superior
esquerda da Figura 22.

30
Figura 22: Janela browser aberta quando selecionado o botão do campo "Furos de sondagem".

Ao utilizar o browser para selecionar o arquivo de triângulos da wireframe de realces,


o campo Realces / Stopes (pt) é preenchido automaticamente, pois uma peculiaridade das
wireframes em formato Datamine é que elas são divididas em um arquivo de triângulos e outro
de pontos com nomes iguais, exceto pelas letras “tr” e “pt” ao final e que devem sempre estar
juntos para o correto funcionamento do arquivo.
A lista suspensa presente no script somente é preenchida após a inserção da wireframe
de realces (Figura 23), pois ela lista os atributos que existem nessa wireframe a fim de que o
usuário possa selecionar qual é o atributo discretizador. Não existe uma padronização com
relação ao nome desse atributo, por isso é imprescindível que essa lista somente seja preenchida
após a entrada do arquivo de realces para garantir que ele continue utilizável caso haja
mudanças no nome de atributo criado pela equipe de planejamento de lavra.

31
Figura 23: Lista suspensa antes (esquerda) e depois (direita) da inserção de uma wireframe na caixa de entrada
para realces.

Quando a cubagem é habilitada através da opção “Executar” do campo “Cubagem”, as


caixas de texto que anteriormente estavam desabilitadas para preenchimento e com a cor cinza
se tornam editáveis e brancas (Figura 24). O campo “Densidade default” recebe
automaticamente o valor 2,7 e o objetivo disso é que o usuário perceba claramente que deve
entrar com um dado numérico nessa caixa de texto e para que ele não precise preenchê-la
sempre, pois assumiu-se que 2,7 é a densidade padrão mais recorrente nesse projeto. O script
poderia ser configurado para que outros números aparecessem, o que é interessante quando a
densidade mais comum não é 2,7. Ressalta-se que densidade default é o valor utilizado quando
não há informação de densidade no modelo de blocos.

32
Figura 24: Interface do script quando se habilita a cubagem.

Os resultados gerados pelo script são uma cópia do arquivo de realces contendo
atributos que apontam quais realces contém ou não furos de sondagem e, opcionalmente, uma
tabela de cubagem. Os realces carimbados podem receber uma legenda para visualização
tridimensional e interativa dos resultados, como mostra a Figura 25, em que os realces que
contêm furos são exibidos na cor vermelha e os que não contêm são exibidos em verde. Para
validação visual mais detalhada é possível aplicar filtros para visualizar em tela apenas os
realces que contêm furos (Figura 26) ou somente aqueles que não contêm (Figura 27),
lembrando que a visualização tridimensional permite a rotação dos arquivos em tela ou a
aproximação para observação em detalhe. Uma terceira possibilidade de validação é através da
visualização em seções (Figura 28), mas nesse caso deve-se ter atenção ao fato de que um
realce pode não exibir um furo em seu interior em uma seção, mas ainda assim conter um furo
que somente seria visível em outra seção.

33
Figura 25: Realces gerados pelo script visualizados junto aos furos de sondagem. Para essa visualização foi
aplicada uma legenda baseada no atributo gerado pelo processamento do script para definir quais escavações
contêm sondagens em seu interior.

Figura 26: Visualização em tela apenas das escavações que contêm sondagem por meio da aplicação de filtro.

34
Figura 27: Visualização em tela apenas das escavações que não contêm sondagem por meio da aplicação de
filtro.

Figura 28: Validação visual dos resultados por meio de visualização em seção.

O último resultado gerado pelo script é a tabela de cubagem padronizada. Foi definido
que essa tabela deve ser gerada em formato Datamine (Figura 29) assim como em Excel (Figura
30) e deve processar apenas os campos de teor de ouro, cobre, cobalto e prata. Seu objetivo é
retornar a massa, volume, densidade e teores médios em cada um dos realces, além da
informação de quais deles possuem sondagens em seu interior. Essa mesma tabela também
deve informar massa e volume total do conjunto de realces e a densidade e teores médios do
material no interior deles.

35
Figura 29: Tabela de cubagem em formato Datamine. Perceba que a última linha traz um resultado totalizado
para o conjunto de realces.

36
Figura 30: Tabela de cubagem em formato Excel. Perceba que a última linha traz um resultado totalizado para o
conjunto de realces.

37
7. DISCUSSÃO DOS RESULTADOS
Primeiramente, ao observar a interface do script, nota-se o contraste de idiomas: o
Studio RM é um software fornecido tradicionalmente em inglês e atualmente não dispõe de
uma versão em português, mas o script está totalmente em língua portuguesa (Figura 31).
Ressalta-se também que, como mostrado na Figura 19 e na Figura 20, os avisos que o script
fornece também estão em português. Dessa forma, o script permite que um usuário com menor
qualificação em língua estrangeira entenda as demandas da interface do script com facilidade,
o que diminui a susceptibilidade ao erro humano de interpretação.

Figura 31: Tela inicial do Studio RM com script carregado na aba Customization.

Ao utilizar o script, uma pessoa precisará lidar apenas com sua interface e não precisa
entender quais comandos são utilizados para se atingir o objetivo final, nem conhecer como
seria o procedimento manual completo para atingir o mesmo fim. A interface do script foi
pensada para induzir o preenchimento correto dos campos e, além disso, ela está associada a
avisos que informam o usuário quando ele comete erros de preenchimento. Dessa forma, ela se
torna simples e intuitiva para usuários sem treinamento prévio do software, mas que conheçam
o objetivo do script, que saibam qual é o produto esperado.
Devido às características citadas, o uso de scripts minimiza o impacto da rotatividade
de profissionais para as empresas, pois torna as seleções de pessoal mais simples, dado que se
tornam secundários a competência em língua estrangeira e o conhecimento prévio em softwares
de mineração e diminui custos com treinamentos a cada nova admissão.

38
Outro ponto relevante para a utilização de scripts é o ganho de produtividade. No estudo
de caso, foi mensurada a necessidade de 30 segundos para execução da atividade completa
(aplicação de atributos e geração do relatório de cubagem) com base no script, enquanto a
geração dos mesmos resultados de forma manual demandou 07 minutos. Vale destacar que
ambos os casos foram medidos utilizando a mesma base de dados e o mesmo usuário, que já
possui treinamento e experiência com o software, o que minimiza o tempo e a possibilidade de
erro, que poderiam ser maiores com um usuário inexperiente. A diferença de 06 minutos e 30
segundos pode ser considerada como relativamente pequena, contudo, dado que scripts
usualmente são utilizados para automatizar processos realizados frequentemente, o tempo
poupado pode ser multiplicado pela frequência de execução do procedimento para análise mais
precisa do ganho de produtividade.
Com relação à tabela de cubagem, observa-se que, além da rapidez com que os
resultados são gerados, estes sempre são retornados dentro de um mesmo padrão. Com a
padronização há ganhos na gestão do conhecimento, uma vez que a rotina para criação dos
relatórios pode ser facilmente auditada e a confiança nos dados aumenta, pois a presença de
erros humanos é minimizada, já que é eliminada a chance da utilização incorreta de campos,
seja por meio da inserção de atributos equivocados ou pelo tratamento incorreto desses, que
pode ocorrer, por exemplo, quando um usuário define que um campo deve ser ponderado pelo
volume e não pela massa. A interpretação dos dados também se torna mais fácil, já que eles
serão sempre disponibilizados da mesma maneira.

39
8. CONCLUSÕES

Avaliando o histórico de scripts na mineração, percebe-se sua difusão nos anos 2000,
se adaptando tanto a grandes quanto a pequenos empreendimentos minerários. Nesse contexto,
cada software desenvolveu sua abordagem para a criação de scripts, adotando diferentes
linguagens de programação.

A metodologia utilizada no estudo de caso aponta que se requer que o usuário tenha
conhecimento prévio sobre programação e sobre o software utilizado para ser capaz de criar
um script, mas nenhum desses conhecimentos é necessário para as pessoas que irão utilizar o
script finalizado. Ressalta-se que as linguagens de script apresentam curva de aprendizado
curta por natureza, já que possuem sintaxe simplificada e trata-se de linguagens interpretadas,
ideais para programadores casuais.

O estudo de caso demonstrou que a customização pode atender satisfatoriamente a


demandas específicas de uma mina, atípicas na indústria mineral. A utilização do script gerou
ganhos de produtividade ao reduzir o tempo necessário para criação dos seus produtos, pois o
procedimento estudado demanda 7 minutos para sua execução de forma manual, mas apenas
30 segundos quando utilizado o script, reduzindo o tempo de processamento em 1400%. Com
a redução de tempo despendido em processamento, haverá uma carga horária menor no projeto
como um todo, possibilitando maior produtividade. Além disso, o estudo apontou que é
possível tornar a utilização do software mais intuitiva e simples a partir da construção de uma
interface de script simplificada, com foco no usuário inexperiente e escrita em sua língua
materna, o que traz ganhos às mineradoras ao reduzir o impacto da rotatividade de pessoal e
reduz custos com treinamentos. Por fim, scripts trazem ganhos na gestão do conhecimento,
pois aumentam a confiabilidade dos arquivos e simplificam a sua análise por meio da
padronização. Dadas essas características, os scripts se mostram recomendáveis às rotinas de
uma mineradora.

40
9. SUGESTÕES PARA TRABALHOS FUTUROS

É possível ampliar o entendimento sobre como os scripts podem se dar em outros


softwares de mineração, principalmente levantando um arcabouço acerca das aplicações em
outras fases do ciclo produtivo, excetuado a parte de planejamento como já demonstrado neste
estudo.

É válido entender melhor como as linguagens de script podem ser comparadas entre si,
procurando entender quais possuem ganhos em relação umas às outras. Além disso, é válido
comparar macros e scripts e apontar quando utilizar um método ou o outro.

Por fim, uma área relacionada a ser melhor explorada seria como a customização de
softwares pode ser incluída como objeto de estudo e por conseguinte de ensino nos cursos de
graduação, a fim de instigar e capacitar os alunos a desenvolverem suas próprias soluções.

41
10. REFERÊNCIAS BIBLIOGRÁFICAS

CORUM MERGERS & ACQUISITIONS. Corum's Client Surpac Minex Acquired by


GEMCOM. 2006. Disponível em: https://www.corumgroup.com/insights/corums-client-
surpac-minex-acquired-gemcom. Acesso em: 19 fev. 2021.

DATAMINE. Manual de Treinamento Básico Studio RM. Belo Horizonte, [2019]. 455 p.

DATAMINE. Studio RM help document. Datamine Corporate Limited, [201-?].

DATAMINE. Studio RM: resource & reserve solution. 2021. Disponível em:
https://www.dataminesoftware.com/solutions/studio-rm-resource-modelling/. Acesso em: 19
fev. 2021.

FRANCOIS, Damien. Introduction to Scripting Languages. Louvain, 2015. Color.


Disponível em: https://www.cism.ucl.ac.be/Services/Formations/scripting.pdf. Acesso em: 17
fev. 2021.

GERMANI, Darcy José. A mineração no Brasil. 2. ed. Rio de Janeiro: Cgee, 2002. 60 p.
Disponível em: http://www.finep.gov.br/images/a-finep/fontes-de-orcamento/fundos-setoriais
/ct-mineral/a-mineracao-no-brasil.pdf. Acesso em: 05 maio 2021.

GONÇALVES, Patrícia Geralda. Desenvolvimento de modelos de simulação para as


atividades de decapeamento e lavra de uma mina de bauxita com o software Arena. 2019.
78 f. TCC (Graduação) - Curso de Engenharia de Minas, Departamento de Engenharia de
Minas, Universidade Federal de Ouro Preto, Ouro Preto, 2019. Disponível em:
https://www.monografias.ufop.br/bitstream/35400000/2014/6/MONOGRAFIA_Desenvolvim
entoModelosSimula%c3%a7%c3%a3o.pdf. Acesso em: 10 jan. 2021.

GRAY, David N. et al. Modern Languages and Microsoft's Component Object Model.
Communications of The Acm, [s. l], v. 41, n. 5, p. 55-65, maio 1998. Disponível em:
https://dl.acm.org/doi/10.1145/274946.274957. Acesso em: 18 fev. 2021.

GRILLO, F. del N.; FORTES, R. P. de M. Aprendendo javascript. Material Didático. São


Carlos: ICMC-USP, 2008, 47p.

GRIPA, Jeanderson. APLICAÇÃO DA TECNOLOGIA WEBSNAP PARA O


DESENVOLVIMENTO DE PÁGINAS HTML. 2002. 61 f. TCC (Graduação) - Curso de

42
Ciências da Computação, Centro de Ciências Exatas e Naturais, Universidade Regional de
Blumenau, Blumenau, 2002. Disponível em: http://www.inf.furb.br/departamento/arquivos/tcc
s/monografias/2002-2jeandersongripavf.pdf. Acesso em: 18 fev. 2021.

HACK, D.R.. Utilization of scripting languages for customization of mine planning packages
by specialized users. In: INTERNATIONAL SYMPOSIUM ON APPLICATION OF
COMPUTERS AND OPERATIONS RESEARCH IN THE MINERALS INDUSTRIES, 31.,
2003, Cape Town. Proceedings [...]. Cape Town: F. A. Camisani-Calzolari, 2003. p. 115-122.
Disponível em: http://www.saimm.co.za/Conferences/Apcom2003/115-Hack.pdf. Acesso em:
14 nov. 2020.

MICROSOFT. COM Technical Overview. 2018. Disponível em:


https://docs.microsoft.com/en-us/windows/win32/com/com-technical-overview. Acesso em:
19 fev. 2021.

OUSTERHOUT, John K.. Scripting: higher level programming for the 21st century.
Computer, [s. l], v. 31, n. 3, p. 23-30, mar. 1998. Disponível em: https://ieeexplore-ieee-
org.ez27.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=660187. Acesso em: 17
fev. 2021.

PIES, Flavio Mac Knight; FIGUEIREDO, Guilherme Belotti Paes de. Análise de software e
algoritmos de planos de lavra. 2015. 63 f. TCC (Graduação) - Curso de Engenharia de
Produção, Escola Politécnica, Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2015.
Disponível em: http://monografias.poli.ufrj.br/monografias/mono poli10013479.pdf. Acesso
em: 10 jan. 2021.

QUARESMA, Arthur Rodrigues et al. INVESTIGAÇÕES GEOTÉCNICAS. In: FALCONI,


Frederico et al (ed.). FUNDAÇÕES: teoria e prática. 3. ed. São Paulo: Oficina de Textos,
2019. Cap. 3, Disponível em: http://ofitexto.arquivos.s3.amazonaws.com/degustacao/fundacoe
s-teoria-e-pratica_deg.pdf. Acesso em: 26 maio 2021.

SACHS, Paulo Fernando Tardelli. Cadeia de valor mineral e tecnologia da informação:


alinhamento estratégico como gerador de eficácia em empresas de mineração. 2009. 169 f.
Tese (Doutorado) - Engenharia Mineral, Departamento de Engenharia de Minas e de Petróleo,
Escola Politécnica da Universidade de São Paulo, São Paulo, 2009. Disponível em:

43
https://teses.usp.br/teses/disponiveis/3/3134/tde-11082010-154822/pt-br.php. Acesso em: 10
jan. 2021.

SILVA, Antonio Matheus. Desenvolvimento de Software para Estimativa de Reservas


Utilizando Métodos Convencionais: inverso da distância e triangulação. 2019. 38 f. TCC
(Graduação) - Curso de Engenharia de Minas, Departamento de Engenharia de Minas, Escola
de Minas da Universidade Federal de Ouro Preto, Ouro Preto, 2019. Disponível em:
https://www.monografias.ufop.br/bitstream/35400000/2221/1/MONOGRAFIA_Desenvolvim
entoSoftwareEstimativa.pdf. Acesso em: 10 jan. 2021.

SILVA, Daniela Rocha; SOBRAL, Luis Felipe Bentin. Um Estudo em Larga Escala sobre a
Estrutura do Código-fonte de Pacotes JavaScript. 58 f. TCC (Graduação) - Curso de
Sistemas de Informação, Escola de Informática Aplicada, Universidade Federal do Estado do
Rio de Janeiro, Rio de Janeiro - RJ, 2017. Disponível em: https://bsi.uniriotec.br/wp-content/up
loads/sites/31/2020/05/201707DanielaRochaLuisSobral.pdf. Acesso em: 17 fev. 2021.

SILVA, Maurício Samy. HTML5: a linguagem de marcação que revolucionou a web. 2. ed.
São Paulo: Novatec Editora Ltda, 2019. 336 p.

SILVA, Rondinelli de Souza. Aplicação de tecnologia wireless para controle de qualidade


do planejamento de lavra incorporando a incerteza geológica. 2006. 94 f. Dissertação
(Mestrado) - Curso de Engenharia Mineral, Departamento de Engenharia de Minas e de
Petróleo, Escola Politécnica da Universidade de São Paulo, São Paulo, 2006. Disponível em:
https://www.teses.usp.br/teses/disponiveis/3/3134/tde-22072007193750/publico/dissertacaon
ov06.pdf. Acesso em: 10 jan. 2021.

TAVARES, Flávio Loyola. Avaliação do impacto da diluição na economicidade de um


realce. 2016. 54 f. TCC (Graduação) - Curso de Engenharia de Minas, Departamento de Minas
Construção Civil, Centro Federal de Educação Tecnológica de Minas Gerais, Araxá, 2016.
Disponível em: https://www.eng-minas.araxa.cefetmg.br/wp-content/uploads/sites/170/2018/
05/Flavio_Loyola_Tavares.pdf. Acesso em: 26 maio 2021.

44
11. ANEXOS

45
46
47
48
49
50
51
52
53
54
55
56
57

Você também pode gostar