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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Можно ли объект, состояший из полилиний как-нибудь переделать в такой же,только состоящий из точек?

Можно ли объект, состояший из полилиний как-нибудь переделать в такой же,только состоящий из точек?

Ответ
Поиск в этой теме
Непрочитано 27.06.2010, 14:23 #1
Можно ли объект, состояший из полилиний как-нибудь переделать в такой же,только состоящий из точек?
Ольга12345
 
Регистрация: 26.06.2010
Сообщений: 4

Подскажите пожалуйста...Заранее спасибо
Просмотров: 5143
 
Непрочитано 27.06.2010, 14:32
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Можно. _divide в руки и вперед
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2010, 14:36
#3
AlphaGeo


 
Сообщений: n/a


Попробуйте команду РАЗМЕТИТЬ (_MEASURE).
Добавлено:
Опоздал
Да, ПОДЕЛИТЬ (_DIVIDE), пожалуй, будет удобней.
 
 
Автор темы   Непрочитано 27.06.2010, 14:50
#4
Ольга12345


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


Спасибо большое
Ольга12345 вне форума  
 
Непрочитано 27.06.2010, 23:41
#5
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,923


Offtop: Ого, это ж способ защиты от копирования!
engngr вне форума  
 
Непрочитано 28.06.2010, 15:14
#6
Baza

Инженер-проектировщик
 
Регистрация: 27.01.2010
СПб
Сообщений: 21


Подскажите, а как сделать обратную операцию, т.е. обьект состоящий из точек (видимо разделенный данной командой) объединить в полилинию?
Baza вне форума  
 
Непрочитано 28.06.2010, 15:59
#7
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Baza Посмотреть сообщение
Подскажите, а как сделать обратную операцию, т.е. обьект состоящий из точек (видимо разделенный данной командой) объединить в полилинию?
Есть идея только в два действия. И то, получится строить одну полилинию за раз.
1. Экспорт координат выбранных точек в *.txt.
2. Создание графика в AutoCAD на основе txt или xls файла.

Может кто-то и объединит эти два действия в одно программке.
 
 
Непрочитано 28.06.2010, 17:02
#8
Baza

Инженер-проектировщик
 
Регистрация: 27.01.2010
СПб
Сообщений: 21


AlphaGeo, спасибо! Ваша идея мне понравилась.
Просто я думал раз есть команда разделить полилинию до точек, то может есть и обратная. Пока буду использовать ваш метод!
Baza вне форума  
 
Непрочитано 28.06.2010, 17:18
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да нет такой команды - разделить полилинию до точек, ГАВ.
Profan вне форума  
 
Непрочитано 28.06.2010, 20:50
#10
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Зато позабавились! Особенно с восстановлением линии из точек.
Да нет, в самом деле создать полилинию из точек, чтобы в итоге иметь нечто похожее на линию маршрута пиратов к сокровищу на карте древнего моря - некая пунтирная, но жирная и с легким масштабированием (черные и белые квадратики, белые без контуров, как пробел).
Да ладно, я пошутил...
__________________
Я дарю не рыбу, а удочку и море.
www.zodchii.ws,
Библиотеки электронных книг
Download
BM60 вне форума  
 
Непрочитано 28.06.2010, 22:26
#11
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Profan и BM60 зря смеетесь, все началось из точек, потом и линия в экране засветилась...Да Baza А может нужно историю немного знать...
И только лишь тогда с начала созидать.
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 28.06.2010, 23:18
#12
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Зря, значит, я написал, что пошутил?
Тогда, пусть кто-нибудь попробует создать такую прерывистую плавную полилинию "из пункта А в пункт Б через горы и моря". Понятно, да? на этот раз смысл серьезной озабоченности в качестве идеи. Может, кому-то не такая, но аналогичная по схеме идея понадобится.
Но Profan прав, поскольку команды, делящей плинию НЕТ!
__________________
Я дарю не рыбу, а удочку и море.
www.zodchii.ws,
Библиотеки электронных книг
Download
BM60 вне форума  
 
Непрочитано 28.06.2010, 23:31
#13
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


BM60 Обратные пути видны (когда пройдешь), один из них у AlphaGeo, но есть ещЁ другие. Но, "термины" у "юности" есть
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 29.06.2010, 00:39
#14
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от sbi Посмотреть сообщение
Profan и BM60 зря смеетесь, все началось из точек, потом и линия в экране засветилась...Да Baza А может нужно историю немного знать...
И только лишь тогда с начала созидать.
Я нисколько не смеюсь. Есть команда "расчленить", которая превращает полилинию в набор состыкованных отрезков и дуг. Но команды, превращающей полилинию в один объект состыкованных точек - нет, как бы sbi ни извращался и не наводил тень на плетень. Вспомним вопрос в начале темы. Там речь идет об объекте, состоящим из полилиний. Об одном объекте, понятно это? В данном случае это может быть блок. Теперь назовите мне команду, которая создает из блока, состоящего из полилиний, блок, состоящий из точек?

Последний раз редактировалось Profan, 29.06.2010 в 00:45.
Profan вне форума  
 
Непрочитано 29.06.2010, 00:44
1 | #15
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Может я чего не понял - а не проще ли сиздать тип линии из точек и
изменить тип линии вашей полилинии.... и не мучать бедную полилинию
всякими расчленениями (ну прям коцлагерь какой-то)
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 29.06.2010, 07:13
#16
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да такой тип линии есть в AutoCAD'е - DOT.
Profan вне форума  
 
