Очень нужен лисп (из EXEL в ACAD)
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Очень нужен лисп (из EXEL в ACAD)

Очень нужен лисп (из EXEL в ACAD)

Ответ
Поиск в этой теме
Непрочитано 09.07.2007, 15:52 #1
Очень нужен лисп (из EXEL в ACAD)
REDS
 
Конструктор (Железяки)
 
Russia
Регистрация: 12.04.2007
Сообщений: 252

Товарищи знатоки Lisp.
Очень нужен Лисп для передачи таблицы из Exel в Автокад.
Принцип работы (я думаю понятен):
Выделяем в Exel область (таблицу)
В Автокаде запускаем Лисп... он отрезками отрисовывает таблицу и заполняет её ячейки однострочным текстом ...
Возможно ли такое провернуть вообще?
Или может уже есть что-то подобное? Я не нашёл
Помогите плз... :cry:
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
Просмотров: 8382
 
Непрочитано 09.07.2007, 16:01
#2
Fellini


 
Регистрация: 02.10.2003
Сообщений: 1,158


СПДС GraphiCS
Fellini вне форума  
 
Автор темы   Непрочитано 09.07.2007, 16:04
#3
REDS

Конструктор (Железяки)
 
Регистрация: 12.04.2007
Russia
Сообщений: 252


Цитата:
Сообщение от Fellini
СПДС GraphiCS
Пробовал... экспортирует чёрте как, и импортирует также.... объединённые ячейки рушит... форматирование не сохраняет и тд...
проще заново нарисовать
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
REDS вне форума  
 
Непрочитано 09.07.2007, 16:13
#4
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 327


В книгах Полещука даны листинги подобных лисп-программ. Посмотри книгу Н. Полещук, П. Лоскутов "AutoLISP и Visual LISP в среде AutoCAD" глава 10 параграф 10.4 (стр. 815-824) там указанные лисп-программы читают из Excell лист с таблицей спецификацией и в Autocade строят аналогичную таблицу.
vic153 вне форума  
 
Непрочитано 09.07.2007, 16:15
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


Ээээ... Народ, а специальная вставка отмерла, да?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.07.2007, 16:29
#6
REDS

Конструктор (Железяки)
 
Регистрация: 12.04.2007
Russia
Сообщений: 252


Цитата:
Сообщение от vic153
В книгах Полещука даны листинги подобных лисп-программ. Посмотри книгу Н. Полещук, П. Лоскутов "AutoLISP и Visual LISP в среде AutoCAD" глава 10 параграф 10.4 (стр. 815-824) там указанные лисп-программы читают из Excell лист с таблицей спецификацией и в Autocade строят аналогичную таблицу.
Спасибо за подсказку... посмотрю
Цитата:
Ээээ... Народ, а специальная вставка отмерла, да?
Нее... специальная вставка не катит
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
REDS вне форума  
 
Автор темы   Непрочитано 09.07.2007, 16:38
#7
REDS

Конструктор (Железяки)
 
Регистрация: 12.04.2007
Russia
Сообщений: 252


книгу Н. Полещук, П. Лоскутов "AutoLISP и Visual LISP в среде AutoCAD" в Даунлоде не нашёл....мож ссыллочку дашь?
Или скинь если не трудно :roll:
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
REDS вне форума  
 
Непрочитано 09.07.2007, 17:11
#8
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Я например брал здесь
http://www.ozon.ru/context/detail/id/2644304/
CB вне форума  
 
Непрочитано 09.07.2007, 17:48
#9
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 327


До вечера дотерпи, ага. У них для книги прикладывался диск с этими лисп-прогами, их вроде можно свободно использовать, поэтому выложу вечером.
vic153 вне форума  
 
Непрочитано 09.07.2007, 21:59
#10
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Цитата:
Сообщение от vic153
До вечера дотерпи, ага. У них для книги прикладывался диск с этими лисп-прогами, их вроде можно свободно использовать, поэтому выложу вечером.
Выложи только 1 лисп из диска, (специальная вставка не корректно вставляетет)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 09.07.2007, 22:12
#11
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 327


