Как нарисовать окружность (circle) и залить

Discuss and ask questions about CAD VCL (Delphi and C++ Builder).

Moderators: SDS, support, admin

Post Reply
Rio
Posts: 9
Joined: 26 Dec 2006, 01:25
Location: Russia
Contact:

Как нарисовать окружность (circle) и залить

Post by Rio » 02 Jan 2007, 04:35

Как можно нарисовать circle и залить solid
приведите приведите пример пожалуйста.

PoltP
Posts: 8
Joined: 20 Jul 2006, 12:47
Location: Russia
Contact:

Post by PoltP » 04 Jan 2007, 15:59

Ниже приведены два примера соответственно двум продуктам.

Для CADtoDXF (на основе кода, приведенного в http://www.soft-gold.ru/forum/topic.asp?TOPIC_ID=469):

Code: Select all

  ...
    { Adding the CIRCLE entity }
    vCircle := TsgDXFCircle.Create;
    vCircle.Radius := 30;                      // radius
    vCircle.Point := MakeFPoint(110, 160, 0);  // center point
    vCircle.SetColor(clRed);                   // color
    vCircle.Layer := vCADFile.Converter.LayerByName(cnstLayerName);
    vCircle.SetLType(vCADFile.Converter.LTypeByName(cnstLTypeName));
    if Assigned(vCADFile.Converter.OnCreate) then
      vCADFile.Converter.OnCreate(vCircle);
    vCADFile.Converter.Loads(vCircle);
    vCADFile.Converter.Sections[csEntities].AddEntity(vCircle);

    { Adding the SOLID entity }
    vSolid := TsgDXFSolid.Create;
    vSolid.Point := MakeFPoint(20, 50, 0);
    vSolid.Point1 := MakeFPoint(80, 50, 0);
    vSolid.Point2 := MakeFPoint(80, 90, 0);
    vSolid.Point3 := MakeFPoint(20, 90, 0);
    vSolid.SetColor(clNavy);                  // color
    vSolid.Layer := vCADFile.Converter.LayerByName(cnstLayerName);
    if Assigned(vCADFile.Converter.OnCreate) then
      vCADFile.Converter.OnCreate(vSolid);
    vCADFile.Converter.Loads(vSolid);
    vCADFile.Converter.Sections[csEntities].AddEntity(vSolid);
  ...
Для продукта DXFExportVCL (на основе модуля Main.pas демы):

Code: Select all

  procedure TfmDXFExporter.btnFormShapesClick(Sender: TObject);
  ...
    // SOLID
    FillChar(Data, SizeOf(Data), 0);
    Data.Color := DXF_LIME;
    Data.Point := MakeExpPoint(240, -50, 0);
    Data.Point1 := MakeExpPoint(300, -40, 0);
    Data.Point2 := MakeExpPoint(260, -90, 0);
    Data.Point3 := MakeExpPoint(310, -80, 0);
    vDXF.AddSolid(Data);
  ...
- - -
Yours faithfully,
Pavel Poltavets,
senior developer Soft Gold Ltd.

Post Reply