CAD в целом. В данной статье рассмаривается связка Delphi 7 и Auto. CAD 2. 00. 4, если у вас более поздняя версия какого то из программных продуктов, то это не страшно, так как принцип работы останется тот же самый. ПОДГОТОВИТЕЛЬНЫЕ ДЕЙСТВИЯ Сначала импортируйте библиотеку Auto. CAD в Delphi, для этого выберите пункт меню Project. Import Type Library, далее нажмите кнопку Add и добавьте файл acax. C Program Files. Common Files. Autodesk Shared, после чего инсталлируйте новый набор Active. X компонентов в систему. Вам станет доступно 5 новых компонентов Acad. Ac. Cm. Color Acad. Data. Base Acad. Security. Params Acad. Layer. State. Manager Acad. Document Обязательно загляните в модуль Auto. CAD. Обязательно подключите модуль Com. Obj. Теперь разместите на форме кнопку, назовите ее. Для чего воспользуемся стандартным методом Auto. CAD Add. Line. Add. LineНачальные. Координаты, Конечные. Координаты, где Начальные. Координаты массив из трех точек ось X, Y, Z, определяющий координаты начала линии., где Конечные. Координаты массив из трех точек ось X, Y, Z, определяющий координаты конца линии. Прежде чем передать массив в качестве аргумента воспользуйтесь функцией Var. Array. Create, которая создаст его. Var. Array. Create. Пример V Var. Array. Create. Итак, Вам необходимо кинуть на форму еще одну кнопку, назовите ее. Теперь нам понадобиться следующий код First. Point Var. Array. Create. А пока осталось только начертить линию с помощью следующей строчки кода Auto. Cad. Line Acad. Document. Model. Space. Add. LineFirst. Point, Second. Point Стоит отметить, что для работы с графическими объектами я использовал коллекцию Model. Space, которая позволяет обращаться ко всем графическим объектами чертежа. Можете также воспользоваться коллекцией Paper. Space, правда в этом случае нам будут доступны только объекты содержащиеся в активном, в данный момент слое. На рис. 3 вы можешь видеть упрощенную схему объектной структуры Auto. CAD. Итак, продолжаем. Линия у нас уже есть, теперь проведем над ней одну манипуляцию покрасим ее в красный цвет с помощью всего лишь одной строчки кода Auto. Cad. Line. color ac. Red После того как работа с чертежом окончена нужно сообщить об этом Auto. CAD, делается это следующим образом Acad. Document. 1. Application. Update. Полный листинг для обработчика события On. Click кнопки. Разместите на форме еще одну кнопку, назовите ее. Зададим опять две локальные переменный Start. Point и Second. Point, с типом Ole. Variant, сделаем для них такие же массивы как в прошлый раз и напишем вот такой код First. Point Acad. Document. Utility. Get. PointEmpty. Param,Укажите начальную координату. Second. Point Acad. Document. 1. Utility. Get. PointEmpty. Param,Укажите конечную координату Как начертить линию имея ее координаты, вы уже знаете и разбирать этот процесс нет смысла, поэтому протестируем готовый код запустите программу, нажмите кнопку. Обратите внимание в командной строке, расположенной в нижней части окна Auto. CAD появился текст. Появится надпись. В результате, из указанных нами точек появится линия. Вот оно чудо взаимодействия программы и программиста Однако, не будем отступать от главного перейдем на следующий уровень. Форма Бланка Квитанции Гибдд. На подходе фигура посложней полилиния. С помощью нее можно строить всевозможные многоугольники. Для начала построим четырехугольник, стоит отметить, что в этом случае Вам достаточно задать две координаты X и Y. Размещайте на форме кнопку, назовите ее. Последний штрих Auto. CADPolyline Acad. Document. 1. Model. Space. Add. Light. Weight. PolylinePoints Протестируем программу и нарисуем новую фигуру. Пришло время поговорить немного о самом Auto. CAD. Произведите двойной щелчок в чертеже, на только что сформированном прямоугольнике, он станет активным и на экране появиться окно свойств. Обратите внимание на содержимое выпадающего списка, расположенном в самом вверху. В нем мы имеем честь наблюдать тип своей фигуры, в данном случае это polyline т. Если кликнуть мышкой по свойству Vertex, в нем появятся две стрелки, с помощью которых вы можете переключаться между отдельными вершинами фигуры. Соответсвенно, в этот момент будут меняться свойства Vertex. X и Vertex. Y, отвечающие за координаты. А вот в свойстве Area можно получить значение площади созданной вами фигуры, удобно, не так ли Я думаю имеет смысл вывести эту информацию в окне нашей программы Show. MessageПлощадь фигуры Float. To. StrAuto. CADPolyline. Area Добавьте еще одну кнопку на форму, назовите ее. Для работы с этой фигурой надо задать три точки координаты центра круга, и его радиус, а затем использовать следующий метод Add. CircleКоординаты. Центра, РадиусРазнообразим чертеж текстом, добавляющийся с помощью процедуры Add. Text Add. TextТекст, Координаты, Высота, где Текст выводимый текст, заключенный в кавычки., где Координаты это две точки X и Y, в которых начнется вывод текста., где Высота высота текста. СЛОИ При работе с чертежом, может возникнуть необходимость присвоения имени отдельным объектам или их группам, это позволит удобно обращаться к ним в дальнейшем. Данный механизм реализован в Auto. CAD посредством слоев. Итак, создайте новый чертеж, нарисуйте в нем два прямоугольника, а также с помощью полилинии некий многогранник, далее в каждой фигуре проставьте текст. Нажмите кнопку New и введите текст First. Room точно таким же образом создайте слои Second. Room и Third. Room. После двойного клика на первой комнате появится окно PROPERTIES, далее в свойстве Layer установите для выбранной фигуры слой First. Room, назначьте остальным фигурам одноименные слои. Последний штрих, начертите в целях эксперимента простую линию и круг. Все, подготовительные действия выполнены, приступаем к коддингу будем решать более серьезные задачи, а именно получим в нашей программе данные о только что созданном чертеже. Разместите на форме TList. Box и кнопку. Сначало нужно организовать цикл, перебирающий все графические объекты, принадлежащие чертежу for i 0to Acad. Document. 1. Model. Space. Count 1do. Проверяя название фигуры, вы будете осуществлять необходимые действие. Так как отдельные фигуры имеют разный набор свойства и количество координат, например, линия задается двумя точками, каждая из которых проецируется в трехмерной системе ось X,Y,Z, а вот каждая точка полилинии позиционируется всего лишь в оси X и Y, то эти моменты обязательно надо учитывать. Поэтому для каждой фигуры придется писать свой собственный обработчик. Я рассмотрю описанный выше момент на следующем примере if Auto. Cad. Object. Entity. NameAc. Db. CirclethenbeginКоординаты центра круга. Auto. Cad. Object as IAcad. Circle. Center. List. Box. 1. Items. AddОбъект Круг. List. Box. 1. Items. AddКоординаты центра X Int. To. Strt. Обратите внимание, когда идет обработка полилинии перед вами встанет практически философский вопрос, как узнать количество точек из которых она состоит, дело в том, что это может быть обычный прямоугольник, который будет содержать 4 точки или ломанная фигура состоящая из 1.