Descrição

Uma das grandes vantagens do AutoCAD é a sua flexibilidade e capacidade de adaptação a qualquer área técnica. O desenvolvimento de aplicações específicas em AutoCAD não exige que se seja especialista em informática, apenas que possua razoáveis conhecimentos como utilizador do programa.

Através de uma linguagem simples e acessível e recheado de múltiplos exemplos de aplicação, este livro está preparado de modo a que um normal utilizador de AutoCAD, a partir da versão 2000, evolua e possa desenvolver aplicações próprias, por forma a acelerar e a automatizar os seus processos de trabalho. O livro está dividido em duas grandes áreas de optimização:

No final deste livro, o leitor deve ser capaz de:
Criar macros de comandos, com pausas para introdução de dados - Automatizar e acelerar processos de projecto e de desenho - Criar e adaptar caixas de diálogo - Manipular os objectos do AutoCAD - Efectuar cálculos matemáticos, envolvendo parâmetros geométricos dos objectos - Aceder à base de dados do desenho para pesquisa e modificações - Trabalhar com ficheiros - Comunicar com outros programas

Público-Alvo Topo
O(s) Autor(es) Topo

Fernando Luís Ferreira (fl@megamail.pt)
Investigador da Faculdade de Ciências e Tecnologia da UNL, em diversas áreas da Engenharia Física, onde também é formador CAD. Profundo conhecedor do AutoCAD desde a versão 2.6, é formador certificado pela Autodesk e foi coordenador de ATC.

João Santos
Licenciado em Engenharia Mecânica pelo IST. Gerente de uma empresa de formação, consultor e formador certificado. Autor, entre outros, dos livros AutoCAD 2002 em 3D - Curso Completo, AutoCAD 2002 - Guia de Consulta Rápida, Novidades do AutoCAD 2002 - Teoria e Prática e co-autor dos livros 3DS MAX 4 - Curso Completo e Autodesk VIZ 4 - Curso Completo (em preparação). Página CAD na Internet: http://joaosantos.tripod.com/

Índice Topo
Introdução 1
 
Parte 1 - AutoLISP e Visual LISP  
 
1. Programação em AutoLISP  
  1.1. A linguagem de programação AutoLISP 9
  1.2. Ambiente e utilização 10
  1.3. Noções sobre instruções de AutoLISP 10
  1.4. Variáveis em AutoLISP e respectivas funções 12
    QUOTE 12
     SET 13
     SETQ 14
 
2. Estrutura de um programa em AutoLISP  
  2.1. Definição de um programa ou rotina de AutoLISP 19
     DEFUN 20
  2.2. Utilização do programa no ambiente do AutoCAD 21
     LOAD 22
 
