Você está na página 1de 8

no prompt de comando do win98 ou no CMD do xp, va ate a pasta dos slides (extenso SLD) digite: dir *.

sld /b > mylist.txt isto cria um TXT com a lista dos slides.... em seguida, mova os slides e o txt para a pasta do cad, ou mova o slidelib.exe p ara a pasta do slide e digite no prompt: slidelib mlib < mylist.txt isto cria um arquivo de slide (extenso SLB) que vc poder acessar pela DCL... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Maciel Siga as instrues a seguir. ================================================== ANEXO 5 - Criar Bibliotecas de "Slides" (Da Aula - Personalizao de Menus) Bibliotecas de "Slides" tm a extenso do nome de arquivo com .slb. Um dos motivos p ara se criar uma biblioteca de "slides" a criao de imagens lado a lado para person alizao de menus. Para ver "slides" de uma biblioteca de "slides" digite pela linha de comando: library (nome do "slide") biblioteca (nome do "slide) Para se criar uma biblioteca de "slides" necessrio usar a linha de comando do DOS ( o "prompt" do DOS). Os passos so os seguintes: 1. Com um editor de textos crie uma arquivo de texto com os nomes de todos os "s lides" que voc quer incluir na sua biblioteca. melhor que voc esteja dentro da pas ta onde existem os "slides". No esquea antes de incluir o nome da pasta no caminho de busca do AutoCAD. Salve como Slides.lst (lst quer dizer lista). Sugiro criar vazio (sem digitar os nomes dos "slides"). Adiante ser dado o motivo de se proce der assim. 2. V para o "prompt" do DOS. Troque para a pasta onde esto os "slides". Se a pasta for Bibliocad digite cd bibliocad<-', CD no DOS significa "Change Directory" Troca Diretrio ou Pasta. No caso de espaos existentes nos nomes das pastas (no seu caso) digite o seguinte pelo prompt do DOS: drive\:>c: <-' (vai para c: se vc estiver em outro drive - <-' significa ENTER) c:\>cd "documents and settings\maciel\meus dcumentos\autocad\bibliocad" <-' c:\documents and settings\maciel\meus documentos\autocad\bibliocad>_ (pronto - v c est l) 3. Digite o seguinte comando pelo DOS: dir *.sld /b /oen >> Slides.lst. O dir a pasta onde voc est. O "*" (asterisco) quer dizer todos. A extenso .sld so dos "slide s" que esto na pasta ou diretrio. O parmetro /b significa omitir os detalhes inform ados para os arquivos recuperando s o nome e a extenso. O parmetro /oen quer dizer (o) colocar em ordem alfabtica, (e) pela extenso do arquivo e (n) pelo nome do arq uivo. As setas >> significam para acrescentar ao final do arquivo Slides.lst os nomes de todos os "slides" da pasta onde voc est. 4. Voc poderia criar diretamente este arquivo pelo DOS usando somente uma seta >

como no comando dir *.sld /b /oen > Slides.lst<-'. A diferena que nesse caso se no existir o arquivo ele criado e se existir ele sobrescrito, apagado pelas inform aes novas. 5. Mantendo-se na mesma pasta onde voc criou a lista de "slides" no arquivo Slide s.lst digite o seguinte comando no "prompt": "c:\autocad 200X\slidelib[.exe]" Biblio_Slides.slb < Slides.lst <-' ( [...] --> opcional ) Vamos interpretar o comando: o trecho entre aspas para informar a pasta onde est o programa que cria a biblioteca slidelib.exe que no AutoCAD 2004 vem na mesma p asta do programa. Em outros verifique. Verifique se o c: o disco (drive) onde est o seu AutoCAD 200X e se a pasta autoca d 200X. Maisculas e minsculas no tem efeito na linha de comando do DOS. Biblio_Slid es.slb o nome da biblioteca que vai ser criada com os "slides" da pasta onde voc est no momento. A seta < informa ao sistema para importar do arquivo Slides.lst o s nomes dos "slides" que faro parte da biblioteca Biblio_Slides.slb. Se o arquivo no existir ele ser criado. Se existir ser sobrescrito. 6. As setas >, >>, < e << significam no DOS redirecionamento ou atribuio de contedo . 7. Se voc quiser limpar a tela pelo "prompt" digite cls - CLear Screen - Limpa te la. Volte ao Windows digitando exit <-' e pronto. Sua biblioteca de slides" est criad a. No esquea: use uma seta (>) para criar a lista, use duas setas (>>) para acrescent ar a uma lista j existente outros arquivo .sld (outros contedos diferentes). Os no mes apresentados so sugestes. Use os nomes que melhor lhe convier. Saudaes. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ( defun c:slides ( / lib shell dir file tmp tmpbat sllib ) ( setq conv ( lambda ( str ) ( while ( vl-string-search "\\" str ) ( setq str ( vl-string-subst "/" "\\" str ) ) ) str ) lib ( getstring "\nEnntre co o nome da biblioteca a ser criada: " t ) ) ( if ( /= "" lib ) ( progn ( if ( setq shell ( vlax-get-or-create-object "shell.application" ) dir ( vlax-invoke shell "BrowseForFolder" 0 "Selecione o diretrio dos slides" 1 ) ) ( progn ( setq dir ( conv ( vlax-get ( vlax-get dir "Self" ) "Path" ) ) tmp ( conv ( vl-filename-mktemp "" dir ".txt" ) ) file ( open tmp "w" ) sllib ( conv ( findfile "slidelib.exe" ) ) tmpbat ( vl-filename-mktemp "" dir ".bat" ) ) ( foreach x ( vl-directory-files dir "*.sld" 1 ) ( write-line ( strcat dir "/" x ) file ) ) ( close file ) ( write-line ( strcat "\"" sllib "\" \"" dir "/" lib "\" < \"" tmp "\"" )

( ( ( (

setq file ( open tmpbat "w" ) ) ) close file ) startapp tmpbat ) ) ) vlax-release-object shell ) ) ) )

