Está en la página 1de 22

ndice General

VisualLISP
Curso de programacin
para AutoCAD

Nicols da Silva

VisualLISP Curso de programacin para AutoCAD

VisualLISP Curso de programacin para AutoCAD


Nicols da Silva Santamara
De la edicin: INFORBOOK'S, S.L.
Se ha puesto el mximo inters en ofrecer al lector una informacin completa y precisa.
Sin embargo, INFORBOOK'S, S.L. no asume ninguna responsabilidad derivada de uso,
ni tampoco por cualquier violacin de patentes y otros derechos de terceras partes que
pudieran ocurrir estando este libro destinado a la utilizacin de aficionados o a la enseanza. Las marcas o nombres mencionados lo son nicamente a ttulo informativo, siendo
propiedad de sus legales registradores.
Reservados todos los derechos.
Ninguna parte de este libro puede ser reproducida, grabada en sistema de almacenamiento o transmitida en forma alguna ni por cualquier procedimiento, ya sea electrnico,
mecnico, reprogrfico, magntico o cualquier otro. Asimismo queda prohibida la distribucin, alquiler, traduccin o exportacin sin la autorizacin previa y por escrito de
INFORBOOK'S, S.L.
Editado por:

INFORBOOK'S, S.L.
c/ Muntaner, 181
08036 BARCELONA
934 391 575
e-mail: info@inforbooks.com
web: http://www.inforbooks.com

ISBN: 84-96097-78-1
Depsito legal: B-49766-2006
Diseo cubierta: ABISA
Maquetacin: ABISA

IMPRESO EN ESPAA - PRINTED IN SPAIN

ndice General

Las diferencias entre las personas


son infinitamente pequeas. A consecuencia de stas, parecemos totalmente distintos.
El da de las Revelaciones, 6:66

VisualLISP Curso de programacin para AutoCAD

ndice General

ndice General

Prlogo ................................................................... 23
A quin va dirigido este libro ........................................................................................
Por qu se escribi este libro ......................................................................................
Notas Aclaratorias ........................................................................................................
Agradecimientos ..........................................................................................................

24
24
25
25

Preliminares ............................................................ 27
Por qu LISP ...............................................................................................................
Otras formas de personalizar AutoCAD ......................................................................
Ejemplos en los que es til VisualLISP .......................................................................
Conclusin ...................................................................................................................
Cdigo fuente del libro, erratas e imgenes ................................................................

27
28
29
30
30

Fundamentos de la Informtica Grfica ................... 31


Repaso de operaciones con matrices .........................................................................
Coordenadas homogneas de un punto .....................................................................
Matriz asociada a la traslacin ....................................................................................
Matriz asociada al escalado ........................................................................................
Matrz asociada a la rotacin .......................................................................................
Convenciones de signo para las rotaciones ................................................................
Ejemplos de transformaciones lineales .......................................................................
Matrices de transformacin VisualLISP .......................................................................
Ejercicios .....................................................................................................................

32
34
34
35
35
36
36
40
41

Fundamentos de programacin ............................... 43


Qu es un ordenador? .............................................................................................. 43

VisualLISP Curso de programacin para AutoCAD


Qu es un algoritmo? ................................................................................................
Qu es un programa? ...............................................................................................
El paradigma de la programacin estructurada ..........................................................
Otros paradigmas de programacin ............................................................................
Anlisis, diseo e implementacin ..............................................................................
Qu es interpretar y compilar un programa? .............................................................
Algoritmia y programacin. Ingenio y algoritmia. Ingenio y programacin ..................
Qu es la lgica? .......................................................................................................
Qu es una funcin lgica? .......................................................................................
Expresar formalmente un algoritmo ............................................................................
Sistemas de representacin ........................................................................................
Conversiones ...............................................................................................................
Capacidad de representacin ......................................................................................
Programacin modular. Cohesin y Acoplamiento ......................................................
Comunicacin entre mdulos (Parte I) ........................................................................
Comunicacin entre mculos (Parte II) .......................................................................
Qu es la recursividad? .............................................................................................
Qu es flujo de control? ............................................................................................
Qu son estructuras de Control de Flujo? ................................................................
lgebra de Boole .........................................................................................................
Simplificacin de funciones lgicas .............................................................................
Operaciones a nivel de bits .........................................................................................
Suma de nmeros en binario ......................................................................................
Complemento a 1 ........................................................................................................
Complemento a 2 ........................................................................................................
Resta de nmeros binarios ..........................................................................................
Qu son variables de usuario? ..................................................................................
Variables locales, variables globales ...........................................................................
Tipos simples de las variables de usuario ...................................................................
Estructuras de datos ....................................................................................................
Expresiones regulares .................................................................................................
Direccionamiento de ficheros y directorios ..................................................................
Direccionamiento absoluto y relativo ...........................................................................
Acceso al contenido de ficheros ..................................................................................
Secuencias de escape ................................................................................................
Orden de ejecucin de un algoritmo ............................................................................
Caractersticas de los algoritmos ................................................................................
Qu es la API de un lenguaje de programacin? ......................................................
Ejercicios .....................................................................................................................

44
44
45
45
46
46
47
47
48
48
49
50
52
53
55
57
58
60
61
62
63
67
68
69
69
70
71
73
73
76
79
79
80
81
82
84
85
86
88

ndice General

Toma de contacto con VisualLISP ........................... 91


Consideraciones sobre VisualLISP ............................................................................. 93
Accediendo al IDE de VisualLISP ............................................................................... 97
Estructura de las funciones de usuario ....................................................................... 98
Crear y guardar cdigo LISP ..................................................................................... 101

IDE de VisualLISP .................................................. 105


Descripcin general del IDE ...................................................................................... 105
Mostrar barras de herramientas ................................................................................ 106
Mostrar ventanas Rastreo y Consola ........................................................................ 107
Barra de herramientas "Estndar" ............................................................................. 107
Barra de herramientas "Buscar" ................................................................................ 109
Barra de herramientas "Ver" ....................................................................................... 111
Barra de herramientas "Herramientas" ....................................................................... 115
Barra de herramientas "Depurar" ............................................................................... 116
Empaquetar archivos desde el IDE ............................................................................ 117
Crear un paquete FAS ................................................................................................ 118
Crear un paquete VLX ............................................................................................... 121
Carga de paquetes FAS y LSP .................................................................................. 123
Otras consideraciones del entorno ............................................................................ 124

Introduccin a las funciones ................................. 125


Funciones.............................................................. 129
Definicin de funciones .............................................................................................
Funcin DEFUN ...................................................................................................
Funcin LAMBDA .................................................................................................
Estructuras de control de flujo (decisin) ..................................................................
Funcin IF .............................................................................................................
Funcin COND .....................................................................................................
Estructuras de control de flujo (iteracin) .............................................................
Funcin WHILE ....................................................................................................
Funcin REPEAT ..................................................................................................
Funcin FOREACH ..............................................................................................
Estructuras de control de flujo (fin ejecucin) ............................................................
Funcin EXIT ........................................................................................................
Funcin QUIT .......................................................................................................
Funcin VL-EXIT-WITH-ERROR .........................................................................
Funcin VL-EXIT-WITH-VALUE ...........................................................................

129
129
132
136
136
142
144
144
145
146
148
148
148
149
150

VisualLISP Curso de programacin para AutoCAD


Operadores Aritmticos .............................................................................................
Funcin + ..............................................................................................................
Funcin - ...............................................................................................................
Funcin * ...............................................................................................................
Funcin / ...............................................................................................................
Funcin 1+ ............................................................................................................
Funcin 1- .............................................................................................................
Funciones Matemticas .............................................................................................
Funcin ABS .........................................................................................................
Funcin ATAN .......................................................................................................
Funcin COS ........................................................................................................
Funcin SIN ..........................................................................................................
Funcin EXP .........................................................................................................
Funcin EXPT ......................................................................................................
Funcin LOG ........................................................................................................
Funcin SQRT ......................................................................................................
Funcin FIX ..........................................................................................................
Funcin GCD ........................................................................................................
Funcin MAX ........................................................................................................
Funcin MIN .........................................................................................................
Funcin REM ........................................................................................................
Funcin ANGLE ....................................................................................................
Operadores Lgicos ..................................................................................................
Funcin AND ........................................................................................................
Funcin OR ..........................................................................................................
Funcin NOT ........................................................................................................
Funcin < ..............................................................................................................
Funcin <= ............................................................................................................
Funcin > ..............................................................................................................
Funcin >= ............................................................................................................
Funcin = ..............................................................................................................
Funcin EQUAL ....................................................................................................
Funcin /= .............................................................................................................
Operadores a Nivel de Bits ........................................................................................
Funcin BOOLE ...................................................................................................
Funcin LOGAND .................................................................................................
Funcin LOGIOR ..................................................................................................
Funcin ~ ..............................................................................................................
Funcin LSH .........................................................................................................
Manejo de Cadenas de Caracteres ...........................................................................
Funcin STRCASE ...............................................................................................

152
152
153
153
153
154
154
155
155
156
157
157
158
158
159
160
160
161
161
162
162
163
165
165
166
167
167
168
169
169
170
171
172
172
172
174
174
175
175
177
177

