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

ADN Club => AutoCAD .NET API => Тема начата: RevitTormentor от 09-01-2018, 09:39:50

Название: Программно поменять параметр мультивыноски
Отправлено: RevitTormentor от 09-01-2018, 09:39:50
Добрый день.
Есть стандартная мультивыноска. Тип стрелки устанавливаю на "Контурная точка". Задаю размер стрелки в данном случае диаметр.
Но для такого типа стрелки величина диаметра ограничена удаленностью полки от точки начала.
Т.е. на рис.1 диаметр 700, но тогда полка должна быть дальше. Если её переместить ближе к началу, то круг пропадает. Приходится уменьшать диаметр. рис.2

Вопрос 1. Программно можно обойти данное ограничение? Разместить полку близко, но и диаметр сделать побольше?
Вопрос 2. Можно ли узнать необходимое удаление полки в зависимости от нужного диаметра?
Спасибо
(https://s17.postimg.org/j9uk7hla3/image.png) (https://postimg.org/image/j9uk7hla3/)

(https://s17.postimg.org/yvbvrg4y3/image.png) (https://postimg.org/image/yvbvrg4y3/)
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 11:57:37
1. Нет.
2. Недокументировано.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Владимир Шу от 09-01-2018, 12:04:33
Вопрос 1. Программно можно обойти данное ограничение? Разместить полку близко, но и диаметр сделать побольше?
1. Нет.
А DrawableOverrule не вариант?
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 12:22:34
А DrawableOverrule не вариант?
К чему такие извращения?
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Владимир Шу от 09-01-2018, 12:59:35
К чему такие извращения?
Не знаю, автору виднее.
Вопрос был: Программно можно обойти данное ограничение? ИМХО, если очень надо, то можно попробовать обойти с помощью DrawableOverrule.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Дмитрий Загорулькин от 09-01-2018, 14:10:23
Тогда уж, по-хорошему, Drawable+TransformOverrule (отображение + поведение). Но стоит хорошо подумать, стоит ли результат этих трудозатрат.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 14:15:53
Вопрос был: Программно можно обойти данное ограничение? ИМХО, если очень надо, то можно попробовать обойти с помощью DrawableOverrule.
Если надо, то можно:
1. Использовать блок-стрелку в виде окружности. Тоже есть ограничение на её размер приблизительно в 1/2 длину выноски. Как минимум идёт расчет на то, что две стрелки + текст помещаются между точками выноски.
2. Свой custom entity с любым поведением.
Но пока автор не скажет зачем нужно насиловать AutoCAD, т.е. заставлять его работать так, как он работать не предназначен, я не знаю чем ему помочь...
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Владимир Шу от 09-01-2018, 14:24:46
Могу предположить, что автор хочет таким образом обозначать узлы на чертежах, и это действительно удобно, если не одно но... при больших узлах, выноска должна стоять очень далеко, вот и пытается обойти это ограничение.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 14:29:38
Могу предположить, что автор хочет таким образом обозначать узлы на чертежах, и это действительно удобно, если не одно но... при больших узлах, выноска должна стоять очень далеко, вот и пытается обойти это ограничение.
А окружность нужного диаметра и выноска совсем без стрелки (возможно объединённые для удобства в группу) уже никак не канает? ;-)
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Владимир Шу от 09-01-2018, 14:47:35
А окружность нужного диаметра и выноска совсем без стрелки (возможно объединённые для удобства в группу) уже никак не канает? ;-)
Не канает... неудобно, тем более в группе. Попробуйте.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: RevitTormentor от 09-01-2018, 14:48:07
Любое решение можно решить несколькими способами. Владимир правильно сказал мне нужны узлы. Выноска чем хороша - штатное решение, без блоков, без Кастом Энтити и прочих лишних премудростей. Чтобы как раз не насиловать автокад.
Группа, насколько я понимаю, не "редактируемая" по-быстрому, чтобы полку повернуть относительно кружка - надо разбить группу... отловить центр кружка ... найти... если это действительно так, то - страшно.
Штатная мультивыноска с данной стрелкой в виде кружка - подходит на 99%. 1% - данное ограничение. Здесь полку с именем узла можно и вручную "крутить", "вертеть" как надо пользователю и она всегда будет смотреть в центр круга, программировать тем же кодом, которым задаю параметры для любой другой мультивыноски. Моя задача "влепить" её на чертёж, а потом можно и "дочертить" руками как надо. В общем одни плюсы, но получается нельзя близко подставлять полку к кружку, и это плохо.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 14:50:33
Группа, насколько я понимаю, не "редактируемая" по-быстрому, чтобы полку повернуть относительно кружка - надо разбить группу...
Разбивать ничего не нужно.
В общем одни плюсы, но получается нельзя близко подставлять полку к кружку, и это плохо.
Потому что не предназначено оно для этих целей.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: RevitTormentor от 09-01-2018, 14:52:06
Потому что не предназначено оно для этих целей.
:(
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Владимир Шу от 09-01-2018, 14:56:32
Разбивать ничего не нужно.
Как редактировать положение выноски и надпись, не разбивая группу, я знаю, а вот как увеличить диаметр окружности нет. Прошу подсказать. (Замена окружности на полилинию - костыль)
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 15:03:32
Как редактировать положение выноски не разбивая группу я знаю, а вот как увеличить диаметр окружности нет. Прошу подсказать.
PICKSTYLE в 0, меняешь диаметр, PICKSTYLE в 1 (ну или что там было раньше)
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Владимир Шу от 09-01-2018, 15:07:58
PICKSTYLE в 0, меняешь диаметр, PICKSTYLE в 1 (ну или что там было раньше)
спасибо, так себе решение... удобнее через Ctrl ... но нет совершенства... В любом случае, спасибо.
Название: Re: Программно поменять параметр мультивыноски
Отправлено: Александр Ривилис от 09-01-2018, 15:32:45
спасибо, так себе решение... удобнее через Ctrl ... но нет совершенства... В любом случае, спасибо.
Еще вариант. Выбираешь группу. В панели свойств выбираешь CIRCLE и меняешь ему радиус или диаметр. Никакие системные переменные менять не нужно:
(https://farm5.staticflickr.com/4670/39593822491_8ff27076d7_o.png)