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

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

Команда inters или подобная

Ответ
Поиск в этой теме
Непрочитано 09.09.2010, 15:31 #1
Команда inters или подобная
Zaghim
 
Регистрация: 01.07.2010
Сообщений: 521

Есть такая штука, как inters, находит точку пересечения двух линий, НО у этих двух линий нужно знать точки начала и конца, а как найти точку пересечения, если я пущу линию из точки и буду знать точки начала и конца только одного отрезка...а какой она пересечет второй понятия не имею, но хочу узнать. Как быть? Помогите!


Ну хоть скажите можно так сделать или нет?

Последний раз редактировалось Zaghim, 09.09.2010 в 16:14.
Просмотров: 8010
 
Непрочитано 09.09.2010, 16:47
#2
Profan


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


Что значит "пущу"? Начерчу на экране?
Profan вне форума  
 
Непрочитано 09.09.2010, 16:58
#3
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Должно быть включено отслеживание (OTRACK), и включены привязки Endpoint, остальное думаю сами догадаетесь.
ps в процессе нельзя менять масштаб.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 09.09.2010, 21:26
#4
Zaghim


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


А можно пример в студию...?
Пущу значит сделаю (polar точка1 угол1 1000000000)
Поставил я точку гетпоинтом, дальше пустил линию на 1000000 вверх (линия пересечения может быть где угодно) и как узнать, где она встретит эту вторую линию???
Zaghim вне форума  
 
Непрочитано 09.09.2010, 21:48
#5
Кулик Алексей aka kpblc
Moderator

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


