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

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

Описать перекрестие прямоугольником

Ответ
Поиск в этой теме
Непрочитано 14.12.2015, 10:26 #1
Описать перекрестие прямоугольником
zz212243
 
ПГС
 
Санкт-Петербург
Регистрация: 11.05.2011
Сообщений: 131

Друзья, приветствую!
Столкнулся с задачей описания прямоугольником двух перекрёстных линий (см.рисунок), трачу на это часы и дни... (((
Может поможет кто и напишет лисп-код для автоматизации этой операции сразу для всех выбранных перекрёстных линий? )
Спасибо!

Миниатюры
Нажмите на изображение для увеличения
Название: описать перекрестие прямоугольником.jpg
Просмотров: 89
Размер:	9.1 Кб
ID:	162254  

__________________
Я не волшебник, я только учусь :read:
Просмотров: 3349
 
Непрочитано 14.12.2015, 10:43
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Поиск исполнителей, тут: http://forum.dwg.ru/forumdisplay.php?f=33
Boxa на форуме  
 
Непрочитано 14.12.2015, 18:04
#3
gomer

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


файл с примером покажи для начала, а то всегда оказывается, что не знают, что хотят, и начинается...
gomer вне форума  
 
Автор темы   Непрочитано 14.12.2015, 18:26
#4
zz212243

ПГС
 
Регистрация: 11.05.2011
Санкт-Петербург
Сообщений: 131


Вот пример.
Вложения
Тип файла: dwg
DWG 2010
Drawing1.dwg (51.7 Кб, 538 просмотров)
__________________
Я не волшебник, я только учусь :read:
zz212243 вне форума  
 
Непрочитано 15.12.2015, 09:06
#5
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


от Lee Mac:
1. http://www.lee-mac.com/boundingboxreactor.html
2. http://www.lee-mac.com/boundingbox.html
3. http://www.lee-mac.com/minboundingbox.html
kacugu вне форума  
 
Автор темы   Непрочитано 15.12.2015, 14:15
#6
zz212243

ПГС
 
Регистрация: 11.05.2011
Санкт-Петербург
Сообщений: 131


оо, похоже то что нужно! http://www.lee-mac.com/boundingbox.html
Только лисп у меня не запускается:
Command: _boundingbox
Unknown command "BOUNDINGBOX". Press F1 for help.
(у меня автокад 2013 х64 ENG)
Ставил по инструкции VVA.

Код вот этот с сайта, если что:

;; Bounding Box - Lee Mac
;; Returns the point list describing the rectangular frame bounding the supplied object.
;; obj - [vla] VLA-Object

(defun LM:boundingbox ( obj / a b lst )
(if
(and
(vlax-method-applicable-p obj 'getboundingbox)
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'a 'b))))
(setq lst (mapcar 'vlax-safearray->list (list a b)))
)
(mapcar '(lambda ( a ) (mapcar '(lambda ( b ) ((eval b) lst)) a))
'(
(caar cadar)
(caadr cadar)
(caadr cadadr)
(caar cadadr)
)
)
)
)


Лисп, который я пытаюсь у себя запустить - прикладываю.

Может потому не запускается, что у VVA "defun С:"
а в этом коде "(defun LM:boundingbox ( obj / a b lst )" и надо что-то дополнительно изменить?
Вложения
Тип файла: lsp boundingbox.lsp (703 байт, 10 просмотров)
__________________
Я не волшебник, я только учусь :read:
zz212243 вне форума  
 
Непрочитано 15.12.2015, 14:52
#7
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


zz212243, вы скопировали только часть нужного вам кода.
Функция LM:boundingbox возвращает только список точек, по которым может быть построен ограничивающий прямоугольник.
На той же странице есть код (см. Example Calling Function), который по этим точкам и построит прямоугольник.
Чтобы всё заработало нужно поместить код с той страницы в один файл lsp. Запускать по команде test.
Код:
[Выделить все]
 
;; Bounding Box  -  Lee Mac
;; Returns the point list describing the rectangular frame bounding the supplied object.
;; obj - [vla] VLA-Object

(defun LM:boundingbox ( obj / a b lst )
    (if
        (and
            (vlax-method-applicable-p obj 'getboundingbox)
            (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'a 'b))))
            (setq lst (mapcar 'vlax-safearray->list (list a b)))
        )
        (mapcar '(lambda ( a ) (mapcar '(lambda ( b ) ((eval b) lst)) a))
           '(
                (caar   cadar)
                (caadr  cadar)
                (caadr cadadr)
                (caar  cadadr)
            )
        )
    )
)
(defun c:test ( / ent )
    (if (setq ent (car (entsel)))
        (entmake
            (append
               '(
                    (000 . "LWPOLYLINE")
                    (100 . "AcDbEntity")
                    (100 . "AcDbPolyline")
                    (090 . 4)
                    (070 . 1)
                )
                (mapcar '(lambda ( p ) (cons 10 p)) (LM:boundingbox (vlax-ename->vla-object ent)))
            )
        )
    )
    (princ)
)
(vl-load-com) (princ)
kacugu вне форума  
 
Автор темы   Непрочитано 16.12.2015, 15:49
#8
zz212243

ПГС
 
Регистрация: 11.05.2011
Санкт-Петербург
Сообщений: 131


Спасибо kacugu, всё получилось!!!
Единственное, из трёх предложенных ссылок:

"от Lee Mac:
1. http://www.lee-mac.com/boundingboxreactor.html
2. http://www.lee-mac.com/boundingbox.html
3. http://www.lee-mac.com/minboundingbox.html"

вторая - описывает прямоугольник только вокруг ОДНОГО объекта (в т.ч. блока)
первая - (команда "bbrn") - описывает прямоугольник вокруг одного или НЕСКОЛЬКИХ объектов - именно это я искал!
(третью не тестировал)
__________________
Я не волшебник, я только учусь :read:
zz212243 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Описать перекрестие прямоугольником

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, грамотно описать конструктивные особенности здания seee Прочее. Архитектура и строительство 1 04.05.2015 08:00
Как описать назначение торгового комплекса со свободной планировкой? polaleksa Архитектура 2 07.12.2012 14:04
Подскажите как описать о обосновать решение по определению пожарных рисков на подстанции. FRAER Прочее. Отраслевые разделы 38 19.09.2012 12:38
как описать двуступенчетую колонну в Лире Тигран88 Лира / Лира-САПР 1 05.09.2012 12:34
Помогите описать кривую Shketkol Прочее. Программное обеспечение 2 14.05.2011 14:31