|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как нарисовать LWPOLYLINE в повенутой ПСК
Инженер-конструктор
МО
Регистрация: 03.07.2009
Сообщений: 19
|
||
Просмотров: 3384
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
210 группу забыл.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Не достаточно. Если речь идёт про текущую ПСК, то необходимо для каждой точки выполнить (trans <точка в МСК> 0 1) и результаты её выполнения присваивать группам 10. А если ПСК совсем абстрактная, то нужно еще и группу 210 преобразовывать функцией (trans <группа 210> 0 1 T)
Когда-то очень давно мы что-то такое сделали с Евгением Елпановым: Код:
Последний раз редактировалось Александр Ривилис, 28.09.2011 в 01:20. |
||||
![]() |
|
||||
Инженер-конструктор Регистрация: 03.07.2009
МО
Сообщений: 19
|
Наверное как-то так:
(entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 10 (trans '(0.0 0.0 0.0) 0 1)) (cons 10 (trans '(1000.0 0.0 0.0) 0 1)) (cons 10 (trans '(1000.0 100.0 0.0) 0 1)) (cons 10 (trans '(0.0 100.0 0.0) 0 1)))) Но парадокс: вращаю ПСК против часовой - полилиния вращается по часовой и наоборот? Также и с перемещением, к примеру: если ПСК (200.0 , 100.0), то первая точка полилинии (-200.0 , -100.0)? |
|||
![]() |
|
||||
Цитата:
Но лучше использовать готовый код из #3, так как он универсальнее. А я и не тороплю. ![]() ![]() |
||||
![]() |
|
||||
Инженер-конструктор Регистрация: 03.07.2009
МО
Сообщений: 19
|
Ну вот вроде разобрался, построение полилинии в плоскости XY, учтены углы поворота и координата Z:
(entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 38 (caddr (trans '(0 0 0) 1 (trans '(0. 0. 1.) 1 0 t)))) ;Уровень - координата Z (cons 10 (trans '(0.0 0.0 0.0) 1 (trans '(0.0 0.0 1.0) 1 0 t))) ; Перевод координат точки. (cons 10 (trans '(1000.0 0.0 0.0) 1 (trans '(0.0 0.0 1.0) 1 0 t))) ; Перевод координат точки. (cons 10 (trans '(1000.0 100.0 0.0) 1 (trans '(0.0 0.0 1.0) 1 0 t))) ; Перевод координат точки. (cons 10 (trans '(0.0 100.0 0.0) 1 (trans '(0.0 0.0 1.0) 1 0 t))) (cons 210 (trans '(0. 0. 1.) 1 0 t)) ;Перевод - вектора нормали );_ list );_ entmake Отдельное спасибо Александру Ривилис! Да 24 и 25 строку 2-а дня разгадывал! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отключить автоматическую настройку ПСК при начале черчния новой полилинии? | МишаИнженер | AutoCAD | 1 | 15.10.2010 08:04 |
Как удержать прежнее начало координат при смене ПСК, работая в одном ИЗОВИДЕ пространства модели | BM60 | AutoCAD | 7 | 17.08.2009 15:07 |
Игры (экзотические?) с ПСК | BM60 | AutoCAD | 4 | 06.04.2009 08:46 |
ПСК на месте курсора мыши - как получилось? | BM60 | AutoCAD | 2 | 03.03.2008 14:23 |
вопрос по ПСК | Jоhnny | AutoCAD | 4 | 04.08.2007 21:39 |