Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: begiz от 30-04-2015, 09:41:48

Название: Nearest OSNAP для AcDbBlockReference
Отправлено: begiz от 30-04-2015, 09:41:48
Добрый день.
Тема интересовала давно, но не сильно надо было.
Какие OSNAP поддерживаются AcDbBlockReference по умолчанию и можно ли их расширить не создавая CustomEntity со своими OSNAP?

Конкретней.
Есть блок который состоит толко из кусочка AcDbLine (0,0;1,0) и собственно потом при вставке растягивается по оси Х для получения линии.
Так вот нужно бы сделать возмозность к етой "линии" цеплятся OSNAP как nearest например.

Как можно это съимитировать, желательно из Jig'a?
Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: Александр Ривилис от 30-04-2015, 10:27:34
Или я не понял что нужно, или всплыл какой-то баг. Итак:
1) Создаю (вручную) отрезок с координатами [(0,0) (1,0)]
2) Превращаю этот отрезок в блок
3) Меняю масштаб по X например на 10
4) Включаю привязку БЛИЖАЙШАЯ (_Nearest)
5) Запускаю команду ОТРЕЗОК (_LINE)
6) Вижу результат:
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F39%2F7842324.3%2F0_fd338_bdc0e538_orig.png&hash=5333933e549b09907a87482cd42216a6)
Что не так?
Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: begiz от 30-04-2015, 10:50:22
Хм... деиствительно, вновь созданый блок ведет себя точно так же как у Вас.
Проверил на чертеже от заказчика, и выяснилось, что там не AcDbLine, а AcDbPolyline.
Просто переделаю блоки.
Но раз тема уже затронута, то всё таки как реализовать такое решение.

Прицепил пример чертежа.
Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: Александр Ривилис от 30-04-2015, 12:03:12
Если блок отмасштабирован с разными масштабами по X, Y, Z (non-uniform scale), то привязки типа _NEAR и _INT работают не со всеми типами примитивов в блоке. И с этим ничего поделать нельзя.
Но раз тема уже затронута, то всё таки как реализовать такое решение.
Какое это "такое"? Проблема в том, что я не могу понять что ты хочешь.
Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: begiz от 30-04-2015, 12:28:07
Цитировать
Если блок отмасштабирован с разными масштабами по X, Y, Z (non-uniform scale), то привязки типа _NEAR и _INT работают не со всеми типами примитивов в блоке. И с этим ничего поделать нельзя.

Собственно это и хотел услышат.

Так вот, я хочу/хотел сделать привязки к примитивам, которые их могут не поддерживать.

Но раз с этим ничего не поделать, то можно тему закрывать.
Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: begiz от 30-04-2015, 12:36:50
П.С. в дахном случае решил проблему, добавлением обычной линии под полилинию в блоке.
Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: Александр Ривилис от 30-04-2015, 12:53:42
П.С. в дахном случае решил проблему, добавлением обычной линии под полилинию в блоке.
Но это только в данном случае. А если бы у тебя была полилиния с дуговым сегментом?


Название: Re: Nearest OSNAP для AcDbBlockReference
Отправлено: begiz от 30-04-2015, 13:04:07
Так точно, только для этого конкретного случая.