Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 6
Ir a la página 1, 2, 3, 4, 5, 6  Siguiente
 
GauchoCAD
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje GauchoCAD 
 
Despues de varias semanas de desarrollo, me he dado cuenta que debemos plantearnos objetivos mas reales compatibles con nuestras posibildades.
Creo que con un buen CAD comunitario tendremos por logrado el objetivo. Algo sencillo y robusto, con algunas limitaciones pero que nos sirva para dibujar planos, importar archivos DXF y otras tareas de uso diario de cualquier técnico. Un programa que nos de placer usar.

Dibuja:
-lineas, rayos
-circulo, elipse, arcos
-figuras, rectangulo,
-textos

Herramientas:
-mover, copiar, borrar, escalar, estirar
-lee DXF, DWG, SVG
-escribe DXF, SVG, PDF, PS

Limitaciones:
-MultipleTextos o texto multilinea
-Sombreado
-Enganche a intersección, tangente
-SPLineas de mas de 4 puntos

Si alguien quiere tomar alguna tarea, bienvenido.

Desde ya mi agradecimiento a todos los que se dignan a responder mis, a veces tontas, preguntas. En especial al "topo" del codigo Voutt.
Screenshot
captura_de_pantalla_de_2020_06_02_08_02_21
0.0.52 Nuevas herramientas. Interfaz mejorada. de nuevo en GitHub
0.0.38 Vuelto a OpenGL. Soporte multidocumento con workspace.
0.0.28  Mudado a Cairo
0.0.30  Mudando todo a OpenGL luego de comprobar la baja perfomance de Paint en proyectos medianos
0.0.21  Bloques, barras de herramientas desplegables. Salimos de GitHub. Renombrado a CAD
0.0.20  Llamado a clases via comando. Eje Y apunta hacia arriba. Mas entidades.
0.0.14  Nueva version con nombre de cosas similares a los CAD actuales. Tincho la va a subir a Github.
               por favor trabajen sobre esta.
0.0.8    Actualizo Load/Save Version4 para mas propiedades de los elementos. Pulido de codigo.
0.0.6    Tincho reparo Load/Save. Se agrega entrada de coordenadas por texto.
0.0.1 Primer alfa
 




===================
"Los IF son mas rápidos" - autor anónimo
 
última edición por tercoIDE el Martes, 02 Junio 2020, 12:18; editado 13 veces 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD: Presentacion Del Primer Alfa 0.0.1 
 
Es probable que muchos de ustedes nunca hayan usado un CAD, pero en arquitectura/ingenieria es obligatorio. Yo fui el primer alumno de mi universisdad en presentar planos en CAD y no a mano.
Si lo han hecho, saben que a esto le faltaria:

-Elementos de formas graficas simples: circulo, linea, poligonos, polilinea, texto
-Herramientas: des/agrupar, Rotar, Espejar, Copiar en cuadricula, Imprimir, Propiedades (color, tipo de linea, espesor de linea)
-Ayudas del dibujo: Snap, que es cuando uno se acerca un vertice de una cosa, el mouse se "pega" ahi
Este es el esquema de como se crean y acoplan los nuevos elementos al programa:

captura_de_pantalla_de_2020_04_25_08_50_54

Hagan un elemento y lo añadimos!
 




===================
"Los IF son mas rápidos" - autor anónimo
 
última edición por tercoIDE el Domingo, 26 Abril 2020, 02:24; editado 1 vez 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD: Presentacion Del Primer Alfa 0.0.1 
 
Analisis de las clases de elementos. Cada "elemento" es una cosa que se dibuja en el grafico. En realidad se autodibuja.


Public Const DrawingOrder As Integer = 1
 


Este numero es utilizado por el metodo interno que tiene los arrays de objetos _Compare() y sirve para ver que clase de elemento se dibuja antes que otra. Un numero alto hará que nunca sea tapada.

Public Const PointsTotal As Integer = 2
 

Este es el total de puntos del elemento. Por ejemplo un triangulo tendrá 3 vértices. A partir de la V0.0.2 se puede dejar en 0 para que el numero de vértices sea determinado por el usuario, por ejemplo una polilinea.

Public Const PointsToDraw As Integer = 1
 

Esto se usa durante la construcción y establece la mínima cantidad de puntos necesarios para que pueda dibujarse mientras muevo el mouse. Es ignorado una vez construido.

Public Const OrtogonalIgnorado As Boolean = True
Public Const OrtogonalForzado As Boolean = False
 

Es le indica al constructor clsElementBuilder en que condiciones recibo los puntos. Ortogonal significa que las lineas son verticales u horizontales.
Public Const HelperTrabajo As String = ("Insert a Slab")