3. Funções para utilizar na programação em AutoLISP  
  3.1. A função command 28
    COMMAND 28
    3.1.1. Cuidados a ter com o uso da função command 32
    3.1.2. Programação em notepad ou em Visual LISP 33
  3.2. Funções de saída de informação 34
    PROMPT 34
    TERPRI 35
  3.3. Funções de entrada de informação 35
    GETINT 36
    GETREAL 36
    GEPOINT 37
    GETSTRING 38
    GETDIST 38
    GETANGLE 39
    GETORIENT 40
    GETCORNER 41
    GETKWORD 41
    INITGET 42
  3.4. Funções matemáticas 46
    + 47
    - 47
    * 47
    / 48
    1+ 49
    1- 49
    REM 50
    ABS 50
    EXPT 50
    EXP 52
    LOG 52
    GCD 53
    MAX 53
    MIN 53
    SQRT 53
    3.4.1. Funções trigonométricas 57
      COS 57
      SIN 58
      ATAN 58
  3.5. Funções cíclicas e condicionais 60
    PROGN 60
    IF 61
    COND 64
    WHILE 66
    REPEAT 67
  3.6. Funções de teste e de decisão 70
    3.6.1. Funções de comparação 70
      = 71
      /= 71
      > 71
      < 72
      >= 72
      <= 72
    3.6.2. Funções lógicas 75
      AND 75
      OR 75
      NOT 76
      EQUAL 76
      EQ 76
    3.6.3. Funções lógicas bit a bit 77
      LOGAND 78
      LOGIOR 78
      LSH 79
      ~ 79
      BOOLE 79
  3.7. Funções de classificação 80
    ZEROP 81
    NULL 81
    NOT 82
    ATOM 82
    LISTP 83
    BOUNDP 83
    NUMBERP 84
    MINUSP 84
     TYPE 84
  3.8. Funções de manipulação de listas 85
    LIST 86
    CONS 86
    APPEND 87
    ASSOC 87
    SUBST 88
    NTH 88
    LAST 88
    CAR 89
    CDR 89
    CADR 89
    CDDR 90
    MEMBER 91
    LENGTH 91
    REVERSE 91
  3.9. Funções para manipulação de strings 92
    STRCASE 92
    STRCAT 92
    SUBSTR 93
    STRLEN 93
    WCMATCH 93
     READ 94
  3.10. Funções de conversão de valores, variáveis ou expressões 95
    ATOF 95
    ATOI 96
    FIX 96
    FLOAT 96
    ITOA 97
    RTOS 97
    DISTOF 98
    ANGTOF 98
    ASCII 99
    CHR 99
  3.11. Funções e rotinas auxiliares 100
     ANGLE 100
    DISTANCE 101
    INTERS 101
    OSNAP 102
    POLAR 103
    TRANS 106
    3.11.1. Funções de manipulação de variáveis 106
      GETVAT 107
      SETVAR 107
      GETENV 107
      SETENV 108
      GETCNAME 108
    3.11.2. Funções que alteram a funcionalidade do AutoLISP 109
      EVAL 109
      FOREACH 109
      APPLY 110
      MAPCAR 111
      LAMBDA 111
      FUNCTION 112
    3.11.3. Ângulos em AutoLISP 113
 
4. Utilização avançada do AutoLISP  
  4.1. Funções para lidar com ficheiros 117
     OPEN 117
    FINDFILE 119
    GETFILED 121
    WRITE LINE 123
    WRITE CHAR 123
    READ-LINE 124
    READ-CHAR 124
    PRINT 126
    PRINC 127
    PRIN1 128
    CLOSE 129
  4.2. Funções para lidar com entidades do AutoCAD 133
    ENTSEL 135
    ENTGET 136
    ENTNEXT 137
    ENTLAST 137
    ENTMAKE 138
    ENTMOD 138
    ENTDEL 140
    ENTUPD 140
    HANDENT 141
    TEXTBOX 141
  4.3. Funções de selecção 143
    SSGET 144
    SSADD 147
    SSLENGTH 148
    SSMEMB 148
    SSNAME 149
    SSNAMEX 149
    SSSETFIRST 150
    SSGETFIRST 152
     SSDEL 152
  4.4. Funções para lidar com o ecrã e os dispositivos de apontar 153
    GRDRAW 153
    GRVECS 153
    GRTEXT 154
    GRREAD 155
    REDRAW 157
    TABLET 157
    GRAPHSCR 158
    TEXTSCR 158
  4.5. Funções que lidam com as tabelas de símbolos 158
    TBLSEARCH 159
    TBLNEXT 159
    TBLOBJNAME 160
  4.6. Funções para lidar com erros 160
     TRACE 160
    UNTRACE 161
     ALERT 161
    *ERROR* 162
     EXIT 162
     QUIT 162
  4.7. Melhoramentos ao código 163
 
5. O ambiente Visual LISP  
  5.1. Entrada no ambiente Visual LISP 167
  5.2. Interpretadores, compiladores e processadores de texto 170
  5.3. Concepção de um programa em Visual LISP 172
  5.4. As funcionalidades ao dispor do programador 177
    5.4.1. O código de cores 178
    5.4.2. Comentários 178
    5.4.3. Formatação e configuração do editor 180
  5.5. Análise de um programa, detecção e correcção de erros em Visual LISP 181
    5.5.1. A utilização de breakpoints para parar o programa num determinado ponto 182
  5.6. Serviços de símbolos 185
    5.6.1. Análise de valores com a ferramenta watch 187
    5.6.2. Análise de valores com a ferramenta inspect 188
    5.6.3. Listagem da base de dados do AutoCAD 190
  5.7. Pesquisa e substituição de texto ou símbolos, utilização de bookmarks 192
    5.7.1. Pesquisa de texto 192
    5.7.2. Substituição de elementos 195
    5.7.3. Pesquisa de texto e utilização de bookmarks 196
    5.7.4. Recuperação do nome de variáveis ou funções com apropos 197
  5.8. Utilização do teclado para edição 201
  5.9. Ferramentas para lidar com caixas DCL 203
  5.10. Formatação e alteração das cores das janelas 204
  5.11. Compilação de programas e gestão de projectos 205
    5.11.1. Compilação de programas em Visual LISP 205
      VLISP-COMPILE 206
    5.11.2. Criação e utilização de projectos 208
 
6. Programação de caixas de diálogo com DCL  
  6.1. Introdução às caixas de diálogo 215
  6.2. Utilização do ambiente Visual LISP para prever e corrigir erros  
    nas caixas de diálogo 216
  6.3. Conceito e utilização 217
    DIALOG 218
  6.4. Protótipos e subestruturas 221
    Definição de tile 224
    Referência a um tile 225
  6.5. Funções de AutoLISP que podem ser usadas para lidar com caixas de diálogo 227
    LOAD_DIALOG 227
    NEW_DIALOG 227
    START_DIALOG 228
    DONE_DIALOG 228
    TERM_DIALOG 229
    UNLOAD_DIALOG 229
    ACTION_TILE 229
    GET_ATTR 230
    GET_TILE 230
    MODE_TILE 230
    SET_TILE 231
    START_LIST 231
    ADD_LIST 232
    END_LIST 232
    START_IMAGE 233
    DIMX_TILE 233
    DIMY_TILE 233
    VECTOR_IMAGE 234
    FILL_IMAGE 234
    SLIDE_IMAGE 235
    END_IMAGE 235
  6.6. Atributos predefinidos para DCL 236
  6.7. Mosaicos predefinidos para DCL 243
    6.7.1. Os diversos tipos de mosaicos 243
    6.7.2. Descrição dos vários mosaicos predefinidos 246
 
