43 |
43 |
import org.cresques.px.dxf.DxfHeaderManager;
|
44 |
44 |
import org.cresques.px.dxf.DxfHeaderVariables;
|
45 |
45 |
|
|
46 |
/**
|
|
47 |
* Clase que representa un fichero en formato DXF. Contiene los interfaces y m?todos
|
|
48 |
* necesarios para acceder a la informaci?n almacenada en su interior.
|
|
49 |
*
|
|
50 |
* @author jmorell
|
|
51 |
*/
|
46 |
52 |
public class DxfFile extends GeoFile {
|
47 |
53 |
|
48 |
54 |
private boolean cadFlag = true;
|
... | ... | |
64 |
70 |
* @author "Luis W. Sevilla" <sevilla_lui@gva.es>
|
65 |
71 |
*/
|
66 |
72 |
public interface EntityFactory extends Projected {
|
67 |
|
public void setAddingToBlock(boolean a);
|
|
73 |
|
|
74 |
/**
|
|
75 |
* Permite saber si se est?n a?adiendo elementos a un bloque
|
|
76 |
* @param booleano que indica si se est?n a?adiendo elementos a un bloque
|
|
77 |
*/
|
|
78 |
public void setAddingToBlock(boolean a);
|
|
79 |
|
|
80 |
/**
|
|
81 |
* Crea una nueva capa partiendo de la informaci?n almacenada en el DXF
|
|
82 |
* @param DxfGroupVector con informaci?n para la construcci?n de la nueva capa
|
|
83 |
* @throws Exception
|
|
84 |
*/
|
68 |
85 |
public void createLayer(DxfGroupVector v) throws Exception ;
|
|
86 |
|
|
87 |
/**
|
|
88 |
* Crea una nueva polil?nea partiendo de la informaci?n almacenada en el DXF
|
|
89 |
* @param DxfGroupVector con informaci?n para la construcci?n de la nueva polil?nea
|
|
90 |
* @throws Exception
|
|
91 |
*/
|
69 |
92 |
public void createPolyline(DxfGroupVector v) throws Exception ;
|
|
93 |
|
|
94 |
/**
|
|
95 |
* A?ade un v?rtice a la polil?nea que se est? creando
|
|
96 |
* @param DxfGroupVector con la informaci?n necesaria para la adici?n del v?rtice
|
|
97 |
* @throws Exception
|
|
98 |
*/
|
70 |
99 |
public void addVertex(DxfGroupVector v) throws Exception ;
|
71 |
|
public void endSeq() throws Exception ;
|
|
100 |
|
|
101 |
/**
|
|
102 |
* Fin de secuencia
|
|
103 |
* @throws Exception
|
|
104 |
*/
|
|
105 |
public void endSeq() throws Exception ;
|
|
106 |
|
|
107 |
/**
|
|
108 |
* Crea una nueva LwPolyline partiendo de la informaci?n almacenada en el DXF
|
|
109 |
* @param DxfGroupVector con informaci?n para la construcci?n de la nueva polil?nea
|
|
110 |
* @throws Exception
|
|
111 |
*/
|
72 |
112 |
public void createLwPolyline(DxfGroupVector v) throws Exception ;
|
73 |
|
public void createLine(DxfGroupVector v) throws Exception ;
|
74 |
|
public void createText(DxfGroupVector v) throws Exception ;
|
75 |
|
public void createMText(DxfGroupVector v) throws Exception ;
|
76 |
|
public void createPoint(DxfGroupVector v) throws Exception ;
|
77 |
|
public void createCircle(DxfGroupVector v) throws Exception ;
|
78 |
|
public void createEllipse(DxfGroupVector v) throws Exception ;
|
79 |
|
public void createArc(DxfGroupVector v) throws Exception ;
|
80 |
|
public void createInsert(DxfGroupVector v) throws Exception ;
|
81 |
|
public void createSolid(DxfGroupVector v) throws Exception ;
|
82 |
|
public void createSpline(DxfGroupVector v) throws Exception ;
|
83 |
|
public void createAttdef(DxfGroupVector v) throws Exception ;
|
84 |
|
public void createAttrib(DxfGroupVector v) throws Exception ;
|
85 |
|
public void createBlock(DxfGroupVector v) throws Exception ;
|
86 |
|
public void endBlk(DxfGroupVector v) throws Exception ;
|
87 |
|
void testBlocks();
|
88 |
|
public Extent getExtent();
|
89 |
|
public Vector getBlkList();
|
90 |
|
// Para manejar los atributos almacenados en DXFs.
|
91 |
|
public Vector getAttributes();
|
92 |
|
public void depureAttributes();
|
93 |
|
public IObjList getObjects();
|
94 |
|
public boolean isDxf3DFile();
|
|
113 |
|
|
114 |
/**
|
|
115 |
* Crea una nueva l?nea partiendo de la informaci?n almacenada en el DXF
|
|
116 |
* @param DxfGroupVector con informaci?n para la construcci?n de la nueva l?nea
|
|
117 |
* @throws Exception
|
|
118 |
*/
|
|
119 |
public void createLine(DxfGroupVector v) throws Exception ;
|
|
120 |
|
|
121 |
/**
|
|
122 |
* Crea un nuevo texto partiendo de la informaci?n almacenada en el DXF
|
|
123 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo texto
|
|
124 |
* @throws Exception
|
|
125 |
*/
|
|
126 |
public void createText(DxfGroupVector v) throws Exception ;
|
|
127 |
|
|
128 |
/**
|
|
129 |
* Crea un nuevo MText partiendo de la informaci?n almacenada en el DXF
|
|
130 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo MText
|
|
131 |
* @throws Exception
|
|
132 |
*/
|
|
133 |
public void createMText(DxfGroupVector v) throws Exception ;
|
|
134 |
|
|
135 |
/**
|
|
136 |
* Crea un nuevo punto partiendo de la informaci?n almacenada en el DXF
|
|
137 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo punto
|
|
138 |
* @throws Exception
|
|
139 |
*/
|
|
140 |
public void createPoint(DxfGroupVector v) throws Exception ;
|
|
141 |
|
|
142 |
/**
|
|
143 |
* Crea un nuevo c?rculo partiendo de la informaci?n almacenada en el DXF
|
|
144 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo c?rculo
|
|
145 |
* @throws Exception
|
|
146 |
*/
|
|
147 |
public void createCircle(DxfGroupVector v) throws Exception ;
|
|
148 |
|
|
149 |
/**
|
|
150 |
* Crea una nueva elipse partiendo de la informaci?n almacenada en el DXF
|
|
151 |
* @param DxfGroupVector con informaci?n para la construcci?n de la nueva elipse
|
|
152 |
* @throws Exception
|
|
153 |
*/
|
|
154 |
public void createEllipse(DxfGroupVector v) throws Exception ;
|
|
155 |
|
|
156 |
/**
|
|
157 |
* Crea un nuevo arco partiendo de la informaci?n almacenada en el DXF
|
|
158 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo arco
|
|
159 |
* @throws Exception
|
|
160 |
*/
|
|
161 |
public void createArc(DxfGroupVector v) throws Exception ;
|
|
162 |
|
|
163 |
/**
|
|
164 |
* Crea un nuevo punto de inserci?n partiendo de la informaci?n almacenada en el DXF
|
|
165 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo punto de inserci?n
|
|
166 |
* @throws Exception
|
|
167 |
*/
|
|
168 |
public void createInsert(DxfGroupVector v) throws Exception ;
|
|
169 |
|
|
170 |
/**
|
|
171 |
* Crea un nuevo s?lido 2D partiendo de la informaci?n almacenada en el DXF
|
|
172 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo s?lido
|
|
173 |
* @throws Exception
|
|
174 |
*/
|
|
175 |
public void createSolid(DxfGroupVector v) throws Exception ;
|
|
176 |
|
|
177 |
/**
|
|
178 |
* Crea un nuevo Spline partiendo de la informaci?n almacenada en el DXF
|
|
179 |
* @param DxfGroupVector con informaci?n para la construcci?n del nuevo Spline
|
|
180 |
* @throws Exception
|
|
181 |
*/
|
|
182 |
public void createSpline(DxfGroupVector v) throws Exception ;
|
|
183 |
|
|
184 |
/**
|
|
185 |
* Construye la definici?n de un nuevo atributo partiendo de la informaci?n almacenada en el DXF
|
|
186 |
* @param DxfGroupVector con informaci?n para la construcci?n de la definici?n del nuevo atributo
|
|
187 |
* @throws Exception
|
|
188 |
*/
|
|
189 |
public void createAttdef(DxfGroupVector v) throws Exception ;
|
|
190 |
|
|
191 |
/**
|
|
192 |
* Crea un nuevo atributo partiendo de la informaci?n almacenada en el DXF
|
|
193 |
* @param DxfGroupVector con informaci?n para la creaci?n del nuevo atributo
|
|
194 |
* @throws Exception
|
|
195 |
*/
|
|
196 |
public void createAttrib(DxfGroupVector v) throws Exception ;
|
|
197 |
|
|
198 |
/**
|
|
199 |
* Crea un bloque
|
|
200 |
* @param DxfGroupVector con informaci?n para la creaci?n del nuevo elemento
|
|
201 |
* @throws Exception
|
|
202 |
*/
|
|
203 |
public void createBlock(DxfGroupVector v) throws Exception ;
|
|
204 |
|
|
205 |
/**
|
|
206 |
* Fin de la definici?n de un bloqe
|
|
207 |
* @param DxfGroupVector con informaci?n referente al final de un bloque
|
|
208 |
* @throws Exception
|
|
209 |
*/
|
|
210 |
public void endBlk(DxfGroupVector v) throws Exception ;
|
|
211 |
|
|
212 |
/**
|
|
213 |
* Gestiona los bloques que no se han tratado en la primera vuelta
|
|
214 |
*/
|
|
215 |
void testBlocks();
|
|
216 |
|
|
217 |
/**
|
|
218 |
* Devuelve el extent
|
|
219 |
* @return el extent
|
|
220 |
*/
|
|
221 |
public Extent getExtent();
|
|
222 |
|
|
223 |
/**
|
|
224 |
* Devuelve la lista de bloques
|
|
225 |
* @return la lista de bloques
|
|
226 |
*/
|
|
227 |
public Vector getBlkList();
|
|
228 |
|
|
229 |
/**
|
|
230 |
* Permite la gesti?n de los atributos almacenados en unn DXF
|
|
231 |
* @return un Vector con la lista de atributos
|
|
232 |
*/
|
|
233 |
public Vector getAttributes();
|
|
234 |
|
|
235 |
/**
|
|
236 |
* Borra los atributos repetidos
|
|
237 |
*/
|
|
238 |
public void depureAttributes();
|
|
239 |
|
|
240 |
/**
|
|
241 |
* Devuelve los objetos almacenados en el DXF
|
|
242 |
* @return IObjList con los objetos procedentes del DXF
|
|
243 |
*/
|
|
244 |
public IObjList getObjects();
|
|
245 |
|
|
246 |
/**
|
|
247 |
* Permite saber si se trata de un fichero DXF en 2D o en 3D
|
|
248 |
* @return booleano que indica si se trata de un fichero DXF 3D
|
|
249 |
*/
|
|
250 |
public boolean isDxf3DFile();
|
95 |
251 |
};
|
96 |
252 |
|
97 |
253 |
/**
|
... | ... | |
104 |
260 |
|
105 |
261 |
/**
|
106 |
262 |
* Establece la versi?n de Autocad en la que fue generado el DXF.
|
107 |
|
* @param v
|
|
263 |
* @param informaci?n de base
|
108 |
264 |
* @throws Exception
|
109 |
265 |
*/
|
110 |
266 |
public void setAcadVersion(DxfGroupVector v) throws Exception ;
|
... | ... | |
123 |
279 |
|
124 |
280 |
};
|
125 |
281 |
|
|
282 |
/**
|
|
283 |
* Constructor de la clase
|
|
284 |
* @param proj, la proyecci?n cartogr?fica
|
|
285 |
* @param name, el path absoluto hasta el fichero DXF
|
|
286 |
* @param maker, el interface que permite la construcci?n de las entidades procedentes del DXF
|
|
287 |
*/
|
126 |
288 |
public DxfFile(IProjection proj, String name, EntityFactory maker) {
|
127 |
289 |
super(proj, name);
|
128 |
290 |
entityMaker = maker;
|
129 |
291 |
headerManager = new DxfHeaderManager();
|
130 |
292 |
}
|
131 |
293 |
|
132 |
|
// 041215: Metiendole el interface VarSettings. No me gusta pero no se como
|
133 |
|
// evitar que pierda el objeto.
|
134 |
|
public DxfFile(IProjection proj, String name, EntityFactory maker, VarSettings dxfVars) {
|
|
294 |
/**
|
|
295 |
* Constructor de la clase que adem?s incorpora la capacidad de leer una porci?n del HEADER
|
|
296 |
* @param proj, la proyecci?n cartogr?fica
|
|
297 |
* @param name, el path absoluto hasta el fichero DXF
|
|
298 |
* @param maker, el interface que permite la construcci?n de las entidades procedentes del DXF
|
|
299 |
* @param dxfVars, el interface que permite la lectura del HEADER de un DXF
|
|
300 |
*/
|
|
301 |
public DxfFile(IProjection proj, String name, EntityFactory maker, VarSettings dxfVars) {
|
135 |
302 |
super(proj, name);
|
136 |
303 |
entityMaker = maker;
|
137 |
304 |
headerManager = dxfVars;
|
138 |
305 |
}
|
139 |
306 |
|
140 |
307 |
/**
|
141 |
|
* Carga un .dxf
|
|
308 |
* Carga un fichero en formato DXF
|
142 |
309 |
*/
|
143 |
310 |
public GeoFile load() {
|
144 |
311 |
System.out.println("Dxf: Cargando "+name+" ...");
|
... | ... | |
158 |
325 |
return this;
|
159 |
326 |
}
|
160 |
327 |
|
|
328 |
/**
|
|
329 |
* Carga un fichero en formato DXF tomando un Reader como par?metro
|
|
330 |
* @param fr, Reader que se le pasa como par?metro
|
|
331 |
* @return devuelve un objeto GeoFile, padre de DxfFile
|
|
332 |
* @throws NumberFormatException
|
|
333 |
* @throws Exception
|
|
334 |
*/
|
161 |
335 |
public GeoFile load(Reader fr) throws NumberFormatException, Exception {
|
162 |
336 |
System.out.println("Dxf: Cargando '"+name+"' ...");
|
163 |
337 |
fi = new BufferedReader(fr);
|
... | ... | |
175 |
349 |
return this;
|
176 |
350 |
}
|
177 |
351 |
|
|
352 |
/**
|
|
353 |
* El fichero DXF se divide en grupos. Este m?todo permite leer cada grupo individualmente
|
|
354 |
* @return devuelve la informaci?n del DXF en forma de objetos de la clase DxfGroup
|
|
355 |
* @throws NumberFormatException
|
|
356 |
* @throws IOException
|
|
357 |
*/
|
178 |
358 |
private DxfGroup readGrp() throws NumberFormatException, IOException {
|
179 |
359 |
DxfGroup g = DxfGroup.read(fi);
|
180 |
360 |
if (g != null) l += 2;
|
... | ... | |
186 |
366 |
return g;
|
187 |
367 |
}
|
188 |
368 |
|
|
369 |
/**
|
|
370 |
* El fichero DXF se divide en varias secciones. Este m?todo se encarga de leer cada
|
|
371 |
* una de ellas
|
|
372 |
* @throws NumberFormatException
|
|
373 |
* @throws Exception
|
|
374 |
*/
|
189 |
375 |
private void readSection() throws NumberFormatException, Exception {
|
190 |
376 |
while (true) {
|
191 |
377 |
grp = readGrp(); System.out.print("-1:"+grp);
|
... | ... | |
213 |
399 |
}
|
214 |
400 |
}
|
215 |
401 |
|
|
402 |
/**
|
|
403 |
* Habilita la lectura de la secci?n de TABLES
|
|
404 |
* @throws NumberFormatException
|
|
405 |
* @throws Exception
|
|
406 |
*/
|
216 |
407 |
private void readTables() throws NumberFormatException, Exception {
|
217 |
408 |
System.out.println("Dxf: Seccion TABLAS, linea "+ l+ "grp ="+ grp);
|
218 |
409 |
int layerCnt = 0;
|
... | ... | |
268 |
459 |
System.out.println("Dxf: Seccion TABLAS: " + layerCnt + " Capas. ");
|
269 |
460 |
}
|
270 |
461 |
|
|
462 |
/**
|
|
463 |
* M?todo de lectura de secci?n por defecto. Se utiliza mientras se realiza la
|
|
464 |
* implementaci?n correspondiente
|
|
465 |
* @throws NumberFormatException
|
|
466 |
* @throws IOException
|
|
467 |
*/
|
271 |
468 |
private void readAnySection() throws NumberFormatException, IOException {
|
272 |
469 |
System.out.println("Dxf: Seccion '"+((String) grp.getData())+"', linea "+ l);
|
273 |
470 |
while (true) {
|
... | ... | |
325 |
522 |
System.out.println("readHeader: ACAD Version: " + headerManager.getDxfHeaderVars().getAcadVersion());
|
326 |
523 |
}
|
327 |
524 |
|
|
525 |
/**
|
|
526 |
* Permite leer la secci?n ENTITIES del DXF, donde se encuentran las entidades
|
|
527 |
* geom?tricas del DXF que no aparecen dentro de ning?n bloque
|
|
528 |
* @throws NumberFormatException
|
|
529 |
* @throws Exception
|
|
530 |
*/
|
328 |
531 |
private void readEntities() throws NumberFormatException, Exception {
|
329 |
532 |
System.out.println("Dxf: Seccion ENTITIES, linea "+ l);
|
330 |
533 |
int entityCnt = 0;
|
... | ... | |
386 |
589 |
//System.out.println("Seccion ENTITIES, linea "+ l+ " (SALGO)");
|
387 |
590 |
}
|
388 |
591 |
|
|
592 |
/**
|
|
593 |
* Permite la secci?n BLOCKS del DXF, donde se encuentran las definiciones de los
|
|
594 |
* bloques que componen el DXF
|
|
595 |
* @throws NumberFormatException
|
|
596 |
* @throws Exception
|
|
597 |
*/
|
389 |
598 |
private void readBlocks() throws NumberFormatException, Exception {
|
390 |
599 |
System.out.println("Dxf: Seccion BLOCKS, linea "+ l);
|
391 |
600 |
int blkCnt = 0;
|
... | ... | |
469 |
678 |
System.out.println("Dxf: Seccion BLOCKS, " + blkCnt + " elementos de bloque. "+ cntVeces + " veces.");
|
470 |
679 |
}
|
471 |
680 |
|
|
681 |
/**
|
|
682 |
* Devuelve los objetos geom?tricos obtenidos de un DXF
|
|
683 |
*/
|
472 |
684 |
public IObjList getObjects() {
|
473 |
685 |
return this.entityMaker.getObjects();
|
474 |
686 |
}
|
475 |
687 |
|
476 |
688 |
/**
|
477 |
|
* jmorell: M?todo que permite salvar al formato DXF2000.
|
|
689 |
* jmorell: M?todo que permite salvar capas al formato DXF2000.
|
478 |
690 |
* Este m?todo ha sido actualizado en el proceso de implementaci?n del piloto
|
479 |
691 |
* de CAD. En este piloto deb?a existir soporte para elipses, y este es uno de
|
480 |
692 |
* los motivos que nos llevan a implementar ahora para DXF2000, puesto que el
|
... | ... | |
503 |
715 |
t2 = getTime();
|
504 |
716 |
System.out.println("DxfFile.save(): Tiempo salvando: " + (t2-t1)/1000 + " seg.");
|
505 |
717 |
}
|
|
718 |
|
506 |
719 |
/**
|
507 |
720 |
* Escritor de la cabecera de un DXF.
|
508 |
721 |
* jmorell: Actualizaci?n del escritor de DXF de R12 a 2000.
|
509 |
|
* @param fw
|
|
722 |
* @param fw, un FileWriter para escribir ficheros
|
510 |
723 |
* @throws IOException
|
511 |
724 |
*/
|
512 |
725 |
public void writeHeader(FileWriter fw) throws IOException {
|
... | ... | |
712 |
925 |
|
713 |
926 |
/**
|
714 |
927 |
* Escritor de la secci?n TABLES de un DXF.
|
715 |
|
* @param fw
|
|
928 |
* @param fw, FileWriter
|
716 |
929 |
* @throws IOException
|
717 |
930 |
*/
|
718 |
931 |
public void writeTables(FileWriter fw) throws IOException {
|
... | ... | |
734 |
947 |
writeBlockRecordTable(fw);
|
735 |
948 |
fw.write(DxfGroup.toString(0, "ENDSEC"));
|
736 |
949 |
}
|
|
950 |
|
737 |
951 |
/**
|
738 |
952 |
* Escritor de la tabla VPORT.
|
739 |
953 |
* @param fw
|
... | ... | |
800 |
1014 |
fw.write(DxfGroup.toString(146, 0.0, 4));*/
|
801 |
1015 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
802 |
1016 |
}
|
|
1017 |
|
803 |
1018 |
/**
|
804 |
1019 |
* Escritor de la tabla LTYPE.
|
805 |
1020 |
* @param fw
|
... | ... | |
838 |
1053 |
fw.write(DxfGroup.toString(40, 0.0, 4));
|
839 |
1054 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
840 |
1055 |
}
|
|
1056 |
|
841 |
1057 |
/**
|
842 |
1058 |
* Escritor de la tabla LAYER.
|
843 |
1059 |
* @param fw
|
... | ... | |
863 |
1079 |
fw.write(DxfGroup.toString(390, "F"));
|
864 |
1080 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
865 |
1081 |
}
|
|
1082 |
|
866 |
1083 |
/**
|
867 |
1084 |
* Escritor de la tabla STYLE.
|
868 |
1085 |
* @param fw
|
... | ... | |
893 |
1110 |
fw.write(DxfGroup.toString(4, ""));
|
894 |
1111 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
895 |
1112 |
}
|
|
1113 |
|
896 |
1114 |
/**
|
897 |
1115 |
* Escritor de la tabla VIEW.
|
898 |
1116 |
* @param fw
|
... | ... | |
906 |
1124 |
fw.write(DxfGroup.toString(70, 0));
|
907 |
1125 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
908 |
1126 |
}
|
|
1127 |
|
909 |
1128 |
/**
|
910 |
1129 |
* Escritor de la tabla UCS.
|
911 |
1130 |
* @param fw
|
... | ... | |
919 |
1138 |
fw.write(DxfGroup.toString(70, 0));
|
920 |
1139 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
921 |
1140 |
}
|
|
1141 |
|
922 |
1142 |
/**
|
923 |
1143 |
* Escritor de la tabla APPID.
|
924 |
1144 |
* @param fw
|
... | ... | |
938 |
1158 |
fw.write(DxfGroup.toString(70, 1));
|
939 |
1159 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
940 |
1160 |
}
|
|
1161 |
|
941 |
1162 |
/**
|
942 |
1163 |
* Escritor de la tabla DIMSTYLE.
|
943 |
1164 |
* @param fw
|
... | ... | |
952 |
1173 |
fw.write(DxfGroup.toString(100, "AcDbDimStyleTable"));
|
953 |
1174 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
954 |
1175 |
}
|
|
1176 |
|
955 |
1177 |
/**
|
956 |
1178 |
* Escritor de la tabla BLOCK_RECORD.
|
957 |
1179 |
* @param fw
|
... | ... | |
983 |
1205 |
fw.write(DxfGroup.toString(340, "26"));
|
984 |
1206 |
fw.write(DxfGroup.toString(0, "ENDTAB"));
|
985 |
1207 |
}
|
|
1208 |
|
986 |
1209 |
/**
|
987 |
1210 |
* Escritor de la secci?n de bloques por defecto de un DXF2000.
|
988 |
1211 |
* @param fw
|
... | ... | |
1046 |
1269 |
fw.write(DxfGroup.toString(100, "AcDbBlockEnd"));
|
1047 |
1270 |
fw.write(DxfGroup.toString(0, "ENDSEC"));
|
1048 |
1271 |
}
|
|
1272 |
|
1049 |
1273 |
/**
|
1050 |
|
* Escritor de la secci?n de entidades.
|
|
1274 |
* Escritor de la secci?n ENTITIES de entidades.
|
1051 |
1275 |
* @param fw
|
1052 |
1276 |
* @throws IOException
|
1053 |
1277 |
*/
|
... | ... | |
1393 |
1617 |
fw.write(DxfGroup.toString(0, "ENDSEC"));
|
1394 |
1618 |
}
|
1395 |
1619 |
|
|
1620 |
/**
|
|
1621 |
* Habilita la reproyecci?n cartogr?fica
|
|
1622 |
*/
|
1396 |
1623 |
public void reProject(ICoordTrans rp) {
|
1397 |
1624 |
System.out.println("Dxf: reproyectando ...");
|
1398 |
1625 |
entityMaker.reProject(rp);
|
... | ... | |
1405 |
1632 |
// TODO Auto-generated method stub
|
1406 |
1633 |
|
1407 |
1634 |
}
|
|
1635 |
|
1408 |
1636 |
/**
|
|
1637 |
* Informa sobre si estamos trabajando con el modelo de datos GIS o con el de CAD
|
1409 |
1638 |
* @return Returns the cadFlag.
|
1410 |
1639 |
*/
|
1411 |
1640 |
public boolean isCadFlag() {
|
1412 |
1641 |
return cadFlag;
|
1413 |
1642 |
}
|
|
1643 |
|
1414 |
1644 |
/**
|
|
1645 |
* Establece si trabajamos con el modelo de datos GIS o con el de CAD
|
1415 |
1646 |
* @param cadFlag The cadFlag to set.
|
1416 |
1647 |
*/
|
1417 |
1648 |
public void setCadFlag(boolean cadFlag) {
|