You are on page 1of 67

RESUMEN

El presente informe redacta las actividades realizadas durante enero-abril de la beca

Cerro Verde 2016, y los conocimientos adquiridos sobre las operaciones de

topografa y planeamiento de la mina Cerro Verde. Este periodo de prcticas tiene

como objetivo principal participar en las actividades que realiza el rea de

Planeamiento Corto Plazo, en su labor diaria en topografa y planeamiento en s.

Estar en topografa permite obtener nociones y criterio de campo,dado que los ojos

de la mina estn en el rea de topografa, se logr conocer las operaciones unitarias

de manera privilegiada. Todo ello con la finalidad de notar posibles puntos de mejora

y aplicar los conocimientos obtenidos a lo largo de la formacin acadmica en el rea

a desarrollar las prcticas.


2

ABSTRACT

This document redacts the performed activities between January and April of the

Cerro Verde training program, and the knowledge learned about operations and

planning of Cerro Verde. This training period has as a main objective: Being part of

the activities that short term planning does daily, in topography, which belongs to the

area. Being in topography allows get field notions and some practical experience,

this due to topography are mines eyes. Getting to know each part of the main

operations chain.

This training program has as a purpose that one realize some improvement aspects

and to apply knowledge learned.


INDICE
INTRODUCCIN........................................................................................... 1
OBJETIVOS.................................................................................................. 2
OBJETIVOS GENERALES:.....................................................................
OBJETIVOS ESPECIFICOS:....................................................................
OBJETIVOS DE LA BECA CERRO VERDE................................................
CAPITULO I: GENERALIDADES......................................................................4
1.1. COMPAA MINERA CERRO VERDE...................................................
1.2. GEOGRAFIA....................................................................................
1.3. GEOLOGIA Y METALURGIA..............................................................
CAPITILO II: OPERACIONES MINA..................................................................7
2.1. PERFORACION Y VOLADURA...........................................................
2.1.1. PERFORACIN..........................................................................9
2.1.1.1. Proyectos de produccin:..........................................................9
2.1.1.2. Proyectos de control:.............................................................10
2.1.1.2.1. Diseo de rampas.................................................................11
2.1.1.3. Proyectos de pre-corte:...........................................................11
2.2. VOLADURA:..................................................................................
2.2.1. Evaluacin de resultados...............................................................12
2.3. CARGUO:.....................................................................................
2.4. ACARREO:.....................................................................................
CAPITULO III: CORTO PLAZO Y TOPOGRAFA...............................................17
3.1. AREA: PLANEAMIENTO CORTO PLAZO............................................
3.1.1. TOPOGRAFA..........................................................................17
a) Levantamiento y replanteo topogrfico de frentes de minado........................18
b) Escaneo con laser:.............................................................................19
c) Levantamientos con estacin total..........................................................20
d) Lentamente contnuos.........................................................................21
e) Replantos...................................................................................... 22
f) Marcado de chutas............................................................................. 25
g) Marcado de polgonos:.......................................................................26
3.1.2. DESARROLLO DE SOFTWARE:..................................................28
3.1.2.1. Desarrollo de scrips para topografa...........................................28
3.1.2.1.1. Graficador de puntos de carga y descarga - Buckets y descargas.py:.28
3.1.2.1.2. Actualizador de crestas y toes, script.......................................37
3.1.2.1.2.1. Actualizador topogrfico.py:............................................37
3.1.2.2. Otros script desarrollados para el rea........................................46
3.1.2.2.1. Aporte al rea en general......................................................46
3.1.2.2.1.1. Convertidor de arhivos geometricos de format *.msr a *.csv -
Convert msr to csv.py......................................................................46
3.1.2.2.2. Aportes a ore control:..........................................................47
3.1.2.2.2.1. Actualizador del modelo de bloques de los stock - Update stock
10.py 47
3.1.2.2.2.2. Herramienta para el modelado de stocks - DH from bucket 104.py
48
3.1.2.2.2.3. Interpolacin de zonas con variables discretas - Poligono Voronoi
1d.py 49
3.1.2.2.3. Aportes al rea de planeamiento de minado...............................50
3.1.2.2.3.1. Herramientas para el clculo de ciclos de acarreo y clculo de flota
- Hauling tool 132.py......................................................................50
3.1.2.2.4. Aportes a planeamiento de perforacin y voladura......................52
3.1.2.2.4.1. Calculo del tiempo de perforacin de proyectos de perforacin, y
grafica de radios de influencia - Drilling and blasting.py...........................52
3.1.2.2.4.2. Graficador de taladros planeados, perforados y muestreados -
Perforacin CV 16.py......................................................................52
CONCLUSIONES......................................................................................... 54
RECOMENDACIONES:..............................................................................
DEFINIONES Y ABREVIATURAS...................................................................57

INDICE DE FIGURAS
FIGURA N 01: Ubicacin de Cerro Verde...................................................5
FIGURA N 02: Plantas Concentradoras......................................................6
FIGURA N 03: Mallas de Perforacin......................................................10
FIGURA N 04: Diseo de rampa, vista de perfil..........................................11
FIGURA N 05: Fotografa tomada por la Pala 16.........................................12
FIGURA N 06: Levantamientos Topogrficos.............................................18
FIGURA N 07: Subida de los levantamientos en el Minesight.........................19
FIGURA N 08: Escaneo Lser................................................................20
FIGURA N 09: Levantamiento con Estacin Total.......................................21
FIGURA N 10: Levantamientos Continuos................................................22
FIGURA N 11: Replanteos utilizando receptor para la visualizacin de los puntos.
........................................................................................................23
FIGURA N 12: Marcado de Toes y Lmites De Minado y Lmites De Diseo.....24
FIGURA N 13: Marcado de Inicios de Cabeza y Rampas...............................25
FIGURA N 14: Marcado de Inicios de Cabeza y Rampas...............................25
FIGURA N 15: Marcado de lmites de Descarga en Stocks Desmonteras y PADs. 26
FIGURA N 16 : Marcado de Polgonos.....................................................27
FIGURA N 17: Polgonos de minado delimitados........................................27
FIGURA N 18: Polgonos de minado delimitados........................................28
FIGURA N 19: Visualizacin de un levantamiento de Cresta, verde, antes de ser
unido.................................................................................................38
FIGURA N 20: Visualizacin de un levantamiento de Cresta que ha sido unido...39
FIGURA N 21: Interface de MSR to CSV.py..............................................47
FIGURA N 22: Interface de Update stocks g CV1 0.py.................................48
FIGURA N 23: Interface de BucketTaladro 105.py......................................49
FIGURA N 24 : Interface de Voronoi d.py.................................................50
FIGURA N 25: Interface de Hauling 1 32.py..............................................51
FIGURA N 26: Interface de Drilling and blasting planner 1.0.py.....................52
FIGURA N 27: Interface de perforacin CV 1.6..........................................53
INDICE DE TABLAS

Tabla 01: Ratios De Minado De Las Palas Promedio De 2 Meses......................14


Tabla 02: Cuadro de destinos de desmonte de la pala 10, para la fase CV4, banco
2318 y una fecha dada...........................................................................16
INTRODUCCIN

La actividad minera es una de las ms importantes en nuestro pas, pues es la que

genera mayores divisas; por lo cual se requiere la formacin de buenos profesionales

que permitan seguir desarrollndola para que nuestra economa creciendo y

fortalecindose.

Aplicando lo aprendido en la universidad se puede aportar nuevos y valiosos

conocimientos para el rea donde se realiza las prcticas profesionales, y por qu no

en otras unidades mineras.

En este documento redacta lo aprendido en el rea de planeamiento y topografa

durante el periodo de enero a abrilen la beca cerro verde 2016. Resaltando en todo

momento una cultura de seguridad y salud en el trabajo, considerando adems la

integracin con el personal para hacer ms productivas las actividades desarrolladas

da a da.

OBJETIVOS

OBJETIVOS GENERALES:

Conocer la operacin minera de cerro verde, as como su estructura interna y

lnea de mando funciones, objetivos y deberes que tiene el rea de

Planeamiento Corto Plazo.

Describir las actividades realizadas durante las prcticas profesionales en la

Sociedad Minera Cerro Verde S.A.A.


OBJETIVOS ESPECIFICOS:

Tener criterio de campo, y conocer a detalle las operaciones para encontrar

oportunidades de mejora.

Aplicar los conocimientos obtenidos a lo largo de la formacin acadmica en

el rea a desarrollar las prcticas.

OBJETIVOS DE LA BECA CERRO VERDE

Conocer y relacionarse con las maquinarias, zonas, sistemas de trabajo y

partes de la mina.

Aprender las tcnicas topogrficas y manejo de equipos del rea utilizados en

mina.

Concientizarse sobre sobre la seguridad y los cuidados que siempre se deben

tener.

Apoyar al equipo de trabajo e identificar dificultades y posibles propuestas de

mejora.

CAPITULO I: GENERALIDADES

1.1. COMPAA MINERA CERRO VERDE


