CadImportVCL coordinates
-
- Posts: 39
- Joined: 04 Aug 2011, 11:31
- Location: Russia
Re: CadImportVCL coordinates
Прямоугольник добавляется как замкнутая полилиния, пример добавления полилинии есть в демо Add new entities.
Чтобы получить мировые координаты точки чертежа по клику на TsgDrawingNavigator, необходимо описать следующий обработчик события:
Данный обработчик необходимо повесить на событие OnMouseDown экземпляра объекта TsgDrawingNavigator (в Вашем коде это DNavigator):
Михаил
Чтобы получить мировые координаты точки чертежа по клику на TsgDrawingNavigator, необходимо описать следующий обработчик события:
Code: Select all
procedure TForm1.sgPaintBoxMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
vPt: TFPoint;
vUnits: string;
begin
vPt := DNavigator.GetDrawingCoords(X, Y, vUnits);
Form1.Caption := Format('%.3f; %.3f; %.3f', [vPt.X, vPt.Y, vPt.Z]);
if vUnits <> '' then
Form1.Caption := Form1.Caption + ' (' + vUnits + ')';
end;
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
begin
...
DNavigator.OnMouseDown := sgPaintBoxMouseDown;
end;
-
- Posts: 15
- Joined: 27 Aug 2012, 20:00
Загрузка блоков
Приведите пожалуйста пример вставки блока, в примерах не нашёл.
С Уважением Иван.
С Уважением Иван.
Re: CadImportVCL coordinates
Здравствуйте Иван.
Блок не является видимым примитивом чертежа, но содержит другие примитивы. На чертёж может быть добавлена ссылка на блок, например:
Александр.
Блок не является видимым примитивом чертежа, но содержит другие примитивы. На чертёж может быть добавлена ссылка на блок, например:
Code: Select all
var
circle: TsgDXFCircle;
block: TsgDXFBlock;
insert: TsgDXFInsert;
begin
circle := TsgDXFCircle.Create;
circle.Point := MakeFPoint(100, 100, 0);
circle.Radius := 50;
circle.Color := clGreen;
Img.Converter.Loads(circle);
Img.Converter.OnCreate(circle);
block := TsgDXFBlock.Create;
block.Name := 'my_block';
block.AddEntity(circle);
Img.Converter.Loads(block);
Img.Converter.OnCreate(block);
Img.Converter.Sections[csBlocks].AddEntity(block);
insert := TsgDXFInsert.Create;
insert.Block := block;
insert.Point := MakeFPoint(50, 50, 0);
insert.Scale := MakeFPoint(1, 2, 0);
Img.Converter.Loads(insert);
Img.Converter.OnCreate(insert);
Img.CurrentLayout.AddEntity(insert);
Img.GetExtents;
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support
-
- Posts: 15
- Joined: 27 Aug 2012, 20:00
Re: CadImportVCL coordinates
В примере Viewer есть пример отображения слоёв, но реализовать не получается, что необходимо создать чтобы перечислить все слои в чертеже в ListBox или StrinGrid.
Приведите пример пожалуйста.
С Уважением Иван.
Приведите пример пожалуйста.
С Уважением Иван.
Re: CadImportVCL coordinates
Здравствуйте.
К сожалению ваш вопрос не очень понятен, пожалуйста уточните что именно не получается. Доступ к слоям чертежа может быть получен как TsgCADImage.Converter.Layers.
Александр.
К сожалению ваш вопрос не очень понятен, пожалуйста уточните что именно не получается. Доступ к слоям чертежа может быть получен как TsgCADImage.Converter.Layers.
Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support
-
- Posts: 15
- Joined: 27 Aug 2012, 20:00
Re: CadImportVCL coordinates
Я имел ввиду информацию о слоях в текущем чертеже, имя, цвет.
И возможна ли загрузка формата svg, т.к. при загрузке файла Delphi выдаёт сообщение об ошибке: 'Uknown picture file extension (.png)' хотя файл формата svg.
С Уважением Иван.
И возможна ли загрузка формата svg, т.к. при загрузке файла Delphi выдаёт сообщение об ошибке: 'Uknown picture file extension (.png)' хотя файл формата svg.
С Уважением Иван.
Re: CadImportVCL coordinates
Здравствуйте Иван.
Свойства TsgDXFLayer.Name и TsgDXFLayer.Color содержат информацию об имени и цвете слоя. Вы можете получить эти значения для любого члена списка слоёв текущего чертежа. Формат SVG поддерживается библиотекой. Пожалуйста пришлите на почту support@cadsofttools.com или сохраните в этот топик любой SVG файл, демонстрирующий описываемую проблему.
Александр.
Свойства TsgDXFLayer.Name и TsgDXFLayer.Color содержат информацию об имени и цвете слоя. Вы можете получить эти значения для любого члена списка слоёв текущего чертежа. Формат SVG поддерживается библиотекой. Пожалуйста пришлите на почту support@cadsofttools.com или сохраните в этот топик любой SVG файл, демонстрирующий описываемую проблему.
Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support
-
- Posts: 15
- Joined: 27 Aug 2012, 20:00
Re: CadImportVCL coordinates
Вот сам файл: http://files.mail.ru/66HIKO
И ещё вопрос, нет ли такой возможности в компонентах как в автокаде, загрузка чертежа с растровым изображением,
то есть есть чертёж в автокаде, я подгружаю растр работаю с ним сохраняю, потом открываю через компонент и вместо чертежа с растром открывается только векторный чертёж.
И как правильно освобождать память при загрузке следующего чертежа, память расходует около 600 мб при размере svg 29 мб.
С Уважением Иван.
И ещё вопрос, нет ли такой возможности в компонентах как в автокаде, загрузка чертежа с растровым изображением,
то есть есть чертёж в автокаде, я подгружаю растр работаю с ним сохраняю, потом открываю через компонент и вместо чертежа с растром открывается только векторный чертёж.
И как правильно освобождать память при загрузке следующего чертежа, память расходует около 600 мб при размере svg 29 мб.
С Уважением Иван.
Re: CadImportVCL coordinates
Здравствуйте.
Ошибок 'Uknown picture file extension (.png)' либо других мы не получаем. файл открывается и отрисовывается. Как вы сами пишите
Не совсем понятно какую команду Автокада вы подразумеваете. Растровое изображение может быть добавлено как примитив Image. Но содержимое Image не редактируется и остаётся растром. Примитив Image поддерживается библиотекой CAD Import VCL. Если в вопросе подразумевался импорт метафайла, то прежде всего метафайл это не растр. Текущей версией библиотеки импорт структуры метафайлов не поддерживается, этот функционал находится в разработке.
Специальных методов для освобождения памяти вызывать не нужно. Метод LoadFromFile/LoadFromStream освобождает память, занимаемую предыдущим чертежом.
Александр.
Ошибок 'Uknown picture file extension (.png)' либо других мы не получаем. файл открывается и отрисовывается. Как вы сами пишите
То есть файлы SVG формата открываются.память расходует около 600 мб при размере svg 29 мб
Не совсем понятно какую команду Автокада вы подразумеваете. Растровое изображение может быть добавлено как примитив Image. Но содержимое Image не редактируется и остаётся растром. Примитив Image поддерживается библиотекой CAD Import VCL. Если в вопросе подразумевался импорт метафайла, то прежде всего метафайл это не растр. Текущей версией библиотеки импорт структуры метафайлов не поддерживается, этот функционал находится в разработке.
Специальных методов для освобождения памяти вызывать не нужно. Метод LoadFromFile/LoadFromStream освобождает память, занимаемую предыдущим чертежом.
Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support