Statistics
| Revision:

root / branches / FMap_CAD / libraries / libFMap / docs / AnĂ¡lisis CAD.html @ 3513

History | View | Annotate | Download (15.8 KB)

1
<!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&aacute;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&aacute;lisis CAD<BR><FONT SIZE=5><A HREF="#1_Capas">1.
12
Capas</A><BR><A HREF="#2_Geometrias">2. Geometr&iacute;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&oacute;n (a partir de ahora
15
<B>capa CAD</B>) de la cual colgar&aacute;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&oacute;n, aparece el
18
concepto de capa activa que es distinto al concepto de capa activa
19
mantenido en FMap. Utilizaremos el t&eacute;rmino <B>capa en edici&oacute;n</B>
20
para referirnos a la capa interna CAD sobre la que se insertar&aacute;n
21
las geometr&iacute;as dibujadas durante la edici&oacute;n y el
22
t&eacute;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&oacute;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&oacute;n.
27
En ese instante, una de las capas internas CAD (usualmente la capa
28
cero) se pondr&aacute; como capa en edici&oacute;n y no podremos
29
poner como capa en edici&oacute;n ninguna capa que no pertenezca a la
30
capa que estamos editando.<BR><BR>&nbsp;&nbsp;&nbsp; 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&aacute; implementado 
35
        </P>
36
        <LI><P STYLE="margin-bottom: 0cm">En edici&oacute;n: Cuando se pone
37
        en edici&oacute;n una capa CAD, s&oacute;lo una de sus capas
38
        internas CAD estar&aacute; en edici&oacute;n. 
39
        </P>
40
        <LI><P STYLE="margin-bottom: 0cm">Bloqueada: No se permite la
41
        edici&oacute;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&iacute;as<BR></FONT>&nbsp;&nbsp;&nbsp;
47
Las geometr&iacute;as de CAD ser&aacute;n como las geometr&iacute;as
48
de FMap pero con algunas caracter&iacute;sticas adicionales ya que
49
deber&aacute;n de tener un color (permiti&eacute;ndose los valores
50
t&iacute;picos de un campo de color m&aacute;s los valores &quot;por
51
capa&quot; y &quot;por bloque&quot;) y un tipo de linea asociado.
52
Adem&aacute;s, para la realizaci&oacute;n del snapping, toda
53
geometr&iacute;a deber&aacute; de devolver una serie de puntos de
54
snapping a los que ajustar los puntos que introduce el usuario y para
55
el uso de la herramienta por defecto, deber&aacute; de devolver los
56
puntos sobre los que se situar&aacute;n handlers para la modificaci&oacute;n
57
de los mismos.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 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&aacute;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&oacute;n</FONT> 
79
        </P>
80
        <LI><P STYLE="line-height: 150%"><FONT SIZE=2 STYLE="font-size: 11pt">Punto
81
        intersecci&oacute;n</FONT> 
82
        </P>
83
</UL>
84
<P>Distinguimos dos tipos de geometr&iacute;as, las simples y las
85
complejas. La manera de utilizar geometr&iacute;as complejas ser&aacute;
86
mediante una geometr&iacute;a especial que sea una colecci&oacute;n
87
de geometr&iacute;as. Algunas de las geometr&iacute;as simples pueden
88
dibujarse especificando distintas coordenadas y todas pueden
89
dibujarse mediante el uso del rat&oacute;n y mediante el uso de la
90
consola. Tenemos la siguiente clasificaci&oacute;n de geometr&iacute;as
91
junto con sus distintos m&eacute;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&iacute;nea.
101
        Permite dibujar una l&iacute;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&oacute;n
106
        (&aacute;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&oacute;n
110
        de un c&iacute;rculo. Se define mediante tres puntos. Hay varios
111
        m&eacute;todos para dibujar un c&iacute;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, &aacute;ngulo inclu&iacute;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&oacute;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, &aacute;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>&iacute;rculo.
137
        Se especifica mediante cualquiera de los siguientes m&eacute;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&aacute;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&iacute;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&eacute;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&oacute;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&oacute;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&iacute;nea.
182
        Es una entidad formada por un conjunto de l&iacute;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&aacute;ngulo.
185
        Se dibuja un rect&aacute;ngulo especificando sus esquinas opuestas.
186
        Por defecto se dibuja paralelo a la alineaci&oacute;n del grill.
187
        Debe permitir la opci&oacute;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&iacute;gonos.</FONT> <FONT SIZE=2 STYLE="font-size: 11pt">Est&aacute;n
191
        compuestos por un m&iacute;nimo de 3 lados de igual longitud (en
192
        otros programas de CAD tienen un m&aacute;ximo de alrededor de 1000
193
        lados). M&eacute;todos para dibujar un pol&iacute;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&eacute;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&eacute;rtice (se especifica la ubicaci&oacute;n de un v&eacute;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&oacute;n
209
        de Tolerancia, que determina con cuanta precisi&oacute;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
        &uacute;nica. Las operaciones con bloques m&aacute;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&iacute;as se dispondr&aacute;
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&ntilde;adan las geometr&iacute;as
230
desde la consola o mediante el uso del rat&oacute;n, la ejecuci&oacute;n
231
de las acciones pase siempre por los mismos m&eacute;todos del
232
modelo. Para entender este apartado conviene estar m&iacute;nimamente
233
familiarizado con la interfaz gr&aacute;fica de AutoCAD 2004 o
234
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&aacute; una
237
herramienta seleccionada mediante la cual operar&aacute; con las
238
geometr&iacute;as de las capas internas CAD (la capa interna CAD en
239
edici&oacute;n si la herramienta es de dibujo). Cada herramienta
240
viene definida por un aut&oacute;mata finito determinista en el que
241
las transiciones entre estados vienen definidas por la acci&oacute;n
242
del usuario con la herramienta (introducci&oacute;n de un punto,
243
introducci&oacute;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&iacute;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&oacute;n de CAD se realizar&aacute; 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&aacute;l es o cu&aacute;les
253
son las geometr&iacute;as seleccionadas, recibiendo un objeto sobre
254
el que dibujar&aacute;n en el que ya est&aacute;n dibujadas las
255
geometr&iacute;as del fichero en edici&oacute;n. Para emplear
256
herramientas de CAD utilizaremos pues una herramienta especial
257
CADToolAdapter que capturar&aacute; los eventos del rat&oacute;n y de
258
la consola de Andami, transform&aacute;ndolos en eventos de
259
transici&oacute;n entre estados para la herramienta de CAD
260
seleccionada. El CADToolAdapter deber&aacute; de dibujar la capa en
261
edici&oacute;n y luego delegar el dibujado en la herramienta CAD
262
seleccionada. Resumiendo, la herramienta CADToolAdapter servir&aacute;
263
de adaptador entre las facilidades que proporcional MapControl para
264
las herramientas y las necesidades de las herramientas de CAD.<BR><BR>&nbsp;&nbsp;&nbsp;
265
Las funciones del CADToolAdapter ser&aacute;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&aacute; en edici&oacute;n. 
270
        </P>
271
        <LI><P STYLE="margin-bottom: 0cm">Mantener la selecci&oacute;n
272
        actual de la fuente de datos editable. 
273
        </P>
274
        <LI><P STYLE="margin-bottom: 0cm">Traducir los eventos de rat&oacute;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&oacute;n actual
284
        del rat&oacute;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&oacute;n actual del rat&oacute;n si est&aacute; 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 &iacute;ndice
298
espacial, los puntos de snapping de todas las geometr&iacute;as,
299
adem&aacute;s de que deben mantenerse actualizados dichos &iacute;ndices.
300
Esto quiere decir que si se modifica una geometr&iacute;a se deber&aacute;n
301
de eliminar los puntos de la geometr&iacute;a antes de la
302
modificaci&oacute;n e insertar los puntos de la geometr&iacute;a tras
303
la modificaci&oacute;n. <BR><BR><BR>
304
</P>
305
<P>Para soportar todo lo anterior las capas vectoriales FLyrVect
306
dibujar&aacute;n la capa en edici&oacute;n (y no la capa original)
307
cuando se ponen en estado de edici&oacute;n.<BR><BR><FONT SIZE=4>3.2
308
Interfaz del editor</FONT><BR>La interfaz del editor ser&aacute; un
309
MapControl m&aacute;s una consola de edici&oacute;n interactiva.
310
Dicha consola deber&aacute; de tener las siguientes caracter&iacute;sticas:</P>
311
<UL>
312
        <LI><P STYLE="margin-bottom: 0cm">Hist&oacute;rico de introducciones
313
        del usuario 
314
        </P>
315
        <LI><P STYLE="margin-bottom: 0cm">Tener el foco impl&iacute;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>