7. Novas funções de Visual Lisp  
  7.1. Apresentação do novo conjunto de funções de Visual LISP 277
  7.2. Funções para lidar com listas 278
     vl-list* 278
    vl-list->string 278
    vl-list-length 279
    vl-consp 279
    VL-REMOVE 280
    VL-REMOVE-IF 280
    VL-REMOVE-IF-NOT 281
    VL-MEMBER-IF 281
    VL-MEMBER-IF-NOT 282
    VL-POSITION 282
    VL-EVERY 283
    VL-SOME 283
    VL-SORT 284
    VL-SORT-I 284
  7.3. Funções para manipulação de strings 284
    VL-STRING->LIST 285
    VL-STRING-ELT 285
    VL-STRING-LEFT-TRIM 285
    VL-STRING-RIGHT-TRIM 286
    VL-STRING-TRIM 286
    VL-STRING-MISMATCH 287
    VL-STRING-POSITION 287
    VL-STRING-SEARCH 288
    VL-STRING-SUBST 288
    VL-STRING-TRANSLATE 289
    VL-PRIN1-TO-STRING 289
    VL-PRINC-TO-STRING 290
  7.4. Funções para lidar com símbolos 290
    VL-SYMBOL-NAME 290
    VL-SYMBOL-VALUE 291
    VL-SYMBOLP 291
  7.5. Funções para lidar com ficheiros 292
    VL-DIRECTORY-FILES 292
    VL-FILE-COPY 293
    VL-FILE-DELETE 293
    VL-FILE-RENAME 294
    VL-FILE-DIRECTORY-P 294
    VL-FILE-SIZE 294
    VL-FILE-SYSTIME 295
    VL-FILENAME-BASE 295
    VL-FILENAME-DIRECTORY 296
    VL-FILENAME-EXTENSION 296
    VL-FILENAME-MKTEMP 296
    VL-GET-RESOURCE 297
  7.6. Transferências de informação entre desenhos, o conceito de namespace 297
    VL-LOAD-ALL 298
    VL-PROPAGATE 299
    VL-DOC-SET 299
    VL-DOC-REF 300
    VL-DOC-EXPORT 300
    VL-DOC-IMPORT 300
    VL-LIST-EXPORTED-FUNCTIONS 301
    VL-BB-SET 301
    VL-BB-REF 302
    VL-ARX-IMPORT 302
  7.7. Funções para lidar com erros e de saída 302
    VL-CATCH-ALL-APPLY 303
    VL-CATCH-ALL-ERROR-MESSAGE 303
    VL-CATCH-ALL-ERROR-P 304
    VL-EXIT-WITH-ERROR 304
    VL-EXIT-WITH-VALUE 305
  7.8. Funções de sistema 305
    VL-ACAD-DEFUN 305
    VL-ACAD-UNDEFUN 306
    VL-CMDF 306
  7.9. Funções para lidar com outras linguagens 307
    VL-LOAD-COM 307
    VL-LOAD-REACTORS 307
    VL-VLX-LOADED-P 308
    VL-LIST-LOADED-VLX 308
    VL-UNLOAD-VLX 308
    VL-VBALOAD 309
    VL-VBARUN 309
  7.10. Funções para lidar com o registry 309
    VL-REGISTRY-WRITE 310
    VL-REGISTRY-READ 310
    VL-REGISTRY-DELETE 311
    VL-REGISTRY-DESCENDENTS 311
 
8. ActiveX  
  8.1. Introdução ao ActiveX 313
  8.2. Estrutura ActiveX implementada no AutoCAD 315
    8.2.1. Programando com Visual LISP sobre ActiveX 316
    8.2.2. Métodos, propriedades e eventos 318
  8.3. Conversão entre entidades ActiveX e Ename 318
    vlax-ename->vla-object 319
    vlax-vla-object->ename 319
  8.4. Variáveis que podemos utilizar em ActiveX 320
    8.4.1. Utilização de pontos para as funções de ActiveX 321
      vlax-3D-point 321
    8.4.2. Safearrays 322
      vlax-make-safearray 322
      vlax-safearray-put-element 323
      vlax-safearray-fill 324
      vlax-safearray-get-dim 324
      vlax-safearray-get-element 324
      vlax-safearray-get-l-bound 325
      vlax-safearray-get-u-bound 325
      vlax-safearray-type 325
      vlax-safearray->list 326
    8.4.3. Variants 327
      vlax-make-variant 328
      vlax-variant-type 329
      vlax-variant-value 330
      vlax-variant-change-type 330
    8.4.4. Matrizes de 4x4 331
      vlax-tmatrix 331
  8.5. Manipulação de objectos em ActiveX 332
    vlax-get-Acad-Object 334
    vla-get-ActiveDocument 334
    vla-get-ModelSpace 335
 
  8.6. Funções para manipular objectos 336
    vla-add 336
    vlax-put-property 338
    vlax-get-property 339
    vlax-property-available-p 339
    vlax-invoke-method 340
    vlax-method-applicable-p 340
    vlax-dump-object 341
    vlax-erased-p 343
  8.7. Funções para lidar com objectos curvos 344
    vlax-curve-getArea 345
    vlax-curve-getStartPoint 345
    vlax-curve-getEndPoint 345
    vlax-curve-isClosed 346
    vlax-curve-getDistAtParam 347
    vlax-curve-getClosestPointTo 347
    vlax-curve-getDistAtPoint 347
    vlax-curve-getStartParam 348
    vlax-curve-getEndParam 348
    vlax-curve-getParamAtDist 348
    vlax-curve-getParamAtPoint 348
    vlax-curve-getPointAtDist 349
    vlax-curve-getPointAtParam 349
    vlax-curve-isPeriodic 349
    vlax-curve-isPlanar 350
    vlax-curve-getClosestPointToProjection 350
    vlax-curve-getFirstDeriv 350
    vlax-curve-getSecondDeriv 351
  8.8. Operações com objectos externos 351
    tdvlax-get-object:351
