Главная / САПР /
Программирование в AutoCAD / Тест 10
Программирование в AutoCAD - тест 10
Упражнение 1:
Номер 1
Как из AutoCAD установить связь с MS Word?
Ответ:
 (1) (setq ff (vlax-get-or-create-object "Word.Application.14")) 
 (2) (vlax-dump-object ff T) 
 (3) (setq ff (vlax-get- object "Word.Application.14")) 
Номер 2
Какая функция позволяет вывести свойства и методы объекта Application?
Ответ:
 (1) (vlax-dump-object ff T) 
 (2) (vlax-get-property ff "Application") 
 (3) (vlax-invoke-method ff 'Command: vlax-true) 
Номер 3
Какая функция позволяет извлечь значения свойств объекта ff?
Ответ:
 (1) (vlax-get-property ff "Version") 
 (2) (vlax-put-property ff "Version") 
 (3) (vlax-dump-object ff) 
Упражнение 2:
Номер 1
Какая функция позволяет изменить значения свойств объекта?
Ответ:
 (1) (vlax-invoke-method ff 'Command: vlax-true) 
 (2) (vlax-put-property ff 'Property: vlax-true) 
 (3) (vlax-dump-object ff T) 
Номер 2
Как обеспечить доступ к активному документу Word?
Ответ:
 (1) нужно извлечь значение свойства ActiveDocument объекта docs 
 (2) нужно извлечь значение свойства ActiveDocument объекта Application 
 (3) при загрузке в память Word.Application открывается активный документ 
Номер 3
Как сохранить документ Word?
Ответ:
 (1) (SaveAs "d:\\Temp\\WordDoc.doc") 
 (2) (vlax-invoke-method doc 'SaveAs "d:\\Temp\\WordDoc.doc") 
 (3) (vlax-invoke-method ff 'SaveAs "d:\\Temp\\WordDoc.doc") 
Упражнение 3:
Номер 1
Как в объекте Word создать новый документ?
Ответ:
 (1) (setq docs(vlax-get-property ff 'Documents)) 
 (2) (setq doc(vlax-invoke-method docs "Add")) 
 (3) (setq doc(vlax-invoke-method docs 'Add)) - добавляем к семейству 
Номер 2
Как в документе Word создается рабочий диапазон r с позицией 0 0?
Ответ:
 (1) в активном документе диапазон устанавливается по умолчанию 
 (2) (setq r (vlax-invoke-method doc "Range" "0 0")) 
 (3) (setq r (vlax-invoke-method doc 'Range 0 0)) 
Номер 3
Как закрыть видимое окно Word?
Ответ:
 (1) (vlax- invoke-method ow "Quit") 
 (2) (close ff) 
 (3) (vlax- invoke-method ff "Quit") 
Упражнение 4:
Номер 1
Каково назначение функции (vl-load-com)?
Ответ:
 (1) установление связи с объектами ActiveX 
 (2) загрузка библиотек, обеспечивающих работу с ActiveX 
 (3) начать работу программы 
Номер 2
Как в документе Word написать заголовок в начале рабочего диапазона r?
Ответ:
 (1) (setq ff (open "c:\\test.doc" "w"))(write-line "Header" ff) 
 (2) (vlax-invoke-method r 'InsertBefore "Header") 
 (3) (vlax-invoke-method r 'Write "Header") 
Номер 3
Как освободить память от глобальных переменных?
Ответ:
 (1) перезагрузить программу AutoCAD 
 (2) (setq ff nil r nil doc nil docs nil ow nil) 
 (3) перезагрузить компьютер 
Упражнение 5:
Номер 1
Поясните, как осуществляется поиск листа с именем "Спецификация" в рабочей книге?
Ответ:
 (1) вначале мы обращаемся к свойству активной рабочей книги (awb) "Worksheets" и составляем список shs всех листов: (setq shs (vlax-get-property awb "Worksheets")). Затем в этом списке мы обращаемся к свойству "Name", перебирая листы в цикле vlax-for со счетчиком цикла s. Функция условия if сравнивает имя каждого листа с заданным. В случае совпадения номер листа присваивается переменной mainsh - указателю на лист с нужным именем: (vlax-for s shs (if (= sheetname (vlax-get-property s "Name"))(setq mainsh s))). Глобальной переменной sheetname присваивается значение литерала "Спецификация" при обращении к программе 
 (2) лист "Спецификация" получаем из семейства "Worksheets" 
 (3) лист ищем по имени в коллекции рабочих листов 
Номер 2
Нужно ли открывать файл MS Excel перед запуском программы readex11_com?
Ответ:
 (1) нет, не нужно, мы получаем указатель книги awb, обращаясь к методу "Open" коллекции рабочих книг wkbs (tb_xls = "d:\\r16\\readex11.xls"): (setq awb (vlax-invoke-method wkbs "Open" tb_xls)) 
 (2) файл должен быть загружен в память, т.е. открыт 
 (3) открывать файл не нужно, он вообще может быть невидимым 
Номер 3
Какие операции выполняет функция (vla-variant-value)?
Ответ:
 (1) преобразование из типа вариант в обычное число 
 (2) создание структуры вариант 
 (3) изменение типа данных на тип вариант 
Упражнение 6:
Номер 1
Что такое безопасные массивы (safearray)?
Ответ:
 (1) это массивы, с которыми безопасно работать 
 (2) это массивы однотипных vla-объектов 
 (3) это обычные числовые массивы 
Номер 2
Какие vla-объекты нужно получить для начала работы по технологии ActiveX?
Ответ:
 (1) (vl-load-com) 
 (2) acad_app, active_doc, model_space, paper_space 
 (3) Safearray, variant 
Номер 3
Каково назначение метода "Evaluate" в программе лекции?
Ответ:
 (1) оценка ячеек А1 и В1 
 (2) здесь метод извлекает значения в ячейках А1 и В1 и возвращает значение типа Variant) 
 (3) выполнить, вычислить 
Упражнение 7:
Номер 1
Как преобразовать примитив в vla-объект, а из vla-объекта получить примитив?
Ответ:
 (1) загрузить функцию (vl-load-com) 
 (2) (vlax-make- vla-object) 
 (3) c помощью функций (vlax-ename-< vla-object) (vlax-vla-object -< vlax-ename) 
Номер 2
Как модифицировать свойства vla-объекта?
Ответ:
 (1) извлечь свойства (vlax-dump-object) и задать их (vla-put-) 
 (2) преобразовать в объект и делать как обычно 
 (3) нужно в vla-объекте изменить значение нужного параметра 
Номер 3
Как аннулируются объекты, сформированные глобальными переменными?
Ответ:
 (1) присвоением им значения nil 
 (2) удалением переменных 
 (3) c помощью функции (vlax-release-object) 
Упражнение 8:
Номер 1
Как создать вариант?
Ответ:
 (1) (vlax-make-variant[<данное>[<целое>]]), где "целое" задает тип 
 (2) (vlax-variant-value) 
 (3) (vlax-variant-put-element) 
Номер 2
Что возвращает функция (vlax-get-acad-object)?
Ответ:
 (1) vla-объект семейства открытых документов Documents 
 (2) возвращает vla-приложение AutoCAD 
 (3) возвращает документ AutoCAD 
Номер 3
Насколько рационально перенесение таблицы Excel в AutoCAD методом программного чтения, изложенным в лекции?
Ответ:
 (1) для практики это нерационально. Более рациональны импорт таблицы из MS Excel или вставка как OLE-объекта 
 (2) на одном компьютере это никто не будет делать 
 (3) это слишком сложный и громоздкий метод