Es administrado por Freeport-McMoRan, 53.56%; 21% SMM Cerro Verde

Netherlands B.V. (a subsidiary of Sumitomo Metal Mining Company Ltd.);

19.58% Compaa de Minas Buenaventura S.A.A.; y 5.86% por otros

accionistas. La minera peruana Sociedad Minera Cerro Verde S.A.A. opera un


complejo minero de molibdeno y cobre a cielo abierto ubicado a 30km de la

ciudad de Arequipa, Per. Es uno de los principales productores de cobre del

pas. Sus instalaciones incluyen un concentrador y plantas de lixiviacin

SX/EW. Freeport McMoRan Copper & Gold Inc., con sede en EEUU, posee el

53,56% de Cerro Verde, a travs de Cyprus Climax Metals Co., mientras que

SMM Cerro Verde Netherlands N.V. (subsidiaria de Sumitomo Metal Mining

Company Ltd.) controla un 21% de la operacin y el resto est en manos de

Compaa de Minas Buenaventura S.A.A. (19,58%) y otros accionistas. La

empresa est llevando a cabo un proyecto de expansin de la mina con el fin de

aumentar su tasa de procesamiento, extraccin y produccin anual de 120.000t/d

de mineral a 360.000t/d y aadir una produccin anual de aproximadamente 600

Mlb (272.155t) de cobre y 15Mlb de molibdeno a partir del 2016.

1.2. GEOGRAFIA
La Sociedad Minera Cerro Verde S.A.A. tiene sus instalaciones en la regin

Arequipa, Per, a 30 km al sur oeste de la ciudad de Arequipa se ubican a 30

Km. al nor-oeste de la ciudad de Arequipa, tal como se muestra en la Figura

N01 y a una altitud promedio de 2.600 metros sobre el nivel del mar, en un

valle rido con escasa vegetacin y de topografa ondulada. Se caracteriza por

tener un clima caluroso y de poca escorrenta. Se dice que es una de las minas

ms secas del Per. La temperatura promedio durante el da es de 22 C

aproximadamente, y durante la noche desciende hasta 6 C.


FIGURA N 01: Ubicacin de Cerro Verde
Fuente: La empresa.

1.3. GEOLOGIA Y METALURGIA

Cerro Verde es un yacimiento de prfido de cobre que tiene oxido lixiviable y

mineralizacin de sulfuro secundario, y mineralizacin de sulfuro primario

pulverizable, pueden pasar por los procesos de chancado y molienda siendo el

tamao de las partculas reducido a menos de 400 m, con presencia de

minerales como pirita, calcopirita, molibdenita, magnetita, galena, esfalerita,

pirrotina, tetraedrita, cobre nativo, anhidrita, calcocita, novelita, cuarzo y

algunas brechas con turmalina.

Actualmente, la Sociedad Minera Cerro Verde S.A.A. explota sus reservas

mineras constituidas por sulfuros secundarios y primarios, a travs del tajo

abierto Cerro Verde a un ritmo de aproximadamente 700 000 toneladas mtricas

diarias de movimiento total. Se procesa en plantas concentradoras y mediante

lixiviacin en pilas, para producir en su planta de extraccin por solventes y

circuito electroltico (SX/EW),electroltico de alta pureza en forma de

ctodoscobre; se puede apreciar una vista general en la Figura N02. Para el


procesamiento se cuenta con 02 concentradoras con capacidad de 360,000 TMD,

una planta para Crush Leach de 39,000 TMD y Leaching. (Ver Figura N02)

FIGURA N 02: Plantas Concentradoras

Fuente: RPP Noticias

Los ctodos de cobre son transportados por camiones al puerto de Matarani,

desde donde se exportan a mercados internacionales.


CAPITILO II: OPERACIONES MINA

Cerro Verde utiliza el mtodo de explotacin a Tajo Abierto (Open Pit), debido a las

condiciones del yacimiento, prfido de cobre y molibdeno, permite un minado

masivo.

La produccin de la mina es ejecutada por el rea de operaciones mina siguiendo los

planes dados por el rea de planeamiento, principalmente, y el apoyo y coordinacin

de otras reas, donde se busca lograr sinergia en los trabajos, para el bien de la

compaa, que finalmente se traduce en ingresos para los stakeholdes y shareholdes.

En este captulo se describirn las operaciones unitarias desde el punto de vista del

rea de Planeamiento corto plazo.

2.1. PERFORACION Y VOLADURA

Busca fragmentar el material para el minado, utilizando equipos eficazmente y

planeando de tal manera que se abastezca a los procesos cumpliendo tonelajes y leyes

requeridas.

Planes de perforacin y voladura

Los planes de perforacin y voladura son realizados 2 veces por semana en

coordinacin con el rea de planeamiento corto plazo, operaciones y perforacin-

voladura.

Para ello, se toman las siguientes consideraciones:

El rea de perforacin. la cual debe estar habilitada. Frecuentemente

es dada conforme al avance de las palas.


Tiempo de perforacin, se debe calcular y evaluar si con los recursos

disponibles es posible entregar el proyecto para una fecha

determinada.
Lograr la mayor utilizacin posible de las perforadoras y si es posible

contar con el apoyo de equipos auxiliares para el transporte de las

perforadoras.
La cara libre, sin esta la voladura es de mala calidad es decir mala

fragmentacin y puede afectar la estabilidad del talud.


Los radios de influencia directa de los disparos, las palas deben estar

a una distancia determinada de los proyectos, para evitar los daos

que pueden causar los fly-rocks.Siempre considerando que las palas

no deben desplazarse grandes distancias.


La premura con la que se necesita el material, dado el alto valor de los

equipos, estos no pueden quedar paralizados por falta de material para

minar.
Los mantenimientos programados de los equipos, principalmente de

las palas.
Requerimientos de mineral, debido a que existen distintos procesos,

los cuales deben ser desbastecidos.


Condiciones operativas de minado, como lo es el ancho de minado,

disponibilidad y ubicacin del cable elctrico de las palas, anchos de

va, estabilidad de los taludes y condiciones de seguridad.

Una vez aprobado el plan de perforacin y voladura. Es distribuido y se le da el

seguimiento por los supervisores de campo para que se cumpla segn los plazos

estimados.

2.1.1. PERFORACIN
Su fin es perforar los bancos para introducir explosivos para detonar y fragmentar la

roca. Los parmetros de espaciamiento de las mallas de perforacin son dados por el

rea de perforacin y voladura y el rea de planeamiento corto plazo las disea.

Los proyectos de perforacin y voladura son divididos en tres clases:

2.1.1.1. Proyectos de produccin:

En estos proyectos el volumen detonado es mayor, y su objetivo es tener una

fragmentacin idnea, actualmente el objetivo es obtener un P80=8 in. Las mallas de

perforacin son de geometra triangular, y siempre se trata que sean lo ms regulares

posibles, tal como se muestra en la Figura N03.

Para el clculo de tiempo de perforacin y cantidad de perforadoras requeridas se

utiliza un modelo proporcionado por la compaa cuyo principal input es la dureza

in-situ.

TALU
FIGURA N 03: Mallas de Perforacin.
Fuente: La empresa

2.1.1.2. Proyectos de control:

En este tipo de proyectos existe un volumen detonado menor, aproximadamente

tienen 40m de ancho, y tienen como objetivo principal cuidar la estabilidad de los

taludes.

Salvo excepciones dadas por la geometra, estos proyectos tienen 4 filas y que segn

su distancia al talud son:

Trim
Buffer
Produccin modificada
Produccin

Cuando las condiciones geotcnicas son pobres, se perforan dos filas de taladros

entre el proyecto de control y el talud, los cuales no son cargados con explosivo, a

este tipo de diseo se le denomina filtro.

2.1.1.2.1. Diseo de rampas

Las rampas de diseo estn constituidas por material in-situ, desde la cabeza de

rampahasta la media rampa, y por material de relleno desde la media rampa hasta el

pie de rampa.

Para ello la mallas de perforacin de una rampa perfora todo el banco desde la media

rampa hasta el pie de rampa y la otra mitad se perfora solo hasta alcanzar el plano de

diseo de rampa.
FIGURA N 04: Diseo de rampa, vista de perfil

Fuente: Elaboracin Propia

2.1.1.3. Proyectos de pre-corte:

Su objetivo no es obtener material para minar, sino cuidar el talud mediante pre-corte

del macizo en zonas que donde amerita esta tcnica. Son perforados en las crestas y

con los ngulos de diseo de los taludes. Son perforadas con dimetros menores que

el de los proyecto de control y produccin.


2.2. VOLADURA:

Las secuencias de disparo y estndares son dados por la corporacin Freeport-

McMoRan, a excepcin del carguo de explosivos, el cual es tercerizado.Las

detonaciones se realizan diariamente, de da, restringiendo la presencia de equipos y

personalen el rea de influencia directa.

2.2.1. Evaluacin de resultados

La fragmentacin es evaluada mediante el sistema DSR, las palas tienen instaladas

