AutoCad - Doble arco en dxf

   
Vista:

Doble arco en dxf

Publicado por jet ex (2 intervenciones) el 23/08/2014 04:35:55
Saludos , por favor quisieran que me ayudaran, estoy haciendo un programa para generar un dxf desde java
el inconveniente que tengo es que no puedo poner 2 arcos dentro de un dxf , solamente puedo poner 1 aqui esta el codigo de solo 1 arco :

0
SECTION
2
ENTITIES
0
ARC
5
20
100
AcDbEntity
8
Arc
100
AcDbCircle
62
8
10
1235.41
20
600
40
106.76
100
AcDbArc
50
109.4978128956675
51
250.49
0
ENDSEC
0
EOF

Segun investigue para agregar otro arco solo copio la entidad tipo arco y se lo pego mas abajo y le cambios los parametros, ya hize esto pero no me abre el archivo
como hago para que me muestre el segundo arco?

por cierto y si me pudieran ayudar con un codigo para generar la entidad elipse en dxf les estaria muy agradecido yo tengo este formato pero no me abre

0
SECTION
2
ENTITIES
0
ELLIPSE
5
20
330
D
100
AcDbEntity
8
Ellipse (+small hatch)
62
6
100
AcDbEllipse
10
180.0
20
-120.0
30
0.0
11
30.0
21
0.0
31
0.0
210
0.0
220
0.0
230
1.0
40
0.3333333432674408
41
0.0
42
6.283185307179586
0
ENDSEC
0
EOF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Doble arco en dxf

Publicado por Gerardo (443 intervenciones) el 25/08/2014 01:59:41
Lo del arco es tan sencillo como dices. Simplemente agregar la siguiente definicion después de la que tienes. A veces se queda algún código por ahí perdido, hay que revisar bien.

Una advertencia importante por si acaso. Autocad nunca te aceptará dos entidades con el mismo handle, por lo que eso si es un motivo para que un dxf no se pueda abrir. O sea que si en el segundo arco conservas el valor del codigo 5 igual a 20, pues habrá un conflicto.

En un dxf que solo hace lineas y arcos sin vinculos entre entidades no necesitarás del handle, así que mejor no pones ningún código 5 y que el cad los ponga automáticamente. Lo mismo con todos los demás valores que no son necesarios. Por ejemplo, lo mínimo para crear una linea es el tipo, las coordenadas y la capa. Con solo indicar los codigos 0, 10, 20, 30, 11, 21, 31 y 8 ya se crea, y logicamente los demas valores serán por defecto: color y linetype by-layer etc... Ya si te interesa darle un color agregas el 62, o para un tipo de linea agregas el 6, o lo mismo con cualquier otra propiedad.


Lo del Ellipse si es un tema aparte. Tienes 2 inconvenientes principales a resolver.

1-Si creas un dxf sin cabecera Autocad asumirá que es la versión más primitiva que maneja que es la R12. Por ejemplo para un R15 (Autocad 2000) hay que asignar la variable $ACADVER=AC1015 y $DWGCODEPAGE= ANSI_1252 en la seccion HEADER. El problema en sí es que en la versión R12 no existían las elipses en dxf. Si dibujas una y guardas en ese formato verás que el cad la convierte en una polilinea de estilo antiguo, al igual que muchas otras entidades como lwpolylines, splines, regions, wipeouts, etc que tampoco eran válidas.

2-En una versión más reciente, donde si puedes crear elipses, los espacios modelo y papel (cada layout) es tratado como un bloque y cada entidad debe estar ligada al espacio respectivo, mediante su handle. En el codigo que adjuntas pones
330
D
ME supongo que ese D es el handle del espacio modelo o el bloque que sea donde está el elipse. El autocad buscará el bloque respectivo con el handle "D", y si no lo encuentra, abrirá el archivo pero no ubicará el elipse en ninguna parte. Y cuando ves las definiciones de bloques en dxfs estas están linkeadas a diccionarios.

En resumen, para hacer un elipse (u otras entidades inválidas en dxf r12) necesitas definir secciones HEADER, y BLOCKS y posiblemente los diccionarios.

Lo mejor para entenderlo es dibujar un elipse en un archivo lo mas purgado posible de estilos, bloques, etc y guardarlo como DXF version 2000. Luego abrir ese archivo de texto y analizarlo todo, descomponiendo sus partes, para que te enteres de todos los vinculos entre handles necesarios. Generalemente estas ligas estarán en los códigos 330 y 360 de entidades hacia el código 5 de las entidades destino.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Doble arco en dxf

Publicado por jet ex (2 intervenciones) el 25/08/2014 05:31:13
Muchisimas gracias por contestar Gerardo, efectivamente despues de lo que usted me dijo revise detenidamente y el conflicto fue en el identificador de las entidades, solo tuve que poner otro identificador para el 2 arco y se pude abrir el dxf sin problemas, tambien me ayudo a entender mas sobre la estructura de las entidades, y por lo del elipse creo que no veo necesario adentrarme mas en ese tema para mi proyecto, lo puedo resolver con 2 arcos pero igual es bueno saberlo :D Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar