ЗНАЕТЕ ИНТУИТ, Лекция, Работа с ActiveX контроли

Създаване на обекти с ActiveX функции

Когато работите с ActiveX интерфейс, обектите могат да бъдат проверени само в реда, който съответства на тяхната йерархия. Преди да получите обекта, трябва да извлечете следните елементи:

  • Acad-object - Представлява програма AutoCAD.
  • ActiveDocument Представлява активния чертеж.
  • ModelSpace/PaperSpace - Представлява работното пространство на AutoCAD .

AutoLISP извлича първо пространствения тип, след това чертежа и накрая обекта AutoCAD. Нека вземем проста програма за сегментиране на редове и да я модифицираме с помощта на ActiveX функции .

За други функции за създаване на обекти на ActiveX вижте Помощ за Visual LISP: HELP - Visual LISP HELP ТЕМИ - СЪДЪРЖАНИЕ - ACTIVEX и VBA REFERENCE - МЕТОДИ. За да създадете функция Visual LISP, добавете префикса vla - към името на метода. Например, за да добавите кръг, използвайте функцията vla -AddCircle .

Достъп до документи

Работата с примитиви е възможна както в активния документ, така и в други отворени чертежи. Някои програми изпълняват операции не с един чертеж, а с няколко. След това, по време на изпълнението на програмата, същият документ трябва да остане активен. LISP - програмата се зарежда в пространството от имена на текущия чертеж.

В следващия пример функцията opendocs_name връща списък с имената на отворените в момента чертежи.

VLA - Обектът на приложение AutoCAD, извлечен от функцията vlax-get-acad-object, има свойство Documents. Той връща VLA - обект от семейството отворени документи.

За да използвате това свойство Documents, трябва да извикате функцията със същото име, но да добавите префикса vla -get-. Следователно, използвайки израза (setq _OpenDocs (vla -get-documents (vlax-get-acad-object))), променливата _OpenDocs се присвоява на VLA - обект от семейството документи, отворени в тази сесия.

За итерация над елементите се стартира цикъл, който се изпълнява от функцията vlax-for. В този цикъл работната променлива _d се използва като обозначение на текущия член на семейството, който се итерира. Редове с имена на отворени чертежи се натрупват в _nlist. Първоначалната стойност на тази локална променлива е нула. Функцията за добавяне се използва за добавяне на нов елемент към списъка. .

Функцията vla -get-fullname съответства на свойството FullName. Той връща пълното име на отворения dwg файл. Ако обаче новият чертеж не е бил запазен, вместо името ще се върне празен низ, въпреки че името на прозореца е Drawing1.dwg. Следователно в примера пълното име на файла се получава с помощта на свойствата Path and Name .