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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Прошу оценить неожиданные результаты при работе метода IntersectWith c текстом

Прошу оценить неожиданные результаты при работе метода IntersectWith c текстом

Ответ
Поиск в этой теме
Непрочитано 23.05.2016, 11:19 #1
Прошу оценить неожиданные результаты при работе метода IntersectWith c текстом
P_S
 
Санкт-Петербург
Регистрация: 09.10.2006
Сообщений: 99

Посмотрел я, как мается protorgovec с вставкой текста в рамку, и захотелось мне написать образцово-показательную программу, а заодно и показать взаимоотношения свойств Alignment, InsertionPoint и TextAlignmentPoint. Идея была проста: задаём тексту свойство Alignment «acAlignmentMiddleCenter» с точкой привязки в центре прямоугольника; Rotation – по длинной стороне прямоугольника; а далее, если метод IntersectWith возвращает точки пересечения текста с полилинией, задаём тексту Alignment «acAlignmentFit» и используем полученные точки пересечения в качестве InsertionPoint и TextAlignmentPoint.
Вот тут-то и оказалось, что в случае, когда стороны прямоугольника (lwpolyline, closed) развёрнуты относительно осей WCS, возвращаемые методом IntersectWith с опцией acExtendNone, отличаются от ожидаемых. Ставлю QTEXTMODE = 1, чтобы проанализировать геометрию пересечений, и вижу, что точки пересечения определяются по странному алгоритму (картинка прилагается). Пока видел это только с текстом (если заменить рамку текста полилинией – никаких неожиданностей.

Offtop: Что курят программисты Autodesk?
У меня – Civil 3D 2012 (лицензионный). Если это баг, то повторяется ли он в других версиях?
Offtop: Или баг у меня в голове после выходных (хорошо посидели)?

Миниатюры
Нажмите на изображение для увеличения
Название: Примеры пересечений.jpg
Просмотров: 30
Размер:	138.4 Кб
ID:	170860  

Просмотров: 1155
 
Непрочитано 23.05.2016, 11:36
#2
Кулик Алексей aka kpblc
Moderator

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


Насколько я понимаю, для текста через аналог vla-getboundingbox виртуально строится описываемый прямоугольник, и разыскиываются пересечения именно этого прямоугольника с нужным контуром.

----- добавлено через ~6 мин. -----
Как вариант (пишу насухую)
Код:
[Выделить все]
(vl-load-com)
;; txt - полученный vla-указатель на текст
(vla-getboundingbox txt 'minp 'maxp)
(command "_.rectang" "_none" (vlax-safearray->list minp) "_none" (vlax-safearray->list maxp))
И посмотри, какие точки ты получишь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.05.2016, 14:23
#3
P_S


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


Ну да, алгоритм именно такой, но зачем же они это сделали? То же самое, как я понял, учудили и с блоками. Если функция не возвращает нужный результат, это и называется багом. Может, давно уже пора bug report послать?
P_S вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Прошу оценить неожиданные результаты при работе метода IntersectWith c текстом

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надстройка второго этажа из металлокаркаса. Прошу оценить узел. Gvinpeenka Прочее. Архитектура и строительство 0 12.02.2016 12:31
Прошу оценить качество и состав раздела КМ Kaktotak Металлические конструкции 28 23.11.2015 10:30
Прошу оценить конструктивное решение гражданского здания с точки зрения дальнейшего расчета misha14 Железобетонные конструкции 15 10.06.2015 06:13
Прошу посмотреть расчёт 3D металлокаркаса, результаты не верны. Mike1 Robot 2 07.03.2012 15:13
Полы по грунту. Прошу оценить проектные решения. Tym Конструкции зданий и сооружений 13 05.06.2011 10:00