Page 1 of 1

cad import vcl: xref search path

Posted: 26 Jan 2007, 16:51
by libersky
Добрый день,
Возможно ли указать папки для поиска xrefs при конвертировании dxf в картинку, или надо вручную добавлять все файлы через tsgdxfimage.converter.addxref?

Posted: 26 Jan 2007, 17:07
by support
Здравствуйте!

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

Сергей.

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

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

Posted: 29 Jan 2007, 10:38
by PoltP
Здравствуйте,
согласно документации 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.

Posted: 30 Jan 2007, 22:05
by edbored
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

Posted: 31 Jan 2007, 16:33
by PoltP
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.

Posted: 31 Jan 2007, 21:29
by edbored
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

Posted: 07 Sep 2007, 12:51
by support
Мы добавили возможность указания пути для поиска 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