vlax-create-object
 352
    vlax-get-or-create-object 352
    vlax-read-enabled-p 353
    vlax-write-enabled-P 353
    vlax-release-object 354
    vlax-object-released-p 354
    8.8.1 Importação da library de uma aplicação externa 354
      vlax-import-type-library 355
      vlax-typeinfo-available-p 356
  8.9. Funções para aplicar operações a diversos objectos 357
     vlax-for 357
    vlax-map-collection 357
  8.10. Funções de sistema 358
    vlax-add-cmd 358
    vlax-remove-cmd 359
    vlax-product-key 359
  8.11. Reactores 360
    8.11.1. Sumulação de funções para manipular reactores 360
 
 9. Exemplos de aplicação em Visual LISP  
  9.1. Concepção de um programa em Visual Lisp 365
    9.1.1. Critérios de uso de variáveis locais e variáveis globais 366
  9.2. Pequenas rotinas auxiliares 366
  9.3. Rotinas para manipulação de polylines e padrões de hatch 372
  9.4. Leitura e escrita de dados em ficheiros exteriores 379
  9.5. Rotinas para manipulação de blocos e layers 385
 
Parte 2 - VBA - Visual Basic for Applications  
 
10. Introdução ao VBA em AutoCAD  
  10.1. Introdução à programação orientada por objectos 403
  10.2. Interface Activex e linguagem VBA 404
  10.3. Estrutura de um projecto VBA 406
    10.3.1. Módulos 406
    10.3.2. Projectos globais e embebidos 407
  10.4. Carregamento e execução de projectos VBA 407
    VBALOAD 408
    APPLOAD 409
    VBARUN 411
  10.5.  O editor VBA - comando VBAIDE 413
    VBAIDE 413
  10.6. Primeiro exemplo VBA 417
  10.7. Restantes comandos VBA 420
    VBAMAN 420
    VBALOAD 421
    VBAUNLOAD 422
    VBASTMT 422
 
11. Fundamentos do VBA  
  11.1. Objectos, classes e colecções 423
  11.2. Propriedades, métodos e eventos 428
    11.2.1. Propriedades 428
    11.2.2. Métodos 429
    11.2.3. Eventos 430
    11.2.4. Exemplo 430
  11.3. Dados variáveis e constantes  431
    11.3.1. Convenções sobre nomes 431
    11.3.2. Tipos de dados e variáveis 432
    11.3.3. Declaração de variáveis 433
      DIM 434
      DEFxxxx 435
      OPTION EXPLICIT 435
    11.3.4. Listas de dados ou matrizes - arrays 436
    11.3.5. Constantes 437
      CONST 438
    11.3.6. Atribuição de nomes a variáveis e constantes 439
    11.3.7. Abrangência das variáveis e constantes 440
      STATIC 441
      PRIVATE 442
      PUBLIC 442
  11.4. Procedimentos e macros 443
    11.4.1. Tipos de procedimentos 443
      SUB 444
      FUNCTION 446
    11.4.2. Como referenciar procedimentos 446
  11.5. Operadores e funções 447
    11.5.1. Operadores aritméticos 447
    11.5.2. Operadores de comparação 449
    11.5.3. Operadores lógicos 451
    11.5.4. Funções matemáticas 452
    11.5.5. Funções de conversão 453
      VAL 453
      STR 454
      Cxxxx 454
  11.6. Comentários e linhas de programação 455
    11.6.1. Comentários 455
    11.6.2. Instruções em múltiplas linhas 456
    11.6.3. Combinação de instruções numa linha 456
  11.7. Instruções de decisão e de repetição 456
    11.7.1. Instruções de decisão 457
      IF... THEN...ELSE 457
      SELECT CASE... CASE ELSE 459
    11.7.2. Instruções de repetição 460
      DO WHILE... LOOP 460
      DO... LOOP WHILE 462
      FOR... NEXT 463
      FOR EACH... NEXT 464
      WITH 465
  11.8. Entrada e saída de informação 466
    11.8.1. Objecto Utility 466
    11.8.2. Entrada e saída em caixa de diálogo 469
      MSGBOX 469
  11.9. Carregamento e execução automática de aplicações VBA 471
  11.10. Associação de macros VBA a menus e a ícones 472
 