cmaras fotogrficas que capturan los frentes cada vez que se da una carga. Estas son

procesadas obteniendo el P80 con lo cual se evala la voladura de manera retroactiva

y se advierte a los procesos de chancado que tipo de material, en dimensin, se est

minando, tal como se muestra en la Figura N 05.

FIGURA N 05: Fotografa tomada por la Pala 16


Fuente: La empresa

2.3. CARGUO:

El minado se da mediante 11 palas entre hidrulicas y elctricas, las cuales minan

bancos de 15m de altura, con ratios de minado en condiciones normales de entre 50

y 95 KTM/da, adems tambin se mina opcionalmente con cargadores frontales para


re carguo o apoyo en los frente de minado. Diariamente se mueven en promedio 700

KTM.

Las palas son ubicadas estratgicamente para suplir los requerimientos de los

procesos, minan segn lmites de minado temporales o de diseo. Teniendo en cuenta

que el estndar de minado es 80m.

Para el plan de minado, se dan dos reuniones semanales, posteriores a la perforacin

y voladura. En esta define el orden y sentido del minado, prioridades de minado, y

como se cumplirn los requerimientos en tonelaje y ley de los requerimientos de los

procesos.

Para ello se basan en ratios de minado, los cuales se estiman teniendo en cuenta los

siguientes factores:

Si la pala minar proyectos de control, produccin o en rampa.


La fragmentacin de los frentes.
Necesidades de los procesos, es decir no todos los frentes tienen las mismas

leyes y mineralizacin.
Condiciones geotcnicas de los taludes.
Anchos, espacio disponible para el minado.
Disponibilidad de camiones para el acarreo.
Disponibilidad mecnica de las palas.
La ubicacin del cable elctrico de la pala.

Los ratios de minado pueden son altamente variantes, debido a las prioridades que

tengan en el minado, por lo cual determinante es el seguimiento e importancia del

minado de cada pala.

En la siguiente tabla se observa cuan variante pueden ser los ratios de minado, el cual

ha sido resumido de un periodo de 2 meses.


Tabla 01: Ratios De Minado De Las Palas Promedio De 2 Meses

Fuente: Elaboracin Propia

Como se observa, los ratios, aunque con tendencia segn el tipo de pala, no son

regulares, esto es debido a ubicacin en la que se encuentran. En cerro verde se

minan fases en paralelo con lo que se logra:


Mientras una fase tiene ciclos de acarreo mayores por la profundidad otra

tenga ciclos cortos.


Se realiza el blending de la dureza del mineral entre las fases que se han

profundizado con mayor dureza y las fases que an estn en la parte

superficial.
Se logra cumplir los requerimientos de los procesos, pues cada fase mina

diferente tipo de mineralizacin del yacimiento


2.4. ACARREO:

Es realizado por cerca de una centena de camiones gigantes mineros, los cuales son

distribuidos por la central de despacho segn la distancia de acarreo y prioridad de

minado de los frentes.

Las vas de Cerro Verde tienen importancia para la compaa, son mantenidas

constantemente con lo que se logra que los neumticos tengan mayor tiempo de vida

y aumente la disponibilidad de los equipos de acarreo.

Las distancias de acarreo son importantes en los planes de minado. La correcta

eleccin de destinos para depositar en chancadoras, stocks, botaderos o PADs har

que la productividad sea ptima.

As por ejemplo, para la eleccin de un botadero para el desmonte de la Fase CV4 se

tienen las siguientes opciones, las cuales se muestran en la Tabla N 02.

Tabla 02: Cuadro de destinos de desmonte de la pala 10, para la fase CV4,

banco 2318 y una fecha dada.


Se observa que el botadero W6 tiene el menor ciclo, prcticamente la mitad del ciclo

al botadero SE.

En la eleccin de un destino est implcito que este est habilitado, no haya

interferencias con otros trabajos o proyectos; tomando en cuenta que las condiciones

geotcnicas as lo permitan. Asimismo que este contemplado en los planes de largo

plazo. Finalmente cada minuto ganado se traduce en millones de dlares en ahorro

anuales.
CAPITULO III: CORTO PLAZO Y TOPOGRAFA

3.1. AREA: PLANEAMIENTO CORTO PLAZO

Encargada de la planificacin del minado en coordinacin con el rea de

Planeamiento Largo Plazo.

Entre sus funciones estn:

1. Planificacin dara, semanal, mensual y trimestral del minado en

coordinacin con las dems reas de la mina.

2. Planificacin de zonas de descarga en desmonteras, PADs y stocks.

3. Planificacin de disparos, abastecimiento de energa y actividades afines al

minado.

4. Supervisin en campo, en coordinacin con el rea de operaciones,

geologa, seguridad entre otras.

5. Ore control.

6. Topografa.

3.1.1. TOPOGRAFA

En la actualidad, la operacin minera, open pit, consta de 02 tajos: Cerro

Verde ms de 500 m de profundidad y 2 km de ancho y Santa Rosa cerca de

300 m y 1500 m de ancho, el PAD-4B y el PAD-1X, Depsitos dinmicos,


para material del crush leach, concentradora 01 y concentradora 1, y

Depsitos de material en exceso (DDM) y las diversas vas de acarreo. Las

cuales son levantadas y replanteadas por el rea de topografa.

Adems, dado que son en su mayora tareas de campo, estas labores se

realizan con sumo cuidado para evitar lesiones y prdidas Esta rea

diariamente realiza:

a) Levantamiento y replanteo topogrfico de frentes de


minado

Se realizan mediante GPS diferencial, escner ptico y estacin total, y

bastante criterio que se da con la experiencia.

Levantamiento topogrfico: Se levantan las crestas, toes, vas, bermas,

cables hacia pala, rampas y accesos, postes, altura cables, etc.

Replanteo topogrfico: Se marcan limpiezas para rea de perforacin,

pre-cortes, taladros en zonas donde las perforadoras no tienen cobertura,

marcado de lmites de minado temporal y diseos, marcado de cabeza y

pie de rampas, lmites de chorreado, ver Figura N06.


FIGURA N 06: Levantamientos Topogrficos

Fuente: Elaboracin Propia

Los levantamientos son subidos a la red y adems con estos se actualiza

la topografa en Minesight, tal como se muestra en la Figura N07.

FIGURA N 07: Subida de los levantamientos en el Minesight

Fuente Elaboracin Propia


b) Escaneo con laser:

Se utiliza para levantamientos topogrficos donde se requiere precisin

y afines, escanea tomando miles de puntos de superficies, y tiene un

alcance de hasta 2km.

Para estacionarse se necesita por lo menos un punto conocido para visar

y un punto conocido para estacionarse. Tambin se puede lograr

mediante orientacin magntica, la cual no es precisa.

El procesamiento se da con software del fabricante, bsicamente se

elimina partculas de polvo que fueron captadas, equipos que estuvieron

en el instante que fue el barrido de puntos.

Esta tcnica tiene entre sus grandes ventajas la precisin; sin embargo el

tiempo de procesamiento en gabinete y costo de adquisicin no permite

que sea utilizado en todos los trabajos, una muestra del escaneo con

lser en la Figura N08.


FIGURA N 08: Escaneo Lser

Fuente: Elaboracin Propia

c) Levantamientos con estacin total

Al igual que el Escner laser, este necesita de dos puntos conocidos un

punto para visar y un punto para estacionarse. Ambos pueden ser

temporales, generase mediante GPS diferencial, o apoyndose en puntos

cementados conocidos, Ver Figura N09.


FIGURA N 09: Levantamiento con Estacin Total

Fuente: Elaboracin Propia

Los levantamientos con estacin total son ms veloces y rpidos de

procesar, se utilizan para levantar crestas, toes, cables hacia pala, entre

otros. Tambin para conocer la altura de estructuras.

d) Lentamente contnuos

Se realiza con GPS diferencial, el cual est en una base en una

camionera, y al circular los datos son almacenados en el colector segn

se configure, generalmente se utiliza para hallar pendientes de vas,

levantar rampas, vas y plataformas, ver Figura N 10.


FIGURA N 10: Levantamientos Continuos

Fuente Elaboracin Propia

e) Replantos

Entre los ms cotidianos son los marcados de diseos y lmites

temporales de minado, medicin de toes para que las palas lleguen a

minar hasta lo planeado.

Los trabajos topogrficos, aparte de tener base terica, deben tener

bastante criterio de campo. Para ello se deben conocer algunos

estndares de minado como:

Las vas temporales tienen 34m de ancho con m=11%, y las de

diseo 35m de ancho con m=10%, donde ambas consideran una

berma de 6m.
Dependiendo la zona los taludes varan, pero en promedio tienen

talud de 70, siendo minado por bancos dobles, cada banco es de

15m. Luego de minar dos bancos se deja una banqueta en promedio

de 10m

Las palas tienen un ancho de minado de 80m.

Los proyectos de control cuyo ancho suele tener 40m, son separados

