Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

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

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

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

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

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

__________________
Блог

Последний раз редактировалось Red Nova, 17.07.2008 в 16:25.
Просмотров: 78614
 
Непрочитано 16.07.2008, 18:35
#41
Елпанов Евгений

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


Цитата:
Сообщение от Rus2007 Посмотреть сообщение
После команды: после выбора файла эксель выдает
; ошибка: неверная строка режима ssget
попробуй заменить строку на
Код:
[Выделить все]
(setq b (ssget ":S" '((0 . "INSERT"))))
а вообще, какой у тебя автокад? Случаем не 2000 или 2002?
Елпанов Евгений вне форума  
 
Непрочитано 16.07.2008, 18:38
#42
Елпанов Евгений

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


VVA,
Точно, это проблемы локализации, точнее отсутствия в моем коде...
Можно изменить строку на:
Код:
[Выделить все]
(setq b (ssget "_+.:S" '((0 . "INSERT"))))
ps. прошу извинить, я не особенно парился над программой..
Елпанов Евгений вне форума  
 
Непрочитано 16.07.2008, 18:39
#43
VVA

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


Елпанов Евгений, В локализованных версиях Автокада в режимах ssget нужно добавлять _.
(ssget "_:S:E:L") и. т.п. модификации работать будут

*** Добавлено

Кстати насчет плюса я пока не въехал в его нужность.
Вариант (ssget "_:S:E:L") работает и без него
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.07.2008, 18:44
#44
Rus2007


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


Цитата:
а вообще, какой у тебя автокад? Случаем не 2000 или 2002?
у меня 2004
Rus2007 вне форума  
 
Непрочитано 16.07.2008, 18:51
#45
Rus2007


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


Теперь появляется сообщение: выберите обьекты.
Ничего не понимаю ???
Rus2007 вне форума  
 
Автор темы   Непрочитано 16.07.2008, 19:43
#46
Red Nova

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


Елпанов Евгений,
Пока запустить не получается.
Я пробовал так
Цитата:
Command: (GET_xl)
; error: too few arguments
Еще хотел уточнить кое что. Мне в конечном итоге нужен лисп как второй с поста 4, только для экселя. Надеюсь это возможно.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 16.07.2008, 19:46
#47
Елпанов Евгений

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


Цитата:
Сообщение от Rus2007 Посмотреть сообщение
Теперь появляется сообщение: выберите обьекты.
Ничего не понимаю ???
Подразумевается, что будет указан блок, копии которого нужно будет вставить во все вершины...
Елпанов Евгений вне форума  
 
Непрочитано 17.07.2008, 12:18
#48
Rus2007


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


ошибка: no function definition: VLAX-GET-OR-CREATE-OBJECT
Rus2007 вне форума  
 
Непрочитано 17.07.2008, 12:22
#49
Елпанов Евгений

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


Код:
[Выделить все]
(defun GET_xl (tbl / ADOCONNECT ADORECORDSET LST)
              ;|
     GET_XL.LSP
     created 21-04-2006
     last edit 19-02-2007
     Created by Elpanov Evgeny
     
     [email protected]
     [email protected]

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 запросом масштаба и автоматическим созданием блоков отметок.
 (vl-load-com)
 (if (setq f (getfiled "Укажите файл с точками графика" "" "xls" 0))
  (progn
   (if (null (tblobjname "BLOCK" "Отметка графика"))
    (mapcar 'entmakex
            '(((0 . "BLOCK")
               (100 . "AcDbEntity")
               (67 . 0)
               (8 . "0")
               (100 . "AcDbBlockBegin")
               (70 . 0)
               (10 0.0 0.0 0.0)
               (2 . "Отметка графика")
               (1 . "")
              )
              ((0 . "HATCH")
               (100 . "AcDbEntity")
               (410 . "Model")
               (62 . 0)
               (100 . "AcDbHatch")
               (10 0.0 0.0 0.0)
               (210 0.0 0.0 1.0)
               (2 . "SOLID")
               (70 . 1)
               (71 . 0)
               (91 . 1)
               (92 . 1)
               (93 . 1)
               (72 . 2)
               (10 0.0 0.0 0.0)
               (40 . 0.5)
               (50 . 0.0)
               (51 . 6.28319)
               (73 . 1)
               (97 . 0)
               (75 . 0)
               (76 . 1)
               (98 . 1)
               (10 0.0 0.0 0.0)
               (451 . 0)
               (460 . 0.0)
               (461 . 0.0)
               (452 . 1)
               (462 . 1.0)
               (453 . 2)
               (463 . 0.0)
               (463 . 1.0)
               (470 . "LINEAR")
              )
              ((0 . "ENDBLK"))
             )
    ) ;_  progn
   ) ;_  if
   (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") '(2 . "Отметка графика") a))
          a
         ) ;_  lambda
        x
       ) ;_  mapcar
      ) ;_  append
     ) ;_  entmakex
    ) ;_  if
   ) ;_  foreach
   (princ)
  ) ;_  progn
 ) ;_  if
) ;_  defun
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 17.07.2008, 12:41
#50
Red Nova

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


Елпанов Евгений, Я по прежнему не могу запустить. Может я не верной командой пытаюсь?
Цитата:
Command: (GET_xl)
; error: too few arguments
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.07.2008, 12:44
#51
Елпанов Евгений

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Елпанов Евгений, Я по прежнему не могу запустить. Может я не верной командой пытаюсь?
действительно, не верно запускаете...
Запускайте, через командную строку автокада, командой "test" без кавычек.
Елпанов Евгений вне форума  
 
Непрочитано 17.07.2008, 12:48
#52
Rus2007


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


Команда для запуска test.
Rus2007 вне форума  
 
Непрочитано 17.07.2008, 12:51
#53
Rus2007


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


Елпанов Евгений большое спасибо! Все работает.
Rus2007 вне форума  
 
Автор темы   Непрочитано 17.07.2008, 14:04
#54
Red Nova

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


Елпанов Евгений,
Спасибо, заработало. А можно добавить версию без запроса масштабов? Чтобы чертила без лишних вопросов.
И еще, может назвать команду как-то, ну типа graph-xls?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.07.2008, 14:19
#55
Елпанов Евгений

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Елпанов Евгений,
Спасибо, заработало. А можно добавить версию без запроса масштабов? Чтобы чертила без лишних вопросов.
И еще, может назвать команду как-то, ну типа graph-xls?
собрал, здесь две программы
gx - рисует графики без масштаба
gxm - рисует графики с масштабом
Код:
[Выделить все]
(defun GET_xl (tbl / ADOCONNECT ADORECORDSET LST)
              ;|
     GET_XL.LSP
     created 21-04-2006
     last edit 19-02-2007
     Created by Elpanov Evgeny
     
     [email protected]
     [email protected]

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:gx (/ A B F L)
 ;;пример для экселя...
 ;; c автоматическим созданием блоков отметок.
 (vl-load-com)
 (if (setq f (getfiled "Укажите файл с точками графика" "" "xls" 0))
  (progn
   (if (null (tblobjname "BLOCK" "Отметка графика"))
    (mapcar 'entmakex
            '(((0 . "BLOCK")
               (100 . "AcDbEntity")
               (67 . 0)
               (8 . "0")
               (100 . "AcDbBlockBegin")
               (70 . 0)
               (10 0.0 0.0 0.0)
               (2 . "Отметка графика")
               (1 . "")
              )
              ((0 . "HATCH")
               (100 . "AcDbEntity")
               (410 . "Model")
               (62 . 0)
               (100 . "AcDbHatch")
               (10 0.0 0.0 0.0)
               (210 0.0 0.0 1.0)
               (2 . "SOLID")
               (70 . 1)
               (71 . 0)
               (91 . 1)
               (92 . 1)
               (93 . 1)
               (72 . 2)
               (10 0.0 0.0 0.0)
               (40 . 0.5)
               (50 . 0.0)
               (51 . 6.28319)
               (73 . 1)
               (97 . 0)
               (75 . 0)
               (76 . 1)
               (98 . 1)
               (10 0.0 0.0 0.0)
               (451 . 0)
               (460 . 0.0)
               (461 . 0.0)
               (452 . 1)
               (462 . 1.0)
               (453 . 2)
               (463 . 0.0)
               (463 . 1.0)
               (470 . "LINEAR")
              )
              ((0 . "ENDBLK"))
             )
    ) ;_  progn
   ) ;_  if
   (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") '(2 . "Отметка графика") a))
          a
         ) ;_  lambda
        x
       ) ;_  mapcar
      ) ;_  append
     ) ;_  entmakex
    ) ;_  if
   ) ;_  foreach
   (princ)
  ) ;_  progn
 ) ;_  if
)
(defun c:gxm (/ A B F L)
 ;;пример для экселя...
 ;; c запросом масштаба и автоматическим созданием блоков отметок.
 (vl-load-com)
 (if (setq f (getfiled "Укажите файл с точками графика" "" "xls" 0))
  (progn
   (if (null (tblobjname "BLOCK" "Отметка графика"))
    (mapcar 'entmakex
            '(((0 . "BLOCK")
               (100 . "AcDbEntity")
               (67 . 0)
               (8 . "0")
               (100 . "AcDbBlockBegin")
               (70 . 0)
               (10 0.0 0.0 0.0)
               (2 . "Отметка графика")
               (1 . "")
              )
              ((0 . "HATCH")
               (100 . "AcDbEntity")
               (410 . "Model")
               (62 . 0)
               (100 . "AcDbHatch")
               (10 0.0 0.0 0.0)
               (210 0.0 0.0 1.0)
               (2 . "SOLID")
               (70 . 1)
               (71 . 0)
               (91 . 1)
               (92 . 1)
               (93 . 1)
               (72 . 2)
               (10 0.0 0.0 0.0)
               (40 . 0.5)
               (50 . 0.0)
               (51 . 6.28319)
               (73 . 1)
               (97 . 0)
               (75 . 0)
               (76 . 1)
               (98 . 1)
               (10 0.0 0.0 0.0)
               (451 . 0)
               (460 . 0.0)
               (461 . 0.0)
               (452 . 1)
               (462 . 1.0)
               (453 . 2)
               (463 . 0.0)
               (463 . 1.0)
               (470 . "LINEAR")
              )
              ((0 . "ENDBLK"))
             )
    ) ;_  progn
   ) ;_  if
   (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") '(2 . "Отметка графика") a))
          a
         ) ;_  lambda
        x
       ) ;_  mapcar
      ) ;_  append
     ) ;_  entmakex
    ) ;_  if
   ) ;_  foreach
   (princ)
  ) ;_  progn
 ) ;_  if
)
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 17.07.2008, 15:34
#56
Red Nova

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


Большое спасибо за помощь.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.07.2008, 16:21
#57
Rus2007


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


А как отключить автоматическое создание блоков отметок, а создать шкалу по Х, Y автоматом?
Rus2007 вне форума  
 
Непрочитано 17.07.2008, 16:26
#58
VVA

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


Цитата:
А как отключить автоматическое создание блоков отметок
Закоментировать фрагмент лиспа
Цитата:
, а создать шкалу по Х, Y автоматом?
Дописать фрагмент кода на лиспе
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.07.2008, 16:32
#59
Елпанов Евгений

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


Цитата:
Сообщение от Rus2007 Посмотреть сообщение
А как отключить автоматическое создание блоков отметок, а создать шкалу по Х, Y автоматом?
Алгоритм обычный, все как везде, сначала надо бежать в магазин за пивом, т.е. не пивом, а книгой Николая Полещука. Хотя, пиво в любом случае не будет лишним!
Потом читаешь до появления чувства просветления.
Если не хватает пива или книжки, бежишь еще раз.
Потом начинаешь ковырять программу, регулярно напрягая весь форум, своими вопросами...
Елпанов Евгений вне форума  
 
Непрочитано 17.07.2008, 16:33
#60
Rus2007


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


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

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


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