ndice General
Funcin STRCAT ..................................................................................................
Funcin STRLEN ..................................................................................................
Funcin SUBSTR .................................................................................................
Funcin VL-STRING-LEFT-TRIM .........................................................................
Funcin VL-STRING-RIGHT-TRIM ......................................................................
Funcin VL-STRING-TRIM ..................................................................................
Funcin VL-STRING-MISMATCH ........................................................................
Funcin VL-STRING-POSITION ..........................................................................
Funcin VL-STRING-SEARCH ............................................................................
Funcin VL-STRING-ELT .....................................................................................
Funcin VL-STRING-SUBST ...............................................................................
Funcin VL-STRING-TRANSLATE ......................................................................
Funcin WCMATCH .............................................................................................
Entrada/Salida (E/S) ..................................................................................................
Funcin ALERT ....................................................................................................
Funcin PROMPT ................................................................................................
Funcin GETINT ...................................................................................................
Funcin GETREAL ...............................................................................................
Funcin GETSTRING ...........................................................................................
Funcin GETPOINT .............................................................................................
Funcin GETDIST ................................................................................................
Funcin GETCORNER .........................................................................................
Funcin GETANGLE ............................................................................................
Funcin GETORIENT ...........................................................................................
Funcin GETFILED ..............................................................................................
Funcin INITGET ..................................................................................................
Funcin GETKWORD ..........................................................................................
Funcin OPEN ......................................................................................................
Funcin CLOSE ....................................................................................................
Funcin PRIN1 .....................................................................................................
Funcin PRINC .....................................................................................................
Funcin PRINT .....................................................................................................
Funcin TERPRI ...................................................................................................
Funcin READ-CHAR ..........................................................................................
Funcin READ-LINE ............................................................................................
Funcin WRITE-CHAR .........................................................................................
Funcin WRITE-LINE ...........................................................................................
Ayudas al dibujo ........................................................................................................
Funcin DISTANCE ..............................................................................................
Funcin INTERS ...................................................................................................
Funcin OSNAP ...................................................................................................

9
178
179
179
181
182
182
183
184
187
188
189
190
191
194
194
195
195
196
197
198
200
202
203
205
206
209
213
214
216
217
219
221
223
224
228
230
231
232
232
233
235

10

VisualLISP Curso de programacin para AutoCAD

Funcin TEXTBOX ...............................................................................................


Funcin TRANS ....................................................................................................
Funcin GRDRAW ...............................................................................................
Funcin GRVECS .................................................................................................
Funcin REDRAW ................................................................................................
Funcin REGAPP .................................................................................................
Funcin VPORTS .................................................................................................
Ayudas al Entorno .....................................................................................................
Funcin SETCFG .................................................................................................
Funcin GETCFG .................................................................................................
Funcin SETENV .................................................................................................
Funcin GETENV .................................................................................................
Funcin SETVAR ..................................................................................................
Funcin GETVAR .................................................................................................
Funcin GRAPHSCR ...........................................................................................
Funcin TEXTPAGE .............................................................................................
Funcin TEXTSCR ...............................................................................................
Funcin GETCNAME ...........................................................................................
Funcin HELP ......................................................................................................
Funcin SETFUNHELP ........................................................................................
Funcin MENUGROUP ........................................................................................
Funcin SNVALID .................................................................................................
Funcin VER ........................................................................................................
Funcin VLAX-PRODUCT-KEY ...........................................................................
Manejo de Expresiones .............................................................................................
Funcin EVAL .......................................................................................................
Funcin PROGN ...................................................................................................
Funcin QUOTE ...................................................................................................
Manejo de Listas ........................................................................................................
Funcin LIST ........................................................................................................
Funcin CONS .....................................................................................................
Funcin VL-LIST* .................................................................................................
Funcin APPEND .................................................................................................
Funcin ASSOC ...................................................................................................
Funcin CAR ........................................................................................................
Funcin CDR ........................................................................................................
Funcin CADR ......................................................................................................
Funcin CADDR ...................................................................................................
Funcin NTH ........................................................................................................
Funcin LAST .......................................................................................................
Funcin MEMBER ................................................................................................

237
240
245
247
249
250
250
251
252
252
253
255
256
257
258
259
259
260
260
263
264
265
266
266
267
267
267
268
269
269
271
271
272
274
275
275
276
276
277
278
279

ndice General

11

Funcin REVERSE .............................................................................................. 279


Funcin SUBST .................................................................................................... 280
Funcin VL-EVERY .............................................................................................. 281
Funcin VL-SOME ................................................................................................ 282
Funcin VL-MEMBER-IF ...................................................................................... 283
Funcin VL-MEMBER-IF-NOT ............................................................................. 284
Funcin VL-POSITION ......................................................................................... 285
Funcin VL-REMOVE .......................................................................................... 286
Funcin VL-REMOVE-IF ...................................................................................... 287
Funcin VL-REMOVE-IF-NOT ............................................................................. 288
Funcin VL-SORT ................................................................................................ 288
Funcin VL-SORT-I .............................................................................................. 290
Funcin LENGTH ................................................................................................. 290
Funcin VL-LIST-LENGTH ................................................................................... 291
Conversin de Tipos .................................................................................................. 292
Funcin ATOI ........................................................................................................ 292
Funcin ITOA ....................................................................................................... 293
Funcin ATOF ....................................................................................................... 293
Funcin DISTOF ................................................................................................... 294
Funcin RTOS ...................................................................................................... 295
Funcin FLOAT .................................................................................................... 298
Funcin ASCII ....................................................................................................... 299
Funcin CHR ........................................................................................................ 299
Funcin ANGTOS ................................................................................................. 300
Funcin ANGTOF ................................................................................................. 303
Funcin VL-STRING->LIST ................................................................................. 305
Funcin VL-LIST->STRING .................................................................................. 306
Funcin VLAX-SAFEARRAY->LIST ..................................................................... 306
Funcin VLAX-ENAME->VLA-OBJECT ............................................................... 307
Funcin VLAX-VLA-OBJECT->ENAME ............................................................... 308
Funcin READ ...................................................................................................... 309
Funcin VL-PRIN1-TO-STRING .......................................................................... 310
Funcin VL-PRINC-TO-STRING ........................................................................... 311
Funcin VLAX-3D-POINT .................................................................................... 312
Funcin VLAX-TMATRIX ...................................................................................... 313
Verificacin de Tipos .................................................................................................. 314
Funcin LISTP ...................................................................................................... 314
Funcin VL-CONSP ............................................................................................. 315
Funcin ATOM ...................................................................................................... 316
Funcin NULL ....................................................................................................... 317
Funcin NUMBERP .............................................................................................. 318

12

VisualLISP Curso de programacin para AutoCAD

Funcin MINUSP ..................................................................................................


Funcin ZEROP ...................................................................................................
Funcin TYPE ......................................................................................................
Funcin VL-SYMBOLP .........................................................................................
Conversin de Unidades ...........................................................................................
Funcin CVUNIT ..................................................................................................
Funcin POLAR ....................................................................................................
Manejo de Archivos y Directorios ..............................................................................
Funcin FINDFILE ................................................................................................
Funcin VL-FILENAME-MKTEMP .......................................................................
Funcin VL-FILE-RENAME ..................................................................................
Funcin VL-FILE-COPY .......................................................................................
Funcin VL-FILE-DELETE ...................................................................................
Funcin VL-FILE-SIZE .........................................................................................
Funcin VL-FILE-SYSTIME .................................................................................
Funcin VL-FILENAME-BASE .............................................................................
Funcin VL-FILENAME-EXTENSION ..................................................................
Funcin VL-MKDIR ...............................................................................................
Funcin VL-DIRECTORY-FILES ..........................................................................
Funcin VL-FILE-DIRECTORY-P .........................................................................
Funcin VL-FILENAME-DIRECTORY..................................................................
Invocacin Indirecta de Funciones Lisp ....................................................................
Funcin APPLY .....................................................................................................
Funcin MAPCAR ................................................................................................
Invocacin Indirecta de Comandos de AutoCAD ......................................................
Funcin COMMAND .............................................................................................
Funcin VL-CMDF ................................................................................................
Manejo de Entidades ACAD ......................................................................................
Funcin ENTSEL ..................................................................................................
Funcin NENTSEL ...............................................................................................
Funcin NENTSELP .............................................................................................
Funcin ENTNEXT ...............................................................................................
Funcin ENTLAST ................................................................................................
Funcin ENTGET .................................................................................................
Funcin ENTDEL ..................................................................................................
Funcin ENTMAKE ..............................................................................................
Funcin ENTMAKEX ............................................................................................
Funcin ENTMOD ................................................................................................
Funcin ENTUPD .................................................................................................
Funcin HANDENT ..............................................................................................
Funcin VLAX-OBJECT-RELEASED-P ...............................................................

319
320
320
321
322
322
324
325
325
326
327
328
328
329
330
330
331
332
332
333
333
334
334
337
339
339
341
341
342
343
345
347
349
350
351
351
352
353
354
355
356

ndice General
Manejo de Conjuntos de Seleccin ...........................................................................
Funcin SSGET ....................................................................................................
Funcin SSADD ...................................................................................................
Funcin SSDEL ....................................................................................................
Funcin SSMEMB ................................................................................................
Funcin SSNAME ................................................................................................
Funcin SSNAMEX ..............................................................................................
Funcin SSSETFIRST .........................................................................................
Funcin SSGETFIRST .........................................................................................
Funcin SSLENGTH ............................................................................................
Manejo de Aplicaciones .............................................................................................
Funcin ARX .........................................................................................................
Funcin ARXLOAD ...............................................................................................
Funcin ARXUNLOAD .........................................................................................
Funcin AUTOARXLOAD .....................................................................................
Funcin AUTOLOAD ............................................................................................
Funcin LOAD ......................................................................................................
Funcin VL-ARX-IMPORT ...................................................................................
Funcin VL-LOAD-COM .......................................................................................
Funcin VL-LOAD-REACTORS ...........................................................................
Funcin VL-LOAD-ALL .........................................................................................
Funcin VL-UNLOAD-VLX ...................................................................................
Funcin VL-LIST-LOADED-VLX ..........................................................................
Funcin VL-VLX-LOADED-P ................................................................................
Funcin VL-ACAD-DEFUN ..................................................................................
Funcin VL-ACAD-UNDEFUN .............................................................................
Funcin VLAX-ADD-CMD ....................................................................................
Funcin VLAX-REMOVE-CMD ............................................................................
Funcin VL-DOC-EXPORT ..................................................................................
Funcin VL-DOC-IMPORT ...................................................................................
Funcin VL-LIST-EXPORTED-FUNCTIONS .......................................................
Funcin VL-VBALOAD .........................................................................................
Funcin VL-VBRAUN ...........................................................................................
Funcin VL-GET-RESOURCE .............................................................................
Manejo de Nodos .......................................................................................................
Funcin SETQ ......................................................................................................
Funcin SET .........................................................................................................
Funcin ATOMS-FAMILY ......................................................................................
Funcin BOUNDP ................................................................................................
Funcin EQ ...........................................................................................................
Funcin VL-SYMBOL-NAME ...............................................................................

13
356
357
364
366
366
367
369
376
378
378
379
379
380
381
382
383
384
387
389
389
390
390
391
392
392
393
393
395
396
397
398
399
400
400
401
401
402
403
405
405
407

14

VisualLISP Curso de programacin para AutoCAD

Funcin VL-SYMBOL-VALUE .............................................................................. 407


Gestin de Memoria .................................................................................................. 408
Funcin ALLOC .................................................................................................... 408
Funcin EXPAND ................................................................................................. 408
Funcin GC .......................................................................................................... 409
Funcin MEM ....................................................................................................... 409
Manejo de Espacios de Nombres ............................................................................... 411
Funcin VL-BB-REF ............................................................................................. 413
Funcin VL-BB-SET ............................................................................................. 414
Funcin VL-DOC-REF .......................................................................................... 414
Funcin VL-DOC-SET .......................................................................................... 415
Funcin VL-PROPAGATE .................................................................................... 416
Manejo de Diccionarios ............................................................................................. 417
Funcin VLAX-LDATA-PUT .................................................................................. 418
Funcin VLAX-LDATA-GET ................................................................................. 420
Funcin VLAX-LDATA-DELETE ........................................................................... 422
Funcin VLAX-LDATA-LIST ................................................................................. 423
Funcin VLAX-LDATA-TEST ................................................................................ 425
Funcin NAMEDOBJDICT ................................................................................... 425
Funcin DICTADD ................................................................................................ 426
Funcin DICTREMOVE ........................................................................................ 427
Funcin DICTRENAME ........................................................................................ 427
Funcin DICTNEXT .............................................................................................. 428
Funcin DICTSEARCH ........................................................................................ 429
Funcin XDROOM ............................................................................................... 430
Funcin XDSIZE ................................................................................................... 431
Manejo de Tablas de Smbolos ................................................................................. 431
Funcin TBLNEXT ................................................................................................ 432
Funcin TBLSEARCH .......................................................................................... 433
Funcin TBLOBJNAME ........................................................................................ 434
Funcin SETVIEW ................................................................................................ 435
Manejo de Registro de Windows ............................................................................... 438
Funcin VL-REGISTRY-READ ............................................................................. 439
Funcin VL-REGISTRY-WRITE ........................................................................... 440
Funcin VL-REGISTRY-DELETE ......................................................................... 441
Funcin VL-REGISTRY-DESCENDENTS ........................................................... 442
Manejo de Objetos ..................................................................................................... 443
Funcin VLAX-GET-ACAD-OBJECT ................................................................... 444
Funcin VLAX-CREATE-OBJECT ....................................................................... 445
Funcin VLAX-GET-OR-CREATE-OBJECT ........................................................ 446
Funcin VLAX-GET-OBJECT ............................................................................... 447

