Это явно лишнее: acdbWcs2Ucs. Расстояние если уж измерять, то в DCS, а не в UCSрасстояние я меряю в WCS выше :), а перевод в UCS для отображения грипсы в нужном месте
перевод в UCS для отображения грипсы в нужном местеКто сказал, что координаты для рисования нужно передавать в UCS???
Сейчас нет возможности тестировать твой код. Мой аналогичный работает. Уточни версию AutoCAD и направление взгляда. Не работает и при плане МСК?тестирую в 2016x64. работать должно в 2010+
короче говоря, пытаюсь добиться такого же отображения грипсиков как и при выделении объекта в любой системе координатЯ немного подумал, и понял, что нифига не получится. В отличие от нормальных грипсиков monitorInputPoint вызывается много раз в секунду даже если курсор не двигается и каждый раз создаётся новый контекст для рисования. AutoCAD не успевает отрисовать предыдущую графику, как от него требуется её стереть и начать рисовать новую....
Добавил тестовый проект и это видео:хотел написать, что у меня при использовании залитого полигона в командной строке ошибка вылазит, а она и на видео есть на последних секундах, так что я не один такой :)
Я немного подумал, и понял, что нифига не получится.я пришел к такому же мнению. потягал мышку по полилинии с залитыми кружочками... это как на сварку смотреть :):):) всё блымает как новогодняя елка. так что решил пока вернуться обратно на acedGrDraw (помечать крестиками узлы). по крайней мере не блымает при перерисовке (кстати, вот откуда в моём коде взялась перегонка в UCS)
Пусть прокомментируют.:o ;D ;D ;D ;D ;D
жалко что нет команды для написания текстовых строк аналогичной acedGrDraw :(.Напиши алфавит в виде отрезков и рисуй их при помощи acedGrDraw (а еще лучше acedGrVecs). В очень древние времена я такое делал на лиспе.
так что решил пока вернуться обратно на acedGrDraw (помечать крестиками узлы). по крайней мере не блымает при перерисовкеНу крестики наверное особенно не будут блымать если их рисовать geometry().polyline
Напиши алфавит в виде отрезков и рисуй их при помощи acedGrDrawой, что-то мне лениво :) особенно высчитывать точки аппроксимирующих отрезков для дуговых сегментов.
Ну крестики наверное особенно не будут блымать если их рисовать geometry().polylineну квадратик то блымает, хоть он нарисован через полигон. и текст блымает. думаю, если переделать на полилинию, то ничего не поменяется. а вот если это всё взять и представить в масштабах полилинии точек на... 2-3 тысячи :) то и в туалет сходить можно, пока перерисует через geometry(). а у acedGrDraw таких проблем не заметил.
ой, что-то мне лениво :) особенно высчитывать точки аппроксимирующих отрезков для дуговых сегментов.Ну можно было бы обойтись и без дуговых сегментов. Выбрать какой-нибудь shx-файл попроще и конвертировать его в свою структуру (а можно и не конвертировать, а читать на лету)
а вот если это всё взять и представить в масштабах полилинии точек на... 2-3 тысячи :) то и в туалет сходить можно, пока перерисует через geometry().А вот тут хитро. Нужно анализировать результат geometry().polygon (или любой другой метод рисования). И если он возвращает false, то немедленно выходить из метода monitorInputPoint без продолжения рисования.
интересно, что скажут автодесковцы. скорей всего что-то типа "если не работает, то так и задумывалось. тем более, что прошло уже 10 лет с того момента как оно работало"Ну тогда я рисовал только один заполненный прямоугольник - мне не приходило в голову рисовать грипсы сразу во всех вершинах, которых у меня бывают десятки тысяч.
или посоветуют делать через overrule :)Очень вероятно. Но у overrule есть свой прикол - насколько я помню требуется регенерация чертежа при её включении/выключении.
Получил ответ из ADN DevHelp от "Архитектора Point Input Graphics" :Dм-да... может действительно сделать класс по рисованию текстов через acedGr, а то вдруг их минимум в следующих версиях "усохнется" еще и на тексты ))). пасибки за помощь. делать bisness case смысла нет.
Вкратце смысл его в том, что в этой временной графике реализован минимум, в который залитые полилинии не входят. Реализовано всего несколько методов. Пожелание добавлено, но нужен bisness case. Честно говоря я не вижу в нём смысла, с учетом всех вышеописанных соображений.