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.
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
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
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:
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
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.
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.
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.
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
Public PointsDone AsInteger=0' La cantidad de puntos que el usuario marco para el elementoo actual, usado durante la construccion. Public Selected AsBoolean' Determina si ha sido seleccionado para ser modificado por una Herramienta Public ForDeletion AsBoolean=True' Como hemos visto, a una clase le cuesta inmolarse. Usamos esta Flag para eliminarla en alguna purga. Public DrawAble AsBoolean=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 AsBoolean=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 AsInteger=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
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
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.
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
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
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.
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
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.
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
Fecha y hora actual: Martes, 21 May 2024, 18:48 • Todas las horas son UTC + 1 Hora
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 2 invitados Usuarios registrados conectados: Ninguno
Lista de permisos
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