en el minado de los proyectos de produccin.

Los lmites de minado son colocados a 8m de los taladros de

proyectos de produccin, y a 10m de los taladros de proyectos de

control, ver Figura N11.

FIGURA N 11: Replanteos utilizando receptor para la

visualizacin de los puntos.

Fuente: Elaboracin Propia.


Marcado de toes y lmites de minado y lmites de diseo.

Los lmites son enviados conforme se avanza el minado en los frentes

de palas, de preferencia se realizan en los cambios de turno.

Se controlan la cota de los pisos de las palas, cuanto resta para llegar al

diseo, en caso de rampas las pendientes. A la vez se colocan en la parte

superior bandern azul o azul con blanco, ver Figura N 12.

FIGURA N 12: Marcado de Toes y Lmites De Minado y

Lmites De Diseo

Fuente: Elaboracin Propia.

Marcado de inicios y cabeza de rampas


No solo se marca dnde empieza la rampa y donde acaba, sino tambin,

los lmites de chorreados, anchos efectivos y lmites de minado de ser el

caso. Ver Figura N13.

FIGURA N 13: Marcado de Inicios de Cabeza y Rampas

Fuente: Elaboracin Propia.

f) Marcado de chutas

Las perforadoras para pre-corte RockDrill, no tienen seal GPS, por lo

cual se colocan rocas pintadas en el collar de cada taladro, tal como se

muestra en la Figura N 14. En el caso de que las perforadoras no

tengan buena seal GPS tambin se marcan mallas de minado


FIGURA

N 14: Marcado de Inicios de Cabeza y Rampas

Fuente: Elaboracin Propia.

Marcado de lmites de descarga en Desmonteras y PADs

Se bloquea o marca los limites hasta donde se pueden realizar

descargas, todo esto segn el LTP y STP, ver Figura N 15.


FIGURA N 15: Marcado de lmites de Descarga en Stocks

Desmonteras y PADs

Fuente: Elaboracin Propia.

g) Marcado de polgonos:

Se realiza con GPS diferencial, estacas y comba, tras el muestro y

procesamiento de leyes, estos son separados en cercados en bloques de

al menos 20m, por ser el ancho mnimo operativo para minar, los cuales

son cargados a los servidores dispatch para una mejor visualizacin son

marcados con banderines, ver Figura N16.


FIGURA N 16 : Marcado de Polgonos

Fuente: Elaboracin Propia.

El fin es que el operador de la pala logre tener un mejor reflejo de su

panel dispatch y se evite la dilucin. Y adems no mine proyectos que

an no estn disparados o que por estrategia aun no deben ser minados y

as como tuberas diamantinas, tuberas de drenaje, ver Figura N17 y

18.

FIGURA N 17: Polgonos de minado delimitados

Fuente: Elaboracin Propia.


FIGURA N 18: Polgonos de minado delimitados

Fuente: Elaboracin Propia.

3.1.2. DESARROLLO DE SOFTWARE:

3.1.2.1. Desarrollo de scrips para topografa

3.1.2.1.1. Graficador de puntos de carga y descarga - Buckets y descargas.py:

Cdigo, se han eliminado las consultas SQL, usuarios y claves

pertenecientes a la compaa

#Se importan las libreras

import Tkinter as tk
from Tkinter import *
from datetime import date
from datetime import timedelta
import sys
import os
import calendar
import time
import datetime
import threading
import math
import time
import string
from ftplib import FTP

from grail import gsys


from grail import messages
from grail import utils
from grail import fileutils
from grail.data.geometry import *
from grail.data import geometry
from grail.ms3d import element
from grail.ms3d import elementop
from grail.ms3d import datamanager
from grail.ms3d import mssys
from grail.ms3d import *
from grail.data.geometry import *
from grail.data import *

TITLE_FONT = ("Helvetica", 13, "bold")


TITLE_FONT1 = ("Helvetica", 10, "bold")
servidor= '"TU SERVIDOR AQUI"'
usuario = 'TU USUARIO AQUI'
contrasena = 'TU CLAVE AQUI'
#INTERFACE
class UpdateStock(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne):#,heremorepages
page_name = F.__name__
frame = F(container, self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="NWSE")
self.show_frame("StartPage")

def show_frame(self, page_name):


'''Show a frame for the given page name'''
frame = self.frames[page_name]
frame.tkraise()

class StartPage(tk.Frame):

def __init__(self, parent, controller):


tk.Frame.__init__(self, parent)
self.controller = controller
controller.title("Bucket - Dumps 1.00")
controller.geometry("280x330")

menubar = Menu(controller)
menubar.add_command(label="Dumps", command=lambda:
controller.show_frame("StartPage"))
menubar.add_command(label="Buckets", command=lambda:
controller.show_frame("PageOne"))

controller.config(menu= menubar)

Label(self,text="Print descargas", font = "Helvetica 15 bold").grid(row=0, column=1,


columnspan=2)
Label(self,text=" ").grid(row=1, column=1, columnspan=2)