ndice General
Funcin VLAX-DUMP-OBJECT ...........................................................................
Funcin VLAX-METHOD-APPLICABLE-P ..........................................................
Funcin VLAX-INVOKE-METHOD .......................................................................
Funcin VLAX-PROPERTY-AVAILABLE-P ..........................................................
Funcin VLAX-GET-PROPERTY .........................................................................
Funcin VLAX-PUT-PROPERTY .........................................................................
Funcin VLAX-RELEASE-OBJECT .....................................................................
Funcin VLAX-ERASED-P ...................................................................................
Funcin VLAX-READ-ENABLED-P .....................................................................
Funcin VLAX-WRITE-ENABLED-P ....................................................................
Funcin VLAX-IMPORT-TYPE-LIBRARY ............................................................
Funcin VLAX-TYPEINFO-AVAILABLE-P ...........................................................
Manejo de Entidades Lineales (Curvas) ...................................................................
Funcin VLAX-CURVE-ISCLOSED .....................................................................
Funcin VLAX-CURVE-ISPERIODIC ..................................................................
Funcin VLAX-CURVE-ISPLANAR .....................................................................
Funcin VLAX-CURVE-GETAREA ......................................................................
Funcin VLAX-CURVE-GETFIRSTDERIV ..........................................................
Funcin VLAX-CURVE-GETSECONDDERIV .....................................................
Funcin VLAX-CURVE-GETCLOSESTPOINTTO ...............................................
Funcin VLAX-CURVE-GETCLOSESTPOINTTOPROJECTION .......................
Funcin VLAX-CURVE-GETPOINTATDIST ........................................................
Funcin VLAX-CURVE-GETDISTATPOINT ........................................................
Funcin VLAX-CURVE-GETDISTATPARAM .......................................................
Funcin VLAX-CURVE-GETPARAMATDIST .......................................................
Funcin VLAX-CURVE-GETPARAMATPOINT ....................................................
Funcin VLAX-CURVE-GETPOINTATPARAM ....................................................
Funcin VLAX-CURVE-GETSTARTPOINT .........................................................
Funcin VLAX-CURVE-GETENDPOINT .............................................................
Funcin VLAX-CURVE-GETSTARTPARAM ........................................................
Funcin VLAX-CURVE-GETENDPARAM ............................................................
Manejo de SafeArray .................................................................................................
Funcin VLAX-MAKE-SAFEARRAY ....................................................................
Funcin VLAX-SAFEARRAY-FILL .......................................................................
Funcin VLAX-SAFEARRAY-GET-ELEMENT .....................................................
Funcin VLAX-SAFEARRAY-PUT-ELEMENT .....................................................
Funcin VLAX-SAFEARRAY-GET-DIM ................................................................
Funcin VLAX-SAFEARRAY-GET-L-BOUND ......................................................
Funcin VLAX-SAFEARRAY-GET-U-BOUND .....................................................
Funcin VLAX-SAFEARRAY-TYPE .....................................................................
Manejo de Variant ......................................................................................................

15
447
449
449
451
451
452
453
454
455
456
457
459
459
465
466
468
469
470
472
475
477
481
482
483
485
486
487
489
489
490
491
491
492
494
496
497
498
499
499
500
501

16

VisualLISP Curso de programacin para AutoCAD

Funcin VLAX-MAKE-VARIANT ..........................................................................


Funcin VLAX-VARIANT-TYPE ...........................................................................
Funcin VLAX-VARIANT-VALUE .........................................................................
Funcin VLAX-VARIANT-CHANGE-TYPE ...........................................................
Manejo de Colecciones .............................................................................................
Funcin VLAX-FOR ..............................................................................................
Funcin VLAX-MAP-COLLECTION .....................................................................
Manejo de Reactores ................................................................................................
Los Eventos de AutoCAD ..........................................................................................
Parmetro FEED en las funciones respuesta ...........................................................
Ejemplo .................................................................................................................
Funcin VLR-ADD ................................................................................................
Funcin VLR-ADDED-P .......................................................................................
Funcin VLR-REMOVE ........................................................................................
Funcin VLR-REMOVE-ALL ................................................................................
Funcin VLR-DATA ..............................................................................................
Funcin VLR-DATA-SET ......................................................................................
Funcin VLR-REACTION-SET ............................................................................
Funcin VLR-OWNER-ADD .................................................................................
Funcin VLR-OWNER-REMOVE .........................................................................
Funcin VLR-OWNERS .......................................................................................
Funcin VLR-PERS ..............................................................................................
Funcin VLR-PERS-LIST .....................................................................................
Funcin VLR-PERS-P ..........................................................................................
Funcin VLR-PERS-RELEASE ............................................................................
Funcin VLR-CURRENT-REACTION-NAME ......................................................
Funcin VLR-TYPE ..............................................................................................
Funcin VLR-TYPES ............................................................................................
Funcin VLR-REACTIONS ..................................................................................
Funcin VLR-REACTORS ...................................................................................
Funcin VLR-REACTION-NAMES .......................................................................
Funcin VLR-NOTIFICATION ..............................................................................
Funcin VLR-SET-NOTIFICATION ......................................................................
Funciones de Respuesta Predefinidas ......................................................................
Funcin VLR-TRACE-REACTION .......................................................................
Funcin VLR-BEEP-REACTION ..........................................................................
Manejo de Dispositivos Externos ..............................................................................
Funcin TABLET ..................................................................................................
Manejo de Errores .....................................................................................................
Funcin *ERROR* ................................................................................................
Funcin VL-CATCH-ALL-APPLY ..........................................................................

