svn-gvsig-desktop / trunk / libraries / libFMap / docs / AnĂ¡lisis CAD.html @ 6556
History | View | Annotate | Download (22.7 KB)
1 | 1330 | fernando | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
---|---|---|---|
2 | <html>
|
||
3 | <head>
|
||
4 | <meta content="text/html; charset=ISO-8859-1" |
||
5 | http-equiv="content-type"> |
||
6 | <title>Análisis CAD</title> |
||
7 | </head>
|
||
8 | <body>
|
||
9 | <big><big><big>Análisis CAD<br> |
||
10 | </big></big></big><big><big><big><small><a href="#1_Capas">1. Capas</a><br> |
||
11 | <a href="#2_Geometrias">2. Geometrías</a><br> |
||
12 | <a href="#3_Editor">3. Editor</a><br> |
||
13 | <a href="#4_Boques"></a></small></big></big></big><big><big><big><small><br> |
||
14 | <a name="1_Capas"></a>1. Capas<br> |
||
15 | </small></big></big></big><big><big><small><small> Los |
||
16 | ficheros de CAD se van a abrir mediante una capa colección (a
|
||
17 | partir de ahora <span style="font-weight: bold;">capa CAD</span>) de |
||
18 | la cual colgarán las capas individuales correspondientes a las
|
||
19 | capas internas del fichero de CAD (a partir de ahora <span
|
||
20 | style="font-weight: bold;">capa interna CAD</span>). Durante la |
||
21 | edición, aparece el concepto de capa activa que es distinto al
|
||
22 | concepto de capa activa mantenido en FMap. Utilizaremos el |
||
23 | término <span style="font-weight: bold;">capa en edición</span> |
||
24 | para referirnos a la capa interna CAD sobre la que se insertarán
|
||
25 | las geometrías dibujadas durante la edición y el |
||
26 | término <span style="font-weight: bold;">capa activa</span> |
||
27 | para la capa/s seleccionada/s cuando no estamos editando sobre la que |
||
28 | se realizan operaciones de zoom al tema, selección, ... De esta
|
||
29 | manera para editar un archivo CAD pondremos como capa activa la capa |
||
30 | CAD del fichero que queremos editar y diremos a gvSIG que queremos |
||
31 | comenzar la edición. En ese instante, una de las capas internas
|
||
32 | CAD (usualmente la capa cero) se pondrá como capa en
|
||
33 | edición y no podremos poner como capa en edición ninguna |
||
34 | capa que no pertenezca a la capa que estamos editando.<br>
|
||
35 | <br>
|
||
36 | Las capas internas CAD tienen una serie de atributos:<br> |
||
37 | </small></small></big></big> |
||
38 | <ul>
|
||
39 | <li>Visibilidad: Toda capa en gvSIG tiene ese atributo, por lo que ya
|
||
40 | está implementado</li> |
||
41 | <li>En edición: Cuando se pone en edición una capa CAD, |
||
42 | sólo una de sus capas internas CAD estará en |
||
43 | edición.</li> |
||
44 | <li>Bloqueada: No se permite la edición sobre ella</li> |
||
45 | <li>Color de dibujo.<br> |
||
46 | </li>
|
||
47 | <li>Tipo de linea.<br> |
||
48 | </li>
|
||
49 | </ul>
|
||
50 | <big><big><small><small><br> |
||
51 | </small></small></big></big><big><big><big><small><a name="2_Geometrias"></a>2. |
||
52 | Geometrías<br> |
||
53 | </small></big></big></big> Las geometrías de |
||
54 | CAD serán como las geometrías de FMap pero con algunas |
||
55 | características adicionales ya que deberán de tener un |
||
56 | color (permitiéndose los valores típicos de un campo de |
||
57 | color más los valores "por capa" y "por bloque") y un tipo de
|
||
58 | linea asociado. Además, para la realización del snapping, |
||
59 | toda geometría deberá de devolver una serie de puntos de |
||
60 | snapping a los que ajustar los puntos que introduce el usuario y para |
||
61 | el uso de la herramienta por defecto, deberá de devolver los
|
||
62 | puntos sobre los que se situarán handlers para la
|
||
63 | modificación de los mismos.<br> |
||
64 | <br>
|
||
65 | Los |
||
66 | puntos a los que se puede ajustar mediante el snapping son los |
||
67 | siguientes: |
||
68 | <br>
|
||
69 | <!--[if !supportLists]--><span |
||
70 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
71 | style=""><span |
||
72 | style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> |
||
73 | </span></span></span><!--[endif]--> |
||
74 | <ul>
|
||
75 | <li><span style="font-size: 11pt; line-height: 150%;">Punto |
||
76 | más cercano</span> </li> |
||
77 | <li><span style="font-size: 11pt; line-height: 150%;">Punto final</span> |
||
78 | </li>
|
||
79 | <li><span style="font-size: 11pt; line-height: 150%;">Punto medio</span> |
||
80 | </li>
|
||
81 | <li><span style="font-size: 11pt; line-height: 150%;">Centro</span> </li> |
||
82 | <li><span style="font-size: 11pt; line-height: 150%;"><span |
||
83 | style="font-family: "times new roman";">T</span>angente</span> </li> |
||
84 | <li><span style="font-size: 11pt; line-height: 150%;">Perpendicular</span> |
||
85 | </li>
|
||
86 | <li><span style="font-size: 11pt; line-height: 150%;">Cuadrante</span> |
||
87 | </li>
|
||
88 | <li><span style="font-size: 11pt; line-height: 150%;">Punto de |
||
89 | inserción</span> </li> |
||
90 | <li><span style="font-size: 11pt; line-height: 150%;">Punto |
||
91 | intersección</span></li> |
||
92 | </ul>
|
||
93 | <!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[if !supportLists]--><!--[if !supportLists]--><!--[if !supportLists]--><!--[if !supportLists]--><br> |
||
94 | <br>
|
||
95 | Distinguimos dos tipos de geometrías, las |
||
96 | simples y las complejas. La manera de utilizar geometrías
|
||
97 | complejas será mediante una geometría especial que sea |
||
98 | una colección de geometrías. Algunas de las |
||
99 | geometrías simples pueden dibujarse especificando distintas
|
||
100 | coordenadas y todas pueden dibujarse mediante el uso del ratón y
|
||
101 | mediante el uso de la consola. Tenemos la siguiente |
||
102 | clasificación de geometrías junto con sus distintos |
||
103 | métodos
|
||
104 | de dibujado:<br>
|
||
105 | <p
|
||
106 | style="margin: 5.95pt 0cm 5.95pt 72pt; text-indent: -18pt; line-height: 150%;"><!--[if !supportLists]--><span |
||
107 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
108 | style=""></span></span></p> |
||
109 | <ul>
|
||
110 | <li> <span style="font-weight: bold;"> </span>Simples </li> |
||
111 | </ul>
|
||
112 | <!--[if !supportLists]-->
|
||
113 | <ul style="margin-left: 40px;"> |
||
114 | <li><span |
||
115 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
116 | style=""></span></span><span |
||
117 | style="font-size: 11pt; line-height: 150%;">Punto. </span></li> |
||
118 | <li><span |
||
119 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
120 | style=""></span></span><span |
||
121 | style="font-size: 11pt; line-height: 150%;">Línea. </span><span |
||
122 | style="font-size: 11pt; line-height: 150%;">Permite |
||
123 | dibujar una línea especificando el punto de inicio y el punto
|
||
124 | final. Como se ha |
||
125 | comentado se pueden elegir entre varias opciones a la hora de indicar |
||
126 | estos |
||
127 | puntos, por ejemplo una vez dibujado el punto de inicio podemos definir |
||
128 | el |
||
129 | punto final especificando la longitud del segmento y su |
||
130 | orientación (ángulo).</span> </li> |
||
131 | <li><span |
||
132 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
133 | style=""><span |
||
134 | style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"></span></span></span><span |
||
135 | style="font-size: 11pt; line-height: 150%;">Arco.</span><span |
||
136 | style="font-size: 11pt; line-height: 150%;"> Un arco |
||
137 | es una porción de un círculo. Se define mediante tres |
||
138 | puntos. Hay varios |
||
139 | métodos para dibujar un círculo:</span> </li> |
||
140 | <ul>
|
||
141 | <li><span |
||
142 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
143 | style=""></span></span><span |
||
144 | style="font-size: 11pt; line-height: 150%;">Tres puntos (inicio, |
||
145 | segundo y final).</span> </li> |
||
146 | <li><span |
||
147 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
148 | style=""></span></span><span |
||
149 | style="font-size: 11pt; line-height: 150%;">Inicio, centro y final.</span> |
||
150 | </li>
|
||
151 | <li><span |
||
152 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
153 | style=""></span></span><span |
||
154 | style="font-size: 11pt; line-height: 150%;">Inicio, centro, longitud |
||
155 | de la cuerda.</span> </li> |
||
156 | <li><span |
||
157 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
158 | style=""></span></span><span |
||
159 | style="font-size: 11pt; line-height: 150%;">Inicio, final, radio.</span> |
||
160 | </li>
|
||
161 | <li><span |
||
162 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
163 | style=""></span></span><span |
||
164 | style="font-size: 11pt; line-height: 150%;">Inicio, final, |
||
165 | ángulo incluído.</span> </li> |
||
166 | <li><span |
||
167 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
168 | style=""></span></span><span |
||
169 | style="font-size: 11pt; line-height: 150%;">Inicio, final, |
||
170 | dirección inicial.</span><span |
||
171 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"></span><span |
||
172 | style="font-size: 11pt; line-height: 150%;"></span></li> |
||
173 | <li><span style="font-size: 11pt; line-height: 150%;">Inicio, |
||
174 | radio, ángulo.</span></li> |
||
175 | </ul>
|
||
176 | <li><span |
||
177 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
178 | style=""><span |
||
179 | style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"></span></span></span><span |
||
180 | style="font-size: 11pt; line-height: 150%;"><span |
||
181 | style="font-family: "times new roman";">C</span>írculo. </span><span |
||
182 | style="font-size: 11pt; line-height: 150%;">Se |
||
183 | especifica mediante cualquiera de los siguientes métodos:.</span> |
||
184 | </li>
|
||
185 | <ul>
|
||
186 | <li><span |
||
187 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
188 | style=""></span></span><span |
||
189 | style="font-size: 11pt; line-height: 150%;">Centro, Radio.</span> </li> |
||
190 | <li><span |
||
191 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
192 | style=""></span></span><span |
||
193 | style="font-size: 11pt; line-height: 150%;">Centro, Diámetro.</span> |
||
194 | </li>
|
||
195 | <li><span |
||
196 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
197 | style=""></span></span><span |
||
198 | style="font-size: 11pt; line-height: 150%;">Dos puntos.</span> </li> |
||
199 | <li><span |
||
200 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
201 | style=""></span></span><span |
||
202 | style="font-size: 11pt; line-height: 150%;">Tres puntos.</span> </li> |
||
203 | <li><span |
||
204 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
205 | style=""><span |
||
206 | style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"></span></span></span><span |
||
207 | style="font-size: 11pt; line-height: 150%;">Radio, tangente, tangente</span></li> |
||
208 | <li><span style="font-size: 11pt; line-height: 150%;"></span><span |
||
209 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
210 | style=""><span |
||
211 | style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"></span></span></span><span |
||
212 | style="font-size: 11pt; line-height: 150%;">Convertir arco a |
||
213 | círculo.</span></li> |
||
214 | </ul>
|
||
215 | <li><span |
||
216 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
217 | style=""></span></span><span |
||
218 | style="font-size: 11pt; line-height: 150%;">Elipse. </span><span |
||
219 | style="font-size: 11pt; line-height: 150%;">Métodos |
||
220 | para dibujar una elipse:</span> </li> |
||
221 | <ul>
|
||
222 | <li><span style="font-size: 11pt; line-height: 150%;">Eje, eje.</span> |
||
223 | </li>
|
||
224 | <li><span |
||
225 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
226 | style=""></span></span><span |
||
227 | style="font-size: 11pt; line-height: 150%;">Eje, rotación.</span> |
||
228 | </li>
|
||
229 | <li><span |
||
230 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
231 | style=""></span></span><span |
||
232 | style="font-size: 11pt; line-height: 150%;">Centro, eje.</span> </li> |
||
233 | <li><span |
||
234 | style="font-size: 10pt; line-height: 150%; font-family: Wingdings;"><span |
||
235 | style=""></span></span><span |
||
236 | style="font-size: 11pt; line-height: 150%;">Centro, rotación.</span></li> |
||
237 | </ul>
|
||
238 | </ul>
|
||
239 | <!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--> |
||
240 | <ul>
|
||
241 | <li>Complejas</li> |
||
242 | </ul>
|
||
243 | <!--[if !supportLists]--><span |
||
244 | style="font-size: 10pt; line-height: 150%; font-family: "Courier New";"><span |
||
245 | style=""></span></span> |
||
246 | <ul style="margin-left: 40px;"> |
||
247 | <li><span style="font-size: 11pt; line-height: 150%;">Polilínea. |
||
248 | </span><span style="font-size: 11pt; line-height: 150%;">Es |
||
249 | una entidad formada por un conjunto de líneas y/o arcos.</span> </li> |
||
250 | <li><span style="font-size: 11pt; line-height: 150%;">Rectángulo. |
||
251 | </span><span style="font-size: 11pt; line-height: 150%;">Se |
||
252 | dibuja un rectángulo especificando sus esquinas opuestas. Por
|
||
253 | defecto se dibuja |
||
254 | paralelo a la alineación del grill. Debe permitir la
|
||
255 | opción de dibujar un
|
||
256 | cuadrado.</span> </li> |
||
257 | <li><span style="font-size: 11pt; line-height: 150%;">Dibujar |
||
258 | polígonos.</span><span |
||
259 | style="font-size: 11pt; line-height: 150%;"> Están compuestos |
||
260 | por un mínimo de 3 lados de igual longitud (en otros
|
||
261 | programas de CAD tienen un máximo de alrededor de 1000 lados).
|
||
262 | Métodos para
|
||
263 | dibujar un polígono:</span> </li> |
||
264 | <ul>
|
||
265 | <li><span style="font-size: 11pt; line-height: 150%;">Centro y |
||
266 | distancia del centro a cada vértice.</span> </li> |
||
267 | <li><span style="font-size: 11pt; line-height: 150%;">Centro y |
||
268 | vértice (se especifica la ubicación de un vértice).</span></li> |
||
269 | <li><span style="font-size: 11pt; line-height: 150%;"></span><span |
||
270 | style="font-size: 11pt; line-height: 150%;">Centro y distancia al |
||
271 | punto medio de un lado.</span></li> |
||
272 | </ul>
|
||
273 | <li><span style="font-size: 11pt; line-height: 150%;">Spline. </span><span |
||
274 | style="font-size: 11pt; line-height: 150%;">Es una |
||
275 | curva suave definida por un conjunto de puntos. Se define especificando |
||
276 | los |
||
277 | puntos que la definen. Debe tener la opción de Tolerancia, que
|
||
278 | determina con |
||
279 | cuanta precisión la spline se ajusta al conjunto de puntos que
|
||
280 | se especifica.</span> </li> |
||
281 | <li><span style="font-size: 11pt; line-height: 150%;">Bloques. </span><span |
||
282 | style="font-size: 11pt; line-height: 150%;">Los |
||
283 | bloques son unas entidades especiales que una vez guardadas pueden ser |
||
284 | insertadas y manipuladas en el dibujo como una entidad única.
|
||
285 | Las operaciones |
||
286 | con bloques más comunes son:</span> </li> |
||
287 | <ul>
|
||
288 | <li><span style="font-size: 11pt; line-height: 150%;">Crear un |
||
289 | bloque.</span> </li> |
||
290 | <li><span style="font-size: 11pt; line-height: 150%;">Insertar un |
||
291 | bloque.</span></li> |
||
292 | </ul>
|
||
293 | </ul>
|
||
294 | <span style="font-size: 11pt; line-height: 150%;"><a name="3_Editor"></a><big><big><big>3. |
||
295 | Editor<br>
|
||
296 | </big></big></big></span><span |
||
297 | style="font-size: 11pt; line-height: 150%;"></span> |
||
298 | El editor de geometrías se dispondrá en dos capas, la |
||
299 | capa del modelo y la capa de la interfaz, con el fin de que |
||
300 | independientemente de que se añadan las geometrías desde |
||
301 | la consola o mediante el uso del ratón, la ejecución de |
||
302 | las acciones pase siempre por los mismos métodos del modelo.
|
||
303 | Para entender este apartado conviene estar mínimamente
|
||
304 | familiarizado con la interfaz gráfica de AutoCAD 2004 o
|
||
305 | similares.<br>
|
||
306 | <small><br> |
||
307 | </small><big>3.1 Modelo del editor</big><br> |
||
308 | El modelo del editor tendrá una herramienta |
||
309 | seleccionada mediante la cual operará con las geometrías |
||
310 | de las capas internas CAD (la capa interna CAD en edición si la
|
||
311 | herramienta es de dibujo). Las herramientas de edición
|
||
312 | constarán de dos partes a nivel conceptual: <br> |
||
313 | <ul>
|
||
314 | <li>la parte del comportamiento que toma los parámetros</li> |
||
315 | <li>el resultado producido por estos. <br> |
||
316 | </li>
|
||
317 | </ul>
|
||
318 | Por ejemplo, en la herramienta a nivel de interfaz |
||
319 | que dibuja un círculo, la opción de especificar 3 puntos, |
||
320 | centro y radio, etc y la posterior secuencia de puntos que se pide |
||
321 | sería su comportamiento mientras que el circulo insertado en la
|
||
322 | capa interna CAD sería el resultado de la herramienta.<br> |
||
323 | <br>
|
||
324 | Se han diferenciado estas dos partes de la |
||
325 | herramienta con el fin de explicar en profundidad la parte del |
||
326 | comportamiento. Dicho comportamiento viene definido por un |
||
327 | autómata de estados finitos por cuyos estados nos iremos
|
||
328 | desplazando durante la introducción de datos. Por ejemplo, el
|
||
329 | diagrama de estados finitos de la herramienta círculo
|
||
330 | sería el siguiente (TODO poner el diagrama) (para el AutoCAD
|
||
331 | 2004):<br>
|
||
332 | 1415 | fernando | <div style="text-align: left;"><img alt="" |
333 | src="../../FMap%2003%20CAD/docs/cad/diagramas/linea.gif" |
||
334 | style="height: 440px; width: 500px;"><br> |
||
335 | </div>
|
||
336 | 1330 | fernando | <br>
|
337 | Los estados vendrán identificados por un |
||
338 | número entero, mientras que las transiciones serán |
||
339 | strings correspondiéndose al texto que hay que escribir en la
|
||
340 | 1415 | fernando | consola de edición o textos especiales indicando acciones de
|
341 | usuario. Estas acciones son independientemente del interfaz usado para |
||
342 | realizar la acción (ratón, teclado, ...). Entre las |
||
343 | transiciones permitidas podemos destacar las transiciones de "punto", |
||
344 | "numero", "aceptar" y "cancelar".<br>
|
||
345 | 1330 | fernando | <br>
|
346 | La edición de CAD se realizará sobre |
||
347 | un MapControl. Para ello contamos con el inconveniente de que las |
||
348 | herramientas de MapControl no tienen estado y han de pintar ellas toda |
||
349 | la imagen. Por el contrario, las herramientas que estamos definiendo |
||
350 | tienen un estado y al dibujar y operar deben conocer cuál es o
|
||
351 | cuáles son las geometrías seleccionadas, recibiendo un |
||
352 | objeto sobre el que dibujarán en el que ya están |
||
353 | dibujadas las geometrías del fichero en edición. Para |
||
354 | emplear herramientas de CAD utilizaremos pues una herramienta especial |
||
355 | CADToolAdapter que capturará los eventos del ratón, |
||
356 | transformándolos en eventos de transición entre estados |
||
357 | para la herramienta de CAD seleccionada. El CADToolAdapter |
||
358 | deberá de dibujar la capa en edición y luego delegar el |
||
359 | dibujado en la herramienta CAD seleccionada. Resumiendo, la herramienta |
||
360 | CADToolAdapter servirá de adaptador entre las facilidades que
|
||
361 | proporcional MapControl para las herramientas y las necesidades de las |
||
362 | herramientas de CAD.<br>
|
||
363 | <br>
|
||
364 | Las funciones del CADToolAdapter serán las |
||
365 | siguientes:<br>
|
||
366 | <ul>
|
||
367 | <li>Mantener una referencia al <a |
||
368 | href="Edici%F3n%20vectorial%20en%20FMap.html">EditableFeatureSource</a> |
||
369 | que está en edición.</li> |
||
370 | <li>Mantener la selección actual de la fuente de datos |
||
371 | editable.</li>
|
||
372 | <li>Traducir los eventos de ratón y las entradas por consola |
||
373 | en transiciones entre estados de la CadTool seleccionada.</li>
|
||
374 | <li>Dibujar la fuente de datos y delegar el dibujado del estado
|
||
375 | actual de la herramienta en la CadTool seleccionada.</li>
|
||
376 | <li>Obtener los puntos de snap dado un punto y dibujar el efecto del
|
||
377 | snaping para la posición actual del ratón sea cual sea el |
||
378 | estado de la herramienta seleccionada.</li>
|
||
379 | <li>Obtener el punto de rastreo para la posición actual del |
||
380 | ratón si está activado<br> |
||
381 | </li>
|
||
382 | <li>Traducir los puntos recibidos del MapControl de coordenadas de la
|
||
383 | imagen a coordenadas del mapa ajustando al punto de snap en caso haber |
||
384 | alguno y estar activada dicha funcionalidad.</li>
|
||
385 | <li>Traducir los eventos del MapControl en transiciones en el estado
|
||
386 | 1415 | fernando | de las herramientas de CAD.</li>
|
387 | <li>Obtener el estado de la herramienta de CAD y poner la pregunta
|
||
388 | correspondiente en la consola. Escuchar la respuesta y generar una |
||
389 | transición en consecuencia<br> |
||
390 | 1330 | fernando | </li>
|
391 | </ul>
|
||
392 | Para realizar el snapping, se deben de introducir en |
||
393 | un índice espacial, los puntos de snapping de todas las
|
||
394 | geometrías, además de que deben mantenerse actualizados |
||
395 | dichos índices. Esto quiere decir que si se modifica una
|
||
396 | geometría se deberán de eliminar los puntos de la |
||
397 | geometría antes de la modificación e insertar los puntos |
||
398 | de la geometría tras la modificación. Además, al |
||
399 | realizar snapping, debe aparecer en el editor un tooltip indicando el |
||
400 | tipo del punto al que se hace snapping (centro, punto medio, ...) |
||
401 | además de que el efecto del snapping puede dibujarse de distinta
|
||
402 | manera en función del tipo de punto por lo que el tipo de punto
|
||
403 | deberá ser retornado por las geometrías y almacenado en |
||
404 | el índice espacial junto con el punto en sí. <br> |
||
405 | <br>
|
||
406 | 1415 | fernando | Para la gestión del snapping se deberá |
407 | de tener un índice espacial
|
||
408 | con los puntos susceptibles de entrar en acción durante el
|
||
409 | snapping. |
||
410 | Para ello al insertar una geometría habrá que realizar |
||
411 | las siguientes operaciones:<br>
|
||
412 | <ul>
|
||
413 | <li>TODO<br> |
||
414 | </li>
|
||
415 | </ul>
|
||
416 | 1330 | fernando | Similar al snapping por puntos están los |
417 | siguientes ajustes:<br>
|
||
418 | <ul>
|
||
419 | <li>Rastreo polar: Se ajusta la posición actual del |
||
420 | ratón a las rectas horizontal y vertical que pasan por el punto
|
||
421 | origen de la acción.</li> |
||
422 | <li>Modo orto: Similar al rastreo polar, pero con la diferencia de
|
||
423 | que el modo orto ajusta siempre mientras que el rastreo polar ajusta |
||
424 | sólo cuando el puntero del ratón está |
||
425 | próximo a las dos lineas comentadas.</li> |
||
426 | <li>Rastreo de referencia a objetos: Cuando el usuario se queda en el
|
||
427 | area de snap de un punto un determinado tiempo sin salir de ella, dicho |
||
428 | punto queda seleccionado de forma que se ajustará la
|
||
429 | posición del ratón |
||
430 | a las rectas horizontal y vertical que pasan por dicho punto.</li>
|
||
431 | </ul>
|
||
432 | Para soportar todo lo anterior las capas vectoriales |
||
433 | FLyrVect |
||
434 | dibujarán la capa en edición (y no la capa original) |
||
435 | cuando se |
||
436 | ponen en estado de edición.<br> |
||
437 | <br>
|
||
438 | <big>3.2 Interfaz del editor</big><br> |
||
439 | <span style="font-size: 11pt; line-height: 150%;"></span><!--[if !supportLists]--><!--[if !supportLists]--><!--[if !supportLists]--> |
||
440 | La interfaz del editor será un MapControl más una consola |
||
441 | de edición interactiva. Dicha consola deberá de tener las |
||
442 | siguientes características:<br> |
||
443 | <ul>
|
||
444 | <li>Histórico de introducciones del usuario <br> |
||
445 | </li>
|
||
446 | <li>Tener el foco implícitamente siempre</li> |
||
447 | <li>Aspectos usuales de toda consola</li> |
||
448 | </ul>
|
||
449 | <br>
|
||
450 | </body>
|
||
451 | </html> |