root / branches / FMap_piloto_CAD_Layout_version / libraries / libFMap / docs / AnĂ¡lisis CAD.html @ 1762
History | View | Annotate | Download (15.8 KB)
1 | 1762 | vcaballero | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
---|---|---|---|
2 | <HTML>
|
||
3 | <HEAD>
|
||
4 | <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1"> |
||
5 | <TITLE>Análisis CAD</TITLE> |
||
6 | <META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.1 (Linux)"> |
||
7 | <META NAME="CREATED" CONTENT="20050316;8512200"> |
||
8 | <META NAME="CHANGED" CONTENT="20050316;11573900"> |
||
9 | </HEAD>
|
||
10 | <BODY LANG="es-ES" DIR="LTR"> |
||
11 | <P><A NAME="1_Capas"></A><FONT SIZE=6>Análisis CAD<BR><FONT SIZE=5><A HREF="#1_Capas">1. |
||
12 | Capas</A><BR><A HREF="#2_Geometrias">2. Geometrías</A><BR><A HREF="#3_Editor">3. |
||
13 | Editor</A><BR><BR>1. Capas<BR></FONT></FONT>Los ficheros de CAD se |
||
14 | van a abrir mediante una capa colección (a partir de ahora
|
||
15 | <B>capa CAD</B>) de la cual colgarán las capas individuales |
||
16 | correspondientes a las capas internas del fichero de CAD (a partir de |
||
17 | ahora <B>capa interna CAD</B>). Durante la edición, aparece el |
||
18 | concepto de capa activa que es distinto al concepto de capa activa |
||
19 | mantenido en FMap. Utilizaremos el término <B>capa en edición</B> |
||
20 | 1330 | fernando | para referirnos a la capa interna CAD sobre la que se insertarán
|
21 | las geometrías dibujadas durante la edición y el |
||
22 | 1762 | vcaballero | término <B>capa activa</B> para la capa/s seleccionada/s |
23 | cuando no estamos editando sobre la que se realizan operaciones de |
||
24 | zoom al tema, selección, ... De esta manera para editar un
|
||
25 | archivo CAD pondremos como capa activa la capa CAD del fichero que |
||
26 | queremos editar y diremos a gvSIG que queremos comenzar la edición.
|
||
27 | En ese instante, una de las capas internas CAD (usualmente la capa |
||
28 | cero) se pondrá como capa en edición y no podremos |
||
29 | poner como capa en edición ninguna capa que no pertenezca a la
|
||
30 | capa que estamos editando.<BR><BR> Las capas |
||
31 | internas CAD tienen una serie de atributos:</P>
|
||
32 | <UL>
|
||
33 | <LI><P STYLE="margin-bottom: 0cm">Visibilidad: Toda capa en gvSIG |
||
34 | tiene ese atributo, por lo que ya está implementado
|
||
35 | </P>
|
||
36 | <LI><P STYLE="margin-bottom: 0cm">En edición: Cuando se pone |
||
37 | en edición una capa CAD, sólo una de sus capas |
||
38 | internas CAD estará en edición. |
||
39 | </P>
|
||
40 | <LI><P STYLE="margin-bottom: 0cm">Bloqueada: No se permite la |
||
41 | edición sobre ella
|
||
42 | </P>
|
||
43 | <LI><P STYLE="margin-bottom: 0cm">Color de dibujo.</P> |
||
44 | <LI><P>Tipo de linea.</P> |
||
45 | </UL>
|
||
46 | <P><A NAME="2_Geometrias"></A><BR><FONT SIZE=5>2. Geometrías<BR></FONT> |
||
47 | Las geometrías de CAD serán como las geometrías |
||
48 | de FMap pero con algunas características adicionales ya que
|
||
49 | deberán de tener un color (permitiéndose los valores |
||
50 | típicos de un campo de color más los valores "por |
||
51 | capa" y "por bloque") y un tipo de linea asociado. |
||
52 | Además, para la realización del snapping, toda |
||
53 | geometría deberá de devolver una serie de puntos de |
||
54 | 1330 | fernando | snapping a los que ajustar los puntos que introduce el usuario y para |
55 | el uso de la herramienta por defecto, deberá de devolver los
|
||
56 | 1762 | vcaballero | puntos sobre los que se situarán handlers para la modificación |
57 | de los mismos.<BR><BR> Los puntos a los que |
||
58 | se puede ajustar mediante el snapping son los siguientes: <!--[if !supportLists]--><!--[endif]--></P> |
||
59 | <UL>
|
||
60 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto |
||
61 | más cercano</FONT> |
||
62 | </P>
|
||
63 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto |
||
64 | final</FONT>
|
||
65 | </P>
|
||
66 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto |
||
67 | medio</FONT>
|
||
68 | </P>
|
||
69 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro</FONT> |
||
70 | </P>
|
||
71 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="times new roman">T</FONT>angente</FONT> |
||
72 | </P>
|
||
73 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Perpendicular</FONT> |
||
74 | </P>
|
||
75 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Cuadrante</FONT> |
||
76 | </P>
|
||
77 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto |
||
78 | de inserción</FONT> |
||
79 | </P>
|
||
80 | <LI><P STYLE="line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto |
||
81 | intersección</FONT> |
||
82 | </P>
|
||
83 | </UL>
|
||
84 | <P>Distinguimos dos tipos de geometrías, las simples y las |
||
85 | complejas. La manera de utilizar geometrías complejas será |
||
86 | mediante una geometría especial que sea una colección |
||
87 | de geometrías. Algunas de las geometrías simples pueden |
||
88 | dibujarse especificando distintas coordenadas y todas pueden |
||
89 | dibujarse mediante el uso del ratón y mediante el uso de la
|
||
90 | consola. Tenemos la siguiente clasificación de geometrías |
||
91 | junto con sus distintos métodos de dibujado:</P> |
||
92 | <UL>
|
||
93 | <LI><P>Simples |
||
94 | </P>
|
||
95 | </UL>
|
||
96 | <UL>
|
||
97 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto. |
||
98 | </FONT>
|
||
99 | </P>
|
||
100 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Línea. |
||
101 | Permite dibujar una línea especificando el punto de inicio y
|
||
102 | el punto final. Como se ha comentado se pueden elegir entre varias |
||
103 | opciones a la hora de indicar estos puntos, por ejemplo una vez |
||
104 | dibujado el punto de inicio podemos definir el punto final |
||
105 | especificando la longitud del segmento y su orientación
|
||
106 | (ángulo).</FONT> |
||
107 | </P>
|
||
108 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Arco.</FONT> |
||
109 | <FONT SIZE=2 STYLE="font-size: 11pt">Un arco es una porción |
||
110 | de un círculo. Se define mediante tres puntos. Hay varios
|
||
111 | métodos para dibujar un círculo:</FONT> |
||
112 | </P>
|
||
113 | <UL>
|
||
114 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Tres |
||
115 | puntos (inicio, segundo y final).</FONT>
|
||
116 | </P>
|
||
117 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Inicio, |
||
118 | centro y final.</FONT>
|
||
119 | </P>
|
||
120 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Inicio, |
||
121 | centro, longitud de la cuerda.</FONT>
|
||
122 | </P>
|
||
123 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Inicio, |
||
124 | final, radio.</FONT>
|
||
125 | </P>
|
||
126 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Inicio, |
||
127 | final, ángulo incluído.</FONT> |
||
128 | </P>
|
||
129 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Inicio, |
||
130 | final, dirección inicial.</FONT> |
||
131 | </P>
|
||
132 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Inicio, |
||
133 | radio, ángulo.</FONT> |
||
134 | </P>
|
||
135 | </UL>
|
||
136 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="times new roman">C</FONT>írculo. |
||
137 | Se especifica mediante cualquiera de los siguientes métodos:.</FONT> |
||
138 | </P>
|
||
139 | <UL>
|
||
140 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro, |
||
141 | Radio.</FONT>
|
||
142 | </P>
|
||
143 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro, |
||
144 | Diámetro.</FONT> |
||
145 | </P>
|
||
146 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Dos |
||
147 | puntos.</FONT>
|
||
148 | </P>
|
||
149 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Tres |
||
150 | puntos.</FONT>
|
||
151 | </P>
|
||
152 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Radio, |
||
153 | tangente, tangente</FONT>
|
||
154 | </P>
|
||
155 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Convertir |
||
156 | arco a círculo.</FONT> |
||
157 | </P>
|
||
158 | </UL>
|
||
159 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Elipse. |
||
160 | Métodos para dibujar una elipse:</FONT> |
||
161 | </P>
|
||
162 | <UL>
|
||
163 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Eje, |
||
164 | eje.</FONT>
|
||
165 | </P>
|
||
166 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Eje, |
||
167 | rotación.</FONT> |
||
168 | </P>
|
||
169 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro, |
||
170 | eje.</FONT>
|
||
171 | </P>
|
||
172 | <LI><P STYLE="line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro, |
||
173 | rotación.</FONT> |
||
174 | </P>
|
||
175 | </UL>
|
||
176 | </UL>
|
||
177 | <UL>
|
||
178 | <LI><P>Complejas</P> |
||
179 | </UL>
|
||
180 | <UL>
|
||
181 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%">P<FONT SIZE=2 STYLE="font-size: 11pt">olilínea. |
||
182 | Es una entidad formada por un conjunto de líneas y/o arcos.</FONT> |
||
183 | </P>
|
||
184 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Rectángulo. |
||
185 | Se dibuja un rectángulo especificando sus esquinas opuestas.
|
||
186 | Por defecto se dibuja paralelo a la alineación del grill.
|
||
187 | Debe permitir la opción de dibujar un cuadrado.</FONT> |
||
188 | </P>
|
||
189 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Dibujar |
||
190 | polígonos.</FONT> <FONT SIZE=2 STYLE="font-size: 11pt">Están |
||
191 | compuestos por un mínimo de 3 lados de igual longitud (en
|
||
192 | otros programas de CAD tienen un máximo de alrededor de 1000
|
||
193 | lados). Métodos para dibujar un polígono:</FONT> |
||
194 | </P>
|
||
195 | <UL>
|
||
196 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro |
||
197 | y distancia del centro a cada vértice.</FONT> |
||
198 | </P>
|
||
199 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro |
||
200 | y vértice (se especifica la ubicación de un vértice).</FONT> |
||
201 | </P>
|
||
202 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Centro |
||
203 | y distancia al punto medio de un lado.</FONT>
|
||
204 | </P>
|
||
205 | </UL>
|
||
206 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Spline. |
||
207 | Es una curva suave definida por un conjunto de puntos. Se define |
||
208 | especificando los puntos que la definen. Debe tener la opción
|
||
209 | de Tolerancia, que determina con cuanta precisión la spline
|
||
210 | se ajusta al conjunto de puntos que se especifica.</FONT>
|
||
211 | </P>
|
||
212 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Bloques. |
||
213 | Los bloques son unas entidades especiales que una vez guardadas |
||
214 | pueden ser insertadas y manipuladas en el dibujo como una entidad |
||
215 | única. Las operaciones con bloques más comunes son:</FONT> |
||
216 | </P>
|
||
217 | <UL>
|
||
218 | <LI><P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Crear |
||
219 | un bloque.</FONT>
|
||
220 | </P>
|
||
221 | <LI><P STYLE="line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Insertar |
||
222 | un bloque.</FONT>
|
||
223 | </P>
|
||
224 | </UL>
|
||
225 | </UL>
|
||
226 | <P STYLE="line-height: 150%"><A NAME="3_Editor"></A><FONT SIZE=6>3. |
||
227 | Editor<BR></FONT>El editor de geometrías se dispondrá |
||
228 | en dos capas, la capa del modelo y la capa de la interfaz, con el fin |
||
229 | de que independientemente de que se añadan las geometrías |
||
230 | desde la consola o mediante el uso del ratón, la ejecución |
||
231 | de las acciones pase siempre por los mismos métodos del
|
||
232 | modelo. Para entender este apartado conviene estar mínimamente
|
||
233 | 1330 | fernando | familiarizado con la interfaz gráfica de AutoCAD 2004 o
|
234 | 1762 | vcaballero | similares.<BR><FONT SIZE=2><BR></FONT><FONT SIZE=4>3.1 Modelo del |
235 | editor</FONT></P> |
||
236 | <P STYLE="line-height: 150%">El modelo del editor tendrá una |
||
237 | herramienta seleccionada mediante la cual operará con las
|
||
238 | geometrías de las capas internas CAD (la capa interna CAD en
|
||
239 | edición si la herramienta es de dibujo). Cada herramienta
|
||
240 | viene definida por un autómata finito determinista en el que
|
||
241 | las transiciones entre estados vienen definidas por la acción
|
||
242 | del usuario con la herramienta (introducción de un punto,
|
||
243 | introducción de un texto, cancelar, ...) y los estados
|
||
244 | identifican el estado actual de la herramienta (esperando un punto, |
||
245 | terminada, ...). Por ejemplo, el diagrama de estados finitos de la |
||
246 | herramienta linea sería el siguiente ) (para el AutoCAD 2004):</P> |
||
247 | <P ALIGN=LEFT STYLE="line-height: 150%"><IMG SRC="cad/diagramas/linea.gif" NAME="Imagen1" ALIGN=LEFT WIDTH=500 HEIGHT=440 BORDER=0><BR CLEAR=LEFT>La |
||
248 | edición de CAD se realizará sobre un MapControl. Para |
||
249 | ello contamos con el inconveniente de que las herramientas de |
||
250 | MapControl no tienen estado y han de pintar ellas toda la imagen. Por |
||
251 | el contrario, las herramientas que estamos definiendo tienen un |
||
252 | estado y al dibujar y operar deben conocer cuál es o cuáles |
||
253 | son las geometrías seleccionadas, recibiendo un objeto sobre
|
||
254 | el que dibujarán en el que ya están dibujadas las |
||
255 | geometrías del fichero en edición. Para emplear |
||
256 | herramientas de CAD utilizaremos pues una herramienta especial |
||
257 | CADToolAdapter que capturará los eventos del ratón y de |
||
258 | la consola de Andami, transformándolos en eventos de
|
||
259 | transición entre estados para la herramienta de CAD
|
||
260 | seleccionada. El CADToolAdapter deberá de dibujar la capa en
|
||
261 | edición y luego delegar el dibujado en la herramienta CAD
|
||
262 | seleccionada. Resumiendo, la herramienta CADToolAdapter servirá
|
||
263 | de adaptador entre las facilidades que proporcional MapControl para |
||
264 | las herramientas y las necesidades de las herramientas de CAD.<BR><BR> |
||
265 | Las funciones del CADToolAdapter serán las siguientes:</P> |
||
266 | <UL>
|
||
267 | <LI><P STYLE="margin-bottom: 0cm">Mantener una referencia al |
||
268 | <A HREF="./Edici%F3n vectorial en FMap.html">EditableFeatureSource</A> |
||
269 | que está en edición. |
||
270 | </P>
|
||
271 | <LI><P STYLE="margin-bottom: 0cm">Mantener la selección |
||
272 | actual de la fuente de datos editable. |
||
273 | </P>
|
||
274 | <LI><P STYLE="margin-bottom: 0cm">Traducir los eventos de ratón |
||
275 | y las entradas por consola en transiciones entre estados de la |
||
276 | CadTool seleccionada. |
||
277 | </P>
|
||
278 | <LI><P STYLE="margin-bottom: 0cm">Dibujar la fuente de datos y |
||
279 | delegar el dibujado del estado actual de la herramienta en la |
||
280 | CadTool seleccionada. |
||
281 | </P>
|
||
282 | <LI><P STYLE="margin-bottom: 0cm">Obtener los puntos de snap dado un |
||
283 | punto y dibujar el efecto del snaping para la posición actual
|
||
284 | del ratón sea cual sea el estado de la herramienta
|
||
285 | seleccionada. |
||
286 | </P>
|
||
287 | <LI><P STYLE="margin-bottom: 0cm">Obtener el punto de rastreo para |
||
288 | la posición actual del ratón si está activado</P> |
||
289 | <LI><P STYLE="margin-bottom: 0cm">Traducir los puntos recibidos del |
||
290 | MapControl de coordenadas de la imagen a coordenadas del mapa |
||
291 | ajustando al punto de snap en caso haber alguno y estar activada |
||
292 | dicha funcionalidad. |
||
293 | </P>
|
||
294 | <LI><P>Traducir los eventos del MapControl en transiciones en el |
||
295 | estado de las herramientas de CAD.</P>
|
||
296 | </UL>
|
||
297 | <P>Para realizar el snapping, se deben de introducir en un índice |
||
298 | espacial, los puntos de snapping de todas las geometrías,
|
||
299 | además de que deben mantenerse actualizados dichos índices. |
||
300 | Esto quiere decir que si se modifica una geometría se deberán |
||
301 | de eliminar los puntos de la geometría antes de la
|
||
302 | modificación e insertar los puntos de la geometría tras |
||
303 | la modificación. <BR><BR><BR> |
||
304 | </P>
|
||
305 | <P>Para soportar todo lo anterior las capas vectoriales FLyrVect
|
||
306 | 1330 | fernando | dibujarán la capa en edición (y no la capa original) |
307 | 1762 | vcaballero | cuando se ponen en estado de edición.<BR><BR><FONT SIZE=4>3.2 |
308 | Interfaz del editor</FONT><BR>La interfaz del editor será un |
||
309 | MapControl más una consola de edición interactiva. |
||
310 | Dicha consola deberá de tener las siguientes características:</P> |
||
311 | <UL>
|
||
312 | <LI><P STYLE="margin-bottom: 0cm">Histórico de introducciones |
||
313 | del usuario |
||
314 | </P>
|
||
315 | <LI><P STYLE="margin-bottom: 0cm">Tener el foco implícitamente |
||
316 | siempre |
||
317 | </P>
|
||
318 | <LI><P>Aspectos usuales de toda consola |
||
319 | </P>
|
||
320 | </UL>
|
||
321 | <P><BR><BR> |
||
322 | </P>
|
||
323 | </BODY>
|
||
324 | </HTML> |