501
503
505
506
507
507
508
509
513
519
524
525
525
526
527
528
528
529
530
531
531
532
533
533
534
535
535
536
536
537
538
538
539
540
540
541
542
542
543
543
544

ndice General
Funcin VL-CATCH-AL-ERROR-MESSAGE .......................................................
Funcin VL-CATCH-ALL-ERROR-P ....................................................................
Funciones de Depuracin ..........................................................................................
Funcin TRACE ....................................................................................................
Funcin UNTRACE ..............................................................................................

17
547
548
548
548
550

Ejercicios .............................................................. 553


Estructuras de control de flujo (decisin) ..................................................................
Estructuras de control de flujo (iteracin) ..................................................................
Operadores aritmticos .............................................................................................
Matemticas ..............................................................................................................
Operaciones a nivel de bits .......................................................................................
Conversin de tipos ...................................................................................................
Manejo de cadenas de caracteres ............................................................................
Entrada/Salida ...........................................................................................................
Ayudas al entorno ......................................................................................................
Manejo de listas .........................................................................................................
Manejo de conjuntos de seleccin ............................................................................
Manejo de entidades de ACAD .................................................................................
Manejo de Archivos y Directorios ..............................................................................
Invocacin indirecta de comandos de AutoCAD .......................................................
Invocacin indirecta de funciones LISP .....................................................................
Manejo de entidades lineales (Curvas) .....................................................................
Manejo del Registro de Windows ..............................................................................
Manejo de Nodos .......................................................................................................
Manejo de Reactores ................................................................................................
Manejo de Errores .....................................................................................................
Manejo de Safearray .................................................................................................
Manejo de Colecciones .............................................................................................
Manejo de Objetos .....................................................................................................

553
553
553
554
554
555
555
556
556
557
557
557
558
558
559
559
559
560
560
561
561
562
562

El Modelo de Objetos ............................................ 563


Descripcin del Modelo de Objetos ...........................................................................
Consideraciones sobre Polilneas .............................................................................
Interfaz VisualLISP - Modelo de Objetos ...................................................................
Aprender ms sobre el Modelo de Objetos ...............................................................
Ejemplo 01 .................................................................................................................
Ejemplo 02 .................................................................................................................
Ejemplo 03 .................................................................................................................
Ejemplo 04 .................................................................................................................

565
566
566
567
567
568
568
569

18

VisualLISP Curso de programacin para AutoCAD

Ejemplo
Ejemplo
Ejemplo
Ejemplo

05 .................................................................................................................
06 .................................................................................................................
07 .................................................................................................................
08 .................................................................................................................

569
569
570
573

Prctica axisCompute ........................................... 581


Prctica delRep ..................................................... 585
Prctica splineConvert .......................................... 589
Prctica makeGear ................................................ 593
Engranajes: Generalidades .......................................................................................
Ejemplo ......................................................................................................................
Envolvente de un Crculo o Cicloide ..........................................................................
Construccin del engraneje por pasos ......................................................................

594
595
596
597

Prctica systemCompute ...................................... 609


Descripcin del mtodo de Cramer ........................................................................... 609
Clculo de determinantes .......................................................................................... 610
Clculo de un determinante por los elementos de una fila o columna ....................... 611

Prctica draft ........................................................ 625


Construccin del tringulo inicial ...............................................................................
Construccin del siguiente tringulo ..........................................................................
Paso 1 ...................................................................................................................
Paso 2 ...................................................................................................................
Cambio del punto base ..............................................................................................
Paso 1 ...................................................................................................................
Discriminacin de tringulos ......................................................................................
Ejemplo .................................................................................................................
Implementacin ....................................................................................................
Poniendo en prctica el script ..............................................................................

627
628
628
628
629
629
629
630
632
636

Prctica triangular ................................................ 639


Explicacin del algoritmo ........................................................................................... 639
Implementacin .................................................................................................... 641

ndice General

19

Prctica integral.................................................... 649


Integral de Riemann ..................................................................................................
Implementacin ....................................................................................................
Algunos ejemplos de invocacin ...............................................................................
Ejemplo 1 ..............................................................................................................
Ejemplo 2 ..............................................................................................................
Ejemplo 3 ..............................................................................................................
Ejemplo 4 ..............................................................................................................