Label(self,text="Fecha Inicial:\n(mm/dd/yyyy)", font = "Arial 8


").grid(row=2,column=1)
Label(self,text="Fecha Final: \n(mm/dd/yyyy)", font = "Arial 8
").grid(row=3,column=1)
Label(self,text=" ").grid(row=4, column=1, columnspan=2)
Label(self,text="Destino", font = "Arial 8").grid(row=5,column=1)
Label(self,text="\n\n").grid(row=7, column=1, columnspan=2)

global fecha
global fecha2

fecha = Entry(self)
fecha.grid(row=2,column=2)
fecha2 = Entry(self)
fecha2.grid(row=3,column=2)

dd1 =str( datetime.datetime.now().date().day)


mm1 =str( datetime.datetime.now().date().month)
yy1 = str(datetime.datetime.now().date().year)
dd2 =str( (datetime.datetime.now().date()-timedelta(days=2)).day)
mm2=str((datetime.datetime.now().date()-timedelta(days=2)).month)
yy2=str((datetime.datetime.now().date()-timedelta(days=2)).year)

fecha.insert(0, mm2+"/"+dd2+"/"+yy2)
fecha2.insert(0, mm1+"/"+dd1+"/"+yy1)

date1 = fecha.get()
date2 = fecha2.get()

file2 = open("consulta_items.sql","w")
file2.write(""TU CONSULTA AQUI"")
file2.close()
os.system('sqlcmd -S '+servidor+' -U '+usuario+' -P '+contrasena+' -i
consulta_items.sql -o lect_items.txt')
ruta=os.getcwd()
g = open(ruta+'\lect_items.txt',"r")
numero_t = len(g.readlines())
j=0
g = open(ruta+'\lect_items.txt',"r")
global destin
global var1
global drop
destin=[]
for d in g:
j=j+1
if j>=4 and j <=numero_t and len(d)>0:
linen = d.splitlines()
primer_e = linen[0]
division = primer_e.split()
destin.append(division[0])
if j== numero_t-2:
break
elif j== numero_t-2:
break
destin.append("TODOS")
var1 = StringVar()
var1.set("TODOS")
drop = OptionMenu(self, var1, *destin)
drop.grid(row=5, column=2,columnspan=1 , ipadx=10)
boton_draw= Button(self,text="Dibujar",command=lambda:
getvalues().dibujar_descarga() , font = "Arial 12 bold").grid(row=9,column=1,ipadx=30)
boton_exit = Button(self,text="Cerrar",fg="red",command=controller.destroy , font =
"Arial 12 bold").grid(row=9,column=2,ipadx=30, padx=5)
boton_refres = Button(self,text="Refresh",fg="green", command=lambda:
getvalues().refresho(drop), font = "Arial 12 bold").grid(row=10,column=2,ipadx=24
,padx=5)
Label(self,text="\nSMCV", font = "Arial 12").grid(row=11, column=1, columnspan=2)

class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller

Label(self,text="Print cargas", font = "Helvetica 15 bold").grid(row=0, column=1,


columnspan=2)
Label(self,text=" ").grid(row=1, column=1, columnspan=2)

Label(self,text="Fecha Inicial:\n(mm/dd/yyyy)", font = "Arial 8


").grid(row=2,column=1)
Label(self,text="Fecha Final: \n(mm/dd/yyyy)", font = "Arial 8
").grid(row=3,column=1)
Label(self,text=" ").grid(row=4, column=1, columnspan=2)
Label(self,text="\n\n\n\n").grid(row=7, column=1, columnspan=2)
global fechab
global fecha2b
fechab = Entry(self)
fechab.grid(row=2,column=2)
fecha2b = Entry(self)
fecha2b.grid(row=3,column=2)

dd1b =str( datetime.datetime.now().date().day)


mm1b =str( datetime.datetime.now().date().month)
yy1b = str(datetime.datetime.now().date().year)
dd2b =str( (datetime.datetime.now().date()-timedelta(days=1)).day)
mm2b=str((datetime.datetime.now().date()-timedelta(days=1)).month)
yy2b=str((datetime.datetime.now().date()-timedelta(days=1)).year)

fechab.insert(0, mm2b+"/"+dd2b+"/"+yy2b)
fecha2b.insert(0, mm1b+"/"+dd1b+"/"+yy1b)

boton_draw= Button(self,text="Dibujar",command=lambda:
getvalues().dibujar_cargas() , font = "Arial 12 bold").grid(row=9,column=1,ipadx=30)
boton_exit = Button(self,text="Cerrar",fg="red",command=controller.destroy , font =
"Arial 12 bold").grid(row=9,column=2,ipadx=30, padx=5)
boton_refres = Button(self,text="Run Dig_buck",fg="pink", command=lambda:
getvalues().digbuck(), font = "Arial 12 bold").grid(row=10,column=2)
Label(self,text="\n\n\nSMCV", font = "Arial 12").grid(row=11, column=1,
columnspan=2)

class getvalues:

def dibujar_descarga(self):
fechafin=0
fec = fecha.get()
fec2 = fecha2.get()
date1 = datetime.datetime.strptime(fec, '%m/%d/%Y').date()
date2 = datetime.datetime.strptime(fec2, '%m/%d/%Y').date()
DESTINO2=str(var1.get())
DESTINO1 = "%" + DESTINO2 + "%"

if DESTINO1 == "%TODOS%":
DESTINO = '/**/'
else:
DESTINO = "(hd.loc like '"+ DESTINO1 + "') and "

print "Executing query"


ddays=date2-date1

for xi in range(ddays.days+1):
fechaf = date1 + timedelta(days=xi)
fechafin = str(fechaf)
file1 = open("consulta_descargas_fecha1.sql","w")
file1.write(""TU CONSULTA AQUI"")
file1.close()
os.system('sqlcmd -S '+servidor+' -U '+usuario+' -P '+contrasena+' -i
consulta_descargas_fecha1.sql -o lect_descargas_fecha1.txt')
ruta=os.getcwd()
f = open(ruta+'\lect_descargas_fecha1.txt',"r")
numero_total_lineas= len(f.readlines())
print fechafin," Numero de descargas", numero_total_lineas
i=0
f = open(ruta+'\lect_descargas_fecha1.txt',"r")
descarga = []

for des in f:
i=i+1
if i>=4 and i <=numero_total_lineas and len(des)>0:
cadena = des.splitlines()
primer_elemento = cadena[0]
division = primer_elemento.split()
#dia = division[0]
#shift = division[1]
#poligonos = division[2]
#hora_salida = division[3]
#hora_llegada = division[4]
#equipo_carguio = division[5]
#equipo_acarreo = division[6]
coordenada_x = int(division[7])
coordenada_y = int(division[8])
coordenada_z = 3000
if coordenada_x >0 and coordenada_y >0:
mark=element.create_marker([coordenada_x,coordenada_y,
coordenada_z])
descarga.append(mark)
if i== numero_total_lineas-2:
break
elif i== numero_total_lineas-3:
break
else:
pass
try:
datamanager.make_folder("\\00 Buckets and Dumps\\Dumps\\" + fechafin)
except:
pass
try:
objk = datamanager.create_geometry("\\00 Buckets and Dumps\\Dumps\\" +
fechafin + "\\" + DESTINO2+ " " + fechafin)
except:
datamanager.remove("\\00 Buckets and Dumps\\Dumps\\" + fechafin + "\\" +
DESTINO2+ " " + fechafin)
print "Object overwrited"
objk = datamanager.create_geometry("\\00 Buckets and Dumps\\Dumps\\" +
fechafin + "\\" + DESTINO2+ " " + fechafin)
objk = datamanager.open_geometry("\\00 Buckets and Dumps\\Dumps\\" +
fechafin + "\\" + DESTINO2+ " " + fechafin)
objk.add_elements(descarga)
objk.close()
datamanager.refresh("\\00 Buckets and Dumps\\Dumps\\")
print "Descargas importadas in \\00 Buckets and Dumps\\Dumps\\"

def refresho(self, drop):


print "Maybe it's minimized"
drop['menu'].delete(0, 'end')
date1 = fecha.get()
date2 = fecha2.get()

file2 = open("consulta_items.sql","w")
file2.write( "use Powerview select hist_dumps.loc Destino FROM hist_dumps JOIN
hist_exproot he ON hist_dumps.shiftindex = he.shiftindex left JOIN hist_gradelist on
hist_gradelist.shiftindex = he.shiftindex and hist_gradelist.gradeid = hist_dumps.grade
WHERE (he.shiftdate Between '"+ date1 +"' and '"+ date2 +"')group by hist_dumps.loc
order by hist_dumps.loc")
file2.close()

os.system('sqlcmd -S '+servidor+' -U '+usuario+' -P '+contrasena+' -i


consulta_items.sql -o lect_items.txt')
ruta=os.getcwd()
g = open(ruta+'\lect_items.txt',"r")
numero_t = len(g.readlines())
g = open(ruta+'\lect_items.txt',"r")
destin=[]
j=0
for d in g:
j=j+1
if j>=4 and j <=numero_t and len(d)>0:
linen = d.splitlines()
primer_e = linen[0]
division = primer_e.split()
destin.append(division[0])
if j== numero_t-2:
break
elif j== numero_t-2:
break
destin.append("TODOS")
var1.set("TODOS")
for choice in destin:
drop['menu'].add_command(label=choice, command= lambda v=choice:
var1.set(v))

def dibujar_cargas(self):
fechafinb = 0
fecb = fechab.get()
fec2b = fecha2b.get()
date1b = datetime.datetime.strptime(fecb, '%m/%d/%Y').date()
date2b = datetime.datetime.strptime(fec2b, '%m/%d/%Y').date()

print "Executing query"


ddaysb=date2b-date1b
for xi in range(ddaysb.days+1):
fechafb = date1b + timedelta(days=xi)
fechafinb = str(fechafb)
file1 = open("consulta_cargas_fecha1.sql","w")
file1.write("TU CONSULTA AQUI")
file1.close()
os.system('sqlcmd -S '+servidor+' -U '+usuario+' -P '+contrasena+' -i
consulta_cargas_fecha1.sql -o lect_cargas_fecha1.txt')
ruta=os.getcwd()
f = open(ruta+'\lect_cargas_fecha1.txt',"r")
numero_total_lineas= len(f.readlines())
print fechafinb, " Numero de Cargas prom: ", numero_total_lineas
i=0
f = open(ruta+'\lect_cargas_fecha1.txt',"r")
carga = []
shiftanterior = "A"
for car in f:
i=i+1
if i>=4 and i <=numero_total_lineas and len(car)>0:
cadena = car.splitlines()
primer_elemento = cadena[0]
division = primer_elemento.split()
dia = division[2]
#shovel = division[4]
shift = str(division[3])
#pala = division[5]
#hora_llegada = division[4]
#equipo_carguio = division[5]
#equipo_acarreo = division[6]
coordenada_x = float(division[15])
coordenada_y = float(division[16])
coordenada_z = 3000 #float(division[14])#real
if shift != shiftanterior:
try:
datamanager.make_folder("\\00 Buckets and Dumps\\Buckets\\" +
fechafinb)
except:
pass
try:
objk = datamanager.create_geometry("\\00 Buckets and
Dumps\\Buckets\\" + fechafinb + "\\" + fechafinb+shiftanterior)
except:
datamanager.remove("\\00 Buckets and Dumps\\Buckets\\" + fechafinb
+ "\\" + fechafinb+shiftanterior)
print "Object overwrited"
objk = datamanager.create_geometry("\\00 Buckets and
Dumps\\Buckets\\" + fechafinb + "\\" + fechafinb+shiftanterior)
try:
objk = datamanager.open_geometry("\\00 Buckets and
Dumps\\Buckets\\" + fechafinb + "\\" + fechafinb+shiftanterior)
except:
pass
objk.add_elements(carga)
objk.close()
carga=[]
shiftanterior = shift
if coordenada_x >0 and coordenada_y >0:
mark = element.create_marker([coordenada_x, coordenada_y,
coordenada_z])
carga.append(mark)
if i== numero_total_lineas-3:
break
elif i== numero_total_lineas-3:
break
else:
pass
try:
datamanager.make_folder("\\00 Buckets and Dumps\\Buckets\\" + fechafinb)
except:
pass
if len(carga)>0:
try:
objk = datamanager.create_geometry("\\00 Buckets and Dumps\\Buckets\\" +
fechafinb + "\\" + fechafinb+shift)
except:
datamanager.remove("\\00 Buckets and Dumps\\Buckets\\" + fechafinb + "\\"
+ fechafinb+shift)
print "Object overwrited"
objk = datamanager.create_geometry("\\00 Buckets and Dumps\\Buckets\\" +
fechafinb + "\\" + fechafinb+shift)
try:
objk = datamanager.open_geometry("\\00 Buckets and Dumps\\Buckets\\" +
fechafinb + "\\" + fechafinb+shift)
except:
pass
objk.add_elements(carga)
objk.close()
else:
print "No Buckets"
datamanager.refresh("\\00 Buckets and Dumps\\Buckets\\")
print "Descargas importadas in \\00 Buckets and Dumps\\Buckets\\"

def digbuck(self):
material = 'Digline'
material1 = 'Bucket'
IPdispatch = TU IP AQUI
User = 'TU USUARIO AQUI'
pasword = 'TU CLAVE AQUI'
dia=time.localtime()[2]
mes=time.localtime()[1]
anio=time.localtime()[0]
hora = time.localtime()[3]
min=time.localtime()[4]
nombre="DG %2s-%2s-%2s %2s_%2s" % (anio,mes,dia,hora,min)
nombre1="BCK %2s-%2s-%2s %2s_%2s" % (anio,mes,dia,hora,min)
try:
ftp = FTP(IPdispatch)
ftp.login(User,pasword) # colocar password en caso de expirar el acceso a DSP
ftp.cwd("/dsp/client/shared/avance")
ftp.retrbinary('RETR dig_bhs.dxf', open("digline.dxf", 'wb').write)
ftp.retrbinary('RETR bucket.srv', open("bucket.srv", 'wb').write)
ftp.quit()
print "DIGLINES CORRECTAMENTE ACTUALIZADOS"
print "En el archivo: digline.dxf"

except:
root = Tk()
root.title("Error")
root.withdraw()
tkMessageBox.showerror("ERROR DE ACCESO","Usuario o Password Dispatch
Obsoletos")
root.destroy()
try:
datamanager.make_folder("\\00 Buckets and Dumps\\Digline\\")
except:
pass
try:
mob = datamanager.remove("\\00 Buckets and Dumps\\Digline\\" + nombre)
mob1 = datamanager.remove("\\00 Buckets and Dumps\\Digline\\" + nombre1)
except:
pass
try:
mob = datamanager.create_geometry("\\00 Buckets and Dumps\\Digline\\" +
nombre, "\\materials\\Digline")
mob1 = datamanager.create_geometry("\\00 Buckets and Dumps\\Digline\\" +
nombre1, "\\materials\\ColorPink")
except:
print "El proceso esta corriendo"
print nombre
print nombre1
mob = datamanager.open_geometry("\\00 Buckets and Dumps\\Digline\\" + nombre)
mob1 = datamanager.open_geometry("\\00 Buckets and Dumps\\Digline\\" +
nombre1)
mob.close()
mob1.close()
ruta = datamanager.get_physical_path(mob)
ruta1 = datamanager.get_physical_path(mob1)
geomdata = Geometry(ruta)
geomdata1 = Geometry(ruta1)
inp = open("outrr.txt","r")
pol=0
point = 0
lpts=[]
lcord=[]
for line in inp.readlines():
if line[0:4]=='$$$$':
if pol > 0:
lpts.append(lcord)
try:
geomdata.addpolygon('dig', 'Digline', 0, lpts)
except:
print "1"

pol =pol+1
point = 0
lpts=[]
lcord=[]
else:
if line[0:1] == '&':
if point > 0:
lpts.append(lcord)
point = point + 1
lcord=[]
else:
if line <> 'END':
lcord.append(float(line))
else:
try:
geomdata.addpolygon('dig', 'Digline', 0, lpts)
except:
pass
pol = pol-1
mob.close()
inp.close()
inpt = open("bucket.srv","r")
lspg = []
for line in inpt.readlines():
list = string.split(line)
lisp = [float(list[0]), float(list[1]),2513]
lspg.append(lisp)
try:
geomdata1.addmarkers('bucket', material1, 0, lspg)
except:
pass
inpt.close()
geomdata.storeresource()
mob1.close()
geomdata1.storeresource()
datamanager.refresh("\\00 Buckets and Dumps\\Digline\\" + nombre)
datamanager.refresh("\\00 Buckets and Dumps\\Digline\\" + nombre1)
print "Done"

def gmain(msg, data):

if msg == messages.gPRE_RUN:
pass
elif msg == messages.gRUN:
UpdateStock().mainloop()
elif msg == messages.gPOST_RUN:
pass
else:
return gsys.grailmain(msg, data)

3.1.2.1.2. Actualizador de crestas y toes, script

Observacin:

La topografa de la mina se encuentra almacenada en objetos *.msr,

formato del programa Minesight, la cual es actualizada semanalmente

los lunes de forma oficial y, segn trabajos crticos se puede actualizar

en otros das.

Los topgrafos trabajan durante 4 a 7 horas en promedio, segn la

geometra, dificultad para la visualizacin 3d de los las lneas y agudeza

del usuario.

Este script desarrollado en Python 2.7, lenguaje de programacin de

Minesight, de elaboracin propia, permite que los levantamientos

topogrficos de las crestas, toes, vas, rampas sean rpidamente

actualizados en los objetos CST y TOE de Minesight en segundos.

Agilizando las labores de gabinete y aprovechando ms horas hombre.


3.1.2.1.2.1. Actualizador topogrfico.py:

Como se observa anteriormente, se tena que realizar los siguientes pasos,

por cada cresta y toe de los frentes de minado, actualmente se tienen ms

de 10 frentes, Ver Figuras 19 y 20.

1. Seleccionar la poli lnea correcta, en este caso por tratarse de una

cresta, la poli lnea azul.


2. Filtrar, si es que no se logr seleccionar por superposicin de

objetos o no se logra identificar a que objeto pertenece el

levantamiento.
3. Recortar la polilnea.
4. Unir el levantamiento, poli lnea de color verde a la poli lnea

cresta, azul.
5. Suavizar la lnea para obtener una geometra regular.
FIGURA N 19: Visualizacin de un levantamiento de Cresta, verde, antes de
ser unido.
Fuente: Elaboracin Propia
Con el script actualizador topografico.py se tendria que realizar solo el soguiente
paso:
Seleccionar el levatamiento en el datamanager, y los objetos en el viewer de
minesight.

FIGURA N 20: Visualizacin de un levantamiento de Cresta que ha sido unido


Fuente: Elaboracin Propia
CODIGO DEL SCRIPT:
#CERRO VERDE 2016

#SE IMPORTAN LAS LIBRERIAS UTILIZADAS

from math import *


import Tkinter as tk
import tkFileDialog

import sys
import os
import gc

import threading
import time
import csv
import math

from Tkinter import *

from grail import gsys


from grail import messages
from grail import ag
from grail.data.geometry import *
from grail.data import geometry
from grail.ms3d import selectionbuffer
from grail.ms3d import element
from grail.ms3d import elementop
from grail.ms3d import datamanaer
from grail.ms3d import progressmeter

#FUNCION QUE ACTUALIZA LA TOPOGRAFIA EN SI


def UpdateTC():
print "AUTO JOIN\nStarting"
# SELECCION DE LOS ELEMENTOS PARA EL TRABAJO
elementocolita = datamanager.get_selected()
pathcolita = datamanager.get_physical_path(elementocolita[0])
colita = Geometry(pathcolita)
colastotal = int(colita.getpolylinecount())

pathcolitabu = pathcolita.split(".")[0]+"BackUp.msr"
cuerpitobu = geometry.create_or_open(pathcolitabu)

selectioncuerp = selectionbuffer.get_elements()
pathcuerpito = selectioncuerpo[0].get_parent_physical_path()
create(pathcuerpito.split(".")[0]+"SURF.msr")

cuerpito = Geometry(pathcuerpito)

pm = progressmeter.ProgressMeter()
pm.start(colastotal)
#ANALISIS DE LEVANTAMIENTO POR LEVANTAMIENTO PARA COMPROBAR
A QUE ELEMENTO DEBERIA PERTENECER, SEGN UTILIZANDO
ALGORITMOS DE DISTANCIA Y SENTIDO. Y VALIENDOSE DE LA GEOMETRIA
PSEUDO CIRCULAR DE LOS TAJOS
for numerodecola in range(colastotal):
if colastotal>20:
print "Too much polylines, for sure it's been bad highlighted"
break
pm.increment(numerodecola)
puntoscuerpo=[]
puntoscolita=[]
puntosnew=[]
dini=10000
dinf=10000
unidoya=0
ind = -1
puntoscolita = colita.getpolylinepointsat(numerodecola)
print "Analizando linea: %i" % (numerodecola+1)
if selectionbuffer.is_selection():
for elementn in selectioncuerpo:
type1=elementn.get_type()
if type1 in [element.PolylineType]:
puntoscuerpo = elementn.get_pointlist()
centermass = ag.pointlistcenter(puntoscuerpo)
if centermass[2] > (ag.pointlistcenter(puntoscolita)[2]-14) and
centermass[2] < (ag.pointlistcenter(puntoscolita)[2]+14): #RANGO Z
for x in range(len(puntoscuerpo)):
if (puntoscuerpo[x][0]>(puntoscolita[0][0]-30) and
puntoscuerpo[x][0]<(puntoscolita[0][0]+30) and puntoscuerpo[x]
[1]>(puntoscolita[0][1]-30) and puntoscuerpo[x][1]<(puntoscolita[0]
[1]+30)) or (puntoscuerpo[x][0]>(puntoscolita[-1][0]-30) and
(puntoscuerpo[x][0]<puntoscolita[-1][0]+30) and puntoscuerpo[x]
[1]>(puntoscolita[-1][1]-30) and puntoscuerpo[x][1]<(puntoscolita[-1]
[1]+30)): #RANGO X Y

print "Uniendo linea %i de %i" %(int(numerodecola +


1),int(colastotal))
borde = ag.boundingPolygon(puntoscuerpo)

vect1 = [(x1 - x2) for (x1, x2) in zip(borde[0], centermass)]


try:
try:
vect2 = [(x1 - x2) for (x1, x2) in zip(borde[10],
centermass)]
except:
vect2 = [(x1 - x2) for (x1, x2) in zip(borde[5],
centermass)]
except:
print "line with Insufficient points, searching"
continue

centermass1 = ag.pointlistcenter(puntoscolita)
vect11 = [x1 - x2 for (x1, x2) in zip(puntoscolita[0],
centermass1)]
try:
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[6],
centermass1)]
except:
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[3],
centermass1)]

vectX = ag.crossproduct(vect1, vect2)


sentz = int(vectX[2]/abs(vectX[2]))
vectX1 = ag.crossproduct(vect11, vect21)
sentz1 = int(vectX1[2]/abs(vectX1[2]))

if sentz1 == sentz:
pass
else:
puntoscolita = puntoscolita[::-1]

puntoscolita = ag.smoothbezier(puntoscolita, 2, 50)


for p in range(ln(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0], puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if ag.pointdistance(puntoscolita[len(puntoscolita)-
1], puntoscuerpo[p]) < dinf:

dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
if ag.pointdistance(puntoscolita[len(puntoscolita)-
1], puntoscuerpo[0]) < ag.pointdistance(puntoscolita[0],
puntoscuerpo[len(puntoscuerpo)-1]):
puntosnew = puntoscolita + puntoscuerpo
else:
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])

bordenew = ag.boundingPolygon(puntosnew)
bordenew = [[x,y,0] for [x,y,z] in bordenew]
borde = [[x,y,0] for [x,y,z] in borde]
if ag.pointlistarea(borde) > ag.pointlistarea(bordenew):
puntoscolita = puntoscolita[::-1]
puntosnew = []
dini=10000
dinf=10000
print "special case"
for p in range(len(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0], puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p]) <
dinf:

dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[0]) <
ag.pointdistance(puntoscolita[0], puntoscuerpo[len(puntoscuerpo)-1]):
puntosnew = puntoscolita + puntoscuerpo
else:
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])

for l in range(cuerpito.getpolylinecount()):
if cuerpito.getpolylinepointsat(l) == puntoscuerpo:
ind = l
cuerpito.deletepolylineat(ind)
break
if ind == -1:
print "Indice not found, searching again"
for l in range(cuerpito.getpolylinecount()):
if cuerpito.getpolylinepointsat(l)[0] ==
puntoscuerpo[0]:
ind = l
cuerpito.deletepolylineat(ind)
break
if ind==-1:
print "Indice not found, some line was not
deleted"

cuerpito.addpolyline('', '', 0, puntosnew)


cuerpitobu.addpolyline('', '', 0, puntoscuerpo)
unidoya = 1
break
if unidoya == 1:
break
#-----------------------------------------------------------------------------------------------------
---------------------------------------
elif type1 in [element.PolygonType]:
puntoscuerpo = elementn.get_pointlist()
centermass = ag.pointlistcenter(puntoscuerpo)
if centermass[2]>ag.pointlistcenter(puntoscolita)[2]-10 and
centermass[2]<ag.pointlistcenter(puntoscolita)[2]+10:
totalpuntoscuerpo = len(puntoscuerpo)
for x in range(totalpuntoscuerpo):
if (puntoscuerpo[x][0]>puntoscolita[0][0]-30 and
puntoscuerpo[x][0]<puntoscolita[0][0]+30 and puntoscuerpo[x]
[1]>puntoscolita[0][1]-30 and puntoscuerpo[x][1]<puntoscolita[0][1]+30)
or ((puntoscuerpo[x][0]>puntoscolita[-1][0]-30 and puntoscuerpo[x]
[0]<puntoscolita[-1][0]+30 and puntoscuerpo[x][1]>puntoscolita[-1][1]-
30 and puntoscuerpo[x][1]<puntoscolita[-1][1]+30)):
print "Uniendo linea %i de %i" %(int(numerodecola +
1),int(colastotal))
del puntoscuerpo[-1]
borde = ag.boundingPolygon(puntoscuerpo)
vect1 = [x1 - x2 for (x1, x2) in zip(puntoscuerpo[0],
centermass)]
try:
vect2 = [x1 - x2 for (x1, x2) in
zip(puntoscuerpo[20], centermass)]
except:
vect2 = [x1 - x2 for (x1, x2) in
zip(puntoscuerpo[10], centermass)]

centermass1 = ag.pointlistcenter(puntoscolita)
vect11 = [x1 - x2 for (x1, x2) in zip(puntoscolita[0],
centermass1)]
try:
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[6],
centermass1)]
except:
pass
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[3],
centermass1)]

vectX1 = ag.crossproduct(vect11, vect21)


sentz1 = int(vectX1[2]/abs(vectX1[2]))
vectX = ag.crossproduct(vect1, vect2)
sentz = int(vectX[2]/abs(vectX[2]))

if sentz1 == sentz:
print "reversed"
pass
else:
puntoscolita = puntoscolita[::-1]
puntoscolita = ag.smoothbezier(puntoscolita, 2, 80)
for p in range(len(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0],
puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if ag.pointdistance(puntoscolita[len(puntoscolita)-
1], puntoscuerpo[p]) < dinf:

dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])

bordenew = ag.boundingPolygon(puntosnew)
bordenew = [[x,y,0] for [x,y,z] in bordenew]
borde = [[x,y,0] for [x,y,z] in borde]
if ag.pointlistarea(borde) > ag.pointlistarea(bordenew):
print "special"
puntoscolita = puntoscolita[::-1]
puntosnew = []
dini=10000
dinf=10000
for p in range(len(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0],
puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p]) <
dinf:

dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[0]) <
ag.pointdistance(puntoscolita[0], puntoscuerpo[len(puntoscuerpo)-1]):
puntosnew = puntoscolita + puntoscuerpo
else:
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])

for l in range(cuerpito.getpolygoncount()):
if puntoscuerpo == cuerpito.getpolygonpointsat(l):
ind = l
cuerpito.deletepolygonat(ind)
break
if ind == -1:
print "Indice not found, searching again"
for l in range(cuerpito.getpolylinecount()):
if cuerpito.getpolylinepointsat(l)[0] ==
puntoscuerpo[0]:
ind = l
cuerpito.deletepolylineat(ind)
break
if ind==-1:
print "Indice not found, some line was not
deleted"

