В предыдущей статье "Как явное сделать скрытым и наоборот" я не до конца раскрыл тему объявления переменных в методе ActHeader.
Итак, по порядку. В секции Public объявляются переменные доступ, к которым должен быть извне:
Что бы не засорять панель свойств AutoCAD лишней информацией, то скрываем параметр, как было описано встатье; "Как явное сделать скрытым и наоборот".
В секции Changeable объявляем только те переменные, которые необходимо изменять вручную из окна свойств AutoCAD, естественно они должны быть Public, обработку изменения этих переменных проводим в методе OnChangeParameters. Больше никакие параметры сюда вносить не надо.
В принципе переменную можно не объявлять вообще, но в этом случае она сохраняет свое значение только на время действия сеанса скрипта, и при новом вызове какого либо метода скрипта параметрического объекта значение переменной будет неопределённо. Можно каждый раз присваивать переменной новое значение, но в случае если необходимо сохранить значение переменной и при этом она нужна только внутри скрипта, например: значения радиокнопок, чекбоксов и т.п., вот в этом случае объявляем переменную, как Protected.
Табличные параметры в случае, если нет необходимости во взаимодействии с другими объектами СПДС, таблицами или показывать их в свойствах AutoCAD, объявлять не требуется они и без этого прекрасно сохраняются.
Итак, по порядку. В секции Public объявляются переменные доступ, к которым должен быть извне:
- из свойств AutoCAD;
- из универсального маркера;
- из таблиц СПДС;
- из других объектов СПДС (параметрические или геометрические зависимости)
Что бы не засорять панель свойств AutoCAD лишней информацией, то скрываем параметр, как было описано встатье; "Как явное сделать скрытым и наоборот".
В секции Changeable объявляем только те переменные, которые необходимо изменять вручную из окна свойств AutoCAD, естественно они должны быть Public, обработку изменения этих переменных проводим в методе OnChangeParameters. Больше никакие параметры сюда вносить не надо.
В принципе переменную можно не объявлять вообще, но в этом случае она сохраняет свое значение только на время действия сеанса скрипта, и при новом вызове какого либо метода скрипта параметрического объекта значение переменной будет неопределённо. Можно каждый раз присваивать переменной новое значение, но в случае если необходимо сохранить значение переменной и при этом она нужна только внутри скрипта, например: значения радиокнопок, чекбоксов и т.п., вот в этом случае объявляем переменную, как Protected.
Табличные параметры в случае, если нет необходимости во взаимодействии с другими объектами СПДС, таблицами или показывать их в свойствах AutoCAD, объявлять не требуется они и без этого прекрасно сохраняются.
Насколько я понимаю, есть еще одно основание объявить параметр публичным - если он изменяется при помощи "ручек".
ОтветитьУдалитьК примеру объект болт, есть ручка изменяющая длину болта - в этом случае, параметр длины должен быть публичным.
нет, для ручек публичным не надо объявлять, работать и так будет
Удалитьвот почему-то у меня не работает, хотя очень хочется уменьшить количество публичных переменных )
Удалитья не экстрасенс, что не работает?, код в студию...
Удалитьhttps://drive.google.com/file/d/0B8-oPxxcEFR1REx4RzVMUmtKUm8/edit?usp=sharing
УдалитьВот смотрите, есть ручка изменяющая положение выносной линии, за координаты этой ручки отвечают параметры a и b,
ручка работает только если а и b - публичные параметры, иначе ручка не работает...
если не публичные то то же работает, просто отрисовка происходит после изменения параметра.
УдалитьГрафику объекта прописывали ручками, где-то в коде косяк
пропишите в трубе СПДС, параметр L как Proteсted, все будет работать, единственное длина пропадет из видимых свойств объекта
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалить