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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > как нарисовать линии, используя координаты из матрицы?

как нарисовать линии, используя координаты из матрицы?

Ответ
Поиск в этой теме
Непрочитано 18.11.2012, 21:26 #1
как нарисовать линии, используя координаты из матрицы?
amadey18
 
студент 5 курса
 
Харьков\Украина
Регистрация: 18.11.2012
Сообщений: 8

Нужно нарисовать линии, используя координаты из матрицы.
Код:
[Выделить все]
 (defun prog()

  ;выбор точек, создание матрицы
  (setq pt0 (getpoint "choose first point: "))
  (setq pt1 (getpoint "choose second point: "))
  (setq le3 (list (list pt0 pt1)))
  (setq pt0 (getpoint "choose first point: "))
  (setq pt1 (getpoint "choose second point: "))
  (setq le3 (list le3 (list pt0 pt1)))

;создание линий соединения
  (entmake le3 (list
	       (cons 0 "LINE")
	       (cons 100 "AcDbEntity")
	       (cons 100 "AcDbline")
	       (cons 8 "first_layer")
	       (cons 10 pt0)
	       (cons 11 pt1)))


;выводит choose first point: choose second point: choose first point: choose second 
point: ; error: too many arguments
Просмотров: 4063
 
Непрочитано 18.11.2012, 22:13
#2
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
из матрицы
Нео, залогинтесь!
zamtmn вне форума  
 
Автор темы   Непрочитано 18.11.2012, 22:25
#3
amadey18

студент 5 курса
 
Регистрация: 18.11.2012
Харьков\Украина
Сообщений: 8
Отправить сообщение для amadey18 с помощью Skype™


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Нео, залогинтесь!
из списка
((x y z) - первая линия
(x y z) - вторая линия
(x y z)) - 3я линия
amadey18 вне форума  
 
Непрочитано 18.11.2012, 22:40
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от amadey18 Посмотреть сообщение
а можно такую же функцию, только в обратном порядке? нужно из матрицы координат нарисовать линии.

Код:

[Выделить все]
view sourceprint?01**** ;выбор точек, создание матрицы02(setq pt0 (getpoint "choose first point: "))03**(setq pt1 (getpoint "choose second point: "))04**(setq le3 (list (list pt0 pt1)))05**(setq pt0 (getpoint "choose first point: "))06**(setq pt1 (getpoint "choose second point: "))07**(setq le3 (list le3 (list pt0 pt1)))08*09choose first point: choose second point: choose first point: choose second 10point: ((((-164.036 545.71 0.0) (-40.7754 306.214 0.0))) ((116.724 778.364 0.0)11(205.746 610.716 0.0)))

например дана матрица(как в коде), нужно по координатам нарисовать линии.
(-164.036 545.71 0.0) (-40.7754 306.214 0.0) - первая линия
(116.724 778.364 0.0) (205.746 610.716 0.0) - вторая линия
Что за чушь вы принесли?

Код:
[Выделить все]
 
(setq le3 '())

(while (and
	 (setq pt0 (getpoint "\nChoose first point: "))
	 (setq pt1 (getpoint pt0 "\nChoose second point: "))
       )
  (setq le3 (append le3 (list (list pt0 pt1))))
)


(foreach % le3
  (entmake
    (list (cons 0 "LINE") (cons 10 (car %)) (cons 11 (cadr %)))
  )
)

(foreach %
	   '(((-164.036 545.71 0.0) (-40.7754 306.214 0.0))
	     ((116.724 778.364 0.0) (205.746 610.716 0.0))
	    )
  (entmake
    (list (cons 0 "LINE") (cons 10 (car %)) (cons 11 (cadr %)))
  )
)
gomer вне форума  
 
Автор темы   Непрочитано 18.11.2012, 23:42
#5
amadey18

студент 5 курса
 
Регистрация: 18.11.2012
Харьков\Украина
Сообщений: 8
Отправить сообщение для amadey18 с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
Что за чушь вы принесли?

Код:
[Выделить все]
 
(setq le3 '())

(while (and
	 (setq pt0 (getpoint "\nChoose first point: "))
	 (setq pt1 (getpoint pt0 "\nChoose second point: "))
       )
  (setq le3 (append le3 (list (list pt0 pt1))))
)


(foreach % le3
  (entmake
    (list (cons 0 "LINE") (cons 10 (car %)) (cons 11 (cadr %)))
  )
)

(foreach %
	   '(((-164.036 545.71 0.0) (-40.7754 306.214 0.0))
	     ((116.724 778.364 0.0) (205.746 610.716 0.0))
	    )
  (entmake
    (list (cons 0 "LINE") (cons 10 (car %)) (cons 11 (cadr %)))
  )
)
Извините, я в ЛИСПе новичок, но и за это спасибо. Но еще, после выбора точек линии не отображаются. Слой и настройки линий выбрал, все равно нет.
amadey18 вне форума  
 
Непрочитано 19.11.2012, 01:04
#6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от amadey18 Посмотреть сообщение
я в ЛИСПе новичок
новичек - звание предполагающее хотя б элементраные знания, я и не старался сделать так, чтоб линии сразу рисовались
по сути мой код разделен на 3 части, 1 - создание ПРАВИЛЬНОЙ матрицы, а не то что у вас получалось; 2 - рисование по матрице, то, что вы попросили во второй раз; 3 - наглядная демонстрация рисования по вашей, но исправленной матрице. Из чего можно было бы элементарно создать например такой код:
Код:
[Выделить все]
 (while (and
	 (setq pt0 (getpoint "\nChoose first point: "))
	 (setq pt1 (getpoint pt0 "\nChoose second point: "))
       )
 (entmake
    (list (cons 0 "LINE") (cons 10 pt0) (cons 11 pt1))
  )
  (setq le3 (append le3 (list (list pt0 pt1))))
)
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > как нарисовать линии, используя координаты из матрицы?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
Несплошные линии, X-refы и... задача Vova AutoCAD 6 20.04.2018 16:14
Как сгладить 2 линии. Или как сгладить только часть линии. Димас AutoCAD 3 14.03.2006 08:28
Загрузка типа линии из макроса Кулик Алексей aka kpblc Программирование 4 24.01.2005 14:57
Как нарисовать вертикальные линии в мультилинии Snow AutoCAD 1 26.09.2003 12:43