Непрочитано 29.06.2010, 10:17
#17
Baza

Инженер-проектировщик
 
Регистрация: 27.01.2010
СПб
Сообщений: 21


Цитата:
Сообщение от Profan Посмотреть сообщение
Да нет такой команды - разделить полилинию до точек, ГАВ.
Команды такой нет, но вот случаи когда из точек нужно создать полилинию есть!
Baza вне форума  
 
Непрочитано 29.06.2010, 10:32
#18
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Baza Так сделай САМ, в любом доступном языке команду и назови основой Да, и Профан, совместно с Кадом Вам дозволит!
__________________
С уважением sbi

Последний раз редактировалось sbi, 29.06.2010 в 10:40.
sbi вне форума  
 
Непрочитано 29.06.2010, 11:11
#19
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Startrek Посмотреть сообщение
Может я чего не понял - а не проще ли сиздать тип линии из точек и
изменить тип линии вашей полилинии.... и не мучать бедную полилинию
всякими расчленениями (ну прям коцлагерь какой-то)
Эта тема зародилась из этой
Цитата:
Может кто-то и объединит эти два действия в одно программке.
Пробуй. Строит LW или 3d полилиния по выбранным точкам. ТОчки предварительно сотрируются.
Код:
[Выделить все]
(defun C:PFP (/ ss lst is3dPoly minPt pl-list tmp)
(vl-load-com)
;;; Polyline From Point
;;; Если координата Z выбранных точек 0 - то создается LW полилиния
;;; иначе 3d полилиния  
  (if (setq ss (ssget '((0 . "POINT"))))
    (progn
      (repeat (setq tmp (sslength ss)) ;_ end setq
        (setq lst (cons (ssname ss (setq tmp (1- tmp))) lst))
      ) ;_ end repeat
      (setq lst
             (mapcar (function (lambda (x) (cdr (assoc 10 (entget x)))))
                     lst
             ) ;_ end of mapcar
      ) ;_ end of setq
      (setq is3dPoly
             (vl-some (function (lambda (x) (not (zerop (caddr x)))))
                      lst
             ) ;_ end of vl-some
      ) ;_ end of setq
      (setq minPT
             ((lambda (x)
                (list
                  (apply (function min) (nth 0 x))
                  (apply (function min) (nth 1 x))
                  (apply (function min) (nth 2 x))
                ) ;_ end of list
              ) ;_ end of lambda
               (apply 'mapcar (cons 'list lst))
             )
      ) ;_setq
      (while lst
        (setq lst
               (vl-sort lst
                        (function (lambda (a b)
                                    (< (distance minPT a)
                                       (distance minPT b)
                                    ) ;_ end of <
                                  ) ;_ end of lambda
                        ) ;_ end of function
               ) ;_ end of vl-sort
        ) ;_ end of setq
        (setq pl-list (cons (setq minPT (car lst)) pl-list)
              lst     (cdr lst)
        ) ;_ end of setq
      ) ;_while
      (setq pl-list (reverse pl-list))
      (if 3dPoly
        (progn
          (setq tmp (apply 'append pl-list))
          (setq tmp (vlax-make-variant
                      (vlax-safearray-fill
                        (vlax-make-safearray
                          vlax-vbdouble
                          (cons 0 (1- (length tmp)))
                        ) ;_ end of vlax-make-safearray
                        tmp
                      ) ;_ end of vlax-safearray-fill
                    ) ;_ end of vlax-make-variant
          ) ;_ end of setq
          (vla-add3dpoly
            (vla-get-modelspace
              (vla-get-activedocument (vlax-get-acad-object))
            ) ;_ end of vla-get-ModelSpace
            tmp
          ) ;_ end of vla-Add3DPoly
        ) ;_ end of progn
        (progn
          (setq tmp (mapcar '(lambda (pt) (list (car pt) (cadr pt)))
                            pl-list
                    ) ;_ end of mapcar
          ) ;_ end of setq
          (setq tmp (apply 'append tmp))
          (setq tmp (vlax-make-variant
                      (vlax-safearray-fill
                        (vlax-make-safearray
                          vlax-vbdouble
                          (cons 0 (1- (length tmp)))
                        ) ;_ end of vlax-make-safearray
                        tmp
                      ) ;_ end of vlax-safearray-fill
                    ) ;_ end of vlax-make-variant
          ) ;_ end of setq
          (vla-addlightweightpolyline
            (vla-get-modelspace
              (vla-get-activedocument (vlax-get-acad-object))
            ) ;_ end of vla-get-ModelSpace
            tmp
          ) ;_ end of vla-addLightWeightPolyline
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
  (princ)
) ;_ end of defun
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 29.06.2010 в 13:35. Причина: Добавил vl-load-com
VVA вне форума  
 
Непрочитано 29.06.2010, 11:32
#20
Baza

Инженер-проектировщик
 
Регистрация: 27.01.2010
СПб
Сообщений: 21


VVA, спасибо.
При попытке использования пишет: ; ошибка: no function definition: VLAX-MAKE-SAFEARRAY
Может я что-то не так делаю?
Baza вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Можно ли объект, состояший из полилиний как-нибудь переделать в такой же,только состоящий из точек?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рифмоплетство. Kryaker Разное 554 14.11.2023 11:59
Как можно из LISP создать КОМ объект и передать его методу BSTR строку? lexluther LISP 2 01.08.2009 00:27
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46