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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вопрос о типах линий

Вопрос о типах линий

Ответ
Поиск в этой теме
Непрочитано 11.01.2011, 16:47 #1
Вопрос о типах линий
Zaghim
 
Регистрация: 01.07.2010
Сообщений: 521

Вопрос такой. На чертеже есть 3 типа полилиний. LWPOLYLINE, 3DPOLYLINE и POLYLINE. При получении свойств ssget'ом, получаю всегда в списке с кодом 0 - просто POLYLINE, не важно на какую линию тыкаю. Что за ерунда, как с этим бороться?
Просмотров: 3858
 
Непрочитано 11.01.2011, 18:32
1 | #2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Ерунду пишешь. LWPOLYLINE и POLYLINE - разные примитивы и код 0 у них разный. А вот 2D и 3D полилинии по коду 0 различить нельзя, но можно по коду 70 - посмотри DXF Reference->Entity Section->POLYLINE
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.01.2011, 10:01
#3
Zaghim


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


Не получается что-то... 70 код, как его вытащить?
Zaghim вне форума  
 
Непрочитано 12.01.2011, 12:18
1 | #4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
как его вытащить?
Так же, как ты вытаскиваешь код 0.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.01.2011, 12:55
#5
Zaghim


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


Код:
[Выделить все]
(setq ov (entsel "Тыкай на линию или <Enter>: "))
  (setq ov1 (ssget "l"))
  (setq ob (entget (ssname ov1 0)))
  (setq lob (cdr (assoc 0 ob)))
  (setq lob1 (cdr (assoc 70 ob)))
В lob1 почему то всегда nil.
Zaghim вне форума  
 
Непрочитано 12.01.2011, 13:06
1 | #6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Код:
[Выделить все]
Command: _3dpoly
Specify start point of polyline:
Specify endpoint of line or [Undo]:
Specify endpoint of line or [Undo]:
Specify endpoint of line or [Close/Undo]:
Specify endpoint of line or [Close/Undo]:
Specify endpoint of line or [Close/Undo]:

Command: (cdr (assoc 70 (entget (car (entsel)))))
Select object: 8
Код:
[Выделить все]
Command: _pline
Specify start point:
Current line-width is 0.0000
Specify next point or [Arc/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Command: (cdr (assoc 70 (entget (car (entsel)))))
Select object: 0
А это бред сивой кобылы:
Код:
[Выделить все]
(setq ov (entsel "Тыкай на линию или <Enter>: "))
(setq ov1 (ssget "l"))
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.01.2011, 14:18
#7
Zaghim


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


Почему так критично?)) В общем сделал... у 3дполилинии по коду 70 сидит 8, а у полилинии сидит 128. Спасибо!!! Тему можно закрывать!
Zaghim вне форума  
 
Непрочитано 12.01.2011, 14:30
1 | #8
Лиспер


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


Цитата:
Сообщение от Zaghim Посмотреть сообщение
у полилинии сидит 128
Необязательно.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 12.01.2011, 14:30
1 | #9
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
Почему так критично?))
Это критично?
Цитата:
Сообщение от Zaghim Посмотреть сообщение
у 3дполилинии по коду 70 сидит 8
Зачет не сдан:
Код:
[Выделить все]
Command: _3dpoly
Specify start point of polyline:
Specify endpoint of line or [Undo]:
Specify endpoint of line or [Undo]:
Specify endpoint of line or [Close/Undo]:
Specify endpoint of line or [Close/Undo]: _c
Command: (cdr (assoc 70 (entget (car (entsel)))))
Select object: 9
Цитата:
Сообщение от Zaghim Посмотреть сообщение
а у полилинии сидит 128
Зачет не сдан. В моем примере был 0, а может быть еще куча разных значений:
Цитата:
POLYLINE
70 Polyline flag (bit-coded; default = 0):

1 = This is a closed polyline (or a polygon mesh closed in the M direction)

2 = Curve-fit vertices have been added

4 = Spline-fit vertices have been added

8 = This is a 3D polyline

16 = This is a 3D polygon mesh

32 = The polygon mesh is closed in the N direction

64 = The polyline is a polyface mesh

128 = The linetype pattern is generated continuously around the vertices of this polyline

LWPOLYLINE
70 Polyline flag (bit-coded); default is 0:

1 = Closed; 128 = Plinegen
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.01.2011, 14:39
#10
Zaghim


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


Я конечно извиняюсь, но сами себе противоречите! Сами написали "8 = This is a 3D polyline"... почему 9?
Zaghim вне форума  
 
Непрочитано 12.01.2011, 14:47
1 | #11
Лиспер


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


Потому что Closed. Советую внимательно просмотреть DXF Reference.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 12.01.2011, 14:51
#12
Zaghim


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


Не кидайте помидорами, но я не знаю где и как((
А какие еще варианты могут быть 3дполлиний?
Zaghim вне форума  
 
Непрочитано 12.01.2011, 15:56
1 | #13
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
А какие еще варианты могут быть 3дполлиний?
Какая тебе разница? Проверяешь, что 0-ой код = "POLYLINE" и код 70 содержит 8, т.е. (/= (logand code 8) 0)
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.01.2011, 16:05
#14
Zaghim


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


Ок, я понял. Спасибо за помощь!!!!!!!!!
Zaghim вне форума  
 
Непрочитано 12.01.2011, 18:14
1 | #15
Disney

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


Я однажды тоже разбирался где LW, где 2D, а где 3D Poyline
Код:
[Выделить все]
(vl-load-com)
(substr
  (vla-get-ObjectName
    (vlax-ename->vla-Object
      (car
	(entsel)
      )
    )
  )
  5
)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вопрос о типах линий



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аннотивность типов линий ArchitectV AutoCAD 16 02.11.2017 18:06
Вопрос о масштабе тип линий..... Jkmuf AutoCAD 21 06.06.2011 09:14
Вопрос о расчете треугольной фермы Wiaczeslaw Конструкции зданий и сооружений 5 01.05.2010 21:25
Вопрос по нормативам и техрешению к уважаемым ОВшникам tanger Инженерные сети 4 01.02.2010 13:24
Крепление раковины - вопрос к строителям Pilot Прочее. Архитектура и строительство 21 06.12.2004 10:35