649
651
654
655
656
656
657

Anexo 1 ................................................................ 659


Algoritmo 1. Intercambiar el valor de dos variables ..................................................
Recorrer una lista de elementos ................................................................................
Recorrer una matriz de elementos ............................................................................
Ordenar una matriz de elementos .............................................................................
Leer de un fichero ......................................................................................................

659
659
660
661
664

Anexo 2 ................................................................ 665


&

Ejemplos de uso para la funcin (boole) ...................................................................


Explicaciones para (boole 1 ... ... ...) (Operacin AND) .............................................
Explicaciones para (boole 2 ... ... ...) (Operacin >) ..................................................
Explicaciones para (boole 4 ... ... ...) (Operacin <) ..................................................
Explicaciones para (boole 6 ... ... ...) (Operacin XOR) ............................................
Explicaciones para (boole 7 ... ... ...) (Operacin OR) ...............................................
Explicaciones para (boole 8 ... ... ...) (Operacin NOR) ............................................
Explicaciones para (boole 9 ... ... ...) (Operacin NXOR) ..........................................
Explicaciones para (boole 10 ... ... ...) (Operacin NOT) ..........................................
Explicaciones para (boole 11 ... ... ...) (Operacin

) ............................................... 679

Explicaciones para (boole 12 ... ... ...) (Operacin NOT) ..........................................


Explicaciones para (boole 13 ... ... ...) (Operacin NOT >) .......................................
Explicaciones para (boole 14 ... ... ...) (Operacin NAND) ........................................
Cuadros sinpticos del estudio paramtrico de la funcin (boole) ............................
Tablas de verdad de las operaciones booleanas ......................................................
NOT (~) ......................................................................................................................
ID ...............................................................................................................................
AND (&) .....................................................................................................................
OR (|) .........................................................................................................................
XOR (

665
666
668
670
671
673
674
676
678
681
681
682
684
685
685
685
685
686

) ................................................................................................................. 687

EQ ( ) ..................................................................................................................... 688
NAND ( ) .................................................................................................................. 689

20

VisualLISP Curso de programacin para AutoCAD

NOR ( ) .................................................................................................................... 690


MENOR (<) ................................................................................................................ 691
MENOR o IGUAL ( ) ................................................................................................ 692
MAYOR (>) ................................................................................................................ 693
MAYOR o IGUAL ( ) ................................................................................................ 693

Anexo 3 ................................................................ 695


Resultados obtenidos con la funcin (angtos) .......................................................... 695

Anexo 4 ................................................................ 697


Resultados obtenidos con la funcin (rtos) ............................................................... 697

Anexo 5 ................................................................ 699


Resultados obtenidos por la funcin ssnamex .......................................................... 699

Anexo 6 ................................................................ 701


Cdigo ASCII de caracteres ...................................................................................... 701

Anexo 7 ................................................................ 703


Lista devuelta por grread ........................................................................................... 703

Anexo 8 ................................................................ 705


Grupos DXF para Entidades ..................................................................................... 705

Anexo 9 ................................................................ 711


Codificacin de colores RGB ...................................................................................... 711

Bibliografa ........................................................... 713


Recursos bibliogrficos .............................................................................................
Recursos en la red relacionados con: .......................................................................
La tecnologa Active X ..........................................................................................
Operaciones booleanas, fundamentos, etc. .........................................................
Curvas poligonales ...............................................................................................
Familias de la API de Visual LISP ........................................................................
Ficheros de ayuda precompilados .......................................................................
Por qu LISP ........................................................................................................
Visual LISP ...........................................................................................................
La lgica, teoras, operaciones, etc. .....................................................................

713
716
716
716
716
716
716
716
717
717

ndice General
Los sencillos logaritmos .......................................................................................
Pgina principal de las libreras MSDN ................................................................
API de los Ficheros de ayuda precompilados ......................................................
Cdigo fuente ofuscado ........................................................................................
Ordenacin de matrices (vectores) ......................................................................
Los dibujos usados para algunas ilustraciones ....................................................
Conjuntos de seleccin en AutoCAD ...................................................................
Matrices de Transformacin, coordenadas, cambios de base .............................
Unidades de medida locales ................................................................................
La genealoga de LISP .........................................................................................
Creacin de formas en AutoCAD .........................................................................
Sistemas de numeracin en Binario, operaciones, etc. .......................................
Creacin de tipos de lnea en AutoCAD ...............................................................
Paradigmas de la programacin ..........................................................................
Transformaciones lineales en el espacio afin eucldeo ........................................

21
717
717
717
717
717
717
717
718
718
718
718
718
718
718
718

ndice Analtico ..................................................... 719

22

VisualLISP Curso de programacin para AutoCAD

También podría gustarte