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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > перемещение полилиний по оси z на разные значения,нужна помощь в изменении файла lsp

перемещение полилиний по оси z на разные значения,нужна помощь в изменении файла lsp

Ответ
Поиск в этой теме
Непрочитано 16.11.2012, 10:31 #1
перемещение полилиний по оси z на разные значения,нужна помощь в изменении файла lsp
vitolkin
 
Регистрация: 16.11.2012
Сообщений: 2

Всем Здравствуйте! Кто может помочь/подсказать с изменением программы лиспа?
Попробую объяснить суть вопроса:есть куча полилиний в автокаде с координатой Z=0, так же есть сами координаты Z в текстовом файле,как эти координаты правильно скопировать в файл программы,чтобы потом просто поочередно выделять нужные полилинии,а они автомотически уже перемещались на значения z,которые в лиспе?
Примерный алгоритм:
запуск программы-команда "выбрать полилинию"-автоматическое перемещение по оси z на 1(с информационным сообщением о перемещении на 1 по z)
повтор команды "выбрать полилинию"-автоматическое перемещение по z на 2
повтор команды "выбрать полилинию"-автоматическое перемещение по z на 3 и так далее,пока не закончатся отметки Z
Есть следующая программа, но в ней приходится постоянно выбирать полилинию и самому задавать перемещение по Z, что делает процесс очень долгим...
Код:
[Выделить все]
 (defun C:PLZ ()
(and
  (setq pl (car(entsel "\nВыбери полилинию: ")))
  (eq "LWPOLYLINE" (cdr(assoc 0 (entget pl))))
  (progn
    (vl-load-com)
    (initget 1)
    (setq Z (getreal "\nВведи координату Z: "))
    (vla-put-elevation (vlax-ename->vla-object pl) Z)
    )
  )
)
Буду очень благодарен за помощь!

Последний раз редактировалось Кулик Алексей aka kpblc, 16.11.2012 в 10:59.
Просмотров: 2229
 
Непрочитано 16.11.2012, 12:03
#2
Дима_

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


Я могу подсказать - если Вы спросите что Вам нужно ПОДСКАЗАТЬ. Если под помочь подразумевается написать за Вас - то хотя-бы посмотрите, в подобных темах, как "правильно" излагать задачу.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 16.11.2012, 17:32
1 | #3
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 418


Код:
[Выделить все]
 
(defun C:PLZ (/ z i zi pl)
  (vl-load-com)
  (setq	z (list 100 200 300 400 500)
	i 0
  )
  (while (setq zi (nth i z))
    (if	(and (setq pl (car (entsel "\nВыбери полилинию: ")))
	     (eq "LWPOLYLINE" (cdr (assoc 0 (entget pl))))
	)
      (progn
	(vla-put-elevation (vlax-ename->vla-object pl) zi)
	(princ (strcat "z" (itoa i) "=" (rtos zi) "\n"))
	(setq i (1+ i))
      )
    )
  )
)
ытя вне форума  
 
Автор темы   Непрочитано 19.11.2012, 09:35
#4
vitolkin


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


ытя, спасибо Вам огромное! Именно то,что нужно!
vitolkin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > перемещение полилиний по оси z на разные значения,нужна помощь в изменении файла lsp

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

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