Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Drawingarea + Dibuja Por Codigo + Exportar PDF
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
Hola a todos.

Debido a varios experimentos para trabajar con archivos dwg, ya hemos logrado extraer la información de lineas(x,y) círculos(x,y,r) y textos(x,y,value) desde un archivo dwg, entonces estamos en el punto adecuado para dibujar estos elementos en un DrawingArea e imprimirlos en un SVG o PDF, me parece que si es vectorial es mejor porque la calidad es mayor y pesan menos los archivos generados.

1) ¿Que es necesario para hacer una clase o módulo que dibuje linea, circulo y texto pasándole los parámetros pertinentes en cada caso?
En el ejemplo (que a su vez esta basado en el ejemplo de jsbsan) podran observar que el programa dibuja algunos elementos, pero hace algo raro, pues debería dibujar 2 lineas y dibuja una sola.
Luego otra cosa rara que hace es que agranda las dimensiones de la imagen, la base se un a4 apaisado y el archivo de salida es mas grande y no se por que hace eso.

2) ¿Una vez dibujado el esquema, como se puede guardar como pdf?
¿El ejemplo lo guarda en svg. Existe una forma de guardar en pdf directamente, sin tener que recurrir a imagemagick por consola?

Pd: Adjunto un ejemplo. por favor echenle una mirada a ver que sugerencias me pueden dar.

saludos.

drawingareatest.zip
Descripción: Ejemplo de dibujo por codigo 
Descargar
Nombre del archivo: drawingareatest.zip
Tamaño: 18.51 KB
Descargado: 59 veces
drawingareatest.zip
Descripción: Ejemplo de dibujo por codigo 
Descargar
Nombre del archivo: drawingareatest.zip
Tamaño: 18.51 KB
Descargado: 59 veces
drawingareatest.zip
Descripción: Ejemplo de dibujo por codigo 
Descargar
Nombre del archivo: drawingareatest.zip
Tamaño: 18.51 KB
Descargado: 59 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
tincho escribió: [Ver mensaje]
¿El ejemplo lo guarda en svg. Existe una forma de guardar en pdf directamente, sin tener que recurrir a imagemagick por consola?


...usando la propiedad .OutputFile de la Clase Printer .

Exemplum simplex:
Public Sub DrawingArea1_Draw()
 
   With Paint
    .Brush = Paint.Color(Color.Red)
    .MoveTo(200, 200)
    .RelLineTo(0, 100)
    .Stroke
    .DrawText("Texto creado con DrawText", 10, 10, 20, 20)
    .Brush = Paint.Color(Color.Blue)
    .Ellipse(200, 30, 100, 100)
    .Stroke
    .End
  End With
    
End


Public Sub Button1_Click()

  With Printer1
    .Configure
    .Orientation = 0
    .Paper = 2
    .Resolution = Desktop.Resolution
    .GrayScale = False
' Crea un archivo .pdf en la carpeta /tmp :
    .OutputFile = "/tmp/archivo.pdf"
    .Print
  End With

End


Public Sub Printer1_Draw()

  DrawingArea1_Draw()

End


Saludos
 



 
última edición por vuott el Jueves, 21 Enero 2016, 02:43; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
Tincho:

Citar:
En el ejemplo (que a su vez esta basado en el ejemplo de jsbsan) podran observar que el programa dibuja algunos elementos, pero hace algo raro, pues debería dibujar 2 lineas y dibuja una sola.

He revisado el archivo dwgdata.tsv

Line    200     200     400     400     0       0       0       0       0       0       0       0       0       0       0
Text    350     350     0       0       0       0       0       0       texto   400     400     0       0       0       0
Circle  300     300     0       0       200     0       0       0       0       0       0       0       0       0       0
Line    400     400     200     200     0       0       0       0       0       0       0       0       0       0       0
Circle  100     100     0       0       200     0       0       0       0       0       0       0       0       0       0
Text    125     125     0       0       0       0       0       0       texto   400     400     0       0       0       0



Como ves las lineas, tiene las mismas coordenadas invertidas, osea una sale del punto 200.200 y llega al 400, 400,   y la otra linea hace justo lo contrario, con lo cual en el dibujo se dibujan una encima de otra, por eso solo ves una linea.  Yo he cambiado las coordenadas, y entonces si se ven las dos lineas.


Tincho y Vuot:

Me parece que vuestro trabajo con el tema del libredwg, es muy bueno e interesante.

A ver si podeis ir ampliando el "traductor de dwg" con las siguientes cosas:
- capas
- colores

Y otras entidades:
http://www3.uva.es/dgi-dao/teoria-archivos/b-entidades-5.pdf
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
jsbsan escribió: [Ver mensaje]
Como ves las lineas, tiene las mismas coordenadas invertidas

Tienes razón. ya pondré el código que esta mas avanzado. Me refiero a la librería en C y el proyecto (de pruebas) de gambas.
En el zip hay también un .ods con la lógica de los campos de datos extraídos, el orden etc.

Citar:
Me parece que vuestro trabajo con el tema del libredwg, es muy bueno e interesante.

Si, creo que además de interesante es necesario, por lo menos, para los que nos dedicamos a la ingeniería. El hecho de poder acceder a la información contenida en archivos dwg (recalco el plural "archivos")

Citar:
A ver si podeis ir ampliando el "traductor de dwg" con las siguientes cosas: - capas - colores

Con el tema de colores y capas (layers en inglés) de momento no logro extraer esa información con la clase load_dwg.c (que adjunto en este post)

Citar:
otras entidades:

Claro , por supuesto que a medida que esto vaya avanzando podremos soportar mas entidades, o por lo menos las que soporte libredwg.

Una pregunta: ¿Como se hace para hacer un "zoom" para ver todo lo que esta dibujado en un DrawingArea?

Saldos

librerias.zip
Descripción: Librerías y archivos de ayuda para el desarrollo 
Descargar
Nombre del archivo: librerias.zip
Tamaño: 34.32 KB
Descargado: 56 veces
librerias.zip
Descripción: Librerías y archivos de ayuda para el desarrollo 
Descargar
Nombre del archivo: librerias.zip
Tamaño: 34.32 KB
Descargado: 56 veces
librerias.zip
Descripción: Librerías y archivos de ayuda para el desarrollo 
Descargar
Nombre del archivo: librerias.zip
Tamaño: 34.32 KB
Descargado: 56 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
Tincho:

Citar:
¿Como se hace para hacer un "zoom" para ver todo lo que esta dibujado en un DrawingArea?

Que yo conozca, no hay un método del drawingArea para ello.

Yo lo haría de la siguiente manera:
- Mientras que dibujo las entidades, compruebo su extensión de lo que estoy dibujano,  cogiendo las coordenadas menores y superiores, para ir "acotando" el tamaño de lo que estoy dibujando.

Por ejemplo: tengo  un Xmax=0 y un Ymax=0, y un Xmin=0 y Ymin=0 y un  tengo que que ir dibujando 10 lineas
Iría comprobando linea por lineas sus coordenadas, y si son mayores que el mayor que tengo, se le asigno a mi mayor (Xmax,Ymax), y si son menores se la asigno al menor (Xmin y Ymin)


Al final obtenemos el tamaño de lo que estamos dibujando.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Jueves, 21 Enero 2016, 19:28; editado 5 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
jsbsan escribió: [Ver mensaje]
Por ejemplo: tengo  un Xmax=0 y un Ymax=0, y un Xmin=0 y Ymin=0...

ok, ya esta lo hice así, pero ahora se complico el ajuste "fit" a la hoja del pdf.
¿Como se le dice printer que ajuste hasta rellenar la hoja?  lógicamente cuando es mas grande o reduzca si es mas pequeña.

Public Sub btnPdf_Click()
  With Printer1
    '.Configure
    .Orientation = Printer1.Landscape
    .Paper = Printer1.A3
    .Resolution = 150 ' DPI
    .GrayScale = False
    ' Crea un archivo .pdf en la carpeta /tmp :
    .OutputFile = stPdf '"/tmp/archivo.pdf"
    .Print
  End With
End

Public Sub Printer1_Draw()
  DrawingArea1_Draw()
End
 


saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drawingarea + Dibuja Por Codigo + Exportar PDF 
 
Bueno, ha quedado mas o menos, el programa ya dibuja los elementos y los imprime en pdf. pero no se pueden visualizar adecuadamente.

Parece física cuántica, se donde esta el electrón pero no como es, o se como es pero no donde esta  

Por favor si alguien tiene alguna sugerencia, esta sera bienvenida.

También pensé en usar dos DrawingArea, pero no se como hacerlo ya que el método  _draw parece no aceptar dos o mas DrawingArea.

Aquí adjunto el código para que si alguien lo desea, pueda estudiarlo.

drawing.zip
Descripción: Programa para probar el dibujo de elementos extraídos de archivos dwg 
Descargar
Nombre del archivo: drawing.zip
Tamaño: 15.73 KB
Descargado: 51 veces
drawing.zip
Descripción: Programa para probar el dibujo de elementos extraídos de archivos dwg 
Descargar
Nombre del archivo: drawing.zip
Tamaño: 15.73 KB
Descargado: 51 veces
drawing.zip
Descripción: Programa para probar el dibujo de elementos extraídos de archivos dwg 
Descargar
Nombre del archivo: drawing.zip
Tamaño: 15.73 KB
Descargado: 51 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Imagen En Un Drawingarea nrcefe General 4 Jueves, 24 Septiembre 2009, 22:32 Ver último mensaje
nrcefe
No hay nuevos mensajes Exportar Una Tabla De OpenOffice.org A SQL... ipzero Bases de Datos 2 Domingo, 07 Febrero 2010, 18:05 Ver último mensaje
jguardon
No hay nuevos mensajes Exportar luesmo2 Aplicaciones/Fragmentos de Código 0 Miercoles, 22 Septiembre 2010, 16:07 Ver último mensaje
luesmo2
No hay nuevos mensajes Exportar Una Base De Datos Mysql Con Shell pittusa Bases de Datos 3 Miercoles, 15 Diciembre 2010, 21:45 Ver último mensaje
tururu
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron