You are on page 1of 3

07/09/12

AutoCAD e AutoLISP - Exportando dados do AutoCAD para o MS-Excel

Exportando dados do AutoCAD para o MS-Excel Data: 20 12 2003 Tpico: Tutoriais Veja como possvel comunicar dados entre o AutoCAD e o Ms-Excel utilizando o Visual Lisp. O Visual Lisp possibilita a comunicao do AutoCAD com qualquer aplicativo que suporte o ActiveX, como um exemplo vamos demonstrar como possvel transferir informaes do desenho para uma planilha do Ms-Excel. Vale informar que este apenas um exemplo e que o mesmo pode ser adaptado s suas necessidades. Primeiramente devemos carregar a funao vl-load-com que permite que utilizemos as funes ActiveX suportadas pelo Visual Lisp. (vl-load-com)

Para o nosso exemplo as variaveis *excel-cells* e *row* devem estar com seus valores sempre nulos toda vez que a rotina for iniciada (setq *excel-cells* nil) (setq *row* nil)

A funo init-excel ir iniciar o Excel criar uma pasta e definir janela do aplicativo como "visvel". (defun init-excel (/ excel-app wb-colletion workbook sheets sheet1) (setq excel-app (vlax-create-object "excel.application")) (setq wb-collection (vlax-get excel-app "workbooks")) (setq workbook (vlax-invoke-method wb-collection "add")) (setq sheets (vlax-get workbook "sheets")) (setq sheet1 (vlax-get-property sheets "item" 1)) (setq *excel-cells* (vlax-get sheet1 "cells")) (vlax-put excel-app "visible" 1))
www.autolisp.com.br/modules.php?name=News&file=print&sid=5 1/3

07/09/12

AutoCAD e AutoLISP - Exportando dados do AutoCAD para o MS-Excel

A funo write-row-column vai gravar os dados na planilha do excel; em linha e coluna informada. (defun write-row-column (row col x) (vlax-put-property *excel-cells* "item" row col (vl-princ-to-string x)))

Para a prxima etapa a varivel *model-space* deve estar com seu valor sempre nulo. (setq *model-space* nil)

A funo init-app vai criar as colunas de cabealho na planilha do excel, alm de amazenar o objeto da seo corrente do AutoCAD no ambiente modespace. (defun init-app () (setq *model-space* (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))) (write-row-column 1 1 "Centro x") (write-row-column 1 2 "Centro y") (write-row-column 1 3 "Centro z") (write-row-column 1 4 "Raio") (setq *row* 2))

A funo seguinte aciona a funo write-row-column passando os parmetros necessrios e desenha os objetos (circulos) no desenho corrente e vai criar as colunas de cabealho na planilha do excel, alm de amazenar o objeto da seo corrente do AutoCAD no ambiente "modelspace". (defun add-circle (px py pz radius) (write-row-column *row* 1 px) (write-row-column *row* 2 py) (write-row-column *row* 3 pz) (write-row-column *row* 4 radius) (setq *row* (+ *row* 1)) (vla-addcircle *model-space* (vlax-3d-point px py pz ) radius))

Executando a funo demo ser processada toda as sequencias anteriores e consequentemente criado o arquivo do Excel com os dados j exportados do AutoCAD. (conforme figura) (defun c:demo () (init-excel) (init-app)
www.autolisp.com.br/modules.php?name=News&file=print&sid=5 2/3

07/09/12

AutoCAD e AutoLISP - Exportando dados do AutoCAD para o MS-Excel

(add-circle 5 5 0 5) (add-circle 5 5 0 10))

Este est hospedado em AutoCAD e AutoLISP http://www.autolisp.com.br/autolisp O Link direto para este artigo : http://www.autolisp.com.br/autolisp/modules.php?name=News&file=article&sid=5

www.autolisp.com.br/modules.php?name=News&file=print&sid=5

3/3

You might also like