Auto CAD

Незначительное отличие


Есть незначительное отличие. В четвертой строке функция rtd стоит перед функцией GETANGLE, поэтому потребовались еще одни скобки. Возможно, вам будет проще понять, как работает функция rtd, если я перепишу программу, добавив еще один шаг. В листинге добавлена еще одна строка, которая переопределяет переменную angi. Обратите внимание на комментарий внутри строки 5, следующий за точкой с запятой. Не удивляйтесь тому, что имя переменной angi встречается в этой строке дважды. Таким способом программным переменным присваиваются новые значения, основанные на текущих значениях. Очень логично.

Небольшое замечание относительно разных релизов: если вы думаете, что эту программу можно упростить, если использовать опцию Сору (Копировать) команды ROTATE (ПОВЕРНУТЬ), вы правы. Однако в версиях до AutoCAD 2006 у команды ROTATE (ПОВЕРНУТЬ) не было опции Сору (Копировать). Код, в том виде, в котором он написан здесь (cormnand ,г._СОРУ" ssl "" ptl ptl ".ROTATE" ssl ptl angi), работает в любой версии, а не только начиная с AutoCAD 2006. Это хорошая практика при написании кода.

Использование функций AutoLISP в прозрачном режиме

Вы знаете, что можете исполнять функции AutoLISP непосредственно из командной строки, но вы можете не знать, должна ли при этом командная строка быть чистой. Нет, не должна. Вы можете запустить функцию AutoLISP

в прозрачном режиме, не завершая команду. Давайте напишем функцию AutoLISP, которая преобразует дюймы в миллиметры и которой вы сможете пользоваться в процессе создания или редактирования чертежа в AutoCAD. Вы уже создавали ранее аналогичную команду AutoCAD, поэтому, чтобы получить функцию, потребуется только незначительная модификация файла.

Предположим, вы строите отрезок командой LINE (ОТРЕЗОК) и указали первую точку. На экране появилась пунктирная линия полярного отслеживания. Вы знаете длину отрезка в дюймах, но у вас чертеж, выполненный в метрической системе. Как пересчитать дюймы в миллиметры в AutoCAD в процессе создания отрезка? Если у вас загрулсена функция п, используйте ее вместо ответа на запрос команды. Только не забудьте поставить в скобки. А если число меньше 1, не забудьте поставить 0 перед точкой (8.8).

Вы не можете пользоваться таким способом в диалоговых окнах, а также вводить функцию после символа @. Но эта функция прекрасно работает для всех значений, которые вводятся в командной строке, в частности, для расстояний между точками.

Комментарии закрыты