dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание графика в AutoCAD на основе txt или xls файла

Создание графика в AutoCAD на основе txt или xls файла

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 08.07.2008, 17:28
Создание графика в AutoCAD на основе txt или xls файла
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,952
Отправить сообщение для Red Nova с помощью Skype™

Red Nova вне форума Вставить имя

Имею txt файл. В нем запись такого содержания
3.2,0.2
9.2,1.5
15.2,-2.8
И так далее подобные строчки.
На основе этого файла надо в AutoCAD создать график.
При этом по оговоренным координатам расставляются блоки с именем “ Отметка графика”, затем эти же точки соединяются полигинией.
График начинается с абсолютной координаты 0,0.
В файле имею так же блок в котором сетка с отметками, думаю его присудствие не должно ни на что повлиять.
Файлик вот такой.ъ
Прошу помочь.
Заранее спасибо если кто ответит.

Вложения
Тип файла: dwg
DWG 2004
Таблицы отклонений.dwg (66.3 Кб, 22839 просмотров)

__________________
Блог

Последний раз редактировалось Red Nova, 17.07.2008 в 16:25.
Просмотров: 49954
 
Непрочитано 15.07.2008, 03:33
#21
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Только я сразу не сообразил, что лучше в экселе исходные данные задавать.
Замените в функции getfiled "txt" на "csv". Конечно это расширение гораздо удобнее.
__________________
Лень - великий двигатель прогресса!
KAI вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.07.2008, 04:08
#22
Димас

джедай
 
Регистрация: 31.01.2005
Магадан
Сообщений: 460
Отправить сообщение для Димас с помощью ICQ


