Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ввод даннах в 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) умеет читать строки из файла, а по этому можно просто в делфях создать текстовое файло с параметрами (переменными), а потом лиспом прочесть...


Наверх

Титульная страница Поиск, карта сайта Написать письмо