Хочу поделиться результатами своих поисков.
Возможно они пригодятся для начинающих "автоматизаторов" ACADa.
Вот пример реального кода:
На форме три кнопочки:
Button1 открывает AutoCAD
Button2 передает в коммандную строку ACADa комманду text
Button3 приводит к выполнению ACADом скрипт-файла
unit Victory;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
Обязательно нужно определить переменную через которую будет идти связь с ACADом
AutoCAD:variant;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
Незабывайте подключить библиотеку СomObj
uses ComObj;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
try
Пытаемся определить запущен ли ACAD.Конструкция try except защищает от возникновения сообщения об шибке, если ACAD не пущен.При запуске программы из Delphi она в этом месте ругается, но стоит запустить проект после Build как уже готовый и все работает корректно !!!
AutoCAD := GetActiveOleObject('Autocad.Application');
except
Если ACAD еще не запущен, запускаем его.
AutoCAD := CreateOleObject('Autocad.Application');
AutoCAD.Visible := True;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Вот так вот в коммандную строку ACADа можно передать комманду для выполнения.(Безграничное поле возможностей LISPа)
AutoCAD.activeDocument.sendcommand('text 0,0 90 Приветик+#13+#13);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
AutoCAD.activeDocument.sendcommand('filedia 0'+#13);
А вот так запускается скрипт 111.scr, находящийся по адресу с:.
Для этого вполне годится комманда scr. При этом необходимо устанавливать переменную ACADa filedia в 0 , тогда адрес и имя передадутся через коммандную строку без открывания окна диалога.
AutoCAD.activeDocument.sendcommand('scr c:\111.scr'+#13);
AutoCAD.activeDocument.sendcommand('filedia 1'+#13);
end;
end.
Все проще простого !!!
Начинающим, как я, рекомендую форум на www.AutoCAD.ru - очень квалифицированные специалисты не поскупятся дать подробный ответ практически на любой вопрос.
Огромное спасибо Barmutikу, за то, что не дали пропасть моему интересу к Delphi как говорится "на ранней стадии".