Цитата:
Сообщение от KAI Посмотреть сообщение
Конечно это расширение гораздо удобнее.
Offtop: гораздо удобнее напрямую с экселя брать или с аксесса)
это я как пользователь утверждаю)
__________________
тут была подпись(
Димас вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.07.2008, 08:33
#23
Кулик Алексей aka kpblc
Moderator

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


Именно поэтому, а также учитывая, что у меня опыта работы с существующими файла Excel'a чрезвычайно мало, я не могу ничего написать...
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 15.07.2008, 17:59
#24
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,952
Отправить сообщение для Red Nova с помощью Skype™


Кулик Алексей aka kpblc,
Цитата:
Именно поэтому, а также учитывая, что у меня опыта работы с существующими файла Excel'a чрезвычайно мало, я не могу ничего написать...
Ну что же, и на том что есть большое спасибо.
KAI, Сам не сумею, если можешь сделай пожалста.
Димас, Честно говоря не очень понял. Что брать на прямую? Может ты имеешь ввиду копирование bmp графика?
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 01:32
#25
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


Цитата:
Сообщение от Red Nova Посмотреть сообщение
KAI, Сам не сумею, если можешь сделай пожалста.
1. Открыть файл LSP с нужной функцией
2. Найти строчку с функцией getfiled
3. Замнить в этой строке "txt" на "csv"
__________________
Лень - великий двигатель прогресса!
KAI вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.07.2008, 09:33
#26
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,952
Отправить сообщение для Red Nova с помощью Skype™


Ну поменял. Пользы пока нет. Зачем "csv" не очень понятно, расширение экселя ведь "xls".
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 10:05
#27
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,500
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Red Nova, А ты создай csv файл и дважды щелкни по нему в проводнике. Посмотри кто его откроет.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 11:36
#28
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,500
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Как-то была задача экспортировать точки и их описание из Excell в Автокад. На основе кода, выложенного здесь и опубликованного здесь. К нему прикрутил функцию Алексея graph-by-file-with-poin. Получилось такие команды:
Xl2PT - импорт точек из Excel в Автокад Столбец A - X; B - Y; C - Z; D - описание точки Высота текста - переменная TEXTSIZE
Xl2PL - построение LW полилинии по координатам столбцов A (X) и B (Y)

*** Добавлено
Грузить vlx файл

*** Обновлено 2011-11-21
Вложения
Тип файла: rar GetPointFormExcel.rar (24.7 Кб, 349 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 21.11.2011 в 12:05.
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 12:41
#29
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


>Кулик Алексей aka kpblc
Другой взгляд на рисование, без vla-add можно покороче...
Код:
[Выделить все]
(defun c:test (/ A B F L S)
 (if
  (and (setq f (getfiled "Укажите файл с точками графика" "" "txt" 0))
       (setq b (ssget ":S:E" '((0 . "INSERT"))))
       (setq b (assoc 2 (entget (ssname b 0))))
  ) ;_  and
  (progn
   (setq f (open f "r")
         l nil
   ) ;_  setq
   (while (setq s (read-line f))
    (setq
     l (cons (read (strcat "(" (vl-string-translate "," " " s) ")"))
             l
       ) ;_  cons
    ) ;_  setq
   ) ;_  while
   (close f)
   (entmakex (append (list '(0 . "LWPOLYLINE")
                           '(100 . "AcDbEntity")
                           '(410 . "Model")
                           '(100 . "AcDbPolyline")
                           (cons 90 (length l))
                     ) ;_  list
                     (mapcar '(lambda (a)
                               (setq a (cons 10 a))
                               (entmakex (list '(0 . "INSERT") b a))
                               a
                              ) ;_  lambda
                             l
                     ) ;_  mapcar
             ) ;_  append
   ) ;_  entmakex
   (princ)
  ) ;_  progn
 ) ;_  if
)
Елпанов Евгений вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.07.2008, 13:54
#30
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,952
Отправить сообщение для Red Nova с помощью Skype™


VVA, По #27
Верно, Эксельофский формат. Но программа измененная как говорил KAI ничего не нарисовала.
По #28 не заработало. Хотя и не совсем то что я ищу.
Цитата:
Xl2PT - импорт точек из Excel в Автокад Столбец A - X; B - Y; C - Z; D - описание точки Высота текста - переменная TEXTSIZE
Xl2PL - построение LW полилинии по координатам столбцов A (X) и B (Y)
Наверное второй командой ты хотел написать (XL_GET), хотя она тоже результата не дала.

Елпанов Евгений, А можно такую но с перламутровыми пуговицами? В смысле для ексель.
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 14:27
#31
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,500
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Там есть диалоговые окна (dcl файл). Они должны находится в путях поиска Автокада. Иначе не отработает диалог
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 14:59
#32
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,500
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Обновил #28 Собрал все в vlx файл + пример excell
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 15:16
#33
Rus2007


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


Цитата:
Xl2PL - построение LW полилинии по координатам столбцов A (X) и B (Y)
А задать масштаб можно?
Rus2007 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 15:17
#34
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Елпанов Евгений, А можно такую но с перламутровыми пуговицами? В смысле для ексель.
нет проблем - добавил свою старенькую функцию чтения из экселя...
Из плюсов - читает экселевские файлы, даже если эксель не установлен.
Если в экселе есть несколько листов, точнее есть данные в нескольких листах, то будет создано несколько графиков, по одному на каждый лист.
Из ограничений - я не парился с адресацией данных в экселе, т.е для отрисовки берутся два первых попавшихся столбца с данными и предполагается, что в них числа...
Код:
[Выделить все]
(defun GET_xl (tbl / ADOCONNECT ADORECORDSET LST)
              ;|
     GET_XL.LSP
     created 21-04-2006
     last edit 19-02-2007
     Created by Elpanov Evgeny
     
     842@list.ru
     elpanov@gmail.com

Data reading from Microsoft Excel not using Excel.
This code, can read diverse data from all tables.

 ARGUMENTS:
 A string containing a complete file name, including the path.
 (setq tbl "D:\\4.xls")

 USAGE:
 (GET_xl tbl)

 RETURN VFALUES
 The list of all pages in a file with all data
|;
 (defun rec-rem-dupl (lst)
  (if lst
   (cons (car lst) (rec-rem-dupl (vl-remove (car lst) (cdr lst))))
  ) ;_  if
 ) ;_  defun
 (setq ADOConnect   (vlax-get-or-create-object "ADODB.Connection")
       ADORecordset (vlax-get-or-create-object "ADODB.Recordset")
 ) ;_  setq
 (if
  (not (vl-catch-all-error-p
        (vl-catch-all-apply
         (function vlax-invoke-method)
         (list ADOConnect
               "Open"
               (strcat "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                       tbl
                       ";Extended Properties=;Excel 8.0;HDR=No"
               ) ;_  strcat
               "admin"
               ""
               nil
         ) ;_  list
        ) ;_  vl-catch-all-apply
       ) ;_  vl-catch-all-error-p
  ) ;_  not
  (progn (setq lst
               (mapcar
                (function (lambda (l / i c)
                           (vlax-invoke-method
                            ADORecordset
                            "Open"
                            (strcat "SELECT * FROM [" l "]")
                            ADOConnect
                            1
                            3
                            nil
                           ) ;_  vlax-invoke-method
                           (setq i
                                 (length
                                  (car (vlax-safearray->list
                                        (vlax-variant-value
                                         (vlax-invoke-method ADORecordset "GetRows" 65535) ;_  vlax-invoke-method
                                        ) ;_  vlax-variant-value
                                       ) ;_  vlax-safearray->list
                                  ) ;_  car
                                 ) ;_  length
                           ) ;_  setq
                           (vlax-invoke-method ADORecordset "Close")
                           (while (not (zerop i))
                            (vlax-invoke-method
                             ADORecordset
                             "Open"
                             (strcat "SELECT * FROM ["
                                     l
                                     "a"
                                     (itoa i)
                                     ":IV"
                                     (itoa i)
                                     "]"
                             ) ;_  strcat
                             ADOConnect
                             1
                             3
                             nil
                            ) ;_  vlax-invoke-method
                            (setq c (cons
                                     (car
                                      (apply
                                       (function mapcar)
                                       (cons
                                        'list
                                        (mapcar
                                         (function
                                          (lambda (a)
                                           (mapcar
                                            (function (lambda (b) (vlax-variant-value b)) ;_  lambda
                                            ) ;_  function
                                            a
                                           ) ;_  mapcar
                                          ) ;_  lambda
                                         ) ;_  function
                                         (vlax-safearray->list
                                          (vlax-variant-value
                                           (vlax-invoke-method
                                            ADORecordset
                                            "GetRows"
                                            65535
                                           ) ;_  vlax-invoke-method
                                          ) ;_  vlax-variant-value
                                         ) ;_  vlax-safearray->list
                                        ) ;_  mapcar
                                       ) ;_  cons
                                      ) ;_  apply
                                     ) ;_  car
                                     c
                                    ) ;_  cons
                                  i (1- i)
                            ) ;_  setq
                            (vlax-invoke-method ADORecordset "Close")
                           ) ;_  while
                           (if (equal c '((nil) (nil)))
                            (list l)
                            (cons l c)
                           ) ;_  if
                          ) ;_  lambda
                ) ;_  function
                (mapcar
                 (function (lambda (x)
                            (if (= (substr x 1 1) "'")
                             (substr x 2 (- (strlen x) 2))
                             x
                            ) ;_  if
                           ) ;_  lambda
                 ) ;_  function
                 (rec-rem-dupl
                  (caddr
                   (mapcar (function (lambda (a)
                                      (mapcar (function vlax-variant-value) a) ;_  mapcar
                                     ) ;_  lambda
                           ) ;_  function
                           (vlax-safearray->list
                            (vlax-variant-value
                             (vlax-invoke-method
                              (vlax-invoke-method ADOConnect "OpenSchema" 4) ;_  vlax-invoke-method
                              "GetRows"
                              65535
                             ) ;_  vlax-invoke-method
                            ) ;_  vlax-variant-value
                           ) ;_  vlax-safearray->list
                   ) ;_  apply
                  ) ;_  caddr
                 ) ;_  rec-rem-dupl
                ) ;_  mapcar
               ) ;_  mapcar
         ) ;_  setq
         (vlax-invoke-method ADOConnect "Close")
         (vlax-release-object ADORecordset)
         (vlax-release-object ADOConnect)
         (setq ADORecordset nil
               ADOConnect nil
         ) ;_  setq
         lst
  ) ;_  progn
  (progn
   (vl-catch-all-apply 'vlax-invoke-method (list ADOConnect "Close"))
   (vlax-release-object ADORecordset)
   (vlax-release-object ADOConnect)
   (setq ADORecordset nil
         ADOConnect nil
   ) ;_  setq
   nil
  ) ;_  progn
 ) ;_  if
)
(defun c:test (/ A B F L)
 ;;пример для экселя...
 (if
  (and (setq f (getfiled "Укажите файл с точками графика" "" "xls" 0))
       (setq b (ssget ":S:E" '((0 . "INSERT"))))
       (setq b (assoc 2 (entget (ssname b 0))))
  ) ;_  and
  (progn
   (setq l (GET_xl f))
   (foreach x (mapcar 'cdr l)
    (if x
     (entmakex (append (list '(0 . "LWPOLYLINE")
                             '(100 . "AcDbEntity")
                             '(410 . "Model")
                             '(100 . "AcDbPolyline")
                             (cons 90 (length x))
                       ) ;_  list
                       (mapcar '(lambda (a)
                                 (setq a (list 10 (car a) (cadr a)))
                                 (entmakex (list '(0 . "INSERT") b a))
                                 a
                                ) ;_  lambda
                               x
                       ) ;_  mapcar
               ) ;_  append
     ) ;_  entmakex
    ) ;_  if
   ) ;_  foreach
   (princ)
  ) ;_  progn
 ) ;_  if
) ;_  defun

Последний раз редактировалось Елпанов Евгений, 16.07.2008 в 15:19. Причина: правил теги
Елпанов Евгений вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 15:25
#35
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Rus2007 Посмотреть сообщение
А задать масштаб можно?
масштаб задать не сложно, но понадобится указывать базовую точку, относительно которой нужно масштабировать и задать масштаб, т.е. никакой автоматизации, по сравнением с обычным вызовом функции масштабирования... Вот если масштабировать всегда относительно известной или вычисляемой точки, например, относительно угла габаритного контейнера или начала координат, то это можно делать и автоматом...
Елпанов Евгений вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 16:48
#36
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,500
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Rus2007, Или имеется ввиду разный масштаб по X и Y?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 18:09
#37
Rus2007


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


Да масштаб по Х один, по У другой.
Rus2007 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 18:18
#38
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Rus2007 Посмотреть сообщение
Да масштаб по Х один, по У другой.
вариант для экселя, с запросом масштабов...
Код:
[Выделить все]
(defun GET_xl (tbl / ADOCONNECT ADORECORDSET LST)
              ;|
     GET_XL.LSP
     created 21-04-2006
     last edit 19-02-2007
     Created by Elpanov Evgeny
     
     842@list.ru
     elpanov@gmail.com

Data reading from Microsoft Excel not using Excel.
This code, can read diverse data from all tables.

 ARGUMENTS:
 A string containing a complete file name, including the path.
 (setq tbl "D:\\4.xls")

 USAGE:
 (GET_xl tbl)

 RETURN VFALUES
 The list of all pages in a file with all data
|;
 (defun rec-rem-dupl (lst)
  (if lst
   (cons (car lst) (rec-rem-dupl (vl-remove (car lst) (cdr lst))))
  ) ;_  if
 ) ;_  defun
 (setq ADOConnect   (vlax-get-or-create-object "ADODB.Connection")
       ADORecordset (vlax-get-or-create-object "ADODB.Recordset")
 ) ;_  setq
 (if
  (not (vl-catch-all-error-p
        (vl-catch-all-apply
         (function vlax-invoke-method)
         (list ADOConnect
               "Open"
               (strcat "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                       tbl
                       ";Extended Properties=;Excel 8.0;HDR=No"
               ) ;_  strcat
               "admin"
               ""
               nil
         ) ;_  list
        ) ;_  vl-catch-all-apply
       ) ;_  vl-catch-all-error-p
  ) ;_  not
  (progn (setq
          lst (mapcar
               (function (lambda (l / i c)
                          (vlax-invoke-method
                           ADORecordset
                           "Open"
                           (strcat "SELECT * FROM [" l "]")
                           ADOConnect
                           1
                           3
                           nil
                          ) ;_  vlax-invoke-method
                          (setq i
                                (length
                                 (car (vlax-safearray->list
                                       (vlax-variant-value
                                        (vlax-invoke-method ADORecordset "GetRows" 65535)
                                       ) ;_  vlax-variant-value
                                      ) ;_  vlax-safearray->list
                                 ) ;_  car
                                ) ;_  length
                          ) ;_  setq
                          (vlax-invoke-method ADORecordset "Close")
                          (while (not (zerop i))
                           (vlax-invoke-method
                            ADORecordset
                            "Open"
                            (strcat "SELECT * FROM ["
                                    l
                                    "a"
                                    (itoa i)
                                    ":IV"
                                    (itoa i)
                                    "]"
                            ) ;_  strcat
                            ADOConnect
                            1
                            3
                            nil
                           ) ;_  vlax-invoke-method
                           (setq c (cons
                                    (car
                                     (apply
                                      (function mapcar)
                                      (cons
                                       'list
                                       (mapcar
                                        (function
                                         (lambda (a)
                                          (mapcar
                                           (function (lambda (b) (vlax-variant-value b))
                                           ) ;_  function
                                           a
                                          ) ;_  mapcar
                                         ) ;_  lambda
                                        ) ;_  function
                                        (vlax-safearray->list
                                         (vlax-variant-value
                                          (vlax-invoke-method
                                           ADORecordset
                                           "GetRows"
                                           65535
                                          ) ;_  vlax-invoke-method
                                         ) ;_  vlax-variant-value
                                        ) ;_  vlax-safearray->list
                                       ) ;_  mapcar
                                      ) ;_  cons
                                     ) ;_  apply
                                    ) ;_  car
                                    c
                                   ) ;_  cons
                                 i (1- i)
                           ) ;_  setq
                           (vlax-invoke-method ADORecordset "Close")
                          ) ;_  while
                          (if (equal c '((nil) (nil)))
                           (list l)
                           (cons l c)
                          ) ;_  if
                         ) ;_  lambda
               ) ;_  function
               (mapcar
                (function (lambda (x)
                           (if (= (substr x 1 1) "'")
                            (substr x 2 (- (strlen x) 2))
                            x
                           ) ;_  if
                          ) ;_  lambda
                ) ;_  function
                (rec-rem-dupl
                 (caddr
                  (mapcar
                   (function
                    (lambda (a) (mapcar (function vlax-variant-value) a))
                   ) ;_  function
                   (vlax-safearray->list
                    (vlax-variant-value
                     (vlax-invoke-method
                      (vlax-invoke-method ADOConnect "OpenSchema" 4)
                      "GetRows"
                      65535
                     ) ;_  vlax-invoke-method
                    ) ;_  vlax-variant-value
                   ) ;_  vlax-safearray->list
                  ) ;_  apply
                 ) ;_  caddr
                ) ;_  rec-rem-dupl
               ) ;_  mapcar
              ) ;_  mapcar
         ) ;_  setq
         (vlax-invoke-method ADOConnect "Close")
         (vlax-release-object ADORecordset)
         (vlax-release-object ADOConnect)
         (setq ADORecordset nil
               ADOConnect nil
         ) ;_  setq
         lst
  ) ;_  progn
  (progn
   (vl-catch-all-apply 'vlax-invoke-method (list ADOConnect "Close"))
   (vlax-release-object ADORecordset)
   (vlax-release-object ADOConnect)
   (setq ADORecordset nil
         ADOConnect nil
   ) ;_  setq
   nil
  ) ;_  progn
 ) ;_  if
) ;_  defun
(defun c:test (/ A B F L)
 ;;пример для экселя...
 ;; c запросом масштаба.
 (if
  (and (setq f (getfiled "Укажите файл с точками графика" "" "xls" 0))
       (setq b (ssget ":S:E" '((0 . "INSERT"))))
       (setq b (assoc 2 (entget (ssname b 0))))
  ) ;_  and
  (progn
   (setq s (mapcar '(lambda (x)
                     (if x
                      x
                      1
                     ) ;_  if
                    ) ;_  lambda
                   (list (getreal "\nВведите масштаб по Х [1]:  ")
                         (getreal "\nВведите масштаб по Y [1]:  ")
                   ) ;_  list
           ) ;_  mapcar
   ) ;_  setq
   (setq l (GET_xl f))
   (foreach x (mapcar 'cdr l)
    (if x
     (entmakex
      (append
       (list '(0 . "LWPOLYLINE")
             '(100 . "AcDbEntity")
             '(410 . "Model")
             '(100 . "AcDbPolyline")
             (cons 90 (length x))
       ) ;_  list
       (mapcar
        '(lambda (a)
          (setq a (list 10 (* (car s) (car a)) (* (cadr s) (cadr a))))
          (entmakex (list '(0 . "INSERT") b a))
          a
         ) ;_  lambda
        x
       ) ;_  mapcar
      ) ;_  append
     ) ;_  entmakex
    ) ;_  if
   ) ;_  foreach
   (princ)
  ) ;_  progn
 ) ;_  if
) ;_  defun
Елпанов Евгений вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 18:28
#39
Rus2007


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


После выбора файла эксель выдает
; ошибка: неверная строка режима ssget

Последний раз редактировалось Rus2007, 16.07.2008 в 18:34.
Rus2007 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.07.2008, 18:35
#40
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,500
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Rus2007,
Строчка
Код:
[Выделить все]
(setq b (ssget ":S:E" '((0 . "INSERT"))))
Должна быть записана так
Код:
[Выделить все]
(setq b (ssget "_:S:E" '((0 . "INSERT"))))
Добавь _ перед :S:E
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание графика в AutoCAD на основе txt или xls файла

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 256 07.08.2017 11:53
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Растр в AutoCad - внутрь файла. Как? dep AutoCAD 3 10.12.2007 16:38
Одна из целей: Создание экспертных систем на базе AutoCAD. Сергей Юрьевич Программирование 9 01.01.2005 15:17

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы