![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ввод даннах в AutoCad
k_serg © (2006-06-01 11:19:00)Помогите решить проблему ввода данных в AutoCad.
есть информация о координатах точек XYZ . нужно ввести их в файл AutoCadа. Может кто-то решал такую задачу. Помогите.
k_serg (2006-06-02 12:45:00) [1]попробовал объектную модель AutoCAD. получается ,но очень медленно.
каждая точка вводится отдельно, рисуется... а точек набирается до 500тыс. делаю так:
InsertPoint: OleVariant;
point: IAcadPoint;
// l = кол-во точек
for i:=1 to l do
begin
InsertPoint:= GetFloatPoint(x[i],y[i],z[i]);
point:= AcadDoc.ModelSpace.AddPoint(InsertPoint);
end;
это работает.хотелось бы ускорить процесс, пробовал чтобы вводился сразу массив, но вызываются ошибки
// l = кол-во точек
Points:= VarArrayCreate([0, l*3+1], VarDouble);
// заполняем массив точек
for i:=0 to l-1 do
begin
Points[i*3]:= x[i]; Points[i*3+1]:= y[i];Points[i*3+2]:= z[i];
end;
далее 1-й вариант:
AcadDoc.Application.ActiveDocument.ModelSpace.AddTrace(Points);
2-й вариант:
Poly :=AcadDoc.Application.ActiveDocument.ModelSpace.AddPolyline(Points);
вызывает ошибку EOleException c сообщением 'Ole error 80210011'
3-й вариант:
AcadDoc.Application.ActiveDocument.ModelSpace.InsertBlock(Points,'1',1,1,1,0,3);
вызывает ошибку EOleException c сообщением 'Filer error '
помогите избавиться от ошибок.
или может есть другой способ ускорить процес?
Sens (2006-06-01 13:53:00) [2]Автокад (Lisp) умеет читать строки из файла, а по этому можно просто в делфях создать текстовое файло с параметрами (переменными), а потом лиспом прочесть...