cuerpito.addpolygon('', '' , 0, puntosnew)


cuerpitobu.addpolygon('', '', 0, puntoscuerpo)
unidoya = 1
break
if unidoya == 1:
break
else:
"No selectionbuffer"
#ALMACENAMIENTO DE LOS OBJETOS YA TRABAJADOS
cuerpito.storeresource()
cuerpito.free()
cuerpitobu.storeresource()
cuerpitobu.free()
pm.stop()
print "UNSELECT or SAVE EDITION then REFRESH OBJECT'S FOLDER"

#SE DEFINE LA FUNCION PRINCIPAL

def gmain(msg, data):

if msg == messages.gPRE_RUN:
pass
elif msg == messages.gRUN:
UpdateTC()
elif msg == messages.gPOST_RUN:
pass
else:
return gsys.grailmain(msg, data)
3.1.2.2. Otros script desarrollados para el rea.

3.1.2.2.1. Aporte al rea en general.

3.1.2.2.1.1. Convertidor de arhivos geometricos de format *.msr

a *.csv - Convert msr to csv.py

Debido a que las licencias de este software tienen un valor elevado, no

siempre se cuenta con alguna disponible.

As, este script es utilizado para convertir los puntos de los diseos de

un archivo Minesight a *.csv, el cual ya puede ser ledos por los

instrumentos topogrficos, sin necesidad de abrir el programa u

licencias, Ver Figura N 21.

FIGURA N 21: Interface de MSR to CSV.py

Fuente: Elaboracin Propia

3.1.2.2.2. Aportes a ore control:


3.1.2.2.2.1. Actualizador del modelo de bloques de los stock -

Update stock 10.py

Permite actualizar las leyes de los stock para los procesos de

hidrochancado, crushleach, y concentradoras.

Anteriormente se utilizaba un script en Python, tambin, para la

actualizacin del modelo de bloques de los depsitos pero tena que

editarse e introducir los valores manualmente. Con este script, Update

