Copy layers
Moderators: SDS, support, admin
Copy layers
How to copy all layers from one TsgDXFImage in another TsgDXFImage?
Hello,
Please use the following code:
Sergey.
please post questions to the forum or write to support@cadsofttools.com
Please use the following code:
Code: Select all
<b>procedure</b> TForm1.Copylayers1Click(Sender: TObject);
<b>var</b>
I: Integer;
vLayer, vL: TsgDXFLayer;
vCAD: TsgDXFImage;
Converter: TsgDXFConverter;
<b>begin</b>
sgPaintBox.Picture.Graphic := <b>nil</b>;
Img := TsgDXFImage.Create;
Converter := Img.Converter;
Converter.Sections[csLayers] := TsgDXFGroup(Converter.NewEntity(Converter.Sections[csTables],TsgDXFTable));
vCAD := TsgDXFImage.Create;
<b>try</b>
vCAD.LoadFromFile('C:\Test-L.dxf');
<b>for</b> I := 0 <b>to</b> vCAD.Converter.Sections[csLayers].Count - 1 <b>do
begin</b>
vL := TsgDXFLayer(vCAD.Converter.Sections[csLayers].Entities[I]);
vLayer := TsgDXFLayer.Create;
Converter.Sections[csLayers].AddEntity(vLayer);
vLayer.Flags := vL.Flags;
vLayer.Pen.Assign(vL.Pen);
vLayer.IsPlotting := vL.IsPlotting;
vLayer.LineTypeScale := vl.LineTypeScale;
vLayer.Lines := TsgLines.Create;
vLayer.Lines.Assign(vL.Lines);
vLayer.Name := vL.Name;
vLayer.SetColor(vL.Color);
vLayer.Visible := vL.Visible;
vLayer.Visibility := vL.Visibility;
Converter.Loads(vLayer);
Converter.OnCreate(vLayer);
<b>end</b>;
<b>finally</b>
FreeAndNil(vCAD);
<b>end</b>;
Img.GetExtents;
sgPaintBox.Picture.Graphic := Img;
<b>end</b>;
please post questions to the forum or write to support@cadsofttools.com