Message 1 of 13
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hi all I have many layout but I want to send to Excel or csv
who can help me write some lisp
thanks
Solved! Go to Solution.
hi all I have many layout but I want to send to Excel or csv
who can help me write some lisp
thanks
Solved! Go to Solution.
@chan230984 hi,
check this on
enjoy
moshe
; Layout To Excel CSV (defun c:lay2Csv (/ fname f) (setq fname (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".csv")) (if (setq f (open fname "w")) (progn (foreach lay (layoutlist) (write-line lay f) ); foreach (setq f (close f)) (prompt (strcat "\nCreating " fname " file.")) ); progn ); if (princ) )
This works great, Is there a way to include dwg name on first column of excel?. Thank you in advance.
(vl-load-com)
(defun c:lay2csv (/ file handle layouts dwgname)
(setq dwgname (strcat (getvar "dwgprefix") (getvar "dwgname"))
file (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".csv")
) ;_ end of setq
(if (setq handle (open file "w"))
(progn
(setq layouts (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))))
(write-line "File\tLayout name\tCount" handle)
(foreach item (layoutlist)
(write-line
(strcat dwgname "\t" item "\t" (itoa (vla-get-count (vla-get-block (vla-item layouts item)))))
handle
) ;_ end of write-line
) ;_ end of foreach
(close handle)
(princ (strcat "\nAll data saved to " file))
) ;_ end of progn
) ;_ end of if
(princ)
) ;_ end of defun
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Thank you @kpblc2000 for your urgent response.
What I need is to reflect the dwg names on the first column and the layout names on the second column.
Will this be possible? Thank you.
You see I tried to add "entities range at layout" because empty layouts will contain 0 entities. And you can filter empty layouts. If you don't need it, try this one:
(vl-load-com)
(defun c:lay2csv (/ file handle layouts dwgname)
(setq file (strcat (getvar "dwgprefix") (setq dwgname (vl-filename-base (getvar "dwgname"))) ".csv")
) ;_ end of setq
(if (setq handle (open file "w"))
(progn
(write-line "File\tLayout name" handle) ; comment (place semicolon at the start of line) this line if you don't need table header
(foreach item (layoutlist)
(write-line (strcat dwgname "\t" item) handle)
) ;_ end of foreach
(close handle)
(princ (strcat "\nAll data saved to " file))
) ;_ end of progn
) ;_ end of if
(princ)
) ;_ end of defun
P.S. I didn't check it
P.P.S. Sorry for my English
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Thanks @kpblc2000
Here's the result of the program.
Filename and layout name shared the same column. It is possible to have the Filename on Column A and layout name on column B?
During import data to Excel try to select "Tab symbol" as a delimiter.
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
@kpblc2000 Thanks.
where should I place the tab symbol on the program? pardon, I totally new with lisp program. Thanks.
Not at program. During importing.
You can replace
\t
symbol to any you want 🙂
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
CSV Comma Seperated Values is not a csv file where a Tab is used as seperator in the true sense, understand why you did it that way.
Its easy to do (write-line (strcat dwgname "," layoutname) handle) then no confusion. Also "," = (chr 44)
Just me "handle" is a valid Autocad reserved name so would not use it as a variable name.
File name can contain commas so using comma as delimiter (i think) can't guarantee result.
About ""handle" is a valid Autocad reserved name" - never heard about it. Up to ACAD20221 this code work correctly.
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library