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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Автоматическое соединение точек отрезками с одной общей точкой

Автоматическое соединение точек отрезками с одной общей точкой

Ответ
Поиск в этой теме
Непрочитано 12.01.2011, 23:28 #1
Автоматическое соединение точек отрезками с одной общей точкой
Terminator637
 
Регистрация: 20.03.2010
Сообщений: 11

Здравствуйте! Замучал здешний поиск, замучал гугл и т.п. никак не могу найти. Можно ли как то провести следующую операцию: я указываю точку, назовем ее исходной, затем указываю точки в других местах поочередно и от этих точек автоматически строятся отрезки до исходной точки. Чтобы просто каждый раз не выбирать заново исходную точку, а просто щелкнуть на ней 1 раз а дальше щелкать только на точках, которые должны быть с ней соединены отрезком.
Может есть какой то способ? помогите пожалуйста, заранее большое спасибо!
Просмотров: 5432
 
Непрочитано 13.01.2011, 00:15
#2
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074


Как такое сделать - в голову пока не приходит.
Если бы были известны координаты точек, то можно было бы сделать текстовый файл типа:
100,100 200,200


100,100 700,200


100,100 250,600


100,100 0,400


, где 100,100 - координаты X, Y общей точки. К координатам через запятую могут быть добавлены и Z.
Координаты одного отрезка через пробел, после координат каждого отрезк по две пустые строки, включая последний (по два Enter).
Скопировать в буфер, вызвать команду черчения отрезков, и вставить из буфера в ком. строку. Отрезки все начертятся разом.

А можно в одну строку:
100,100 200,200 100,100 700,200 100,100 250,600 100,100 0,400
После каждой пары координат по три пробела, включая последний.


А для какой задачи нужно так чертить?

Последний раз редактировалось АлексЮстасу, 13.01.2011 в 00:25.
АлексЮстасу вне форума  
 
Непрочитано 13.01.2011, 00:43
#3
Лиспер


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


Код:
[Выделить все]
(vl-load-com)

(defun c:lss (/ adoc pt_base pt)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (if (= (type (setq pt_base
                      (vl-catch-all-apply
                        (function
                          (lambda ()
                            (getpoint "\nУкажите базовую точку <Отмена> : ")
                            ) ;_ end of lambda
                          ) ;_ end of function
                        ) ;_ end of vl-catch-all-apply
                     ) ;_ end of setq
               ) ;_ end of type
         'list
         ) ;_ end of =
    (while
      (= (type
           (setq
             pt (vl-catch-all-apply
                  (function
                    (lambda ()
                      (getpoint pt_base "\nКонец отрезка <Отмена> : ")
                      ) ;_ end of lambda
                    ) ;_ end of function
                  ) ;_ end of vl-catch-all-apply
             ) ;_ end of setq
           ) ;_ end of type
         'list
         ) ;_ end of =
       (vla-startundomark adoc)
       (entmakex (list (cons 0 "LINE")
                       (cons 10 pt_base)
                       (cons 11 pt)
                       ) ;_ end of list
                 ) ;_ end of entmakex
       (vla-endundomark adoc)
       ) ;_ end of while
    ) ;_ end of if
  (princ)
  ) ;_ end of defun
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 13.01.2011, 00:56
#4
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074


Круто!
АлексЮстасу вне форума  
 
Непрочитано 13.01.2011, 07:50
#5
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


команда _ray ЛУЧ
Хмурый вне форума  
 
Автор темы   Непрочитано 13.01.2011, 09:21
#6
Terminator637


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


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Код:
[Выделить все]
(vl-load-com)

(defun c:lss (/ adoc pt_base pt)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (if (= (type (setq pt_base
                      (vl-catch-all-apply
                        (function
                          (lambda ()
                            (getpoint "\nУкажите базовую точку <Отмена> : ")
                            ) ;_ end of lambda
                          ) ;_ end of function
                        ) ;_ end of vl-catch-all-apply
                     ) ;_ end of setq
               ) ;_ end of type
         'list
         ) ;_ end of =
    (while
      (= (type
           (setq
             pt (vl-catch-all-apply
                  (function
                    (lambda ()
                      (getpoint pt_base "\nКонец отрезка <Отмена> : ")
                      ) ;_ end of lambda
                    ) ;_ end of function
                  ) ;_ end of vl-catch-all-apply
             ) ;_ end of setq
           ) ;_ end of type
         'list
         ) ;_ end of =
       (vla-startundomark adoc)
       (entmakex (list (cons 0 "LINE")
                       (cons 10 pt_base)
                       (cons 11 pt)
                       ) ;_ end of list
                 ) ;_ end of entmakex
       (vla-endundomark adoc)
       ) ;_ end of while
    ) ;_ end of if
  (princ)
  ) ;_ end of defun
Спасибо вам огромное! Всё работает как и требовалось. Вот бы научиться так же, да время никак на язык не найду
Terminator637 вне форума  
 
Непрочитано 13.01.2011, 09:56
#7
VVA

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


Terminator637, Для этого не нужно писать программу. Рисуешь отрезок, выделяешь ручки, цепляешься за ручку, ПКМ->копировать
Миниатюры
Нажмите на изображение для увеличения
Название: capture-5.gif
Просмотров: 193
Размер:	239.4 Кб
ID:	51510  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 13.01.2011, 10:13
#8
Terminator637


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Terminator637, Для этого не нужно писать программу. Рисуешь отрезок, выделяешь ручки, цепляешься за ручку, ПКМ->копировать
Спасибо вам тоже, как то я до этого не догадался. Но с программой как то удобнее чтоли, сделл себе кнопку и рисую.

ВСЕМ ОГРОМНЕЙШЕЕ СПАСИБО!
Terminator637 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Автоматическое соединение точек отрезками с одной общей точкой



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка точек по значениям из блакнота, и соединение их линиями (сплайном, полилинией) Redya Программирование 6 15.06.2010 18:47