Выкладываю папку с лисп-программами с диска Н. Полещука и П. Лоскутова.
Там лисп-функции, текстовое описание и Excel-евский файл спецификации.
Эти функции работают в ACAD-е начиная с 2006 так как в чертеже создают примитив таблица.
[ATTACH]1184004772.zip[/ATTACH]
vic153 вне форума  
 
Непрочитано 10.07.2007, 07:25
#12
Залётный


 
Регистрация: 15.04.2005
Сообщений: 243


Цитата:
Сообщение от REDS
Цитата:
Ээээ... Народ, а специальная вставка отмерла, да?
Нее... специальная вставка не катит
Не катит куда? Можно поподробнее для тех, у кого катит. Может у нас что-то не правильно.
Залётный вне форума  
 
Автор темы   Непрочитано 10.07.2007, 08:31
#13
REDS

Конструктор (Железяки)
 
Регистрация: 12.04.2007
Russia
Сообщений: 252


Цитата:
Сообщение от vic153
Выкладываю папку с лисп-программами с диска Н. Полещука и П. Лоскутова.
Там лисп-функции, текстовое описание и Excel-евский файл спецификации.
Эти функции работают в ACAD-е начиная с 2006 так как в чертеже создают примитив таблица.
.... Большое ВАМ человеческое СПАСИБО :wink: .... действительно очень помогли. Ещё не пробовал - но разберусь - надеюсь всё получится.

Специальная вставка работает конечно, но нужно именно чтобы отрисовывалась таблица при помощи примитивов...или (что ещё лучше) создавался объект - ТАБЛИЦА.
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
REDS вне форума  
 
Непрочитано 10.07.2007, 19:45
#14
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от REDS
Цитата:
Сообщение от vic153
Выкладываю папку с лисп-программами с диска Н. Полещука и П. Лоскутова.
Там лисп-функции, текстовое описание и Excel-евский файл спецификации.
Эти функции работают в ACAD-е начиная с 2006 так как в чертеже создают примитив таблица.
.... Большое ВАМ человеческое СПАСИБО :wink: .... действительно очень помогли. Ещё не пробовал - но разберусь - надеюсь всё получится.

Специальная вставка работает конечно, но нужно именно чтобы отрисовывалась таблица при помощи примитивов...или (что ещё лучше) создавался объект - ТАБЛИЦА.
Попробуй утилиту ExcelToAcadTable с сайта:
http://www.cadforyou.spb.ru/index.ph..._programs_page
Нужно выделить диапазон в Экселе потом закрыть файл
и запустить программу

~'J'~
fixo вне форума  
 
Автор темы   Непрочитано 11.07.2007, 13:57
#15
REDS

Конструктор (Железяки)
 
Регистрация: 12.04.2007
Russia
Сообщений: 252


для Fatty
Спасибо... посмотрю..
все ранее данные рекомендации мне не помогли к сожалению...
Ничего не работает :cry:
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
REDS вне форума  
 
Непрочитано 11.07.2007, 14:08
#16
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


Специальная вставка не катит с начиная с 2005 када.. в 2004 катит..
А 2005 как-бы раздвигает ячейки.. маразм полный.
Колян вне форума  
 
Автор темы   Непрочитано 11.07.2007, 14:12
#17
REDS

Конструктор (Железяки)
 
Регистрация: 12.04.2007
Russia
Сообщений: 252


для Fatty
Не работает что-то.
Пишет - ошибка - неверный тип аргумента ???
__________________
<<Самое сложное - ДОЙТИ ДО ПРОСТОГО...>>
REDS вне форума  
 
Непрочитано 11.07.2007, 14:50
#18
Залётный


 
Регистрация: 15.04.2005
Сообщений: 243


Цитата:
Сообщение от REDS
для Fattyвсе ранее данные рекомендации мне не помогли к сожалению...
Это пробовал?
http://www.dotsoft.com/xl2cad.htm
Имеется Spanner, но он имеет больше ограничений чем xl2cad:
http://www.wfcadtools.com/span40.htm
смотрю он уже 3 года не обновлялся.
Залётный вне форума  
 
