cad import vcl: xref search path

Discuss and ask questions about CAD VCL (Delphi and C++ Builder).

Moderators: SDS, support, admin

Post Reply
libersky
Posts: 2
Joined: 26 Jan 2007, 16:36

cad import vcl: xref search path

Post by libersky » 26 Jan 2007, 16:51

Добрый день,
Возможно ли указать папки для поиска xrefs при конвертировании dxf в картинку, или надо вручную добавлять все файлы через tsgdxfimage.converter.addxref?

support
Posts: 3272
Joined: 30 Mar 2005, 11:36
Contact:

Post by support » 26 Jan 2007, 17:07

Здравствуйте!

Не могли бы Вы подробнее поянить стоящую перед Вами задачу:
что имеется на входе и что должно быть на выходе?

Сергей.

Please post questions to the forum or write to support@cadsofttools.com

libersky
Posts: 2
Joined: 26 Jan 2007, 16:36

Post by libersky » 26 Jan 2007, 19:08

Есть файл .dxf и его надо конвертировать в bmp. Как это сделать я уже разобрался, однако в dxf есть использует внешние файлы (xrefs). Можно ли как-то указать папку в которой лежат эти файлы чтобы компонент сам автоматом брал искал нужные файлы в этой папке или нужно каждый файл xref добавлять через функцию tsgdxfimage.converter.addxref?

PoltP
Posts: 8
Joined: 20 Jul 2006, 12:47
Location: Russia
Contact:

Post by PoltP » 29 Jan 2007, 10:38

Здравствуйте,
согласно документации AutoCAD®, в DXF/DWG-файле XREF-путь может быть указан в полном виде (например: "C:\Drawings\Xref1.dwg") или относительном (например: "..\Xref1.dwg").
Если по указанному пути наш компонент не находит требуемый файл, то, по аналогии с AutoCAD®, поиск этого файла происходит в текущей с "чертежом-контейнером" (чертёж, имеющий XREF'ы) папке.
В данный момент нет средств для указания папки поиска Xref'ов.
Вероятно, в Вашем "чертеже-контейнере", указаны полные пути, которые не существуют. На наш взгляд, решением проблемы было бы простое копирование чертежей в текущую с "чертежом-контейнером" папку.

Если Вы не находите решением данное указание, мы можем в частном порядке добавить требуемый для Вас функционал (за более детальной информацией обращайтесь на [url="mailto:info@cadsofttools.com"]info@cadsofttools.com[/url] со ссылкой на данную тему форума).

- - -
Yours faithfully,
Pavel Poltavets,
senior developer Soft Gold Ltd.

edbored
Posts: 20
Joined: 26 Jul 2005, 00:15
Location: Canada

Post by edbored » 30 Jan 2007, 22:05

This topic subject looks like something I am very interested in. Unfortunately I can't read anything here...

I am looking for a way to specify a path to search for XREFs in the same way that a path to fonts can be specified.

That is, most of my customers use "title blocks" that are an XREF in every drawing. When my program prints the drawing, it can't find the XREF (or MREF?) because the path is specified in AutoCAD - and not saved in the drawing itself.

So, is there a way to add "look over there in folder xxx" when trying to load an XREF?

Thanks,
EdB

PoltP
Posts: 8
Joined: 20 Jul 2006, 12:47
Location: Russia
Contact:

Post by PoltP » 31 Jan 2007, 16:33

According to the AutoCAD documentation, an XREF path in DWG/DXF file can be absolute (e. g. "C:\Drawings\Xref1.dwg") or relative (e. g. "..\Xref1.dwg"). If our component doesn't find the referenced file on the given path, then similar to AutoCAD, this file is searched in the current folder ( a folder where a file with XREFs is located ).
For now we don't offer a tool for indicating a folder where the referenced files are searched.
Probably, your drawing contains XREFs having absolute paths that don't exist. In our opinion, the problem could be solved by copying the referenced files into the drawing's current folder.
If you are not satisfied with such solution we could privately add the required functionality ( for details email to info@cadsofttools.com with reference on this forum topic).

- - -
Yours faithfully,
Pavel Poltavets,
senior developer Soft Gold Ltd.

edbored
Posts: 20
Joined: 26 Jul 2005, 00:15
Location: Canada

Post by edbored » 31 Jan 2007, 21:29

I've sent a request for quote.

Is there another way to do this? Is there any way that I can get the xrefs to look "somewhere else" in code?

Cheers,
EdB

support
Posts: 3272
Joined: 30 Mar 2005, 11:36
Contact:

Post by support » 07 Sep 2007, 12:51

Мы добавили возможность указания пути для поиска XRef. За это отвечает новое свойство: <b>TsgDXFConverter.XRefSearchPath</b>. В случае, если файл по XReference не находится по указанному в нём пути и также не находится в каталоге с текущим файлом-контейнером, то он ищется по пути, указанному в TsgDXFConverter.XRefSearchPath.
Ниже имеется пример использования.

<b>English</b>:
We have added ability of defining a search path for missing XRefs. New property is responsible on this task: <b>TsgDXFConverter.XRefSearchPath</b>. When no XRef could be found by its path or in the same folder with file-container, the search will be implemented by the path defined in the <b>TsgDXFConverter.XRefSearchPath</b>.
Downwards goes an example.

Code: Select all

<b>procedure</b> TForm1.btnXRefSearchPathClick(Sender: TObject);
<b>var</b>
  vImg: TsgDXFImage;
  vBlock: TsgDXFBlock;
  I: Integer;
<b>begin</b>
  vImg := TsgDXFImage(sgPaintBox.picture.Graphic);
  vImg.Converter.XRefSearchPath := <font color="blue">'c:\XRefSearchPath\'</font id="blue">;
  <b>for</b> I := <font color="blue">0</font id="blue"> <b>to</b> vImg.Converter.Sections[csBlocks].Count -<font color="blue">1</font id="blue"> <b>do
  begin</b>
    vBlock := TsgDXFBlock(vImg.Converter.Sections[csBlocks].Entities[I]);
    <b>if</b> vBlock.XrefPath <> '' <b>then
    begin</b>
      vBlock.IsLoaded := false;
      vImg.Converter.Loads(vBlock);
    <b>end</b>;
  <b>end</b>;
  vImg.GetExtents;
  sgPaintBox.Invalidate;
<b>end</b>;
Sergey.

Please post questions to the forum or write to support@cadsofttools.com

Post Reply