12. Caixas de diálogo (formas)  
  12.1. Criação de caixas de diálogo (formas) e suas propriedades 473
    12.1.1. Inserção de uma caixa 473
    12.1.2. Propriedades da caixa 475
    12.1.3. Mostrar e esconder caixas 476
  12.2. Classes de objectos em caixas de diálogo 478
    12.2.1. Adição de ferramentas a caixa de diálogo 478
    12.2.2. Propriedades dos objectos 481
    12.2.3. Exemplo de aplicação 1 481
    12.2.4. Eventos em caixas de diálogo 484
    12.2.5. Associação de código aos elementos das caixas 485
    12.2.6. Lançamento de uma aplicação com caixas de diálogo 486
    12.2.7. Exemplo de aplicação 2 486
 
13. Objectos VBA do AutoCAD  
  13.1. Aplicação, desenhos e preferências 491
    13.1.1. Objecto Application 491
    13.1.2. Objecto Documents 492
    13.1.3. Objecto Document 493
    13.1.4. Objecto Preferences 495
  13.2. Criação e edição de objectos 497
    13.2.1. Colecções ModelSpace, PaperSpace e Block 497
    13.2.2. Criação de objectos gráficos simples 498
    13.2.3. Criação de tramas e regiões 501
    13.2.4. Criação de cotas 502
    13.2.5. Selecção de objectos - colecção SelectionSets e objecto  
      SelectionSet 504
    13.2.6. Edição de objectos 505
  13.3. Layers, tipos de linha e outras propriedades 511
    13.3.1. Layers 512
    13.3.2. Tipos de linha 513
    13.3.3. Cores 514
  13.4. Espaços de composição e impressão 514
    13.4.1. Colecção Layouts e objecto Layout 515
    13.4.2. Criação de vistas (viewports) e troca entre espaços 517
    13.4.3. Objecto Plot 518
 
14. Conceitos avançados VBA  
  14.1. Ficheiros e directórios 521
    14.1.1. Ficheiros DWG 521
    14.1.2. Abertura e fecho de ficheiros genéricos 522
      OPEN 522
      CLOSE 523
    14.1.3. Leitura e escrita de informação para ficheiros 523
      INPUT # 524
      WRITE # 526
      PRINT # 526
  14.2. Controlo de erros 527
    14.2.1. Tipos de erros 527
    14.2.2. Prevenção de erros de execução 528
      ON ERROR 529
    14.2.3. Análise através do editor VBA 530
  14.3. Modelação em 3D 531
    14.3.1. Sistemas de coordenadas 531
    14.3.2. Criação e edição de objectos 3D 533
    14.3.3. Visualização em 3D 535
  14.4. Encriptação do código 535
  14.5. Ligações com outros programas 537
 
Apêndice 1  
  Códigos DXF 539
 
 Índice remissivo 543
 
Páginas online Topo

Página 91
Páginas_386 à_387
Página 429
Página 511

Download Topo

Obtenha aqui os exemplos referidos no livro.

Use como "Username" a primeira palavra a vermelho no texto da contracapa.
Use como "Password" a última palavra de texto da página 427 do seu livro.

Nota : As palavras deverão ser inseridas em minúsculas e sem acentos, excluindo-se para a sua selecção o título da obra, os logótipos (da colecção e outros), endereços web e o nome dos autores.

Username :
Password :