Лисп. Работа с кучей файлов lsp
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп. Работа с кучей файлов lsp

Лисп. Работа с кучей файлов lsp

Закрытая тема
Поиск в этой теме
Непрочитано 19.06.2009, 11:32 #1
Лисп. Работа с кучей файлов lsp
vovkam
 
Регистрация: 11.06.2009
Сообщений: 29

Имеется куча однотипных файлов , отличающихся друг от друга координатами точек. Есть один рабочий фаил, в котором добавлены пару команд.
Подскажите, пожалуйста, как мне их перебрать, может программкой какой-то?
Просмотров: 1799
 
Непрочитано 19.06.2009, 12:15
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


А что должно произойти в результате переборки?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 19.06.2009, 13:00
#3
vovkam


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


Привожу пример:
рабочий код
Код:
[Выделить все]
;  - имя файла - (load "C:\\DataBase\\AutoCad\\ЧертежиРазвертокLSP\\Интерполяция_LSP\\086798.lsp")

; построение развертки конуса:

(command "_rectang" "0,0" "7821,2497" " ")
(setq name0 (entlast))
(command "_point" "_none" "15,48")
(command "_arc" "_none" "15,48" "_C" "3910.5,201720" "_none" "_L" "7791")
(command "_divide" (entlast) 38)
(command "_point" "_none" "7806,48")
(setq le1 (entget (setq name1 (entnext))))
(setq name2 name1)
(while (/= (cdr (assoc 0 le1)) "POINT")
  (setq name1 name2)
  (setq le1 (entget (setq name2 (entnext name1))))
)   ; конец while

(command "_pline" (cdr (assoc 10 le1)))     ;первая точка

(setq i 1)

(setq name1 name2)
(setq le2 (entget (setq name2 (entnext name1))))
(entdel name1)

(while (< i 39)
  (if (= (cdr (assoc 0 le2)) "POINT")
    (progn
      (command (cdr (assoc 10 le2)))
      (entdel name1)
      (setq i (1+ i))
    )   ; конец progn
  ) ; конец if
  (setq name1 name2)
  (setq le2 (entget (setq name2 (entnext name1))))
)   ; конец while

(setq le1 (entget name1))
(entdel name1)
(command)
(command)

(command "_point" "_none" "62.5,2487")
(command "_arc" "_none" "62.5,2487" "_none" "_C" "3910.5,201720" "_none" "_L" "7696")
(command "_divide" (entlast) 38)
(command "_point" "7758.5,2487")			;"7711,2487"
(setq le1 (entget (setq name1 (entlast))))
(setq le1 (entget (setq name1 (entnext))))
(setq name2 name1)
(while (/= (cdr (assoc 0 le1)) "POINT")
  (setq le1 (entget (setq name1 name2)))
  (setq le1 (entget (setq name2 (entnext name1))))
)   ; конец while

(command "_pline" (cdr (assoc 10 le1)))     ;первая точка
(setq name1 name2)
(setq le1 (entget name1))
(entdel name1)

(setq i 1)

(setq le2 (entget (setq name2 (entnext name1))))
(while (< i 39)
  (if (= (cdr (assoc 0 le2)) "POINT")
    (progn
      (command (cdr (assoc 10 le2)))
      (entdel name1)
      (setq i (1+ i))
    )   ; конец progn
  ) ; конец if
  (setq name1 name2)
  (setq le2 (entget (setq name2 (entnext name1))))
)   ; конец while

(setq le1 (entget name1))
(entdel name1)
(command)
(command)

(command "_line" "_none" "15,48" "_none" "62.5,2487" "")

(command "_line" "_none" "7806,48" "_none" "7758.5,2487" "")

(entlast)
(setq name1 (entnext name0))
(cdr (assoc 0 (setq le1 (entget name1))))
(setq name2 (entnext name1))
(cdr (assoc 0 (setq le2 (entget name2))))
(setq name3 (entnext name2))
(cdr (assoc 0 (setq le3 (entget name3))))
(setq name4 (entnext name3))
(cdr (assoc 0 (setq le4 (entget name4))))
(command "_pedit" name1 "_J" name2 name3 name4 "" "")

(command "_zoom" "_all")

(command "_text" "_S" "" "3160.5,1148.5" "200" "" "086798" "" "")

(command "_save" "C:\\DataBase\\AutoCad\\ЧертежиРазвертокLSP\\Интерполяция_DWG\\086798.dwg")
(command "_Y" " ")
не рабочий код:
Код:
[Выделить все]
;  - имя файла - (load "C:\\DataBase\\AutoCad\\ЧертежиРазвертокLSP\\Интерполяция_LSP\\086800.lsp")

; построение развертки конуса:

(command "_rectang" "0,0" "12590,2390" " ")
(setq name0 (entlast))
(command "_point" "15,183")
(command "_arc" "_non" "15,183" "_C" "6295,114313" "L" "_non" "12560")
(command "_divide" (entlast) 62)
(command "_point" "12575,183")
(setq le1 (entget (setq name1 (entnext))))
(setq name2 name1)
(while (/= (cdr (assoc 0 le1)) "POINT")
  (setq name1 name2)
  (setq le1 (entget (setq name2 (entnext name1))))
)   ; конец while

(command "_pline" (cdr (assoc 10 le1)))     ;первая точка
(entdel name1)

(setq i 1)

(setq name1 name2)
(setq le2 (entget (setq name2 (entnext name1))))
(while (< i 63)
  (if (= (cdr (assoc 0 le2)) "POINT")
    (progn
      (command (cdr (assoc 10 le2)))
      (entdel name1)
      (setq i (1+ i))
    )   ; конец progn
  ) ; конец if
  (setq name1 name2)
  (setq le2 (entget (setq name2 (entnext name1))))
)   ; конец while

(setq le1 (entget name1))
(entdel name1)
(command)
(command)

(command "_point" "136,2380")
(command "_arc" "_non" "136,2380" "_C" "6295,114314" "L" "_non" "12318")
(command "_divide" (entlast) 62)
(command "_point" "12333,2380")
(setq le1 (entget (setq name1 (entlast))))
(setq le1 (entget (setq name1 (entnext))))
(setq name2 name1)
(while (/= (cdr (assoc 0 le1)) "POINT")
  (setq le1 (entget (setq name1 name2)))
  (setq le1 (entget (setq name2 (entnext name1))))
)   ; конец while

(command "_pline" (cdr (assoc 10 le1)))     ;первая точка
(setq name1 name2)
(setq le1 (entget name1))
(entdel name1)

(setq i 1)

(setq le2 (entget (setq name2 (entnext name1))))
(while (< i 63)
  (if (= (cdr (assoc 0 le2)) "POINT")
    (progn
      (command (cdr (assoc 10 le2)))
      (entdel name1)
      (setq i (1+ i))
    )   ; конец progn
  ) ; конец if
  (setq name1 name2)
  (setq le2 (entget (setq name2 (entnext name1))))
)   ; конец while

(setq le1 (entget name1))
(entdel name1)
(command)
(command)

(command "_line" "15,183" "136,2380" "")

(command "_line" "12575,183" "12454,2380" "")

(entlast)
(setq name1 (entnext name0))
(cdr (assoc 0 (setq le1 (entget name1))))
(setq name2 (entnext name1))
(cdr (assoc 0 (setq le2 (entget name2))))
(setq name3 (entnext name2))
(cdr (assoc 0 (setq le3 (entget name3))))
(setq name4 (entnext name3))
(cdr (assoc 0 (setq le4 (entget name4))))
(command "_pedit" name1 "J" name2 name3 name4 "" "")

(command "_zoom" "_all")

(command "_text" "S" "" "5545,1095" "200" "" "086800" "" "")

(command "_save" "C:\\DataBase\\AutoCad\\ЧертежиРазвертокLSP\\Интерполяция_DWG\\086800.dwg")
(command "_Y" "")
может раньше и работал, но в другом автокаде (у меня сейчас 2008й )
vovkam вне форума  
 
Непрочитано 19.06.2009, 13:24
#4
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Код:
[Выделить все]
 
(command "_arc" "_non" "15,183" "_C" "6295,114313" "_L" "_non" "12560")
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 19.06.2009, 13:31
#5
vovkam


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


И не только это. Там еще в одном месте пропара с координатами.

А сложно этот код переделать в общий для всех?
vovkam вне форума  
 
Непрочитано 20.06.2009, 00:59
#6
Кулик Алексей aka kpblc
Moderator

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


vovkam, ты лично меня уже начинаешь напрягать
http://forum.dwg.ru/showthread.php?p=413289#post413289 + http://forum.dwg.ru/showthread.php?p=413080&#post413080 + http://forum.dwg.ru/showthread.php?p=411982&#post411982 и определяйся какая тема тебе более нужна. На данный момент закрываю все.
С предложениями - прошу в личку.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп. Работа с кучей файлов lsp



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен лисп: открытие всех файлов в данной директории Torino LISP 30 28.11.2020 15:51
DwgRuLispLib: Команда. Загрузка lisp файлов из указанной папки VVA Библиотека функций 7 15.02.2018 10:10
Как настроить автоматическую подгрузку Lsp файлов? KinSokol Программирование 18 06.12.2009 20:52