Una ayuda al usuario que se escribe en la parte inferior izquierda del area de dibujo
Public Px As New Float[]
Public Pz As New Float[]
Public StringData as String       ' nuevo parametro de los elementos

Public Bx As New Float[]           ' Backup de los X
Public Bz As New Float[]           ' Backup de los Z
Public Psel As New Boolean[]        ' selected points
 


Basicamente son los vertices de mi elemento, en metros. Pero tambien puede ser cualquier parametro que nos sirva. Tambien guardo puntos backup y boolean para ver si los han seleccionado

' For future use in CAD implementation
Public Layer As Integer                      ' Capa o Layer
Public Block As Integer                     ' Para tener la posibilidade de juntar cosas en un block
Public _Color As Integer                     ' Para darle un color distinto al del layer
Public LineType As Integer                  
Public LineWidth As Integer                  
 

Esto se implementara a posteriori para poder abrir DXF de otros CAD


Public PointsDone As Integer = 0          ' La cantidad de puntos que el usuario marco para el elementoo actual, usado durante la construccion.
Public Selected As Boolean                   ' Determina si ha sido seleccionado para ser modificado por una Herramienta
Public ForDeletion As Boolean = True   ' Como hemos visto, a una clase le cuesta inmolarse. Usamos esta Flag para eliminarla en alguna purga.
Public DrawAble As Boolean = False     ' esta Flag es chequeada por el metodo .Draw para ver si se va a dibujar. Si la tengo que eliminar, o no tiene suficientes puntos marcados, no vale la pena dibujarla.
Public Finished As Boolean = False        ' se coloca en True cuando se llegue a completar la construccion. A veces el usuario se arrepiente en el camino con presionando Esc
Public Group As Integer = 0                     ' Pertenecemos a un grupo? Para uso futuro

 




===================
"Los IF son mas rápidos" - autor anónimo
 
última edición por tercoIDE el Domingo, 26 Abril 2020, 02:23; editado 1 vez 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD: Presentacion Del Primer Alfa 0.0.1 
 
Espectacular, me alegra disponer de un CAD en gambas seguramente habrá mas personas que se sumen al proyecto.
Respecto a la característica guardar / abrir, deje estar un poco el tema hasta que se "estabilice" el tema de clases, pero lo retomare.
Luego, hay un aspecto que hay que tener en cuenta, que no es menor. Guardar un dibujo en SVG no representa problemas, me parece, ya que creo que se puede guardar el contenido de un DrawingArea como SVG. El trabajo ronda en como nombrar y agrupar los elementos gráficos para que sean susceptibles de volver a convertir en clases que usa GambasCAD.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD 
 
Felicidades tercoIDE.
Impresionante   .
 



 
alessandri - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD 
 
Tincho:

Citar:
El trabajo ronda en como nombrar y agrupar los elementos gráficos para que sean susceptibles de volver a convertir en clases que usa GambasCAD.

Teneis disponible el código fuente de mi programa "pintascreen",

https://github.com/JsbMinino/pintaScreen



Link

 




===================
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: GambasCAD 
 
jsbsan escribió:  
Tincho:

Teneis disponible el código fuente de mi programa "pintascreen",



PintaScreen esta en mi HD hace años, muy bueno para explicar codigo. El concepto es similar. Cada entidad en el dibujo es una New Class. En el caso de GambasCAD las entidades tienen mucha libertad de acción y pueden hacer cualquier cosa, hasta podrían moverse como en el ejemplo de donde nació: MuchosCirculos (busquenlo aqui) .

Y las herramientas, tiene mas libertad todavía, pues reciben todos los eventos del mouse y textos; pueden abrir forms, acceder a archivos, todo lo que la imaginacion desee, no solamente Copiar, Escalar, Etc. No se busca un clon de LibreCAD, sino algo mucho mas amplio.

Yo ya tengo dos usos para futuras herramientas:
-una que me genere una render en 3D de N cantidad de pisos segun las losas, vigas y columnas que haya en el grafico, ya lo han visto en un post mio anterior de realidad virtual
-una que me genere un archivo legible por Estru3D, que en definitiva fue lo que motivo a esto
- a Tincho se le ocurrio hacer una herramienta que inspeccione codigo gambas y auto-genere un diagrama como el que les hice en el segundo post de este hilo


Julio, tu "inspector de propiedades" es smililar a lo que pretendo, pero Object.SetProperty no puede ser usado porque en mi caso las clases de entidades tienen variables, no property.
 




===================
"Los IF son mas rápidos" - autor anónimo
 
última edición por tercoIDE el Domingo, 26 Abril 2020, 13:32; editado 1 vez 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD 
 
jsbsan escribió:  
...Teneis disponible el código fuente de mi programa "pintascreen",

Descargado, por lo que vi hasta ahora, PintaScreen se parece mas a un CAD que el programa de Terco, que se parece mas a un CAE.
Nota: cuando lo presentaste hace mucho ya, no lo estudie porque en ese momento me pareció muy complejo.
Gracias por el video y por compartir el código.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD 
 
tercoIDE escribió:  
...PintaScreen esta en mi HD hace años, muy bueno para explicar codigo. El concepto es similar. Cada entidad en el dibujo es una New Class. En el caso de GambasCAD las entidades tienen mucha libertad de acción y pueden hacer cualquier cosa, hasta podrían moverse como en el ejemplo de donde nació: MuchosCirculos (busquenlo aqui).

Esto es interesante en al caso de simulaciones como las de FreeCAD, pero ya nos vamos al 3D.

Citar:

Y las herramientas, tiene mas libertad todavía, pues reciben todos los eventos del mouse y textos; pueden abrir forms, acceder a archivos, todo lo que la imaginacion desee, no solamente Copiar, Escalar, Etc. No se busca un clon de LibreCAD, sino algo mucho mas amplio.

El problema en este punto es que al guardar/recuperar objetos en un archivo en el caso de, por ejemplo, losas vigas etc. estas son entidades muy especificas no son lineas o círculos y ahí esta el inconveniente ya que GambasCAD no se comporta como CAD sino como CAE u otra cosa especifica.

Citar:

Yo ya tengo dos usos para futuras herramientas:
-una que me genere una render en 3D de N cantidad de pisos segun las losas, vigas y columnas que haya en el grafico, ya lo han visto en un post mio anterior de realidad virtual
-una que me genere un archivo legible por Estru3D, que en definitiva fue lo que motivo a esto

Si, esto es espectacular pero especifico para Estru3D, me parece. Ojo no es una critica, pero este programa se sale del molde CAD.

Citar:
- a Tincho se le ocurrio hacer una herramienta que inspeccione codigo gambas y auto-genere un diagrama como el que les hice en el segundo post de este hilo

Si, la parte del listar las clases y los módulos de un proyecto ya la tengo mas o menos lista. Dibujar el esquema dinamicamente en un DrawingArea es lo que no he resuelto todavia.
Citar:

Julio, tu "inspector de propiedades" es smililar a lo que pretendo, pero Object.SetProperty no puede ser usado porque en mi caso las clases de entidades tienen variables, no property.

No se por que se eligen variables o propiedades, tal vez seria interesante que cada uno argumente ventajas e inconvenientes.
Por mi parte estoy haciendo un ejemplo muy muy simple de CAD que por el momento quiero que sea capaz de hacer una linea. Luego lo iremos ampliando pero manteniendo la simpllicidad para aprender a usar estos controles y clases.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: GambasCAD 
 
Citar:

Esto es interesante en al caso de simulaciones como las de FreeCAD, pero ya nos vamos al 3D.

3D escapa al alcance de GambasCAD, que si prefieren le ponemos GambasCAE , es la primera vez que leo CAE. Pero acabo de ver esto:

https://www.simscale.com/blog/2017/...en-cad-and-cae/

y creo que es mas un CAE, pero me gusta mas como suena CAD  

Citar:

El problema en este punto es que al guardar/recuperar objetos en un archivo en el caso de, por ejemplo, losas vigas etc. estas son entidades muy especificas no son lineas o círculos y ahí esta el inconveniente ya que GambasCAD no se comporta como CAD sino como CAE u otra cosa especifica.


la plantilla tipo de cada elemento permite guardar cualquier cosa y no haria falta re codificarla

Citar:
Si, esto es espectacular pero especifico para Estru3D, me parece. Ojo no es una critica, pero este programa se sale del molde CAD.


es que lo dije de entrada, esto no busca ser un clon de LibreCAD

Citar:
Si, la parte del listar las clases y los módulos de un proyecto ya la tengo mas o menos lista. Dibujar el esquema dinamicamente en un DrawingArea es lo que no he resuelto todavia.


tienes que esperar que madure un poco GambasCAD: que haya entidades que dibujen polilineas, flechas, recuadros y texto. Yo te guio cuando llegue el momento.

Citar:
No se por que se eligen variables o propiedades, tal vez seria interesante que cada uno argumente ventajas e inconvenientes.

3 razones:

-porque las propiedades nos llenan de codigo las clases con sus Private Function xxxxx_read()  y xxxxx_write
-porque las variables son mas rapidas de acceder en memoria
-porque necesito arrays y las propiedades no pueden serlo
 




===================
"Los IF son mas rápidos" - autor anónimo
 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 6
Ir a la página 1, 2, 3, 4, 5, 6  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 2 invitados
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