stock CV 1.0, se hace bsicamente el mismo proceso de actualizacin

del modelo de bloques de los stocks, pero de manera ms directa, al

importar los valores desde tablas Excel, adems de la opcin de edicin

de los las leyes importadas.Ver Figura N 22.

FIG

URA N 22: Interface de Update stocks g CV1 0.py

Fuente: Elaboracin Propia

3.1.2.2.2.2. Herramienta para el modelado de stocks-

DHfrombucket 104.py
El modelo de bloques de los stock de mina es actualizado

semanalmente, mediante levantamientos topograficos y la ley promedio

segn dispatch, generando que la zona que fue descargada durante una

semana tenga la misma ley. Para ello, se desarrollo este script, que

enlaza las leyes del modelo de bloques del tajo con la ley del modelo de

bloques de los stock, mediante datos de buckets donde la pala cargo y

la zona de Descarga donde los camiones depositaron el material. Ver

Figura N 23.

Se trabaja escogiendo la zona de descarga deseada, y periodo que se

desea analizar. Posteriormente se generaran archivos assay, collar y

survey. Como si cada descarga de los camiones fuese un taladro de

exploracion.

FIGURA N 23: Interface de BucketTaladro 105.py

Fuente:Elaboracin Propia
3.1.2.2.2.3. Interpolacin de zonas con variables discretas -

Poligono Voronoi 1d.py

Dado que para visualizacin, y anlisis de los frentes de minado se

necesita poligonear ciertos tems, ya sea la ley, litologa, etc. Que fue

previamente muestreada. Esto requiere un trabajo manual, para

automatizar se utiliz un antiguo mtodo de interpolacin minera, el

mtodo de los polgonos, pues permite realizar zonificaciones de

variables discretas

Como se observa en la siguiente malla de perforacin, que tericamente

fue muestreada y posteriormente zonificada segn los valores de

ciertotem

FIGURA N 24 : Interface de Voronoi d.py

Fuente: Elaboracin Propia


3.1.2.2.3. Aportes al rea de planeamiento de minado

3.1.2.2.3.1. Herramientas para el clculo de ciclos de acarreo y

clculo de flota - Hauling tool 132.py

En Cerro Verde, el clculo de flota de camiones se realiza mediante

hojas Excel, para ello uno de los input, es la distancia y caractersticas

de las rutas de acarreo.

Anteriormente se realizaban en minesight, con herramientas de diseo

bsicas, aadiendo punto a punto los vrtices de las rutas a cada

polylinea y analizando las pendientes en Excel.

Con este script se permite la clonacin y edicin de poliineas, rutas, en

forma masiva y exportacin rpida. Ver Figura N 25.


FIGURA N 25: Interface de Hauling 1 32.py

Fuente: Elaboracin Propia


3.1.2.2.4. Aportes a planeamiento de perforacin y voladura

3.1.2.2.4.1. Calculo del tiempo de perforacin de proyectos de

perforacin, y grafica de radios de influencia - Drilling and

blasting.py

Permite calcular el nmero de taladros aproximado y el tiempo de

perforacin estimado, accediendo al modelo de bloques y obteniendo el

tem ROP.

Ademas de una pestaa para dibujar los radios de influencia directa de

manera rpida para saber el movimiento de las palas necesario para un

disparo.Ver Figura N 26.

FIGURA N 26: Interface de Drilling and blasting planner 1.0.py


Fuente: Elaboracin Propia

3.1.2.2.4.2. Graficador de taladros planeados, perforados y

muestreados - Perforacin CV 16.py

Perforacion CV 1 6.py Importa los taladros de perforacion planeados,

perforados y muestreados, por ore control, de los proyectos de

perforacion. Evitando entrar a realizar consulas a SQL Server o

descargando los datos del los servidores de dispatch. Ver Imagen N 27

FIGURA N 27: Interface de perforacin CV 1.6

Fuente: Elaboracin Propia


CONCLUSIONES

Se ha logrado conocer la operacin minera de cerro verde, as como su

estructura interna y lnea de mando funciones, objetivos y deberes que tiene el

rea de Planeamiento Corto Plazo.

El rea est Planeamiento Corto Plazo est conformada por tres reas

bsicas: Topografa, Ore Control y Planeamiento Corto Plazo. A

continuacin se describe la lnea de mando: Superintendente,

Ingeniero Senior, Ingeniero de Planeamiento II, Ingeniero de

Planeamiento I, Ingeniero Junior de Planeamiento I y II, Ingeniero

Training y Becario.

Los objetivos del rea de Planeamiento Corto Plazo son: Cumplir con

los planes y diseo de Planeamiento Largo Plazo en tonelaje y ley.

Dentro de los deberes del rea esta:

o Realizar los planes de minado perforacin, voladura, descarga

y abastecimiento. (Planeamin

o Reportar leyes y desarrollar los polgonos de minado.(Ore

Control).

o Levantamiento y replanteos topogrficos (Topografa)

La planificacin del minado, disparos y tareas afines no es una tarea simple,

para ello se toman en cuenta un gran nmero de factores, como se mencion


en el presente informe. Finalmente las decisiones se toman en funcin a la

optimizacin de la produccin, reduccin de costos y al cumplimiento de

objetivos de produccin.

Se debe dar seguimiento a los planes de minado y voladura, para advertir

posibles contratiempos y plantear soluciones a tiempo.


El rea de topografa mesura volmenes y longitudes, los cuales

sonimportantes para el control y planificacin de las operaciones,

yademsnos indican si los planes fueron calculados correctamente.

Topografa mina permite plasmar en campo los diseos y lmites de minado,

adems de asistir cuando los sistemas de precisin GPS de los equipos

fallan.
El uso de tecnologa de mensuracin, como lo son los escaneos de

superficies con lser, permite que el minado sea eficiente y rentable con

resultados que sean dados a tiempo, para tomar mejores decisiones. Siempre

haciendo un balance de costo versus beneficio.


La simplificacin de procesos, ideas de ahorro de costos, implementacin de

nuevos procesos o pruebas con mtodos alternos siempre deben estar

presentes en los miembros de una organizacin para que se logre el progreso

de la compaa.
Se ha logrado identificar los factores determinantes en el desarrollo de los

planes diarios y semanales de minado.


Se ha logrado aplicar conocimientos de programacin en Python aplicados a

la geometra computacional y modelamiento de bloques.

RECOMENDACIONES:
Buscar maneras de mejorar la utilizacin de los equipos, reduccin de

costos o ideas que aumentan la produccin en calidad y cantidad.


Brindar capacitacin en temas de liderazgo a la supervisin, debido a que

necesitamos fortalecer la relacin supervisor- trabajador, supervisor-

supervisor para cumplir con los planes de minado, perforacin y voladura.


Se debe mejorar la comunicacin entre las guardias de relevo, para evitar

dejar de realizar tareas pendientes y perjudicar los entregables del rea.

DEFINIONES Y ABREVIATURAS

GPS: Es un sistema que proporciona a los receptores de GPS (Sistema

de

PosicionamientoGlobal)correccionesdelosdatosrecibidosdelossatlitesGPS,con

el fin deproporcionaruna

mayorprecisinenlaposicincalculada.Unadelasutilidadesms

importantesconsisteen

introducirlascoordenadasdeunpunto,mostrndonosdeforma grfica

unrecorridoexactoconinformacindetallada dedistancia,altura, ydireccin.

EstacinTotal:Sedenominaestacintotalauninstrumentoelectro-

pticoutilizadoen topografa,cuyofuncionamientoseapoyaenlatecnologa

electrnica.Consisteenla incorporacindeundistancimetro y

unmicroprocesadoraunteodolitoelectrnico.

ScannerLaser:Sistemapticooinstrumentopticocuyofuncionamientoseapoya

enla
tecnologaLser.ConsisteenlaincorporacindeunLseryunmicroprocesadorlocu

al nospermitetenerinformacin topogrfica.

LevantamientoTopogrfico:Eslatomadedatosnecesariosconequipostopogrfi

cosde una zona deestudio oanlisis,parasurepresentacingrfica detallada

ReplanteoTopogrfico:Esmediantepuntosconcoordenadas,representary/otraz

ar,de laforma msexactaposibleenelcampo,y/osobreuna

superficiedel terreno:poligonales, lneas,superficiesydiseos

dePlanificacinRequeridos.

Talud:Esunasuperficieplanoinclinado,generadaporelavancedecarguodelaspal

as en mina, ygeneradaporel apilamientodematerial enlos PADs.

Cresta:BordeoLneaconstituidaentrelasuperficiedelterrenoyeliniciodecadadel

talud.

TOE:BordeoLnea constituidaentrela superficie del terrenoyel inicio

desubidadeltalud.

TrabajosoProyectosEspeciales:Sontrabajosnorutinarios,quesonprincipalment

ede apoyoaotrasreas.

PorEjemplo:LevantamientoStockenMatarani,Nivelacinde

Perforadoras,nuevos proyectos,etc.

You might also like