Непрочитано 11.07.2007, 15:28
#19
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от REDS
все ранее данные рекомендации мне не помогли к сожалению...
Ничего не работает :cry:
Пример из книги - работает. Проверил. Должны быть указаны верные пути и имена файлов. Путь надо задавать либо с прямым слэшем / либо с двойным обратным \\
Alaspher вне форума  
 
Непрочитано 11.07.2007, 16:39
#20
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 77


Специальная вставка нормально катит в 2006 акаде... Вставляется таблица автокада.
Единственное неудобство - в тексте в каждой ячейке сохраняется информация о шрифте, который стоял в экселе, поэтому текст в ячейке таблицы акада выглядит примерно так: {\fRomanS|b0|i0|c204|p0;\H1.176x;Проверка}
Вот если бы кто-нибудь придумал лиспик для уборки этого мусора (этой инфы) из текста ячейки, чтобы оставался только голый текст (в данном примере слово Проверка), я был бы очень благодарен Да и не только я
Mitek вне форума  
 
Непрочитано 12.07.2007, 00:23
#21
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от REDS
для Fatty
Не работает что-то.
Пишет - ошибка - неверный тип аргумента ???
Добавил игнорирование типа данных
Пустые ячейки будут заполняться прочерком
См. комментарии, меняй по вкусу
Проверил в 2007 только, работает:

