Книги_AutoCad_2 / Настройка AutoCAD_Sham_Tickoo-Customizing_2006г
.pdf
DIESEL: язык строковых выражений |
581 |
Функция fix
Формат: $(fix,число)
Функция fix преобразует вещественное число в целое, отбрасывая знаки, стоящие после десятичной точки.
Примеры
$(fix,42.573) |
возвращает 42 |
$(fix,-23.50) |
возвращает –23 |
Функция getvar
Формат: $(getvar,имя_переменной)
Функция getvar используется для получения значений системных переменных AutoCAD.
Примеры
$(getvar,dimtad) возвращает значение системной переменной dimtad $(getvar,clayer) возвращает имя текущего слоя
Функция rtos
Формат: $(rtos,число) или $(rtos,число,режим,точность)
Функция rtos преобразует данное значение в вещественное число. Формат полученного числа определяется единицами линейных измерений и точностью отображения данных.
Примеры
$(rtos,50) |
возвращает 50 |
$(rtos,1.5,5,4) |
возвращает 1 Ѕ |
Примечание
В программе AutoCAD используются следующие единицы линейных измерений:
Режим измерения |
Единицы измерения |
0 |
Научные |
1 |
Десятичные |
2 |
Инженерные |
3 |
Архитектурные |
4 |
Дробные |
Точность (precision) — целое число, определяющее количество десятичных знаков. Этот параметр соответствует системной переменной LUPREC, а режим измерения определяется значением переменной LUNITS. Если система измерения и точность отображения линейных величин не заданы, в программе AutoCAD используются текущие значения системных переменных LUNITS и LUPREC, заданные с помощью команды UNITS.
Функция if
Формат: $(if,условие,then,else])
Если значение, возвращенное условным оператором, не равно 0, функция if вычисляет первое выражение (then). Если заданный условный оператор возвращает 0, вычисляется второе выражение (else).
582 |
Глава 16 |
Здесь:
•условие — заданное условие;
•then — выражение, вычисляемое в том случае, если условный оператор возвращает значение, не равное 0;
•else — выражение, вычисляемое в том случае, если условный оператор возвращает значение, равное 0.
Примеры
$(if,$(=,7,7),true) |
возвращает "true" |
$(if,$(=,5,7),true,false) |
возвращает "false" |
$(if,1.5,true,false) |
возвращает "true" |
Функция strlen
Формат: $(strlen,строка)
Функция strlen возвращает целое число, обозначающее количество знаков, содержащихся в определенной строке.
Пример
$(strlen,Customizing AutoCAD) возвращает 19
Функция upper
Формат: $(upper,строка)
Функция upper возвращает определенную строку в верхнем регистре.
Пример
$(upper,customization) возвращает CUSTOMIZATION
Функция edtime
Формат: $(edtime,дата,формат_вывода)
Функция edtime используется для редактирования и отображения даты в требуемом формате. Например, в юлианском представлении дата, полученная с помощью системной переменной DATE, имеет вид 2449013 . 85156759. Функция edtime позволяет отобразить полученное значение в более понятном виде. В следующей таблице показан формат выражений, которые могут быть использованы с функцией edtime.
Формат |
Выходные данные |
Формат |
Выходные данные |
D |
5 |
H |
2 |
DD |
05 |
HH |
02 |
DDD |
Sat |
MM |
23 |
DDDD |
Saturday |
SS |
12 |
M |
1 |
MSEC |
325 |
MO |
11 |
AM/PM |
PM |
MON |
Apr |
am/pm |
am |
MONTH |
April |
A/P |
P |
YY |
03 |
a/p |
P |
YYYY |
2003 |
|
|
DIESEL: язык строковых выражений |
583 |
Пример
$(edtime,$(getvar,date),DDDD","DD MONTH YY - HH:MMAM/PM)
Это выражение возвращает "Monday,28 April 03 - 08:52PM"
В ранее приведенном примере функция getvar получает дату в юлианском представлении (т.е. с числом дней от начала года), а функция edtime отображает полученное значение в указанном формате. В следующем примере показаны соответствующие поля формата отображения и значения, возвращаемые функцией edtime.
DDDD","DD MONTH YY - HH:MMAM/PM,
Здесь:
DDDD Monday
,,
DD 28
MONTH April
YY 03
--
HH 08
MM 52
AM/PM PM
Повторение пройденного материала
Выберите правильный ответ
1.DIESEL (Direct Interactively Evaluated String Expression Language) — язык строковых выражений. (Да/Нет)
2.Системной переменной MODEMACRO могут присваиваться только значения строкового типа, но при этом генерируемые выходные данные не являются строковыми. (Да/Нет)
3.Выражение DIESEL не может быть определено в экранном меню. (Да/Нет)
4.Координаты, отображаемые в строке состояния, могут быть только динамическими. (Да/Нет)
5.Значение системной переменной MODEMACRO останется измененным до тех пор, пока вы не введете новое значение, не начнете новый или не откроете уже существующий чертеж. (Да/Нет)
6.Количество символов, которые могут быть отображены в поле управления слоями, не должно превышать 38. (Да/Нет)
7.Поле счетчика координат не изменяется и не редактируется. (Да/Нет)
8.Чтобы присвоить системной переменной MODEMACRO определенное значение, можно также использовать макровыражения, написанные на языке DIESEL. (Да/Нет)
9.В языке DIESEL для получения имени чертежа обычно используется макровыражение $(getvar,dwgname). (Да/Нет)
10.При записи макровыражений DIESEL функции AutoLISP обычно не используются. (Да/Нет)
584 Глава 16
Заполните пустые места
11.Все макровыражения должны начинаться со знака ________.
12.В формате отображения DDD строковое выражение Monday будет возвращено в виде ________.
13.Выражение DIESEL $(upper,AutoCAD) возвратит ________.
14.Выражение DIESEL $(strlen,AutoCAD) возвратит ________.
15.Выражение DIESEL $(if,$(=,3,2),yes,no) возвратит ________.
16.Выражение DIESEL $(fix,-17.75) возвратит ________.
17.Выражение DIESEL $(eq,Customizing,customizing) возвратит ________.
18.Выражение DIESEL $(/81,9,9) возвратит ________.
19.Системная переменная MACROTRACE может быть использована для ________ выражения DIESEL.
Упражнения
Упражнение 1 (Общее)
Используя команду MODEMACRO, переопределите строку состояния и выведите на экран следующую информацию:
•ваше имя;
•имя чертежа.
Упражнение 2 (Общее)
Используя команду MODEMACRO, переопределите строку состояния и выведите на экран следующую информацию:
•имя текущего размерного стиля;
•глобальный масштабный коэффициент (значение переменной dimscale);
•затраченное пользователем время, выраженное в часах.
В этом примере для обозначения размерного стиля, глобального масштабного коэффициента и общего затраченного времени используются аббревиатуры DIMS:, DIMFAC: и ETH:, соответственно.
Упражнение 3 (Общее)
Напишите программу AutoLISP, с помощью которой вы сможете вывести в строке состояния следующую информацию:
•имя текущего размерного стиля;
•глобальный масштабный коэффициент (значение переменной dimscale);
•затраченное пользователем время, выраженное в часах.
Глава 17
Visual Basic для приложений
Цель занятия
Познакомившись с материалом этой главы, вы научитесь:
•загружать и запускать несложные проекты VBA;
•работать с редактором Visual Basic Editor;
•использовать объекты AutoCAD;
•изменять свойства объектов;
•применять методы AutoCAD.
586 |
Глава 17 |
Первое знакомство с Visual Basic
Исходная версия BASIC была создана в 1963 году. Подразумевалось, что BASIC (Beginners All-purpose Symbolic Instruction Code) станет удобным и общедоступным языком программирования. В конце 1970-х этот язык начали использовать в первых микрокомпьютерах. Развитие BASIC завершилось с наступлением эпохи Windows и в 1991 году появилась первая версия Visual Basic (VB). С тех пор раз в год появлялась следующая версия этого языка. Текущая версия, как и ее многочисленные предшественники, дает возможность даже неопытным программистам создавать дружественные графические интерфейсы пользователя (GUI), прилагая для этого небольшие усилия. Графический интерфейс пользователя позволяет группе программистов организовать совместную работу над сложным проектом, использующим, например, язык программирования С, к которому прилагается внушительный пакет справочных материалов.
Другое преимущество Visual Basic состоит в том, что у вас есть возможность использовать старые программы, написанные еще на языке BASIC. Возьмем, например, программу для изменения размеров различных компонентов. Код этой программы, за исключением устаревших средств ввода-вывода, может быть использован в качестве ядра модулей Visual Basic для параметрического проектирования и разработки компонентов.
Visual Basic для приложений
Компания Autodesk первой получила лицензию Microsoft на использование Visual Basic® for Application (VBA) в программе AutoCAD версии 14.0. Следует заметить, что язык VBA используется многими большими компаниями, которые занимаются разработкой программного обеспечения. Инструментальные средства VBA ничем не отличаются от подобных средств, применяемых в автономном языке Visual Basic. Для того чтобы программисты, пишущие макросы для Microsoft Office, научились писать программы на языке VBA для приложений AutoCAD, им необходимо всего лишь познакомиться с основными функциональными возможностями этой программы.
Одним из свойств VBA является возможность взаимодействия с другими приложениями, такими как Microsoft Excel, Microsoft Word, Microsoft Access и Visual Basic, с использованием технологии ActiveX Automation. Эта технология была разработана компанией Microsoft для программирования компонентных приложений на основе модели СОМ. Технология ActiveX Automation позволяет обращаться к объектам и функциям AutoCAD из Microsoft Excel или других приложений, поддерживающих ActiveX. В то же время объекты и возможности Excel или какого-нибудь другого приложения могут с успехом использоваться в среде программирования AutoCAD. Язык AutoLISP, например, не поддерживает возможность перекрестного межпрограммного макропрограммирования. Прежде чем внедрять объекты AutoCAD в другие приложения, использующие технологию ActiveX, необходимо убедиться, что программа AutoCAD, установленная на вашем компьютере, содержит компонент Object Library.
В настоящее время Visual Basic используют миллионы программистов, но еще большее количество пользователей пишет программы на языке BASIC. При написании этой главы предполагалось, что вы уже знакомы с языком BASIC и основными концепциями программирования, которые описаны в главе, посвященной AutoLISP. Для получения более полной информации о командах и синтаксисе этого языка обратитесь к справочной системе.
Visual Basic для приложений |
587 |
Данная версия AutoCAD позволяет не только использовать макросы, созданные в других проектах, но и загружать несколько макросов одновременно. Можно также создавать библиотеки, содержащие макросы и общие функции.
Использование VBA в программе AutoCAD
Visual Basic позволяет писать программные коды, компилируемые в независимо исполняемые файлы (файлы с расширением .exe). Исполняемые файлы не зависят ни от используемых приложений, ни от документов, в которых они были написаны. Программы VBA должны соответствовать вашим потребностям. Например, если ваша компания производит болты и гайки, напишите программу, при запуске которой на экране появится диалоговое окно, с помощью которого вы сможете указать все необходимые параметры крепежных изделий. Это позволит значительно уменьшить время, затрачиваемое на проектирование оснастки, так как при изменении размеров деталей вам не придется каждый раз выполнять одни и те же команды.
Программы, написанные на языке VBA, могут сохраняться в виде проектов, содержащих всю информацию, необходимую для компилирования и запуска этих программ. В AutoCAD имеется независимая область, в которой можно выполнять любые операции, относящиеся к вашему проекту. Эта область называется интегрированной средой разработки (IDE — Integrated Development Environment). С этой областью вы познакомитесь в следующих разделах.
Редактор Visual Basic Editor
Редактор Visual Basic Editor дает возможность писать программные коды, которые называются модулями. Модули, собранные все вместе, образуют проект. Чтобы запустить редактор Visual Basic, выберите команду Tools Macros Visual Basic Editor (Сервис Макрос Редактор Visual Basic). На экране появится окно редактора Visual Basic, показанное на рис. 17.1. Visual Basic Editor называют также интегрированной средой разработки (IDE — Integrated Development Environment). Если вы хотите открыть новое окно, как показано на рис. 17.1, выберите команду UserForm (Форма пользователя) из меню Insert (Вставка).
С этими окнами вы познакомитесь в следующих разделах.
Окно Project Explorer
Окно Project Explorer содержит список модулей, пользовательских форм и других объектов, используемых в проекте. Элементы, перечисленные в этом окне, называются объектами. С объектами вы познакомитесь в одном из следующих разделов. Окно Project Explorer, как показано на рис. 17.2, содержит три папки: AutoCAD Objects (Объекты AutoCAD), Forms (Формы) и Modules (Модули). В папке AutoCAD Objects находится объект ThisDrawing, которым является текущий чертеж AutoCAD. В папке Forms содержатся формы Visual Basic, используемые в данном проекте. И наконец, в папке Modules содержатся модули, созданные в текущем проекте. Модули, в свою очередь, содержат родовые процедуры и функции. Когда вы вводите в проект новую форму или модуль, в окне Project Explorer появляется соответствующая папка.
588 Глава 17
Рис. 17.1. Редактор Visual Basic Editor, содержащий Project Explorer, окна Properties и Module (Code), форму UserForm и панель Toolbox
Рис. 17.2. Окно Project Explorer
Примечание
Чтобы добавить новую папку Forms или Modules в окно Project Explorer, выберите соответствующую команду в меню Insert.
Если окно Project Explorer не показано, щелкните на кнопке Project Explorer (
), которая находится на панели инструментов Standard (Стандартная).
Окно Project Explorer обычно используется в том случае, когда необходимо получить доступ к форме пользователя через окно Module (Code), показанное на экране. Например, если вы хотите просмотреть код, содержащийся в форме пользователя, щелкните правой кнопкой мыши на форме, находящейся в окне Project Explorer, и выберите из контекстного меню опцию View Code. На экране появится окно User form (Code).
590 |
Глава 17 |
UserForm (Форма пользователя) и Toolbox (Панель инструментов)
Форма UserForm, показанная на рис. 17.5, является внешним интерфейсом программы и обеспечивает возможность взаимодействия с пользователем. На этой форме могут быть размещены различные элементы управления (кнопки, переключатели, флаговые или селективные кнопки и т.д.), с помощью которых вы сможете вводить необходимые данные. Чтобы вставить новую форму, выберите команду UserForm (Форма пользователя) из меню Insert (Вставка). Как только вы вставите форму, на экране появится панель инструментов Toolbox, показанная на рис. 17.6. Эта панель содержит множество различных элементов управления, которые вы сможете ввести в создаваемую форму, перетаскивая их из панели инструментов.
|
Рис. 17.6. Панель инстру- |
Рис. 17.5. Форма пользователя |
ментов Toolbox |
Объекты Visual Basic
Основной целью Visual Basic является управление функциями приложений и автоматизация их работы с помощью команд VBA. Это стало возможным благодаря использованию объектов Visual Basic, обеспечивающих получение доступа к создаваемому приложению. Основными объектами программы AutoCAD являются объект приложения (Application object) и объект документа (Document object).
Объект приложения
Приложения, с которыми вы работаете, называются объектами приложения. К их числу относится, например, программа AutoCAD. Существует ряд методов и свойств, связанных с объектами этого типа. К их числу относятся методы Quit, ZoomAll, Runmacro и многие другие. Метод Quit обеспечивает выход из программы; метод ZoomAll изменяет масштаб объектов и приводит их в соответствие с размерами текущего видового экрана. Метод Runmacro выполняет указанный макрос.
Основными свойствами объектов приложения являются высота, ширина и заголовок. Высота и ширина объекта определяют соответствующие размеры окна приложения, а заголовок представляет собой строковое выражение, отображаемое в строке заголовка, которая находится в верхней части окна. Эти свойства могут использоваться для поиска окна, содержащего требуемый документ.
