Problem with TdxfExportData.Scale
Posted: 04 Aug 2006, 15:47
Hello,
I have a problem with TdxfExportData.Scale.
When I insert a group and fill the Scale-attribut with data like(0.9,0.9,1)
the start-position of the group change.
What have I to do when i want to scale a group and freeze point down/left
A example :
I have a problem with TdxfExportData.Scale.
When I insert a group and fill the Scale-attribut with data like(0.9,0.9,1)
the start-position of the group change.
What have I to do when i want to scale a group and freeze point down/left
A example :
Code: Select all
<b>procedure</b> TTestForm.Test_Scale_BtnClick(Sender: TObject);
<b>var</b>
E : TsgDXFExport;
Data : TdxfExportData;
vLayer: TsgExpDXFLayer;
pPoint : PdxfPoint;
<b>begin</b>
E := TsgDXFExport.Create;
E.Use01MM := True;
//Create block 'Test1'
E.BeginBlock('Test1');
FillChar(Data, SizeOf(Data), 0);
Data.Text := 'ACADISO03W100';// linetype
Data.Color := DXF_BLUE;
Data.Thickness := 3;
Data.Point := MakeExpPoint(25, 50, 0);
Data.Point1 := MakeExpPoint(75, 50, 0);
E.AddLine(Data);
E.EndBlock;
//Insert block 'Test1' to the drawing
FillChar(Data, SizeOf(Data), 0);
vLayer := TsgExpDXFLayer.Create('Block1');
E.CurrentLayer := vLayer;
Data.Thickness := 0;
Data.Text := 'Test1';
Data.Scale := MakeExpPoint(1, 1, 0);
Data.Point := MakeExpPoint(25, -25, 0);
E.Insert(Data);
//Create block 'Test2'
E.BeginBlock('Test2');
FillChar(Data, SizeOf(Data), 0);
Data.Text := 'ACADISO03W100';// linetype
Data.Color := DXF_BLUE;
Data.Thickness := 3;
Data.Point := MakeExpPoint(100, 0, 0);
Data.Point1 := MakeExpPoint(100, 50, 0);
E.AddLine(Data);
E.EndBlock;
//Insert block 'Test2' to the drawing
FillChar(Data, SizeOf(Data), 0);
vLayer := TsgExpDXFLayer.Create('Block2');
E.CurrentLayer := vLayer;
Data.Thickness := 1;
Data.Text := 'Test2';
Data.Point := MakeExpPoint(-25, 0, 0);
Data.Scale := MakeExpPoint(1, 1, 0);
E.Insert(Data);
//Create block 'Test3'
E.BeginBlock('Test3');
FillChar(Data, SizeOf(Data), 0);
Data.Text := 'ACADISO03W100';// linetype
Data.Color := DXF_BLACK;
Data.Thickness := 3;
FillChar(Data, SizeOf(Data), 0);
Data.Text := 'ACADISO03W100';// linetype
Data.Color := DXF_BLACK;
Data.Thickness := 3;
Data.Point := MakeExpPoint(50, 0, 0);
Data.Point1 := MakeExpPoint(50, 50, 0);
E.AddLine(Data);
Data.Point := MakeExpPoint(50, 50, 0);
Data.Point1 := MakeExpPoint(100, 50, 0);
E.AddLine(Data);
Data.Point := MakeExpPoint(100, 50, 0);
Data.Point1 := MakeExpPoint(100, 0, 0);
E.AddLine(Data);
Data.Point := MakeExpPoint(100, 0, 0);
Data.Point1 := MakeExpPoint(50, 0, 0);
E.AddLine(Data);
E.EndBlock;
//Insert block 'Test3' to the drawing
FillChar(Data, SizeOf(Data), 0);
vLayer := TsgExpDXFLayer.Create('Block3');
E.CurrentLayer := vLayer;
Data.Thickness := 1;
Data.Text := 'Test3';
Data.Point := MakeExpPoint(0, 0, 0);
Data.Scale := MakeExpPoint(0.9, 0.9, 1); // MakeExpPoint(1, 1, 1);
E.Insert(Data);
// Save file
E.SaveToFile('C:\tmp\MoveTest_2.dxf');
E.Free;
<b>end</b>;