Да бога ради:
Код:
[Выделить все]
(defun test (ent base ang make / res)
;;; ent -> указатель на отрезок
;;; base -> точка, откуда надо брать
;;; ang -> угол поворота
;;; make -> ставить точку на пересечении (t) или нет (nil)
  ;|
* Пример вызова
(test (car (entsel)) (setq pt (getpoint "\nBase point : ")) (getangle pt "\nAngle : ") t)
|;
  (if (and ent
           (= (type ent) 'ename)
           (= (cdr (assoc 0 (setq ent (entget ent)))) "LINE")
           base
           ang
           ) ;_ end of and
    (progn
      (setq res (inters (cdr (assoc 10 ent)) (cdr (assoc 11 ent)) base (polar base ang 10.) nil))
      (if (and res make)
        (entmakex (list (cons 0 "POINT")
                        (cons 10 res)
                        ) ;_ end of list
                  ) ;_ end of entmakex
        ) ;_ end of if
      ) ;_ end of progn
    ) ;_ end of if
  res
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.09.2010, 09:45
#6
Zaghim


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


У меня не работает, пишет мало аргументов(((
Можно это оформить как кусочек уже внутри когда, где мне уже известно: начальная точка, и все углы
Zaghim вне форума  
 
Непрочитано 10.09.2010, 09:53
#7
Кулик Алексей aka kpblc
Moderator

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


Zaghim, я же привел пример вызова! Нарисуй отрезок, потом вызывай
Код:
[Выделить все]
(test (car (entsel)) (setq pt (getpoint "\nBase point : ")) (getangle pt "\nAngle : ") t)
Будет тебе пример.
P.S. Код проверял только в мировой системе координат и только в режиме "вид сверху".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.09.2010, 10:03
#8
Zaghim


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


В общем не так ты все понял.
Во-первых ты эту линию получаешь вначале тыкая на нее...а я не должен тыкать, я должен тыкнуть только один раз - указав базовую точку, а не объект.
Во-вторых, если ты укажешь полилинию - работать не будет...а нужно в основном для работы с полилинией...
Zaghim вне форума  
 
Непрочитано 10.09.2010, 10:10
#9
Кулик Алексей aka kpblc
Moderator

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


Во-первых, что просил, то и получил:
Цитата:
Сообщение от Zaghim Посмотреть сообщение
я пущу линию из точки и буду знать точки начала и конца только одного отрезка...а какой она пересечет второй понятия не имею
Во-вторых, проанализируй код - там всего одна ключевая строка.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.09.2010, 10:21
#10
Zaghim


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


По-моему в заголовке темы все понятно написано...
А что там анализировать...? Есть у тебя базовая точка, и точка, которую ты отложил поларом...а вторые две точки получил ентгетом и выдрал координаты... Ну и следом интерс по 4 точкам....

А с привязками хорошая идея, но не работает(((

Последний раз редактировалось Zaghim, 10.09.2010 в 10:30.
Zaghim вне форума  
 
Непрочитано 10.09.2010, 10:40
#11
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Zaghim Посмотреть сообщение
По-моему в заголовке темы все понятно написано...
Offtop: Лично мне нечетра не понятно. Хотя с автокадом, да и с лиспом, я по крайней мере знаком.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 10.09.2010, 10:58
#12
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Лично мне не понятно тоже...
Цитата:
вторые две точки получил ентгетом
Каким образом получил указатель на имя линии/плинии, из которого выдрал координаты?
Цитата:
нужно в основном для работы с полилинией
Про это нигде не было сказано...
CB вне форума  
 
Автор темы   Непрочитано 10.09.2010, 11:01
#13
Zaghim


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


Короче говоря нужен какой-то механизм, который будет работать на подобие команды inters. Inters не подходит тем, что в нем нужно знать координаты начала и конца двух отрезков. А я знаю только одного - точку ставлю тыкая на экран - начальная точка отрезка 1, точка 2 отрезка 1 определяю polar'ом. Мне нужно найти пересечение этого отрезка с другим, который был ранее нарисован на чертеже, его координаты я НЕ МОГУ получить entget'ом тыкая по этому отрезку. Сейчас думаю понятно...

Нужно найти точку пересечения двух отрезков (координату), зная координаты только одного отрезка.

Последний раз редактировалось Zaghim, 10.09.2010 в 11:06.
Zaghim вне форума  
 
Непрочитано 10.09.2010, 11:09
#14
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Цитата:
который был ранее нарисован на чертеже
А если их там несколько - как определить с каким нужно искать пересечение?
CB вне форума  
 
Автор темы   Непрочитано 10.09.2010, 11:18
#15
Zaghim


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


Нужно узнать самый первый с которым столкнется...
Zaghim вне форума  
 
Непрочитано 10.09.2010, 12:12
#16
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Offtop: К 15 посту более-менее понятно становится, чего хочется автору
Do$ вне форума  
 
Автор темы   Непрочитано 10.09.2010, 12:31
#17
Zaghim


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


Осталось только понять, как это реализовать!

Вообще вся эта штуковина нужна для того, что бы:
1) узнать расстояние от точки 1 до отрезка 2.
2) вытащить некоторые свойства отрезка 2.

Последний раз редактировалось Zaghim, 10.09.2010 в 12:40.
Zaghim вне форума  
 
Непрочитано 10.09.2010, 12:38
1 | #18
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Zaghim, а если по указанным точкам для первого отрезка построить примитив (тот же "LINE"), а потом _extend (удлинить) его до всех примитивов чертежа, то он по идеи должен сам удлиниться до ближайшего в нужном направлении, вот точка пересечени, или нет?
TararykovDG вне форума  
 
Автор темы   Непрочитано 10.09.2010, 12:41
#19
Zaghim


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


TararykovDG, вроде как ничего идейка, щас попробую))) Спасибо за наводку.
Нет, не подходит так. Если стоит маленький отрезок между двумя линиями, то, что бы сделать Extend нужно выбрать этот маленький отрезок и две соседние линии, а выбрать я их не могу))

Последний раз редактировалось Zaghim, 10.09.2010 в 12:50.
Zaghim вне форума  
 
Непрочитано 10.09.2010, 13:02
#20
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Zaghim, Зачем что-то выбирать
Пусть
pnt0 - 1-я точка известного отрезка
pnt1 - 2-я точка известного отрезка
eps = 0.1 (или еще меньше)
Код:
[Выделить все]
 (vl-cmdf "_.extend" "_All" "" "_Fence" pnt1 (polar pnt1 (angle pnt0 pnt1) eps) "" "")
Обязательно отключить привязку
TararykovDG вне форума  
 
Непрочитано 10.09.2010, 13:30
1 | #21
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Только для линий...
Код:
[Выделить все]
(defun test (/ pt10 ang pt11 sset int_out)
  (if (and
        (setq pt10 (getpoint "\nBase point : "))
        (setq ang (getangle pt10 "\nAngle : "))
        (setq pt11 (polar pt10 ang 10.))
        (setq sset (ssget "_X" '((0 . "LINE"))))
      ) ;_ end of and
    (foreach x
               (vl-remove-if
                 'listp
                 (mapcar (function cadr)
                         (ssnamex sset)
                 ) ;_ end of mapcar
               ) ;_ end of vl-remove-if
      ((lambda (pt / p1 p2 int)
         (setq p1  (cdr (assoc '10 pt))
               p2  (cdr (assoc '11 pt))
               int (inters pt10 pt11 p1 p2 nil)
         ) ;_ end of setq
         (if
           (equal (+ (distance int p1) (distance int p2))
                  (distance p1 p2)
                  1e-6
           ) ;_ end of equal
            (if int_out
              (if
                (< (distance pt10 int)
                   (distance pt10 int_out)
                ) ;_ end of <
                 (setq int_out int)
              ) ;_ end of if
              (setq int_out int)
            ) ;_ end of if
         ) ;_ end of if
       ) ;_ end of lambda
        (entget x)
      )
    ) ;_ end of foreach
  ) ;_ end of if
      int_out
) ;_ end of defun
;;;вызов -> (test)
CB вне форума  
 
Автор темы   Непрочитано 10.09.2010, 13:34
#22
Zaghim


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


Почему-то не работает все равно с экстендом((( рисует линию, все выбирает, а потом все стирается и ничего не происходит)

CB, круто - работает!!! А с полилинией никак?

Последний раз редактировалось Zaghim, 10.09.2010 в 14:03.
Zaghim вне форума  
 
Непрочитано 10.09.2010, 15:01
1 | #23
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


А с полилинией надо через vla- и vlax-
Do$ вне форума  
 
Автор темы   Непрочитано 10.09.2010, 15:23
#24
Zaghim


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


А можно пример? Влисп вообще не бум-бум)
Zaghim вне форума  
 
Непрочитано 10.09.2010, 17:09
1 | #25
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Набросал на скорую руку, так что за корректную работу во всех случаях не ручаюсь.
Код:
[Выделить все]
;;http://elpanov.com/
(defun rec_lst_3d (lst)
  (if lst
    (cons
      (list
    (car lst)
    (cadr lst)
    (caddr lst)
      ) ;_  list
      (rec_lst_3d (cdddr lst))
    ) ;_  cons
  ) ;_  if
) ;_  defun
 
 
(defun get-nearest-pline-for-direction (base_point
                    direct_point
                    /
                    ang
                    obj
                    sset
                    pt_out
                    int
                    bnd
                    pt_lst
                    pt_tmp
                       )
  (vl-load-com)
  (if (and
    (setq ang (angle base_point direct_point))
    (setq obj (vlax-ename->vla-object
            (entmakex
              (list '(0 . "LINE")
                (cons 10 base_point)
                (cons 11 direct_point)
              ) ;_ end of list
            ) ;_ end of entmakex
          ) ;_ end of vlax-ename->vla-object
    ) ;_ end of setq
    (setq sset (ssget "_X" '((0 . "*POLYLINE"))))
      ) ;_ end of and
    (foreach x
           (mapcar 'vlax-ename->vla-object
               (vl-remove-if
             'listp
             (mapcar (function cadr)
                 (ssnamex sset)
             ) ;_ end of mapcar
               ) ;_ end of vl-remove-if
           ) ;_ end of mapcar
      (setq int (vla-IntersectWith obj x acExtendThisEntity))
      (setq
    bnd (vlax-safearray-get-u-bound (vlax-variant-value int) 1)
      ) ;_ end of setq
      (if (/= bnd -1)
    (if
      (setq    pt_lst
         (vl-remove-if-not
           '(lambda (pt) (equal (angle base_point pt) ang 1.0e-008))
           (rec_lst_3d
             (vlax-safearray->list (vlax-variant-value int))
           ) ;_ end of rec_lst_3d
         ) ;_ end of vl-remove-if-not
      ) ;_ end of setq
       (progn
         (setq pt_tmp
            (car (vl-sort
               pt_lst
               '(lambda (pt1 pt2)
                  (< (distance pt1 base_point)
                 (distance pt2 base_point)
                  ) ;_ end of <
                ) ;_ end of lambda
             ) ;_ end of vl-sort
            ) ;_ end of car
         ) ;_ end of setq
         (if (or (not pt_out)
             (>    (distance base_point pt_out)
            (distance base_point pt_tmp)
             ) ;_ end of >
         ) ;_ end of or
           (setq pt_out (vl-symbol-value 'pt_tmp))
         ) ;_ end of if
       ) ;_ end of progn
    ) ;_ end of if
      ) ;_ end of if
    ) ;_ end of foreach
  ) ;_ end of if
  (vla-delete obj)
  pt_out
) ;_ end of defun
 
(defun c:test (/ pt)
 
  (setq pt (trans (getpoint "\nBase point : ") 1 0))
  (if
    (setq pt1 (get-nearest-pline-for-direction
        pt
        (trans (getpoint pt "\nDirection point:") 1 0)
          ) ;_ end of get-nearest-pline-for-direction
    ) ;_ end of setq
     (entmakex
       (list '(0 . "LINE")
         (cons 10 pt)
         (cons 11 pt1)
       ) ;_ end of list
     ) ;_ end of entmakex
     (alert "Не пересекает полилинию!")
  ) ;_ end of if
) ;_ end of defun
Do$ вне форума  
 
Автор темы   Непрочитано 10.09.2010, 17:20
#26
Zaghim


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


Я так понял она по завершении дает не координату а сразу имя примитива с которым пересеклась?

Почему-то она игнорирует такую линию (см. приложение).

Понял почему так. У нее задан параметр Elevation, если его выставить в 0, то пересекает. Блин такой гимор, потому что этот Elevation не будет нулевым. А еще есть 3дполилинии у них тоже координата Z присутствует
Вложения
Тип файла: dwg
DWG 2004
1.dwg (30.2 Кб, 884 просмотров)

Последний раз редактировалось Zaghim, 10.09.2010 в 17:30.
Zaghim вне форума  
 
Непрочитано 10.09.2010, 21:44
#27
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Zaghim, на Вашем же примере 1.dwg конструкция с extendом отработала нормально, и не нужно думать про Elevation и 3dполилинии. Попробуйте не всю конструкцию сразу, а поочередно ввести в ком. строке
все команды и скажите когда именно происходит ошибка? Лично у меня все работает
TararykovDG вне форума  
 
Непрочитано 11.09.2010, 12:10
1 | #28
Disney

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


По-моему, всё гораздо проще
Код:
[Выделить все]
(defun inter (t1 ang dist / ss)
  (If (setq
	ss (ssget "_F" (list t1 (polar t1 ang dist)))
      )
    (cadr (cadddr (car (ssnamex ss))))
  )
)

Код:
[Выделить все]
(defun c:test (/ t1 t2)
  (entmakex (list (cons 0 "POINT")
		  (cons	10
			(inter (setq
				 t1 (getpoint)
			       )
			       (angle t1 (setq t2 (getpoint t1)))
			       (distance t1 t2)
			)
		  )
	    )
  )
)
[IMG]http://s003.***********/i202/1009/0d/9e854494c630.gif[/IMG]
__________________
Почему все вдруг становятся умными, когда уже не надо?

Последний раз редактировалось Disney, 11.09.2010 в 18:41.
Disney вне форума  
 
Непрочитано 14.09.2010, 13:49
#29
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Цитата:
Сообщение от Zaghim Посмотреть сообщение
А с полилинией никак?
Теперь и для полилиний...
В выходном списке - имя пересекаемого объекта + точка пересечения:
Код:
[Выделить все]
(defun test (/ pt10 ang pt11 sset int_out base_line)
  (if (and
        (setq pt10 (getpoint "\nBase point : "))
        (setq ang (getangle pt10 "\nAngle : "))
        (setq pt11 (polar pt10 ang 10.))
        (setq sset (ssget "_X" '((0 . "*LINE"))))
      ) ;_ end of and
    (progn
      (vla-put-visible
        (setq base_line (vlax-ename->vla-object
                          (entmakex
                            (list '(0 . "LINE")
                                  (cons 10 pt10)
                                  (cons 11 pt11)
                            ) ;_ end of list
                          ) ;_ end of entmakex
                        ) ;_ end of vlax-ename->vla-object
        ) ;_ end of setq
        :vlax-false
      ) ;_ end of vla-put-visible
      (foreach item
                    (vl-remove-if
                      'listp
                      (mapcar (function cadr)
                              (ssnamex sset)
                      ) ;_ end of mapcar
                    ) ;_ end of vl-remove-if
        ((lambda (vla-name / int)
           (setq int_in
                  (vl-catch-all-apply
                    (function
                      (lambda ()
                        (vlax-safearray->list
                          (vlax-variant-value
                            (vla-IntersectWith
                              base_line
                              vla-name
                              acExtendBoth
                            ) ;_ end of vla-IntersectWith
                          ) ;_ end of vlax-variant-value
                        ) ;_ end of vlax-safearray->list
                      ) ;_ end of lambda
                    ) ;_ end of function
                  ) ;_ end of vl-catch-all-apply
           ) ;_ end of setq
           (if (not (vl-catch-all-error-p int_in))
             (while int_in
               (setq int    (list (car int_in)
                                  (cadr int_in)
                                  (caddr int_in)
                            ) ;_ end of list
                     int_in (cdddr int_in)
               ) ;_ end of setq
               (if
                 (vlax-curve-getParamAtPoint vla-name int)
                  (if (or (not int_out)
                          (< (distance pt10 int)
                             (distance pt10 (cadr int_out))
                          ) ;_ end of <
                      ) ;_ end of or
                    (setq int_out (list item int))
                  ) ;_ end of if
               ) ;_ end of if
             ) ;_ end of while
           ) ;_ end of if
         ) ;_ end of lambda
          (vlax-ename->vla-object item)
        )
      ) ;_ end of foreach
    ) ;_ end of progn
  ) ;_ end of if
  (vla-delete base_line)
  int_out
) ;_ end of defun
CB вне форума  
 
Автор темы   Непрочитано 14.09.2010, 15:59
#30
Zaghim


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


А то, что выше, вам не нравится?
Т.е. этот код дает пересечение ТОЛЬКО с плинией? Если на его пути попадется обычная линия или текст - он с ней пересечется?
Zaghim вне форума  
 
Непрочитано 14.09.2010, 16:48
#31
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


А что, сложно проверить? Я же написал
Цитата:
Теперь и для полилиний...
т.е для LINE, POLYLINE и SPLINE.
CB вне форума  
 
Непрочитано 15.09.2010, 09:02
#32
Disney

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


Цитата:
Сообщение от Zaghim Посмотреть сообщение
Если на его пути попадется обычная текст - он с ней пересечется?
[IMG]http://s002.***********/i200/1009/35/7d6c71593604.gif[/IMG]
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 15.09.2010, 10:27
#33
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Цитата:
Сообщение от Disney Посмотреть сообщение
[IMG]http://s002.***********/i200/1009/35/7d6c71593604.gif[/IMG]
Да ничего прикольного нет - пересечение существует, правда не чисто с текстом, а с его boundingbox'ом, т.е. обрамляющей текст рамкой...
CB вне форума  
 
Непрочитано 15.09.2010, 10:57
#34
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Disney Посмотреть сообщение
[IMG]http://s002.***********/i200/1009/35/7d6c71593604.gif[/IMG]
Disney
Один минус - ищется именно реальное пересечение, в отличие от остальных представленных в теме кодов.
Цитата:
Сообщение от CB Посмотреть сообщение
Да ничего прикольного нет - пересечение существует, правда не чисто с текстом, а с его boundingbox'ом, т.е. обрамляющей текст рамкой...
А вложенный ролик посмотреть?
Do$ вне форума  
 
Непрочитано 15.09.2010, 11:14
1 | #35
Disney

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


Цитата:
Сообщение от Do$ Посмотреть сообщение
Один минус - ищется именно реальное пересечение, в отличие от остальных представленных в теме кодов.
С текстом - да, минус (но может кому-нибудь когда-нибудь и такое пересечение пригодиться), а вот с остальными примитивами вроде нормальные пересечения.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 15.09.2010, 12:16
1 | #36
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Не, ты не понял... Указываем 2 точки: начальную и конечную. Твой код ищет пересечение этого отрезка с примитивом между начальной и конечной точкой. А СВ и я искали точку пересечения на продолжении этого отрезка, то есть пересечение луча с примитивом чертежа.
А чего хотел Zaghim - одному ему известно
Миниатюры
Нажмите на изображение для увеличения
Название: inters.jpg
Просмотров: 58
Размер:	19.6 Кб
ID:	45296  
Do$ вне форума  
 
Непрочитано 15.09.2010, 15:50
#37
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Цитата:
Сообщение от Do$ Посмотреть сообщение
А вложенный ролик посмотреть?
Действительно прикольно, не досмотрел ролик...
CB вне форума  
 
Непрочитано 15.09.2010, 19:42
#38
gomer

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


хи-хи, пересечение "е" в одном месте... Должно быть как минимум 3
gomer вне форума  
 
Автор темы   Непрочитано 16.09.2010, 09:23
#39
Zaghim


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


Do$: Зажим хотел то, что сделал Disney... конечно, в идеале, было бы круто, если бы по такой же схеме, но выбирались только п-линия и 3д-п-линия. А так пришлось просто заморозить quickselect'ом все лишнее, но это не заняло много времени...
Zaghim вне форума  
 
Непрочитано 16.09.2010, 09:57
1 | #40
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Нужны только полилинии - добавь фильтр в ssget в функции inter из поста #28.
Do$ вне форума  
 
Автор темы   Непрочитано 16.09.2010, 10:37
#41
Zaghim


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


Всех обнял! Спасибо за помощь!
Zaghim вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда inters или подобная



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Печать из модели по выбору объекта zenon Программирование 192 04.05.2017 09:41
Преобразование полей в текст YuraVel AutoCAD 17 14.04.2015 14:30
ACAD-2002. Глюк начальной загрузки ЛИСП? ===AAA=== LISP 27 31.08.2005 07:58