salve os slides em algum lugar, salve a lisp, rode ela ( na linha de comando dig ite SLIDES escolha um nome e a pasta onde eles estao ( o programa pergunta ) ser criado 3 arquivos: a lista dos sld, um bat pra executar o slidelib ( nao ache i forma do startapp funcionar ) e o arquivo SLB com o nome que vc especificou ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;; Que beleza! Finalmente deu certo com esse alisp. muito prtico. Muito obrigado Neyton e Hugo Paulo Eis abaixo a rotina que funciona com o quadro de dilogo. Veja que logo aps o cabealho, est as macros do bloco de dilogo: ;;;----------------------------------------------------- ------------------------------------;;; ROTINA PARA CRIAR RETNGULOS COM VRIAS OPES DE PONTO BASE ;;; AUTOR: MACIEL FERNANDO, em junho de 2006. ;;; Agradecimentos aos colegas Neyton e Hugo Paulo do frum Cadklein pela ajuda na programao ;;;----------------------------------------------------- ------------------------------------;;; IMPORTANTE: ;;; Para rodar essa rotina por menu de imagens, cole em seu arquivo MNS as macro s: ;;; **IMAGE_RETANGULO ;;; [Retangulos com opes de ponto base] ;;; [Bibliocad(RETE,Ponto base Esquerda)](load "retangulo") LAYERCONTORNO clayer contorno RETE ;;; [Bibliocad(RETD,Ponto base Direita)](load "retangulo") LAYERCONTORNO clayer contorno RETD ;;; [Bibliocad(RETI,Ponto base Inferior)](load "retangulo") LAYERCONTORNO clayer contorno RETI ;;; [Bibliocad(RETS,Ponto base Superior)](load "retangulo") LAYERCONTORNO clayer contorno RETS ;;; [Bibliocad(RETC,Ponto base no Centro)](load "retangulo") LAYERCONTORNO claye r contorno RETC ;;; [Bibliocad(RETE_,Ponto base Esquerda)](load "retangulo") LAYERTRACEJADO clay er tracejado RETE ;;; [Bibliocad(RETD_,Ponto base Direita)](load "retangulo") LAYERTRACEJADO claye r tracejado RETD ;;; [Bibliocad(RETI_,Ponto base Inferior)](load "retangulo") LAYERTRACEJADO clay er tracejado RETI ;;; [Bibliocad(RETS_,Ponto base Superior)](load "retangulo") LAYERTRACEJADO clay er tracejado RETS

;;; [Bibliocad(RETC_,Ponto base no Centro)](load "retangulo") LAYERTRACEJADO cla yer tracejado RETC ;;; Macro para abrir o quadro de dilogo: ;;; $I=NomeDoArquivoMns.image_retangulo $I=NomeDoArquivoMns.* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ;;; Iniciando: ;;; Funo de erro (MSG): tratamento de erro interno (defun ERRO (MSG) ;;; restaurando configuraes: (setq *error* ERRO_ORIGINAL) ; restaura rotina original do cad (command "osmode" OSN) (command "UCS" "P") (command "cmdecho" ECO) (prompt "\n*Cancelado* \n") ; mensagem de erro (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; ;;; Verificar condio de layer: (defun C:LAYERTRACEJADO () ;;; Verificar se j existe linetype "Dashed" carregada. Caso no encontrar, ser carre gada: (if (not (tblsearch "LTYPE" "dashed")) (vla-load (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object)) ) "dashed" "acad.lin" ) ) ;;; Verificar se j existe layer "tracejado". Caso no encontrar, ser criado: (if (not (tblsearch "layer" "tracejado")) (progn (setq LAYTRAC (vla-get-activedocument (vlax-get-acad-object)) lay (vla-add (vla-get-layers LAYTRAC) "tracejado") ) (vla-put-color lay 4) (vla-put-linetype lay "dashed") ) ) ) (PRINC) (defun C:LAYERCONTORNO () ;;; Verificar se j existe layer "contorno". Caso no encontrar, ser criado: (if (not (tblsearch "layer" "contorno")) (progn (setq LAYCONT (vla-get-activedocument (vlax-get-acad-object)) lay (vla-add (vla-get-layers LAYTRAC) "contorno") ) (vla-put-color lay 2) (vla-put-linetype lay "continuous") ) )

) (PRINC) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;; (defun C:RETI () ; ponto base no meio da linha inferior (setq ERRO_ORIGINAL *error*) ; armazena a rotina original (setq *error* ERRO) ; substitui a rotina de erro (setq ECO (getvar "cmdecho")) (command "cmdecho" "0") (command "UCS" "W") (setq OSN (getvar "osmode")) (prompt "\nComando RETI") (prompt "\nDesenha retngulo com ponto base no meio da linha inferior." ) (princ) ;;; CALCULANDO PONTOS: (setq XY (getpoint "\nDetermine o ponto base: ")) (setq X (car XY)) (setq Y (cadr XY)) (setq VX (getreal "\nLargura: ")) (setq VY (getreal "\nAltura: ")) (setq MEIABASE (/ VX 2)) (setq INFESQX (- X MEIABASE)) (setq SUPDIRX (+ X MEIABASE)) (setq SUPDIRY (+ Y VY)) (setq P1 (list INFESQX Y)) (setq P2 (list SUPDIRX SUPDIRY)) ;;; Traando o retngulo: (command "osmode" "0") (command "rectangle" P1 P2) ;;; Restaurando configuraes: (setq *error* ERRO_ORIGINAL) (command "osmode" OSN) (command "UCS" "P") (command "cmdecho" ECO) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; (defun C:RETE () ; ponto base no meio da linha esquerda (setq ERRO_ORIGINAL *error*) ; armazena a rotina original (setq *error* ERRO) ; substitui a rotina de erro (setq ECO (getvar "cmdecho")) (command "cmdecho" "0") (command "UCS" "W") (setq OSN (getvar "osmode")) (prompt "\nComando RETE") (prompt "\nDesenha retngulo com ponto base no meio da linha esquerda." ) (princ)

;;; CALCULANDO PONTOS: (setq XY (getpoint "\nDetermine o ponto base: ")) (setq X (car XY)) (setq Y (cadr XY)) (setq VX (getreal "\nLargura: ")) (setq VY (getreal "\nAltura: ")) (setq (setq (setq (setq (setq (setq MEIAALT (/ VY 2)) INFESQY (- Y MEIAALT)) SUPDIRX (+ X VX)) SUPDIRY (+ Y MEIAALT)) P1 (list X INFESQY)) P2 (list SUPDIRX SUPDIRY))

;;; Traando o retngulo: (command "osmode" "0") (command "rectangle" P1 P2) ;;; Restaurando configuraes: (setq *error* ERRO_ORIGINAL) (command "osmode" OSN) (command "UCS" "P") (command "cmdecho" ECO) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; (defun C:RETD () ; ponto base no meio da linha direita (setq ERRO_ORIGINAL *error*) ; armazena a rotina original (setq *error* ERRO) ; substitui a rotina de erro (setq ECO (getvar "cmdecho")) (command "cmdecho" "0") (command "UCS" "W") (setq OSN (getvar "osmode")) (prompt "\nComando RETD") (prompt "\nDesenha retngulo com ponto base no meio da linha direita." ) (princ) ;;; CALCULANDO PONTOS: (setq XY (getpoint "\nDetermine o ponto base: ")) (setq X (car XY)) (setq Y (cadr XY)) (setq VX (getreal "\nLargura: ")) (setq VY (getreal "\nAltura: ")) (setq (setq (setq (setq (setq (setq MEIAALT (/ VY 2)) INFESQX (- X VX)) INFESQY (- Y MEIAALT)) SUPDIRY (+ Y MEIAALT)) P1 (list INFESQX INFESQY)) P2 (list X SUPDIRY))

;;; Traando o retngulo: (command "osmode" "0")

(command "rectangle" P1 P2) ;;; Restaurando configuraes: (setq *error* ERRO_ORIGINAL) (command "osmode" OSN) (command "UCS" "P") (command "cmdecho" ECO) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; (defun C:RETS () ; ponto base no meio da linha superior (setq ERRO_ORIGINAL *error*) ; armazena a rotina original (setq *error* ERRO) ; substitui a rotina de erro (setq ECO (getvar "cmdecho")) (command "cmdecho" "0") (command "UCS" "W") (setq OSN (getvar "osmode")) (prompt "\nComando RETS") (prompt "\nDesenha retngulo com ponto base no meio da linha superior." ) (princ) ;;; CALCULANDO PONTOS: (setq XY (getpoint "\nDetermine o ponto base: ")) (setq X (car XY)) (setq Y (cadr XY)) (setq VX (getreal "\nLargura: ")) (setq VY (getreal "\nAltura: ")) (setq MEIABASE (/ VX 2)) (setq INFESQX (- X MEIABASE)) (setq INFESQY (- Y VY)) (setq SUPDIRX (+ X MEIABASE)) (setq P1 (list INFESQX INFESQY)) (setq P2 (list SUPDIRX Y)) ;;; Traando o retngulo: (command "osmode" "0") (command "rectangle" P1 P2) ;;; Restaurando configuraes: (setq *error* ERRO_ORIGINAL) (command "osmode" OSN) (command "UCS" "P") (command "cmdecho" ECO) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; (defun C:RETC () ; ponto base no centro do retngulo (setq ERRO_ORIGINAL *error*) ; armazena a rotina original (setq *error* ERRO) ; substitui a rotina de erro (setq ECO (getvar "cmdecho")) (command "cmdecho" "0")

(command "UCS" "W") (setq OSN (getvar "osmode")) (prompt "\nComando RETC") (prompt "\nDesenha retngulo com ponto base no centro do retngulo." ) (princ) ;;; CALCULANDO PONTOS: (setq XY (getpoint "\nDetermine o ponto base: ")) (setq X (car XY)) (setq Y (cadr XY)) (setq VX (getreal "\nLargura: ")) (setq VY (getreal "\nAltura: ")) (setq MEIABASE (/ VX 2)) (setq MEIAALT (/ VY 2)) (setq INFESQX (- X MEIABASE)) (setq INFESQY (- Y MEIAALT)) (setq SUPDIRX (+ X MEIABASE)) (setq SUPDIRY (+ Y MEIAALT)) (setq P1 (list INFESQX INFESQY)) (setq P2 (list SUPDIRX SUPDIRY)) ;;; Traando o retngulo: (command "osmode" "0") (command "rectangle" P1 P2) ;;; Restaurando configuraes: (setq *error* ERRO_ORIGINAL) (command "osmode" OSN) (command "UCS" "P") (command "cmdecho" ECO) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;

Você também pode gostar