Код:
[Выделить все]
;;;;; written by Fatty (based on routine written by VK)
;;;;; http://www.autocad.ru/cgi-bin/f1/board.cgi?p=44
(alert "Открыть книгу Эксель,\nвыделить диапазон для копирования,\nзатем закрыть книгу")
(defun draw-tablo (tbl_list header point / atable cnt col_names header row tbl_list)
  (vl-load-com)
  (setq	atable (vla-addtable
		 (vla-get-modelspace
		   (vla-get-activedocument
		     (vlax-get-acad-object)
		   )
		 )
		 (vlax-3d-point point)
		 (1+ (length tbl_list))
		 (length (car tbl_list))
		 500.0
		 3000.0
	       )
  )
  (vla-zoomextents (vlax-get-acad-object))
  (vla-put-HeaderSuppressed atable :vlax-false)
  (vla-RecomputeTableBlock atable :vlax-false)
  (vla-settext
    atable
    0
    0
    header
  )
  (vla-setcellalignment atable 0 0 acmiddlecenter) 
  (vla-setcelltextheight atable 0 0 400.);<-- высота текста заголовка
  (setq col_names (car tbl_list))
  (setq cnt 0)
  (foreach item	col_names
    (vla-settext atable 1 cnt item)
    (vla-setcellalignment atable 1 cnt acmiddlecenter)
    (vla-setcelltextheight atable 1 cnt 300.);<-- высота текста подзаголовков
    (setq cnt (1+ cnt))
  )
  (setq row 2)	
  (setq cnt 0)
  (setq tbl_list (cdr tbl_list))
  (foreach cel tbl_list
    (foreach item cel
      (vla-settext atable row cnt item)
      (vla-setcellalignment
	atable
	row
	cnt
	acmiddlecenter
      )
      (vla-setcelltextheight atable row cnt 250.);<-- высота текста остальных строк
      (setq cnt (1+ cnt))
    )
    (setq row (1+ row))
    (setq cnt 0)
  )
  (vla-RecomputeTableBlock atable :vlax-true)
  (vl-catch-all-apply
    (function (lambda () (vlax-release-object atable)))
  )
  (princ)
)

  (defun C:TEX (/ col	  data	   heads    point    row      x
		 xlapp	  xlbook   xlbooks  xlcell   xlcells  xlrange
		 xlsheet
		)
  (vl-load-com)
    ;; получение полного пути к файлу
  (setq path (getfiled "Открыть файл Эксель" (getvar "dwgprefix") "xls" 4))
    ;; поучение ссылки на приложение Эксель
  (setq 
     xlapp (vlax-get-or-create-object "Excel.Application.11"));<-- версия Эксель (можно удалить .11)
    (vlax-put-property xlapp 'Visible :vlax-true)
    ;; ссылка на рабочие книги
     (setq xlbooks 
         (vlax-get xlapp 'WorkBooks))
          (setq xlBook ;<--ссылка на книгу
	     (vl-catch-all-apply
	       (function (lambda()
	       (vla-open xlbooks ;<-- открываем книгу
			 path ;<-- полный путь к файлу 
			 )))))

      ;; ссылка на первую страницу
      (setq xlsheet (vl-catch-all-apply
	          (function (lambda()
		    (vlax-get-property (vlax-get-property xlbook 'Sheets)
			  'Item
			  1 ;<-- номер страницы 
		    )
		  )
      )
    )
  )
  ;; делаем активными книгу и страницу
  (vlax-invoke-method xlbook 'Activate)	  
  (vlax-invoke-method xlsheet 'Activate)
   ;; ссылка на выделенный диапазон (объект Selection)   
  (setq xlrange (vlax-get-property xlapp 'Selection))
  ;; номер строки с подзаголовками таблицы, объект Selection
  ;; его не включает
  (setq row (vlax-get-property xlrange 'Row))
  (setq xlcells (vlax-get-property xlrange 'Cells))
  ;; получение всего диапазона значений  
  (setq data (vlax-get-property xlrange 'Value2)
  )
 ;; перевод данных вида вариант в текстовый формат 
(setq data
       (mapcar (function (lambda(x)
(mapcar (function (lambda(y)
	(if (not (zerop (variant-type y)))	    
	(vl-princ-to-string (vlax-variant-value y))
	  "---")))
	x)))
        (vlax-safearray->list
	(vlax-variant-value data)))
      )

    ;; закрываем книгу
(vlax-invoke xlbook 'Close)
    ;; отключаем приложение Эксель
(vlax-invoke xlapp 'Quit)
    ;; освобождение объектов из памяти в порядке
    ;; обратной иерархии
(mapcar (function (lambda(x)
	(vl-catch-all-apply
	  (function (lambda()
		      (progn
			(vlax-release-object x)
			(setq x nil)))))))
	(list xlrange xlsheet xlbook xlbooks xlapp)
	)
;; сборка мусора
    (gc)(gc)
    ;; указание точки вставки таблицы
    (setq point (getpoint "\n\t>>\t Точка вставки таблицы >> : "
	     )
      )
    ;; непосредственно рисование таблицы, название таблицы изменить
    (draw-tablo data "НАЗВАНИЕ ТАБЛИЦЫ" point)
    (princ)
    )
;;; TesT : (C:TEX)
(princ "\n\t***\t В командной строке набери TEX (англ.) \t***")
(princ)
~'J'~
fixo вне форума  
 
Непрочитано 12.07.2007, 01:22
#22
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от Mitek
Специальная вставка нормально катит в 2006 акаде... Вставляется таблица автокада.
Единственное неудобство - в тексте в каждой ячейке сохраняется информация о шрифте, который стоял в экселе, поэтому текст в ячейке таблицы акада выглядит примерно так: {\fRomanS|b0|i0|c204|p0;\H1.176x;Проверка}
Вот если бы кто-нибудь придумал лиспик для уборки этого мусора (этой инфы) из текста ячейки, чтобы оставался только голый текст (в данном примере слово Проверка), я был бы очень благодарен Да и не только я
Поищи удаление форматов мтехта или что-то вроде
Посмотри последний код здесь

http://www.autocad.ru/cgi-bin/f1/boa...22786yk&page=2

~'J'~
fixo вне форума  
 
Непрочитано 12.07.2007, 01:52
#23
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 665
<phrase 1= Отправить сообщение для baaba с помощью Skype™


А можно объяснить, почему Вам не годиться "Edit>PasteSpecial"? Я настроил её на Ctrl+Shift+V, что очень удобно. Там, в появляющемся меню, есть несколько вариантов. Один из них как раз - вставка чисто их прямых отрезков и singlline simpl text. Таким образом оформление длинных спецификаций мне не представляет большого труда. Масштабирование по высоте строки (я делаю 5 мм), а затем перенос свойств текста.

ЗЫ. Если моявится Лисп программа, кинте ссылку, пожалуйста.

Иван.
baaba вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Очень нужен лисп (из EXEL в ACAD)

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск