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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен Lisp для построения 3-х мерных линии с уклоном

Нужен Lisp для построения 3-х мерных линии с уклоном

Ответ
Поиск в этой теме
Непрочитано 27.04.2016, 14:00
Нужен Lisp для построения 3-х мерных линии с уклоном
800x600
 
Регистрация: 19.03.2008
Сообщений: 30

Нужен лисп который работал бы следующим образом:
Включаем вид сверху и чертим (в плане) серию отрезков/полилиний, предварительно указав уклон (в промиллях). Отрезки/полилинии должны получится трехмерные, т.е. иметь уклон по оси Z

Такой лисп я нашел в интернете, но он не работает. Пишет "Неверная точка. ; ошибка: Функция прервана.". (у меня ACAD 2011x64)
Ниже привожу код. Прошу подсказать где тут ошибка. Или может у кого, то есть альтернативный вариант


уклон сохраняется в глобальной переменной *RUNA_DDLSLOPE*, если задаете уклон с + то следущая точка будет выше предыдущей

Код:
[Выделить все]
;;;Построение линии по начальной точке и уклону заданому в промилях
(defun c:ddl (/ END_ELEV END_POINT SLOPE ST_ELEV ST_POINT)
;|
; Global variables: (*RUNA_DDLSLOPE*)
|;
  (if (not *runa_ddlslope*) (setq *runa_ddlslope* 5))
(setq slope (GETREAL
          (STRCAT "Specify slope in promille or <"
             (rtos *runa_ddlslope* 2) " ?>: ")))
  (if (null slope)
    (setq slope *runa_ddlslope*)
    (setq *runa_ddlslope* slope))
  (setq st_point (getpoint "DDL Specify first point: "))
  (if (null st_point)
    (setq st_point (GETVAR "LASTPOINT")))
  (setq st_elev (last st_point))
  (setq st_elev (GETREAL
          (STRCAT "\nStart elevation <"
             (rtos st_elev 2) ">: ")))
  (if (null st_elev)
    (setq st_elev (last st_point)))
  (setq end_point (getpoint st_point "Specify end point of line: "))
  (if (null end_point)
    (princ "Cannot build a zero length line.")
    (progn
      (setq end_elev
        (+ st_elev
      (* slope 0.001
      (setq dist_in_plane
      (distance
      (cdr (reverse st_point))
      (cdr (reverse end_point)))))))
      (command "_.line"
          ".xy"
          "none"
          st_point
          st_elev
          ".xy"
          "none"
          end_point
          end_elev
          "")
      (princ (STRCAT "\nEnd elevation: "
           (rtos end_elev 2)
           "   Distance in plane: "
           (rtos dist_in_plane 2)))
      );progn
    );if
  (princ)
); end defun
Просмотров: 5180
 
Непрочитано 29.04.2016, 17:31
#21
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


800x600, у Вас чудно получается. В чем проблема тогда.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Автор темы   Непрочитано 29.04.2016, 18:40
#22
800x600


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


Цитата:
Сообщение от nolte Посмотреть сообщение
800x600, у Вас чудно получается. В чем проблема тогда.
проблем нет, я очень доволен результатом. Большая благодарность всем кто помогал и подсказывал
800x600 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен Lisp для построения 3-х мерных линии с уклоном

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен LISP для суммы длин отрезков линни ilka_t LISP 219 10.09.2019 10:22
Нужен LISP для разрыва линий в точках пересечений ilka_t LISP 18 15.03.2013 16:35
Нужен LISP для заливки отверстий ilka_t AutoCAD 20 24.03.2004 16:06
ОЧЕНЬ НУЖЕН LISP ilka_t LISP 5 27.02.2004 17:13
Нужен стиль линии AutoCAD 2 21.01.2004 13:18