Material De Estudio Que Puede Interesar.


Objetivo: Material De Estudio Que Puede Interesar.
Hola a todos.
El el marco de el programa CAD que estamos intentando hacer me permito pones a vuestra disposición algunos enlaces que pueden interesar a quien se sume a este proyecto.

Formato DXF
https://images.autodesk.com/adsk/files/acad_dxf1.pdf
https://documentation.help/AutoCAD-DXF/

Librerías libres de símbolos
https://github.com/Xaviju/inkscape-open-symbols

Saludos

última edición por tincho el Miercoles, 29 Abril 2020, 17:18; editado 1 vez
Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
Archivo de flujo del programa


cad-flow.dia.tar.gz
Descripción:  
Descargar
Nombre del archivo: cad-flow.dia.tar.gz
Tamaño: 2.42 KB
Descargado: 89 veces
cad-flow.dia.tar.gz
Descripción:  
Descargar
Nombre del archivo: cad-flow.dia.tar.gz
Tamaño: 2.42 KB
Descargado: 89 veces
cad-flow.dia.tar.gz
Descripción:  
Descargar
Nombre del archivo: cad-flow.dia.tar.gz
Tamaño: 2.42 KB
Descargado: 89 veces

Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
Yo quiero mucho los .dxf, lo use hace mucho tiempo en una aplicación para crear diagramas.

En la vida real (en el trabajo), casi nunca lo he visto, siempre te pasan .dwg y es una pena porque te amarra a Autocad si o si....

Objetivo: Re: Material De Estudio Que Puede Interesar.
jsbsan escribió:  
Yo quiero mucho los .dxf, lo use hace mucho tiempo en una aplicación para crear diagramas.
En la vida real (en el trabajo), casi nunca lo he visto, siempre te pasan .dwg y es una pena porque te amarra a Autocad si o si....

Ya no, porque ahora la libreria libreDWG puede escribir DWG en formato 2000
Así que en principio se podría pasar de autocad.
Saludos.

Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
Lista de entidades DXF
Public Function GetEntityList() As Collection

Dim entity As New Collection

'entity.Add(True, "3DFACE")
'entity.Add(True, "3DSOLID")
'entity.Add(True, "ACAD_PROXY_ENTITY")
entity.Add(True, "ARC")

'entity.Add(True, "ATTDEF")
'entity.Add(True, "ATTRIB")
'entity.Add(True, "BODY")
entity.Add(True, "CIRCLE")
entity.Add(True, "DIMENSION")
entity.Add(True, "ELLIPSE")
entity.Add(True, "HATCH")
'entity.Add(True, "HELIX")
'entity.Add(True, "IMAGE")
entity.Add(True, "INSERT")
'entity.Add(True, "LEADER")
'entity.Add(True, "LIGHT")
entity.Add(True, "LINE")
'entity.Add(True, "LWPOLYLINE")
'entity.Add(True, "MLINE")
'entity.Add(True, "MULTILEADER")
'entity.Add(True, "MLEADERSTYLE")
'entity.Add(True, "MTEXT")
'entity.Add(True, "OLEFRAME")
'entity.Add(True, "OLE2FRAME")
'entity.Add(True, "POINT")
entity.Add(True, "POLYLINE")
'entity.Add(True, "RAY")
'entity.Add(True, "REGION")
'entity.Add(True, "SECTION")
'entity.Add(True, "SEQEND")
'entity.Add(True, "SHAPE")
'entity.Add(True, "SOLID")
'entity.Add(True, "SPLINE")
'entity.Add(True, "SUN")
'entity.Add(True, "SURFACE")
'entity.Add(True, "TABLE")
entity.Add(True, "TEXT")
'entity.Add(True, "TOLERANCE")
'entity.Add(True, "TRACE")
'entity.Add(True, "UNDERLAY")
'entity.Add(True, "VERTEX")
'entity.Add(True, "VIEWPORT")
'entity.Add(True, "WIPEOUT")
'entity.Add(True, "XLINE")

End

Comento las que no son necesarias al principio ya que son entidades avanzadas que me parece que en la etapa temprana que estamos pueden omitirse.
Saludos.

Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
tincho escribió:  
Lista de entidades DXF
Public Function GetEntityList() As Collection

Dim entity As New Collection

'entity.Add(True, "3DFACE")
'entity.Add(True, "3DSOLID")
'entity.Add(True, "ACAD_PROXY_ENTITY")
en

End

Comento las que no son necesarias al principio ya que son entidades avanzadas que me parece que en la etapa temprana que estamos pueden omitirse.
Saludos.


o sea que cuando tengamos esas entidades listas podriamos importar DXF?

Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
tercoIDE escribió:  
tincho escribió:  
Lista de entidades DXF
Public Function GetEntityList() As Collection

Dim entity As New Collection

'entity.Add(True, "3DFACE")
'entity.Add(True, "3DSOLID")
'entity.Add(True, "ACAD_PROXY_ENTITY")
en

End

Comento las que no son necesarias al principio ya que son entidades avanzadas que me parece que en la etapa temprana que estamos pueden omitirse.
Saludos.


o sea que cuando tengamos esas entidades listas podriamos importar DXF?

La cosa es mas sencilla de lo que parece, el DXF es un archivo de texto de un formato bastante arcaico, si cabe la expresión, y se pueden "leer" entero como cualquier archivo de texto y, por lo tanto, extraer desde un solo tipo de entidad hasta todas las que contienga.
Digamos que si en GambasCADE queremos representar rectángulos, líneas y círculos podríamos hacerlo con las clases que hay ahora mismo en nuestro querido CAD.
Saludos.
Saludos.

Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
Tincho:

Os comento, yo lo programaría el tema de como Importar/Exportar información de las clases a ficheros dwg, svg, o cualquier otro formato (el formato que usa TercoIde en su programa de estructuras).

Para cada clase de dibujo (linea, punto, rectángulo, etc...) tendria dos métodos nuevos:
.devuelve() as string
.cargar(datos as string)


Para Exportar:
Cada clase tiene que tener un método ".devuelve()" que devuelva una string, en formato json que contiene el nombre de las propiedades y sus valores (por ejemplo "color","rojo", o "capa","planta1") y luego los elementos graficos por los que esta compuesto (una linea seria "linea",ValorXinicio,ValorYinicio,ValorXfin,ValorYfin)

Se crea otra clase que recorra todos los elementos gráficos del dibujo y que use el método ".devuelve()" de cada elemento para ir construyendo el fichero de salida.

Esto tiene la ventaja de que se puede ir ampliando con varias clases para convertir los elementos a varios tipos de formato:
clase ExportaDxf()
clase ExportarSvg()
.....
Sin tener que tocar para nada el código de las clases linea, punto, rectangulo, etc...

Para Importar:
Iríamos en el siguiente orden:
Una clase que lee el contenido del fichero de datos, y va creando los nuevos objetos del dibujos
Estos objetos tienen cada uno método ".cargar(datos as string)" donde se les pasa una cadena tipo json donde les pasamos todos los valores y ese método es el encargado de "cargarse a si mismo", con las valores.

De esta forma tendríamos varias clases:
clase ImportarDXF()
clase ImportarSVG()
.....

No se, lo mismo esto diciendo una cosa de "perogrullo", pero me esta rondando toda la mañana esta idea.

Saludos

Julio


Nota:
Hay otra forma de crear nuevas clases usando el método _new(), usando el numero de parametros, pero creo que es menos clara. La podeis ver aqui:

https://cursogambas.blogspot.com/20...-hacer-una.html

última edición por jsbsan el Viernes, 01 May 2020, 17:21; editado 1 vez
Objetivo: Re: Material De Estudio Que Puede Interesar.
jsbsan escribió:  
Tincho:

Os comento, yo lo programaría el tema de como Importar/Exportar información de las clases a ficheros dwg, svg, o cualquier otro formato (el formato que usa TercoIde en su programa de estructuras).
...


Terco esta haciendo estos días las clases para las entidades que faltan. Seguro que le interesan estos temas.
Respecto a guardar, esto que decís es interesante porque al guardar los datos en XML ( no digo SVG que es un XML pero mas complejo ) estos datos lo sacamos de las clases, de una array de clases bueno y el código de preparación de los datos para guardarlos es cambiante según que entidad sea, pero si en la clase ya hay un string listo para guardar ahorra un paso, lo cual es interesante ademas de mas seguro respecto a errores.
Luego sucede que las entidades gráficas como lineas círculos digamos, se pueden trasladar desde y hacia todos los formatos que imaginemos. Pero sucede que los elementos smart ademas de la información grafica tienen algo mas que podríamos llamar meta-datos y eso cambia la cosa a la hora de guardarlo en, por ejemplo DXF.
Pero seguimos dialogando estos temas y haciendo alguna prueba.
¿Quieres que te agregue al proyecto en girhub? Supongo que siempre sera mejor subir una clase de prueba con el método que dices así yo también hago la prueba para guardar y esos temas.
Saludos.

Perfil MP  
Objetivo: Re: Material De Estudio Que Puede Interesar.
Tincho:

Citar:
¿Quieres que te agregue al proyecto en girhub? Supongo que siempre sera mejor subir una clase de prueba con el método que dices así yo también hago la prueba para guardar y esos temas.

Vale.

Lo ideal seria trabajar en ramas con github y luego unirlas al proyecto principal.. pero yo no se como se trabaja con ramas , yo voy siempre a lo bruto... una rama principal...


Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.105s (PHP: -14% SQL: 114%)
Consultas SQL: 25 - Debug off - GZIP Activado