How can I use TsgDXFHatch In D7?
Posted: 25 Nov 2005, 11:06
how to hatch a circle or a Rect? show me a demo,pleaese!
CADSoftTools - AutoCAD DWG DXF HPGL (PLT) SVG CGM STEP IGES STL SAT viewers, converters and developer tools. Delphi and C# source code.
https://cadsofttools.com/forum/
Code: Select all
procedure TsgDXFImage.DrawHatch(Sender: TObject);
Code: Select all
procedure TsgDXFImage.DrawHatch(Sender: TObject);
Code: Select all
<b>procedure</b> TForm1.btnHatchOnPolyClick(Sender: TObject);
<b>var</b>
vPolyHatch: TsgCADCurvePolygon;
v2DBList: Tsg2DBoundaryList;
v2DPoly: Tsg2DPolyline;
vPoly: TsgDXFPolyline;
vVertex: TsgDXFVertex;
K, J, CNt: Integer;
vImg: TsgDXFImage;
<b>begin
if</b> sgPaintBox.Picture.Graphic <b>is</b> TsgDXFImage <b>then</b>
vImg := TsgDXFImage(sgPaintBox.Picture.Graphic)
<b>else</b>
Exit;
CNt := vImg.CurrentLayout.Count - 1;
<b>for</b> K :=0 <b>to</b> CNt <b>do
begin
if</b> vImg.CurrentLayout.Entities[K] <b>is</b> TsgDXFPolyline <b>then
begin</b>
vPoly := TsgDXFPolyline(vImg.CurrentLayout.Entities[K]);
vPolyHatch := TsgCADCurvePolygon.Create;
vImg.CurrentLayout.AddEntity(vPolyHatch);
vPolyHatch.Color := clRed;
v2DBList := Tsg2DBoundaryList.Create;
vPolyHatch.BoundaryData.Add(v2DBList);
v2DBList.BoundaryType := 7;<i><font color="blue">// Polyline type</i></font id="blue">
v2DPoly := Tsg2DPolyline.Create;
v2DBList.Add(v2DPoly);
<b>for</b> J := 0 <b>to</b> vPoly.Count - 1 <b>do
begin</b>
vVertex := TsgDXFVertex(vPoly.Entities[J]);
v2DPoly.AddVertex(MakeF2DPoint(vVertex.Point.X , vVertex.Point. Y));
<b>end</b>;
<b>if</b> vPoly.Closed <b>then
begin</b>
vVertex := TsgDXFVertex(vPoly.Entities[0]);
v2DPoly.AddVertex(MakeF2DPoint(vVertex.Point.X , vVertex.Point. Y));
<b>end</b>;
<b>if</b> Assigned(vImg.Converter.OnCreate) <b>then</b>
vImg.Converter.OnCreate(vPolyHatch);
vImg.Converter.Loads(vPolyHatch);
<b>end</b>;
<b>end</b>;
vImg.GetExtents;
sgPaintBox.Invalidate;
<b>end</b>;